RNA - Redes neurais artificiais

94

description

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

Transcript of RNA - Redes neurais artificiais

Page 1: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Redes Neurais Arti�ciais

Dino [email protected]

Universidade do Estado de Santa Catarina

Inteligência Arti�cial

29 de maio de 2011

Page 2: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Agenda:

Introdução

Princípios de Neurocomputação

Projeto de uma Rede Neural

Perceptron

A rede de Kohonen

Conclusão

Exercícios

Referências

Page 3: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 4: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Introdução

Histórico

I Provavelmente a mais antiga técnica de IA em uso.

I Década de 40 por Walter Pitts e McCulloch(primeiro matemático e o segundo neuro�siologista)

I Análogia entre neurônios biológicos e circuitos eletrônicos

Page 5: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Introdução

Histórico

I Von Neumann, propôs a arquitetura dos computadoreseletrônicos atuais, nesta mesma década

I Donald Hebb - Defendeu que o condicionamento psicológicoclássico está igualmente presente em qualquer animal, por serum propriedade dos neurônios.

I Hebb foi o primeiro a propor uma lei de aprendizagemespeci�ca para as sinapses dos neurônios.

Page 6: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Introdução

Histórico

I Primeiro Neurocomputador (Snark) foi criado em 1951 porMavin Minsky (serviu "apenas" de inspiração para projetosposteriores)

I Em 1957 Frank Rosenblatt criou uma rede neural com o nomede Perceptron.

I Simulação computacional para a retina - demonstrou como osistema nervoso visual reconhece padrões

Page 7: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Introdução

Histórico

I Porém Marvin Minsky e Seymor Papert provaram que redesneurais de uma unica camada não seriam capazes de resolverproblemas simples como a operação lógica XOR (OUexclusivo):

A XOR B ↔ (A ∨ B) ∧ ¬(A ∧ B)

Esse trabalho desestimulou os pesquisadores e somente em1982, quando John Hop�eld apresentou um trabalho, no qualele descreveu um modelo de rede neural, baseado no sistemanervoso de uma lesma, o interesse por tais algoritmos renasce.

Page 8: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 9: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

I Cérebro humano - 10 bilhões de neurôniosI Cada neurônio - até 10.000 sinapses1 com outros neurôniosI Se cada ligação == 1 bit, teriamos 100 trilhões de bits 11,37

terabytes de capacidade máxima de memória

1Sinapses - Regiões de comunicação entre os neurônios

Page 10: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

Figura: Um neurônio2.

2Fonte - colinfahey.com

Page 11: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

Figura 1 mostra um neurônio e os principais componentes são:I Corpo da célula ou Soma - é responsável por coletar e

combinar as informações vindas de outros neurônios.I Dendritos3 - Recebe os estímulos transmitidos pelos outros

neurônios.I Axônio4 - Responsável por transmitir estimulos para outras

células.

3Clique para mais informações sobre Dendritos4Clique para mais informações sobre Axônio

Page 12: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

O neurônio matemático recebe um ou mais sinais de entrada edevolve um único sinal de saída, que pode ser distribuído comosinal de saída da rede, ou como sinal de entrada para um ou váriosoutros neurônios da camada posterior.

Figura: Representação do neurônio matemático5.

5Fonte - Livro Redes Neurais [Montgomey e Ludwig]

Page 13: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

I Os sinais de entrada chegam simultaneamente aosneurônios, por isso as redes são classi�cadas comoinstrumentos de processamento paralelo. (No PC isso ésimulado!!!)

I Dendritos e axônios são representados matematicamenteapenas pelas sinapses e a intesidade da ligação érepresentada por um grandeza denominada peso sináptico,simbolizada pela letra w

I As entradas, x, são apresentadas ao neurônio, sãomultiplicadas pelos pesos sinápticos correspondentes,gerando as entradas ponderadas:

w1x1,w2x2, ...,wnxn

Page 14: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

O neurônio totaliza todos os produtos e o resultado destasomatório é denominado pela Função de Combinação ou Função de

ativação representada pela letra v :

v =n∑

i=0

wixi

Então o valor é passado para a Função de transferência, que evitao acrésimo progressivo dos valores de saída ao longo das camadasda rede.Esse modelo é simpli�cado e o neurônio é estático, ou seja, nãoconsidera a dinâmica do neurônio natural.

