You are on page 1of 47

14/05/2013

REDES NEURAIS

Sistema Nervoso
2

O que ?
um conjunto complexo de clulas que determina o funcionamento e comportamento dos seres vivos
Engloba o crebro

Sua unidade fundamental o neurnio


Se diferencia de outras clulas por apresentar excitabilidade

14/05/2013

Crebro
3

Funciona de forma inteiramente diferente dos computadores convencionais


lento
O tempo de propagao de um impulso no axnio da ordem de milissegundos! A frequncia de disparo de um neurnio da ordem de kHz!

Mas sua lentido compensada pela macia conexo entre neurnios


Cada neurnio tem cerca de 10.000 sinapses com outros neurnios

Crebro
4

Ainda, apesar de sua lentido...


mais preciso (e possivelmente mais rpido) que computadores convencionais na execuo de tarefas complexas
Viso, audio, reconhecimento, ...

14/05/2013

Crebro
5

Possui a capacidade de construir suas prprias regras


uso da experincia
Um milho de sinapses por segundo so desenvolvidas nos dois primeiros anos de vida

Composto por vrias regies especializadas


Cada uma com funes especficas

Redes Neurais Artificiais (NRA)


6

Motivao
Computadores so eficientes em vrias reas, mas a computao convencional no tem obtido desempenho prximo da natureza em vrios domnios Vantagens da natureza
Seres humanos: reconhecer um rosto familiar em ambiente estranho Morcegos: seu sonar pode reconhecer alvos (distncia e velocidade)

14/05/2013

Redes Neurais Artificiais (NRA)


7

Motivao
Seu estudo surgiu com o desejo de entender o crebro
Objetivo principal: reproduzir seu funcionamento em diversas tarefas

Paradigma Bio-Inspirado de Aprendizado de Mquina (AM)


Paradigma conexionista: o comportamento inteligente esta relacionado com a dinmica das conexes entre neurnios. Esta dinmica capaz de representar o conhecimento

Redes Neurais Artificiais (NRA)


8

So modelos de computao inspirados no crebro humano


Compostas por vrias unidades de processamento
Neurnios

Interligadas por um grande nmero de conexes


sinapses

Como modelo, apenas uma aproximao do fenmeno ou objeto real que se pretende estudar

14/05/2013

Redes Neurais Artificiais (NRA)


9

Propriedades particulares:
Aprender Adaptar Generalizar Eventualmente organizar

Eficientes em vrias aplicaes


Regresso, classificao, problemas no lineares, etc

Neurnio
10

O neurnio o bloco construtivo bsico de algoritmos de redes neurais


Neurnio natural simplificado

14/05/2013

Neurnio
11

Neurnio natural simplificado


Dendritos
recebem impulsos nervosos oriundos de outros neurnios

Corpo da Clula
Processa a informao e gera novos impulsos

Axnio
Transmite os impulsos gerados para outros neurnios

Sinapse
Ponto de contato entre os axnios e os dendritos de dois neurnios Controla a transmisso de impulsos, proporcionando a capacidade de adaptao do neurnio

Neurnio
12

Neurnio artificial
Modelo matemtico de um neurnio biolgico
Proposto inicialmente por McCulloch & Pitts (1943) uma aproximao til de um neurnio real

14/05/2013

Neurnio Artificial
13

Estrutura bsica
Os dendritos so modelados como uma linha ou canal de transmisso por onde flui a informao de entrada (xi, i=1, ..., p)

Neurnio Artificial
14

Estrutura bsica
A fora das conexes sinpticas dos dendritos modelada como um fator (peso sinptico), cujo papel modular o fluxo de sinais passando por eles (wi, i=1, ..., p)

14/05/2013

Neurnio Artificial
15

Estrutura bsica
O corpo celular realiza o acmulo energtico
Somatrio das entradas moduladas pelos pesos sinpticos: u = x1*w1 + x2*w2 + ... + xp*wp : limiar (bias)

Neurnio Artificial
16

Estrutura bsica
O axnio funciona como uma funo de ativao (chave ON-OFF)
Indica se o neurnio respondeu ao estmulo atual Indica se houve ou no o envio de um potencial de ao

y = sinal(u) = +1, se u > 0 y = sinal(u) = -1, caso contrrio

14/05/2013

Conceitos Bsicos
17

Principais aspectos das RNAs


