Você está na página 1de 7

Algoritmos para Aprendizagem Supervisionada

CT215 Inteligncia Artificial Seminrios 2007


Charles-Edouard Winandy Estillac Borges Filho Lisnia Vieira Bento

I. Objetivo O objetivo deste trabalho analisar algoritmos para aprendizagem supervisionada de redes neurais artificiais, identificando suas vantagens e desvantagens e determinando em que situaes so mais eficientes.

II. Redes Neurais Artificiais Existem diversas definies para redes neurais artificiais, todas procurando identificar as redes como sendo sistemas computacionais baseados em modelos matemticos que buscam simular o funcionamento das redes neurais biolgicas. Uma das mais completas definies de redes neurais artificiais deve-se a Simon Haykin: Uma rede neural um processador maciamente paralelamente distribudo, construdo de unidades de processamento simples, que tem a propenso natural para armazenar conhecimento experimental e torn-lo disponvel para uso. Assemelha-se ao crebro humano em dois aspectos: o conhecimento adquirido pela rede a partir de seu ambiente atravs de um processo de aprendizagem; e as foras de conexo entre neurnios, conhecidas como pesos sinpticos, so utilizadas para armazenar o conhecimento adquirido. A estrutura principal de uma rede neural artificial o neurnio. Existem diversos modelos para neurnios, porm o mais utilizado o do tipo Perceptron. Ele foi inicialmente proposto por McCulloch e Pitts, em 1943. Basicamente, o neurnio processa um conjunto de valores de entrada realizando uma soma ponderada destas entradas, utilizando, para tal, pesos sinpticos caractersticos do neurnio. Esta soma ponderada ento transformada por uma funo de ativao, que possui a finalidade de introduzir no-linearidade no modelo e manter o sinal de sada confinado em um dado intervalo. A figura 01 mostra o modelo de um neurnio Perceptron.

Figura 01 Neurnio Perceptron.

De maneira geral, uma rede neural possui uma estrutura multicamada, como mostrado na figura 02. Cada camada formada por um conjunto de neurnios do tipo Perceptron. A primeira camada recebe o conjunto de valores de entrada da rede e gera um conjunto de sadas que sero as

entradas da camada seguinte. Desta forma, o conjunto de valores de entrada propagado da primeira ltima camada. O conjunto de valores de sada da ltima camada a resposta da rede ao conjunto de valores que foram inseridos nela.

Figura 02 Rede Neural Artificial Multicamada.

Em 1969, Minsky e Pappert mostraram que um nico neurnio Perceptron no capaz de representar uma funo booleana do tipo XOR, o que foi um choque grande no meio cientfico. Porm, em 1986, Rummelhart, Hinton e Williams provaram que uma arquitetura de rede neural com multicamadas, adequadamente construda, consegue superar as dificuldades apontadas por Minsky e Pappert. Atualmente, j possvel provar que a estrutura multicamadas com neurnios Perceptron um aproximador universal de funes.

III. Aprendizagem Supervisionada Como citado anteriormente, uma rede neural multicamada com neurnios Perceptron, adequadamente construda, isto , com valores adequados para os pesos sinpticos, capaz de aproximar qualquer funo. Porm, como encontrar os valores adequados para os pesos? A melhor maneira de fazer isso utilizar valores iniciais arbitrrios para os valores dos pesos e iterativamente ir alterando-os at que a rede possa se comportar como desejado. Estes tipos de algoritmos so chamados de algoritmos de aprendizagem. Existem dois tipos de aprendizagem: as supervisionadas e as no-supervisionadas. No aprendizado supervisionado, so dados para a rede dois conjuntos de valores: o conjunto de valores de entrada e o conjunto de valores de sada esperados para cada entrada. Desta forma, o treinamento consiste em um problema de otimizao dos parmetros da rede (seus pesos sinpticos) para que possam responder s entradas conforme esperado e extrapolar o mesmo comportamento para outras entradas no previstas no treinamento. No aprendizado no-supervisionado, o ajuste dos pesos feito somente com os valores de entrada e utiliza-se o conceito de atrator e bacia de atrao.

IV. Algoritmo de Retro-propagao (Backpropagation) O algoritmo mais largamente utilizado para aprendizagem supervisionada em redes neurais o algoritmo de retro-propagao. Este algoritmo foi desenvolvido por Paul Werbos, em 1974. A idia estabelecer valores iniciais aleatrios para os pesos sinpticos da rede e, iterativamente, inserir um valor de entrada na rede e process-lo, camada a camada, at obter o valor de sua sada. O erro entre o valor esperado para a sada e o valor obtido ento calculado e propagado no sentido contrrio ao da rede para ajuste dos pesos.

