RNA - Redes neurais artificiais
Upcoming SlideShare
Loading in...5
×
 

RNA - Redes neurais artificiais

on

  • 10,344 views

Descreve o funcionamento da rede Perceptron e Kohonen. Baseado no livro Redes Neurais - Fundamentos e Aplicações com Programas em C

Descreve o funcionamento da rede Perceptron e Kohonen. Baseado no livro Redes Neurais - Fundamentos e Aplicações com Programas em C

Statistics

Views

Total Views
10,344
Views on SlideShare
10,343
Embed Views
1

Actions

Likes
6
Downloads
315
Comments
0

1 Embed 1

https://si0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RNA - Redes neurais artificiais RNA - Redes neurais artificiais Presentation Transcript

  • 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
  • Redes Neurais ArticiaisAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • Redes Neurais Articiais IntroduçãoAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • 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
  • 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.
  • 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
  • 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.
  • Redes Neurais Articiais Princípios de NeurocomputaçãoAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • 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
  • Redes Neurais Articiais Princípios de Neurocomputação Neurônios Figura: Um neurônio2 . 2 Fonte - colinfahey.com
  • 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
  • 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]
  • 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
  • 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.
  • 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 )
  • 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.
  • Redes Neurais Articiais Princípios de Neurocomputação A Rede Neural Articialrna 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.
  • 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]
  • 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.
  • Redes Neurais Articiais Princípios de Neurocomputação Controle do Aprendizado Supervisionado Não supervisionado
  • Redes Neurais Articiais Princípios de Neurocomputação Controle do Aprendizadosupervisionado 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.
  • Redes Neurais Articiais Princípios de Neurocomputação Controle do Aprendizadonã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.
  • 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
  • Redes Neurais Articiais Projeto de uma Rede NeuralAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • Redes Neurais Articiais Projeto de uma Rede Neuralprojeto rede neural Coleta e seleção de dados Conguração da rede Treinamento Teste Integração
  • Redes Neurais Articiais Projeto de uma Rede Neural Coleta e Seleção de Dadoscoleta 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
  • Redes Neurais Articiais Projeto de uma Rede Neural Conguração da redeconguraçã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
  • Redes Neurais Articiais Projeto de uma Rede Neural Treinamentotreinamento 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
  • Redes Neurais Articiais Projeto de uma Rede Neural Testeteste 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 )
  • Redes Neurais Articiais Projeto de uma Rede Neural Integraçãointegraçã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.
  • Redes Neurais Articiais PerceptronAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • 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.
  • 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.
  • 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
  • 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
  • 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
  • Redes Neurais Articiais Perceptronalgoritmo 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
  • Redes Neurais Articiais Perceptronalgoritmo 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 )
  • 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 )
  • 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.
  • 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
  • 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.
  • Redes Neurais Articiais Perceptronpasso 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
  • Redes Neurais Articiais Perceptronpasso 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
  • Redes Neurais Articiais Perceptron Mão na massa :-)
  • Redes Neurais Articiais Perceptroncodigo fonte Lets Code :-)
  • Redes Neurais Articiais Perceptronconclusõ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
  • 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:
  • 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.
  • Redes Neurais Articiais A rede de KohonenAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • Redes Neurais Articiais A rede de Kohonenkohonen 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.
  • 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
  • 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
  • Redes Neurais Articiais A rede de Kohonen Algoritmo da redealgoritmo 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
  • Redes Neurais Articiais A rede de Kohonen Algoritmo da redeprocesso 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.
  • 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
  • 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
  • Redes Neurais Articiais A rede de Kohonen Algoritmo da redeprocesso 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 :
  • 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
  • Redes Neurais Articiais A rede de Kohonen Algoritmo da redeprocesso 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 ,
  • 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
  • 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;
  • 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
  • Redes Neurais Articiais A rede de Kohonen Algoritmo de treinamento da rede Kohonem Passo 1 - Denir os pesos inicias dos arcos aleatóriamente Neurônio11 - w1 = 2; w2 = 2; w3 = 1; Neurônio12 - w1 = 3; w2 = 2; w3 = 2; Neurônio13 - w1 = 2; w2 = 1; w3 = 1; Neurônio21 - w1 = 1; w2 = 2; w3 = 3; Neurônio22 - w1 = 2; w2 = 0; w3 = 1; Neurônio23 - w1 = 1; w2 = 2; w3 = 0;
  • 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
  • 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;
  • 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
  • Redes Neurais Articiais A rede de Kohonen Algoritmo de treinamento da rede Kohonem Passo 5 - Encontrar o neurônio vencedor Neurônio11 → d11 = (0 − 2)2 + (3 − 2)2 + (5 − 1)2 = 21 Neurônio12 → d12 = (0 − 3)2 + (3 − 2)2 + (5 − 2)2 = 19 Neurônio13 → d13 = (0 − 2)2 + (3 − 1)2 + (5 − 1)2 = 24 Neurônio21 → d21 = (0 − 1)2 + (3 − 2)2 + (5 − 3)2 = 6 Neurônio22 → d22 = (0 − 2)2 + (3 − 0)2 + (5 − 1)2 = 29 Neurônio23 → d23 = (0 − 1)2 + (3 − 2)2 + (5 − 0)2 = 27
  • Redes Neurais Articiais A rede de Kohonen Algoritmo de treinamento da rede Kohonem Passo 5 - Encontrar o neurônio vencedor Neurônio11 → d11 = (0 − 2)2 + (3 − 2)2 + (5 − 1)2 = 21 Neurônio12 → d12 = (0 − 3)2 + (3 − 2)2 + (5 − 2)2 = 19 Neurônio13 → d13 = (0 − 2)2 + (3 − 1)2 + (5 − 1)2 = 24 Neurônio21 → d21 = (0 − 1)2 + (3 − 2)2 + (5 − 3)2 = 6 Neurônio22 → d22 = (0 − 2)2 + (3 − 0)2 + (5 − 1)2 = 29 Neurônio23 → d23 = (0 − 1)2 + (3 − 2)2 + (5 − 0)2 = 27
  • 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 );
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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.
  • Redes Neurais Articiais A rede de Kohonen Algoritmo de treinamento da rede Kohonem Lets Code :-)
  • 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
  • Redes Neurais Articiais ConclusãoAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • Redes Neurais Articiais Conclusãoconclusã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
  • Redes Neurais Articiais ExercíciosAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • Redes Neurais Articiais Exercíciosexercícios Download em http://www.dinomagri.com/downloads/ia/rna.zip
  • Redes Neurais Articiais ReferênciasAgenda: Introdução Princípios de Neurocomputação Projeto de uma Rede Neural Perceptron A rede de Kohonen Conclusão Exercícios Referências
  • Redes Neurais Articiais Referênciasreferê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
  • Redes Neurais Articiais Referências Até logo e obrigado pela paciência :-)