Redes Neurais – Introdução

On 22 de junho de 2016 by Bernardo Reis

Introdução as Redes Neurais

Redes neurais artificiais (RNAs) são modelos computacionais inspirados pelo sistema nervoso central de um animal (em particular o cérebro) que são capazes de realizar aprendizado de máquina bem como o reconhecimento de padrões. RNAs geralmente são apresentadas como um sistema de neurônios interconectados que processam valores de entrada para gerar uma saída.

Como funcionam os neurônios biológicos

Os neurônios são as células que formam o nosso cérebro. Elas são compostas basicamente por três partes: os dentritos, que captam informações ou do ambiente ou de outras células, o corpo celular que é responsável pelo processamento das informações, e um axônio, para distribuir a informação processada para outros neurônios ou células do corpo. Só que uma célula dificilmente trabalha sozinha. Quanto mais células trabalharem em conjunto, mais elas podem processar e mais eficaz é o trabalho. Logo, para o melhor rendimento do sistema são necessários muitos neurônios.

Neurônios artificiais

Um neurônio artificial é capaz de um único processamento. Cada entrada recebe somente um tipo de sinal ou informação e possui um peso que determina a influência do sinal no resultado do processamento. Como um neurônio pode possuir várias entradas, então ele pode receber diferentes sinais. É a ligação de vários neurônios que faz com que o sistema consiga processar mais informações e oferecer mais resultados.

Por exemplo, é possível criar um sistema para identificação de abacaxis e maças. Para tal, cria-se neurônios sensíveis a cor e forma. Os de cor percebem o amarelo e o vermelho. Os de forma percebem o redondo e o mais comprido. Cada neurônio, então, possui quatro entradas, uma para cada informação.

Para obter um melhor rendimento do sistema, cria-se uma rede em camadas: uma primeira camada com quatro neurônios (um para cada sinal de entrada), uma segunda camada oculta de processamento com três neurônios e uma camada de saída com dois neurônios, um para avisar quando é uma maça e outro para avisar quando é uma banana.

rede_neural

redes neurais

Aprendizado

Não existe uma programação pré-definida dos neurônios artificiais, como existem nas portas lógicas utilizadas nos circuitos computacionais. Ao invés disso, eles possuem um sistema de feedback que modifica sua programação. Cada informação processada gera um peso, dependendo do resultado. Se for um acerto, ela ganha um ponto, se for um erro, ela perde meio ponto.

Dessa forma, a rede neural do exemplo acima testa várias vezes a percepção do objeto. A cada acerto, os neurônios envolvidos no processamento ganham um ponto e aquela rede é reforçada. A cada erro, esses neurônios perdem meio ponto. Dessa forma, o sistema cria a rotina de seguir o caminho com mais pontos sempre. Quanto mais tentativas, mais aprimorado fica o sistema, chegando, ao final de um processo de aprendizado, a executar tarefas quase sem erro algum.

Esse processo de aprendizado é geralmente chamado de treinamento, e pode ocorrer de forma supervisionada ou não-supervisionada. Se não forem dados os resultados ideais de seus processamentos, um determinado treinamento é não-supervisionado. Se forem dados os resultados esperados do processamento da rede neural, o treinamento desta é chamado de supervisionado.

Ambos os tipos de treinamento são processos iterativos. No treinamento supervisionado é calculado o erro entre o resultado esperado e o resultado obtido e os pesos das entradas dos neurônios são ajustados de acordo para diminuir esse erro a um valor aceitável.

No treinamento não-supervisionado, como não há um resultado esperado, não é possível fazer o cálculo desse erro. É feito então um determinado número de iterações e tenta-se usar a rede neural treinada. Caso ela ainda não esteja boa o suficiente, ela é treinada por mais iterações.

Domínio de problema

Nem todas as redes neurais são feitas para resolver todos os tipos de problema. É responsabilidade do programador saber qual o tipo de rede neural é ideal para determinado domínio de problema. Para auxiliar nessa decisão, segue uma tabela retirada do livro Artificial Intelligence for Humans, Volume 3: Deep Learning and Neural Networks por Jeff Heaton:

tabela_redes_problemas

Descrição dos problemas listados acima:

  • Clust: Problemas de clusterização não-supervisionados.
  • Regis: Problemas de regressão onde as redes devem retornar um número baseado na entrada.
  • Classif: Problemas de classificação onde a rede deve classificar dados em classes predefinidas.
  • Predict: A rede deve predizer eventos no tempo, como sinais para aplicações financeiras.
  • Robot: Problemas de robótica que usam sensores e motores.
  • Vision: Problemas de visão computacional onde o computador deve entender imagens.
  • Optim: Problemas de otimização onde a rede deve encontrar a melhor ordem ou conjunto de valores para atingir um objetivo.

O número de “checks” representa a aplicabilidade de cada rede neural a um determinado domínio de problema. Se não houver nenhum, determinada rede não é aplicável ao problema a que se refere.

Conclusão

Redes neurais são um exemplo de que é possível construir máquinas capazes de aprender, de errar, de melhorar e principalmente, que não são presos a programações que podem falhar. O que limita uma máquina dessas é sua própria experiência.

No próximo post da série de Redes Neurais veremos como funcionam os processamentos feitos por um neurônio.

Summary
Review Date
Reviewed Item
Redes neurais artificiais (RNAs) são modelos computacionais inspirados pelo sistema nervoso central capazes de realizar reconhecimento de padrões.
Author Rating
51star1star1star1star1star

Trackbacks & Pings

Deixe um comentário

O seu endereço de e-mail não será publicado.