Você está na página 1de 37

REDES NEURAIS ARTIFICIAIS

Marley Maria Bernardes Rebuzzi Vellasco

2007

Sumrio
1) Redes Neurais Artificiais (RNAs) 1.1. Introduo .................................................................................................................3 1.2. Histrico .................... ..............................................................................................3 1.3. Redes Neurais Artificiais (RNAs)............................................................................5 1.4. Funo de Ativao....................................................................................................6 1.5. Etapas de modelagem de uma rede neural.................................................................9 1.6. Tipos de arquitetura neural: redes recorrentes e redes no recorrentes ...................10 1.7. Tipos de treinamento: supervisionado e no supervisionado...................................11 1.8. Perceptron................................................................................................................21 1.9. MLP (redes de mltiplas camadas) e o algoritmo de retropropagao....................24

1.1) Introduo A expresso rede neural motivada pela tentativa destes modelos imitarem a capacidade que o crebro humano possui de reconhecer, associar e generalizar padres. Trata-se de uma importante tcnica estatstica no-linear capaz de resolver uma gama de problemas complexos. Isso torna o mtodo extremamente til quando no possvel definir um modelo explcito ou uma lista de regras. Em geral, isso acontece em situaes em que o ambiente dos dados muda muito. As principais reas de atuao so para a classificao de padres e previso.

1.2) Histrico O crebro humano possui caractersticas desejveis em qualquer sistema artificial. Como exemplo pode-se citar a sua capacidade para lidar com informaes inconsistentes e/ou probabilstica, alta flexibilidade para se adaptar a situaes aparentemente pouco definidas, tolerncia a falhas, entre outras. Todas estas caractersticas mencionadas despertaram o interesse de pesquisadores que, na dcada de 80, intensificaram suas linhas de estudo na rea de inteligncia artificial com o uso da computao intensiva. No entanto, o aparecimento da neuro-computao ocorreu bem antes, na dcada de 40. Em 1943, Warren Mc Culloch, psiquiatra e neuroanatomista, e Walter Pitts, matemtico, desenvolveram uma mquina inspirada no crebro humano e um modelo matemtico de neurnio biolgico artificial denominado Psychon. Entretanto, este modelo no era capaz de desempenhar uma de suas principais tarefas: o aprendizado. Em 1951, Marvin Minsky criou o primeiro neurocomputador chamado Snark. A partir de um ponto de partida, o Snark, operava bem, ajustando os seus pesos automaticamente. Apesar de no ter executado uma funo de processamento de informao relevante serviu como molde para futuras estruturas. Em 1958, Frank Rosenblatt e Charles Wightman junto com alguns outros estudiosos desenvolveram o primeiro neurocomputador bem sucedido. Estes pesquisadores so designados como os fundadores da neurocomputao devido a importncia de seus trabalhos para essa linha de pesquisa muito prxima da forma como existe atualmente. Os seus estudo sustentaram os modelos do tipo perceptron (redes de um nvel) e MLP (Perceptrons de mltiplas camadas). O objetivo inicial era aplicar a modelagem do tipo

Perceptron para o reconhecimento de padres. Os modelos baseados no Perceptron sofreram graves crticas. Na obra: Na Introduction to computacional geometry, Minsky e Papert, mostraram matematicamente que estes modelos, na forma como estavam, no eram capazes de aprender a funo lgica do OU Exclusivo (Exclusive OR_XOR). A funo XOR possui padres de valores de entrada e sada cuja associao no poderia ser aprendida pelos modelos baseados em Perceptrons. Esta constatao impactou negativamente as pesquisas que vinham sendo realizadas sobre este assunto nas dcadas de 60 e 70. A partir dos anos 80, os estudos com redes neurais tomaram um impulso revolucionrio. Em 1982, John Hopfield, fsico mundialmente conhecido, criou um tipo de rede diferente daquelas fundamentadas no Perceptron. Neste modelo a rede apresentava conexes recorrentes (sinal no se propaga exclusivamente para frente) e baseava-se num aprendizado no supervisionado com a competio entre os neurnios. Em 1986, o reaparecimento das redes baseadas em Perceptrons foi possvel graas a teoria de redes em multinvel (MLP) treinadas com o algoritmo de aprendizado por retropropagao (Backpropagation) desenvolvida por Rumelhart, Hinton e Willians. Alm disso, vale lembrar que a dcada de 80 foi marcada pelo desenvolvimento de computadores cada vez mais potentes e velozes que permitiram melhores simulaes das redes neurais. Neste perodo tambm foram desenvolvidos modelos matemticos que permitiam solucionar o problema do XOR. A partir de ento, um contexto favorvel foi criado para o desenvolvimento das pesquisas em neurocomputao: (1987): acontece a primeira conferncia de redes neurais, a IEEE Internacional Conference on Neural Networks em So Francisco. Criou-se ainda a INNS (International Neural Networks Society). (1989): fundao do INNS journal. (1990): criao do Neural Computation e do IEEE Transactions on Neural Networks.