Este ajuste pode ser feito de duas maneiras: aps a utilizao de apenas um conjunto de valores de entrada ou aps todos os conjuntos de valores de entrada (padres de treinamento) terem sido utilizados. De qualquer forma, deve-se calcular o erro mdio quadrtico das sadas, que ser funo dos pesos da rede, e, em seguida, deve-se atualizar o vetor de pesos atravs de alguma regra. A regra utilizada originalmente no algoritmo de retro-propagao a do gradiente descendente, onde os pesos so atualizados da seguinte maneira:

onde representa o vetor de pesos e representa o gradiente do erro mdio quadrtico e representa um fator de aprendizagem que deve ser escolhido previamente. Desta forma, o algoritmo caminha, isto , modifica o vetor de pesos sinpticos, sempre na direo contrria direo de maior aumento do erro mdio quadrtico, caminhando assim para minimizar o erro mdio quadrtico e fazer com que a rede funcione como se deseja. Para calcular este gradiente, interessante faz-lo passo a passo. Primeiramente, calculamse os termos relacionados com os pesos da ltima camada da rede, pois isso feito de maneira simples. Em seguida, utiliza-se a regra da cadeia para calcular os termos que envolvam os pesos da penltima camada e assim sucessivamente. Por isso que se afirma que o erro propagado na direo contrria ao fluxo normal da rede, ajustando os pesos desta, e, por isso, o nome do algoritmo. Este comportamento mostrado na figura 03.

Figura 03 Algoritmo Backpropagation.

Este mtodo amplamente utilizado, mas possui uma srie de problemas que o prejudicam: a) O algoritmo facilmente leva a funo de erro para um mnimo local, em vez de lev-la para um mnimo global. Isto chamado de convergncia prematura; b) O processo de treinamento sensvel medida de rudos; c) O processo esttico e no produz bons resultados em sistemas cuja dependncia do tempo fator primordial; d) Todo formato do vetor de entrada visitado, independentemente de outros formatos.

V. Algoritmo de Gradientes Conjugados Buscando melhorar o desempenho do algoritmo de retro-propagao, variantes do algoritmo foram desenvolvidas, basicamente modificando a regra utilizada para atualizao do vetor de pesos. Um destes algoritmos o gradiente descendente onde a direo do passo futuro depender da direo do passo anterior pois sempre so ortogonais, sendo assim, ao aplicar o prximo passo,

buscando minimizar a funo erro na direo do novo gradiente, pode-se destruir o trabalho feito no passo anterior, complicando a convergncia do algoritmo.

wt +1 = wt *E ( wt ), onde

* arg min E ( wt t E ).
Um dos algoritmos desenvolvidos foi o de gradientes conjugados. A idia principal deste algoritmo surge de uma melhoria simples aplicada no mtodo da retro-propagao. Ao invs de se utilizar um fator de aprendizagem fixo, escolhe-se, a cada iterao, um novo fator atravs de uma busca linear que objetiva minimizar os valores do novo vetor de pesos sinpticos dt+1. E ( wt +1 d t +1 ).d t = 0. Para a equao acima, expandindo o gradiente ao redor de wt+1 teremos: (E ( wt +1 ) + Hd t +1 ).d t 0, Onde H o Hessiano Recordar viver 2 f (d ) H f (d )i , j = d i .d j
E por construo teremos que: d t .Hd t +1 0. Essa soluo melhora o desempenho do algoritmo de gradiente descendente, pois garante, em um nico passo, que o novo vetor de pesos minimiza a funo erro na direo do gradiente utilizado naquele passo. Resolvendo esse problema, o algoritmo de gradientes conjugados busca modificar a direo em que se iro atualizar os pesos, de modo que, em cada passo, utilize-se uma direo ortogonal quelas utilizadas nos passos anteriores (direes conjugadas), sendo a primeira direo utilizada a contrria ao vetor gradiente. Estas direes formam uma base ortogonal do espao de pesos. Suponhamos que w* seja o mnimo da funo erro E. A correo necessria para atingirmos o mnimo da funo erro pode ser expandida em uma base de vetores mutuamente conjugados:
w* w1 = i d j ,
i =1 N

Desta forma, o algoritmo garante uma convergncia em apenas N passos, onde N o nmero de dimenses do espao de otimizao. Se definirmos:

w j = w1 + i di ,
i =1

j 1

