Introdução às Redes Neurais com PHP

    Otávio Calaça – otaviocx@gmail.com
        http://phpendo.blogspot.com


        ...
Introdução às Redes Neurais com PHP

Grupo de Desenvolvedores PHP de Goiás
●   Lista de Discussão
●   Troca de Conheciment...
Introdução às Redes Neurais com PHP



                         Roteiro
• Redes Neurais Biológicas
   – O Neurônio Orgânic...
Introdução às Redes Neurais com PHP



O Neurônio Orgânico
Introdução às Redes Neurais com PHP



Redes Neurais Biológicas
Introdução às Redes Neurais com PHP



        Cérebro X Computador
Parâmetro                         Cérebro      Computa...
Introdução às Redes Neurais com PHP



    Redes Neurais Artificiais
• Histórico
  – McCulloch e Pitts(1943).
  – Donald H...
Introdução às Redes Neurais com PHP



    Redes Neurais Artificiais
• Neurônio Artificial
Introdução às Redes Neurais com PHP



    Redes Neurais Artificiais
• Neurônio Artificial (várias entradas)
Introdução às Redes Neurais com PHP



Funções de Ativação
Introdução às Redes Neurais com PHP



   Redes Neurais Artificiais
• Rede de uma camada
Introdução às Redes Neurais com PHP



    Redes Neurais Artificiais
• Rede de várias camadas
Introdução às Redes Neurais com PHP



    Redes Neurais Artificiais
• Rede de várias camadas
Introdução às Redes Neurais com PHP



    Redes Neurais com PHP
• Sinapse e função de ativação
    public function sinaps...
Introdução às Redes Neurais com PHP



    Redes Neurais com PHP
• Aprendizado
   public function treinar() {
       $this...
Introdução às Redes Neurais com PHP



       Redes Neurais com PHP
• Uso
   public function usar($entradas) {
       $thi...
Introdução às Redes Neurais com PHP



 FANN (Fast Artificial Neural Network)
• Biblioteca desenvolvida em C;
• Software L...
Introdução às Redes Neurais com PHP



                  FANN no PHP
• Extensão disponível no PECL;
• Funções disponiveis ...
Introdução às Redes Neurais com PHP



                 FANN no PHP
$ann = fann_create(array(2, 4, 3), 1.0, 0.7);         ...
Introdução às Redes Neurais com PHP



                   FANN no PHP
print_r(fann_run($ann,
print_r(fann_run($ann,
      ...
Introdução às Redes Neurais com PHP




Agradecimentos
Introdução às Redes Neurais com PHP



 Perguntas?


   Otávio Calaça
otaviocx@gmail.com
Introdução às Redes Neurais com PHP



                 Referências
• FANN
   http://leenissen.dk/fann/
• PECL fann
   htt...
Upcoming SlideShare
Loading in …5
×

Introdução às Redes Neurais com PHP

3,854 views

Published on

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

Published in: Technology

Introdução às Redes Neurais com PHP

  1. 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. 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. 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. 4. Introdução às Redes Neurais com PHP O Neurônio Orgânico
  5. 5. Introdução às Redes Neurais com PHP Redes Neurais Biológicas
  6. 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. 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. 8. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Neurônio Artificial
  9. 9. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Neurônio Artificial (várias entradas)
  10. 10. Introdução às Redes Neurais com PHP Funções de Ativação
  11. 11. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de uma camada
  12. 12. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de várias camadas
  13. 13. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de várias camadas
  14. 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. 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. 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. 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. 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. 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. 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. 21. Introdução às Redes Neurais com PHP Agradecimentos
  22. 22. Introdução às Redes Neurais com PHP Perguntas? Otávio Calaça otaviocx@gmail.com
  23. 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/

×