Arquitetura
Unidades de Processamento Topologia

Aprendizado
Paradigmas de aprendizado Algoritmos de aprendizado

Conceitos Bsicos
18

Unidades de Processamento
Diferentes tipos de neurnios
Estticos ou Dinmicos Atemporais ou Temporais Lineares ou No Lineares

14/05/2013

Conceitos Bsicos
19

Topologia
Diferentes quantidades de camadas
Uma camada: Perceptron, Adaline Multi-camadas: Multi Layer Perceptron (MLP), Funes de Base Radial (RBF)

Conceitos Bsicos
20

Topologia
Diferentes arranjos das conexes
Redes feedforward: no existem loops de conexes. o tipo mais comum

10

14/05/2013

Conceitos Bsicos
21

Topologia
Diferentes arranjos das conexes
Redes recorrentes: conexes apresentam loops, isto , possuem conexes ligando neurnios de uma camada a neurnios de camada(s) anterior(es) Podem lembrar excitaes passadas

Conceitos Bsicos
22

Topologia
Diferentes arranjos das conexes
Redes em mapas (ou grades): matriz n-dimensional de neurnios, com relao de vizinhana espacial

11

14/05/2013

Conceitos Bsicos
23

Paradigmas de aprendizado
Indicam como a RNA se relaciona com o ambiente externo Principais Paradigmas
Supervisionado No supervisionado Reforo

Conceitos Bsicos
24

Algoritmos de aprendizado
Conjunto de regras bem definidas usadas para ensinar a rede a resolver um certo problema Algumas das principais categorias
Correo de Erro Competitivo Hebbiano

Divergem na maneira como os pesos so ajustados

12

14/05/2013

Rede Perceptron Simples


25

considerada o primeiro algoritmo de NRA


Desenvolvida por Rosenblatt em 1958 Utiliza modelo de neurnio de McCulloch-Pitts como unidade de processamento com sada em {-1, +1}
Perceptron Simples = Neurnio + Regra de Aprendizagem

Rede Perceptron Simples


26

a rede mais simples para classificao de padres linearmente separveis


Para classificao binria (2 classes), resume-se a um neurnio com pesos ajustveis A regra de aprendizagem o mecanismo que torna a rede Perceptron Simples um dispositivo inteligente

13

14/05/2013

Rede Perceptron Simples


27

Regra de Aprendizado
Fornecem a base para o entendimento dos mtodos de treinamento para redes formadas por vrias unidades Consiste na modificao dos pesos e do limiar do neurnio
At que ele resolva o problema de interesse Ou at que o perodo de aprendizagem tenha terminado

Rede Perceptron Simples


28

Regra de Aprendizado
Pesos so inicializados aleatoriamente Pesos so ento ajustados sempre que a rede classifica equivocadamente um exemplo de treinamento Esse processo se repete at que um determinado critrio de parada seja alcanado

14

14/05/2013

Rede Perceptron Simples


29

Regra de Aprendizado
um classificador linear timo
Sua regra de aprendizagem conduz minimizao de uma funo-custo

Possvel funo-custo
Quantificar a probabilidade mdia de erros de classificao Buscamos minimizar o erro de classificao dos dados de entrada

Rede Perceptron Simples


30

Treinamento
Treinamento supervisionado
Padres desejados de sada d

Dado um padro de entrada x = [x1, ... xp] tem-se a correo de erro para cada peso (wi, i=1, ..., p)
wi(t+1) = wi(t) + wi(t)

Onde
wi(t): peso atual wi(t): incremento no peso wi(t+1): peso modificado

15

14/05/2013

Rede Perceptron Simples


31

Treinamento: incremento do peso wi(t)


Gradiente descendente
A direo do passo futuro depender da direo do passo anterior pois sempre so ortogonais

Classificao correta (d = y)
wi(t) = 0

Classificao incorreta (d y)
wi(t) = xi (d - y)

Fator
Tornar o processo de ajuste mais estvel (tambm chamado de passo de aprendizagem) 0 < << 1

Rede Perceptron Simples


32

Algoritmo de Treinamento
Iniciar todos os pesos wi Repita
Para cada par de treinamento (x, d)
Calcular a sada y Se (d y) Ento Atualizar os pesos dos neurnios

At o erro ser aceitvel

16

14/05/2013

Rede Perceptron Simples


