Redes Neurais com PHP
-
Upload
otavio-calaca-xavier -
Category
Technology
-
view
5.302 -
download
11
description
Transcript of Redes Neurais com PHP
![Page 1: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/1.jpg)
Introdução às Redes Neurais com PHP
Otávio Calaça – [email protected]
http://phpendo.blogspot.com
1º FreeComp
http://www.computacao.ucg.br/freecomp
Goiânia, 13 de Dezembro de 2008
![Page 2: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/2.jpg)
Introdução às Redes Neurais com PHP
Grupo de Desenvolvedores PHP de Goiás
● Lista de Discussão
● Troca de Conhecimentos
● Encontros
● Palestras
● Eventos
● Networking
![Page 3: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/3.jpg)
Introdução às Redes Neurais com PHP
Roteiro
• Redes Neurais Biológicas– O Neurônio Orgânico
• Redes Neurais Artificiais– Perceptron
– Entradas, pesos, limiar e saídas
– Função de ativação• FANN (Fast Artificial Neural Network)
– FANN no PHP
– Exemplo de utilização
![Page 4: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/4.jpg)
Introdução às Redes Neurais com PHP
O Neurônio Orgânico
![Page 5: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/5.jpg)
Introdução às Redes Neurais com PHP
Redes Neurais Biológicas
![Page 6: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/6.jpg)
Introdução às Redes Neurais com PHP
Cérebro X Computador
Possibilidades em um elemento Várias 2
Parâmetro Cérebro Computador
Material Orgânico Metal e plástico
Velocidade Milisegundos Nanosegundos
Tipo de Processamento Paralelo Seqüencial
Armazenamento Adaptativo Estático
Controle de Processos Distribuído Centralizado
![Page 7: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/7.jpg)
Introdução às Redes Neurais com PHP
Redes Neurais Artificiais
• Neurônio Artificial
![Page 8: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/8.jpg)
Introdução às Redes Neurais com PHP
Redes Neurais Artificiais
• Neurônio Artificial (várias entradas)
![Page 9: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/9.jpg)
Introdução às Redes Neurais com PHP
Funções de Ativação
![Page 10: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/10.jpg)
Introdução às Redes Neurais com PHP
Redes Neurais Artificiais
• Rede de uma camada
![Page 11: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/11.jpg)
Introdução às Redes Neurais com PHP
Redes Neurais Artificiais• Rede de várias camadas
![Page 12: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/12.jpg)
Introdução às Redes Neurais com PHP
Redes Neurais Artificiais• Rede de várias camadas
![Page 13: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/13.jpg)
Introdução às Redes Neurais com PHP
FANN (Fast Artificial Neural Network)
• Biblioteca desenvolvida em C;• Software Livre;• Possui vínculos para diversas linguagens:
– PHP– Java– C++– .NET– Python
RubyDelphiPERLOutras...
![Page 14: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/14.jpg)
Introdução às Redes Neurais com PHP
FANN no PHP
fann_createfann_trainfann_savefann_runfann_randomize_weightsfann_init_weightsfann_get_MSEfann_get_num_inputfann_get_num_outputfann_get_total_neuronsfann_get_total_connectionsfann_get_learning_rate
fann_get_activation_function_hiddenfann_get_activation_function_outputfann_get_activation_steepness_hiddenfann_get_activation_steepness_outputfann_set_learning_ratefann_set_activation_function_hiddenfann_set_activation_function_outputfann_set_activation_steepness_hiddenfann_set_activation_steepness_output
• Extensão disponível no PECL;• Funções disponiveis para o PHP:
![Page 15: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/15.jpg)
Introdução às Redes Neurais com PHP
FANN no PHP$ann = fann_create(array(2, 4, 3), 1.0, 0.7);fann_train($ann, array( array( array(0,0), /* Input(s) */ array(0,0,0) /* Output(s) */ ), array( array(0,1), /* Input(s) */ array(1,1,0) /* Output(s) */ ), array( array(1,0), /* Input(s) */ array(1,1,0) /* Output(s) */ ), array(array(1,1), /* Input(s) */ array(0,1,1) /* Output(s) */ ) ), 100000, 0.0000001, 1000);
Exemplo
![Page 16: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/16.jpg)
Introdução às Redes Neurais com PHP
FANN no PHPprint_r(fann_run($ann, array(0, 0)));print_r(fann_run($ann, array(0, 1)));print_r(fann_run($ann, array(1, 0)));print_r(fann_run($ann, array(1, 1)));
Retorno:
Exemplo
Array( [0] => 0 [1] => 0 [2] => 0)
Array( [0] => 1 [1] => 1 [2] => 0)
Array( [0] => 1 [1] => 1 [2] => 0)
Array( [0] => 0 [1] => 1 [2] => 1)
[0] => XOR[1] => OR[2] => AND
![Page 17: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/17.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização• Lendo letras em ASCII
###### ##### ###### ###### ##### ###### # # ##### # # # # # # # # ## ## # # ##### ##### ##### ##### # # # # ## # ##### # # # # # # # # # # # # # ## ###### ###### ##### ###### # # #
![Page 18: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/18.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização• Transformando em binário para entradas
da rede:
###### 111111 => 111111100000111110100000100000# 100000 ##### ==> 111110 # 100000 # 100000
5x6 = 30 entradas
26 letras = 26 possibilidades de saída5 saídas conseguem 25 = 32 possibilidades
Saída esperada para a letra F => 5 = 000101 (bin)
![Page 19: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/19.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização
• Com a entrada legível pela rede, teremos então que treiná-la.
• Padrões de entrada a serem usados.• Saídas esperadas.
![Page 20: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/20.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização
• Características da Rede:– 30 entradas;– 5 saídas;
• Quando utilizar a camada oculta?
![Page 21: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/21.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização
• Treinando– Definissão de pesos e limiar adequados– Tornando a rede mais inteligente
• Qual erro deve ser permitido?
![Page 22: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/22.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização• Após o treinamento:
![Page 23: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/23.jpg)
Introdução às Redes Neurais com PHP
Exemplo de Utilização• Aperfeiçoamento da rede;• Inserção de camada oculta;• Inserção de novos padrões de entrada;• Usando o fannExplorer.
• Por que utilizar redes neurais para o reconhecimento de padrões?
![Page 24: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/24.jpg)
Introdução às Redes Neurais com PHP
Agradecimentos
![Page 25: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/25.jpg)
Introdução às Redes Neurais com PHP
Perguntas?
Otávio Calaça
![Page 26: Redes Neurais com PHP](https://reader031.fdocumentos.com/reader031/viewer/2022020116/5598a0961a28ab9f0a8b4600/html5/thumbnails/26.jpg)
Introdução às Redes Neurais com PHP
Referências• FANN
http://leenissen.dk/fann/
• PECL fann
http://pecl.php.net/package/fann
• PHP: Hypertext Preprocessor
http://www.php.net
• Martin Hagan
http://hagan.ecen.ceat.okstate.edu/nnd.html
• Uma introdução às redes neurais
http://www.din.uem.br/ia/neurais/