• Nenhum resultado encontrado

Segundo Haykin (2001):

“Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente no qual a rede está inserida. O tipo de aprendizagem é determinado pela maneira pela qual a modificação dos parâmetros ocorre”.

Isso significa, ainda segundo (HAYKIN, 2001) que para que ocorra aprendizagem em uma RNA, é necessário que (a) a rede seja estimulada pelo ambiente externo, (b) que ela sofra modificação em seus parâmetros livres como resultado dessa estimulação pelo ambiente e que (c) devido às modificações, a rede responda de uma maneira diferente ao ambiente, por força das mudanças havidas em seus parâmetros livres.

Conforme Egmont-Petersen et al. (2002), diferentes arquiteturas de redes neurais existem em função de suas diversas finalidades. Quanto ao tipo de treinamento, ou aprendizagem, elas podem ser classificadas em supervisionadas e não-supervisionadas. As primeiras, entre elas as de retro-propagação (back-propagation), usam uma amostra dos dados para treinamento, comparando valores de saída da rede com valores esperados conhecidos, adaptando, a partir do erro, os valores de seus pesos, mediante certos algoritmos estabelecidos na literatura. As segundas, como as redes competitivas e as redes de Kohonen, não dispõem de valores de referência para comparação. Ao contrário, essas redes ajustam seus pesos de acordo com os dados de entrada, sem a pressuposição da existência de uma distribuição probabilística subjacente aos dados, como ocorre nos métodos estatísticos.

3.2.1 Aprendizagem por correção de erro.

A aprendizagem por correção de erro, cujo esquema pode ser visto na Figura 6, uma das primeiras a ser usada, é conhecida na literatura como regra delta, ou regra de Widrow-

Hoff, (WIDROW e HOFF, 1960) em homenagem aos seus criadores, Widrow e Hoff. Ela

pode ser formulada da seguinte maneira, pela Equação 4:

(

)

ij j j i

w

d

a a

Figura 6 - Esquema da aprendizagem Widrow-Hoff

Os ajustes corretivos são projetados para o sinal de saída da resposta desejada e isto é conseguido minimizando-se a função erro quadrático dada pela equação

2

1

( ) ( )

2 k

E n = e n Eq. 5

O processo de ajuste dos pesos sinápticos continua até que eles entrem em estado estacionário, quando então, acaba o treinamento.

Deste modo, de acordo com a regra delta, o ajuste a ser aplicado ao peso sináptico

ij

w

no tempo n é dado por:

( )

( ) ( )

ij i j

w n

ηe n x n

=

Eq. 6

onde η é uma constante positiva, a taxa de aprendizado.

Assim, conforme Haykin (2001), a regra delta pode ser expressa como “o ajuste feito em um peso sináptico de um neurônio é proporcional ao produto do sinal de erro pelo sinal de entrada do neurônio”.

O algoritmo da retro-propagação (backpropagation) um dos mais usados em redes de

múltiplas camadas, pode ser descrito como segue:

O algoritmo de retro-propagação é um algoritmo iterativo de treinamento de uma rede neural de múltiplas camadas projetado para minimizar o erro médio quadrático entre a saída desejada e o valor produzido pela rede. Ele requer que seja usada uma função não-linear que seja contínua e diferenciável no domínio pretendido pela aplicação. Uma das mais usadas na literatura é a função sigmóide, dada pela Equação 7:

1 ( ) 1 x f x e− = + Eq. 7

O fluxograma básico do algoritmo envolve 5 passos (R1 a R5) descritos abaixo: R1. Inicializar pesos.

Atribuir pequenos valores aleatórios a todos os pesos da rede. R2. Apresentar valores de entrada e de saída.

Introduzir na rede o vetor de entradas (Equação 8)

0 1 2 1

[ , , , ,x x x

⋅⋅⋅

x

n

]

Eq. 8 e as saídas desejadas

0 1 2 1

[ , , , ,d d d

⋅⋅⋅

d

n

]

Eq. 9 O vetor de saída consiste de elementos de um conjunto de treinamento obtido a partir do total do conjunto dos dados.

R3. Calcular o valor das saídas.

Usar as funções sigmóides e as somas ponderadas para calcular o vetor de saída

0 1 2 1

[ , , , ,y y y

⋅⋅⋅

y

n

]

Eq. 10 R4. Ajustar os pesos.

Usar um algoritmo recursivo para ajustar os pesos começando nos nós de saída da rede e caminhando para trás até a primeira camada oculta de neurônios. Ajustar os pesos com a Equação 11

(

1)

( )

ij ij j j

w t

+

=w t

+ηδ

x

Eq. 11

onde wij é o peso do nó da camada oculta i ou de uma entrada para o nó j no tempo t, x ou é uma saída do nó i ou é uma entrada, η é um fator de ganho e δj é um fator de erro para o nó j. Se o nó j for um nó de saída, então temos, pela Equação 12

(1

)(

)

j

y

j

y

j

d

j

y

j

δ

=

Eq. 12

onde dj é a saída desejada para o nó j e yj é o valor real da saída. Por outro lado, se o nó j for um nó de uma camada oculta, então, usando a Equação 13

(1

)

j j j k jk

k

x

x

w

δ

=

δ

Eq. 13

onde a somatória deve ser tomada sobre os k nós anteriores ao nó j. R5. Retornar para o passo R2.

3.2.2 Aprendizado Competitivo

.

No aprendizado competitivo, os neurônios de saída de uma rede neural competem entre si para serem ativados (HAYKIN, 2001).

No aprendizado competitivo, somente um neurônio é modificado para se assemelhar ainda mais ao valor de entrada do qual escolhido como o mais próximo.

A escolha do neurônio vencedor é feita levando-se em conta a distância euclidiana entre o vetor de entrada e cada nó de saída, de acordo com a equação. O neurônio vencedor é o que minimiza o valor de dj dado pela Equação 14

1 2 0

( ( )

( ))

N j j ij j

d

x t

w t

− =

=

Eq. 14

onde xj(t) é o valor de entrada para o nó i no tempo t e wij é o peso entre o nó de entrada i e o

nó de saída j, no tempo t.

No aprendizado competitivo a arquitetura da rede pode possuir duas camadas: a camada de entrada que é constituída de unidades de processamento que recebem os padrões de entrada e a segunda camada que é a camada competitiva. As duas camadas são completamente interconectadas e cada conexão tem um peso associado. Na camada competitiva, as unidades competem pela oportunidade de responder ao padrão de entrada. A unidade vencedora neste caso representa a categoria de classificação do padrão de entrada. (LIPPMANN, 1992).

Na área de aprendizado competitivo existem vários modelos de algoritmos que embora similares em seus objetivos, diferem consideravelmente na maneira que trabalham. Um objetivo comum a esses algoritmos é distribuir certo número de vetores (quantização de vetores) em um espaço, geralmente, multidimensional. Espera-se com isso que esses vetores reflitam a distribuição de probabilidade dos dados de entrada que, em geral, não é dada explicitamente, mas apenas através de uma amostra de vetores (LIPPMANN, 1992).