33

O que fazer se tivermos mais de 2 classes?


Um nico neurnio nos permite categorizar apenas duas classes de dados Para problemas com mltiplas classes, deve-se utilizar vrios neurnios em paralelo

Rede Perceptron Simples


34

Classificao em mltiplas classes


O funcionamento de cada neurnio o mesmo individualmente Todos possuem
Seu prprio vetor de pesos Ajuste de pesos Sinal de sada

Numa rede com Q neurnios teremos Q regras de aprendizagem

17

14/05/2013

Rede Perceptron Simples


35

Classificao em mltiplas classes


Como especificar o nmero de neurnios Q ? Mtodo 1: Codificao binria simples
Se tenho C classes, ento Q o maior inteiro igual a ou menor que . Exemplo: Se C = 6 classes, ento Q > 2,45 = 3

Rede Perceptron Simples


36

Classificao em mltiplas classes


Mtodo 1: Codificao binria simples
Exemplo: Se C = 6 classes, ento Q > 2,45 = 3 Classe 1: d = [0 0 1]T Classe 2: d = [0 1 0]T Classe 3: d = [0 1 1]T Classe 4: d = [1 0 0]T Classe 5: d = [1 0 1]T Classe 6: d = [1 1 0]T

18

14/05/2013

Rede Perceptron Simples


37

Classificao em mltiplas classes


Como especificar o nmero de neurnios Q ? Mtodo 2: Codificao 1-out-of-Q
Se tenho C classes, ento Q = C Exemplo: Se C = 4 classes, ento Q = 4

Apenas uma das componentes do vetor tem valor igual a1


Os vetores so ortogonais, isto , produto escalar entre eles nulo

Rede Perceptron Simples


38

Classificao em mltiplas classes


Mtodo 1: Codificao 1-out-of-Q
Exemplo: Se C = 4 classes, ento Q = 4 Classe 1: d = [0 0 0 1]T Classe 2: d = [0 0 1 0]T Classe 3: d = [0 1 0 0]T Classe 4: d = [1 0 0 0]T

19

14/05/2013

Rede Perceptron Simples


39

O que fazer se as classes no puderem ser separadas por uma reta?


Perceptron Simples resolve apenas problemas linearmente separveis
Grande nmero de aplicaes importantes no so linearmente separveis

Perceptron de Mltiplas Camadas


40

Podemos modificar a rede Perceptron


Soluo: utilizar mais de uma camada de neurnios dentro da rede

Rede Perceptron de Mltiplas Camadas


Multilayer Perceptron MLP

20

14/05/2013

Perceptron de Mltiplas Camadas


41

Estrutura bsica de uma MLP


Conjunto de unidades de entrada
Recebem os sinais (ou dados)

Uma ou mais camadas ocultas


No possuem acesso direto a sada da rede Neurnios no se conectam dentro de uma mesma camada

Uma camada de sada:


combina as sadas produzindo a classificao final

Perceptron de Mltiplas Camadas


42

Qual a funo das camadas ocultas?


Elas realizao uma transformao no linear nos dados
Cada camada uma rede Perceptron para cada grupo de entradas linearmente separveis

Facilitam a tarefa de classificao

21

14/05/2013

Perceptron de Mltiplas Camadas


43

Notao de uma MLP


Uma rede MLP com 1 camada oculta representada por
MLP(p, q1, m)

Onde
p o nmero de variveis de entrada q1 o nmero de neurnios ocultos m o nmero de neurnios de sada

Com 2 camadas
MLP(p, q1, q2, m), onde q2 o nmero de neurnios ocultos na segunda camada

Perceptron de Mltiplas Camadas


44

Notao de uma MLP


Desse modo, uma rede MLP com
4 variveis de entrada, 10 neurnios ocultos e 2 neurnios de sada representada como MLP(4,10,2) 15 variveis de entrada, 20 neurnios na 1 camada oculta, 10 neurnios na 2a camada oculta e 4 neurnios de sada representada como MLP(15,20,10,4)

22

14/05/2013

Perceptron de Mltiplas Camadas


45

Quantos camadas ocultas usar? E quantos neurnios por camada oculta?


No h regras determinadas para isso
Podemos ter qualquer nmero de camadas e neurnios

Em geral, depende da natureza do problema


Muitas camadas e/ou neurnios podem comprometer o desempenho da rede