teremos a correo no componente j do vetor de parmetros alternativamente w j +1 = w j + j d j ,


H, entretanto, dificuldades em se utilizar esse algoritmo no aprendizado de redes neurais. A principal delas encontrar tais direes conjugadas, o que envolve clculo, em cada passo, da matriz Hessiana da funo erro e a resoluo de um problema de autovalores. Isso muito complicado e dispendioso de ser feito para funes quaisquer, como o caso das funes de erro. Porm, possvel encontrar uma forma iterativa de se calcular as direes conjugadas sem o clculo da matriz Hessiana: basta, para isso, utilizar uma busca linear na direo conjugada do momento.

Aplicando a Hessiana de forma quadrtica, deduzimos: Equao de Hesteness- Stiefel E ( w j +1 ).[E ( w j +1 ) E ( w j )] j = , d j .[E ( w j +1 ) E ( w j )] Que trabalhada algebricamente, chega- se a equao de Polak- Ribiere: E ( w j +1 ).[E ( w j +1 ) E ( w j )] j = . E ( w j ).E ( w j ) Como a funo erro de aprendizado de uma rede no quadrtica, o algoritmo no funciona de maneira adequada e no mais resolve o problema de maneira tima em um nmero finito de passos. Porm, mesmo assim apresenta um comportamento muito bom e melhor que o algoritmo de gradientes descendentes no aprendizado backpropagation. Abaixo uma descrio completa do algoritmo de gradientes conjugados: 1. Escolha um ponto inicial no espao dos parmetros w1; 2. Calcule o gradiente no ponto inicial e faa a primeira direo de otimizao ser d1 = E ( wi ); 3. Para descobrir a amplitude do passo na direo d1, utilize uma busca linear encontrando

1 = arg min E ( wi + d1 ); 4. Calcule w2 = w1 + 1d1 ;


5. Pare se os critrios de convergncia foram satisfeitos 6. Calcule E ( w2); 7. A nova direo dada por d 2 = E ( w2 ) + 1d1 ; com 1 definido pela relao de Polak- Ribiere; 8. V para o passo 3 para o novo d.

VI. Mtodos Quasi-Newton Mtodo de Newton Encontrando o mnimo para o gradiente em um ponto wj. Teremos:
w = w j H 1E ( w j ).

A direo definida por H 1E ( w j ). conhecida como direo de Newton e tem como propriedade principal apontar para um extremo local da funo erro.

Mtodo do Quasi- Newton O mtodo de Newton tem uma srie de desvantagens que limitam sua utilizao prtica em problemas de otimizao com muitas dimenses : 1. O algoritmo requer a avaliao e inverso da matriz Hessiana que requerem, respectivamente, O(W2N) e O(W3) operaes, sendo W o nmero de parmteros e N o nmero de pontos.

2. Quando a superfcie onde a otimizao realizada no quadrtica necessrio recalcular o Hessiano e seu inverso em cada ponto. 3. Ao redor de alguns pontos o Hessiano pode no ser positivo definido. Uma alternativa para contornar estes problema intrnsecos ao mtodo de Newton implementar um mtodo que produza uma aproximao positiva definida para a inversa da matriz Hessiana. Lembremos que na aproximao quadrtica: E ( w j ) E ( w j 1 ) = H ( w j w j 1 ).

Definido q j = E ( w j ) E ( w j 1 ) e v j = w j w j 1 v j = Hq j
Se quisermos produzir uma aproximao para a inversa da Hessiana podemos exigir que para cada um dos pontos j excursionados que G j +1vi = qi ,1 i j. Aps N passos com vetores linearmente independentes, com N sendo o nmero de dimenses da matriz Hessiana teremos. Um procedimento para construo de uma srie de matrizes positivas definidas que respeitem G j +1vi = qi ,1 i j conhecida como algoritmo (BroydenFletcher- Goldfarb- Shanno).

v j G j v j (q j qT j ) (q j vT j )G j + G j (v j qT j ) G j +1 = G j + 1 + v q q j .v j j j q j .v j
Em geral a superfcie que est sendo otimizada no quadrtica assim a aproximao tem validade limitada e a amplitude do passo no mtodo quasi-Newton deve ser controlada:

w j +1 = w j + j G j E ( w j )
A amplitude j do passo de otimizao pode ser obtida por uma busca linear, mas isso s necessrio se o passo de Newton total( j =1) aumentar o valor da funo erro.

VII. Algoritmo Levenberg-Marquardt


