IA Perceptron

12,467 views
12,183 views

Published on

Apresentação sobre Perceptron, uma das arquiteturas de redes neurais artificiais

Published in: Technology, Business
5 Comments
8 Likes
Statistics
Notes
No Downloads
Views
Total views
12,467
On SlideShare
0
From Embeds
0
Number of Embeds
105
Actions
Shares
0
Downloads
462
Comments
5
Likes
8
Embeds 0
No embeds

No notes for slide
  • IA Perceptron

    1. 1. I nteligência Artificial Perceptron Rafael Rosario [email_address] [email_address]
    2. 2. Perceptrons (I) <ul><li>Modela um neurônio pegando a soma ponderada de suas entradas, e comparando contra um valor (exemplo, valor = 0). </li></ul><ul><li>Se soma > 0, resulta 1; </li></ul><ul><li>Se soma <= 0, resulta 0; </li></ul><ul><li>Consegue aprender qualquer problema de classificação de dados linearmente separáveis </li></ul>
    3. 3. Perceptrons (II) X2 X1
    4. 4. Perceptron - Conhecimento <ul><li>O conhecimento do Perceptron, assim como o de qualquer RNA, está nos pesos das suas ligações: </li></ul>BIAS N1 N2  S  Wb= 3 W2=0 W1= -2
    5. 5. Perceptron - Treinamento <ul><li>Se o perceptron dispara quando não deve disparar, diminua de cada peso (Wi) um número proporcional ao sinal de entrada; </li></ul><ul><li>Se o perceptron deixa de disparar quando deveria, aumente um número semelhante em cada Wi. </li></ul>
    6. 6. Perceptron – Exemplo (I) <ul><li>Imaginemos um problema de classificação: </li></ul>COMPOSITOR CIENTISTA BACH X BEETHOVEN X EINSTEIN X KEPLER X
    7. 7. Perceptron – Exemplo (II) <ul><li>Primeiro, codificamos as informações em base binária: </li></ul>N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1 COMPOSITOR 0 CIENTISTA 1
    8. 8. Perceptron – Exemplo (III) <ul><li>Os pesos começam todos com zero (Wb, W1, W2 = 0). </li></ul><ul><li>O sinal do bias será sempre positivo (1). </li></ul>BIAS N1 N2  S  Wb= 0 W2=0 W1= 0 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    9. 9. Perceptron – Exemplo (IV) <ul><li>Escolhemos um valor para testar a rede. </li></ul><ul><li>A somatória (   será: (Bias*Wb)+(N1*W1)+(N2*W2) </li></ul>BIAS N1 N2  S  Wb= 0 W2=0 W1= 0 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    10. 10. Perceptron – Exemplo (V) <ul><li>Para Kepler, teremos: (1 * 0) + (1 * 0) + (1 * 0) = 0. </li></ul><ul><li>Ou seja, a saída foi 0, e a saída esperada era 1... :-/ </li></ul>BIAS N1 N2  S  Wb= 0 W2=0 W1= 0 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    11. 11. Perceptron – Exemplo (VI) <ul><li>Temos que ajustar os pesos (W), usando a fórmula: </li></ul><ul><li>Wnovo = Wanterior + </li></ul><ul><li>(ValorErro * TaxaAprendizagem * SinalEntrada) </li></ul>BIAS N1 N2  S  Wb= 0 W2=0 W1= 0 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    12. 12. Perceptron – Exemplo (VII) <ul><li>Para Wb: Wb novo = 0 + (1 * 1 * 1) = 1 </li></ul><ul><li>Para W1: W1 novo = 0 + (1* 1 * 1) = 1 </li></ul><ul><li>Para W2: W2 novo = 0 + (1* 1 * 1) = 1 </li></ul>BIAS N1 N2  S  N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    13. 13. Perceptron – Exemplo (VIII) <ul><li>Então, escolhemos outro valor e repetimos o processo: </li></ul><ul><li>(Bias*Wb)+(N1*W1)+(N2*W2) => </li></ul><ul><li>(1*1) + (0*1) + (1*1) = 2 (se  > 0, sinal saída = 1) </li></ul>BIAS N1 N2  S  Wb= 1 W2=1 W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    14. 14. Perceptron – Exemplo (IX) <ul><li>Novamente o sinal de saída esperado (0) não foi alcançado. Ou seja, é preciso corrigir os pesos. </li></ul><ul><li>ValorErrro = SinalEsperado – SinalGerado (0 -1 = -1) </li></ul>BIAS N1 N2  S  Wb= 1 W2=1 W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    15. 15. Perceptron – Exemplo (X) <ul><li>Para Wb: Wb novo = 1 + (-1 * 1 * 1) = 0 </li></ul><ul><li>Para W1: W1 novo = 1 + (-1* 0 * 1) = 1 </li></ul><ul><li>Para W2: W2 novo = 1 + (-1* 1 * 1) = 0 </li></ul>BIAS N1 N2  S  W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    16. 16. Perceptron – Exemplo (XI) <ul><li>Seguimos com novo valor: </li></ul><ul><li>(Bias*Wb)+(N1*W1)+(N2*W2) => </li></ul><ul><li>(1*0) + (1*1) + (0*0) = 1 (se  > 0, sinal saída = 1) </li></ul>BIAS N1 N2  S  Wb= 0 W2= 0 W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    17. 17. Perceptron – Exemplo (XII) <ul><li>Desta vez o sinal gerado (1) era o sinal esperado. </li></ul><ul><li>Neste caso, não precisamos ajustar os pesos. </li></ul>BIAS N1 N2  S  Wb= 0 W2= 0 W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    18. 18. Perceptron – Exemplo (XII) <ul><li>Testando para Bach, o sinal gerado também é correto: </li></ul><ul><li>(Bias*Wb)+(N1*W1)+(N2*W2) => </li></ul><ul><li>(1*0) + (0*1) + (0*0) = 0 </li></ul>BIAS N1 N2  S  Wb= 0 W2= 0 W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    19. 19. Perceptron – Exemplo (XIII) <ul><li>Os pesos já funcionaram para 3 entradas, testando Kepler novamente: </li></ul><ul><li>(1*0) + (1*1) + (1*0) = 1  Funciona! A rede aprendeu! </li></ul>BIAS N1 N2  S  Wb= 0 W2= 0 W1= 1 N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1
    20. 20. Perceptrons – Prática 1 <ul><ul><li>Faça o exemplo visto anteriormente no Perceptron implementado em C++: </li></ul></ul><ul><ul><li>O programa de treinamento funciona sempre ou depende da seqüência de valores informados durante o treinamento? </li></ul></ul><ul><ul><li>Qual o número máximo de interações para corrigir os pesos? </li></ul></ul>
    21. 21. Perceptrons – Prática 2 (I) <ul><ul><li>Considere a seguinte base de treinamento, sobre o diagnóstico de Gripe x Resfriado: </li></ul></ul>VÍRUS BACTÉRIA DOR CABEÇA CORISA GRIPE 1 0 1 1 RESFRIADO 0 1 0 1 GRIPE 1 0 1 0 RESFRIADO 0 1 1 1 GRIPE 0 0 1 1 RESFRIADO 0 0 0 1
    22. 22. Perceptrons – Prática 2 (II) <ul><li>Quantas iterações são necessárias para encontrar os pesos corretos da base de treinamento? </li></ul><ul><li>Qual é o resultado para outros valores? </li></ul><ul><li>O programa parece ter alguma inteligência? Como ele se comporta? </li></ul>VÍRUS BACTÉRIA DOR CABEÇA CORISA ? 1 1 1 1 ? 1 0 0 0 ? 0 1 0 0 ? 0 1 1 1 ? 1 0 0 1 ? 0 0 0 0
    23. 23. Perceptrons - Limitação <ul><li>Minsky e Papert: e se não for linear? </li></ul><ul><ul><li>XOR </li></ul></ul>X1 X2 X1 XOR X2 0 0 0 0 1 1 1 0 1 1 1 0
    24. 24. Perceptrons – Prática 3 <ul><ul><li>Com o mesmo Perceptron da prática 1, teste a tabela XOR: </li></ul></ul><ul><ul><li>O programa consegue achar uma solução? Por quê? </li></ul></ul>
    25. 25. Perceptrons Multicamadas(I) <ul><li>Resolvem problemas não lineares, mas introduz um sério problema de aprendizagem; </li></ul>1 X1 X2   X1 X2  W=? W=? W=? W=? W=? W=? W=?
    26. 26. Perceptrons Multicamadas(II) <ul><li>Uma solução para o problema XOR: </li></ul>1 X1 X2   X1 X2  W=-1,5 W=1 W=1 W=-9 W=-0.5 W=1 W=1
    27. 27. Perceptrons – Prática 4 (I) <ul><li>VALENDO 2 PONTOS DA PARCIAL 2: </li></ul><ul><li>Crie seu perceptron, seguindo os seguintes passos: </li></ul><ul><li>Crie uma base de conhecimento para treinamento. Sua base deve ter pelo menos 5 características, 4 resultados possíveis e 12 exemplos; </li></ul>Carac 1 Carac 2 Carac 3 Carac 4 Carac 5 RESULTADO A 1 1 1 1 1 RESULTADO B 1 0 0 0 0 RESULTADO C 0 1 0 0 1 RESULTADO D 0 1 1 1 0 RESULTADO B 1 0 0 1 1 Até a linha 12... … … … … ...
    28. 28. Perceptrons – Prática 4 (II) <ul><li>2. A base de conhecimento criada deve ser baseada em um problema concreto, ou seja, as características e resultados devem ter significado. Dica: características -> sintomas do problema, resultados -> soluções do problema; </li></ul><ul><li>3. Implemente seu Perceptron em C++ (usando o programa da prática 2), de forma a alimentar a matriz de leitura com os exemplos da base de treinamento; </li></ul><ul><li>4. Verifique e responda: </li></ul><ul><ul><li>Sua RNA conseguiu aprender os 12 elementos do treinamento? Eles são linearmente separáveis?; </li></ul></ul><ul><ul><li>Crie mais quatro exemplos e teste no seu programa. Quais eram o resultados esperados e o que a rede respondeu? </li></ul></ul><ul><ul><li>A RNA criada teria alguma utilidade prática? Por que? </li></ul></ul>
    29. 29. Referências <ul><li>http://www.intelliwise.com/reports/info2001.htm </li></ul><ul><li>http://www.ucs.louisiana.edu/%7Eisb9112/dept/phil341/wisai/WhatisAI.html </li></ul><ul><li>http://www.cs.bham.ac.uk/%7Eaxs/courses/ai.html </li></ul><ul><li>http://pt.wikipedia.org/wiki/Intelig%C3%AAncia_artificial </li></ul><ul><li>http://pt.wikiquote.org/wiki/Intelig%C3%AAncia </li></ul><ul><li>http://www.ucb.br/prg/professores/rogerio/FIA/fundia.html </li></ul><ul><li>http://to-campos.planetaclix.pt/neural/hop.html </li></ul><ul><li>http://codebetter.com/photos/greg_young/images/169874/320x394.aspx </li></ul><ul><li>http://www.dcc.fc.up.pt/~jpp/cia/node54.html > </li></ul><ul><li>http://www.livinginternet.com/i/ii_ai.htm </li></ul><ul><li>http://www.conpet.gov.br/ed/ </li></ul><ul><li>http://www.inbot.com.br/sete/ </li></ul><ul><li>http://alicebot.org </li></ul><ul><li>http://www.cin.ufpe.br/~in1006/2003/AIParadigms.ppt </li></ul><ul><li>http://www.stdwizard.org/ </li></ul><ul><li>http://expertise2go.com/webesie/ </li></ul><ul><li>http://www.din.uem.br/ia/neurais/ > </li></ul><ul><li>http://www.icmc.usp.br/~andre/research/neural/index.htm </li></ul><ul><li>http://www.inf.unisinos.br/~osorio/neural.html </li></ul><ul><li>Inteligência Artificial – Elaine Rich e Kevin Knight – 2ª edição </li></ul>
    30. 30. Funções de Transferência

    ×