Perceptron de Mltiplas Camadas


46

De modo geral, uma ou duas camadas ocultas so suficientes


Uma camada oculta: regies de deciso convexas Duas camadas oculta: regies de deciso no convexas

23

14/05/2013

Perceptron de Mltiplas Camadas


47

Como treinar uma rede MLP?


Neurnios em camadas ocultas no tem acesso a sada da rede
No possvel calcular o erro associado a esse neurnio

O que fazer ento?


Uma soluo foi inventar uma espcie de erro para os neurnios ocultos Propagar os erros dos neurnios de sada em direo a todos os neurnios das camadas ocultas (caminho inverso ao do fluxo da informao)

Backpropagation
48

Algoritmo de backpropagation
Uma das mais populares tcnicas de aprendizado para redes MLP Envolve dois sentidos de propagao de sinais na rede
Sentido direto (forward) Sentido inverso (backward)

24

14/05/2013

Backpropagation
49

Algoritmo de backpropagation
Sentido direto (forward):
Clculo da sada e do erro

Sentido inverso (backward)


Propagao do erro
Envolve o clculo de derivadas

Backpropagation
50

Propagao do erro
A idia bsica propagar o sinal de erro calculado na etapa de treinamento de volta para todos os neurnios
Coeficientes dos pesos utilizados para propagar os erros para trs so iguais aos utilizados durante o clculo de valor de sada Apenas a direo do fluxo de dados alterado Esta tcnica aplicada em todas as camadas de rede

25

14/05/2013

Backpropagation
51

Propagao do erro
Sinal de erro calculado para cada neurnio
Seus coeficientes de peso podem ser modificados

Esse clculo envolve a derivada da funo de ativao do neurnio

Backpropagation
52

Problema
Derivadas demandam funes diferenciveis
Funes de ativao dos neurnios intermedirios so descontnuas

Soluo
Funes de ativao contnuas
Utilizar aproximaes das funes de ativao

26

14/05/2013

Backpropagation
53

Funo de ativao
A funo de ativao do neurnio artificial do tipo Degrau
No-linearidade dura ou hard A sada uma varivel do tipo ON-OFF (binria [0,1] ou bipolar [-1,+1])

Substitumos ela por uma funo de ativao do tipo Sigmoidal


No-linearidade suave ou soft A sida passa a ser uma varivel do tipo Real ou Analgica (qualquer valor entre [0,1] ou [-1,+1])

Backpropagation
54

Funo de ativao do tipo Sigmoidal


Vantagens
Derivadas fceis de calcular No-linearidade fraca (trecho central quase linear) Interpretao da sada como taxa mdia de disparo (mean firing rate), em vez de simplesmente indicar se o neurnio est ou no ativado (ON-OFF)

Desvantagens
Elevado custo computacional para implementao em sistemas embarcados devido presena da funo exponencial

27

14/05/2013

Backpropagation
55

Funo de ativao
Sigmide Logstica

Backpropagation
56

Funo de ativao
Tangente Hiperblica

28

14/05/2013

Backpropagation
57

Existem muitas variaes do Backpropagation


Momentum Quickprop Newton Gradiente Conjugado Levenberg-Marquardt Super Self-Adjusting Backpropagation

Problemas no aprendizado
58

Ocorrncia de mnimos locais


A soluo estvel que no a melhor Incidncia desse problema pode ser reduzida
Uso de backpropagation seqencial (estocstico) Mltiplas inicializaes dos pesos

Lentido da rede em superfcies complexas


Podemos amenizar o problema
Uso de variantes do backpropagation

29

14/05/2013

Problemas no aprendizado
59

Overfitting (sobreajustamento)
A partir de um certo ponto do treinamento, o desempenho da rede piora ao invs de melhorar A rede se especializa nos padres de treinamento, incluindo suas peculiaridades
Piora a sua capacidade de generalizao Incapacita a rede de reconhecer dados diferentes dos usados no seu treinamento

Problemas no aprendizado
60

Overfitting (sobreajustamento)
O que fazer nesse caso?
Podemos encerrar treinamento mais cedo (early stop) Fazer a poda de conexes e neurnios irrelevantes (pruning) Penalizar os valores dos pesos (weight decay)

30

14/05/2013

Problemas no aprendizado
61

