SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Introdução às Redes Neurais com PHP

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


                1º FreeComp



    http://www.computacao.ucg.br/freecomp


       Goiânia, 13 de Dezembro de 2008
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
●
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
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      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
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



 FANN (Fast Artificial Neural Network)
• Biblioteca desenvolvida em C;
• Software Livre;
• Possui vínculos para diversas linguagens:
                        Ruby
  – PHP                 Delphi
  – Java                PERL
                        Outras...
  – C++
  – .NET
  – Python
Introdução às Redes Neurais com PHP



                  FANN no PHP
• Extensão disponível no PECL;
• Funções disponiveis para o PHP:
                              fann_get_activation_function_hidden
 fann_create
                              fann_get_activation_function_output
 fann_train
                              fann_get_activation_steepness_hidden
 fann_save
                              fann_get_activation_steepness_output
 fann_run
                              fann_set_learning_rate
 fann_randomize_weights
                              fann_set_activation_function_hidden
 fann_init_weights
                              fann_set_activation_function_output
 fann_get_MSE
                              fann_set_activation_steepness_hidden
 fann_get_num_input
                              fann_set_activation_steepness_output
 fann_get_num_output
 fann_get_total_neurons
 fann_get_total_connections
 fann_get_learning_rate
Introdução às Redes Neurais com PHP



                   FANN no PHP
                                                      Exemplo
$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);
Introdução às Redes Neurais com PHP



                     FANN no PHP
                                                      Exemplo
print_r(fann_run($ann,   array(0,   0)));
print_r(fann_run($ann,   array(0,   1)));
print_r(fann_run($ann,   array(1,   0)));
                                                      [0] => XOR
print_r(fann_run($ann,   array(1,   1)));
                                                      [1] => OR
                                                      [2] => AND
Retorno:
    Array                            Array
    (                                (
        [0]   => 0                       [0]   => 1
        [1]   => 0                       [1]   => 1
        [2]   => 0                       [2]   => 0
    )                                )
                                     Array
    Array
                                     (
    (
                                         [0]   => 0
        [0]   => 1
                                         [1]   => 1
        [1]   => 1
                                         [2]   => 1
        [2]   => 0
                                     )
    )
Introdução às Redes Neurais com PHP



           Exemplo de Utilização
• Lendo letras em ASCII

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



          Exemplo de Utilização
• Transformando em binário para entradas
  da rede:
 ######         111111 => 111111100000111110100000100000
 #              100000
 #####    ==>   111110
                             5x6 = 30 entradas
 #              100000
 #              100000

 26 letras = 26 possibilidades de saída
 5 saídas conseguem 25 = 32 possibilidades
Saída esperada para a letra F => 5 = 000101 (bin)
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.
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?
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?
Introdução às Redes Neurais com PHP



      Exemplo de Utilização
• Após o treinamento:
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?
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
   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/

Mais conteúdo relacionado

Mais procurados

Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em PythonLuciano Ramalho
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etcLuciano Ramalho
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!Juliano Atanazio
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Luciano Ramalho
 
Palestra python
Palestra pythonPalestra python
Palestra pythonRony Cruch
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesStanislaw Pusep
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printfLoiane Groner
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...Danilo J. S. Bellini
 
Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoTécnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoMario Chaves
 
Threads 04 Variáveis atômicas
Threads 04 Variáveis atômicasThreads 04 Variáveis atômicas
Threads 04 Variáveis atômicasHelder da Rocha
 
Threads 06: Coleções concorrentes
Threads 06: Coleções concorrentesThreads 06: Coleções concorrentes
Threads 06: Coleções concorrentesHelder da Rocha
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Juliano Atanazio
 
Theano - Alto Desempenho em Machine Learning
Theano - Alto Desempenho em Machine LearningTheano - Alto Desempenho em Machine Learning
Theano - Alto Desempenho em Machine LearningFelipe Martins
 

Mais procurados (20)

Aula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQLAula 02 - Curso PHP e MySQL
Aula 02 - Curso PHP e MySQL
 
Iteraveis e geradores em Python
Iteraveis e geradores em PythonIteraveis e geradores em Python
Iteraveis e geradores em Python
 
Python: Iteraveis, geradores etc
Python: Iteraveis, geradores etcPython: Iteraveis, geradores etc
Python: Iteraveis, geradores etc
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Iteraveis e geradores
Iteraveis e geradoresIteraveis e geradores
Iteraveis e geradores
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)Python para quem sabe Python (aula 2)
Python para quem sabe Python (aula 2)
 
