IA Perceptron

58 %
42 %
Information about IA Perceptron

Published on July 24, 2008

Author: rafael.joi

Source: slideshare.net

Description

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

I nteligência Artificial Perceptron Rafael Rosario [email_address] [email_address]

Perceptrons (I) Modela um neurônio pegando a soma ponderada de suas entradas, e comparando contra um valor (exemplo, valor = 0). Se soma > 0, resulta 1; Se soma <= 0, resulta 0; Consegue aprender qualquer problema de classificação de dados linearmente separáveis

Modela um neurônio pegando a soma ponderada de suas entradas, e comparando contra um valor (exemplo, valor = 0).

Se soma > 0, resulta 1;

Se soma <= 0, resulta 0;

Consegue aprender qualquer problema de classificação de dados linearmente separáveis

Perceptrons (II) X2 X1

Perceptron - Conhecimento O conhecimento do Perceptron, assim como o de qualquer RNA, está nos pesos das suas ligações: BIAS N1 N2  S  Wb= 3 W2=0 W1= -2

O conhecimento do Perceptron, assim como o de qualquer RNA, está nos pesos das suas ligações:

Perceptron - Treinamento Se o perceptron dispara quando não deve disparar, diminua de cada peso (Wi) um número proporcional ao sinal de entrada; Se o perceptron deixa de disparar quando deveria, aumente um número semelhante em cada Wi.

Se o perceptron dispara quando não deve disparar, diminua de cada peso (Wi) um número proporcional ao sinal de entrada;

Se o perceptron deixa de disparar quando deveria, aumente um número semelhante em cada Wi.

Perceptron – Exemplo (I) Imaginemos um problema de classificação: COMPOSITOR CIENTISTA BACH X BEETHOVEN X EINSTEIN X KEPLER X

Imaginemos um problema de classificação:

Perceptron – Exemplo (II) Primeiro, codificamos as informações em base binária: N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1 COMPOSITOR 0 CIENTISTA 1

Primeiro, codificamos as informações em base binária:

Perceptron – Exemplo (III) Os pesos começam todos com zero (Wb, W1, W2 = 0). O sinal do bias será sempre positivo (1). 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

Os pesos começam todos com zero (Wb, W1, W2 = 0).

O sinal do bias será sempre positivo (1).

