Neste post eu vou dar uma introdução sobre o que são redes neurais artificiais, como funcionam e suas aplicações.
O que são?
Rede neural é um método computacional que aprende com a experiência e imita uma rede de neurônios. Toda rede neural possui nós ou neurônios e são divididos em camadas, camadas de entrada (input), de saída (output) e escondidas (hidden). Neurônios escondidos podem formar mais de uma camada.
Os neurônios representam uma função de ativação, a rede recebe informação nos nós de entrada que são processados nas camadas escondidas e produzem uma saída. Uma rede neural não treinada tem todos os nós com peso igual, a medida que vai aprendendo, algumas conexões passam a ter mais peso que outras, conexões com mais peso quer dizer que são mais influentes no processo de aprendizagem e execução de tarefa da rede.
Neurônio artificial
Aqui é o modelo matemático de um neurônio artificial.
Os “X” são as entradas, “W” os pesos, Σ é a função de soma e o bloco f(a) é a função de ativação com o limitador t. O nível de atividade é:
a=W_{1}X_{1}+W_{2}X_{2}+...+W_{p}X_{p}
A saída y é igual a 1 se a>=t, 0 caso contrário.
Treinamento
Uma das regras mais comuns de aprendizado é a regra delta, é para redes neurais de retropropagação. É uma regra de aprendizado supervisionado, ou seja, um agente externo determina a saída desejada e a rede neural deve ajustar os pesos das conexões para produzir a saída desejada. A regra delta de Perceptron atualiza os pesos com base na função de passo e a regra delta de Adaline atualiza com base na ativação linear.
Inicialmente um padrão é mostrado para a rede e esta produz uma saída, mede-se a distância entre o peso ideal e o peso real e os pesos das conexões são ajustados para reduzir o erro quadrático médio até um valor mínimo global. O hiperparabolóide representa a margem de erro dos pesos que reduz até atingir um valor mínimo aceitável de erro. A regra delta cria um vetor gradiente em direção ao vetor do peso ideal.
Em aprendizado por reforço, a saída na rede é avaliada, se a resposta for positiva, os pesos são ajustados para produzir esta saída. Existem situações onde não é possível rotular grandes quantidades de dados, então o método de aprendizagem não-supervisionado é implementado, neste aprendizado os dados são divididos em grandes grupos chamados clusters.
Aplicações
Existem muitas aplicações com redes neurais, aqui tem alguns exemplos:
- Robótica (a razão deste post estar dentro deste tema);
- Análise e processamento de sons e imagens;
- Reconhecimento de padrões;
- Filtros contra ruídos eletromagnéticos;
- etc.