domingo, 25 de abril de 2010

Redes Neurais Artificiais [#1]

RNA - Introdução

Um dos principais assuntos que me chamou a atenção durante minha graduação em Mecatrônica Industrial foram as Redes Neurais Artificiais - RNA. Entender que um programa (software) consegue "aprender" algo por si só é, hoje em dia, algo bem fácil. Não interessa como aquilo aprendeu sozinho, mas aprendeu e fez. Um exemplo disso é o santo Google que "adivinha" nossa dúvida enquanto a digitamos. Um exemplo mais sofisticado é o Akinator - O Gênio da Internet. Você pensa em alguém e com mais ou menos 20 perguntas esse gênio consegue adivinhar em quem você pensou. Qualquer pessoa / desenho animado / personagem / etc que você pense. Até a sua mãe. Ele acerta. Mas como?

Algo que me deixava intrigado era o sistema de treinamento de uma Rede Neural. Eu não conseguia entender como eu iria treinar um algoritmo para que ele aprendesse que aquilo era aquilo mesmo. Quando eu pensava em treinar um neurônio eu via algo assim:


Mas pelo menos eu conseguia visualizar alguma coisa. E quanto à uma máquina puramente mecânica poder aprender por si só? Uma máquina, com pistões e engrenagens aprender algo sozinho era algo totalmente diferente do que um software (que foi programado) aprender só. E isso eu não conseguia nem imaginar. Até que um belo dia, em uma aula de gestão da manutenção, eu fui apresentado à Curva da Banheira:



Imagine a situação de um carro novo 0km que acabou de ser montado. Você compra o carro e sai dirigindo. A probabilidade do carro falhar é uma curva exponencial negativa (FASE 1). É nesta fase que as peças vão se ajustar umas com as outras e, assim, melhor seu próprio desempenho até que elas vão estabilizar e o carro vai ter seu rendimento máximo e contínuo (FASE 2) até que as peças comecem a falhar por desgaste ou qualquer outro motivo (FASE 3).

Foi a partir desse gráfico que consegui imaginar o aprendizado de uma máquina puramente mecânica. Na analogia com o carro, a fase de treinamento é a Fase 1, em que as peças estão se adaptando umas às outras para o melhor desempenho das mesmas, ou seja, estão aprendendo a trabalhar em conjunto.

Se uma máquina puramente mecânica consegue "aprender" sozinha, treinar um software não deve ser tão complicado assim. Antes de chegar na fase do treinamento, vamos primeiro entender o que seria uma Rede Neural não-artificial e como ela funciona. Para isso, ficam as questões: o que é, pra que servem e como funcionam os NEURÔNIOS?

continua...

Related Articles

0 comentários:

About us