Perceptron – Exemplo (IV) Escolhemos um valor para testar a rede. A somatória (   será: (Bias*Wb)+(N1*W1)+(N2*W2) 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

Escolhemos um valor para testar a rede.

A somatória (   será: (Bias*Wb)+(N1*W1)+(N2*W2)

Perceptron – Exemplo (V) Para Kepler, teremos: (1 * 0) + (1 * 0) + (1 * 0) = 0. Ou seja, a saída foi 0, e a saída esperada era 1... :-/ 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

Para Kepler, teremos: (1 * 0) + (1 * 0) + (1 * 0) = 0.

Ou seja, a saída foi 0, e a saída esperada era 1... :-/

Perceptron – Exemplo (VI) Temos que ajustar os pesos (W), usando a fórmula: Wnovo = Wanterior + (ValorErro * TaxaAprendizagem * SinalEntrada) 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

Temos que ajustar os pesos (W), usando a fórmula:

Wnovo = Wanterior +

(ValorErro * TaxaAprendizagem * SinalEntrada)

Perceptron – Exemplo (VII) Para Wb: Wb novo = 0 + (1 * 1 * 1) = 1 Para W1: W1 novo = 0 + (1* 1 * 1) = 1 Para W2: W2 novo = 0 + (1* 1 * 1) = 1 BIAS N1 N2  S  N1 N2 SAÍDA BACH 0 0 0 BEETHOVEN 0 1 0 EINSTEIN 1 0 1 KEPLER 1 1 1

Para Wb: Wb novo = 0 + (1 * 1 * 1) = 1

Para W1: W1 novo = 0 + (1* 1 * 1) = 1

Para W2: W2 novo = 0 + (1* 1 * 1) = 1

Perceptron – Exemplo (VIII) Então, escolhemos outro valor e repetimos o processo: (Bias*Wb)+(N1*W1)+(N2*W2) => (1*1) + (0*1) + (1*1) = 2 (se  > 0, sinal saída = 1) 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

Então, escolhemos outro valor e repetimos o processo:

(Bias*Wb)+(N1*W1)+(N2*W2) =>

(1*1) + (0*1) + (1*1) = 2 (se  > 0, sinal saída = 1)

Perceptron – Exemplo (IX) Novamente o sinal de saída esperado (0) não foi alcançado. Ou seja, é preciso corrigir os pesos. ValorErrro = SinalEsperado – SinalGerado (0 -1 = -1) 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

Novamente o sinal de saída esperado (0) não foi alcançado. Ou seja, é preciso corrigir os pesos.

ValorErrro = SinalEsperado – SinalGerado (0 -1 = -1)

Perceptron – Exemplo (X) Para Wb: Wb novo = 1 + (-1 * 1 * 1) = 0 Para W1: W1 novo = 1 + (-1* 0 * 1) = 1 Para W2: W2 novo = 1 + (-1* 1 * 1) = 0 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

Para Wb: Wb novo = 1 + (-1 * 1 * 1) = 0

Para W1: W1 novo = 1 + (-1* 0 * 1) = 1

Para W2: W2 novo = 1 + (-1* 1 * 1) = 0

Perceptron – Exemplo (XI) Seguimos com novo valor: (Bias*Wb)+(N1*W1)+(N2*W2) => (1*0) + (1*1) + (0*0) = 1 (se  > 0, sinal saída = 1) 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

Seguimos com novo valor:

(Bias*Wb)+(N1*W1)+(N2*W2) =>

(1*0) + (1*1) + (0*0) = 1 (se  > 0, sinal saída = 1)

Perceptron – Exemplo (XII) Desta vez o sinal gerado (1) era o sinal esperado. Neste caso, não precisamos ajustar os pesos. 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

Desta vez o sinal gerado (1) era o sinal esperado.

Neste caso, não precisamos ajustar os pesos.

Perceptron – Exemplo (XII) Testando para Bach, o sinal gerado também é correto: (Bias*Wb)+(N1*W1)+(N2*W2) => (1*0) + (0*1) + (0*0) = 0 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

Testando para Bach, o sinal gerado também é correto:

(Bias*Wb)+(N1*W1)+(N2*W2) =>

(1*0) + (0*1) + (0*0) = 0

Perceptron – Exemplo (XIII) Os pesos já funcionaram para 3 entradas, testando Kepler novamente: (1*0) + (1*1) + (1*0) = 1  Funciona! A rede aprendeu! 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

Os pesos já funcionaram para 3 entradas, testando Kepler novamente:

(1*0) + (1*1) + (1*0) = 1  Funciona! A rede aprendeu!

Perceptrons – Prática 1 Faça o exemplo visto anteriormente no Perceptron implementado em C++: O programa de treinamento funciona sempre ou depende da seqüência de valores informados durante o treinamento? Qual o número máximo de interações para corrigir os pesos?

Faça o exemplo visto anteriormente no Perceptron implementado em C++:

O programa de treinamento funciona sempre ou depende da seqüência de valores informados durante o treinamento?

Qual o número máximo de interações para corrigir os pesos?

Perceptrons – Prática 2 (I) Considere a seguinte base de treinamento, sobre o diagnóstico de Gripe x Resfriado: 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

Considere a seguinte base de treinamento, sobre o diagnóstico de Gripe x Resfriado:

Perceptrons – Prática 2 (II) Quantas iterações são necessárias para encontrar os pesos corretos da base de treinamento? Qual é o resultado para outros valores? O programa parece ter alguma inteligência? Como ele se comporta? 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

Quantas iterações são necessárias para encontrar os pesos corretos da base de treinamento?

Qual é o resultado para outros valores?

O programa parece ter alguma inteligência? Como ele se comporta?

Perceptrons - Limitação Minsky e Papert: e se não for linear? XOR X1 X2 X1 XOR X2 0 0 0 0 1 1 1 0 1 1 1 0

Minsky e Papert: e se não for linear?

XOR

Perceptrons – Prática 3 Com o mesmo Perceptron da prática 1, teste a tabela XOR: O programa consegue achar uma solução? Por quê?

Com o mesmo Perceptron da prática 1, teste a tabela XOR:

O programa consegue achar uma solução? Por quê?

Perceptrons Multicamadas(I) Resolvem problemas não lineares, mas introduz um sério problema de aprendizagem; 1 X1 X2   X1 X2  W=? W=? W=? W=? W=? W=? W=?

Resolvem problemas não lineares, mas introduz um sério problema de aprendizagem;

Perceptrons Multicamadas(II) Uma solução para o problema XOR: 1 X1 X2   X1 X2  W=-1,5 W=1 W=1 W=-9 W=-0.5 W=1 W=1

Uma solução para o problema XOR:

Perceptrons – Prática 4 (I) VALENDO 2 PONTOS DA PARCIAL 2: Crie seu perceptron, seguindo os seguintes passos: Crie uma base de conhecimento para treinamento. Sua base deve ter pelo menos 5 características, 4 resultados possíveis e 12 exemplos; 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... … … … … ...

VALENDO 2 PONTOS DA PARCIAL 2:

Crie seu perceptron, seguindo os seguintes passos:

Crie uma base de conhecimento para treinamento. Sua base deve ter pelo menos 5 características, 4 resultados possíveis e 12 exemplos;

Perceptrons – Prática 4 (II) 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; 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; 4. Verifique e responda: Sua RNA conseguiu aprender os 12 elementos do treinamento? Eles são linearmente separáveis?; Crie mais quatro exemplos e teste no seu programa. Quais eram o resultados esperados e o que a rede respondeu? A RNA criada teria alguma utilidade prática? Por que?

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;

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;

4. Verifique e responda:

Sua RNA conseguiu aprender os 12 elementos do treinamento? Eles são linearmente separáveis?;

Crie mais quatro exemplos e teste no seu programa. Quais eram o resultados esperados e o que a rede respondeu?

A RNA criada teria alguma utilidade prática? Por que?

Referências http://www.intelliwise.com/reports/info2001.htm http://www.ucs.louisiana.edu/%7Eisb9112/dept/phil341/wisai/WhatisAI.html http://www.cs.bham.ac.uk/%7Eaxs/courses/ai.html http://pt.wikipedia.org/wiki/Intelig%C3%AAncia_artificial http://pt.wikiquote.org/wiki/Intelig%C3%AAncia http://www.ucb.br/prg/professores/rogerio/FIA/fundia.html http://to-campos.planetaclix.pt/neural/hop.html http://codebetter.com/photos/greg_young/images/169874/320x394.aspx http://www.dcc.fc.up.pt/~jpp/cia/node54.html > http://www.livinginternet.com/i/ii_ai.htm http://www.conpet.gov.br/ed/ http://www.inbot.com.br/sete/ http://alicebot.org http://www.cin.ufpe.br/~in1006/2003/AIParadigms.ppt http://www.stdwizard.org/ http://expertise2go.com/webesie/ http://www.din.uem.br/ia/neurais/ > http://www.icmc.usp.br/~andre/research/neural/index.htm http://www.inf.unisinos.br/~osorio/neural.html Inteligência Artificial – Elaine Rich e Kevin Knight – 2ª edição

http://www.intelliwise.com/reports/info2001.htm

http://www.ucs.louisiana.edu/%7Eisb9112/dept/phil341/wisai/WhatisAI.html

http://www.cs.bham.ac.uk/%7Eaxs/courses/ai.html

http://pt.wikipedia.org/wiki/Intelig%C3%AAncia_artificial

http://pt.wikiquote.org/wiki/Intelig%C3%AAncia

http://www.ucb.br/prg/professores/rogerio/FIA/fundia.html

http://to-campos.planetaclix.pt/neural/hop.html

http://codebetter.com/photos/greg_young/images/169874/320x394.aspx

http://www.dcc.fc.up.pt/~jpp/cia/node54.html >

http://www.livinginternet.com/i/ii_ai.htm

http://www.conpet.gov.br/ed/

http://www.inbot.com.br/sete/

http://alicebot.org

http://www.cin.ufpe.br/~in1006/2003/AIParadigms.ppt

http://www.stdwizard.org/

http://expertise2go.com/webesie/

http://www.din.uem.br/ia/neurais/ >

http://www.icmc.usp.br/~andre/research/neural/index.htm

http://www.inf.unisinos.br/~osorio/neural.html

Inteligência Artificial – Elaine Rich e Kevin Knight – 2ª edição

Funções de Transferência

Add a comment

Related presentations

Related pages

Perceptrons | Article about Perceptrons by The Free Dictionary

Find out information about Perceptrons. ... Vapnik, V. N., and A. Ia. Chervonenkis. ... perceptron; Perceptrons;
Read more

AI : Neural Network for beginners (Part 1 of 3) - CodeProject

AI : Neural Network for beginners (Part 1 of 3) ... Part 1: This one, will be an introduction into Perceptron networks (single layer neural networks)
Read more

I.A. Rede Neural Perceptron Reconhecimento de padrões por ...

Software ainda em desenvolvimento - Inteligência Artificial - Rede Neural Perceptron Reconhecimento de padrões por amostragem. - Link para ...
Read more

Implementing and ploting a perceptron in ... - Stack Overflow

Implementing and ploting a perceptron in MATLAB. up vote 6 down vote favorite. 9. I´m reviewing a code from Toronto perceptron MATLAB code. The code is .
Read more

Inteligencia Artificial-Perceptrón Vídeo 1 - YouTube

Ingeniero Luis H. Paniagua da una explicación de que es Perceptrón. ... IA 12 de Abril de 2014 ... 3.5 Aprendizaje Perceptron - Hackeando ...
Read more

What is Perceptron? - Definition from Techopedia

Perceptron Definition - Perceptron is a machine learning algorithm that helps provide classified outcomes for computing. It dates back to the 1950s...
Read more

IMAGE RECOGNITION WITH NEURAL NETWORKS HOWTO

IMAGE RECOGNITION WITH NEURAL NETWORKS HOWTO. ... This tutorial will show you how to use multi layer perceptron neural network for image recognition.
Read more

An Introduction to Neural Networks - Iowa State University

May 27, 2002 An Introduction to Neural Networks Vincent Cheung Kevin Cannons Signal & Data Compression Laboratory Electrical & Computer Engineering
Read more

Dynamic Perception

We produce Timelapse and video motion control equipment for photographers and filmmakers. From ultra-light portable sliders to full 3-axis slide + pan ...
Read more