Page 15: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

Algumas funções de tranferências utilizadas:I Função sigmóide:

ϕ(v) =1

1 + e−v

I Função gaussiana:ϕ(v) = e−v2

I Função tangente hiperbólica:

ϕ(v) = tanh(v)

Page 16: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Neurônios

O modelo matemático também pode incluir uma polarização oubias de entrada, representada pela letra b.

Esta variável é incluída no somatório da função de ativação, com ointuito de aumentar o grau de liberdade desta função e,consequentemente, a capacidade de aproximação da rede.

I O valor do bias é ajustado da mesma forma que os pesossinápticos.

I O bias permite que um neurônio apresente saída não nulaainda que todas as suas entradas sejam nulas.

Page 17: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

A Rede Neural Arti�cial

rna

Combinando os neurônios em uma ou mais camadas, que podemconter um ou mais neurônios e interligando estes neurônios atravésdas sinapses, pode-se formar uma RNA (Rede Neural Arti�cial).Em geral possuem:

I Uma camada de entrada ou de distribuição - tem númerode nós igual ao número de sinais de entrada da rede.

I Uma, nenhuma ou várias camadas ocultas - sãoconstituidas de um ou mais neurônios ocultos.

I Uma camada de saída - contém, necessariamente, umnúmero de neurônios igual ao número de sinais de saída darede.

Page 18: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

A Rede Neural Arti�cial

Ajustando os valores de seus pesos sinápticos, a rede neural poderepresentar (ou memorizar) as relações entre os dados de entrada esaída, assumindo uma característica de memória associativa.

Figura: Sinais de entrada e de saída em uma cadeia de neurôniosinterligados de uma RNA6.

6Fonte - Livro Redes Neurais [Montgomey e Ludwig]

Page 19: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

A Arquitetura da Rede

I Amplamente conectada (fully connected)

I Realimentação (feedback)

I A arquitetura da rede neural é livre, ou seja, não existeformalização que determine quantas camadas, ou quantosneurônios devem existir

I Esta formalização irá depender do projetista, que deverá variaresse número para alcançar o melhor desempenho com umconjunto de dados reservados para testes e validação.

Page 20: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Controle do Aprendizado

I SupervisionadoI Não supervisionado

Page 21: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Controle do Aprendizado

supervisionado

I Rede treinada com pares de conjunto de entrada e de saídadesejada

I Quando é apresentada à rede este conjunto de entrada, estaretorna um conjunto de valores de saída, que é comparadoao conjunto de valores de saída desejado.

I Em seguida, os pesos sinápticos e níveis de bias sãoajustados de forma a minimizar a diferença entre a saídaapresentada pela rede e a saída desejada.

I O processo é repetido para todos os pares de entrada e saídaque constituem o conjunto de treinamento da rede, até que ataxa de acerto seja considerada satisfatória.

Page 22: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Controle do Aprendizado

não supervisionado

I A rede não recebe informações sobre valores de entrada eorganiza sua estrutura de modo a fazer a classi�caçãodeste valores em grupos.

I Classi�cação de dados pelo reconhecimento de padrões, ouseja, detecção de características em comum entre conjuntos dedados.

I Processo de competição e cooperação entre os neurônios.

Page 23: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Princípios de Neurocomputação

Algoritmo de Aprendizado

Depois de treinada a rede pode ser utilizada em diversas áreas doconhecimento humano, ainda que na ausência de uma especialista.Atualmente existem diversos algoritmos utilizados para ajustar ospesos sinápticos e o nível de bias de uma rede neural, dentre asquais pode-se destacar:

I Aprendizagem por correção de erros (regra delta) Aprendizadosupervisionado!!!

I Aprendizagem competitiva (regra de Kohonen) Aprendizadonão supervisionado!!!

I Aprendizagem baseada em memóriaI Aprendizagem hebbianaI Aprendizagem de Boltzmann

Page 24: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 25: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Projeto de uma Rede Neural

projeto rede neural

I Coleta e seleção de dadosI Con�guração da redeI TreinamentoI TesteI Integração

Page 26: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Projeto de uma Rede Neural

Coleta e Seleção de Dados