O algoritmo de Levenberg-Marquardt foi desenvolvido para resolver iterativamente problemas de minimizao de funes no-lineares pelo mtodo de mnimos quadrados. Ele o algoritmo de otimizao mais utilizado hoje em dia, superando outros algoritmos em uma grande variedade de problemas. De maneira geral, o algoritmo de Levenberg-Marquardt prope uma soluo de compromisso entre o algoritmo do gradiente descendente e o mtodo iterativo de Gauss-Newton. Sua regra de atualizao dos pesos, como proposta por Levenberg :

onde representa o vetor de pesos e representa o gradiente do erro mdio quadrtico, representa a matriz Hessiana e um fator de ajuste.

Podemos ver que a regra de atualizao leva em considerao tanto a inclinao da superfcie do erro (mtodo do gradiente descendente) quanto curvatura desta superfcie (mtodo de Gauss-Newton). O fator de ajuste indica qual dos dois mtodos ser predominante: para fatores de ajuste grandes, o mtodo do gradiente descendente predomina e a atualizao dos pesos ocorre fortemente na direo de inclinao da superfcie do erro; caso contrrio, o mtodo de GaussNewton predomina e a atualizao ocorre mais no sentido da curvatura da funo. O algoritmo controla o valor do fator de ajuste da seguinte forma: comea-se com um valor arbitrrio. Calcula-se o erro na situao atual e aplica-se a regra de atualizao de pesos. Calcula-se, ento, o novo erro. Caso o erro tenha aumentado, voc deve desfazer a atualizao e aumentar o fator de ajuste (geralmente multiplicando-o por dez). Em seguida, voc deve recomear a iterao novamente. Caso o erro tenha diminudo, voc aceita a iterao e diminui o fator de ajuste (geralmente dividindo-o por dez). Desta maneira, voc ir caminhar mais na direo do gradiente quanto mais distante voc estiver do ponto mnimo. Ao chegar s proximidades dele, o algoritmo de Gauss-Newton ser predominante, o que faz com que o algoritmo de Levenberg-Marquardt funcione utilizando o que cada um dos algoritmos anteriores tinha de melhor! Claro que h problemas com o algoritmo LM: o primeiro deles a clara dificuldade de se calcular a Hessiana da funo erro, porm, isso pode ser simplificado considerando que a funo aproximadamente linear nas vizinhanas do ponto em que se calcula a matriz. Essa considerao incorporada ao algoritmo e sempre utilizada, fazendo com que o algoritmo se torne heurstico, porm obtendo, na prtica, excelentes resultados. Alm disso, outra clara dificuldade calcular a matriz inversa presente na regra de atualizao, o que computacionalmente trabalhoso e impossibilita que o algoritmo seja utilizado quando o espao de parmetro seja da ordem de alguns milhares; porm, quando o espao de parmetro da ordem de algumas centenas, o algoritmo muito mais rpido que os demais. Alm disso, aqui h uma grande vantagem em relao ao mtodo de Newton: a inversa sempre existe. Um ltimo ponto de dificuldade do algoritmo que, para valores muito elevados do fator de ajuste, praticamente o clculo da matriz Hessiana praticamente desprezado. Esse ltimo ponto levou Marquardt a propor uma melhoria no algoritmo original que faz com que a parcela relativa ao gradiente descendente tambm passe a incorporar informao da curvatura da superfcie do erro, fazendo com que a atualizao de pesos seja considervel mesmo quando o gradiente bem pequeno. A regra final de atualizao do algoritmo de Levenberg-Marquardt ento:

Finalmente, bom ressaltar que o problema encarado pelo algoritmo LM exatamente o que ocorre no treinamento backpropagation, onde a funo erro a ser minimizada no linear e no formato de mnimos quadrados. Portanto, o algoritmo LM perfeitamente aplicvel a este tipo de treinamento, sendo uma excelente melhoria em relao ao algoritmo de retro-propagao original.

VIII. Bibliografia
Apostila de Redes Neurais ITA - CTC15 [Paulo Marcelo Tasinaffo]; Artificial Neural Networks [R.M. Hristev]; Um estudo das funes de base radial aplicadas previso de cargas eltricas via Redes Neurais Artificiais FEIS, UNESP [A. B. Altran]; Confiabilidade estrutural utilizando o mtodo de Monte Carlo e Redes Neurais UFOP [Anderson Henrique Barbosa]; Redes Neurais Artificiais [Mendes, Filho] (1998); "The Levenberg-Marquardt Algorithm [Ananth Ranganathan] (2004).

Você também pode gostar