3.147.49.19@hermano.com.br:~$ ls ./estudos/redes_neurais/Perceptron
.. 00-leia.txt neuronio-artificial.jpg neuronio.jpg perceptron.txt
3.147.49.19@hermano.com.br:~$ cat ./estudos/redes_neurais/Perceptron/00-leia.txt
-------------------------------------Agora baixe o script PERL: perceptron.txt. Renomeie o arquivo:
| Pessoa | Valor | Função | Valor |
|-----------------------------------|
| Paulo | 0,0 | Analista | 0 |
| Joao | 0,1 | Analista | 0 |
| Tiago | 1,0 | Analista | 0 |
| Pedro | 1,1 | Tecnico | 1 |
-------------------------------------
$ mv perceptron.txt perceptron.plDepois basta executar o script:
$ perl perceptron.plNa iteração com o script fique à vontade para treinar e consultar o neurônio, pois assim fica fácil de entender o que ele está fazendo. Use a tabela acima para treinar e chegar aos pesos ideais (convergência).
----------------------------------------------------------Quando o resultado não é o esperado, os pesos serão recalculados:
Entrada : ( , )
Resultado esperado: ( )
(1) -------> (BIAS) ---wb=0--------\
( ) -------> (NRE1) ---w1=0-------- > (NRS1) ---= -
( ) -------> (NRE2) ---w2=0--------/
----------------------------------------------------------
1a iteracao!
Digite o nome da pessoa de entrada (Paulo,Joao,Tiago,Pedro)..........: paulo
Digite o resultado esperado (Analista,Tecnico,NaoSei)................: analista
---------------------------------------------------------
----------------------------------------------------------Depois de algumas iterações, neste exemplo, os pesos convergirão (observe logo abaixo). E a cada consulta de nome, o resultado deverá ser o esperado.
4a iteracao!
Digite o nome da pessoa de entrada (Paulo,Joao,Tiago,Pedro)...........: pedro
Digite o resultado esperado (Analista,Tecnico,NaoSei).................: tecnico
----------------------------------------------------------
Entrada : pedro (1,1)
Resultado esperado: tecnico (1)
(1) -------> (BIAS) ---wb=0--------\
(1) -------> (NRE1) ---w1=0-------- > (NRS1) ---= -
(1) -------> (NRE2) ---w2=0--------/
----------------------------------------------------------
Calculando ...
----------------------------------------------------------
Entrada : pedro (1,1)
Resultado esperado: tecnico (1)
(1) -------> (BIAS) ---wb=0--------\
(1) -------> (NRE1) ---w1=0-------- > (NRS1) ---= 0 - Analista
(1) -------> (NRE2) ---w2=0--------/
----------------------------------------------------------
Recalculando pesos (1a vez)...
----------------------------------------------------------
----------------------------------------------------------O Perceptron simples possui limitações, onde redes neurais artificiais de única camada não são capazes de executar funções não-linearmente separáveis como o xor (ou-exclusivo). Você pode testar isso neste mesmo exemplo mudando a função de Paulo de Analista (0) para Técnico (1), que representaria a operação lógica: not xor.
35a iteracao!
Digite o nome da pessoa de entrada (Paulo,Joao,Tiago,Pedro)...........: pedro
Digite o resultado esperado (Analista,Tecnico,NaoSei).................: naosei
----------------------------------------------------------
Entrada : pedro (1,1)
Resultado esperado: naosei ( )
(1) -------> (BIAS) ---wb=-0.1-----\
(1) -------> (NRE1) ---w1=0.1------ > (NRS1) ---= -
(1) -------> (NRE2) ---w2=0.05-----/
----------------------------------------------------------
Calculando ...
----------------------------------------------------------
Entrada : pedro (1,1)
Resultado esperado: naosei ( )
(1) -------> (BIAS) ---wb=-0.1-----\
(1) -------> (NRE1) ---w1=0.1------ > (NRS1) ---= 1 - Tecnico
(1) -------> (NRE2) ---w2=0.05-----/
----------------------------------------------------------
3.147.49.19@hermano.com.br:~$ clear_