coleta e seleção de dados

I É fundamentalI Minimizar ambiguidades e errosI Cobrir amplamente o domínio do problema, incluindo as

exceções e as condições limitesI 2 categorias:

1. Dados de treinamento, para treinar a rede2. Dados de validação, veri�ca o desempenho da rede

I O número adequado de dados para o treinamento de umaRNA é função do número de sinapses e bias desta rede

I Assim, quanto mais variáveis livres (sinapses e bias) uma RNAtiver, mais restrições (exemplos de treinamento) serãonecessários

Page 27: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Projeto de uma Rede Neural

Con�guração da rede

con�guração da rede

I 4 etapas:1. Seleção do paradigma neural apropriado à aplicação, qual a

con�guração a ser utilizada (perceptron simples, de multiplascamadas, rede de kohonen, etc.)

2. Determinação da topologia da rede, ou seja, o número decamadas e o número de neurônios em cada camada

3. Determinação do algoritmo de treinamento, a taxa deaprendizado, demais parâmetros de treinamento

4. Determinação do tipo de função de transferência

I Escolha feita de forma empírica, apesar de o autor citar queexistem algumas heurísticas que conduzem a opção maisacertada

Page 28: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Projeto de uma Rede Neural

Treinamento

treinamento

I Ajuste dos pesos das conexõesI Determinação dos valores iniciais dos pesos sinápticos

(inicialização da rede), de forma aleatóriaI Qual algoritmo de aprendizagem utilizar - basicamente

empíricoI E quanto tempo de treinamento para o aprendizado da rede -

pode-se adotar um número máximo de ciclos, a taxa deerro médio por ciclo, ou ainda, a capacidade degeneralização da rede (pode causar over-training)

O ideal é que o treinamento venha a ser interrompido quando arede apresentar uma boa capacidade de generalização e quandoa taxa de erro foi admissível. Assim, deve-se encontrar umponto ótimo de parada com erro mínimo e capacidade degeneralização máxima

Page 29: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Projeto de uma Rede Neural

Teste

teste

I Veri�ca se a rede não decorou os dados de entradas e validaa rede para a aplicação desejada.

I Deve-se considerar outros testes como a análise dos pesossinápticos e níveis de bias, pois se existirem valores muitopequenos, as conexões associadas podem ser consideradasinsigni�cantes e então serem eliminadas (prunning)

Page 30: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Projeto de uma Rede Neural

Integração

integração

I Com a rede valida e treinada, é possível a integração dela aum sistema.

I Este sistema deve fazer a manutenção da rede quando fornecessária ou avisar aos projetistas as necessidades de novasseções de treinamento.

Page 31: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 32: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

I Arquitetura mais simplesI Possui apenas uma camada de entrada e uma camada de

saída, não há camadas de neurônios intermediárias.I Utilizado apenas em estruturas de decisão simples.

Page 33: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

I Função de ativação - Faz a soma ponderada dos sinais deentrada

I Função de transferência- Determina a saída do neurônio, em função da soma ponderada.

I Podemos comparar isto a uma situação real de reação doorganismo quando se encosta em algo quente: a entrada datemperatura pelos sensores indicam a possível queimadura,que ativa o cérebro a enviar um comando (a saída) de seafastar imediatamente.

Page 34: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

I Os valores: wi j , representam os pesos sinápticos das ligaçõesentre os neurônios: o elemento i da camada de entrada como neurônio j da camada de saida, e simula a e�cácia dasinapse entre os nerônios naturais

Page 35: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

A função de ativação está representada pela letra v, e tem oformato:

vj =n∑

i=1

wi jxi

A função de transferência está representada pelo simbolo: ϕ e,normalmente, são utilizadas funções de limite ríspido como afunção degrau, onde a função pode assumir dois valores,conforme:

ϕ(v) =

{1,∀ v > 00,∀ v 6 0

}

Page 36: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

As funções de limite ríspido são quem determinam a veracidadede uma entrada de�nida, como o caso do exemplo dado:

I o imediado afastamento do objeto é uma reação normal, casoo objeto esteja realmente quente. Informação Verdadeira!

I caso contrário, o cérebro não reage deixando a pessoa seencostar naturalmente no objeto. Informação Falsa!