Palestra python
Palestra pythonPalestra python
Palestra python
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf
 
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
(2013-05-20) [DevInSampa] AudioLazy - DSP expressivo e em tempo real para o P...
 
Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoTécnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em django
 
Threads 04 Variáveis atômicas
Threads 04 Variáveis atômicasThreads 04 Variáveis atômicas
Threads 04 Variáveis atômicas
 
Threads 06: Coleções concorrentes
Threads 06: Coleções concorrentesThreads 06: Coleções concorrentes
Threads 06: Coleções concorrentes
 
Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?Por que Python? Vamos Conhecer? Vamos Aprender?
Por que Python? Vamos Conhecer? Vamos Aprender?
 
Theano - Alto Desempenho em Machine Learning
Theano - Alto Desempenho em Machine LearningTheano - Alto Desempenho em Machine Learning
Theano - Alto Desempenho em Machine Learning
 
Python 02
Python 02Python 02
Python 02
 
How stuff works
How stuff worksHow stuff works
How stuff works
 

Destaque

Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeOtávio Calaça Xavier
 
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu web
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu webInteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu web
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu webSergio Espeja
 
Artificial Neural Networks with PHP & Symfony con 2014
Artificial Neural Networks with PHP & Symfony con 2014Artificial Neural Networks with PHP & Symfony con 2014
Artificial Neural Networks with PHP & Symfony con 2014Eduardo Gulias Davis
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionOtávio Calaça Xavier
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPOtávio Calaça Xavier
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxOtávio Calaça Xavier
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLOtávio Calaça Xavier
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
The $1000 Internet Exchange
The $1000 Internet ExchangeThe $1000 Internet Exchange
The $1000 Internet ExchangeAPNIC
 
História da Educação a Distância no Mundo e no Brasil
História da Educação a Distância no Mundo e no BrasilHistória da Educação a Distância no Mundo e no Brasil
História da Educação a Distância no Mundo e no BrasilFreela
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 

Destaque (20)

Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizade
 
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu web
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu webInteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu web
Inteligencia Artificial y Ruby on Rails: Mejora la publicidad de tu web
 
Artificial Neural Networks with PHP & Symfony con 2014
Artificial Neural Networks with PHP & Symfony con 2014Artificial Neural Networks with PHP & Symfony con 2014
Artificial Neural Networks with PHP & Symfony con 2014
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and Induction
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHP
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Introdução à Google Maps API
Introdução à Google Maps APIIntrodução à Google Maps API
Introdução à Google Maps API
 
Introdução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com AjaxIntrodução ao PHP Orientado a Objetos com Ajax
Introdução ao PHP Orientado a Objetos com Ajax
 
Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
The $1000 Internet Exchange
The $1000 Internet ExchangeThe $1000 Internet Exchange
The $1000 Internet Exchange
 
História da Educação a Distância no Mundo e no Brasil
História da Educação a Distância no Mundo e no BrasilHistória da Educação a Distância no Mundo e no Brasil
História da Educação a Distância no Mundo e no Brasil
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 

Semelhante a Redes Neurais com PHP

PHP - Uma Pequena Introducao
PHP - Uma Pequena IntroducaoPHP - Uma Pequena Introducao
PHP - Uma Pequena Introducaojonatasoliveira
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias IncluídasJonh Edson
 
OOP (in portuguese)
OOP (in portuguese)OOP (in portuguese)
OOP (in portuguese)Bruno Pedro
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It YourselfBruno Nascimento
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasÉverton Ribeiro
 
Monitoramento de System Calls com DTrace
Monitoramento de System Calls com DTraceMonitoramento de System Calls com DTrace
Monitoramento de System Calls com DTraceRafael Barbolo
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)Rudá Moura
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web HackingConviso Application Security
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XMLiMasters
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rustBruno Rocha
 

Semelhante a Redes Neurais com PHP (20)

PHP - Uma Pequena Introducao
PHP - Uma Pequena IntroducaoPHP - Uma Pequena Introducao
PHP - Uma Pequena Introducao
 
Python Com Baterias Incluídas
Python Com Baterias IncluídasPython Com Baterias Incluídas
Python Com Baterias Incluídas
 
Minicurso Java && Cl
Minicurso Java && ClMinicurso Java && Cl
Minicurso Java && Cl
 
OOP (in portuguese)
OOP (in portuguese)OOP (in portuguese)
OOP (in portuguese)
 
