V CONGED – Congresso de Tecnologias para Gestão de Dados e
Metadados do Cone Sul
Sumário da Apresentação
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
30-31 de Agosto de 2007.
Redes neurais artificiais em
reconhecimento de padrões e
mineração de dados
Leandro Augusto da Silva
[email protected]
Departamento de Eng. de Sistemas Eletrônicos
Escola Politécnica da Universidade de São Paulo
http://www.lsi.usp.br/icone
http://www.lsi.usp.br/icone
►
Introdução
►
Conceitos básicos
►
O neurônio biológico e o neurônio artificial
►
Tipos de arquiteturas de redes neurais artificiais
►
Aprendizado em redes neurais (supervisionado e nãosupervisionado)
►
Principais aplicações das redes neurais
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
2
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Introdução
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
3
Próximo ao final do século XIX, Santiago Ramon y
Cajal conclui dos seus experimento que o cérebro
era formado por células discretas, conectadas
entre si por ligações especiais (sinapses).
►
Porém, a anatomia do cérebro é estudada há
séculos.
►
Os antigos gregos já praticavam dissecação,
tendo realizado as primeiras observações e
experimentos básicos no estudo do sistema
nervoso, dando início a vários dos ramos da
ciência que estudam o cérebro (neuroanatomia,
neurofisiologia, psicofísica, psicologia, etc.).
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
4
Introdução
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Introdução
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Descartes defendia a crença de
que o cérebro abrigava um
pequeno ser, acreditava ser “o
sítio da alma”.
Tal ser era chamado de
homúnculo e era responsável
pelo controle e ações de todo o
corpo.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
5
Na antiga Grécia há registro da prática da dissecação e
das primeiras observações registradas sobre o cérebro.
Hipócrates a observação: “… o cérebro
parece uma glândula, é branco e separado
em pequenas massas, como as glândulas
são…”.
Herófilo descreve os troncos nervosos como
tubos que unem as extremidades do corpo à
medula espinhal e ao encéfalo.
Galeno associa esta estrutura à transmissão
da informação sensorial e motora.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
6
1
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Introdução
zEm
1650, o holandês Swammerdam remove um
músculo da perna de uma rã, verificou que este se
contraia sempre que era perturbado ou irritado.
zNo
início do século XIX, Müller, considerado por muitos
o “pai da fisiologia”, escreveu um prognóstico negativista
dizendo: “…provavelmente nunca conseguiremos medir
a velocidade da ação nervosa, uma vez que não
podemos comparar sua propagação em um espaço
interno como fazemos com a luz.”.
zAcreditava-se,
até então, que os impulsos nervosos
propagavam-se com a velocidade da luz.
7
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Introdução
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Indrodução
Em 1850, Hermman Ludwig Ferdinand von
Helmholtz, pupilo de Müller, mede a velocidade
de propagação dos estímulos nervosos, com um
aparato inteiramente mecânico, obtendo o valor
de 61m/s para os nervos sensoriais do homem.
Mais tarde, Dubois-Reimond descobre a natureza
elétrica da ação nervosa e realiza medidas precisas da
propagação dos estímulos utilizando galvanômetros.
Ainda no século XIX, o inglês Bell e o francês Megendie
realizaram experimentos em diversas partes do
mecanismo sensorial, sintetizando-os em uma lei que,
pela primeira vez, estabelece uma taxonomia das
funções realizadas no sistema nervoso.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
9
Em 1906, o cientista inglês Sherrington publica
“The Integrative Action of the Nervous
System”, que descreve experimentos feitos em
animais, associando diversas deficiências
causadas por remoção de partes do córtex e
medula espinhal, criando os termos “neurônio”
e “sinapse” para descrever a célula nervosa e
seus botões de contato.
Em 1909, Brodman mapeia o córtex humano
em 50 áreas por critérios cito-estruturais.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Ele descreve com grande detalhe a taxonomia de vários
neurônios do sistema nervoso e suas respectivas
árvores dendritais, assim como aglomerados dessas
células, formando as redes de processamento de
informação no sistema nervoso
10
Introdução
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
A neuroanatomia celular teve seu grande
avanço com trabalhos realizados pelo
cientista espanhol Ramon y Cajal.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Introdução
►
8
11
►
O avanço mais significativo em eletroneurofisiologia se deu
graças a Hudgkin e Huxley, que modelaram em 1960 os
processos biofísicos envolvidos na geração do potencial de
ação do neurônio, trabalho que lhes valeu o prêmio Nobel
de Fisiologia em 1963.
►
Desenvolveu-se, ainda, a neurofisiologia funcional, onde
certas funções primitivas do sistema nervoso são
associadas às áreas corticais específicas, mediante estudo
sistemático de pacientes lobotomizados, que tiveram de
alguma maneira parte do córtex avariado ou removido.
►
Neste aspecto, ressalta-se o trabalho do neurofisiologista
Roger Sperry, que recebeu em 1981 o prêmio Nobel de
Fisiologia pelo seu trabalho.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
12
2
►
Atualmente, tecnologias como a microscopia
eletrônica e técnicas modernas de mapeamento
de funções cerebrais, como tomografia
computadorizada (CAT-Scan, PET-Scan) e
ressonância magnética (NMR), permitem a
visualização do sistema nervoso em pleno
funcionamento, levando a um avanço rápido e
eficiente das ciências que estudam o sistema
nervoso, deixando pouco espaço para o
“homúnculo”.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Introdução
13
O Neurônio Biológico
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O Neurônio Biológico
soma
dentritos
axônio
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
15
As conexões entre os neurônios se dão por meios de
sinapses, que podem ser excitatórias ou inibitórias,
dependendo do mecanismo e neurotransmissores
envolvidos nessa sinapse.
►
Os dendritos se conectam aos axônios de outras células,
servindo como receptores de sinal, enquanto o axônio tem
a função de transmitir um pulso, dada a condição de
disparo, conhecida como “potencial de ação”. Na
transmissão do impulso elétrico, a sinapse efetua a troca
de íons entre o citoplasma do axônio do neurônio
transmissor e o dendrito do neurônio receptor.
16
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O Neurônio Biológico
Axônio
Sinapse
Dendritos
A conexão entre um axônio de um neurônio e um
dendrito de outro é denominada Sinapse
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
►
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
O Neurônio Biológico
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
14
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
17
Entrada - Conexões Sinápticas
Informação - Impulsos Nervosos
• Impulso Nervoso: depolarização da membrana
celular
Potenciais de Ação
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Tempo
18
3
O Neurônio Biológico
►
A condição de disparo se dá quando o potencial da célula em
relação ao meio salino que a cerca atinge um determinado
patamar (limiar de disparo).
►
Quando uma célula encontra-se com potencial positivo ela é
dita “polarizada”; é então acionado um mecanismo somático
conhecido como “bombas de íons” visando a diminuição da
diferença de potencial na membrana até o nível normal.
►
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O Neurônio Biológico
Uma vez atingido o limiar de disparo, a célula é dita
hiperpolarizada, é disparado um único pulso no axônio, levando
o potencial da célula ao valor de despolarização absoluta, onde
permanece por um período de refração absoluta (Ta).
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
19
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Isto limita a freqüência de operação do cérebro a
1/Ta. Posteriormente, há um período de refração
relativa (Tr), onde o potencial retorna
assintoticamente ao valor normal.
20
Neurônio biológico.....Neurônio artificial
zTn:
duração do impulso
refração absoluta
zTr: período de refração
zTa:
Ta
Em Ta a célula é incapaz de produzir outro
potencial de ação, não importando a intensidade
da despolarização.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
O Neurônio Biológico
Tn
►
Tr
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
21
vez estabelecida a fisionomia e
funcionamento do neurônio, podemos
simplificar sua representação considerando
um sistema de n entradas com pesos
distintos aplicados, que, sendo x a soma
ponderada, dada uma função de ativação
g(x), gera uma única saída como função da
entrada.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
22
Neurônio biológico.....Neurônio artificial
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Neurônio biológico.....Neurônio artificial
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
► Uma
23
• Durante Tr, a ocorrência de impulsos nervosos apenas é
possível com o aumento da despolarização.
• Dessa forma pode-se dizer que o neurônio opera como um
dispositivo que codifica em freqüências de pulsos o
resultado da integração espacial/temporal dos estímulos
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
24
4
Resumo … um nó (neural) realiza a seguinte
computação analógica
Potenciais de Ação
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Vendo com mais detalhe a relação entre estímulo e
atividade na saída não é linear:
Tempo
Freq. De Pulsos
(potenciais de ação)
Saturação
(Freq. Sat.)
Estímulo Sublimiar
Depolarização da
Membrana
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
25
w
x0
0
y
y = fT ( Σ wi xi - θ )
ENTRADA
w N -1
xN -1
SAÍDA
θ
Saturação
(Freq. Sat.)
Depolarização da
Membrana
Estímulo Sublimiar
26
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
• Para efeitos de simplificação de modelos, a função
resposta pode ser aproximada por várias funções
analíticas:
SIGMÓIDE
TANGENTE HIPERBÓLICA
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Função de transferência não linear do tipo
sigmóide ou tangente hiperbólica
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
27
1,2
1,5
1
1
0,8
0,5
0,6
0
0,4
-6
0,2
-4
-2
-2
-0,5 0
2
4
6
-1
0
-6
-4
0
2
4
6
-1,5
• Preserva - se o fenômeno da saturação
• Preserva - se a monotonicidade na faixa dinâmica
• Temos funções matematicamente amigáveis
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
28
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O neurônio Booleano
O Neurônio
Booleano
de McCcullock
and Pitts
(1943)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
29
►
Baseado nestas aproximações e nos trabalhos realizados
por Alan Turing e John von Newman (que afirmavam que a
álgebra booleana era a natureza essencial da inteligência),
Warren McCulloch , médico, filósofo, matemático e poeta,
juntamente com o estatístico Walter Pitts, publicaram um
artigo no Bulletin of Mathematical Biophysics com o título:
“A Logical Calculus of the Ideas Immanent in Nervous
Activity”, que se tornou referência absoluta para a teoria
das redes neurais artificiais, sendo este também o primeiro
paper escrito nessa área.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
30
5
►
O modelo de neurônio booleano era exageradamente
simples, considerando toda a informação já disponível
naquela época sobre o comportamento elétrico da célula
nervosa.
►
Porém, baseado neste modelo, McCulloch implementou
uma série de funções, onde, eram atribuídas as entradas
um ganho arbitrário, gerando uma soma devidamente
ponderada (ou subtração no caso de sinapses inibitórias),
resultando em uma única saída: pulso, no caso da soma
exceder um dado limiar, ou não-pulso, caso contrário.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
O neurônio Booleano
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O neurônio Booleano
31
32
O neurônio Booleano
• O neurônio booleano nada mais é que um caso particular
de um discriminador linear, de entradas binárias que pode
ser representado pela função:
⎛ n
⎞
y = signal ⎜ ∑ wi .xi dt − Θ ⎟
⎝ i =1
⎠
•A função signal retorna –1 para parâmetros negativos
e +1 para positivos, e o teta representa o limiar de ativação.
33
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O neurônio Booleano
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Algumas funções booleanas implementadas por McCulloch
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
⎛ n
⎞
y = signal⎜ ∑ wi .xi dt − Θ⎟
⎝ i=1
⎠
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
34
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Aprendizado Hebbiano
Aprendizado
Hebbiano
D.O. Hebb
(1949):
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
35
►
Os estudo de Hebb estão concentrados nas leis de
adaptação envolvidas no sistema neural
►
O Aprendizado Hebbiano baseia-se nos seguintes
postulados:
1 - Se a ativação de um neurônio tiver grande influência na
ativação de um outro neurônio, a ligação entre estes dois
neurônios deve ser reforçada;
2 - Se a ativação de um neurônio não influencia a ativação
de um segundo neurônio, a ligação entre estes dois
neurônios deve ser enfraquecida ou até mesmo removida;
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
36
6
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Perceptrons
Perceptrons
Rosenblatt
(1960)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
37
Em 1950, Rosenblatt, na Universidade de Cornell,
fez a primeira implementação genuína das idéias
de McCulloch, utilizando múltiplos neurônios do
tipo discriminadores lineares em rede de múltiplas
camadas, experimento a qual deu o nome de
“perceptron”.
►
O perceptron possui uma camada de entrada,
uma de saída, e uma ou mais camadas internas a
entrada e saída, que são geralmente referias
como camadas ocultas.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
38
Perceptrons
Camada de Entrada Camadas Ocultas
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Perceptrons
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Camada de Saída
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
39
►
A primeira vista, o discriminador linear de Rosemblatt não passa de
uma função linear de n dimensões onde os pesos de cada conexão
dados arbitrariamente, e de fato, neste estado é de pouco uso.
►
Porem, dado um conjunto de exemplos com xi entradas e yi saídas
desejadas, este mecanismo se torna um poderoso reconhecedor de
padrões, que , como os similares biológicos, é capaz de aprender uma
determinada função.
►
Utilizando-se de um processo de treinamento com o uso dos
exemplos, é possível alterar os pesos de cada conexão de forma a
obter (na maioria dos casos) um determinado conjunto de saída, dado
um conjunto de entrada.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
40
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Adaline: Adaptive Linear Element
Adaline,
Madaline
de Widrow
(1962)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
41
►
Adaline/Madaline propõe um principio de
aprendizado conhecido como regra delta.
►
A saída y é uma combinação linear de x
x1
x2
w1
w2
wm
xm
y
m
y = ∑ x j (n)w j (n )
j= 0
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
42
7
Adaline: Adaptive Linear Element
Adaline: usa um neuronio e o algoritmo de aprendizado
Least-Mean-Square (LMS)
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Adaline: Passos Iniciais ... um Modelo Linear
A idéia: tentar minimizar o erro quadrático, o qual é uma função dos
pesos
E ( w(n)) = 12 e 2 ( n )
m
e(n ) = d (n ) − ∑ x j (n)w j (n )
j= 0
►
O mínimo da função erro E pode ser encontrado pelo
método do gradiente descentende
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
43
x1
x2
.
.
.
xn
Função
de Soma
w1
w2
∑
soma de todas as
soma = entradas * pesos
wn
n
soma=∑ xi * wi
i=1
Pesos
(ajustáveis)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
44
Perceptron: O livro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Perceptrons: O
livro
Minsky and Pappert
(1969)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
45
Se os conjuntos não forem linearmente separáveis, a
rede jamais converge, e fica oscilando entre valores
intermediários do cruzamento.
►
O XOR é um caso de não separabilidade linear
►
É impossível separar as classes C1 e C2 com apenas
uma linha
x2
1
0
C1 C
2
1 -1
-1
0
1
C1
1 x1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
46
►
Começa então o período negro das
pesquisas em redes neurais artificiais,
interrompendo um período de 3 décadas de
intensa pesquisa.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
47
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Perceptron: O livro
Memória
Associativa
de Hopfield
(1982)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
48
8
►
►
Em 1982, John Hopfield, apresentou um sistema
neural artificial que permitia memorizar imagens nas
interconexões entre os neurônios.
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Memória associativa de Hopfield
Hopfield introduz o conceito de energia.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
49
Sistemas autoorganizados
T.Kohonen
(1982)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
50
Sistemas auto-organizados
Cada neurônio da redes competitiva recebe único padrão,
idêntico para todos as entradas, e competem entre si.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
51
►
A retropropagação de erro (error backpropagation) é um
modelo de treinamento mais robusto e com álgebra mais
elaborada, atualmente o mais utilizado em redes neurais
de múltiplas camadas, uma vez que se demonstrou muito
eficiente na maioria das aplicações convencionais.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
52
Redes Neurais Artificiais
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O neurônio de Rummelhart, Hinton e Williams (RHW) foi o
primeiro a empregar o algoritmo de backpropagation, que
resolvia algumas limitações fundamentais no treinamento
de redes complexas.
Rummelhart,Hinton
e Williams (1986)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Redes Neurais Multicamadas
►
Redes Neurais
Multicamadas
53
►
São sistemas computacionais, de implementação em
hardware ou software, que imitam as habilidades
computacionais do sistema nervoso biológico, usando um
grande número de neurônios artificiais simples e
interconectados entre si.
►
Algumas aplicações típicas ...
z
z
z
z
z
Reconhecimento de caracteres
Reconhecimento e Síntese de Voz
Classificação de padrões
Riscos de inadimplência / deteção de padrões de risco
Previsão de vendas / previsão de séries temporais
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
54
9
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Categorias de Arquiteturas das Redes Neurais
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
55
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
O aprendizado por exemplos do MLP permite que ele
realize diversas funções sem a necessidade de um modelo
matemático conhecido / confiável
•
•“Redes
Neurais possuem capacidade de aprender por
exemplos”
“As informações são apresentadas a rede que extrai
informações a partir dos padrões apresentados”
•
57
•
•
As informações são apresentadas à rede sob
forma de padrões de entrada e os resultados
desejados são conhecidos previamente.
O “supervisor” verifica a saída da rede e a
compara com a saída esperada
Minimização da diferença
Os algoritmos mais conhecidos são :
•
Regra Delta
•
Backpropagation
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
A habilidade de aprender é uma característica
fundamental da inteligência.
►
Aprendizado no contexto de redes neurais pode ser
entendido como o processo de ajustar os pesos da
rede ou as interconexões dos neurônios para
desempenhar uma tarefa específica .
►
O aprendizado de uma rede é feito com base em um
conjunto de treinamento.
►
Existem três paradigmas de aprendizado
58
Aprendizado Não Supervisionado
59
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
•
►
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Aprendizado Supervisionado
•
56
“Aprendizagem” das Redes Neurais
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
“Aprendizagem” das Redes Neurais
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Aprendizado
¾
¾
¾
As informações são apresentadas à rede sob
forma de padrões de entrada e os resultados
desejados NÃO são conhecidos previamente.
Os padrões semelhantes são agrupados de
acordo com as características intrínsecas dos
dados.
O algoritmo mais conhecido é:
¾
Competitivo
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
60
10
Conhecendo detalhes de algumas arquiteturas de
redes neurais
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Aprendizado Híbrido
Supervisionado
+
Não
Supervisionado
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
61
►
A arquitetura, aprendizado e aplicação das
principais arquiteturas de redes neurais será
apresentado a seguir, a saber:
- Perceptron (SLP)
- Perceptron Multicamadas (MLP)
- Mapas Auto-Organizáveis (SOM)
62
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Arquitetura
SLP
Arquitetura
Aprendizado
Aplicações
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
63
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
b (bias)
x2
w1
w2
v
ϕ(v)
y
wm
►
xm
ϕ é a função sinal:
ϕ(v) =
+1
IF v >= 0
-1
IF v < 0
Para a função sign(v)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
►
Para este estudo é suficiente apenas um
neurônio para o percepetrom de camada
única (SLP – Single Layer Perceptron) :
M
M
64
Outras funções de transferência não lineares
Usa um modelo não linear (McCulloch-Pitts) :
x1
A arquiteura representa uma rede feedforward com uma camada
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Perceptron: Modelando o Neurônio
►
►
65
H a r d L im it e r
( lim it e r á p id o )
x
1
R a m p in g F u n c t io n
( fu n ç ã o d e r a m p a )
x
1
y
-1
s < 0 , y = -1
s > 0, y = 1
S ig m o id e F u n c t io n
( f u n ç ã o s ig m ó id e )
x
1
y
y = 1 /(1 + e
►
-s
)
1
s < 0, y = 0
0 <= s <= 1, y = s
s 1, y = 1
y
S ig m o id e F u n c t io n
( f u n ç ã o s ig m ó id e )
x
1
-1
y
x > = 0 , y = 1 -1 /(1 + s)
x < 0 , y = -1 + 1 /( 1 -s )
Com escalamento do argumento, pode-se abarcar os
universos digital e analógico / linear e não linear
simultaneamente
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
66
11
►
Perceptron: Classificação
O perceptron é usado para classificação:
classifique corretamente um conjunto de
exemplos entre uma de duas classes C1, C2:
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Perceptron: Aplicações
Se a saída do perceptron é +1
então a entrada será classificada como C1
Se a saída é -1
então a entrada é classificada como C2
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
67
►
O perceptron pode ser usado para modelar as
seguintes funções Booleanas:
- AND
- OR
- COMPLEMENT
► Mas não pode modelar a função XOR.Por quê?
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
69
68
1.Inicialize os pesos com um número randômico
pequeno (ou zero)
2. Apresenta um vetor padrão e avalie a saída do
neurônio.
3. Atualize os pesos se as saídas forem
diferentes com a regra de aprendizado do
perceptron.
71
►
O XOR não é linearmente separável
►
É impossível separar as classes C1 e C2 com
apenas uma linha
C1
x2
1
1
-1
0
-1
1
C2
0
1
C1
x1
70
Perceptron: Algoritmo de Aprendizado
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
w1x1 + w2x2 + b = 0
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Perceptron: Algoritmo de Aprendizado
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
x1
Região de decisão
C2
para C2
w1x1 + w2x2 + b <= 0
Perceptron: Limitações
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O perceptron pode apenas modelar funções
separáveis linearmente.
∑
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Perceptron: Limitações
►
A equação abaixo descreve um hiperpalno no
espaço de entrada. Este hiperplano é usado para
separar as duas classes em C1 e C2
Região de Decisão
m
para C1
x2 w x + w x + b > 0
1
1
2 2
wi xi + b = 0
Fronteira
i=1
C1
de decisão
►
► Variáveis
e parâmetros
x(n) = vetor de entrada / vetor padrão
= [+1, x1(n), x2(n), …, xm(n)]T
w(n) = vetor de peso
= [b(n), w1(n), w2(n), …, wm(n)]T
b(n) = bias / polarização
y(n) = resposta atual
d(n) = resposta desejada
η = taxa de aprendizado
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
72
12
►
Inicialização: set w(0) =0
►
Ativação: perceptron será ativado aplicando um exemplo
de entrada (vector x(n) e resposta desejada d(n))
►
Calcula a resposta atual do perceptron:
y(n) =
►
sgn[wT(n)x(n)]
Adaptação do vetor peso: se d(n) e y(n) são diferentes
w(n + 1) = w(n) + η[d(n)-y(n)] x(n)
onde d(n) =
►
Exemplo
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O algoritmo de aprendizado com incremento fixo
+1 se x(n) ∈ C1
-1 se x(n) ∈ C2
Continuação: incrementa o passo n e volte ao passo de
Ativação
Considere o conjunto de aprendizado C1 ∪ C2, onde:
C1 = {(1,1), (1, -1), (0, -1)} elementos da classe 1
C2 = {(-1,-1), (-1,1), (0,1)} elementos da classe -1
Use o algotitmo aprendizado do perceptron para
classificar estes exemplos.
η=1
• w(0) = [1, 0, 0]T
1
b (bias)=1
0
1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
73
0
1
1
v
ϕ(v)
y
1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
1
74
x2
-
-
1
+
C2
-1
-
1/2
+
-1
1
+
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Exemplo
Decision boundary:
2x1 - x2 = 0
x1
C1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
75
Aplicações
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
76
► Classificação
de características de nódulos
extraídos de mamografia. (L.A.Silva)
► Filtros
adaptativos / previsores lineares
x(n+1) = a.x(n) + b.x(n-1) + c.x(n-2) + ...
a, b, c ... São adaptados para otimizar a
previsão face a um conjunto de treinamento
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
77
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Alguns exemplos de aplicação Perceptron
MLP
Arquitetura
Aprendizado
Aplicações
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
78
13
Camada
de
entrada
Camada
de
saída
Camada escondida
79
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
O Multi Layer Perceptron (MLP)
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Arquitetura Perceptrons Multicamadas
►
Múltiplas entradas / Múltiplas saídas
►
Ambas podem ser analógicas ou digitais
►
Não há mais a restrição de separabilidade
linear
►
Aplicações das Redes Multicamadas ou MLP
como são conhecidas usando o algoritmo de
aprendizado error back-propagation
Uma solução para problema do XOR
Modelando o neurônio
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
x2
-1
1
-1
1
x1 xor x2
-1
1
1
-1
1
1
-1
-1
-1
0.1
+1
x1
+1
-1
ϕ(v) =
-1
x2
x2
+1
+1
1
if v > 0
-1
if v ≤ 0
ϕ is the sign function.
-1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
81
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
x1
x1
-1
-1
1
1
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
ϕ (v j ) =
ϕ (v j )
1
vj
-10 -8 -6 -4 -2
2
4
6
8
vj =
e
1+
aumento a
∑w
i =0 ,...,m
1
−av j
ji
yi
10
• Vj campo induzido do neurônio j
•Uma das funções de ativação mais comum
•a →∞ ⇒ ϕ → função threshold
•Diferenciavel
82
Algoritmo Backpropagation
Algoritmo Back-propagation
Sinal de Função
Passo Forward
Sinal de Erro
Passo Backward
►
Função Sigmoidal
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Algoritmo de Aprendizado
►
80
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Os pesos da rede são ajustados com o objetivo de
minimizar o erro médio quadrático.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
83
►
Duas fases de calculos:
- Forward: inicia na camada de entrada. O sinal
de entrada é propagado e o erro para cada
neurônio da camada de saída é calculado.
- Backward: inicia da camada de saída e o erro
é retropropagado camada por camada pelo
calculo recursivo do gradiente local de cada
neurônio.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
84
14
Notação
►
O sinal de erro da saída do neurônio j na apresentação dos n-th exemplos de
treinamento:
►
Erro na saída do neurônio:
►
Energia total do erro:
►
E(n) =
1
2
Energia média do
erro quadrático:
►
e j (n) = d j (n) - y j (n)
E AV =
1
N
∑ e 2j (n)
j∈C
N
∑ E (n)
n =1
C: conjunto de
neurônios na
camada de
saída
N: tamanho do
conjunto de
treinamento
Objetivo: Ajustar os pesos da rede para diminuir EAV
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
85
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Erro Médio Quadrático
Com w ji peso associado entre o neurônio i e o
neurônio j
87
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Passo na direção oposta ao gradiente
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
porque
∂E
∂E ∂v j
=
∂ w ji
∂ v j ∂ w ji
−
∂E
=δ
∂v j
yi
Campo local
induzido do
neurônio j
86
δ
j
= -
Obtemos
∂E
∂v j
Gradient Local
δ j = ejϕ′ (vj )
porque
∂E
∂E ∂e
−
= −
∂v j
∂e j ∂y
j
j
∂y
∂v
j
= − e j ( − 1 )ϕ ' ( v j )
j
88
Cálculo do gradiente local do neurônio j
Δwji =ηδj yi
Obtemos
i =0 ,...,m
ji
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Regra de atualização
►
∑w
Definição do Gradiente Local do neurônio j
Regra de atualização é baseada no método do
gradiente descendente que caminha na direção
da minimização de E
∂E
∂w ji
vj =
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Regra de atualização dos pesos
Δw ji = -η
e j Erro na saída do neurônio j
y j Saída do neurônio j
∂v j
j
∂w
= yi
ji
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
89
►
O fator chave é o cálculo de ej
►
Existem dois casos:
- Caso 1): j é um neurônio de saída
- Caso 2): j é um neurônio escondido
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
90
15
Gradiente Local do Neurônio Escondido
► Caso
1: j neurônio de saída
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Erro ej do neurônio de saída
ej = dj - yj
Então
δ j = (d j - y j )ϕ ' (v j )
91
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
1
2
∑e
k∈C
∂E
−
= −
∂y j
∑
2
k
j
j
= ϕ '( v j)
(n)
e
k∈ C
de
∂y
∂v
∂ek
=
∂y j
k
e
k∈C
k
⎡ − ∂ek ⎤ ∂v
⎢ ∂v
⎥ ∂y
k
⎣
⎦
∂ek
= ϕ '(v k )
∂v k
−
Obtemos
∑
−
∂E
=
∂y j
∑
δ
k∈C
∂v k
= w
∂y j
k
w
k
j
kj
kj
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
93
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
k∈C
w1j
δj ϕ’(vj)
δ1
ϕ’(v1)
e1
δk
ϕ’(vk)
ek
δm
ϕ’(vm)
wkj
wm j
em
Grafo
orientado do
sinal do erro
retropropagado
para o
neurônio j
94
Exemplo de ajuste sináptico
Regra Delta Δwji = ηδj yi
δj =
92
δ j = ϕ ′ ( v j ) ∑ δ k w kj
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Regra Delta
►
o gradiente local para o neurônio j é
recursivamente determinado em termos do
gradiente local de todos os neurônios no qual o
neurônio j está diretamente conectado
Gradiente Local do Neurônio Escondido
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
E(n) =
∂E ∂y j
∂y j ∂v j
Caso 2: j neurônio escondido
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Gradiente Local do Neurônio Escondido
δj = -
►
ϕ′(vj )(dj − yj )
ϕ′(vj)∑δkwkj
SE j nó de saída
SE j nó escondido
k∈C
C: Conjunto de neurônios na camada que contém um j
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
95
A etapa “calcular erro” é obtida através da Regra
Delta:
wi (n + 1) = wi(n) + Δ
Regra Delta “traduzida”...
Erro = saída esperada - saída obtida
Peso novo = Peso antigo + (Erro *
Constante)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Entrada *
96
16
Exemplo de ajuste sináptico
•
Quando ocorre erro no reconhecimento / tratamento de
uma entrada, um ajuste sináptico é necessário.
•
O ajuste sináptico representa o aprendizado em cada
neurônio do fato apresentado
•
O ajuste sináptico procura corrigir os pesos de modo
que se produza a saída desejada diante da respectiva
entrada.
•
Esse cálculo visa somar ao peso atual, um valor que
corresponda a quantidade de erro gerada pela rede, e
desta forma corrigir o valor do peso.
•
O conhecimento dos neurônios reside nos pesos
sinápticos.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
O Ajuste sináptico durante o aprendizado
97
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
- (x(1), d(1)) :é apresentado,
- uma sequência de forward e backward é
calculada e
- os pesos atualizados usando a regra delta.
- Mesmo para (x(2), d(2)), … , (x(N), d(N)).
99
• Aplicar entrada X
• Comparar saída Y com a saída desejada
• Se saída estiver errada então
• Calcular ajuste em pesos
• Aplicar nova entrada
98
►
O processo de treinamento continua época por
época até que um critério de parada seja
satisfeito.
►
De uma época para outro, a seleção das
amostras de treinamento é feita
aleatoriamente.
100
Exemplo Aprendizado
1.Inicialize os pesos com um número randômico pequeno
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Algoritmo:
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Aprendizado MLP
2.Randomicamente escolha padrão de entrada x(m)
3.Propague o sinal para frente pela rede.
4.Calcule o erro na saída da rede
5.Calcule os erros para as camadas procedentes pela
propagação dos erros
6. Atualize os pesos usando regra delta
7. Volte ao passo 2 e repita para o próximo padrão até o
erro da camada de saída estiver abaixo do threshold préestabelecido ou até um número máximo de iteração
alcançado.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
resultado esperado (di)
Treinamento
Modo sequencial (on-line ou modo
estocástico):
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Saída Y (yi)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Treinamento
►
Entrada X
101
Na figura a seguir, temos uma arquitetura neural do tipo
MLP. Os valores dos pesos iniciais e do padrão de
treinamento está representado na figura. Calcule a
adaptação Δw1 no peso superior do nó escondido
superior, considerando apenas o primeiro passo de
adaptação / aprendizado.Considere a taxa de
aprendizado η = 0.01.
x1μ = 1
W1=+1
f
W5=+1
W3=-1
h
W2=-1,5
x2μ = 2
W4=+1,5
g
yμ = 0.5
W6=-1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
102
17
1
1
Exemplo
0,5
d
-2
vf
-0,95
1
ϕ(vf)
vh
e
-1
103
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Calculamos a saída apresentada pela rede
ϕ (yh)= tgh(-0,95.W5 + 0,95.W6) = tgh(-0,95.1+0,95.1)= - 0,95
Calculamos o erro na saída da rede
e= ϕ (yh) – d = -0,95-0,5=-1,45
105
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
ϕ(vh)
e
-1,45
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
104
►
vg ϕ(vg) 0,95
2
-1
Regra Delta Δwji = ηδj yi
δj =
ϕ′(vj )(dj − yj )
ϕ′(vj)∑δkwkj
SE j nó de saída
SE j nó escondido
k∈C
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
106
Exemplo
δf
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Exemplo
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
-1,90
-0,95
vh
-1
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Primeiro vamos calcular a saída do neurônio f (ϕ
(yf)) e a saída do neurônio g (ϕ (yg))
ϕ (yg)=tgh(x1.W3 + x2.W4) = tgh(1.-1+2.1,5)= 0,95
►
1
Regra Delta
ϕ (yf)=tgh(x1.W1 + x2.W2) = tgh(1.1+2.-1,5)=-0,95
►
-0,95
ϕ(vf)
-1,0
-1,5
2
1,5
Exemplo
►
0,5
d
-2
vf
1
1
-1,5
2
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Exemplo
δh
1
-1,0
-1,5
ϕ’(vf)
1
vh
-1
ϕ’(vh)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
e
107
►
O calculo do erro interno do neurônio
escondido
δ f = ϕ′ (vf ).δ h w5
►
O gradiente em h será a derivada parcial da saída em
relação a saída interna do neurônio
δ h = ϕ′ (ϕ( y f ).w5 + ϕ( yg ).w6 )
δ h = ϕ ′ (− 1,90 ) = 0,1
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
108
18
Exemplo
Exemplo
• O cálculo ϕ′ (vf )
ϕ′f' = ϕ′' (x1μ .w1 + x2μ .w2 ) = ϕ′' (−2) = 0,08
• O resultado do δ f
δ f = ϕ′ (vf ).δ h w5
δ f = 0,08.0,1.1 = 0,008
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
111
Logo
W1μnovo = W1 + ΔW1μ = 1 + 0,00008 = 1,00008
Aproximação de funções com o MLP /
superposição de sigmoides deslocadas
Reconhecimento de caracteres manuscritos
Reconhecimento de placas de veículos
Reconhecimento de voz
Reconhecimento de faces
Classificação
-
►
112
Reconhecimento de padrões
-
►
110
Aplicações
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
ΔW1μ = 0,01.0,008.1 = 0,00008
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Áreas de aplicações
►
Regra Delta
ΔW1μ = η .δ f .x1μ
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
109
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Classificação de tumores
Classificação de odores
Classificação de vinhos
Classificação de café
Previsão de séries temporais não lineares
- Tendência de carteiras de bolsa de valores
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
113
►
Ex: aplicação em metrologia e linearização de sensores - trabalho de
mestrado de (I.M. Barbosa)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
114
19
Reconhecimento de caracteres manuscritos
►
Aplicação das MLP’s nas curvas
de calibração da Balança Externa
do túnel de vento TA-2.
►
Balança Externa => Instrumento
de medição de forças e
momentos aerodinâmicos.
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Aplicação MLP na Confiabilidade Metrológica
Itamar Magno Barbosa
(estudante de doutorado)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
115
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Classificação de câncer de mama
• Categorizar produtos para
comércio eletrônico
• Com base no texto descritivo do
produto, se faz medidas usadas
para treinar o classificador
Eduardo Akira Kinto
Eletrônico > TV
(estudante de doutorado)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
117
►
Para cada imagem de mama, o
médico define a região de
interesse e traça o contorno sobre
a região suspeita
Técnicas de processamento de
imagens são aplicadas para a
extração de medidas (features)
para caracterizar uma lesão.
Estas features e sua etiqueta (maligno/benigno) são
usadas para treinar o MLP.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
nódulo benigno
com contorno
espiculado.
a)
c)
nódulo
maligno com
contorno
circunscrito.
nódulo maligno
com contorno
espiculado.
b)
d)
118
Classificação de vinho/café
119
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
nódulo benigno
com contorno
circunscrito
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Classificação de câncer de mama
►
116
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Categorização de textos WEB
Televisão
Xtrom29’’
Preço $900
The MINIST
database
►
Fonte de medidas de
vinho é a língua
eletrônica.
►
Dispositivo com centenas
de sensores (p.ex. 100)
►
A cada amostra de vinho
são coletadas 100
medidas.
►
As medidas de uma
coleção de vinho são
usadas para treinar MLP.
A "língua eletrônica" / Foto: Embrapa
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
120
20
Camada
de
entrada
Camada
de
saída
Camada escondida
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
121
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Aplicação MLP
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
123
Aplicações
122
O aprendizado não-supervisionado não requer saídas
desejadas e por isso é conhecido pelo fato de não precisar
de “professores” para o seu treinamento.
►
Para o treinamento da rede, são usados apenas os
valores de entrada. A rede trabalha essas entradas e se
organiza de modo que acabe classificando-as, usando para
isso, os seus próprios critérios.
►
125
neurônios de saída
(cada neurônio tem N dimensão)
...
padrão de entrada
(dimensão N)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
124
Arquiteturas de Kohonen (SOM) para clustering
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Aprendizado
Arquitetura da rede SOM
Rede SOM e o Aprendizado Não-Supervisionado
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Arquitetura
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Arquitetura do SOM
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
SOM
sexo
idade
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
126
21
sexo
Aprendizado SOM
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Dados são agrupados em torno de protótipos
organizados em espaço bidimensional
idade
127
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
►
Inicialização: defina o tamanho do mapa e seus respectivos
pesos, w, aleatoriamente. Defina a relação de vizinhança do
mapa.
►
Ativação: escolha um padrão de entrada, x, do conjunto de
treinamento.
►
Calcula a resposta do mapa:
►
Adaptação:
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Exemplo de treinamento do SOM
128
Exemplo de treinamento do SOM
Espaço do Reticulado
B
C
...
D
E
F
...
G
H
I
...
...
...
...
D
E
xi
B
H
BMU
G
...
Atr1 (idade)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
129
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
130
Aprendizado SOM
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Vizinhança SOM
Vizinhança hexagonal
Espaço de Atributos
Vizinhança retangular
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
131
(idade)
F
A
C
A
...
I
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Espaço de Atributos
Atr2 (sexo)
...
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Espaço do Reticulado
Base de
dados
(sexo)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
132
22
Rede SOM
Áreas de aplicação
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Classificação de dados
Aplicações
133
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Áreas de aplicação
Áreas de aplicação
2-D
Mineração de dados
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Visualização de dados
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
134
3-D
135
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
136
Algumas aplicações do SOM
Áreas de aplicação
Base
de
Dados
SOM
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Mineração de dados
K-medias
protótipos /
vetores de pesos
IDB
k
Esquema para segmentação do mapa SOM
(VESANTO E ALHONIEMI, 2000)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
137
►
►
►
►
►
Divisão de universos de dados multidimensionais em
sub-grupos de elementos similares
(Congresso ABAR 2003 – segmentação de empresas
do setor elétrico – trabalho de Virginia Parente et al.)
Data mining (R.J.Sassi, L.A.Silva e C.Boscarioli)
Pré processamento de dados multidimensionais para
posterior classificação, de padrões dentro de sub
universos mais específicos (C.Boscarioli e L.A.Silva)
Recuperação de imagens baseda em conteúdo
(L.A.Silva)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
138
23
Recuperação de imagens basedo em conteúdo
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Recuperação de imagens basedo em conteúdo
400 imagens
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
139
Descoberta de conhecimento em base de
Rough Sets
+
SOM
dados
Sistema de Decisão (SD)
Atributo de
Decisão
Atributos Condicionais
Experiência do
Vendedor
Qualidade do
Boa
Produto
Localização
Retorno
Loja
(EV)
(QP)
(BL)
e1
Alta
Boa
Não
Lucro
e2
Média
Boa
Não
Prejuízo
e3
Média
Boa
Não
Lucro
e4
Baixa
Média
Não
Prejuízo
e5
Média
Média
Sim
Prejuízo
e6
Alta
Média
Sim
Lucro
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Descoberta de conhecimento em base de
Descoberta de conhecimento em base de
dados
dados
Redução (seleção) de atributos por Rough Sets
►
Existem Dois Redutos:
►
-{Experiência do Vendedor (EV), Qualidade do
Produto (QP)}
►
-{Experiência do Vendedor (EV); Boa Localização
(BL)}
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
143
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
141
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Descoberta de conhecimento em base de dados
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
140
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
►
Base de Dados Consumidor [SAS05].
►
Contém informações de 1.968 consumidores
com 48 atributos, sendo 47 atributos
condicionais e um atributo de decisão dividido
em duas classes (M = masculino; F = feminino).
►
Eliminou-se o atributo número da conta do
consumidor. O atributo prefixo do nome é
nominal e foi transformado em numérico para
ser processado pela rede SOM.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
142
144
24
Descoberta de conhecimento em base de
Descoberta de conhecimento em base de
dados
dados
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
SOM sem redutos (47 atributos)
145
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
-Treinamento
Para os interessado em saber mais sobre está pesquisa:
(SASSI, 06) SASSI, R.J., Uma arquitetura híbrida
para descoberta de conhecimento em bases de
dados teoria dos rough sets e redes neurais
artificiais mapas auto-organizáveis. Disponível
para download em:
http://www.teses.usp.br/teses/disponiveis/3/3142/tde-16032007163930/
147
do tipo de cerâmica.
região da argila.
► Analisar
quais “medidas” devem ser feitas
para caracterizar cerâmica.
► Classificar
cerâmicas falsas/adulteradas
► Verificar
semelhanças entre argilas das
regiões do país.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Projeção das cerâmicas no mapa.
Projeção após treinamento
148
Outras aplicações de SOM
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
► Determinar
-
com Depósitos A e B;
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Classificação de cerâmicas
(arqueologia)
► Classificação
146
Classificação de cerâmicas (arqueologia)
dados
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
9 clusters
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Descoberta de conhecimento em base de
►
SOM com redutos (3 atributos)
149
► Classificação
de dados categóricos
(organização de biblioteca)
► Detecção
de intrusos (avaliar se requisição
em servidor é ou não maliciosa)
► Segmentação
de imagens médicas
► ...
► etc
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
150
25
Resumo
Tarefas que as redes neurais podem
desempenhar
(1) Reconhecimento de padrões
(2) Agrupamento/categorização
(3) Aproximação de função
(4) Predição/ Previsão de séries temporais
(5) Otimização (caixeiro viajante)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
151
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Resumo
Tarefas que as redes neurais podem
desempenhar (cont)
(6) Recuperação de padrões ruidosos
(7) Controle (controle de velocidade)
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
152
Arquitetura
MLP
SOM
Algoritmo de
aprendizado
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Resumo
Aplicação
Back-propagation
Reconhecimento de
padrões, classificação
de padrões,
aproximação de
funções, previsão de
séries temporais não
lineares, etc
Kohonen
Categorização de
padrões, análise de
dados, visualização de
dados, ‘agrupamento
de dados’
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
153
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
154
Algumas ferramentas disponíveis
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Algumas ferramentas disponíveis
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Ferramentas
disponíveis
155
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
156
26
Algumas ferramentas disponíveis
Vantagens em usar help neural toolbox matlab
- Concilia conceitos teóricos e práticos em um único
ambiente.
►
Desvantagens em usar help neural toolbox matlab
- Preciso pagar licença MatLabR
- Não consegue exportar o código.
- Fica preso ao uso do Matlab
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
157
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Simulador de redes neurais
►
Vantagens
-
Algumas ferramentas disponíveis
http://www.cis.hut.fi/projects/somtoolbox/
É livre
Várias arquiteturas implementadas
Interface gráfica
Código fonte disponível
Possibilidade de incorporar outras redes.
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
159
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
►
Toolbox de SOM implementado pelo grupo de pesquisa do
Kohonen
►
Vantagens
É livre
Código fonte disponível
Possibilidade de implementar contribuições.
Tem versão implementada em MatLab e em C
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
160
Usar o não usar Toolbox
161
►
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Algumas ferramentas disponíveis
-
158
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Algumas ferramentas disponíveis
►
http://www-ra.informatik.uni-tuebingen.de/SNNS/
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Algumas ferramentas disponíveis
Vantagens
- Facilita bastante o entendimento
- Rapidamente produz resultados experimentais
- O uso do toolbox pela comunidade permite comparar
resultados
►
Desvantagens
- Pode prejudicar o entendimento mais aprofundado
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
162
27
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Sociedades Científicas
Sociedades e
Eventos
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
163
No Brasil
- Congresso Brasileiro de Redes Neurais, bianual, da SBRN. Próximo:.2009
- Simpósio Brasileiro de Redes Neurais,bi-anual,
da SBC. Próximo: 2008.
165
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
Internacional
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Brasileira
- Sociedade Brasileira de Redes Neurais, SBRN,
www.sbrn.org.br
164
►
►
►
Endereços WEB
- http://www.gc.ssr.upm.es/inves/neural/ann2/anntutor.htm
- http://www.kcl.ac.uk/neuronet/intro/index.html.
- http://documents.wolfram.com/applications/neuralnetworks/
- http://www.basegroup.ru/neural/math.en.htm
Introdutório
- Artificial Neural Networks: A Tutorial, de autoria de Anil K Jain e
Jianchang Mao, publicado na IEEE Computer de março de 1996,
pp. 31-44,
- Kovács, Zsolt L.: Redes Neurais Artificiais - Fundamentos e
Aplicações, Collegium Cognito, 1996.
Para se aprofundar
- Haykin (1999) - Neural Networks
- Bishop (1995) - Neural Networks for Pattern Recognition
- Kovács, Zsolt L.: O cérebro e sua mente, 1997.
- Bear M.F, Connors, B.W., Paradiso, M.A., Neurociências –
Desvendando o sistema nervoso, 2002.
166
Muito Obrigado….
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
mineração
ão de dados
Redes neurais artificiais em reconhecimento de padrões e mineraç
►
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Grupo ICONE
(Grupo de Inteligência Computacional, Modelagem e Neurocomputação )
http://www.lsi.usp.br/icone
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
- International Neural Networks Society, INNS,IEEE
Computational Intelligence Society
• Neural Networks, INNS IEEE Trans. on Neural
networks, IEEE
Referências
- International Joint Conference on Neural
Networks (IJCNN) anual, da INNS e IEEE-NNS.
Próximo: Hong Kong, 2008.
►
Internacionais:
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
Congressos
►
►
167
Leandro Augusto da Silva
Escola Politécnica da Universidade de São Paulo
Departamento de Eng. De Sistemas Eletrônicos
[email protected]
www.lsi.usp.br/~leandro
Leandro Augusto da Silva – [email protected] – www.lsi.usp.br/~leandro
168
28
Download

Folhetos - Curso de Ciência da Computação