I Estas informações só são absorvidas com o aprendizado

Page 37: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

algoritmo de aprendizagem do perceptron

I 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.

I O elemento de processamento que utiliza essa regra é oADALINE Adaptive Linear Neuron ou Adaptive Linear Element

Page 38: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

algoritmo de aprendizagem do perceptron

1. Atribui-se aos pesos valores aleatórios e, com eles, apresenta-seum conjunto de sinais de entrada e calcula-se a resposta darede

2. Então, comparam-se os valores calculados com os valoresdesejados (treinamento supervisionado).

3. Caso erro não aceitável, faz-se o ajuste de pesosproporcionalmente ao erro E (j) = d(j)− y(j) e ao valor dosinal de entrada correspondente. (Quanto maior o erro, maiordeve 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)

Page 39: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

w(i , j)T+1 = w(i , j)T + ηE (j)T x(i)

I Valor do erro corrigido: w(i , j)T+1

I Valor do peso na iteração anterior: w(i , j)TI Valor do erro para o neurônio j : E (j)TI Taxa de aprendizado: ηI Índice do sinal de entrada: iI Iteração: TI Índice do neurônio: jI Sinal de entrada: x(i)

Page 40: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

O Erro E (j) é a diferença entre o sinal de saída desejado para oneurônio j , representado por d(j), e o sinal de saída calculado pelarede 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 naiteração T será:

ε(T ) =

∑nj=1 |E (j)|

n

em que n é o número médio de neurônios da camada de saída. Oerro médio para todo o conjunto de treinamento será:

εmed =

∑nT=1 ε(T )

n

Este valor pode ser utilizado como referência para o encerramentoda seção de treinamento pela avaliação do nível de precisão da rede.

Page 41: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

Exemplo 1:http://www.dinomagri.com/downloads/ia/rna.zip

I Usaremos dois sinais de entrada e um neurônio nacamada de saída. Esta rede, após o treinamento será capazde classi�car quatro individuos em duas classes, conformesegue:

COMPOSITOR CIENTISTABACH XBEETHOVEN XEINSTEIN XKEPLER X

Page 42: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

Primeiro passo é codi�car as informações em base binária.BACH = 00BEETHOVEN = 01EINSTEIN = 10KLEPER = 11COMPOSITOR = 0CIENTISTA = 1

Conclui-se que apenas 2 elementos na camada de entrada sãonecessários, pois o número de elementos necessários, em basebinária, é dada pela fórmula: X = 2n, em que n é o número deelementos na camada de entrada e X é o número de sinais deentrada.Para a camada de saída vale a mesma relação, logo pararepresentar dois valores necessita-se de apenas 1 neurônio.

Page 43: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

passo a passo

I Adiciona-se 1 bias de entrada ao neurônio, para melhorar acapacidade de aproximação, tendo assim mais um parâmetrolivre

I Arbitrar o valor zero para todos os pesos sinápticos e o bias

I Sinal de entrada do bias b é constante e tem sempre o valorpositivo 1

I Calcular o valor da função de ativação

Page 44: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

passo a passo

I 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 entrada2. 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 encontradob Arbitrar taxa de aprendizado = 1c A correção será aplicada pela formula:

w(i , j)T+1

= w(i , j)T

+ ηE (j)Tx(i)

3. Com os novos pesos, espera os próximos sinais de entrada

I Repete-se todo o processo novamente

Page 45: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

Mão na massa :-)

Page 46: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

codigo fonte

Let's Code :-)

Page 47: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

conclusões do perceptron

I Estas redes só resolvem problemas cujas classes sejamlinearmente separáveis, o que não é o caso no problema do ou

exclusivo (XOR).I Desta forma, se Beethoven resolvesse ser cientista e Kleper

compositor, a rede jamais aprenderia a classi�ca-los, porqueestas mudanças resultariam no problema XOR, conforme atabela abaixo:

COMPOSITOR CIENTISTABACH(00) 0BEETHOVEN(01) 1EINSTEIN(10) 1KEPLER(11) 0

Page 48: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

I A função de ativação v é linear, sendo assim, a reta nodiagrama ao lado contém todos os pares ordenados de valorX1 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:

Page 49: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Perceptron

v = b + w1X1 + w2X2 = 0