Arduino e Python: Do It Yourself
Arduino e Python: Do It YourselfArduino e Python: Do It Yourself
Arduino e Python: Do It Yourself
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
Principais novidades do PHP7
Principais novidades do PHP7Principais novidades do PHP7
Principais novidades do PHP7
 
Ruby e Erlang de mãos dadas
Ruby e Erlang de mãos dadasRuby e Erlang de mãos dadas
Ruby e Erlang de mãos dadas
 
Monitoramento de System Calls com DTrace
Monitoramento de System Calls com DTraceMonitoramento de System Calls com DTrace
Monitoramento de System Calls com DTrace
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Olá Python!
Olá Python!Olá Python!
Olá Python!
 
Python No Terra (2006-12-21)
Python No Terra  (2006-12-21)Python No Terra  (2006-12-21)
Python No Terra (2006-12-21)
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XML
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
C# 4.0
C# 4.0C# 4.0
C# 4.0
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 

Redes Neurais com PHP

  • 1. Introdução às Redes Neurais com PHP Otávio Calaça – otaviocx@gmail.com http://phpendo.blogspot.com 1º FreeComp http://www.computacao.ucg.br/freecomp Goiânia, 13 de Dezembro 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 – Perceptron – Entradas, pesos, limiar e saídas – Função de ativação • FANN (Fast Artificial Neural Network) – FANN no PHP – Exemplo de utilização
  • 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 • Neurônio Artificial
  • 8. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Neurônio Artificial (várias entradas)
  • 9. Introdução às Redes Neurais com PHP Funções de Ativação
  • 10. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de uma camada
  • 11. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de várias camadas
  • 12. Introdução às Redes Neurais com PHP Redes Neurais Artificiais • Rede de várias camadas
  • 13. Introdução às Redes Neurais com PHP FANN (Fast Artificial Neural Network) • Biblioteca desenvolvida em C; • Software Livre; • Possui vínculos para diversas linguagens: Ruby – PHP Delphi – Java PERL Outras... – C++ – .NET – Python
  • 14. Introdução às Redes Neurais com PHP FANN no PHP • Extensão disponível no PECL; • Funções disponiveis para o PHP: fann_get_activation_function_hidden fann_create fann_get_activation_function_output fann_train fann_get_activation_steepness_hidden fann_save fann_get_activation_steepness_output fann_run fann_set_learning_rate fann_randomize_weights fann_set_activation_function_hidden fann_init_weights fann_set_activation_function_output fann_get_MSE fann_set_activation_steepness_hidden fann_get_num_input fann_set_activation_steepness_output fann_get_num_output fann_get_total_neurons fann_get_total_connections fann_get_learning_rate
  • 15. Introdução às Redes Neurais com PHP FANN no PHP Exemplo $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);
  • 16. Introdução às Redes Neurais com PHP FANN no PHP Exemplo print_r(fann_run($ann, array(0, 0))); print_r(fann_run($ann, array(0, 1))); print_r(fann_run($ann, array(1, 0))); [0] => XOR print_r(fann_run($ann, array(1, 1))); [1] => OR [2] => AND Retorno: Array Array ( ( [0] => 0 [0] => 1 [1] => 0 [1] => 1 [2] => 0 [2] => 0 ) ) Array Array ( ( [0] => 0 [0] => 1 [1] => 1 [1] => 1 [2] => 1 [2] => 0 ) )
  • 17. Introdução às Redes Neurais com PHP Exemplo de Utilização • Lendo letras em ASCII ###### ##### ###### ###### ##### ###### # # ##### # # # # # # # # ## ## # # ##### ##### ##### ##### # # # # ## # ##### # ## # # # # # # # # # # ## ###### ###### ##### ###### # # #
  • 18. Introdução às Redes Neurais com PHP Exemplo de Utilização • Transformando em binário para entradas da rede: ###### 111111 => 111111100000111110100000100000 # 100000 ##### ==> 111110 5x6 = 30 entradas # 100000 # 100000 26 letras = 26 possibilidades de saída 5 saídas conseguem 25 = 32 possibilidades Saída esperada para a letra F => 5 = 000101 (bin)
  • 19. 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.
  • 20. 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?
  • 21. 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?
  • 22. Introdução às Redes Neurais com PHP Exemplo de Utilização • Após o treinamento:
  • 23. 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?
  • 24. Introdução às Redes Neurais com PHP Agradecimentos
  • 25. Introdução às Redes Neurais com PHP Perguntas? Otávio Calaça otaviocx@gmail.com
  • 26. 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/