1.3) Redes Neurais artificiais (RNA`s) Uma rede neural um sistema computacional constitudo por unidades conhecidas como neurnios. Os neurnios so elementos processadores interligados, trabalhando em paralelo para desempenhar uma determinada tarefa. Os modelos RNAs constituem uma importante tcnica estatstica no-linear capaz de resolver uma gama de problemas de grande complexidade. Por isso, so modelos teis em situaes que no possvel definir explicitamente uma lista de regras. Em geral, isso acontece quando o ambiente gerador dos dados muda constantemente. As principais reas de atuao so para classificao de padres e previso. Para comear a falar de redes neurais, o ponto de partida definir o que so e como se constituem as suas unidades bsicas. Nesta perspectiva, a figura 1 mostra a descrio funcional do k-simo neurnio de uma rede, ou seja, descreve o que se encontra no interior do neurnio.

E N T R A D A S

X1

: :

w k1 w k2

X2

uk

S A D A

yk

: :
XP

w kp

p o la riz a d o r k

p e so s
Figura 1: descrio do k-simo neurnio As entradas esto representadas pelos xs. Esses xs no so os padres da camada de entrada, mas a sada do neurnio da camada anterior. Os ws representam os pesos ou os parmetros da rede. Estes pesos representam a memria da rede. Isto , a experincia ganha como resultado das n-apresentaes dos padres. So os pesos que combinam a no-lineariedade para que a mesma fique distribuda pela rede.

Uk (netk) representa a combinao linear dos pesos. Corresponde a soma ponderada da entrada pelos pesos. Yk a sada do k-simo neurnio que depende do nvel de ativao aplicado ao neurnio pela funo de ativao. Ressalta-se que a funo de ativao refere-se a parte no-linear de cada neurnio, sendo o nico lugar que a no-linearidade se encontra. k conhecido como termo polarizador. Indica o ponto em que a funo se encontra em cima do eixo e, portanto, define o domnio dos valores de sada. Na modelagem recorre-se ao artifcio de tratar este termo como mais um peso de modo que, durante o processo de otimizao dos pesos, a ser realizado pelo algoritmo implementado, a atualizao acontea para todos os parmetros, incluindo para o polarizador. Em uma rede neural os parmetros a serem estimados so os pesos e o polarizador. Como em cada neurnio chega a soma ponderada de todas as entradas, ento o polarizador aparecer associado a uma entrada fixa +1 ou -1. 1.4) Funo de Ativao Ainda sobre o que se encontra na estrutura interna de cada neurnio, sobre a funo de ativao, que de acordo com a no-linearidade ir restringir a amplitude do intervalo de sada do neurnio, existem quatro tipos principais a serem destacados em redes neurais. a) Funo sigmide ou logstica: assume valores sempre positivos.

Figura 2: funo sigmide F(x) = 1 / 1+ e-x ou (sada) = 1/1+ e-uk

b) Funo hiperblica: a sada pode assumir valores positivos e negativos.

Figura 3: funo hiperblica Quando usar uma ou outra mais ou menos tanto faz. Depende da aplicao a ser feita. Por exemplo, em sries de preo futuro de uma commodity, sabe-se que o valor previsto pela rede ser um valor positivo, assim o bom senso tomar por mais coerente aplicar a funo sigmide na modelagem do problema. Uma outra funo muito utilizada a funo linear. c) Funo linear: usada principalmente em neurnios da camada de sada quando no desejvel o efeito de saturao das funes sigmides e hiperblicas. Este efeito de saturao est colocado na figura 4.

Figura 4: funo linear

d) funo degrau: valores rgidos.

Figura 5: Funo degrau. Devido ao efeito de saturao, sempre se deve iniciar a rede em algum ponto da parte linear das funes (a) e (b). Um exemplo do efeito de saturao est colocado na figura 6.

Figura 6: efeito de saturao Como pode ser interpretado na figura 6, tudo o que no se quer que na sada a rede fornea como resultado que 0 igual a 2000 (efeito de saturao). A descrio do neurnio permitiu compreender melhor o que so as unidades bsicas que compem uma RNA e agora o prximo passo falar sobre o modelo da rede neural.

1.5) Etapas de modelagem de uma rede neural As etapas de modelagem de uma rede neural envolvem essencialmente trs passos: 1) Treinamento e Aprendizado: obtido pelo ambiente gerador dos dados. 2) Associao: reconhecimento de padres distintos. 3) Generalizao: relacionado a capacidade da rede de reconhecer com sucesso o ambiente que origina os dados e no propriamente os dados utilizados no treinamento. A modelagem inicia-se escolhendo os exemplos a serem usados para o treinamento. Essas observaes podem ser do tipo rotuladas ou no. Se forem rotuladas significa que haver um conjunto de pares de entrada-sada desejvel. Nesta etapa tambm devem ser selecionados os exemplos que serviro para validar o modelo no momento de testar a sua capacidade de generalizao. Como uma rede neural s aprende a partir de dados, a escolha das variveis de entrada de grande importncia. Isso porque embora a rede neural tenha condies de modelar problemas difceis de especificar, preciso que existam dados e observaes suficientes e representativas para o conhecimento ser extrado e para que o aprendizado da RNA acontea com sucesso. O conhecimento passado para a rede por um algoritmo de treinamento e o aprendizado transformado e armazenado em densidades de conexes que so os pesos. O aprendizado o resultado das muitas apresentaes de um determinado conjunto de exemplos de treinamento. Neste contexto, vlido destacar o conceito de poca. poca significa uma apresentao completa de todo o conjunto de treinamento. O treinamento da rede pode se dar de duas maneiras: batelada ou incremental. 1) batelada ou por ciclos: a atualizao dos pesos acontece somente aps a apresentao de todos os padres. Cada padro avaliado na mesma configurao de pesos. 2) Padro a Padro ou incremental: o algoritmo faz a atualizao dos pesos aps a apresentao de cada novo padro. Por isso mesmo, a freqncia das atualizaes em um mesmo perodo tende a ser maior que no caso anterior.

Como por este critrio o algoritmo tende a levar a rede a aprender melhor o ltimo padro apresentado, interessante tornar a apresentao dos exemplos aleatria. A eficincia dos dois mtodos depende do problema em questo. O aprendizado mantido de poca em poca at que os pesos e o polarizador se estabilizem e o erro mdio quadrado sobre todo o conjunto de treinamento convirja para uma valor mnimo e o objetivo pretendido seja atingido. Ressalva-se que minimizar o erro quadrado mdio um dos critrios para o ajuste de pesos, mas no o nico. Existem outros critrios, como por exemplo, a maximizao da informao mtua cujo objetivo maximizar a informao entrada-sada.

1.6) Arquitetura da rede neural: redes recorrentes e redes no recorrentes Voltando aos trs passos da modelagem de dados por uma RNA (lembrando: passo1: seleo do conjunto de treinamento e validao), o prximo passo diz respeito a definio da topologia ou arquitetura da rede neural. Existem basicamente dois tipos de topologia: 1) redes no recorrentes 2) redes recorrentes A arquitetura determinante na capacidade de processamento de uma RNA. A escolha correta do nmero de conexes decisiva para um treinamento bem sucedido. As redes no recorrentes so aquelas que no possuem realimentao de suas sadas para as suas entradas e, por isso, so ditas sem memria. A estrutura dessas redes pode ser formada por uma camada nica ou por multi-camadas. No caso de redes em camadas existe um conjunto de neurnios de entrada, uma camada de sada e uma ou mais camadas intermediria ou oculta. Para alguns autores, as entradas no se constituem como uma camada da rede devido ao fato de apenas distribuir padres. Por se tratarem de redes no recorrentes, no existem conexes ligando um neurnio de uma camada a outro neurnio de uma camada anterior nem a um neurnio de uma mesma camada. Um exemplo desse tipo de arquitetura so as redes do tipo

10

feedfoward, em que o sinal sempre propagado para a frente, da entrada para a sada. As redes feedfoward, necessariamente esto organizadas em camadas e so largamente utilizadas atualmente. Chama-se a ateno para a distino dos seguintes conceitos: sinal funcional e sinal de erro. a) sinal funcional: um sinal de entrada (estmulo que incide na entrada da rede) e se propaga para a frente (neurnio por neurnio) atravs das camadas da rede e termina na sada da rede como um sinal de sada. Este sinal chamado como sinal funcional porque em cada neurnio da rede pelo qual o sinal passa, esse sinal calculado como uma funo das entradas pelos pesos associados aquele neurnio. b) Sinal de erro: origina-se no neurnio de sada e se propaga para trs (camada por camada) atravs da rede. As RNAs recorrentes so redes mais gerais que contm realimentao das sadas para as entradas, sendo suas sadas determinadas pelas entradas atuais e pelas sadas anteriores. Alm disso, a sua estrutura no obrigatoriamente organizada em camadas e se forem as redes podem apresentar interligaes entre neurnios da mesma camada e entre camadas no consecutivas. Por possurem realimentao, as redes recorrentes respondem a estmulos dinamicamente, ou seja, aps aplicar uma nova entrada, a sada calculada e ento realimentada para modificar a entrada. Por isso, essas redes so ditas com memria. Existe ainda o caso mais geral em que as redes so totalmente recorrentes (cada neurnio conectado a qualquer outro) e existe o caso de redes parcialmente recorrentes, como por exemplo a rede de Elman, em que os elos de realimentao ocorrem entre a sada e a entrada da primeira camada oculta. O elo de realimentao feito atravs de uma unidade de contexto (camada extra), normalmente uma estrutura de atraso Z-1, que armazena a sada da primeira camada oculta por um passo de tempo. Por essa estrutura gerar padres variveis no tempo, este tipo de configurao neural pode ser til em

11

aplicaes de sries temporais porque ajudam a rede a memorizar as informaes atuais no momento seguinte da seqncia investigada. A realimentao ocorre da sada de cada neurnio da camada oculta para todos os neurnios da mesma camada. Alm dessa camada recorrente, a rede pode apresentar vrias outras camadas do tipo MLP e pode tambm ter uma ou vrias sadas. Neste tipo de rede o algoritmo utilizado para o treinamento o de retropropagao do erro. Entretanto, preciso tomar cuidado na implementao deste algoritmo uma vez que num dado instante de tempo a rede recebe no apenas as entradas externas, mas tambm as realimentadas da sada da primeira camada oculta obtidas no instante anterior. Abaixo seguem nas figuras 7 e 8, 9 respectivamente, uma arquitetura de rede no recorrente e de rede recorrente. de Elman e no caso de rede recorrente geral.

cam ada oculta E N T R A D A S

Sada

Figura 7: rede no recorrente_feedfoward

Figura 8: rede recorrente (caso redes Elman)

12

Figura 9: redes recorrentes - Hopfield

1.7) Treinamento das RNAs: supervisionado e no supervisionado Retornando a etapa do treinamento, o objetivo do treinamento de uma RNA fazer com que a aplicao de um conjunto de entradas produza um conjunto de sadas desejado ou no mnimo consistentes. Durante o processo de treinamento, os pesos da rede gradualmente convergem para determinados valores, de modo que aplicao dos vetores de entrada produza as sadas necessrias. O aprendizado relaciona-se a maneira pela qual a modificao dos parmetros ocorre. Neste processo os parmetros so ajustados atravs de um processo estimulado pelo ambiente no qual a rede est inserida. O algoritmo de aprendizagem refere-se a regras bem definidas para a soluo de um problema de aprendizado. Os algoritmos diferem entre si pela forma como se d o ajuste dos pesos. Os procedimentos de treinamento e aprendizado podem ser classificados em dois tipos: 1) supervisionado 2) no supervisionado

13

Na aprendizagem supervisionada existem 3 componentes interrelacionados: - Ambiente (estacionrio): as caractersticas estatsticas no mudam com o tempo. Assim, em teoria, as estatsticas podem ser aprendidas pela rede por aprendizado supervisionado. Se o ambiente no estacionrio as estatsticas variam com o tempo. Neste caso, os mtodos tradicionais podem ser inadequados porque a rede no est equipada para seguir as variaes estatsticas do ambiente em que opera. - O professor (resposta desejada): de certa forma, o aprendizado supervisionado funciona como se existisse um professor que conhece a resposta desejvel (ao tima a ser tomada pela rede). - Algoritmo de aprendizado (ajusta os pesos para fazer o mapeamento entradasada). O treinamento supervisionado acontece da seguinte forma: os exemplos utilizados para o treinamento so do tipo rotulados, ou seja, existe um vetor de entrada e um vetor alvo que se deseja na sada. O processo funciona aplicando-se o vetor de entrada e, ento, a sada fornecida pela rede comparada com o vetor de resposta desejado. Dessa comparao obtm-se um sinal de erro. O erro encontrado realimentado atravs da rede e os pesos so atualizados segundo um algoritmo determinado a fim de minimizar este erro. O algoritmo de aprendizado supervisionado mais utilizado o Backpropagation (que ser detalhado mais adiante). Portanto, o aprendizado supervisionado pressupe um erro de sada. importante que os valores alvo (resposta desejada) sejam escolhidos dentro do intervalo da funo de ativao. Isto dj (resposta desejada para o neurnio j na camada de sada da rede deve ser deslocada uma quantidade afastada do valor limite da funo de ativao. Caso contrrio, o algoritmo de retropropagao tende a levar os parmetros livres da rede para o infinito, reduzindo a velocidade do processo de treinamento podendo levar os neurnios ocultos a saturao. Exemplo: Considerando a funo de ativao hiperblica com valores limites +a ou -a. A resposta desejada deve ser colocada como: dj = a e dj = - a

14

Quanto ao treinamento no supervisionado, no existe um vetor de resposta desejada, logo, no existem comparaes que forneam um sinal de erro. Os exemplos so no rotulados. Nesta situao, so fornecidas a rede condies para realizar uma medida independente da tarefa que deve ser aprendida e os parmetros livres da rede so otimizados em relao a esta medida. Uma vez que a rede esteja ajustada s regularidades estatsticas dos dados de entrada, a rede desenvolve a habilidade de formar representaes internas para codificar as caractersticas de entrada e criar automaticamente novas classes. Para esse tipo de treinamento pode-se utilizar a regra de aprendizagem competitiva. A rede de Kohonem (ser vista mais adiante) um exemplo de rede com treinamento no supervisionado. A rede neural reconhece um padro passando por uma seo de treinamento, durante a qual se apresenta repetidamente rede um conjunto de padres de entrada junto com a categoria a qual cada um pertence. Em seguida, apresenta-se rede um padro que nunca foi visto, mas que pertence a populao de padres utilizados para o treinamento e a rede capaz de identificar a categoria correta daquele padro particular por causa da informao extrada no aprendizado. Essa capacidade de associao, isto , as condies de reconhecer padres distintos, relaciona-se ao passo_2 das etapas de modelagem (passo_1: treinamento e aprendizagem). O passo 3 refere-se a capacidade de generalizao. Uma rede tem boa capacidade de generalizao quando consegue fazer um mapeamento entrada-sada correto mesmo se a entrada um pouco diferente dos exemplos apresentados. Isso deve ser analisado atravs dos resultados fornecidos pela rede in-sample (dados do conjunto para o treinamento) e out-of-sample (dados selecionados para validar o modelo). Quando a rede aprende um nmero excessivo de exemplos, acaba memorizando os dados do treinamento, ou seja, uma rede treinada em excesso perde a capacidade de generalizao dos padres de entrada-sada similares (h excesso de ajuste: overfitting). Neste caso, obtm-se um excelente resultado in-sample e um pssimo ajuste out-of-sample. Tambm quando se utiliza mais neurnios ocultos que o necessrio, isso faz com que contribuies indesejveis da entrada fiquem armazenadas nos pesos e a rede aprende rudos.

15

A generalizao influenciada por 3 fatores: 1) O tamanho do conjunto de treinamento e o quanto os exemplos so representativos do ambiente de interesse. 2) A arquitetura da rede neural. 3) A complexidade fsica do problema (sobre este fator no se tem controle). Se por um lado o excesso de complexidade do modelo prejudica o resultado outof-sample. Por outro lado, a falta de complexidade pode ser observada na anlise in-sample. As figuras 10, 11 e 12 permitem ilustra melhor a questo da complexidade do modelo. Suponha que o modelo adequado para o problema representado na figura 10 seja uma parbola . Os xs e as bolinhas representam dois padres distintos e da forma como esto distribudos no possvel traar uma reta para tratar o problema linearmente, separando os padres xs de um lado e bolinhas de outro. Assim, essa curvinha na parbola necessria para executar a separao padres eficientemente sendo uma alternativa nolinear para resolver o problema.

Figura 10: modelo adequado para o problema desenhado Primeiramente ser relatado uma situao em que o modelo de rede neural foi construdo com mais complexidade que a necessria. O excesso de complexidade est retratado na figura 11. Supondo que o modelo adequado para o problema uma parbola

16

(figura 10) e o problema foi modelado por uma curva cheia de vales e picos, portanto, um polinmio acima de grau 2 (figura 11), neste caso, pode-se obter um excelente resultado com os exemplos do treinamento, mas os resultados com os dados de validao possivelmente no sero bons.

Figura 11: modelo com excesso de complexidade para o problema Agora, imagine que o modelo de rede desenvolvido para o resolver o problema apresentado na figura 10 esteja mais simples do que a modelagem necessria para uma soluo satisfatria do problema. Conforme a figura 12, percebe-se que a questo est mal representada pela falta de complexidade aplicada ao modelo. Ou seja, a modelagem considerada adequada utilizar uma parbola (figura 10) e se est usando uma reta (equao de 1 grau) para a representao, ento, o desempenho da rede no conjunto de treinamento e de validao ficaro abaixo das expectativas.

Figura 9: modelo com falta de complexidade para o problema

17

Obviamente as figuras anteriores um exemplo bastante simplista que, porm, permite esclarecer a idia sobre a importncia de se escolher um modelo adequado para representar um determinado problema e, conseqentemente, obter resultados satisfatrios. As prximas figuras (13 e 14) tambm retratam a importncia de uma representatividade adequada do problema, com relao a complexidade, para se obter um bom desempenho do modelo.

Figura 13: exemplo 2 (excesso de complexidade)

Figura 14: exemplo 2 falta de complexidade) Ainda com relao a complexidade do modelo, o nmero de camadas ocultas e de unidades nestas camadas de extrema importncia. Quanto maior o nmero de neurnios, mais pesos para ajustar e mais complexa ser a rede neural. necessrio mexer na complexidade do modelo at que os dados estejam bem ajustados considerando o conjunto de treinamento e de validao. Um mtodo utilizado com sucesso para especificar adequadamente o modelo a ser adotado o da Regularidade Bayesiana (implementado no matlab). Este mtodo consiste

18

em realizar vrias tentativas de redes jogando em determinados momentos os parmetros para zero (matando neurnios). Assim, vrias redes so geradas. Por este critrio a meta no propriamente minimizar o erro que est sendo cometido dentro e/ou fora da amostra, o objetivo da tcnica definir onde colocar mais linearidade ou no. Isto , no se deve responder com mais no-linearidade quando se tem linearidade. A regularidade do mapeamento est fortemente associada a uma boa generalizao. Assim, em resumo, o nmero de entradas tem haver com o nmero de atributos necessrios para o treinamento. As entradas devem ser variveis informativas e descorrelatadas. Do contrrio, podem atrapalhar a rede na tarefa de aprendizagem. Ainda em relao aos dados de entrada til realizar uma normalizao dos padres. As variveis de entrada devem ser pre-processadas de modo que seu valor mdio calculado sobre todo o conjunto de treinamento seja prximo de zero, ou seja, pequeno quanto ao todo do conjunto. Tambm para acelerar o treinamento as variveis descorrelatadas podem ser escaladas para que suas covarincias sejam aproximadamente iguais. Assim, os pesos da rede aprendem aproximadamente a uma mesma velocidade. Para exemplificar a questo da normalizao, no caso de uma srie temporal com tendncia e sazonalidade, pertinente primeiramente identificar e excluir este comportamento da srie (que representam padres lineares). Desta forma, a rede poder melhor identificar os padres no-lineares, deixando para os mtodos clssicos o tratamento das componentes lineares. Ainda preciso verificar a presena se outlies (pontos discrepantes). Quanto ao nmero de neurnios na camada de sada, depender do modelo. Para as camadas ocultas, como foi demonstrado, sua complexidade depender dos resultados com os dados de treinamento e de validao. A figura 15 ilustra esse ponto da questo.

19

Figura 15: resultados de treinamento e de validao Verifica-se que o erro de treinamento cai a cada nova poca. Porm, o erro do conjunto de validao cresce quando o nmero de pocas aumenta, alm do necessrio para treinar a rede. Ou seja, o excesso de treinamento faz a rede perder a sua capacidade de generalizao e o erro aumenta fora da amostra decorrente deste fato. A validao cruzada uma alternativa eficiente para se averiguar o poder de generalizao do modelo obtido. A validao cruzada consiste em se dividir a amostra em partes. Por exemplo, para 150 observaes, faz-se 10 grupos de 15. Pega-se 9 para treinar a rede e 1 para validar o modelo. A idia do procedimento consiste em criar grupos e combin-los vrias vezes. I II III IV Cada retngulo da tabela representa um pedao da amostra. Pela validao cruzada, faz-se a combinao N vezes desses retngulos e encontra uma mdia que servir para detectar o potencial do modelo desenvolvido.

20

1.8) Perceptron A rede do tipo perceptron consiste basicamente de um modelo como apresentado a seguir.

Figura 16:modelo simplificado do perceptron

Figura 17: estrutura interna do perceptron De acordo com as gravuras 16 e 17, observa-se que o perceptron se trata de uma rede de uma camada. Neste caso, geralmente, a rede constituda por um nico neurnio e um polarizador. Uma rede neural sem camada oculta s consegue classificar padres que sejam linearmente separveis (ou seja, padres que se encontram em lados opostos de um hiperplano). Caractersticas bsicas do perceptron: - funo de ativao: degrau - topologia: uma nica camada de neurnios - algoritmo de aprendizado: supervisionado. - valores entrada/sada: binrios [-1, +1].

21

Para essa rede funcionar adequadamente, as duas classes C1 e C2 devem ser linearmente separveis, isto , os padres a serem classificados devem estar suficientemente distantes entre si para assegurar que a superfcie de deciso consiste em um hiperplano. Se as duas classes se aproximarem demais, tornam-se no-linearmente separveis, uma situao que est alm da capacidade do neurnio. Isto est mostrado nas figuras 18, 19 e 20.

C1

C2

Figura 18: padres no-linearmente separvel

C1

C2

Figura 19: padres linearmente separveis

Classe 1

Classe 2

Figura 20: (problema linearmente separvel)

22

Assim, no h como separar linearmente por uma reta os padres A0 e A3 de um lado e os padres A1 e A2 de outro lado. Este fato est ilustrado nas figuras 21 e 22;

A2 = 1

A3 =0

A0 = 0

A4 = 1

Figura 21: representao 1 problema XOR O problema OU-EXCLUSIVO

Figura 22: representao 2 problema XOR

1.9) MLP (redes de mltiplas camadas) e o algoritmo de retropropagao As redes em camada so tipicamente constitudas por uma camada de entrada, uma ou mais camadas ocultas e uma camada de sada. O sinal se propaga sempre para a frente, camada por camada. A rede MLP tem sido aplicada a problemas atravs de seu treinamento

23

de forma supervisionada com o algoritmo de retropropagao do erro. Este algoritmo baseado na regra de correo de erro. A figura 23 desenha um exemplo genrico de redes em camadas.

Figura 23: redes em mltiplas camadas Existem trs caractersticas bsicas das redes em camadas: a) o modelo de cada neurnio da rede inclui uma funo de ativao no-linear. Alm disso, a no-linearidade do tipo suave (diferencivel em qualquer ponto). Uma forma de no-linearidade normalmente usada que satisfaz esta exigncia uma nolinearidade sigmide. A no-linearidade importante, pois, do contrrio, a relao de entrada-sada da rede seria reduzida a forma existente em uma rede de camada nica. b) A rede contm uma ou mais camadas de neurnios ocultos que no so parte da entrada e nem da sada da rede. Estes neurnios da camada oculta capacitam a rede a aprender tarefas complexas, extraindo progressivamente as caractersticas mais significativas dos padres de entrada. c) A rede exibe um alto grau de conectividade determinado pelos seus pesos. Uma modificao na conectividade da rede requer modificaes nos pesos.

24

Estas trs caractersticas juntamente com a habilidade de aprender da experincia do treinamento so responsveis pelo alto poder computacional da rede e tambm por suas deficincias a respeito do conhecimento sobre o comportamento da rede. A saber sobre essas deficincias mencionadas: a) a presena de uma forma distribuda de no-linearidade e a alta conectividade da rede torna difcil a anlise terica de uma MLP. b) a utilizao de neurnios ocultos torna o processo mais difcil de ser visualizado. Em um sentido implcito, o processo de aprendizagem deve decidir quais as caractersticas dos padres de entrada sero representados por neurnios ocultos. Em redes de mltiplas camadas identifica-se dois tipos de sinais: sinal funcional e sinal de erro e na aplicao do algoritmo de retropropagao distinguem-se dois passos: a propagao e a retropropagao. O algoritmo de retropropagao do erro o algoritmo de treinamento supervisionado mais difundido. Este algoritmo juntamente com as redes em camada foram os responsveis pelo ressurgimento do interesse de pesquisas na rea de neurocomputao (detalhes na seo 1.1). As redes que no possuem camada oculta (perceptron) so apenas capazes de resolver problemas que so linearmente separveis. Neste caso, quando os padres so no-linearmente separveis surge o problema do Ou-Exclusivo (XOR). O problema do XOR pode ser resolvido utilizando uma nica camada oculta com dois neurnios como mostrado na figura 24. Camada oculta Neurnio 1 Neurnio 3

Camada de entrada

X1

X2
Neurnio 2

Camada de sada

Figura 24: rede neural para resolver o problema XOR

25

O algoritmo de retropropagao aparece como uma alternativa para treinar redes em camada (MLP). Consiste em calcular o erro na sada da rede e retropropag-lo pela rede, modificando os pesos para minimizar o erro da prxima sada. O algoritmo baseia-se no mtodo do gradiente descendente cuja idia central fazer modificaes proporcionais ao gradiente do erro. A direo do gradiente onde o erro minimizado. O mtodo utiliza a 1 derivada de todas as inclinaes. Basicamente o algoritmo de retropropagao consiste nos seguintes passos: 1. calcular o erro na da rede 2. retropropagar o erro e modificar os parmetros para minimizar o erro da prxima sada. A aprendizagem por retropropagao do erro pode ser descrita como: a) um passo para a frente: propagao (o vetor de entrada aplicado aos neurnios da rede e seu efeito se propaga atravs da rede, camada por camada, at finalmente produzir o conjunto de sada (resposta real da rede). Durante este passo, os pesos da rede ficam fixos. b) Um passo para trs: retropropagao (os pesos so ajustados de acordo com uma regra de correo de erro. A resposta real da rede subtrada da resposta desejada (alvo) para produzir um sinal de erro. Este sinal propagado para trs atravs da rede, da o nome retropropagao de erro. Os pesos so ajustados para aproximar a resposta da rede a resposta desejada (num sentido estatstico). Na sada da rede como existe uma resposta desejvel, existe um erro. Mas na camada oculta o erro no tem um sentido fsico. Portanto, os neurnios de sada so as nicas unidades visveis para as quais o sinal de erro pode ser diretamente calculado. Dessa forma, o algoritmo oferece um tratamento diferenciado aos neurnios da camada oculta e da camada de sada. O objetivo minimizar o erro mdio. Para isso so feitas modificaes nos pesos padro a padro. O raciocnio para implementar o algoritmo inicia-se da seguinte forma: se as

26

modificaes nos pesos so proporcionais ao gradiente do erro e este gradiente calculado utilizando a regra da cadeia dada pela expresso da figura 11.

(n) (n) e j (n) y j (n) j (n) = w ji ( n ) e j (n) y j (n) j (n) w ji (n)


Figura 25: gradiente do erro Ento, preciso obter as derivadas dessa expresso:

e j (n ) = d
Onde:

( n ) y i (n )
(1)

j :refere-se ao neurnio de sada. n: interao ej: erro obtido propagando-se a entrada para frente dj: resposta desejada yj: a sada da rede A funo custo dada por:

( n) =

1 e2 j ( n) 2 jC
(2)

Sabendo que c o conjunto de todas as unidades da camada de sada. A funo custo uma medida de desempenho. O somatrio refere-se a soma dos erros de todos os neurnios da camada de sada. Em seguida, pega-se a funo custo e tira-se a mdia para todos os padres, obtendo-se o erro mdio com relao aos n padres:

27

av =

1 N ( n) N n =1
(3)

O prximo passo calcular a entrada do j-simo neurnio:

j (n) = w ji (n) yi (n)


i =0

(4) Lembrando que w0 = polarizador e p o nmero total de ligaes que chegam ao neurnio j. A sada do neurnio j na interao n dada por:

y j (n) = j ( j (n))
(5) Como pode ser visto, a sada dependente do nvel de ativao aplicado ao neurnio, que est relacionado a funo de ativao. Quanto a resoluo das derivadas da figura 25:

(n) = e j ( n) e j ( n )

(6)

e j ( n ) = 1. y j ( n )
(7)

28

y j ( n ) = j ( j (n)) j (n)

(8)

j (n) = yi (n) w ji (n)

(9)

(n) (n) e j (n) y j (n) j (n) = w ji ( n ) e j (n) y j (n) j (n) w ji (n)


(10)

Colocando todas essas derivadas (6), (7), (8), (9) na expresso da regra da cadeia (figura 25) chega-se ao gradiente do erro sendo possvel realizar a atualizao dos pesos.

wji (n) =

(n) wji (n)

(REGRA DELTA) Ou

wji(n) wji(n-1) - wji(n)


O sinal negativo na frente de (constante de aprendizagem) deve-se ao fato de se estar caminhando na direo da descida mais mgreme. A constante de aprendizado ser adiante mais detalhada. Todas as derivadas apresentadas para resolver a regra da cadeia relativa a figura 25

29

mostram como modificar os pesos dos ns que esto ligando a camada oculta sada. Contudo, tambm necessrio modificar os pesos dos ns da camada oculta. Para isso, o procedimento utilizado similar ao descrito anteriormente. Inicialmente troca-se (j) por (k). k: refere-se a camada de sada j: refere-se a camada oculta (anteriormente (j) referia-se ao neurnio da camada de sada. Redefine-se como:

j ( n) =
=

(n) y j (n) y j (n) j (n) (n) ' ( (n) ) y j ( n ) j j

(11)

( n) =

1 ek2 (n) 2 kC
(12)

ek ( n) = d k ( n) y k ( n) = d k (n) k ( k (n))
(13)

30

ek (n) = 'k ( k (n)) k (n)


(14)

k (n) = wkj (n) y j (n)


j =0

(15)

Onde (q) o n de ligaes que chegam ao neurnio k. Diferenciando a expresso (11) chega-se em:

k (n) = wkj (n) y j ( n )


(16)

(n) = ek (n) 'k ( k (n)) wkj ( n) y j ( n ) k


= k (n) wkj (n)
k

(17)

j (n) = ' j ( j (n)) k (n) wkj (n)


k

delta camada de sada

delta camada oculta (18)

31

O sentido delta est no fato de que possvel modificar os pesos se os deltas so conhecidos. Como pode ser visto pela frmula (18), o delta da camada oculta est sendo calculado em funo do delta da camada de sada. Este o sentido da retropropagao do erro. Com o delta da camada de sada, calcula-se o delta da camada anterior e com este o da camada anterior, e assim por diante. Como a modificao dos pesos depende da derivada da funo de ativao, uma condio para que o algoritmo de retropopagao seja coerente que a funo seja diferencivel e no decrescente (pois a derivada no pode ficar trocando de sinal, caso contrrio, nunca converge). Enfim, o algoritmo de retropropagao pode ser descrito em 5 etapas: a) apresentao do padro; b) propagar o sinal para a frente e calcular a sada resultante para todos os neurnios de sada; c) calcular os s para todos os neurnios da camada de sada; d) retropropagar o sinal de erro de sada, calculando os s das unidades ocultas; e) atualizar os pesos, apresentar novo padro e retornar ao passo (a). Retornando a constante de aprendizagem (), que aparece na regra delta de modificaes dos pesos, o algoritmo de retropropagao fornece uma aproximao para a trajetria no espao dos pesos calculada pelo mtodo de descida mais ngreme. Assim: Quanto menor for de uma interao para a outra, menor ser a variao nos pesos. Ento a taxa de aprendizado mais lenta. Quando for grande, para acelerar a taxa de aprendizado, as modificaes nos pesos podem tornar a rede instvel.

32

Uma forma de aumentar a taxa de aprendizado evitando o problema da instabilidade modificar a regra delta incluindo o Termo Momento. A incluso do termo momento no algoritmo de retropropagao tem um efeito estabilizador por penalizar os movimentos em sentidos opostos da derivada parcial:

(n) w ji (n)

(19) Se as derivadas (19) apresentam o mesmo sinal em interaes consecutivas, os

pesos so ajustados em uma valor maior do que no caso em que as derivadas oscilam. Em sntese: Termo Momento ( 0): uma variao pequena, mas com efeito benficos: wji(n) = wji(n-1) + j yi (n) Para inicializar o treinamento, os pesos devem ser distribudos uniformemente com mdia zero e limites pequenos. Como a modificao nos pesos proporcional a derivada da funo de ativao, quanto mais prximo do centro da funo se estiver, maior a modificao introduzida. Nas duas regies de saturao, as derivadas so prximas de zero e, por conseqncia, haver um ajuste muito pequeno nos pesos, mesmo se o erro for significativo. Em outras palavras, sempre deve-se iniciar os pesos em algum ponto entre valores extremos. Quando encerrar o ajuste de pesos (critrios de parada), pode-se dizer que no existem critrios bem definidos para demonstrar que o algoritmo convergiu ou que indiquem que sua operao pode ser encerrada. Entretanto, em geral, encerra-se o ajuste de pesos quando ocorre alguma das situaes abaixo mencionadas: - erro atingiu uma tolerncia pr-determinada. - erro caiu a uma taxa suficientemente pequena de acordo com uma parmetro pr-determinado. - a cada poca testa-se a generalizao, parando se o desempenho for considerado adequado.

33

Apesar do algoritmo de retropropagao ser uma tcnica muito difundida, existem problemas na sua implementao, a saber alguns deles: 1. Mnimos locais: como a superfcie do erro geralmente cheia de vales e desnveis e o algoritmo emprega um tipo de gradiente descendente, h possibilidade do algoritmo ficar preso em um mnimo local. 2. Paralesia da rede: durante o treinamento se os pesos so ajustados para valores muito grandes, podem levar a derivada da funo de ativao para zero. Isto impede a rede de aprender o conjunto de treinamento. A constante de aprendizagem e o termo momento so algumas heursticas para tentar melhorar o desempenho da rede, entre outras tais como: normalizao dos dados de entrada, utilizao da funo de ativao hiperblica (o algoritmo aprende mais rpido), mtodo padro a padro mais rpido que por lote (batelada), apresentao aleatria dos exemplos. Destacando a questo do mnimo local, sabe-se que a taxa de aprendizado no deve ser nem muito grande (pois gera oscilaes durante o treinamento prejudicando a convergncia) e nem muito pequena (para no tornar o treinamento lento). Logo, se pequeno e o algoritmo est preso em um mnimo local, qualquer mudana nos pesos faz o erro aumentar. Se no for possvel calcular um w que faa a rede neural sair do mnimo local, a rede no conseguir aprender com a precisoespecificada (considerando um erro mnimo).

Figura 26: problema do mnimo local (para pequeno)

34

Figura 26(continuao): problema do mnimo local (para pequeno) Entretanto, se grande, as mudanas no so suficientemente pequenas para levar a uma configurao de erro mnimo global. Os valores de w so grandes causando oscilaes. Nesta situao, a rede neural tambm no consegue aprender com a preciso especificada.

Figura 27: problema do mnimo local (para grande)

35

Para um adequado, a atualizao dos pesos consegue chegar a um valor de erro que seja mnimo global e a rede neural aprende com a preciso desejada.

Figura 28: : problema do mnimo local (para adequado)

36

A incluso do termo momento permite a rede convergir mais rapidamente, pois penaliza a troca de sinais da derivada da funo de ativao. Assim, a atualizao dos pesos acontece mais rapidamente. Como pode ser visto na figura 29, que reporta como se d a convergncia para diferentes valores atribudos ao termo momento, percebe-se que a rede converge mais rpido (menos poca) quando se aumenta o valor de . Contudo, nota-se tambm que se for um valor muito alto, a rede comea a oscilar e o erro comea a aumentar.

Figura 29: efeitos da incluso do termo momento

37

Você também pode gostar