, que resolvendo para X2, encontra-se:

X2 = −(w1X1 + b)

w2

I Para os pontos acima desta reta o valor de v será maior doque zero, o que resultará um sinal de saída igual a 1 positivo

I Para os pontos abaixo desta reta, v será menor do quezero, resultando um sindal de saída igual a zero

I Ou seja, esta reta é uma fronteira de decisão na classi�caçãodos sinais de entrada

I Assim, sempre que projetar um simples perceptron, deveveri�car se as entradas não recaem neste problema coma saída, para evitar que uma solução não seja encontrada.

Page 50: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 51: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

kohonen

I Idealizado por Teuvo Kohonen

I Algoritmo é um modelo de mapa auto-organizável

I Treinamento não supervisionadoI Nesta estrutura, os neurônios estão dispostos como nós de

uma grade que, normalmente, é uni ou bidimensional.I No caso de uma mapa bidimensional, a geometria é livre,

podendo ser quadrada, retangular, triangular, etc.

Page 52: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

I Princípio fundamental → Aprendizagem competitiva

I Ao se apresentar uma entrada à rede, os neurônios competementre si e o vencedor tem seus pesos ajustados para respondermelhor ao supracitado estímulo

I Também é simulado um processo de cooperação entre oneurônio vencedor e seus vizinhos topológicos, que tambémrecebem ajustes.

I A motivação para a criação deste modelo neural é a teoria deque no cérebro humano, entradas sensoriais diferentes sãomapeadas em regiões especí�cas do córtex cerebral.

I A isto se pode denominar de distribuição de probabilidade

codi�cada por localização

Page 53: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Uma rede com 8 nós deentrada, e quatro neurônios, dispostos emuma grade bidimensional quadrada. Cada neurônio da grade estátotalmente conectado com todos os nós da camada de entrada

Page 54: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

algoritmo

I O algoritmo inicia o processo arbitrando pequenos valoresaleatórios aos pesos sinápticos, para que nenhumaorganização prévia seja imposta no mapa

I Após isso, é iniciado o processo de competição,cooperação e adaptação sináptica

Page 55: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

processo competitivo

I Imagine que um vetor de entrada (selecionado aleatóriamente),representado por: x = [x1, x2, ..., xn]T é apresentado à redesem que se especi�que a saída desejada.

I Um neurônio y deverá responder melhor a esta entrada, ouseja, será o neurônio vencedor

I Para a escolha do neurônio vencedor usa-se a distânciaeuclidiana. Assim, o neurônio que apresenta a menordistância euclidiana entre o vetor de entrada e o seu vetor depesos é o vencedor.

Page 56: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

I 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 nomesmo instante t, a distância euclidiana entre wi e x, serádada pela equação:

di (t) =N∑j=1

(xj(t)− wi j(t))2, onde :

Page 57: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

I di (t), é a distância euclidiana entre o vetor de pesos doneurônio i e o vetor de entrada, na iteração t;

I i , é o índice do neurônioI j , é o índice do nó de entradaI N, número de sinais de entrada (número de dimensões do

vetor x)I xj(t), é o sinal de entrada no nó j na iteração t

I wi j(t), é o valor do peso sináptico entre o nó de entrada j e oneurônio i na iteração t

Page 58: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

processo cooperativo

I O neurônio vencedor indica o centro de uma vizinhança

topológica hik , que indica o grau de interação ou cooperaçãoentre o neurônio i e seu vizinho k , é simétrico em relação aoneurônio vencedor k e decrese monotonamente com oaumento da distância lateral lik até que, no limite em que liktende a in�nito hik tende a zero.

I A função gaussiana abaixo atende estas condições:

hi k = e(−li k

2

2σ2), onde :

Page 59: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

I O termo li k2, no caso de uma grade bidimensional, é a

distância euclidiana entre os neurônios i e k.I O parâmetro σ é denominado de largura efetiva da vizinhança

topológica e deve diminuir com o passar do tempo, o queimplica em valores de hi k menores ao longo do tempo.

I Isto caracteriza uma vizinhança mais restrita e, portanto, maisespecializada. O valor de σ é, normalmente, uma funçãoexponencial com a seguinte forma:

σ(t) = σ0.e(− t

τ1),

