• Nenhum resultado encontrado

3.2.1

Algoritmo

Outro método neural de aprendizado incremental é o Perceptron Multicamadas Evolutivo (em inglês: evolving Multi Layer Perceptron - eMLP), que foi originalmente proposto em (Kasabov, 2003). Uma rede eMLP consiste de três camadas de neurônios: a camada de entrada, uma camada chamada de camada evolutiva e uma camada de saída com uma função de ativação linear saturada. A camada evolutiva é a camada que irá crescer e se adaptar aos novos dados usados para treinamento, além de ser a camada na qual o algoritmo de treinamento mais se concentra (Kasabov, 2007). Para uma melhor compreensão da descrição do algoritmo é considerado que cada neurônio na camada evolutiva possui dois vetores de pesos: um vetor de pesos de entrada We e um vetor de pesos de saída W s. O número de neurônios na camada de entrada é igual ao número de atributos do problema e o número de neurônios na camada de saída é igual ao número de classes. A Figura 3.1 ilustra a arquitetura de 3 camadas da rede eMLP, onde as linhas pontilhadas indicam quando um novo neurônio é adicionado na camada evolutiva.

camada de entrada

camada evolutiva

Figura 3.1: Arquitetura da Rede Neural eMLP (Kasabov, 2007).

A ativação A de um neurônio j da camada evolutiva é determinada por:

Aj= 1 − Dj, (3.1)

onde Ajé a ativação do neurônio j e Djé a distância normalizada entre o vetor de entrada e

A medida de distância Dj é preferencialmente calculada com a distância de Hamming normalizada: Dj= di=1|xi−Wej,i| di=1|xi +Wej,i| , (3.2)

onde x é o vetor de entrada, Wej é o vetor de pesos de entrada do neurônio j da camada

evolutiva e d é a dimensão dos vetores x e Wej e também é o número de neurônios da

camada de entrada. Além disso, Wej,i é o peso da conexão entre a entrada i e o neurônio j e

xié o i-ésimo componente do vetor de entrada x.

A saída Ocpde um neurônio p da camada de saída é calculada pela Equação 3.3 (Watts,

2009): Ocp= mj=1 AjW sj,p mj=1 Aj , (3.3)

onde W sj é o vetor de pesos de saída do neurônio j, p é o neurônio da camada de saída, Ajé a ativação do neurônio j da camada evolutiva e m é o número de neurônios na camada

evolutiva. Além disso, W sj,p é o peso da conexão entre o neurônio j e a saída p e W sjé um

vetor com dimensão|C|, onde |C| é o número de classes do problema de classificação. A saída é calculada para todos os neurônios da camada de saída, e a amostra é classificada na classe associada ao neurônio da camada de saída com o maior valor de saída.

A forma mais usual do algoritmo de aprendizado é do tipo baseada na acomodação de novos exemplos de treinamento dentro da camada evolutiva: ou através de modificações dos pesos dos neurônios da camada evolutiva ou simplesmente adicionando um novo neurônio à rede. O algoritmo empregado para o treinamento é descrito no Algoritmo 2 (Kasabov, 2007).

Quando um neurônio é adicionado na camada evolutiva, o vetor de pesos das conexões de entrada é igual ao vetor de entrada x, e o vetor de pesos da saída é igual ao vetor de saída desejado Od associado à entrada x.

Os pesos de entrada do neurônio vencedor j da camada evolutiva são modificados de acordo com a Equação 3.4, para i= 1, . . . , d:

Wej,i= Wej,i+η1 xi−Wej,i , (3.4)

AlgoritmoAlgoritmo de aprendizado do eMLP 1 para cada novo dado de treinamento faça

2 Propagar o vetor de entrada através da rede neural

3 se a máxima ativação Amaxde um neurônio é menor do que um limiar de sensibilidade Sthrentão

4 adiciona um neurônio

5 senão

6 calcula o erro entre o vetor de saída calculado Oc e o vetor desejado de saída Od

7 se o erro for maior do que um limiar de erro Ethrou a se saída do neurônio da classe desejada não for a mais altamente

ativada então

8 adiciona um neurônio

9 senão

10 atualiza as conexões do neurônio vencedor na camada evolutiva

Algoritmo 2: Algoritmo de treinamento do eMLP.

Por outro lado, os pesos de saída do neurônio j são modificados de acordo com a Equação 3.5, para j= 1, . . . , m:

W sj,p= W sj,p+η2AjEp, (3.5)

ondeη2é o segundo parâmetro de taxa de aprendizado. Epé o erro entre a saída desejada e

a saída obtida no neurônio p da camada de saída, dado por:

Ep= Odp− Ocp, (3.6)

onde Odpé a saída desejada no neurônio p e Ocpé a saída calculada em p.

No entanto, com este procedimento de treinamento, a rede neural pode crescer muito com a chegada de novos dados para treinamento. Para controlar o tamanho da camada evolutiva durante o processo de aprendizado, e evitar um grande aumento no custo computacional com a chegada de novos dados de treinamento, é aplicada a operação de agregação de neurônios. O princípio da agregação é fundir neurônios que são espacialmente próximos entre si. Esse procedimento pode ser realizado a cada iteração ou depois de certo número de iterações de treinamento. O procedimento de agregação é descrito no Algoritmo 3.

O procedimento de agregação de neurônios é uma regularização importante por trazer melhorias no desempenho de uma rede eMLP em algumas aplicações, tais como sistemas de reconhecimento de fala e imagem.

Uma ligeira modificação do procedimento de treinamento da rede eMLP foi proposta em (Leite et al., 2009). Na modificação proposta, a linha 7 do procedimento de treinamento do Algoritmo 2 é alterada, considerando somente a condição que a saída do neurônio da classe desejada seja a mais altamente ativada, desprezando o valor do erro. Sendo assim, o parâmetro Ethr é desnecessário.

AlgoritmoAlgoritmo de agregação do eMLP

1 Encontrar o subconjunto R dos neurônios na camada evolutiva para o qual a distância Euclidiana normalizada D(Wer j,Wer p) e

D(W sr j,W sr p) (Equação 3.7) são menores que um limiar Wthr, sendo{r j,rp} ∈ R.

D(Wer j,Wer p) = v u u u t di=1 Wer j,i−Wer p,i2 d . (3.7)

2 Mesclar todos os neurônios do conjunto R dentro de um novo neurônio r, e calcular Were W srusando as Equações 3.8 e 3.9, onde

|R| denota o número de neurônios no subconjunto R.

Wer= ∑ k∈R Wek |R| . (3.8) W sr= ∑ k∈R W sk |R| . (3.9)

3 Excluir todos os neurônios do subconjunto R.

Algoritmo 3: Algoritmo de agregação do eMLP.

3.2.2

Vantagens e Desvantagens

As principais vantagens da rede eMLP são o ajuste dos seus parâmetros e o procedimento para controlar o número de neurônios na arquitetura. Porém, esse procedimento pode con- sumir muito tempo para ser usado a cada iteração, principalmente se a natureza do problema exige um número razoável de neurônios. Por outro lado, se o procedimento de agregação de neurônios não for usado por um longo tempo, o tamanho da rede pode crescer muito, aumentando a demanda de memória.