1. Redes Neurais Articiais
Redes Neurais Articiais
Dino Magri
dinomagri@gmail.com
Universidade do Estado de Santa Catarina
Inteligência Articial
29 de maio de 2011
2. Redes Neurais Articiais
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
3. Redes Neurais Articiais
Introdução
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
4. Redes Neurais Articiais
Introdução
Histórico
Provavelmente a mais antiga técnica de IA em uso.
Década de 40 por Walter Pitts e McCulloch
(primeiro matemático e o segundo neurosiologista)
Análogia entre neurônios biológicos e circuitos eletrônicos
5. Redes Neurais Articiais
Introdução
Histórico
Von Neumann, propôs a arquitetura dos computadores
eletrônicos atuais, nesta mesma década
Donald Hebb - Defendeu que o condicionamento psicológico
clássico está igualmente presente em qualquer animal, por ser
um propriedade dos neurônios.
Hebb foi o primeiro a propor uma lei de aprendizagem
especica para as sinapses dos neurônios.
6. Redes Neurais Articiais
Introdução
Histórico
Primeiro Neurocomputador (Snark) foi criado em 1951 por
Mavin Minsky (serviu apenas de inspiração para projetos
posteriores)
Em 1957 Frank Rosenblatt criou uma rede neural com o nome
de Perceptron.
Simulação computacional para a retina - demonstrou como o
sistema nervoso visual reconhece padrões
7. Redes Neurais Articiais
Introdução
Histórico
Porém Marvin Minsky e Seymor Papert provaram que redes
neurais de uma unica camada não seriam capazes de resolver
problemas simples como a operação lógica XOR (OU
exclusivo):
A XOR B ↔ (A ∨ B ) ∧ ¬(A ∧ B )
Esse trabalho desestimulou os pesquisadores e somente em
1982, quando John Hopeld apresentou um trabalho, no qual
ele descreveu um modelo de rede neural, baseado no sistema
nervoso de uma lesma, o interesse por tais algoritmos renasce.
8. Redes Neurais Articiais
Princípios de Neurocomputação
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
9. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
Cérebro humano - 10 bilhões de neurônios
Cada neurônio - até 10.000 sinapses1 com outros neurônios
Se cada ligação == 1 bit, teriamos 100 trilhões de bits 11,37
terabytes de capacidade máxima de memória
1
Sinapses - Regiões de comunicação entre os neurônios
10. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
Figura: Um neurônio2 .
2
Fonte - colinfahey.com
11. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
Figura 1 mostra um neurônio e os principais componentes são:
Corpo da célula ou Soma - é responsável por coletar e
combinar as informações vindas de outros neurônios.
Dendritos3 - Recebe os estímulos transmitidos pelos outros
neurônios.
Axônio4 - Responsável por transmitir estimulos para outras
células.
3
Clique para mais informações sobre Dendritos
4
Clique para mais informações sobre Axônio
12. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
O neurônio matemático recebe um ou mais sinais de entrada e
devolve um único sinal de saída, que pode ser distribuído como
sinal de saída da rede, ou como sinal de entrada para um ou vários
outros neurônios da camada posterior.
Figura: Representação do neurônio matemático5 .
5
Fonte - Livro Redes Neurais [Montgomey e Ludwig]
13. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
Os sinais de entrada chegam simultaneamente aos
neurônios, por isso as redes são classicadas como
instrumentos de processamento paralelo. (No PC isso é
simulado!!!)
Dendritos e axônios são representados matematicamente
apenas pelas sinapses e a intesidade da ligação é
representada por um grandeza denominada peso sináptico,
simbolizada pela letra w
As entradas, x, são apresentadas ao neurônio, são
multiplicadas pelos pesos sinápticos correspondentes,
gerando as entradas ponderadas:
w1 x1 , w2 x2 , ..., wn xn
14. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
O neurônio totaliza todos os produtos e o resultado desta
somatório é denominado pela Função de Combinação ou Função de
ativação representada pela letra v :
n
v= wi xi
i =0
Então o valor é passado para a Função de transferência, que evita
o acrésimo progressivo dos valores de saída ao longo das camadas
da rede.
Esse modelo é simplicado e o neurônio é estático, ou seja, não
considera a dinâmica do neurônio natural.
15. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
Algumas funções de tranferências utilizadas:
Função sigmóide:
1
ϕ(v ) =
1 + e −v
Função gaussiana:
ϕ(v ) = e −v
2
Função tangente hiperbólica:
ϕ(v ) = tanh(v )
16. Redes Neurais Articiais
Princípios de Neurocomputação
Neurônios
O modelo matemático também pode incluir uma polarização ou
bias de entrada, representada pela letra b.
Esta variável é incluída no somatório da função de ativação, com o
intuito de aumentar o grau de liberdade desta função e,
consequentemente, a capacidade de aproximação da rede.
O valor do bias é ajustado da mesma forma que os pesos
sinápticos.
O bias permite que um neurônio apresente saída não nula
ainda que todas as suas entradas sejam nulas.
17. Redes Neurais Articiais
Princípios de Neurocomputação
A Rede Neural Articial
rna
Combinando os neurônios em uma ou mais camadas, que podem
conter um ou mais neurônios e interligando estes neurônios através
das sinapses, pode-se formar uma RNA (Rede Neural Articial).
Em geral possuem:
Uma camada de entrada ou de distribuição - tem número
de nós igual ao número de sinais de entrada da rede.
Uma, nenhuma ou várias camadas ocultas - são
constituidas de um ou mais neurônios ocultos.
Uma camada de saída - contém, necessariamente, um
número de neurônios igual ao número de sinais de saída da
rede.
18. Redes Neurais Articiais
Princípios de Neurocomputação
A Rede Neural Articial
Ajustando os valores de seus pesos sinápticos, a rede neural pode
representar (ou memorizar) as relações entre os dados de entrada e
saída, assumindo uma característica de memória associativa.
Figura: Sinais de entrada e de saída em uma cadeia de neurônios
interligados de uma RNA6 .
6
Fonte - Livro Redes Neurais [Montgomey e Ludwig]
19. Redes Neurais Articiais
Princípios de Neurocomputação
A Arquitetura da Rede
Amplamente conectada (fully connected)
Realimentação (feedback)
A arquitetura da rede neural é livre, ou seja, não existe
formalização que determine quantas camadas, ou quantos
neurônios devem existir
Esta formalização irá depender do projetista, que deverá variar
esse número para alcançar o melhor desempenho com um
conjunto de dados reservados para testes e validação.
20. Redes Neurais Articiais
Princípios de Neurocomputação
Controle do Aprendizado
Supervisionado
Não supervisionado
21. Redes Neurais Articiais
Princípios de Neurocomputação
Controle do Aprendizado
supervisionado
Rede treinada com pares de conjunto de entrada e de saída
desejada
Quando é apresentada à rede este conjunto de entrada, esta
retorna um conjunto de valores de saída, que é comparado
ao conjunto de valores de saída desejado.
Em seguida, os pesos sinápticos e níveis de bias são
ajustados de forma a minimizar a diferença entre a saída
apresentada pela rede e a saída desejada.
O processo é repetido para todos os pares de entrada e saída
que constituem o conjunto de treinamento da rede, até que a
taxa de acerto seja considerada satisfatória.
22. Redes Neurais Articiais
Princípios de Neurocomputação
Controle do Aprendizado
não supervisionado
A rede não recebe informações sobre valores de entrada e
organiza sua estrutura de modo a fazer a classicação
deste valores em grupos.
Classicação de dados pelo reconhecimento de padrões, ou
seja, detecção de características em comum entre conjuntos de
dados.
Processo de competição e cooperação entre os neurônios.
23. Redes Neurais Articiais
Princípios de Neurocomputação
Algoritmo de Aprendizado
Depois de treinada a rede pode ser utilizada em diversas áreas do
conhecimento humano, ainda que na ausência de uma especialista.
Atualmente existem diversos algoritmos utilizados para ajustar os
pesos sinápticos e o nível de bias de uma rede neural, dentre as
quais pode-se destacar:
Aprendizagem por correção de erros (regra delta) Aprendizado
supervisionado!!!
Aprendizagem competitiva (regra de Kohonen) Aprendizado
não supervisionado!!!
Aprendizagem baseada em memória
Aprendizagem hebbiana
Aprendizagem de Boltzmann
24. Redes Neurais Articiais
Projeto de uma Rede Neural
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
25. Redes Neurais Articiais
Projeto de uma Rede Neural
projeto rede neural
Coleta e seleção de dados
Conguração da rede
Treinamento
Teste
Integração
26. Redes Neurais Articiais
Projeto de uma Rede Neural
Coleta e Seleção de Dados
coleta e seleção de dados
É fundamental
Minimizar ambiguidades e erros
Cobrir amplamente o domínio do problema, incluindo as
exceções e as condições limites
2 categorias:
1. Dados de treinamento, para treinar a rede
2. Dados de validação, verica o desempenho da rede
O número adequado de dados para o treinamento de uma
RNA é função do número de sinapses e bias desta rede
Assim, quanto mais variáveis livres (sinapses e bias) uma RNA
tiver, mais restrições (exemplos de treinamento) serão
necessários
27. Redes Neurais Articiais
Projeto de uma Rede Neural
Conguração da rede
conguração da rede
4 etapas:
1. Seleção do paradigma neural apropriado à aplicação, qual a
conguração a ser utilizada (perceptron simples, de multiplas
camadas, rede de kohonen, etc.)
2. Determinação da topologia da rede, ou seja, o número de
camadas e o número de neurônios em cada camada
3. Determinação do algoritmo de treinamento, a taxa de
aprendizado, demais parâmetros de treinamento
4. Determinação do tipo de função de transferência
Escolha feita de forma empírica, apesar de o autor citar que
existem algumas heurísticas que conduzem a opção mais
acertada
28. Redes Neurais Articiais
Projeto de uma Rede Neural
Treinamento
treinamento
Ajuste dos pesos das conexões
Determinação dos valores iniciais dos pesos sinápticos
(inicialização da rede), de forma aleatória
Qual algoritmo de aprendizagem utilizar - basicamente
empírico
E quanto tempo de treinamento para o aprendizado da rede -
pode-se adotar um número máximo de ciclos, a taxa de
erro médio por ciclo, ou ainda, a capacidade de
generalização da rede (pode causar over-training )
O ideal é que o treinamento venha a ser interrompido quando a
rede apresentar uma boa capacidade de generalização e quando
a taxa de erro foi admissível. Assim, deve-se encontrar um
ponto ótimo de parada com erro mínimo e capacidade de
generalização máxima
29. Redes Neurais Articiais
Projeto de uma Rede Neural
Teste
teste
Verica se a rede não decorou os dados de entradas e valida
a rede para a aplicação desejada.
Deve-se considerar outros testes como a análise dos pesos
sinápticos e níveis de bias, pois se existirem valores muito
pequenos, as conexões associadas podem ser consideradas
insignicantes e então serem eliminadas (prunning )
30. Redes Neurais Articiais
Projeto de uma Rede Neural
Integração
integração
Com a rede valida e treinada, é possível a integração dela a
um sistema.
Este sistema deve fazer a manutenção da rede quando for
necessária ou avisar aos projetistas as necessidades de novas
seções de treinamento.
31. Redes Neurais Articiais
Perceptron
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
32. Redes Neurais Articiais
Perceptron
Arquitetura mais simples
Possui apenas uma camada de entrada e uma camada de
saída, não há camadas de neurônios intermediárias.
Utilizado apenas em estruturas de decisão simples.
33. Redes Neurais Articiais
Perceptron
Função de ativação - Faz a soma ponderada dos sinais de
entrada
Função de transferência
- Determina a saída do neurônio, em função da soma ponderada.
Podemos comparar isto a uma situação real de reação do
organismo quando se encosta em algo quente: a entrada da
temperatura pelos sensores indicam a possível queimadura,
que ativa o cérebro a enviar um comando (a saída) de se
afastar imediatamente.
34. Redes Neurais Articiais
Perceptron
Os valores: wi j , representam os pesos sinápticos das ligações
entre os neurônios: o elemento i da camada de entrada com
o neurônio j da camada de saida, e simula a ecácia da
sinapse entre os nerônios naturais
35. Redes Neurais Articiais
Perceptron
A função de ativação está representada pela letra v, e tem o
formato: n
vj = wi j xi
i =1
A função de transferência está representada pelo simbolo: ϕ e,
normalmente, são utilizadas funções de limite ríspido como a
função degrau, onde a função pode assumir dois valores,
conforme:
1, ∀ v 0
ϕ(v ) =
0, ∀ v 0
36. Redes Neurais Articiais
Perceptron
As funções de limite ríspido são quem determinam a veracidade
de uma entrada denida, como o caso do exemplo dado:
o imediado afastamento do objeto é uma reação normal, caso
o objeto esteja realmente quente. Informação Verdadeira!
caso contrário, o cérebro não reage deixando a pessoa se
encostar naturalmente no objeto. Informação Falsa!
Estas informações só são absorvidas com o aprendizado
37. Redes Neurais Articiais
Perceptron
algoritmo de aprendizagem do perceptron
O ajuste correto dos pesos sinápticos é obtido,
iterativamente, através de um algoritmo de aprendizado que,
no caso do perceptron de um única camada, é a regra delta.
O elemento de processamento que utiliza essa regra é o
ADALINE Adaptive Linear Neuron ou Adaptive Linear Element
38. Redes Neurais Articiais
Perceptron
algoritmo de aprendizagem do perceptron
1. Atribui-se aos pesos valores aleatórios e, com eles, apresenta-se
um conjunto de sinais de entrada e calcula-se a resposta da
rede
2. Então, comparam-se os valores calculados com os valores
desejados (treinamento supervisionado).
3. Caso erro não aceitável, faz-se o ajuste de pesos
proporcionalmente ao erro E (j ) = d (j ) − y (j ) e ao valor do
sinal de entrada correspondente. (Quanto maior o erro, maior
deve ser a correção)
4. A expressão que representa este processo:
w (i , j )T +1 = w (i , j )T + η E (j )T x (i )
39. Redes Neurais Articiais
Perceptron
w (i , j )T +1 = w (i , j )T + η E (j )T x (i )
Valor do erro corrigido: w (i , j )T +1
Valor do peso na iteração anterior: w (i , j )T
Valor do erro para o neurônio j: E (j )T
Taxa de aprendizado: η
Índice do sinal de entrada: i
Iteração: T
Índice do neurônio: j
Sinal de entrada: x (i )
40. Redes Neurais Articiais
Perceptron
O Erro E (j ) é a diferença entre o sinal de saída desejado para o
neurônio j, representado por d (j ), e o sinal de saída calculado pela
rede para aquele neurônio, y (i ), representado na equação:
E (j ) = d (j ) − y (j )
O Erro médio para todos os neurônios da camada de saída na
iteração T será:
n |E (j )|
ε(T ) =
j =1
n
em que n é o número médio de neurônios da camada de saída. O
erro médio para todo o conjunto de treinamento será:
n ε(T )
εmed = T =1
n
Este valor pode ser utilizado como referência para o encerramento
da seção de treinamento pela avaliação do nível de precisão da rede.
41. Redes Neurais Articiais
Perceptron
Exemplo 1:
http://www.dinomagri.com/downloads/ia/rna.zip
Usaremos dois sinais de entrada e um neurônio na
camada de saída. Esta rede, após o treinamento será capaz
de classicar quatro individuos em duas classes, conforme
segue:
COMPOSITOR CIENTISTA
BACH X
BEETHOVEN X
EINSTEIN X
KEPLER X
42. Redes Neurais Articiais
Perceptron
Primeiro passo é codicar as informações em base binária.
BACH = 00
BEETHOVEN = 01
EINSTEIN = 10
KLEPER = 11
COMPOSITOR = 0
CIENTISTA = 1
Conclui-se que apenas 2 elementos na camada de entrada são
necessários, pois o número de elementos necessários, em base
binária, é dada pela fórmula: X = 2n , em que n é o número de
elementos na camada de entrada e X é o número de sinais de
entrada.
Para a camada de saída vale a mesma relação, logo para
representar dois valores necessita-se de apenas 1 neurônio.
43. Redes Neurais Articiais
Perceptron
passo a passo
Adiciona-se 1 bias de entrada ao neurônio, para melhorar a
capacidade de aproximação, tendo assim mais um parâmetro
livre
Arbitrar o valor zero para todos os pesos sinápticos e o bias
Sinal de entrada do bias b é constante e tem sempre o valor
positivo 1
Calcular o valor da função de ativação
44. Redes Neurais Articiais
Perceptron
passo a passo
Após, aplicar a função de transferência:
1. Se saída está correta, mantêm os mesmos pesos sinápticos e
o bias e espera os próximos sinais de entrada
2. Se saída está incorreta:
a Compara com a saída desejada e terá o valor do Erro, que a
diferença entre o esperado e o encontrado
b Arbitrar taxa de aprendizado = 1
c A correção será aplicada pela formula:
w (i , j )T +1 = w (i , j )T + η E (j )T x (i )
3. Com os novos pesos, espera os próximos sinais de entrada
Repete-se todo o processo novamente
47. Redes Neurais Articiais
Perceptron
conclusões do perceptron
Estas redes só resolvem problemas cujas classes sejam
linearmente separáveis, o que não é o caso no problema do ou
exclusivo (XOR).
Desta forma, se Beethoven resolvesse ser cientista e Kleper
compositor, a rede jamais aprenderia a classica-los, porque
estas mudanças resultariam no problema XOR, conforme a
tabela abaixo:
COMPOSITOR CIENTISTA
BACH(00) 0
BEETHOVEN(01) 1
EINSTEIN(10) 1
KEPLER(11) 0
48. Redes Neurais Articiais
Perceptron
A função de ativação v é linear, sendo assim, a reta no
diagrama ao lado contém todos os pares ordenados de valor
X1 e X2 , onde o valor de v é igual a zero.
Figura: Exemplo de função de ativação
A equação desta reta, a qual é apresentada na Figura anterior,
é obtida da seguinte formula:
49. Redes Neurais Articiais
Perceptron
v = b + w 1 X1 + w 2 X2 = 0
, que resolvendo para X2 , encontra-se:
(w1 X1 + b)
X2 = −
w2
Para os pontos acima desta reta o valor de v será maior do
que zero, o que resultará um sinal de saída igual a 1 positivo
Para os pontos abaixo desta reta, v será menor do que
zero, resultando um sindal de saída igual a zero
Ou seja, esta reta é uma fronteira de decisão na classicação
dos sinais de entrada
Assim, sempre que projetar um simples perceptron, deve
vericar se as entradas não recaem neste problema com
a saída, para evitar que uma solução não seja encontrada.
50. Redes Neurais Articiais
A rede de Kohonen
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
51. Redes Neurais Articiais
A rede de Kohonen
kohonen
Idealizado por Teuvo Kohonen
Algoritmo é um modelo de mapa auto-organizável
Treinamento não supervisionado
Nesta estrutura, os neurônios estão dispostos como nós de
uma grade que, normalmente, é uni ou bidimensional.
No caso de uma mapa bidimensional, a geometria é livre,
podendo ser quadrada, retangular, triangular, etc.
52. Redes Neurais Articiais
A rede de Kohonen
Princípio fundamental → Aprendizagem competitiva
Ao se apresentar uma entrada à rede, os neurônios competem
entre si e o vencedor tem seus pesos ajustados para responder
melhor ao supracitado estímulo
Também é simulado um processo de cooperação entre o
neurônio vencedor e seus vizinhos topológicos, que também
recebem ajustes.
A motivação para a criação deste modelo neural é a teoria de
que no cérebro humano, entradas sensoriais diferentes são
mapeadas em regiões especícas do córtex cerebral.
A isto se pode denominar de distribuição de probabilidade
codicada por localização
53. Redes Neurais Articiais
A rede de Kohonen
Uma rede com 8 nós deentrada, e quatro neurônios, dispostos em
uma grade bidimensional quadrada. Cada neurônio da grade está
totalmente conectado com todos os nós da camada de entrada
54. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
algoritmo
O algoritmo inicia o processo arbitrando pequenos valores
aleatórios aos pesos sinápticos, para que nenhuma
organização prévia seja imposta no mapa
Após isso, é iniciado o processo de competição,
cooperação e adaptação sináptica
55. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
processo competitivo
Imagine que um vetor de entrada (selecionado aleatóriamente),
representado por: x = [x1 , x2 , ..., xn ]T é apresentado à rede
sem que se especique a saída desejada.
Um neurônio y deverá responder melhor a esta entrada, ou
seja, será o neurônio vencedor
Para a escolha do neurônio vencedor usa-se a distância
euclidiana. Assim, o neurônio que apresenta a menor
distância euclidiana entre o vetor de entrada e o seu vetor de
pesos é o vencedor.
56. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
Considerando que o vetor:
wi = [wi 1 , wi 2 , ..., wi n ]T ,
represente os valores dos pesos sinápticos de um neurônio i
no instante t e o vetor
x = [x1 , x2 , ..., xn ]T ,
represente um exemplo de treinamento apresentado à rede no
mesmo instante t, a distância euclidiana entre wi e x, será
dada pela equação:
N
di (t ) = (xj (t ) − wi j (t ))2 , onde :
j =1
57. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
di (t ), é a distância euclidiana entre o vetor de pesos do
neurônio i e o vetor de entrada, na iteração t;
i, é o índice do neurônio
j, é o índice do nó de entrada
N, número de sinais de entrada (número de dimensões do
vetor x)
xj (t ), é o sinal de entrada no nó j na iteração t
wi j (t ), é o valor do peso sináptico entre o nó de entrada j e o
neurônio i na iteração t
58. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
processo cooperativo
O neurônio vencedor indica o centro de uma vizinhança
topológica hik , que indica o grau de interação ou cooperação
entre o neurônio i e seu vizinho k, é simétrico em relação ao
neurônio vencedor k e decrese monotonamente com o
aumento da distância lateral lik até que, no limite em que lik
tende a innito hik tende a zero.
A função gaussiana abaixo atende estas condições:
l
2
ik
hi k = e (− 2σ2 ) , onde :
59. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
O termo li k 2 , no caso de uma grade bidimensional, é a
distância euclidiana entre os neurônios i e k.
O parâmetro σ é denominado de largura efetiva da vizinhança
topológica e deve diminuir com o passar do tempo, o que
implica em valores de hi k menores ao longo do tempo.
Isto caracteriza uma vizinhança mais restrita e, portanto, mais
especializada. O valor de σ é, normalmente, uma função
exponencial com a seguinte forma:
(− τt )
σ(t ) = σ0 .e 1 ,
em que σ0 é o valor inicial de σ , t é o número de iterações e
τ1 é uma constante de tempo
60. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
processo adaptativo
O aprendizado de um mapa auto-organizável, se dá pelo
ajuste de seus pesos sinápticos.
Considere, wi j entre o nó de entrada j e o neurônio i, o ajuste
∆wi j que este deve sofrer, será dado pela equação:
∆wi j = η(t ).hi k (t ).(xj − wi j ), onde :
o termo hi k (t ) é o parâmetro vizinhança topológica na
iteração t, no qual o índice k se refere ao neurônio melhor
classicado k.
xj é o valor do exemplo de entrada e wi j é o peso do neurônio
O parâmetro taxa de aprendizagem η(t ), geralmente é denido
pela expressão:
t
(− )
η(t ) = η0 .e τ1 ,
61. Redes Neurais Articiais
A rede de Kohonen
Algoritmo da rede
onde τ1 é uma constante de tempo
e η0 é o valor inicial adotado, o qual deve ser maior que zero e
menor que um
Nota-se que a taxa de aprendizagem decresce gradualmente
ao longo do tempo. A nalidade é evitar que dados novos,
apresentados após um longo treinamento, venham a
comprometer seriamente o conhecimento que já está
sedimentado
O mesmo ocorre com o cérebro humano: quanto mais idoso se
torna, menor é a capacidade de aprender
62. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
1. Denir os pesos inicias dos arcos aleatóriamente;
2. Denir os valores de σ(0), τ1 , η e o valor do erro;
3. Inserir exemplo de treinamento;
4. Encontrar a distância euclidiana para cada neurônio;
5. Encontrar o neurônio vencedor;
6. Para cada neurônio da rede fazer:
6.1 Calcular a largura efetiva σ(t );
6.2 Calcular a distância lateral l 2 ;
6.3 Calcular a vizinhança topológica h;
6.4 Calcular a taxa de aprendizagem η(t );
6.5 Calcular os valores ∆w para cada arco do neurônio e seu
respectivo ajuste (novo valor de w );
7. Voltar ao paso 3 até que as distâncias euclidianas satisfaçam o
erro denido;
63. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Exemplo 2, tem três nós de entrada e seis neurônios dispostos
Figura: Rede Kohonen bidimensional para treinamento
65. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 2 - Denir os valores de σ(0), τ1 , η e o valor do erro
σ(0) = 0.8
τ1 = 10
η = 0.8
Valor do erro = 0.99
66. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 3 - Inserir exemplo de treinamento
Primeiro exemplo de treinamento
x1 = 0; x2 = 3; x3 = 5;
67. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 4 - Encontrar a distância euclidiana para cada neurônio
N
di (t ) = (xj (t ) − wi j (t ))2
j =1
Neurônio11 → d11 = (x1 − w1 )2 + (x2 − w2 )2 + (x3 − w3 )2
Neurônio11 → d11 = (0 − 2)2 + (3 − 2)2 + (5 − 1)2 = 21
70. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 6 - Para cada neurônio da rede fazer:
6.1 Calcular a largura efetiva σ(t );
6.2 Calcular a distância lateral l 2 ;
6.3 Calcular a vizinhança topológica h;
6.4 Calcular a taxa de aprendizagem η(t );
6.5 Calcular os valores ∆w para cada arco do neurônio e seu
respectivo ajuste (novo valor de w );
71. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 6.1 - Calcular a largura efetiva σ(t )
Equação:
t
(− )
σ(t ) = σ0 .e τ1 ,
Logo:
0
σ(0) = 0, 8.e (− 10 ) ,
σ(0) = 0.8
72. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 6.2 - Calcular a distância lateral (l 2 ) entre o neurônio
vencedor(x1 , y1 ) (2,1) e o neurônio(x2 , y2 ) (1,1)
Equação:
l 2 = (x1 − x2 )2 + (y1 − y2 )2 ,
Logo:
l 2 = (2 − 1)2 + (1 − 1)2 ,
l2 = 1
73. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 6.3 - Calcular a vizinhança topológica (h) do neurônio
vencedor em relação ao neurônio (11)
Equação:
l
2
ik
hi k = e (−
2σ2
)
Logo:
1 )
h = e (− 2 x 0.82
h = 0.46
74. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 6.4 - Calcular a taxa de aprendizagem η(t ) para a primeira
iteração (t = 0)
Equação:
t
(− )
η(t ) = η0 .e τ1 ,
Logo:
0
η(0) = 0.8.e (− 10 )
η(0) = 0.8
75. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Passo 6.5 - Calcular o ajuste do peso através do valores ∆w para
cada arco do neurônio e seu respectivo ajuste (valor corrigido de w )
Equações para cada arco do neurônio e o ajuste do peso:
∆wi j = η(t ).hi k (t ).(xj − wi j ) e wi = wi + ∆wi
76. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Logo, o peso w1 do neurônio (11) e seu ajuste será:
∆w1 = η(0).h(0).(x1 − w1 )
∆w1 = 0.8x0.46x (0 − 2)
∆w1 = −0.74
w1 = (2 − 0.74)
w1 = 1.26
77. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Logo, o peso w2 do neurônio (11) e seu ajuste será:
∆w2 = η(0).h(0).(x2 − w2 )
∆w2 = 0.8x0.46x (3 − 2)
∆w2 = 0.37
w2 = (2 + 0.37)
w2 = 2.37
78. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Logo, o peso w3 do neurônio (11) e seu ajuste será:
∆w3 = η(0).h(0).(x3 − w3 )
∆w3 = 0.8x0.46x (5 − 1)
∆w3 = 1.47
w3 = (1 + 1.47)
w3 = 2.47
79. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
O novos pesos w1 , w2 , w3 para o neurônio 11, será:
w1 = 1.26
w2 = 2.37
w3 = 2.47
Repete-se os passos 6.1 a 6.5 para todos os
neurônios e seus pesos
80. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Faze-se o ajuste do neurônio 12:
0
σ(0) = 0, 8.e (− 10 ) = 0.8
l 2 = (2 − 1)2 + (1 − 2)2 = 2
2 )
h = e (− 2 x 0.82 = 0.21
0
η(0) = 0.8.e (− 10 ) = 0.80
Ajuste para w1 , w2 , w3 do neurônio 12:
∆w1 = 0.8x0.21x (0 − 3) = 2.5
w1 = (3 − 0.50) = 2.50
∆w2 = 0.8x0.21x (3 − 2) = 0.17
w2 = (1 + 0.17) = 1.17
∆w3 = 0.8x0.21x (5 − 2) = 0.5
w3 = (1 + 0.5) = 1.50
81. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Faze-se o ajuste do neurônio 13:
0
σ(0) = 0, 8.e (− 10 ) = 0.8
l 2 = (2 − 1)2 + (1 − 3)2 = 5
5 )
h = e (− 2 x 0.82 = 0.02
0
η(0) = 0.8.e (− 10 ) = 0.80
Ajuste para w1 , w2 , w3 do neurônio 13:
∆w1 = 0.8x0.02x (0 − 2) = −0.03
w1 = (2 − 0.03) = 1.97
∆w2 = 0.8x0.02x (3 − 1) = 0.03
w2 = (1 + 0.03) = 1.03
∆w3 = 0.8x0.02x (5 − 1) = 0.06
w3 = (1 + 0.06) = 1.06
82. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Faze-se o ajuste do neurônio 22:
0
σ(0) = 0, 8.e (− 10 ) = 0.8
l 2 = (2 − 2)2 + (1 − 2)2 = 1
1 )
h = e (− 2 x 0.82 = 0.46
0
η(0) = 0.8.e (− 10 ) = 0.80
Ajuste para w1 , w2 , w3 do neurônio 22:
∆w1 = 0.8x0.46x (0 − 2) = 0.74
w1 = (2 − 0.74) = 1.26
∆w2 = 0.8x0.46x (3 − 0) = 1.10
w2 = (0 + 1.10) = 1.10
∆w3 = 0.8x0.46x (5 − 1) = 1.47
w3 = (1 + 1.47) = 2.47
83. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Faze-se o ajuste do neurônio 23:
0
σ(0) = 0, 8.e (− 10 ) = 0.8
l 2 = (2 − 2)2 + (1 − 3)2 = 4
4 )
h = e (− 2 x 0.82 = 0.04
0
η(0) = 0.8.e (− 10 ) = 0.80
Ajuste para w1 , w2 , w3 do neurônio 12:
∆w1 = 0.8x0.04x (0 − 1) = −0.04
w1 = (1 − 0.04) = 0.96
∆w2 = 0.8x0.04x (3 − 2) = 0.04
w2 = (2 + 0.04) = 2.04
∆w3 = 0.8x0.04x (5 − 0) = 0.18
w3 = (0 + 0.18) = 0.18
84. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Faze-se o ajuste do neurônio 22, o vencedor:
0
σ(0) = 0, 8.e (− 10 ) = 0.8
l 2 = (2 − 2)2 + (1 − 1)2 = 0
0 )
h = e (− 2 x 0.82 = 1.00
0
η(0) = 0.8.e (− 10 ) = 0.80
Ajuste para w1 , w2 , w3 do neurônio 22:
∆w1 = 0.8x1.0x (0 − 1) = −0.80
w1 = (1 − 0.80) = 0.20
∆w2 = 0.8x1.0x (3 − 2) = 0.80
w2 = (2 + 0.80) = 2.80
∆w3 = 0.8x1.0x (5 − 3) = 1.60
w3 = (3 + 1.60) = 4.60
85. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Concluída a primeira iteração, o processo se repete de forma
similar até que sejam atigidas as condições de parada.
Ou seja, quando as distâncias euclidianas entre os vetores de
peso dos neurônios vencedores e os respectivos vetores de
sinais de entrada, forem aceitáveis.
86. Redes Neurais Articiais
A rede de Kohonen
Algoritmo de treinamento da rede Kohonem
Let's Code :-)
87. Redes Neurais Articiais
A rede de Kohonen
Conclusão Kohonen
A rede tem como saída a distância euclidiana entre:
os vetores de peso dos neurônios vencedores
e os respectivos vetores de sinais de entrada
Assim, os pesos nais desta rede determinam um padrão de
reconhecido
88. Redes Neurais Articiais
Conclusão
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
89. Redes Neurais Articiais
Conclusão
conclusão
Redes Perceptron:
Voltado para problemas linearmente separáveis (Problema
XOR!!!)
Redes Kohonen:
Utiliza a arquitetura paralela de uma rede neural
Fornece uma organização gráca dos relacionamentos entre os
padrões
Podem ser treinadas rapidamente
90. Redes Neurais Articiais
Exercícios
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
91. Redes Neurais Articiais
Exercícios
exercícios
Download em
http://www.dinomagri.com/downloads/ia/rna.zip
92. Redes Neurais Articiais
Referências
Agenda:
Introdução
Princípios de Neurocomputação
Projeto de uma Rede Neural
Perceptron
A rede de Kohonen
Conclusão
Exercícios
Referências
93. Redes Neurais Articiais
Referências
referências
Redes Neurais - Fundamentos e aplicações com programas em
C - Oswaldo Ludwig Jr e Eduard Montgomery
Inteligência Articial - Stuart Russell e Peter Norvig
Redes Neurais Articiais - Teoria e aplicações - Antônio de
Pádua Braga, Teresa Bernarda Ludermir e André Carlos Ponce
de Leon Ferreira Carvalho
Imagens forem retiradas do image.google.com
Wikipedia