I em que σ0 é o valor inicial de σ, t é o número de iterações eτ1 é uma constante de tempo

Page 60: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

processo adaptativo

I O aprendizado de um mapa auto-organizável, se dá peloajuste de seus pesos sinápticos.

I 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 naiteração t, no qual o índice k se refere ao neurônio melhorclassi�cado k .

I xj é o valor do exemplo de entrada e wi j é o peso do neurônioI O parâmetro taxa de aprendizagem η(t), geralmente é de�nido

pela expressão:

η(t) = η0.e(− t

τ1),

Page 61: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo da rede

I onde τ1 é uma constante de tempoI e η0 é o valor inicial adotado, o qual deve ser maior que zero e

menor que um

I Nota-se que a taxa de aprendizagem decresce gradualmenteao longo do tempo. A �nalidade é evitar que dados novos,apresentados após um longo treinamento, venham acomprometer seriamente o conhecimento que já estásedimentado

I O mesmo ocorre com o cérebro humano: quanto mais idoso setorna, menor é a capacidade de aprender

Page 62: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

1. De�nir os pesos inicias dos arcos aleatóriamente;

2. De�nir 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 l2;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 oerro de�nido;

Page 63: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 64: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 1 - De�nir os pesos inicias dos arcos aleatóriamente

I Neurônio11 - w1 = 2; w2 = 2; w3 = 1;

I Neurônio12 - w1 = 3; w2 = 2; w3 = 2;

I Neurônio13 - w1 = 2; w2 = 1; w3 = 1;

I Neurônio21 - w1 = 1; w2 = 2; w3 = 3;

I Neurônio22 - w1 = 2; w2 = 0; w3 = 1;

I Neurônio23 - w1 = 1; w2 = 2; w3 = 0;

Page 65: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 2 - De�nir os valores de σ(0), τ1, η e o valor do erro

I σ(0) = 0.8I τ1 = 10I η = 0.8I Valor do erro = 0.99

Page 66: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 3 - Inserir exemplo de treinamento

I Primeiro exemplo de treinamento

x1 = 0; x2 = 3; x3 = 5;

Page 67: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 4 - Encontrar a distância euclidiana para cada neurônio

di (t) =N∑j=1

(xj(t)− wi j(t))2

I Neurônio11 → d11 = (x1 − w1)2 + (x2 − w2)2 + (x3 − w3)2

I Neurônio11 → d11 = (0− 2)2 + (3− 2)2 + (5− 1)2 = 21

Page 68: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 5 - Encontrar o neurônio vencedor

I Neurônio11 → d11 = (0− 2)2 + (3− 2)2 + (5− 1)2 = 21I Neurônio12 → d12 = (0− 3)2 + (3− 2)2 + (5− 2)2 = 19I Neurônio13 → d13 = (0− 2)2 + (3− 1)2 + (5− 1)2 = 24I Neurônio21 → d21 = (0− 1)2 + (3− 2)2 + (5− 3)2 = 6I Neurônio22 → d22 = (0− 2)2 + (3− 0)2 + (5− 1)2 = 29I Neurônio23 → d23 = (0− 1)2 + (3− 2)2 + (5− 0)2 = 27

Page 69: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 5 - Encontrar o neurônio vencedor

I Neurônio11 → d11 = (0− 2)2 + (3− 2)2 + (5− 1)2 = 21I Neurônio12 → d12 = (0− 3)2 + (3− 2)2 + (5− 2)2 = 19I Neurônio13 → d13 = (0− 2)2 + (3− 1)2 + (5− 1)2 = 24I Neurônio21 → d21 = (0− 1)2 + (3− 2)2 + (5− 3)2 = 6I Neurônio22 → d22 = (0− 2)2 + (3− 0)2 + (5− 1)2 = 29I Neurônio23 → d23 = (0− 1)2 + (3− 2)2 + (5− 0)2 = 27

Page 70: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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 l2;

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 seurespectivo ajuste (novo valor de w);

Page 71: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 6.1 - Calcular a largura efetiva σ(t)Equação:

σ(t) = σ0.e(− t

τ1),

Logo:σ(0) = 0, 8.e(−

010

),

σ(0) = 0.8

