ia perceptron

30
Inteligência Artificial Perceptron Rafael Rosario [email protected] .br [email protected] .br

Upload: rafaeljoi

Post on 28-Jan-2015

144 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 2: IA Perceptron

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

Page 3: IA Perceptron

Perceptrons (II)

X2

X1

Page 4: IA Perceptron

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

Page 5: IA Perceptron

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.

Page 6: IA Perceptron

Perceptron – Exemplo (I)

Imaginemos um problema de classificação:

COMPOSITOR CIENTISTABACH XBEETHOVEN XEINSTEIN XKEPLER X

Page 7: IA Perceptron

Perceptron – Exemplo (II)

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

N1 N2 SAÍDA

BACH 0 0 0BEETHOVEN 0 1 0EINSTEIN 1 0 1KEPLER 1 1 1

COMPOSITOR 0CIENTISTA 1

Page 8: IA Perceptron

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

Page 9: IA Perceptron

Perceptron – Exemplo (IV)

Escolhemos um valor para testar a rede. A somatória (será: (Bias*Wb)+(N1*W1)+(N2*W2)

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2=0

W1= 0

Page 10: IA Perceptron

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... :-/

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2=0

W1= 0

Page 11: IA Perceptron

Perceptron – Exemplo (VI)

Temos que ajustar os pesos (W), usando a fórmula: Wnovo = Wanterior +

(ValorErro * TaxaAprendizagem * SinalEntrada)

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2=0

W1= 0

Page 12: IA Perceptron

Perceptron – Exemplo (VII)

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

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Page 13: IA Perceptron

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)

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 1

W2=1

W1= 1

Page 14: IA Perceptron

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)

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 1

W2=1

W1= 1

Page 15: IA Perceptron

Perceptron – Exemplo (X)

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

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

W1= 1

Page 16: IA Perceptron

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)

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2= 0

W1= 1

Page 17: IA Perceptron

Perceptron – Exemplo (XII)

Desta vez o sinal gerado (1) era o sinal esperado. Neste caso, não precisamos ajustar os pesos.

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2= 0

W1= 1

Page 18: IA Perceptron

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

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2= 0

W1= 1

Page 19: IA Perceptron

Perceptron – Exemplo (XIII)

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

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

N1 N2 SAÍDA

BACH 0 0 0

BEETHOVEN 0 1 0

EINSTEIN 1 0 1

KEPLER 1 1 1

BIAS

N1

N2

S

Wb= 0

W2= 0

W1= 1

Page 20: IA Perceptron

Perceptrons – Prática 1

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

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

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

Page 21: IA Perceptron

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 CORISAGRIPE 1 0 1 1RESFRIADO 0 1 0 1GRIPE 1 0 1 0RESFRIADO 0 1 1 1GRIPE 0 0 1 1RESFRIADO 0 0 0 1

Page 22: IA Perceptron

Perceptrons – Prática 2 (II)

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

2) Qual é o resultado para outros valores?

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

Page 23: IA Perceptron

Perceptrons - Limitação

• Minsky e Papert: e se não for linear?– XOR

X1 X2 X1 XOR X2

0 0 00 1 11 0 11 1 0

Page 24: IA Perceptron

Perceptrons – Prática 3

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

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

Page 25: IA Perceptron

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

Page 26: IA Perceptron

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

Page 27: IA Perceptron

Perceptrons – Prática 4 (I)

VALENDO 2 PONTOS DA PARCIAL 2:Crie seu perceptron, seguindo os seguintes passos:

1. 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 1RESULTADO B 1 0 0 0 0RESULTADO C 0 1 0 0 1RESULTADO D 0 1 1 1 0RESULTADO B 1 0 0 1 1Até a linha 12... … … … … ...

Page 28: IA Perceptron

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:a) Sua RNA conseguiu aprender os 12 elementos do treinamento? Eles

são linearmente separáveis?;b) Crie mais quatro exemplos e teste no seu programa. Quais eram o

resultados esperados e o que a rede respondeu? c) A RNA criada teria alguma utilidade prática? Por que?

Page 29: IA Perceptron

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

Page 30: IA Perceptron

Funções de Transferência