Underfitting (subajustamento)
Arquitetura da rede tem poucos parmetros
O modelo muito simples

Falta de representatividade das classes possvel que a rede sequer aprenda o padro
Baixa capacidade de generalizao

Pode-se resolver esse tipo de problema com um conjunto de treinamento de bom tamanho
Tcnicas de amostragem ajudam

Atualizao dos pesos da rede


62

Existem diversas abordagens para a atualizao dos pesos da rede


Por ciclo (batelada ou batch) Por padro (sequencial ou on-line)

A escolha da melhor abordagem depende da aplicao

31

14/05/2013

Atualizao dos pesos da rede


63

Atualizao por ciclo (batelada ou batch)


Atualiza os pesos depois que todos os padres de treinamento forem apresentados Vantagens
Estimativa mais precisa do vetor gradiente Mais estvel

Desvantagem
Mais lento

Atualizao dos pesos da rede


64

Por padro (sequencial ou on-line)


Atualiza os pesos aps apresentao de cada padro em ordem aleatria Vantagens
Requer menos memria Mais rpido Menos susceptvel a mnimos locais

Desvantagens
Pode se tornar instvel Requer controle da taxa de aprendizado

32

14/05/2013

Redes RBF
65

Redes RBF (Radial Basis Functions)


Redes com funo de base radial Classe de redes com arquitetura feedforward
Os valores das entradas se propagam na rede em um nico sentido

Possui camada oculta como as redes MLPs


Apenas 1 camada oculta Podem resolver problemas no linearmente separveis

Redes RBF
66

Redes RBF (Radial Basis Functions)


Utilizam um modelo de neurnio diferente das MLPs
Neurnios da camada oculta com resposta radial a excitaes Esse tipo de neurnio modela o conceito biolgico de campo receptivo (local receptive fields)

Os neurnios de sada so neurnios comuns

33

14/05/2013

Redes RBF
67

Redes RBF (Radial Basis Functions)


Neurnios com resposta radial
Respondem seletivamente a um intervalo finito do espao de sinais de entrada

Aprendizagem
Busca uma superfcie em um espao de dimenso qualquer que produza o melhor ajuste os dados de treinamento Treinamento, em geral, muito mais rpido que as MLP

Redes RBF
68

Resposta Radial
Presentes em alguns tipos de clulas nervosas
Clulas auditivas possuem maior sensibilidade a frequncias prximas a um determinado tom Clulas da retina maior sensibilidade a excitaes luminosas prximas ao centro do seu campo receptivo

Modelo matemtico
Funo de Base Radial

34

14/05/2013

Modelo do neurnio RBF


69

Existem diferentes modelos matemticos possveis para uma funo de base radial
Gaussiana
= exp ( = =
)

Multi-Quadrtica Inversa Chapu Mexicano


(()/) , (()/)

1,

Modelo do neurnio RBF


70

Gaussiana