Page 72: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 6.2 - Calcular a distância lateral (l2) entre o neurôniovencedor(x1, y1) (2,1) e o neurônio(x2, y2) (1,1)Equação:

l2 = (x1 − x2)2 + (y1 − y2)2,

Logo:l2 = (2− 1)2 + (1− 1)2,

l2 = 1

Page 73: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 6.3 - Calcular a vizinhança topológica (h) do neurôniovencedor em relação ao neurônio (11)Equação:

hi k = e(−li k

2

2σ2)

Logo:

h = e(−1

2x0.82)

h = 0.46

Page 74: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 6.4 - Calcular a taxa de aprendizagem η(t) para a primeiraiteração (t = 0)Equação:

η(t) = η0.e(− t

τ1),

Logo:η(0) = 0.8.e(−

010

)

η(0) = 0.8

Page 75: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Passo 6.5 - Calcular o ajuste do peso através do valores ∆w paracada 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

Page 76: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 77: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 78: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 79: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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 osneurônios e seus pesos

Page 80: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Faze-se o ajuste do neurônio 12:

σ(0) = 0, 8.e(−010

) = 0.8

l2 = (2− 1)2 + (1− 2)2 = 2

h = e(−2

2x0.82) = 0.21

η(0) = 0.8.e(−010

) = 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

Page 81: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Faze-se o ajuste do neurônio 13:

σ(0) = 0, 8.e(−010

) = 0.8

l2 = (2− 1)2 + (1− 3)2 = 5

h = e(−5

2x0.82) = 0.02

η(0) = 0.8.e(−010

) = 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

Page 82: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Faze-se o ajuste do neurônio 22:

σ(0) = 0, 8.e(−010

) = 0.8

l2 = (2− 2)2 + (1− 2)2 = 1

h = e(−1

2x0.82) = 0.46

η(0) = 0.8.e(−010

) = 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

Page 83: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Faze-se o ajuste do neurônio 23:

σ(0) = 0, 8.e(−010

) = 0.8

l2 = (2− 2)2 + (1− 3)2 = 4

h = e(−4

2x0.82) = 0.04

η(0) = 0.8.e(−010

) = 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

Page 84: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Faze-se o ajuste do neurônio 22, o vencedor:

σ(0) = 0, 8.e(−010

) = 0.8

l2 = (2− 2)2 + (1− 1)2 = 0

h = e(−0

2x0.82) = 1.00

η(0) = 0.8.e(−010

) = 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

Page 85: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

I Concluída a primeira iteração, o processo se repete de formasimilar até que sejam atigidas as condições de parada.

I Ou seja, quando as distâncias euclidianas entre os vetores depeso dos neurônios vencedores e os respectivos vetores desinais de entrada, forem aceitáveis.

Page 86: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Algoritmo de treinamento da rede Kohonem

Let's Code :-)

Page 87: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

A rede de Kohonen

Conclusão Kohonen

I A rede tem como saída a distância euclidiana entre:I os vetores de peso dos neurônios vencedoresI e os respectivos vetores de sinais de entrada

I Assim, os pesos �nais desta rede determinam um padrão dereconhecido

Page 88: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 89: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Conclusão

conclusão

I Redes Perceptron:I Voltado para problemas linearmente separáveis (Problema

XOR!!!)

I Redes Kohonen:I Utiliza a arquitetura paralela de uma rede neuralI Fornece uma organização grá�ca dos relacionamentos entre os

padrõesI Podem ser treinadas rapidamente

Page 90: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 91: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Exercícios

exercícios

I Download emhttp://www.dinomagri.com/downloads/ia/rna.zip

Page 92: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

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

Page 93: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Referências

referências

I Redes Neurais - Fundamentos e aplicações com programas emC - Oswaldo Ludwig Jr e Eduard Montgomery

I Inteligência Arti�cial - Stuart Russell e Peter NorvigI Redes Neurais Arti�ciais - Teoria e aplicações - Antônio de

Pádua Braga, Teresa Bernarda Ludermir e André Carlos Poncede Leon Ferreira Carvalho

I Imagens forem retiradas do image.google.comI Wikipedia

Page 94: RNA - Redes neurais artificiais

Redes Neurais Arti�ciais

Referências

Até logo e obrigado pela paciência :-)