As RNA utilizam elementos básicos de processamento, denominados neurônios, que são organizados em redes de maneira análoga à que se acredita que os neurônios estejam interconectados no cérebro (GONZALEZ e WOODS, 2010), inclusive em relação ao comportamento, que adquire conhecimento através da experiência. Segundo Tso e Mather (2009), essa é a especial habilidade das RNA, que durante a fase de treinamento, a rede neural aprende sobre as regularidades presente nos dados de treinamento e, baseada nestas regularidades, constrói regras que podem ser estendidas para os dados não conhecidos.
A arquitetura (ou topologia) de uma rede neural artificial refere-se à maneira como os elementos de processamento são organizados. Dentre as arquiteturas, a Multilayer Perceptron (MLP), que é formada por uma camada de entrada, uma camada de saída e uma ou mais camadas intermediárias (ocultas ou escondidas) é o tipo de arquitetura mais usada (BRONDINO e SILVA, 2005). Um exemplo típico de RNA MLP é mostrado na Figura 20(a), na qual é formada por uma camada de entrada, duas camadas ocultas e uma camada de saída. A camada de entrada contém os dados de entrada na rede, cujo número de neurônios corresponde à dimensionalidade dos vetores de atributos desses dados. Nesta camada, nenhum processamento é realizado. Ao contrário das camadas ocultas, onde a maior parte do processamento é executada. Na camada de saída, os neurônios produzem o resultado da classificação, com o número de neurônios dessa camada correspondente ao número de classes de informações (TSO e MATHER, 2009).
A definição do número de camadas ocultas e de neurônios em cada camada é um problema de normalmente resolvido experimentalmente (GALO, 2000), mas verifica-se na literatura algumas sugestões com redes de no máximo duas camadas ocultas, que podem ser usadas como referência para iniciar a experimentação. Alguns autores defendem que uma rede MLP com uma única camada oculta é suficiente para modelar qualquer tipo de problema. Um exemplo é o critério de Kolmogorov, que afirma que com apenas uma camada escondida é possível modelar qualquer função matemática contínua, desde que a camada oculta contenha (2*i+1) neurônios, considerando i como o número de variáveis de entrada na rede (GORNI, 1993). Para redes com duas camadas ocultas, Lippman (1987) propõe que a primeira camada deve conter s(i+1) neurônios e a segunda camada o dobro da última, ou seja, (2*s) neurônios, onde s representa o número de neurônios na camada de saída (GORNI, 1993).
Wk2 Wkn camada de entrada camadas ocultas camada de saída vetor de característica de entrada classe ω2 classe ω3 classe ωn classe ω1 x1 x2 x3 xn Wjxi j = 1,2,..., Nj i = 1,2,...,n J K Q Wkj k = 1,2,..., Nk j = 1,2,...,Nj Wqk q = 1,2,..., Nq k = 1,2,...,Nk Nj neurônios Nk neurônios (a) (b) Wk1
Σ
Ik pesos Ok função soma função de ativaçãoFigura 20 - (a) Modelo de uma RNA MLP feedfoward; (b) Estrutura básica de cada neurônio da rede (Fonte: Adaptado de Gonzalez e Woods (2010)).
Na Figura 20(a), o modelo apresentado é uma rede de alimentação progressiva, chamada de feedforward, que consiste em camadas de neurônios organizados de tal forma que a saída de cada neurônio em uma camada alimenta a entrada de cada neurônio na próxima camada. O modelo apresenta (GONZALEZ e WOODS, 2010):
• e \: camadas ocultas, cujo número de neurônios são respectivamente igual a O e \O;
• : camada de saída, cujo número de neurônios corresponde ao número de classes de informação que a rede foi treinada para reconhecer ( <;
• qOm, qO e q: pesos ajustados durante o treinamento da rede. Por exemplo, para qOm lê-se: peso de conexão entre o neurônio S da camada e um neurônio ! da camada de entrada.
A entrada de cada neurônio (w) em qualquer camada é a soma ponderada (Σ) das saídas da camada anterior. Na Figura 20(b), o neurônio foi ampliado ilustrando os elementos envolvidos na sua estrutura. Assim, considerando este neurônio (neurônio e da camada \) e a camada anterior a K, o elemento de ativação do neurônio e, denotado por w, é dado por:
w O qOMO (26)
26
para S = 1, 2, ..., O.
Neste caso, as saídas da camada são dadas por:
MO 'O wO (27)
27
Na Equação 27, ' : é uma função de ativação, que segundo Brondino e Silva (2005), funciona como um limitante à amplitude da saída do neurônio. Diversas funções de ativação podem ser usadas, como função linear, threshold, tangente hiperbólica, sigmoidal logística etc., sendo tratada aqui a função sigmoidal logística, cujos resultados se encontram no intervalo /x 4 e é dada por:
' w H ¡¢£¤¢ ¤ ¥ (28) 28
sendo que e = 1, 2, ... ; ¦ atua como um limiar; e ¦ controla o formato da função sigmoide. Segundo Brondino e Silva (2005), o ¦ tem papel determinante na saída de cada neurônio da camada \. Se o valor w for menor que ¦, a saída do neurônio fica inibida. No caso em que o valor w for maior que ¦, a saída do neurônio fica ativa.
O processo acima permite calcular as saídas dos neurônios na camada de saída M.
A capacidade de discriminação das RNA está contida em seus pesos. Durante o treinamento, os pesos são iterativamente ajustados de modo a permitir que a rede discrimine os padrões de interesse (SCHOWENGERDT, 2007). O processo de treinamento se inicia com a definição de um conjunto arbitrário de pesos para as conexões entre os neurônios e, por meio de um processo interativo que envolve duas fases (GONZALEZ e WOODS, 2010). Na primeira, um vetor de treinamento é apresentado à rede e se propaga através de suas camadas para calcular uma saída para cada neurônio. As saídas dos neurônios na última camada são, então, comparadas com as saídas desejadas, para que os termos de erros sejam calculados. A segunda fase envolve um caminho de volta pela rede, a partir da última camada, e durante esse caminho, o erro é passado para cada neurônio e mudanças correspondentes nos pesos são realizadas (ou seja, os pesos são ajustados).
O algoritmo de treinamento mais conhecido de RNA MLP é o Backpropagation, que é designado para minimizar a função erro entre a saída calculada por uma arquitetura e a saída desejada (SCHOWENGERDT, 2007). Mediante a apresentação de qualquer padrão de treinamento na entrada da rede, sabe-se qual a saída desejada de cada neurônio na camada de saída . Desta forma, o erro quadrático total §¨ entre as saídas desejadas e as saídas calculadas pode ser calculado pela equação (GONZALEZ e WOODS, 2010):
§¨ %© 3 M( (29)
29
onde é o número de neurônios na camada de saída .
O objetivo é desenvolver uma regra de treinamento que permite o ajuste de pesos em cada uma das camadas de modo a minimizar a função erro apresentada na Equação 29. Assim, os pesos são ajustados proporcionalmente à derivada parcial do erro em relação aos pesos, como segue:
ªq 3«¬o¬®©¢ (30)
30
sendo que
D
é uma constante positiva, frequentemente denominada de taxa de aprendizagem, a qual determina a proporção de ajuste dos pesos (GALO, 2000). Assim, seD
for grande, ovalor de ªq também será grande e, portanto, os pesos sofrerão uma maior alteração e a minimização do erro pode levar mais tempo.
O erro §¨ é uma função das saídas M, as quais dependem da entrada w (no caso para a camada de saída ). Desenvolvendo a derivada parcial de §¨, usando a regra da cadeia tem-se (GALO, 2000):
ªq 3«¬¬¯©®M ou ªq «M (31)
31
em que
δ
q é o termo de erro dado por: 3¬¬¯©® 3¬¬°®©¬°¬¯©©
(32)
32
Na Equação 32, para calcular ±§¨¥ é usada a regra da cadeia para ±w expressar a derivada parcial em termos de taxa de mudança de Eq em relação a Oq e a taxa de mudança de Oq em relação a Iq.
Segundo Tso e Mather (2009), um termo momento
H
pode ser adicionadona Equação 31, onde x P y P . Esse termo é aplicado para evitar problemas de oscilação durante a procura do valor mínimo na superfície de erro, e pode, portanto, acelerar o processo de convergência da rede.
Para a camada de saída , o termo de erro é expresso por (GALO, 2000):
%3 M('X%w( (33)
33
onde 'X representa a função de ativação, de forma generalizada, definida para cada neurônio. Para a camada \ (ou qualquer outra camada oculta), o termo de erro é expresso por (GALO, 2000):
'X w © q (34)
34
Após a aprendizagem da rede, o algoritmo classifica os padrões usando um conjunto de pesos ajustados durante esta fase de treinamento (GALO, 2000), descrita
anteriormente. O padrão de entrada é propagado através das várias camadas e então classificado como pertencente à classe de neurônio de saída que apresentar a resposta mais alta, enquanto que os outros neurônios apresentam respostas mais baixas. No caso em que mais de uma saída for rotulada como alta, ou se nenhumas das saídas forem classificadas, pode declarar essas saídas como uma classe de não classificação (GONZALEZ e WOODS, 2010).