Redes Neurais – Redes clássicas
Introdução às Redes Neurais
No primeiro post da série vimos uma introdução de como funcionam redes neurais. No segundo post vimos como funcionam os processamentos de cada neurônio, que é dado por sua função de ativação.
Veremos agora algumas redes neurais classicas: Self-Organizing Maps (SOM), Hopfield, Máquina de Boltzmann e Feedforward.
Rede Neurais Self-Organizing Maps
Um dos primeiros tipos de redes neurais que ainda são usadas hoje em dia, Self-Organizing Maps (SOM) é usado para classificar dados de entrada em vários grupos. Os dados de treinamento são passados para a SOM assim como o número de grupos nos quais eles devem ser classificados.
Durante o treinamento a SOM irá classificar os dados em grupos de acordo com a similaridade de suas características. O processo é bem similar a algoritmos de clusterização, como o k-means, com a diferença que a SOM pode continuar classificando dados depois de seu treinamento inicial, o que não acontece com os algoritmos de clusterização.
O treinamento de uma SOM é não-supervisionado. Ou seja, não são passados a ela o grupo a que esperamos que cada dado seja classificado.
A SOM descobre os grupos sozinha e classifica os demais dados baseados nos resultados obtidos de seus dados de treinamento.
SOM:
O exemplo acima mostra uma SOM que mapeia 3 neurônios de entrada em 9 neurônios de saída arranjados em um grid de 3×3. Os neurônios de saída de uma SOM são geralmente organizados em grid, cubos ou outras estruturas de maior dimensão. Isso acontece porque, diferente do que acontece na maioria das redes neurais, a SOM leva em consideração a ordem ou posição de um seus neurônios de saída. Assim sendo, posições mais próximas são grupos que possuem maior semelhança.
Podemos ver essa consideração de proximidade em um exemplo do livro Artificial Intelligence for Humans Volume 3, onde o autor treina uma SOM para classificar cores:
Note que cores semelhantes são agrupadas próximas umas das outras, o que nos mostra como funciona o agrupamento de uma SOM.
Em resumo, uma rede neural Self-Organizing Maps aprende a agrupar dados, principalmente os dados que são semelhantes aos dados de entrada de seu treinamento não-supervisionado.
Redes Neurais de Hopfield
Redes neurais de Hopfield são talvez o tipo mais simples de rede neural, pois é totalmente conectada em uma camada apenas e é auto-associativa. Este tipo retorna todo um padrão ao reconhecer parte dele. É útil para completar lacunas em padrões passados como dado de entrada. Veja um exemplo com 4 neurônios:
Podemos ver que existem 12 conexões na rede. Essas conexões possuem pesos que ficam guardados em uma matriz 4×4, onde a diagonal é sempre 0 por não haver conexões de um neurônio consigo mesmo.
Cada neurônio possui um estado de verdadeiro (1) ou falso (-1). Esses estados são o estado inicial da rede e se tornam a saída da mesma ao final do processamento.
Redes Neurais: Máquina de Boltzmann
Máquinas de Boltzmann foram introduzidas por Hinton & Sejnowski em 1985 mas só começaram a ser amplamente usadas recentemente. São a base para algumas redes neurais usadas em Deep Learning.
Uma máquina de Boltzmann é, essencialmente, uma rede neural de duas camadas totalmente conectada. Nos referimos a essas camadas como camada visual e camada escondida, sendo que a camada visual funciona de forma análoga a uma camada de entrada e a escondida como uma camada de saída. Uma máquina de Boltzmann não possui nenhuma camada entre essas duas.
O exemplo acima possui 3 neurônios escondidos e 4 neurônios visíveis.
Em uma Máquina de Boltzmann, assim como na Hopfield, os neurônios possuem apenas os valores verdadeiro ou falso.
Uma máquina de Boltzmann tem capacidade de armazenar maiores padrões do que a Hopfield e pode ainda ser empilhadas para formar camadas de uma rede maior.
Redes Neurais com propagação positiva (Feedforward)
Redes neurais Feedforward estão entre as arquiteturas de redes neurais mais comuns principalmente por causa da sua versatilidade. Nesse tipo de rede, cada camada contém conexões para a próxima camada.
Por exemplo, conexões são feitas da camada de entrada a uma camada escondida ou de saída, mas nenhuma conexão volta, o que difere de redes Hopfield que é totalmente conectada. Uma rede Feedforward tem uma camada de entrada, uma de saída e quantas camadas escondidas forem necessárias (podendo não haver nenhuma).
Dependendo do domínio de problema ao qual será aplicada a rede Feedforward, sua camada de saída será diferente. Quando aplicada a um problema de classificação, ela terá um neurônio de saída para cada classe que deve classificar. Quando aplicada a um problema de regressão, a rede terá apenas um neurônio de saída.
A rede neural acima terá como saída apenas um número e pode ser usada para problemas de regressão (Definir um número a partir de suas entradas) e classificação binária (Escolher entre duas opções a partir de suas entradas).
Conclusão
Vimos nesse post algumas das redes neurais clássicas existentes. Vimos seus formatos e o tipo de problema que são capazes de solucionar.