Your SlideShare is downloading. ×
  • Like
Introdução às Redes Neurais com PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introdução às Redes Neurais com PHP

  • 2,613 views
Published

Apresentação sobre redes neurais e como usar esse conceito com PHP, através da biblioteca FANN.

Apresentação sobre redes neurais e como usar esse conceito com PHP, através da biblioteca FANN.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,613
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
92
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introdução às Redes Neurais com PHP Otávio Calaça – otaviocx@gmail.com http://phpendo.blogspot.com 1º /dev/net http://www.aslgo.org.br/dev/net/ Goiânia, 08 de Novembro de 2008
  • 2. 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
  • 3. Introdução às Redes Neurais com PHP Roteiro • Redes Neurais Biológicas – O Neurônio Orgânico • Redes Neurais Artificiais – Histórico – Perceptron – Entradas, pesos, limiar e saídas – Função de ativação • Redes Neurais e o PHP – Construindo um perceptron – FANN (Fast Artificial Neural Network)
  • 4. Introdução às Redes Neurais com PHP O Neurônio Orgânico
  • 5. Introdução às Redes Neurais com PHP Redes Neurais Biológicas
  • 6. Introdução às Redes Neurais com PHP Cérebro X Computador 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 Possibilidades em um elemento Várias 2 Controle de Processos Distribuído Centralizado
  • 7. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Histórico – McCulloch e Pitts(1943). – Donald Hebb(1949): lei de aprendizagem. – Rosenblatt(1958): 1º neuro computador. – 2 decadas silenciosas. – Hopfield(1982): difusão dos conhecimentos.
  • 8. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Neurônio Artificial
  • 9. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Neurônio Artificial (várias entradas)
  • 10. Introdução às Redes Neurais com PHP Funções de Ativação
  • 11. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de uma camada
  • 12. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de várias camadas
  • 13. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de várias camadas
  • 14. Introdução às Redes Neurais com PHP Redes Neurais com PHP • Sinapse e função de ativação public function sinapse() { $this->saida = 0; foreach($this->entradas as $k => $ent) { $this->saida += $ent*$this->pesos[$k]; } $this->saida += $this->limiar; $this->saida = $this->ativacao($this->saida); } public function ativacao($valor) { if($valor <= 0) { return 0; } else { return 1; } }
  • 15. Introdução às Redes Neurais com PHP Redes Neurais com PHP • Aprendizado public function treinar() { $this->sinapse(); $this->erro = $this->esperada - $this->saida; if($this->erro != 0) { $pesos = array(); foreach($this->entradas as $k => $ent) { $pesos[$k] = $this->pesos[$k] + $ent*$this->erro; } $this->limiar = $this->limiar + $this->erro; $this->setPesos($pesos); } } public function aprender() { $this->treinar(); $n = 0; while($this->erro and $n < 10) { $this->treinar(); $n++; } }
  • 16. Introdução às Redes Neurais com PHP Redes Neurais com PHP • Uso public function usar($entradas) { $this->setEntradas($entradas); $this->sinapse(); return $this->saida; }
  • 17. 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 – Ruby – Java – Delphi – C++ – PERL – .NET – Outras... – Python
  • 18. Introdução às Redes Neurais com PHP FANN no PHP • Extensão disponível no PECL; • Funções disponiveis para o PHP: fann_create fann_get_activation_function_hidden fann_train fann_get_activation_function_output fann_save fann_get_activation_steepness_hidden fann_run fann_get_activation_steepness_output fann_randomize_weights fann_set_learning_rate fann_init_weights fann_set_activation_function_hidden fann_get_MSE fann_set_activation_function_output fann_get_num_input fann_set_activation_steepness_hidden fann_get_num_output fann_set_activation_steepness_output fann_get_total_neurons fann_get_total_connections fann_get_learning_rate
  • 19. Introdução às Redes Neurais com PHP FANN no PHP $ann = fann_create(array(2, 4, 3), 1.0, 0.7); Exemplo 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);
  • 20. Introdução às Redes Neurais com PHP FANN no PHP print_r(fann_run($ann, print_r(fann_run($ann, array(0, array(0, 0))); 1))); Exemplo print_r(fann_run($ann, array(1, 0))); print_r(fann_run($ann, array(1, 1))); [0] => XOR [1] => OR Retorno: [2] => AND Array Array ( ( [0] => 0 [0] => 1 [1] => 0 [1] => 1 [2] => 0 [2] => 0 ) ) Array Array ( ( [0] => 1 [0] => 0 [1] => 1 [1] => 1 [2] => 0 [2] => 1 ) )
  • 21. Introdução às Redes Neurais com PHP Agradecimentos
  • 22. Introdução às Redes Neurais com PHP Perguntas? Otávio Calaça otaviocx@gmail.com
  • 23. 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/