= exp (

35

14/05/2013

Modelo do neurnio RBF


71

Multi-Quadrtica Inversa
=

Modelo do neurnio RBF


72

Chapu Mexicano
=

(()/ , /

1,

36

14/05/2013

Modelo do neurnio RBF


73

Modelo bsico do neurnio

Entrada Funo de base radial

Sada

Histrico
74

Podemos construir uma funo complexa a partir de funes simples


Srie de Fourier Transformada de Fourier Transformada Wavelet Redes RBF

Redes RBF utilizam funes de base radial para aproximar outras funes

37

14/05/2013

Histrico
75

Sua origem vem de tcnicas para realizar interpolao exata de funes


Ex.: utilize um conjunto de N funes de base, nolineares, para calcular a funo dada funo

Histrico
76

A rede RBF pode aproximar qualquer funo contnua atravs da combinao linear de funes gaussianas com centros em diferentes posies do espao de entrada.

38

14/05/2013

Histrico
77

Primeiros trabalhos com funes de base radial


Interpolao Estimao de densidade Aproximao de funes multivariadas suaves

Atualmente
Os modelos so de natureza adaptativa Utilizao de um nmero relativamente menor de unidades de processamento localmente sintonizadas

Desempenho da rede RBF


78

De modo geral, redes RBF precisam de ao menos 10 vezes mais dados de treinamento para atingir a mesma preciso das redes MLP-BP Em tarefas difceis de classificao, redes RBF podem ser melhores que MLP
Necessidade de nmero suficiente de
Padres de treinamento Neurnios ocultos

39

14/05/2013

Desempenho da rede RBF


79

Apesar da necessidade de maior conjunto de treinamento, o tempo de treinamento muito menor


Apenas uma pequena frao de neurnios ocultos responde a um dado padro de entrada
So unidades localmente sintonizveis Sensveis a padres prximos de seus campos receptivos

Numa MLP
Todos os neurnios so avaliadas e tm seus pesos ajustados

Comparao entre as redes


80

Redes RBF versus Redes MLP


RBF s tem uma camada oculta
MLP-BP pode ter mais

RBF usualmente tem mais neurnios na oculta que a MLP MLP usa funes sigmoidais de ativao
RBF usa funo de base radial e linear nas camadas oculta e de sada, respectivamente

RBF usualmente menos sensvel a insero de dados novos RBF pode necessitar de maior nmero de parmetros ajustveis

40

14/05/2013

Comparao entre as redes


81

Redes RBF versus Redes MLP


MLP gera regies globais de deciso
Maior capacidade de generalizao (extrapolao) que a RBF. Logo, lida melhor com outliers que a RBF (ajuste local)

Quando usar qual?


Rede MLP: padres de entrada so custosos (ou difceis de se gerar) e/ou quando a velocidade de recuperao crtica Rede RBF: os dados so baratos e abundantes, necessidade de treinamento online

Comparao entre as redes


82

Redes RBF versus Redes MLP


RBF separa classes por hiperelipsoides e a MLP-BP por hiperplanos

41

14/05/2013

Redes Hopfield
83

Redes Hopfield
Modelo de redes neurais auto-associativas desenvolvidas por J. Hopfield em 1982 Similar a um modelo de memria auto-associativa
Capaz de armazenar e depois recuperar um certo conjunto de padres

Redes Hopfield
84

Motivao
Sistemas fsicos com um grande n de elementos
Interaes entre estes geram fenmenos coletivos estveis

Redes que possuem neurnios que interagem entre si podem levar a fenmenos coletivos equivalentes?
Sistemas de neurnios conectados possuem estados estveis que so atingidos quando a rede estimulada por estados similares

42

14/05/2013

Redes Hopfield
85

Caractersticas
Possui uma nica camada de neurnios totalmente conectada Utiliza neurnios do tipo MCP (McCulloch-Pitts)
Unidade de processamento com sada em {-1, +1}

Estrutura recorrente (com feedback) Unidades so ao mesmo tempo de entrada e de sada Conjunto de sadas define o estado da rede

Redes Hopfield
86

Caractersticas
Possui uma nica camada de neurnios totalmente conectada Utiliza neurnios do tipo MCP (McCulloch-Pitts)
Unidade de processamento com sada em {-1, +1}

Estrutura recorrente
Com feedback

43

14/05/2013

Redes Hopfield
87

Caractersticas
Unidades so ao mesmo tempo de entrada e de sada Conjunto de sadas define o estado da rede Funcionamento assncrono

Redes Hopfield
88

Funcionamento assncrono
Em um determinado instante de tempo apenas uma unidade da rede escolhida para mudar de estado Esse processo se repete at que a rede encontre um ponto de equilbrio estvel
A sada de cada unidade da rede se mantm constante

44

14/05/2013

Redes Hopfield
89

Funcionamento bsico
Etapa de treinamento
A rede memoriza os padres

Etapa de uso
A rede ir passar por uma sequncia de ativaes intermedirias at se estabilizar em um padro previamente treinado

Redes Hopfield
90

Funcionamento bsico
Etapa de treinamento

Etapa de uso

45

14/05/2013

Redes Hopfield
91

Aplicaes
Regenerao de padres

Redes Hopfield
92

Aplicaes
Completar um padro conhecido

46

14/05/2013

Agradecimentos
93

Agradeo aos professores


Guilherme de Alencar Barreto - Universidade Federal do Cear (UFC) Prof. Ricardo J. G. B. Campello ICMC/USP Aluizio Fausto Ribeiro Arajo - Universidade Federal de Pernambuco (UFPE) Germano C. Vasconcelos - Universidade Federal de Pernambuco (UFPE) Paulo J.L. Adeodato - Universidade Federal de Pernambuco (UFPE)

pelo material disponibilizado

47

You might also like