Você está na página 1de 87

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

- REDES NEURAIS ARTIFICIAIS

01 - Introduo A questo da inteligncia humana sempre foi um dos problemas filosficos mais interessantes, intrigantes e debatidos que se conhecem. Nas inmeras tentativas de sua proposio no faltam imaginao criadora nem diversidade de idias, sem, contudo haver nenhum paradigma unificador que permita ao menos algumas concluses definitivas. Uma das abordagens mais aceita na atualidade a de considerar a questo sob mltiplos aspectos, passando necessariamente pela questo do conhecimento, de sua representao e de seu aprendizado, pelas evidncias descobertas nas Cincias Biolgicas, por desenvolvimentos matemticos e pelos experimentos com artefatos construdos para mostrar um ou mais componentes do que se admite, subjetivamente ser a inteligncia humana. Um dos paradigmas de maior notoriedade hoje o conexionista, que privilegia a evidncia biolgica de uma imensa multiplicidade de pequenos agentes com alto grau de coeso, como a existente no crebro, para a explicao de comportamentos ditos inteligentes. Cabe observar que o paradigma conexionista no diz respeito apenas questo da inteligncia, sendo aplicado tambm em campos to diversos, quanto os das Cincias Sociais e da Economia. 02 - Histrico A reproduo de caractersticas Inteligentes em mquinas construdas pelo homem um dos objetivos mais perseguidos pela comunidade cientfica e tecnolgica j h muito tempo. No que diz respeito ao aspecto Conhecimento, remonta da Grcia antiga uma das primeiras experincias para a sua representao, feita atravs da Lgica. Na poca a metodologia era exercida atravs da cuidadosa manipulao das estruturas lingsticas, realizando-se com frases bem construdas e apelando-se para princpios de Inferncia, hoje muito bem formalizado, que condiziam com as bases filosficas da cultura na poca. As trs leis fundamentais do pensamento segundo Aristteles espelham rigorosamente os conceitos usados na formalizao terica do que hoje conhecemos como Lgica Matemtica A formalizao acima referida deu-se mais de dois mil anos depois, a partir dos trabalhos de Frege, que propiciaram o desenvolvimento dos meios tericos para Representao Simblica de Conhecimento e tambm para a rigorosa fundamentao de toda a matemtica.
02/05/02 1

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

A passagem dos conceitos tericos para a prtica tecnolgica teve grande impulso na poca da Segunda Guerra Mundial. A construo dos primeiros computadores digitais no fim da dcada de 1940 foi fruto de uma grande concentrao de cientistas do mais alto gabarito em propostas de realizao do que se chamava Crebro Eletrnico, qualificao que h at bem pouco tempo ainda se atribua aos processadores digitais. Simultaneamente aos avanos das tcnicas digitais, a partir de 1943 dois pesquisadores da rea biolgica McCulloch & Pitts (1) propuseram o primeiro modelo matemtico do funcionamento de um neurnio. Este modelo, apesar de muito simples, trouxe uma grande contribuio para as discusses sobre o crebro eletrnico, estimulando especulaes sobre a verdadeira estrutura de um crebro e, principalmente, permitindo a criao dos primeiros modelos matemticos de dispositivos artificiais que buscavam analogias biolgicas. Sem dvida os sonhos proliferaram e muitos recursos financeiros foram distribudos aos grupos de pesquisa na rea, uma vez que as promessas eram fantsticas. Esta situao perdurou at meados da dcada de 60, quando os organismos financiadores retiraram seu apoio tendo em vista o no cumprimento das propostas contidas nos projeto. Para colocar uma p de cal nas discusses que ocasionalmente ainda ocorriam, Minsky & Pappert (2) em 1969 publicaram um livro denominado Perceptrons, onde provavam que a estruturas utilizadas nos dispositivos da poca eram incapazes de aprender regras lgicas to simples quanto do ou exclusivo. Pouqussimos pesquisadores continuaram a trabalhar no assunto, entre os quais destacam-se: Teuvo Kohonen ( Finlndia); Edoardo Caianiello (Itlia); Stephen Grossberg, (E.U.A); James Anderson (E.U.A); Kunihiko Fukushima (Japo); Bernard Widrow (USA ), estes estavam ligados a vertente do modelo biolgico. A vertente ligada Lgica Matemtica, entretanto estava mais bem apoiada institucionalmente, dada a grande conquistas realizadas na rea de computao que, se no geraram o crebro eletrnico como se props originalmente, obtiveram um dispositivo que inegavelmente revolucionou o ambiente tecnolgico existente. Estes pesquisadores lanaram as bases do que hoje entendemos por Inteligncia Artificial, obtendo logo no incio da dcada de 70 resultados bastante concretos em diversas e importantes aplicaes de carter prtico. Da mesma forma que a lgica proposicional (ou lgica de ordem zero) foi base para o desenvolvimento dos computadores digitais, a lgica de predicados de primeira ordem o foi para a Inteligncia Artificial. O incio da dcada de 80 marcou a consolidao desta vertente e o crescimento acentuado das aplicaes como do conhecimento geral.

02/05/02

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Pelo outro lado, entretanto, o renascimento do interesse cientfico teve incio atravs dos fsicos com uma aplicao dos conceitos conexionistas ao problema de modelagem de materiais paramagnticos como o vidro spin realizada por Hopfield (3) e publicada em 1982. A idia bsica era a da analogia entre o spin magntico de um tomo influenciando a todos os demais existentes no vidro e evidentemente, sofrendo a influncia de todos na determinao de sua prpria orientao magntica. Esta analogia gerou um modelo dinmico no linear que se provou ser estvel desde que a matriz de pesos que medem a fora de interao entre cada par de fosse simtrica. Esta condio naturalmente verificada no problema fsico que estava sendo modelado e, portanto, no causou dificuldades para sua aplicao. A partir da, diversas possibilidades de aplicao foram exploradas, como por exemplo, em otimizao, em reconhecimento de padres etc., com resultados bastante encorajadores. As boas condies de financiamento da pesquisa na rea voltaram e o volume de trabalhos publicados comeou a crescer significativamente. Em 1986 ocorreu o fato que efetivamente colocou a rea de Redes Neurais Artificiais como uma das prioritrias na obteno de recursos. Este fato foi explicao por Rummelhart, Hinton e Williams (4) de um algoritmo de aprendizado (backpropagation) para redes do tipo Perceptron com estrutura multicamadas, fazendo cair definitivamente alegao de que estes tipos de redes resolviam apenas problemas triviais. Cabe aqui observar, a bem da verdade, que Minsky e Pappert (et alli) estavam absolutamente corretos no que afirmaram, pois os algoritmos de aprendizagem existente na poca eram capazes de aprender apenas a soluo para problemas simples de classificao, no sendo conhecido nenhum outro com a generalidade do backpropagation. importante ainda salientar que este algoritmo foi desenvolvido anteriormente por outros pesquisadores (Werbos 1974, Parker 1975 e Le Cun 1975) que, entretanto, o estavam aplicando em problemas no relacionados diretamente com redes neurais. Hoje redes neurais constituem uma teoria para estudo problemas ou fenmenos complexos. considerada como um ramo ou sub especialidade da inteligncia artificial. Aps a publicao em 1986 do clssico Parallel Distributed Processing editado por Rummelhart e McClelland ambos do PDP Research Group da Universidade de San Diego na California, a rea de redes teve um crescimento vertiginoso. Cabe ressaltar que esta rea est sendo reativada desde a dcada de 1980 e um volumoso nmero de pesquisa e trabalhos tm sido realizados, apesar da falta de um corpo terico consolidado, e a inexistncia de livros abrangentes. A proliferao de publicaes inexpressivas, contradies em diversas conjecturas de trabalhos, resultados divergentes, caracterizam a rea ainda pouco conhecida, ou seja, onde o conhecimento cientfico pouco consolidado. Por outro lado s perspectivas que se abrem para pesquisadores e tecnlogos so tentadoras. Desta forma, assistimos a partir de 1986 a um crescimento exponencial dos financiamentos e das atividades na rea. Hoje se pode dizer que na maioria das Universidades e Centro de Pesquisa existem grupos trabalhando no assunto.
02/05/02 3

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Aps as consideraes sobre a evoluo histrica das redes neurais, cabe uma pergunta. Quando utilizar a redes neurais? Esta pergunta pode ser respondida da seguinte maneira: 1) Quando as concluses so baseadas em dados de natureza fuzzy. Se os dados so opinies pessoais, categoria mal definida, ou esto sujeitos a grandes erros, os comportamentos robustos das RNs decisivo para a soluo do problema. 2) Os fatores importantes para a tomada de decises so quase que imperceptveis. Uma das principais vantagens de um RN a sua habilidade de descobrir padres to obscuros que passam desapercebidos por especialistas humanos e mtodos estatsticos tradicionais. 3) Os dados apresentam um grau significativo de no-linearidade difcil de ser prevista. Modelos tradicionais para previso de srie temporais, tais como ARMA e filtro de Kalman, so baseados em modelos pr-definidos. Se os dados no podem ser ajustados ao modelo, os resultados so inteis. RNs so extremamente adaptveis. 4) Os dados so caticos (no senso matemtico). Caos pode ser encontrado em rudos de linha telefnica, cotaes de mercado de capitais, carga eltrica, e em diversos outros processos. Tal comportamento tem efeito devastador para a grande maioria de tcnicas. Entretanto, RNs so geralmente robustas em relao a dados desta natureza. Complementando as respostas possveis, podemos dizer que nos ltimos anos as Redes Neurais Artificiais tem recebido uma grande ateno como ferramenta de computao em diversas reas, entre as quais: 1) Representao de funo; 2) Modelagem de processo; 3) Aprendizado de processo de deciso; 4) Problema de previso; 5) Estimao da inversa de um sistema; 6) Determinao de ao de controle; 7) Descobrimento de similaridade de padres; 8) Filtragem de dados; 9) Aquisio automtica de conhecimento; 10) Monitoramento e diagnstico rpido; 11) Processamento de informaes distorcidas e/ ou incompletas; 12) Memria accessvel pelo contedo; 13) Orientao na soluo de problemas de otimizao combinatria; 14) Processamento de sinais e/ou imagens Exemplos: - Reconhecimento de Padres Reconhecemos com relativa facilidade um rosto visto anteriormente, mas um algoritmo para realizar esta tarefa pode ser bastante complexo; - Problemas de Otimizao Combinatria 02/05/02 4

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

No clssico problema do caixeiro viajante, para um nmero razovel de cidades o homem acha uma soluo tima (quase tima) com relativa facilidade. Mas algoritmos para esta tarefa so complexos e extensos. O crebro apresenta tambm outras caractersticas muito desejveis para uma mquina que so: - Capacidade de aprender sem que seja necessrio conhecer o algoritmo que resolve o problema; Exemplo: qual algoritmo para identificar um rosto? - Capacidade de generalizar; Exemplo: somos capazes de reconhecer o mesmo rosto em posio ou condio de iluminao diferente. - Robustez - isto quer dizer que a perda de algumas unidades de processamento, ou neurnios, no implica na perda de uma quantidade considervel de informao. Em vista do exposto anteriormente, leva-nos a reproduzir artificialmente as redes neuronais biolgicas, e us-las como ferramenta de computao em engenharia. Para um bom desempenho do leitor necessrio um conhecimento bsico de: - Clculo; - Equaes diferenciais; - Equaes s diferenas; - Probabilidade; - lgebra linear; - Sistemas lineares O que so redes neurais artificiais? 1. Segundo Alexandre P. Alves da Silva: Uma rede neural artificial uma estrutura de processamento de informao no - algortmica na forma de um grafo direcionado, onde cada n, denominado neurnio, possui muitas entradas e um nico sinal de sada que pode ser desmembrado. O processamento em cada n depende exclusivamente das entradas desse n e dos valores acumulados em uma pequena memria local do mesmo. 2. Segundo Simon Haykin: Uma rede neural um processador maciamente paralelamente distribudo constitudo de unidades de processamento simples, que tm a propenso natural para armazenar conhecimento experimental e torn-lo disponvel para uso. Ela se assemelha ao crebro em dois aspectos: a) O conhecimento adquirido pela rede a partir de seu ambiente atravs de um processo de aprendizagem. b) Foras de conexo entre neurnios, conhecidas como pesos sinpticos, so utilizadas para armazenar o conhecimento adquirido.
02/05/02 5

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

03 - FUNDAMENTOS Neurnio Biolgico Antes de iniciarmos o estudo sobre redes neurais artificiais, considero importante fazer algumas consideraes sobre o neurnio biolgico por ser ele a inspirao para o neurnio artificial, e este por sua vez, a unidade processadora da rede neural artificial. O neurnio biolgico constitudo de um corpo celular denominado soma. Local no qual ocorre o processamento metablico da clula nervosa ou neurnio. Deste corpo projetam-se extenses filamentares, os dendritos, e o axnio, este modelo anatmico foi identificado por Ramon Cajal (Neurologista) em 1894.

As manifestaes eltricas dos neurnios biolgicos foram observadas pela primeira vez no sculo XIX por Dubis Reymond auxiliado por um galvanmetro, todavia o entendimento do funcionamento s foi melhorado a partir das observaes de Erlanger e Gasser em 1920. O resultado desta pesquisa rendeu lhes o prmio Nobel em fisiologia no ano de 1944. Com base nesta pesquisa e outras posteriores passou-se a entender o comportamento do neurnio biolgico como sendo o dispositivo computacional do sistema nervoso o qual possui muitas entradas e uma nica sada.
02/05/02 6

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

As entradas ocorrem atravs das conexes sinpticas, que conectam a rvore dendrital aos axnios de outras clulas nervosas. Os sinais que chegam pelos axnios so pulsos eltricos conhecidos como impulsos nervosos ou potenciais de ao, e constituem a informao que o neurnio processar de alguma forma para produzir como sada um impulso nervoso no seu axnio. As sinapses so regies eletroquimicamente ativas, compreendidas entre duas membranas celulares: a membrana pr-sinptica, por onde chegam o estmulo vindo de uma clula e a membrana ps-sinptica, que a do dendrito. Na regio pr-sinptica, o estmulo nervoso que chega transferido membrana dendrital atravs de neurotransmissores (substncia eletroltica). O resultado desta transferncia uma alterao do potencial eltrico da membrana ps-sinptica. Dependendo do neurotransmissor, a conexo sinptica excitatria ou inibitria. A conexo excitatria provoca uma alterao no potencial da membrana que contribui para formao do impulso nervoso no axnio de sada, enquanto que a conexo inibitria age no sentido contrrio. Como formado o potencial de ao? Segundo estudiosos da rea de neurologia, o axnio ou fibra nervosa de um neurnio um tubo filamentar delimitado pela membrana celular. Assim existe uma regio interior a membrana e outra exterior a ela. Assim em repouso, sem a presena de um impulso nervoso, o interior da membrana est num potencial eletronegativo de alguns milivolts em relao ao exterior da membrana. Este o potencial de repouso da membrana. Essa diferena de potencial sustentada por um processo de difuso de ons de sdio e potssio atravs da membrana, processo este conhecido como bomba de sdio.

O mecanismo como criado o potencial de ao pode explicado da seguinte maneira: quando o potencial da membrana est menos eletronegativo do que o potencial de repouso, diz se que ela est despolarizada e quando est mais negativo diz se que
02/05/02 7

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

ela est hiperpolarizada. O impulso nervoso ou potencial de ao uma onda de despolarizao de uma certa durao que se propaga ao longo da membrana (durao da ordem de algumas centenas de microssegundos). A formao de um potencial de ao na membrana axonal ocorre quando a membrana sofre despolarizao suficientemente acentuada para cruzar um determinado valor conhecido como limiar de disparo. Neste momento a membrana despolariza rapidamente em questo de microssegundo, quando o vai muito alm do valor do limiar e em seguida retorna, bem mais lentamente ao valor de repouso.

Este fenmeno o potencial de ao, que passa propagar ao longo da fibra nervosa (axnio), na forma de uma onda, com velocidade de dezenas de centmetros por segundo, em fibras mielinizadas pode atingir at 150m / seg. Aps a ocorrncia de um impulso nervoso a membrana entra num perodo conhecido com refrao absoluta, durante o qual incapaz de produzir outro potencial de ao independente da intensidade da despolarizao. Seguido a este perodo tem-se o perodo de refrao relativa, correspondente a um perodo de reduo do potencial eletronegativo at o limiar de disparo. Durante o perodo de refrao relativa, a fibra nervosa (axnio)
02/05/02 8

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

capaz de produzir potencial de ao, porm com potencial de despolarizao mais intenso do que no momento em que se tem o do limiar de disparo.

02/05/02

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Modelo do Neurnio Artificial Redes Neurais Modelo do Neurnio Artificial O primeiro modelo matemtico do neurnio artificial desenvolvido na tentativa de representar o comportamento do neurnio biolgico, foi proposto pelos pesquisadores Warren McCulloch (mdico, filosofo, matemtico e poeta) & Walter Pitts (estatstico) em 1943, inspirados nas propriedades eletrofisiolgicas do neurnio biolgico e tambm nos resultados de Alan Turing e John Von Neumann, que indicavam ser a natureza da inteligncia humana essencialmente Booleana. Esse modelo foi publicado no boletim Mathematical Biophysics com o ttulo A Logical Calculus of the Ideas Immanent in Nervous Activy, considerado referncia zero para a teoria das redes neurais artificiais.

Neste modelo cada entrada recebe um estmulo x j que ponderado por algum valor wij que representa a coeso sinptica que existe no neurnio biolgico. Todas as entradas ponderadas so somadas, e se a combinao das entradas alcana um certo nvel limiar, uma resposta gerada, a qual posteriormente modulada por uma funo de transferncia no linear. A sada ento expressa por:

i = f

(( xji wij) )
i

(1)

( ( xji wij) )
onde:

condio para disparar o neurnio (a soma ponderada das excitaes igual ou maior que o nvel do limiar);

xji o sinal de entrada ou estmulo na entrada j sobre o i - zimo neurnio; wji corresponde a coeso sinptica do estmulo da entrada j do i zimo neurnio;

02/05/02

10

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

funo de transferncia no linear ou funo de ativao (representa a no linearidade no neurnio biolgico );

Oi a resposta de sada do i -zimo neurnio. Fazendo wij xji = i, pode se escrever: i (j =1 ..n) = wij xji (j =1...n) = WXi W= [ wi1, wi2,., win] o vetor transposto dos pesos da ligao sinptica do i zimo neurnio; Xi o vetor estmulo das entradas do i zimo neurnio, cujo transposto : Xi = [ x1i, x2i,.., xni] A sada do neurnio antes de passar pelo bloco da funo no linear f denominada sada lquida da unidade de processamento ou neurnio, normalmente representada por: Net(i) = wij xji - i (j =1...n) Onde : i o limiar do i zimo neurnio. A partir desta considerao a equao (1) pode ser escrita como: Oi = fi(Net(i)) O modelo de McCulloch-Pitts O modelo de McCulloch-Pitts um sistema em malha aberta com um nico propsito: modelar um neurnio simples. No existe nenhum mecanismo de comparao na sada do neurnio com a finalidade de comparar a sada real do neurnio com alguma sada esperada, desta maneira nenhum peso sinptico ajustado, e como conseqncia nenhum aprendizado toma lugar. O modelo de neurnio proposto por McCulloch Pitts um dispositivo binrio, a sua sada podia ser pulso (1) ou no pulso (0), e as suas vrias entradas podiam ter ganhos arbitrrio, e ainda serem excitatrias ou inibitrias. Princpio de funcionamento do neurnio de McCulloch-Pitts Se wij xji i ( j =1...n) a sada Oi pulso ( Oi =1), semelhante ao que ocorre no neurnio biolgico; Se wij xji < i ( j =1...n) a sada Oi no pulso ( Oi =0), semelhante ao que ocorre no neurnio biolgico Assim sendo a sada Oi do neurnio , portanto binria.
02/05/02 11

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

A seguir so apresentados alguns tipos de funes ativao, que so geralmente utilizadas: Funes de ativao Funes ativao so funes no lineares associadas s sadas das unidades de processamentos com o objetivo de limitar a sada da unidade num valor limitante, de maneira similar ao que ocorre no neurnio biolgico, com o objetivo de reproduzir o mais prximo possvel o comportamento deste. Elas so s vezes referidas como funes de transferncia no lineares, relacionando a sada do neurnio artificial sua entrada. As funes ativaes mais usadas so: Funo impulso unitrio ( degrau); Funo sigmide; Funo tangente hiperblica; Funo Siebert.

Funo degrau A funo degrau pode ser expressa segundo a equao: y = f ( net) Uma das seguintes situaes pode acontecer: y=1 se net 0 y=0 se net < 0 y

ne Funo degrau Funo sigmoide A funo sigmide pode ser expressa segundo a equao: (I) = f(net) = ( 1 + e) Onde: a = - net

02/05/02

12

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Na figura dada a somao ponderada das entradas dada por: I = net = w1x1 + w2x2 + ...............+ wnxn + woxo = wixi i=0,1,......n Onde : wo = o, xo = -1 Substituindo wo e xo na expresso do net tem-se: I = net = w1x1 + w2x2 + ...............+ wnxn + woxo = wixi i=0,1,......n A funo ativao usada uma funo sigmide dada por: (I) = ( 1 + e ) onde : a = - I (-net) , no caso especfico de estudo ser feito muito grande tal que (I) seja feito igual a um independente do valor de I (net) . Na figura a seguir ilustrada a variao da funo sigmide e de sua derivada em funo de . A derivada de ( I) (ou ( net)) dada por : (I)/(I) = e( 1 + e) onde: I = net

02/05/02

13

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

02/05/02

14

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Lembrando que (I)= ( net) = ( 1 + e ), podemos escrever; (I)/(I)= (net)/(net) = e(I) = e(net) , substituindo e na expresso anterior e, partindo da expresso de (I) ((net)) e aps manipulao algbrica obtemos: (I)/(I)= (net)/(net) = [1 (I)] (I)= [1 ( net)] ( net) Tangente Hiperblica Uma outra funo logstica no linear e monotonicamente crescente com I (net), muito utilizada como funo ativao a tangente hiperblica dada a seguir: (I)= ( net) = tangh ( I)= tangh ( net) = ( e - e ) / ( e + e ) = (1 - e) / (1 - e) onde a I A funo ativao tem por derivada a expresso seguinte: (I)/(I)= (net)/(net) = sech ( I) = sech ( net) Na figura dada a seguir mostrado o grfico da tangh ( net).

02/05/02

15

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Funo Siebert: A funo Siebert ( modela a resposta dos neurnios do sistema auditivo dos vertebrados) pode ser expressa segundo a equao: f(net) = ( net ) / (net + 0.5) Onde: a =k ( parmetro varivel) A seguir ilustrado o grfico desta funo para condio do parmetro k varivel.

Discriminador Linear-

O neurnio de McCulloch Pitts pode ser modelado por um caso particular de discriminador linear cujas entradas so binrias.
02/05/02 16

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Genericamente um discriminador linear de n entradas [x1, x2,....................., xn] e uma sada y pode ser modelado ou definido como: Y = H( wi xi - ) , i = 1 .........n = H ( W X - ) , quando y [0;1] A expresso de um discriminador linear, representa um hiperplano, que divide o espao Rn ( espao de dimenso n) em duas regies A e B. Desta maneira X = [x1, x2,....................., xn] pode estar em uma das regies se por acaso se verificar: a) wi xi - 0 b) wi xi - < 0 XA y=1 ( i = 1 ,..........n) ( i = 1 ,..........n)

X B y = 0 (-1)

Em vista do exposto pode-se pensar no neurnio de McCullhoch Pitts como um classificador de padres ou separador de pontos aglomerados. Neste ponto vamos abrir um espao para definir o que um hiperplano. Definio de hiperplano O hiperplano um sub espao em Rn definido pela relao < a,X > = 0, H = { X / < a,X > = 0, X Rn } Isto , dado um vetor a Rn , a equao < a,X > = 0, define um sub espao em Rn, de dimenso n-1. Notao: < a = a = [ a1,a2,.........,an ] (transposto do vetor a) x > = [x ] (transposto do transposto do vetor x que prprio vetor x) < a, x > representa o produto escalar ou o produto interno de dois vetores < a, x > = 0 a1x1+ a2x2 + ........+ anxn =0 Fazendo correspondncia entre w e a, pode-se escrever: a1x1+ a2x2 + ........+ anxn = w1x1+ w2x2 + ...........+ wnxn = 0 < w, x > = 0 o hiperplano. Aproveitando o espao aberto, vamos definir distncia entre dois vetores.
02/05/02 17

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Distncia entre dois vetores: A distncia entre dois vetores X Rn, Y Rn o comprimento do vetor ( X Y); isto ; ( < ( X Y ), ( X Y )> ) A distncia tambm chamada de norma do vetor ( X Y ), representada por ||( X Y)||. Pode-se definir o comprimento de um vetor X como a distncia entre o vetor X e o vetor nulo 0 ( vetor nulo aquele que tem todas componentes zero) Exemplo: Seja o vetor X = [ 1, 2 ]. O comprimento do vetor X ou norma simples de X obtido como: || X)|| = ( <X, X>) = [ 1 + 2] = [ 1 + 4 ] Obs.: || X)|| tambm conhecida como norma euclidiana. Vamos agora apresentar um exemplo de aplicao de um discriminador linear ou separador de pontos. Exemplo: Sejam duas colees de vetores 1 e 2 definidas sobre o espao Rn. As colees 1 e 2 sendo representadas por: 1 = { U1, U2,.........................., Uk } 2 = { Z1, Z2,.........................., Zm } Onde: Ui vetor de dimenso n (i = 1,.............,k; representa o nmero de vetores da coleo) Zj vetor de dimenso n (j = 1,............,m; representa o nmero de vetores da coleo) O problema aqui a ser abordado, consiste em separar estas duas colees de vetores 1 e 2. Tal tarefa s ser possvel se pudermos passar um hiperplano separando os dois aglomerados de vetores no espao Rn ou seja que as colees 1 e 2 sejam linearmente separveis.
02/05/02 18

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

wij xji - i = 0 , ( j= 1 .........n) wij xji = i = WiXi = i

Se wij xji i Se wij xji < i

yi = 1 ento Xi 1 A Rn yi = 0 ento Xi 2 B Rn.

Neste caso diz-se que existir um discriminador linear ou seja um hiperplano capaz de separar as duas colees de vetores 1 e 2 desde que elas sejam linearmente separveis. Caso contrrio no existir nenhum hiperplano ou discriminador linear capaz de separar as duas colees. O discriminador linear separa o espao (plano) em duas regies 1 A e 2 B Isto s possvel se as colees 1 A e 2 B forem linearmente separveis, caso contrrio no existir discriminador linear capaz de executar esta funo de separar padres. S ser possvel separar as colees 1 A e 2 B se elas formarem aglomerados no espao Rn / seja possvel passar um hiperplano que separe estes dois aglomerados O neurnio de McCulloch Pitts um discriminador linear com a simplificao adicional de que os componentes do vetor X de entrada so tambm binrios isto , xi pertence [0,1] ou xi pertence [-1,1].

02/05/02

19

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Nas figuras dadas a seguir esto ilustradas as funes booleanas and, or e xor

A partir das figuras v-se que as funes and e or so linearmente separvel, isto ; possvel encontrar retas que separam os vetores de entrada em regies tal que a sada reflita completamente o resultado das funes booleanas. Estas funes so implementveis com o neurnio de McCulloch-Pitts. Por outro lado fica claro que a funo booleana ou exclusivo no linearmente separvel, isto ; no possvel encontrar retas que separem os vetores de entrada em regies tal que a sada reflita o resultado da funo booleana xor. Seriam necessrias duas retas discriminatrias para separar os pontos claros dos escuros. Embora os neurnios singelos (simples) no tenham capacidade de implementar todas funes booleanas, associao deles em rede possibilitar a implementao de qualquer funo booleana. O xor de duas variveis pode ser implementado por uma rede neural de trs neurnios N1, N2 e N3
02/05/02 20

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Com N1, N2 e N3 implementando as funes N1 f1 = X1. X2 N2 f2 = X1. X2 N3 f3 = f1 f2 Onde X1 e X2 so complementos de X1 e X2 respectivamente; X1 0 1 0 1 X1 1 0 1 0 X2 0 0 1 1 X2 1 1 0 0 F1 0 1 0 0 F2 0 0 1 0 F3 0 1 1 0

As Redes Neurais Artificiais de que trataremos so todas baseadas nos Conceitos Conexionistas, ou seja compe-se de blocos construtivos similares entre si no aspecto funcional, todos eles muito simples e existentes em grande nmero, com a caracterstica de formar um conjunto com elevado grau de interconexo. Em outras palavras podemos dizer que as Redes Neurais Artificiais um conjunto de unidades de processamento muito simples que se comunicam pelo envio de suas sadas para as entradas de outras unidades por meio de ligaes que permitem modular a intensidade de cada sinal enviado. As redes neurais artificiais que descreveremos so todas variaes da idia sobre processamento paralelo distribudo (PDP). A arquitetura de cada rede baseada na construo de muitos blocos similares que desempenham o processamento. Ser discutida inicialmente a clula de processamento, as diferentes estruturas de topologia da rede. Estratgia de aprendizagem com base em sistema adaptativo.

02/05/02

21

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Conforme mencionado anteriormente uma rede artificial consiste de um conjunto de unidades simples de processamento que comunicam entre si por meio de sinais enviados por conexes sob ponderaes. Um conjunto dos principais aspectos de um modelo paralelo distribudo apresentado a seguir: Um conjunto de unidade de processamento (Neurons, clula); Um estado de ativao ai (Ri) para cada unidade, que tambm determina a sada da unidade; Conexo entre as unidades. Geralmente cada conexo definida por um peso wij que determina o efeito que o sinal da unidade j tem sobre a unidade i; Uma regra de propagao, que determina a entrada efetiva ij da i-sima unidade a partir de suas entradas externas; Uma funo ativao Fi, que determina o novo nvel de ativao baseado na entrada efetiva net i i ( t ) e o estado atual ai(t); (isto , the update) Uma entrada externa ou off-set i para cada unidade; Um mtodo para coleta de informao; Um ambiente dentro do qual o sistema deve operar, provendo sinais de entrada e se necessrio sinais de erro. 04 - UNIDADES PROCESSADORAS - Unidade de Processamento As unidades processadoras realizam funes muito simples, como a de coletar os sinais existentes em suas entradas, agreg-los de acordo com a sua funo de entrada e produzir sua sada de acordo com a funo de ativao inerente. Cada unidade desenvolve uma tarefa relativamente simples, recebe entradas de vizinhanas ou fontes externas e usa estas para calcular um sinal de sada que propagado para outras unidades. A partir deste processamento, uma segunda tarefa o ajustamento dos pesos. O sistema inerentemente paralelo no sentido que muitas unidades podem conduzir suas sadas ao mesmo tempo. Isto ; cada unidade realiza suas funes simultaneamente s das outras, podendo inclusive operar de maneira contnua no tempo. Neste caso o modelo matemtico global do sistema ser um conjunto de equaes diferenciais. No caso de haver instante preferencial de execuo das funes das clulas, ou seja, de cada clula, o sistema ser discreto no tempo e seu modelo matemtico global ser um conjunto de equaes s diferenas. Quando a Rede Neural Artificial opera em tempo discreto pode-se optar por duas polticas bsicas para definir o instante de execuo das funes nas clulas: Execuo sncrona: Quando todas as unidades so atualizadas no mesmo instante de tempo.
02/05/02 22

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Execuo assncrona: Quando cada unidade tem associada a ela uma funo de probabilidade para entrar em operao em cada instante t. Usualmente no permitida operao de mais de duas unidades no mesmo instante. Este modo tem a maior analogia com os processos biolgicos reais, porm acarreta maiores dificuldades nas implementaes feitas em computadores digitais. 4.1 - Entrada / Estado de Ativao / Sada das Unidades Como as unidades podem ser sistemas dinmicos, o estado de ativao determinado por uma equao diferencial ou s diferenas e o valor do sinal de sada de cada unidade processadora determinado como uma funo algbrica de seu estado de ativao. Tendo em vista a simplicidade desejada para as clulas, os modelos dinmicos sero de primeira ordem, o que no impede, entretanto a utilizao quando necessrio de modelos mais complexos. Em casos mais simples como dos Perceptrons as clulas so algbricas, ou seja, no possuem caractersticas dinmicas. A entrada lquida para i - sima unidade de processamento (unidade processadora) dado por: neti = xi wij
j

Uma vez calculada a entrada lquida neti , ela convertida para um valor de ativao ou simplesmente ativao, para a unidade processadora ( PE). Podemos escrever este valor de ativao como: ai ( t ) = Fi ( ai ( t 1), neti ( t )) Note que a ativao uma funo explicita da entrada lquida, ele pode depender de um valor prvio da ativao a ( t 1) 2 . Incluindo esta dependncia na definio para generalidade. Na maioria dos casos a ativao e entrada lquida so idnticas e os termos so freqentemente intercambiveis. Uma vez calculada a ativao da PE, podemos determinar o valor de sua sada aplicando uma funo de sada: Oi = f i (ai ) Considerando que, usualmente, ai = neti , esta funo normalmente escrita como : Oi = f i (neti ) Na figura dada a seguir mostrado um modelo da unidade de processamento um componente bsico de uma rede neural, onde a regra de propagao utilizada a regra padro soma dos pesos.
02/05/02 23

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

5.0 - Notao e Terminologia Por todos anos de pesquisa de diferentes disciplinas tem chegado a um acordo com um vasto nmero de termos aplicado no campo de rede neural. Nossos cientistas do ponto de vista de computador habilita subconjunto de terminologia que menos inspirado biologicamente. 5.1- Notao - Usamos a seguinte notao em nossa Frmula Note que nem todo smbolo tem significado completo para todas redes e que em alguns casos sub ndice ou sobre ndices podem ser abandonados ou adicionados. Exemplos de notao so apresentados a seguir: i (,j,k,...) a unidade; x p p-simo vetor padro; x ip i-simo elemento do p-simo vetor padro de entrada; i p entrada para um conjunto de neurnio quando vetor padro p apresentado rede. i ip entrada lquida do i-simo neurnio devido ao vetor padro x p { p} o p sada da rede quando o vetor padro x p {p } apresentado entrada da rede; o ip sada do i-simo elemento da rede quando o vetor padro x p { p } apresentado entrada da rede.
02/05/02 24

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

d p sada desejada quando o vetor padro x p {p} apresentado entrada da rede; d ip sada desejada do i-simo elemento da rede quando vetor padro x p {p} apresentado entrada da rede; a p valores de ativao da rede quando vetor padro x p {p} apresentado entrada da rede; a ip valor da ativao do i- simo elemento da rede quando o vetor padro x p {p} apresentado entrada da rede; w matriz peso de conexes; w i peso da conexo que alimenta a unidade i; wij peso da conexo da unidade j at a unidade i; conjunto das funes ativao. i funo ativao associada unidade i; ij ( ij) taxa de aprendizado associado ao peso wij; i influncia para unidade i; E p o erro na sada da rede quando o vetor padro x p {p} apresentado entrada da rede;

5.2 - Terminologia Sada versus ativao de uma unidade - Desde de que no haja necessidade, de consideramos a sada e o valor de ativao de uma unidade como sendo a mesma coisa. Isto , a sada de cada neuron igual a valor de ativao. Note que o smbolo Oi usualmente reservado para sada da rede (isto , uma unidade de sada i). Influncia, off set, limiar () - Todos esses termos referem a uma constante (i.e. independente da entrada da rede) que entrada para uma unidade. Esta entrada externa implementada usualmente como um peso de uma unidade com valor de ativao 1.

6- Parmetros Importantes das Redes Neurais Artificiais - (ANNS) O desempenho da ANN descrito pela figura de mrito, que expressa o nmero de padres lembrados quando padres so aplicados a entrada. Um desempenho de 100% em lembranas significa que para cada sinal de entrada de estmulo a rede treinada produz sempre, o padro de sada desejado. Quando planejamos uma Rede Neural Artificial (ANN). estaremos preocupados com o seguinte: 0102A topologia da rede O nmero de camada da rede
25

02/05/02

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

030405060708091011121314151617-

O nmero de neurnio ou n por camada O algoritmo de aprendizado a ser adotado (somente no caso de treinamento supervisionado) O nmero de iteraes por padres durante treinamento. O nmero de clculo por iteraes Velocidade para lembrar um padro Desempenho da rede Plasticidade da Rede-(isto , o nmero de falta de neurnio e o grau de funcionalidade da rede). Capacidade da rede, ou o mximo de sinais padres que a rede pode lembrar. Grau de adaptabilidade da rede (isto capacidade da rede auto-adaptar aps o treinamento) Bias Terms - (ocasionalmente ajusta algum valor fixado apriori em 1) Threshold Terms (ocasionalmente ajusta algum valor fixado apriori em 0 ou 1) Limite do peso sinptico (para melhorar o desempenho e imunidade a rudo, o limite ser determinado baseado sobre a implementao real da rede). Escolha da funo no linear e a faixa de operao da rede. Imunidade da rede a rudo-(isto , o grau de deteriorao de um sinal de estmulo de entrada ou o grau de perda de sinal. (isto , sinal parcial) que produz a sada padro desejada). Valores de regime ou valores finais do peso sinpticos (isto o programa da rede).

7 - CONEXO ENTRE UNIDADES A caracterstica essencial das Redes Neurais Artificiais o alto grau de conectividade entre suas clulas. A conexo entre os neurnios j e i (observe a ordem j i) ser representada pelo peso wij. Assim, em redes pouco conectadas, a matriz,

[W] = [ wij]
Ser esparsa, com boa parte dos seus elementos nulos e cheia no caso contrrio. Para termos uma idia da estrutura do crebro humano, existem cerca de 1011 neurnios e estima-se que cada um se conecte a 1000 ou 10000 outros. Estes nmeros indicam que a matriz [W] do crebro humano bastante esparsa. importante observar que cada peso pode ser positivo ou negativo, dando a caracterstica da conexo: excitadora ou inibidora, respectivamente. Esta caracterstica ser explorada em diversas arquiteturas de redes para a obteno de efeitos especficos.

02/05/02

26

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Esta nota de aula foi elaborada tomando-se como base as seguintes referncias bibliogrficas: Referncias Bibliogrficas: 1. BEN J. A Krse and PATRICK P. van der Smagt, An Introduction to Neural Networks, University of Amsterdam, Fifth Edition, January 1993, p 129; 2. KOVCS Z. L., Redes Neurais Artificiais Fundamentos e Aplicaes, Editora Collegium Cognitio, 2 Edio, So Paulo, 1996, p 174; 3. KARTALOPOULOS S. V. , Understanding Neural Networks and Fuzzy Logic Basic Concepts and Applications, IEEE PRESS, 1 Edition, New York, 1996, p 205; 4. FREEMAN, J. A and SKAPURA D. M. , Neural Networks Algorithms, Applications, and Progaming Techniques, USA Addison Wesley Publishing Company, 1991, p401. Nota : As figuras e algumas expresses foram transcritas das referncias citadas anteriormente. Endereos para pesquisa em IA A seguir apresentamos alguns endereos interessantes, para obterem informaes sobre desenvolvimento da IA, redes neurais, lgica fuzzy, para vocs tomarem os primeiros contactos com esta rea interdisciplinar de pesquisa e do conhecimento: http://www.di.ufpe.br/~compint http://forum.stanford.edu/ http://www.dsc.utpb.br/antiga/verso1.0/grupo_ia/gia.html http://yabae.cptec.inpe.br http://www.student.nada.kth.se/ http://mitpress.mit.edu/books http://www.din.u em.br/ia /neurais

02/05/02

27

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

ALGORITMOS DE APRENDIZADO Conforme falado anteriormente necessrio ajustar os pesos para obter a sada desejada ydl quando na entrada do discriminador linear apresentado o vetor Xdl pertencente ao conjunto de exemplos de treinamento . Um dos primeiros algoritmos utilizados para ajustar os pesos de um discriminador linear foi baseado no Princpio de Aprendizado de Hebb, no qual as intensidades das conexes sinpticas so alteradas em funo dos erros detectados localmente. Este princpio pode ser traduzido conforme expresso dada a seguir: Princpio de Aprendizado de Hebb

i(t+1) = i(t) + i
onde: i = xi(t)

taxa de aprendizado cujo valor est contido no intervalo (0 , 1]. Lei de Aprendizado do perceptron Rosenblatt empregou o princpio de aprendizado de Hebb para alterar os peso sinpticos do discriminador linear Algoritmo de aprendizado do perceptron O procedimento de aprendizado pode ser escrito segundo o algoritmo que utilizado para implementar uma rede perceptron num computador codificando cada passo em qualquer linguagem de programao. Algoritmo 1. Inicialize os pesos e os limiares Define wi(t), ( 0 i n ), como o peso da entrada i no tempo t, e limiar. Ajuste wi(t) em pequenos valores randnicos inicializando os pesos e o limiar; 2. Apresente a entrada e a sada desejada Apresente as entradas X0, X1, X2, ........, XN e as sadas desejadas ydl(t) l= 0, 1....,N; 3. Calcule a sada atual yl(t) = sgn[ wi(t)xi(t) - i ] i = 1, 2,.......n ou yl(t) = sgn[ wi(t)xi(t) ] i = 1,................,n+1 ou i =0,................, n
02/05/02 28

= ( ydl yl ) erro entre a sada desejada e a sada atual ydl sada desejada yl sada atual

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Onde: sgn a funo sinal Na segunda expresso wo incorporado ao vetor peso de dimenso n associado s entradas do discriminador e, a entrada xo associada ao limiar incorporada ao vetor X de dimenso n que atua como entrada do discriminador linear. Com isto tanto o vetor peso W e o vetor X de entrada passam a ter dimenso n+1, conforme indicado pelo contador do sinal de somatrio. 4. Ajuste os pesos

Se sada calculada yl igual sada desejada ento faa: i ( t+1) = i( t) (componente do vetor peso) W ( t+1) = W( t) ( vetor peso)
Volte ao passo 2 Se a sada calculada 0 e a sada desejada deveria ser 1 (classe 1) faa:

i ( t+1) = i( t) + xi(t) ( componente do vetor peso) W ( t+1) = W( t) + X(t) ( vetor peso)


Volte ao passo 2 Se a sada calculada 1 e a sada deveria ser 0 (classe 2) faa:

i ( t+1) = i( t) + xi(t) ( componente do vetor peso); W ( t+1) = W( t) + X(t) ( vetor peso)


Volte ao passo 2 Note que os pesos no so corrigidos se a rede toma a deciso correta. Tambm os pesos no so corrigidos para a linha de entrada que no contribui para a resposta correta, uma vez que o peso ajustado pelo valor da entrada xi(t) que seria zero. Este o algoritmo bsico do

perceptron. Todavia, vrias modificaes tm sido sugeridas para este algoritmo bsico. A primeira modificao foi introduo de um fator de multiplicao menor do que um no termo correspondente ao ajuste do peso i . Isto faz com que a rede ajuste os pesos em pequenos passos na direo da soluo.
Esta alterao acarreta mudana no quarto passo do algoritmo bsico, conforme apresentado a seguir: 5. Ajuste os pesos 6.

Se sada calculada yl igual sada desejada ento faa: i ( t+1) = i( t) (componente do vetor peso)
Se a sada 0 e deveria ser 1 (classe 1) faa: i ( t+1) = i( t) + xi(t) ( componente do vetor peso);
02/05/02 29

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Se a sada 1 e deveria ser 0 (classe 2) faa:

i ( t+1) = i( t) + xi(t) ( componente do vetor peso);


Onde: ( 0, 1 ], isto : 0 < 1 um ganho positivo que controla o ajuste do peso, recebe o nome na literatura de taxa de aprendizado. Um outro algoritmo de mesma natureza foi sugerido por Widrow e Hoff. Eles sugeriram uma regra de aprendizado conhecida como regra delta, que calcula a diferena entre a sada atual e a sada desejada, denominado erro (ydl(t) yl(t)). O ajuste dos pesos conduzido em funo do erro = ydl(t) yl(t) Se a sada desejada ydl(t) = 1 e a sada atual yl(t) = 0 = +1, desta maneira os pesos so aumentados no processo de treinamento. Se a sada desejada ydl(t)= 0 e a sada atual yl(t) = 1 = -1, desta maneira os pesos so diminudos processo de treinamento. Note que os pesos no so modificados se = ydl(t) yl(t) = 0.

O algoritmo de aprendizado basicamente o mesmo algoritmo bsico do perceptron, com modificao no passo 4, conforme apresentado a seguir:
Ajuste dos pesos

wi( t+1) = wi( t) - xi(t); Onde: xi(t) = i ajuste dos pesos e, ser visto na prxima seo o algoritmo da regra
delta de maneira mais completa.

A regra apresentada acima para ajuste dos pesos denominada regra delta de Widrow-Hoff. Unidades de neurnios utilizando esta regra modificada foi chamado de ADALINE (Adaptive Linear Neurons), por Widrow, que tambm foram denominados MADALINE, quando muitos ADALINE so conectados.

02/05/02

30

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Regra delta Um importante algoritmo de aprendizado apresentado por Widrow e Hoff na dcada 60 na Universidade de Stanford, como Least Mean Square ( LMS), posteriormente conhecido como Regra Delta, tendo sido aplicado mais freqentemente a unidade de processamento com sada ou melhor com funo de ativao linear na sada. Aps estas consideraes iniciais vamos considerar a regra delta para condio de sada linear para a situao ilustrada na figura dada a seguir:

Da figura apresentada anteriormente a funo erro k, como funo de todos pesos wik dada por: k = (Tk Ik) = (ykd yk) = (ykd net k) onde: k indica genericamente a qual neurnio estamos nos referindo (isto k-simo
neurnio)

netk = wik.xi i= 0, 1,.........., n onde Tk ( ykd) a sada desejada e Ik o netk ou soma lquida do produto wik.xi e o quadrado do erro dado por: k = (Tk Ik ) = ( Tk - wik.xi)

02/05/02

31

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

O gradiente do erro quadrtico corresponde ao conjunto das derivadas parciais do erro k com relao a cada peso wi : k (wik)/wik = -2 ( Tk wik.xi) xi O sinal somao no est aqui representado porque estamos considerando cada isimo componente do vetor peso. O problema bsico consiste em encontrar o vetor W* que minimize o vetor erro quadrtico k. Isto obtido atravs de (w)/ w = 0 Tecnicamente isto correto, mas na realidade o erro mnimo quadrtico nunca igual a zero devido, as no linearidades envolvidas, rudos, e dados imperfeitos. A presena do rudo, com uma funo de ativao sigmoidal resultar num vetor erro mnimo quadrtico no zero designado por min.

Soluo analtica notao vetorial do erro mdio quadrtico


Vamos considerar o valor mdio do erro quadrtico para um dado padro expresso por:

k(W) = E ((ekp)) = 1/L ( ( ekp) ) k= 1,.......L, para todo o conjunto de treinamento


onde: (ekp) = ( Tkp Ikp ) o erro quadrtico associado ao k-simo neurnio quando a entrada est submetida ao par de padres de treinamento (Xp, Tp); p =1, 2, .............P exemplos ( padres)de treinamento

kp(W) = E ((ek)) = E ((Tkp Ik)) = E((Tkp) + (Ik p) - 2 (TkpIkp)) onde: Ikp = WkXp; a dimenso do vetor transposto peso Wk (1xn) e do vetor Xp (nx1), o resultado do produto escalar WkXp um escalar (1x1)
Obs.: os caracteres em negrito representam notao vetorial

kp(W) = E ((ekp)) = ((Tkp) + (WkXp ) - 2 (Tkp WkXp)) kp(W)= E ((ekp)) = ((Tkp) + (WkXp WkXp ) - 2 (Tk WkXp)) kp(W)= E ((ekp)) =((Tkp) + Wk (Xp Xp) Wk - 2 (Tk pXp) Wk)
Chamando R = (Xp Xp ) uma matriz de correlao de Xp de dimenso (nxn), a condio para que R seja inversvel de que ela tenha pelo menos n ( onde n a
02/05/02 32

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

dimenso do vetor X ) vetores colunas linearmente independentes, com isto a matriz ser no singular e conduzir a soluo nica, P = (Tkp Xp) um vetor de dimenso (nx1). Onde: Tkp a sada desejada do k-simo neurnio da rede, portanto um escalar

kp(W) = E ((ekp)) =((Tkp) + Wk R Wk 2PWk)


O problema consiste em encontrar o vetor Wk * que minimize o valor do erro mdio quadrtico, fazendo: (E)/ Wi = (E) = [(E)/ W0, (E)/ W1,..........., (E)/ Wn] = 0 i = 0,1,2 .......n Considerando a expresso de kp(W) dada anteriormente resulta: kp (W)/ Wi = 2 R - 2 O valor de Wk * que minimiza o erro obtido por:

P=0

Wk *= R P A correo do vetor peso Wk feita no sentido de encontrar o valor do vetor peso que minimize a funo panorama do erro (W) ou seja E(e (w)) isto obtido atravs da expresso: W (t+1) k = W (t) k - (W) Onde: W(t+1)k: o novo valor do vetor peso W (t)k: o valor antigo do vetor peso : a taxa de aprendizado (W)k: o gradiente da funo panorama do erro quadrtico ((W)k = -2ek(t). Xp).

p = 1, 2, ...........,P padres
W(t+1)k = W (t)k +2 ek(t).Xp

Na figura apresentada a seguir est ilustrado o processo de ajuste do peso no sentido de obter o mnimo para a funo panorama do erro

02/05/02

33

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Preprocessamento do vetor de entrada Xp e o vetor peso W


Com o objetivo de reduzir problema de instabilidade numrica no processo de ajuste dos pesos no processo de treinamento, aconselhvel normalizar os vetores de entrada, e os vetores pesos, com isto reduzindo a relao entre os valores mximos e mnimo dos autos-valores da matriz peso. Processo de normalizao:

A normalizao das componentes do vetor de entrada feita, dividindo xi

por X, assim tem-se:

wi = [2 X] .xi / X = .xi / X, neste caso a taxa de aprendizado passa a ser dada por: = [ 2 X] O mesmo procedimento feito para normalizar o vetor peso W

02/05/02

34

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Exemplo de aplicao para o cculo do gradiente Na figura dada a seguir ilustrado uma situao em que se tem: k = [Tk w1x1 w2x2] e a condio de mnimo de obtida fazendo : k(w)/ wi = 0 k(w)/ w1 = -2 [Tk wk1x1-wk2x2]x1 =0 k(w)/ w2 = -2 [Tk wk1x1-wk2x2]x2 =0

Na figura apresentada a seguir ilustrada as consideraes apresentadas anteriormente quanto ao ajuste do erro no valor zero. Nesta ilustrao esta sendo mostrado o clculo de w1k.
Na condio de que x1 e x2 no so zero, a quantidade dentro do colchete deve ser zero; Tk w1kx1-w2kx2 = 0 Resulta: W1k = (Tk w2kx2) / x1 W2k = (Tk w1kx1) / x2 A substituio dos valores de w1k e w2k obtidos anteriormente na expresso de k resulta k = 0

02/05/02

35

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

A regra delta de Widrow Hoff, prov a mudana em cada componente do vetor peso proporcional ao negativo do gradiente de k(wik): Wik = - k(wi)/ wi = 2 (T I) xi

= 2 kxi
onde ou () uma constante de proporcionalidade (taxa de aprendizado). O sinal negativo introduzido por causa do processo de minimizao. A figura dada a seguir ilustra o processo de ajuste dos pesos.

Algoritmo do procedimento de treinamento (ajuste dos pesos)

(Algoritmo de implementao da Regra Delta de Widrow Hoff)


Passos 1. 2. Ao Inicializar W(0) aleatoriamente; W(0) pode ter valores positivos e negativos; Escolher para cada Xkp uma sada desejada correspondem mesma sada desejada); dkp ((Tkp, ydkp)

3. Escolha do critrio de parada: (a) tolerncia kp (> 0 um certo valor positivo pequeno escolhido) ou b) adotar um certo nmero de iteraes, neste procedimento de parada a tolerncia do erro pode no ser alcanada. 4. Aplicar Xkp e calcular Ikp; (ykp, akp ou netkp representam a sada linear do k-simo neurnio); todos

Ikp = wikxikp, i = 0,1 .........n 5. Calcular o erro quadrtico: kp = (Tkp Ikp) Verifique se o vetor erro satisfaz: Se kp = (Tkp Ikp) , se esta condio satisfeita pare o processo, caso contrrio continue os clculos; ou
02/05/02 36

6.

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Se nmero de iteraes igual ao valor adotado, pare o processo, caso contrrio continue os clculos; 7. Calcular derivada do vetor erro quadrtico (gradiente do erro quadrtico): ( kp(W)) = [( Tkp W k Xkp)]/ W ( kp(W)) = -2 ( Tkp - W k Xkp) Xkp ( kp(W)) = - 2 k Xkp; onde: Wk o transposto de Wk; Xkp vetor padro de entrada para rede ou no caso considerado para o k -simo neurnio; Ikp corresponde ao netkp ou ao ykp ou akp, quando aplicado o vetor padro de entrada. (p = 1, 2, .........P; est associado a cada exemplo da coleo de vetores para o treinamento da rede) 8. Calcule a correo do peso Wk (t + 1) por intermdio de: Wk (t + 1) = Wk (t) + 2 kp(t) Xkp, e volte ao passo 4; onde: (t +1) a prxima iterao e (t) a iterao anterior

Observaes: 1. A taxa de aprendizado () grande pode levar a no convergncia do erro e s vezes leva a oscilao; 2. Uma vez treinada a rede para cada par de vetores de treinamento (Xkp, Tkp). Onde p = 1, 2,............P, padres de treinamento da rede, repetir o treinamento uma outra vez, tomando os elementos do conjunto de treinamento aleatoriamente.
Exemplo de aplicao sobre a implementao do algoritmo

Exemplo sobre o algoritmo de correo do peso W, segundo a regra Delta de Widrow. Regra Delta para correo dos pesos dada por: W (t+1) = W (t) - Grad [(W (t))] ou W(t+1) = W(t) - [ (W(t))] /W(t) Onde : o tamanho do passo no sentido oposto do vetor gradiente (Grad (W(t)))
02/05/02 37

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Considere a funo panorama do erro (w(t)) dada por:

(W(t)) = W
Clculo do gradiente: Grad(W (t)) = (W (t))/w(t) = 2 W(t) Substituindo na expresso de W(t+1), resulta: W(t+1) = W (t) - . 2.W(t) Tomando W(t) = 1 e a taxa de aprendizado no intervalo 0 < < 1 resulta, W(t+1) = 1 - . 2. 1; Lembrando que a taxa de aprendizado (ou ) deve estar no intervalo (0, 1] A ttulo de exemplo vamos calcular W(t+1) adotando a taxa de aprendizado) igual a 0.3 ( = 0.3) Desenvolvimento do clculo W(t+1): t+1 = 2 W(2) = 1 0.3. 2. 1 = 1 0.6 .1 = 0.4 t+1 = 3 W(3) = 0.4 0.3. 2. 0.4 = 0.4 0.6 .0.4 = 0.16 t+1 = 4 W(4) = 0.16 0.3. 2. 0.16 = 0.16 0.6 .0.16 = 0.064 t+1 = 5 W(5) = 0.064 0.3. 2. 0.064 = 0.064 0.6 .0.064 = 0.0256 t+1 = 6 W(6) = 0.0.0256 0.3. 2. 0.0256 = 0.0256 0.6 .0.0256 = 0.01024 t+1 = 7 W(7) = 0.01024 0.3. 2. 0.01024 = 0.01024 0.6 .0.01024= 0.004 Repetindo os procedimentos anteriores para taxa de aprendizado = 0.45 , 0.9 obtemos os resultados dados na tabela a seguir:
t+1 = Nmero de Iteraes 0.3 W(k+1) 0.45 W(k+1) 0.9 W(k+1) 0.7 1 1 1 1 2 0.4 0.1 -0.8 3 0.16 0.01 0.64 4 0.064 0.001 -0.512 5 0.0256 0.0001 0.4096 6 0.0102 .00001 -0.3276 7 0.004 0.000001 0.262208

Anlise Grfica da influncia da taxa no processo de convergncia no clculo de:

W(t+1) = W(t) - Grad.E(W(t))

02/05/02

38

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

02/05/02

39

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Algoritmo de treinamento backpropagation Introduo O algoritmo backpropagation um mtodo sistemtico para treinamento de rede neural artificial multicamadas perceptron MLP. A elucidao deste algoritmo de treinamento por Rumelhart, Hinton, e Williams em 1986 foi o passo chave no projeto de redes neurais para muitas aplicaes em problemas do mundo real. Hoje em dia estimado que 80% das aplicaes das redes neurais utilizam este algoritmo. Apesar de suas limitaes, o algoritmo backpropagation tem expandido a faixa de problemas para os quais as redes neurais artificiais podem ser aplicadas, isto se deve a sua forte fundamentao matemtica. O algoritmo backpropagation ou da retropropagao do erro, para redes neurais de mltiplas camadas foi originalmente desenvolvido para redes de neurnios com funo ativao monotnica com derivadas contnuas. Na realidade o algoritmo backpropagation baseado na regra Delta de WidrowHoff, desenvolvida para ajuste dos pesos sinpticos na entrada de cada neurnio (elementos de processamento), tendo por referncia o erro existente entre a sada real e a sada desejada do neurnio, quando um dado vetor apresentado sua entrada. A correo do peso feita utilizando-se mtodo de otimizao LMS (mnimos mdios quadrtico) com o objetivo de encontrar um valor para o peso que minimize o erro na sada da rede. Neste procedimento toma-se a derivada do erro em relao ao peso conforme j apresentado na regra delta anteriormente. Porm considerada a existncia de uma funo de ativao no linear na sada do neurnio e no mais uma funo linear. Alguns autores chamam este algoritmo de regra delta generalizada aplicada a uma rede neural de mltiplas camadas. Basicamente ele consiste em corrigir os pesos nas entradas das camadas intermedirias (camadas ocultas) a partir do erro em cada neurnio na camada de sada. Isto os pesos vo sendo corrigidos a partir da camada de sada para a camada de entrada. O interessante deste algoritmo que no se conhece qual deve ser sada dos neurnios das camadas intermedirias, somente se tem conhecimento do vetor de entrada e qual deve ser a sada a ele associada na camada de sada da rede. A partir do erro entre a sada desejada e a sada real na camada de sada de rede ajusta-se os pesos sinpticos das camadas intermedirias. A seguir ser apresentado o desenvolvimento matemtico no qual se apia o algoritmo backpropagation. Consideraremos uma rede neural com a topologia ilustrada na figura apresentada a seguir.

02/05/02

40

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Clculo do ajuste dos pesos O processo de ajuste dos pesos utilizando o algoritmo backpropagation ser descrito a partir dos pesos associados a um determinado neurnio da camada de sada da rede (neurnio q na camada k). Para tal consideraremos parte da rede apresentada na figura anterior, e que est aqui representada na figura dada a seguir.

02/05/02

41

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Nesta figura qk sada do neurnio q da camada k que ser subtrada do valor desejado Tq ( yqd) produzindo o sinal do erro quadrtico:

= q = [ Tq - ( I)qk ]
Conforme j vimos anteriormente na regra Delta, a mudana no peso associado ao qsimo neurnio da camada k dado por: wpq,k = - pq ( q/ wpqk) Onde: pq a constante de proporcionalidade chamada de taxa de aprendizado; p est associado ao p-simo neurnio da camada j (camada intermediria); q est associado ao q-simo neurnio da camada k (camada de sada);

o erro quadrtico associado ao q-simo neurnio da camada de sada.

Para avaliar a derivada, usamos a regra de diferenciao em cadeia: (q / wpq,k) = (q / (I)q,k)( (I)q,k / Iq,k)( Iq,k / wpq,k) (A) Onde: (q / (I)qk) = - 2 [ Tqk - ( I)qk] ((I)qk / Iqk) = (I)qk [1 - (I)qk] (B) (C)

Conforme j visto anteriormente Iqk a soma lquida das entradas ponderadas no neurnio q da camada k, isto : Iqk = wpqk .(I)pj Onde: j a camada anterior e p corresponde a qualquer neurnio da camada j 2,..........n)

( p = 1,

Tomando a derivada parcial com relao ao peso wpqk resulta: Obs: o ltimo ndice associado a cada peso refere-se a camada na qual o neurnio est. wpqk ( refere-se ao peso que conecta o neurnio p ao neurnio q da camada k ) Iqk / wpqk = (I)pj (D)

02/05/02

42

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Uma vez que estamos nos referindo a um nico peso, somente um termo da soma da equao de Iqk mantido. A substituio de (B), (C) e (D) na equao (A) resulta: (q / wpqk) = -2 [Tqk - (I)qk] (I)qk [1 - (I)qk] (I)pj = - pqk (I)pj Onde: (E)

pqk definido como: pqk = 2 [Tqk - (I)qk] (I)qk [1 - (I)qk]


= 2 qk ((I)qk / Iqk) Lembrando que wpqk calculado por meio de: wpqk = - pq ( q/ wpqk) Substituindo (q / wpqk) pelo resultado obtido na equao (E) resulta: = pq pqk (I)p,j = pq [2 [Tqk - (I)qk] (I)qk [1 - (I)qk] (I)pj] (F)

O novo valor para o peso na iterao (n + 1) : w (n+1) pqk = w (n) + wpqk w(n+1)pqk = w( n ) + pq [2[Tqk - ( I)qk](I)qk[1-(I)qk](I)pj] (G)

Observao: Um processo idntico desenvolvido para cada neurnio da camada k de sada, para ajustar os valores dos pesos a ele associado; O termo erro pqk usado para ajustar os pesos dos neurnios da camada de sada, usando as equaes (F) e (G); O ltimo ndice associado a Tqk e a (I)qk corresponde camada. Ajuste dos pesos da camada intermediria A equao utilizada para o ajuste dos pesos das camadas intermedirias a mesma utilizada para o ajuste dos pesos da camada de sada, exceto que o termo erro

hpj

deve ser gerado sem a sada desejada. Ns devemos calcular hpj, para cada neurnio na camada intermediria a partir dos erros em cada neurnio na camada de sada a ele conectado. A seguir apresentada uma figura para ilustrar como os erros so retro - propagados para produzir a mudana no peso whpj na camada intermediria j .
43

02/05/02

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

O procedimento para calcular o termo erro

hpj

substancialmente o mesmo que foi

utilizado para calcular pqk. Como j mencionado, partiremos calculando a derivada do erro quadrtico com relao ao peso da camada intermediria a ser ajustado. Assim de maneira semelhante quela utilizada para ajustar o peso da camada de sada k, tem-se: whpj = - p j ( / whpj) = - p j ( q/ whpj) q =1 ......r Onde:

significa erro quadrtico total agora definido por: = q


q =1 ......r = [Tq - (I)qk], q =1 .......r

uma vez que vrias sadas com erros podem estar envolvidas.
02/05/02 44

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

A taxa de aprendizado hp pode ser feita igual a pq, mas, todavia no necessrio, podendo assumir valores diferentes. Aplicando novamente a regra em cadeia de diferenciao em (/ whpj) podemos escrever: ( / whpj) = {(q /(I)qk)( (I)qk / Iqk)(Iqk / (I) pj)} q =1 ......r ((I)pj / Ipj)( Ipj / whpj) Cada termo da equao anterior pode ser determinado como: (q / (I)qk) = - 2[Tqk - (I)qk] = - 2 q ((I)qk / Iqk) = (I)qk [1 - (I)qk] Lembrando que: Iqk = wpqk.(I)pj p = 1, 2, ...............n Tomando a derivada parcial com relao (I)pj resulta: ( Iqk / (I) pj) = wpqk A soma sobre p desaparece no resultado anterior porque somente uma conexo est envolvida. O termo ((I)pj / Ipj) = (I)pj [ 1 - (I)pj] A partir da figura apresentada anteriormente tem-se: Ipj = whpj.xh h = 1, 2, ...............m Tomando-se a derivada parcial de Ipj em relao a whpj resulta: ( Ipj / whpj) = xh Novamente a soma sobre h na equao de Ipj desaparece porque somente uma conexo est envolvida. Considerando as expresses desenvolvidas para cada termo da expresso ( / whpj), e substituindo-os nela, obtm-se: ( / whpj) = {(-2) [Tq - (I)qk] ((I)qk [1 - (I)qk]) wpqk}
02/05/02 45

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

q = 1 .............r ((I)pj [1 - (I)pj]) xh = - {pqk. wpqk} ((I)pj / Ipj) xh q = 1 ........r Definindo-se:

hpj = pqk. wpqk ((I)pj / Ipj)


Resulta: ( / whpj) = - hpj xh q =1 .......r Lembrando da expresso utilizada para o clculo na mudana dos pesos da camada de sada podemos atravs de expresso anloga obter a mudana dos pesos da camada intermediria como whpj = - hp ( / whpj). Nota-se que tal ajuste proporcional ao negativo da taxa de mudana do erro quadrtico com respeito aquele peso, ento a substituio de ( / whpj) na expresso de whpj resulta: whpj = hp xh hpj q = 1.......r Assim o novo valor do peso da camada intermediria na iterao (n+ 1) dada por: w(n+1)hpj = whpj(n) + whpj = whpj (n) + hp xh hpj q = 1.......r = whpj(n) + hp xh {-2 [Tqk - (I)qk] (I)qk [ 1 - (I)qk] q= 1.....r wpqk} (I)pj [ 1 - (I)pj] Se existe mais que uma camada intermediria de neurnio, esse processo move atravs da rede, camada por camada at a entrada, ajustando os pesos das camadas. Quando terminado o ajuste dos pesos, um novo par de treinamento aplicado entrada. O processo parte novamente. Ele continua at que um erro aceitvel seja alcanado para cada padro. Nesta condio diz-se que a rede est treinada para cada padro de entrada.

02/05/02

46

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Resumo Algoritmo Backpropagation Consideraes Iniciais Seja o conjunto de treinamento (X1, d1).............. (Xl, dl); L Xi di nmero de conjunto a ser treinado conjunto de entradas (i = 1,........, l) sadas desejadas (i = 1,........, l)

Anlise do Algoritmo backpropagation Para o l -simo elemento do conjunto de treinamento temos: A sada linear da p-sima unidade da camada escondida j (camada intermediria ) : net l p = whp. Xlh A sada correspondente no linear : i l p = fpj (net l p) A sada linear da q-sima unidade da camada de sada : net ql = wqp. i lqp ( p = 0, ........, m unidades da camada intermediria anterior a camada de sada) l corresponde a um dado padro de entrada, . A sada no linear da q-sima unidade da camada de sada ; Olq = fq (net lq) Atualizao dos pesos da camada de sada Wqp (q = 1,......, v sadas; p = 0,........m entradas) Seja o erro: (h = 0,......., n) com Xl0 = 1

lq = (d lq - O lq)
02/05/02 47

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

O erro quadrtico incluindo todas as sadas : Elq = = (1/ 2) (lq) q = 1,... v O gradiente do erro quadrtico : = / wqp = - (d lq - O lq)(fq )/( net lqp)(net lqp/ wqp) onde:

lq =(d lq - O lq)
(fq)/( net lqp) = fq (net lq) (net lqp/ wqp)= i l pj

Lembrando que: Wqp (t+1) = Wqp (t) - qp ou Wqp (t+1) = Wqp(t) + qp lqp i l p onde: lqp = lq fq (net lq) = (d lq - O lq) fq (net lq ) Funes de ativao mais usadas: fq (net lq) = net lq, derivada fq (net lq) = 1. fq (net lq ) = ( 1 / ( 1 + e ) derivada fq (net lq ) = Olq ( 1 Olq ) a = net lq fq(net lq) = tanh(net lq)=(1- e )/(1+ e )=derivada fq(net lq ) = (1 Olq ) Atualizao dos pesos na camada intermediria Para a camada intermediria j fazer: fq fp

olq ilp w hpj, (p = 1,........, m sadas)


02/05/02

, (h = 1,..........n entradas)
48

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Elp = (1/2) (lq) = (1/2)( (dlq - fq wqp. ilp)) com Xl0 = 1. p = 0,.....m onde:

lq = ( dlq Olq)

Olq = fq (net lq) = fq wqp. Ilp Whpj (t+1) = Whpj (t) + hplp. xlh onde: lp = f h (net l h) lq wqp. ; (q = 1,...., v) Algoritmo ( implementao) Seja o conjunto de treinamento ( X l, d l ). Passos (i) (ii) (iii) (iv) (v) (vi) Descrio Entrar com Xl = (xl1,..........xln) e dl tomar xl0 = 1 Calcular a sada linear da camada intermediria net l p = whp. ;( p = 1,...., m) Calcular a sada da camada escondida i l p = fpj (net l p) Calcular a sada linear da camada de sada net l q = wqp. i lq p = 1,....,m Calcular a sada da rede Olq = fq (net lq) = fq wqp. Ilp q = 1,.....,v Calcular o erro na camada de sada Calculando-se o gradiente (Elj) chega-se:

lqp
(vii )

= (d lq - O lq) fq (net lq); (q = 1,...,v)

Calcular o erro na camada intermediria ; ( p = 0,...., m) q = 0,.........,v Atualizao dos pesos da camada de sada Wqp(t+1) = Wqp(t) + qp lqp i l p p = 0,....,m q = 0,.......v

lhp = f h (net l h) lq wqp.

(viii)

(es)
02/05/02

Atualizao dos pesos da camada intermediria Whp(t+1) = Whp(t) + hp lqp i l p


49

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

(x)

p = 0,....,m q = 0,.......v Verificar tolerncia para se erro Elq = = (1/ 2) (lq) < tolerncia q = 1,... v ou se o nmero de iteraes igual ao valor estipulado pare;

= (1/ 2) (lq ) > tolerncia q = 1,... v ou se o nmero de iteraes menor que valor estipulado volte ao passo (ii)
se erro (xi ) Entrar com novo par de padres ( Xl, dl ), repetir os passos de (ii) a ( x), at percorrer todo conjunto de padres.

02/05/02

50

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Fluxograma do algoritmo Exemplo: Vamos considerar a rede neural feedforward mltipla camada MLP ilustrada na figura dada a seguir.

02/05/02

51

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Condies impostas:

1. Vamos admitir que todos neurnios tem a mesma funo logstica sigmoidal com igual a 1 ( = 1); 2. As entradas dos limiares iguais a +1 e os pesos dos limiares (bias) ajustveis (w1c, w1d, w1e); 3. A taxa de aprendizado constante e a mesma para todos pesos e igual a = 0.5; 4. A sada desejada do neurnio igual a Te = 0.1; 5. Os pesos iniciais so randomizados com os valores indicados.

Vamos partir o processo de treinamento utilizando o algoritmo backpropagation por um ciclo para a entrada apresentada [ 0.4, -0.7 ], (onde indica o transposto do vetor de entrada X), e ajustar os pesos em novos valores, segundo o desenvolvimento apresentado anteriormente.

02/05/02

52

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Procedimento Os ajustes dos pesos entre as camadas j e k so obtidos pela expresso: wpqk = - pq [-2 [Tqk - (I) qk] (I)qk [1 - (I)qk]](I)pj Os ajustes dos pesos entre as camadas i e j so obtidos pela expresso: whpj = - hp [-2([Tqk - (I)qk] (I)qk [1 - (I)qk] q= 1.....r (Wpqk) (I)pj [1 - (I)pj] xh] Desenvolvimento dos ajustes dos pesos 1. Primeiro calcule a soma Ipj associada a cada neurnio da camada intermediria atravs da expresso: Ipj = whpj.xh, para os neurnios da camada intermediria. h = 1, 2, ...............m

Clculo da soma ponderada nos neurnios da camada intermediria


Neurnio C: Ic = 0.4 x 0.1 + (-0.7) x (-0.2) + 1 x (-0.5) Ic = -0.32 Neurnio D: Id = 0.4 x 0.4 + (-0.7) x 0.2 + 1 x (-0.2) Id = - 0.18 Clculo da sada dos neurnios da camada intermediria Neurnio C: (Ic) = (1 + e) (onde a = Ic, a = 1 x 0,32 = - 0,32). (Ic) = 0,42 Neurnio D (Id) = (1 + e) (onde a = Id, a = 1 x 0,18 = - 0,18). (Id) = 0,46 2. Calcule a soma ponderada Iq associada a cada neurnio da camada de sada atravs da expresso: Iqk = wpqk.(I) pj, para os neurnios da camada de sada. p = 1, 2, ...............n
02/05/02 53

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Neurnio E Ie = 0,2 x 0,42 + (-0,5) x 0,46 + (-0,6) x 1 Ie = - 0.75 Observao: Na expresso para o clculo de Ie, os valores 0,42 e 0,46, so respectivamente as sadas (Ic) e (Id) da camada intermediria anterior a camada de sada. Clculo da sada do neurnio da camada de sada (Ie) = (1 + e) (onde a = Ie, a = 1 x 0,75 = - 0,75) (Ie) = 0,32 3. Clculo do erro na sada do neurnio da camada de sada (e) = [ Te - ( Ie) ] (e) = [ 0,1 0,32] (e) = - 0, 22 4. Clculo do ajuste dos pesos entre a camada intermediria e a camada de sada Ajuste do peso que liga o neurnio C ao neurnio E wce = -0,5[-2 [ Te - (Ie)] (Ie)[1 - (Ie)] (Ic)] wce = -0,5[-2 [ 0,1- 0,32] 0,32 [ 1- 0,32] 0,42 ] wce = -0,020 Ajuste do peso que liga o neurnio D ao neurnio E wde = -0,5[-2 [ T - (Ie)] (Ie)[1 - (Ie)] (Id)] wde = -0,5[-2 [0,1- 0,32] 0,32 [1- 0,32] 0,46] wde = - 0,022 5. Clculo do ajuste do peso do limiar do neurnio E da camada de sada w1e = -0,5[-2 [Te - (Ie)] (Ie)[1 - (Ie)]] x 1 w1e = -0,5[-2 [ 0,1 0,32] 0,32[1 0,32]] x 1 w1e = - 0,048 6. Clculo dos ajustes dos pesos entre os neurnios da camada de entrada e a camada intermediria Ajuste do peso que liga o neurnio A ao neurnio C wac = -0,5[-2 [Te - (Ie)] (Ie)[1 - (Ie)]wce (Ic)[1 - (Ic)] xa] wac = -0,5[-2 [0,10,32] 1 x 0,32[10,32] 0,2 x 1 0,42[1 0,42] 0,4] wac = - 0,00093 = -0,001 Ajuste do peso que liga o neurnio A ao neurnio D
02/05/02 54

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

wad = -0,5[-2 [Te - (Ie)] (Ie)[1- (Ie)]wde (Id)[1 - (Id)] xa] wad = -0,5[-2 [0,10,32] 1 x 0,32[10,32](-0,5) x1 0,46[1 0,46] 0,4] wad = 0,00238 = 0,002 Ajuste do peso que liga o neurnio B ao neurnio C wbc = -0,5[-2 [Te - (Ie)] (Ie)[1- (Ie)]wce (Ic)[1 - (Ic)] xb] wbc = -0,5[-2 [0,10,32] 1 x 0,32[10,32] 0,2x1x 0,42[1 0,42](-0,7)] wbc = 0,00163 = 0,002 Ajuste do peso que liga o neurnio B ao neurnio D wbd = -0,5[-2 [Te - (Ie)] (Ie)[1- (Ie)]wde (Id)[1 - (Id)] xb] wbd = -0,5[-2 [0,10,32] 1 x 0,32[10,32](-0,5)x1x 0,46[10,46](-0,7)] wbd = - 0,00142 = - 0,001 7.Clculo do ajuste dos pesos dos limiares dos neurnios e D da camada intermediria Ajuste do peso do limiar do neurnio C w1c= -0,5[-2 [Te - (Ie)] (Ie)[1- (Ie)]wce (Ic)[1 - (Ic)] x 1] w1c = -0,5[-2 [0,10,32] 1x 0,32[10,32] 0,2x1x 0,42[1 0,42] x1] w1c = -0,0023 = - 0,002 Ajuste do peso do limiar do neurnio D w1d= -0,5[-2 [Te - (Ie)] (Ie)[1- (Ie)]wde (Id)[1- (Id)] x1 ] w1d = -0,5[-2 [0,10,32]1x0,32[10,32](-0,5)x1x 0,46[10,46]x 1] w1d = 0.0059 = 0,006 8. Clculo dos novos valores dos pesos associados a cada neurnio Esse clculo feito considerando a expresso: w (n + 1) = w(n) + w(n) onde: n+1 a iterao atual n a iterao anterior Passemos aos clculos dos novos pesos Wce = 0,200 0,020 = 0,180 Wde = - 0,500 - 0,022 = - 0,522 W1e = - 0,600 0,048 = - 0,648
02/05/02 55

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Wac = 0,100 - 0,001 = 0,099 Wad = 0,400 + 0,002 = 0,402 Wbc = -0,200 + 0,002 = - 0,198 Wbd = 0,200 0,001 = 0,199 W1c = -0,500 0,002 = - 0,502 W1d = -0,200 + 0,006 = - 0,194 Este processo repetido at que para o vetor Xi de entrada obtenha a sada desejada Te, isto feito para todo pares de entrada. A ttulo de exerccio reinicie outro ciclo de clculo partindo com os novos pesos, repita o processo at que obtenha um erro.

(e) = [ Te - ( Ie) ]= 0,0001


Anlise de sensibilidade A anlise de sensibilidade tem por objetivo identificar a influncia da variao dos dados de entrada da rede sobre a variao no valor de sada de cada neurnio na camada se sada. Para tal anlise ser considerada a relao apresentada a seguir:

qh = ( yq ) / ( xh )= ( yq)/ ( xh)
onde: ( yq) a variao da sada do q-simo neurnio da camada de sada ( xh) a variao na h-sima entrada da rede na camada de entrada qh sensibilidade da sada com relao entrada Fazendo o desenvolvimento em cadeia de derivada parcial ( yq)/ ( xh), resulta: ( yq)/ ( xh)= [( (netq)) / ( (netq))][( (netq)) / ( (netp))][( (netp))/((netp))][((netp))/ (xh)] onde: [( (netq)) / ( (netq))] = (netq) [1 - (netq)] [( (netq)) / ( (netp))] = wqp ; p =1,...............,m [( (netp))/((netp))] = (netp)[1 - (netp)]
02/05/02 56

(a) (b) (c)

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

[((netp))/ (xh)] = wph Substituindo (a), (b), (c) e (d) na expresso de qh resulta:

(d)

qh = (netq)[1 - (netq)]. [ wqp .(netp)[1 - (netp)]. Wph]


p = 1,.......m [ wqp .(netp)[1 - (netp)]. Wph] = [wq1 .(net1)[1 - (net1)]. W1h + [wq2 .(net2)[1 (net2)]. W2h] + .....................+[ wqm .(netm)[1 - (netp)]. Wph], substituindo na expresso de qh resulta:

qh = (netq)[1 - (netq)]. { [wq1 .(net1)[1 - (net1)]. W1h + [wq2 .(net2)[1 - (net2)].


W2h] + .........+[ wqm .(netm)[1 - (netp)]. Wph]} p 1 W2 2 wmh m Da expresso acima se nota que a sensibilidade varia com o quadrado do expoente da funo de ativao. Portanto se adotarmos um valor elevado para o mesmo podemos acelerar o processo de ajuste dos pesos, mas por outro lado aumenta a sensibilidade aos rudos no sinal de entrada sobre a sada. A escolha do valor de deve ser feita com certo cuidado para evitar a instabilidade na sensibilidade da rede. wqm wq2 wq1 q

xh

W1

yq

02/05/02

57

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Crtica ao Mtodo Backpropagation Embora amplamente usado, o algoritmo Backpropagation, no escapa a crtica. O mtodo de clculo para trs (retopropagao) dos pesos no visto ser plausvel biologicamente. Assim o algoritmo backpropagation no visto por muitos como um processo de aprendizado que emula o mundo biolgico, mas sim um mtodo para projetar uma rede neural com aprendizado supervisionado segundo, um algoritmo que usa um computador digital para ajustar os pesos sinpticos. Quando a rede neural artificial implementada em hardware, ela tem menor plasticidade. A perda de plasticidade est em contraste com a motivao inicial de desenvolvimento da rede neural artificial que emulasse a rede neural do crebro, que so adaptveis (plsticas) o bastante para aprender novos padres. Se mudanas so necessrias, o computador pode calcular novo valor do peso, ajustando-o. Isto significa que a implementao da rede neural depender da capacidade do computador digital. O algoritmo padece de extensivos clculos e desta maneira apresenta baixa velocidade de treinamento. A ineficincia de velocidade deste algoritmo tem estimulado um esforo no sentido de explorar tcnicas que acelere o tempo de aprendizado em pelo menos 02 vezes. Todavia a utilizao de tcnicas para acelerar o algoritmo backpropagation no o torna adequado para aplicaes em tempo real. Tcnicas para melhorar o tempo de treinamento Uma dentre vrias tcnicas que iremos apresentar aqui a CMAC (Cerebelumm Model Articulation Controller), desenvolvida por James Albus num esforo para projetar um controlador que trace a origem da funcionalidade do crebro. O CMAC em muitos aspectos similar ao funcionamento do algoritmo backpropagation. Ambos necessitam de superviso para aprender, eles associam a um dado padro de entrada um padro de sada (ou um padro de resposta para sada). O CMAC usa como algoritmo de aprendizado, o Widrow least mean square (ou regra delta de aprendizado) que utiliza o mtodo do gradiente passo descendente, para calcular o erro mnimo: Wij (K+1) = Wij (K) + (Oi Ti) Onde a taxa de aprendizado com valor entre 0.2 e 0.8. Uma das principais caractersticas do CMAC sua rpida velocidade de aprendizado, comparado com o algoritmo de aprendizado backpropagation. Em adio, as entradas e sadas do CMAC so nmeros binrios (1 ou 0). Deste modo, o CMAC facilmente implementado com relativa rapidez com circuito CMOS de baixa potncia. Muitos pontos precisam ser considerados na implementao da backpropagation: A principal considerao a escolha da arquitetura da rede a qual um dos fatores que influenciam no tempo de treinamento. O tempo necessrio para calcular a derivada do erro e adaptar os pesos sobre um dado vetor exemplo, do conjunto de treinamento proporcional ao tamanho da rede. Em grandes redes, aumentando o nmero de padres de treinamento, causa o aumento do tempo de treinamento. O nmero de ns na camada de entrada e na de sada depende do cdigo de
02/05/02 58

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

representao escolhido para uma aplicao especfica. No existem restries acerca do nmero de camadas ocultas. Contudo no existe nenhuma evidncia de que a rede com maior nmero de camadas ocultas apresenta melhor desempenho. Por outro lado s camadas ocultas podem ter quantos ns que desejar ou que seja requerido. Se o desempenho da rede backpropagation comparado tomando-se por base o tamanho da rede em termos das camadas ocultas, a rede com maior nmero de camada apresenta melhor desempenho, porm com aumento do tempo de treinamento, quando comparado com uma rede de menor nmero de camada. O tempo de treinamento diretamente dependente do tamanho da rede, sendo maior para rede de maior tamanho. Quanto ao nmero de ns por camadas ocultas existe um teorema proposto por Kolmogorov que diz: uma rede neural de trs camadas, com n neurnios na camada de entrada e m neurnios na camada de sada, poder ter 2n+1 neurnios na camada intermediria ou oculta. As redes com essa arquitetura podem ser utilizadas para resolver com sucesso problemas com caractersticas no lineares. A escolha do valor da taxa de aprendizado uma outra considerao a ser observada. Todas unidades de processamento na rede podem usar a mesma taxa de aprendizado ou a taxa pode variar para cada camada. Pode-se manter a mesma taxa sobre todo perodo de treinamento ou ela pode mudar aps um certo perodo. No comeo do perodo de treinamento, a taxa de aprendizado pode assumir grandes valores, com isto aumentando a taxa de convergncia. Aps um certo perodo de tempo a taxa ser reduzida para produzir pequenos ajustes no peso, caso contrrio ela pode criar um comportamento oscilatrio prximo ao valor timo do erro Parlos [1992]. A taxa de aprendizado ajustada em funo do gradiente do erro. Esta dependncia da taxa de aprendizado produz uma vantagem em relao ao algoritmo convencional backpropagation, porque ele permite o ajuste dinmico da taxa resultando numa convergncia forte. A desvantagem do algoritmo quando ele aproxima do valor timo, onde ocorre um comportamento oscilatrio no ajuste do peso. Este algoritmo mais adequado para aplicao em problema analgico do que com problema binrio. O processo de treinamento pode ser terminado quando o erro da rede menor que um valor aceitvel estabelecido no incio do processo de treinamento. Todavia possvel neste processo caminhar para o mnimo local durante o treinamento, em lugar do mnimo global. Com o objetivo de evitar este problema vrios algoritmo modificado tem sido propostos [Dgali 1991], [Cybenco 1980]. Fahlman 1988 props um algoritmo backpropagation modificado, usando a mudana anterior do peso para gerar a mudana no prximo ciclo de treinamento. O algoritmo back-propagation representa uma poderosa formalizao para o treinamento de redes perceptrons de mltiplas camadas. O processo de convergncia deste mtodo sensivelmente influenciado na escolha dos parmetros wi e da taxa de aprendizado. Uma maneira de compensar tais problemas adequar a faixa dinmica do neurnio de sada tabela de treinamento. Em geral, se a faixa de variao da sada desejada T ( yd) sobre o conjunto de treinamento for [ ymin, ymax] enquanto a funo de ativao f(.) do neurnio cobre a faixa [Ymin,Ymax], deve-se re-escalar esta varivel de tal forma que ela se encontre numa regio eficiente de operao do ponto de vista do algoritmo de treinamento, sendo o Yld o valor escalado, tem-se a relao Yld = yld + Onde: = [Ymax Ymin] / [ ymax ymin] = Ymin ymin
02/05/02 59

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

representa a proporo da faixa dinmica do neurnio que se utilizar 05< < 0.8

Outro problema que ocorre quando utilizamos f(.) no linear como funo de ativao, isto neurnios no lineares o do mnimo local no panorama do erro quadrtico, isto devido procedimento bacpropagation ser essencialmente local, poder perfeitamente convergir para um ponto de mnimo local e ali permanecer encalhado, este um problema de difcil soluo, todavia alguns pesquisadores sugerem adicionar alguns rudos aos parmetros, fazendo-os saltar para fora desta regio de mnimos locais.
Um dos maiores problemas encontrados no procedimento de retropropagao do erro a existncia de regies planas na superfcie de erro ou superfcie panorama de erro. A velocidade de convergncia depende diretamente da taxa de aprendizado que determina o passo que ser dado a cada iterao. Com a superfcie panorama do erro muito plana, isto com gradiente pequeno, a convergncia ser lenta. Uma alternativa pode ser a utilizao de expanso do gradiente grad(E(w)) pela srie de Taylor , fazendo: Grad(E(w + w)) = grad(E(w)) + H(w). w+ .......... Onde: H(w) a matriz Hessiana de E(w): H(W) = [ E(w)] / wi wj] Se w+w um ponto de mnimo, o gradiente ser nulo e resulta: 0 = grad(E(w))+ H w w = - H(w) grad(E(w)), que o mtodo de Newton. Neste mtodo a constante (taxa de aprendizado) substituda pela inversa da matriz Hessiana e deve ser recalculada a cada iterao. sem dvida um nus computacional imenso na medida em que uma nica operao de clculo passa a ser substituda por n operaes de inverso de matriz (nxn), n multiplicaes e igual nmero de somas. Existe um mtodo conhecido como mtodo do momento que consiste basicamente em acelerar a convergncia com a escolha de uma taxa de aprendizado grande evitando a oscilao nas proximidades do ponto mnimo, usando um filtro passa baixa. Com um filtro de primeira ordem procede-se ao clculo dos w por: w (t+1) = w(t) - (E(w(k))) o que corresponde a um filtro cuja funo de transferncia :
02/05/02 60

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

G(Z) = w(Z) /(E(w)) = - /( Z -) O ganho deste filtro para sinal constante G(1) = - /( 1 -) = > para >0 Ou seja quando a variao do grad(E(w)) lenta, portanto nas regies planas da superfcie panorama do erro quadrtico, a taxa efetiva de aprendizado > . Para acelerar ainda mais a convergncia, pode-se naturalmente usar filtros autoregressivos de ordem superior do tipo: w(t+1) = iw(t-i) - (E(w(t)), i = 0 m o que representar um nus computacional tanto maior quanto for a ordem do filtro. Mtodo do Momento Este mtodo foi proposto por Rummelhart,Hinton e Willanms(1986), para melhorar o tempo de treinamento do algoritmo backpropagation Os ajustes dos pesos so feitos segundo: w(N+1) = - + w(N) Onde: w (t) o ajuste do peso na iterao anterior o coeficiente do momento valor tpico 0.9 = E(w)/ (net)= -2[T - (net)] = sigmide(net) = 1 / ( 1+ e) , (a = net) = taxa de aprendizado O novo valor do peso torna-se igual ao valor do peso anterior mais o ajuste que inclui o termo momento W(N+1) = W(N) + w(N+1) Na figura dada a seguir apresentado um diagrama para ilustrar a ao do momento

02/05/02

61

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Este mtodo tem apresentado bom resultado para maioria dos problemas onde aplicado. O mtodo do momento fora a soluo para o mnimo global, evitando-se o mnimo local. Vrios procedimentos tm sido propostos no sentido de acelerar o mtodo backpropagation, dentre eles podemos citar: O mtodo de Sejnowski e Resenberg em 1987, semelhante ao mtodo do momento, baseado na exponencial suave que apresentou melhores resultados do que o mtodo do momento em algumas aplicaes. O mtodo consiste em: w(N+1) = w(N) +( 1 - ) A mudana no peso mais o peso anterior d o novo peso: W(n+1) = W(N) + w(N+1) Onde: [0,1] Se zero w(N+1) = = E(w)/ (net)= -2[T - (net)] = sigmide(net) = 1 / ( 1+ e), (a = net) W(n+1) = W(N) + Se 1 w(N+1) = w(N) W(n+1) = W(N) + w(N)

02/05/02

62

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Parker(1987) descreve um mtodo para melhorar a velocidade de convergncia do backpropagation. Chamado mtodo backpropagation de segunda ordem, em que o ajuste do peso feito usando a derivada segunda da superfcie panorama do erro, para produzir maior preciso na correo da mudana do peso. Como conseqncia s exigncias computacionais so maiores do que o mtodo da primeira derivada, sem grande melhoria que justifique o aumento de custo. Stornetta e Huberman(1987) Desenvolveram um mtodo para melhorar a caracterstica de treinamento do backpropagation. Eles colocaram que a faixa de sada da funo sigmide (0;1) no tima para entradas binrias. Uma vez que a magnitude do ajuste do peso proporcional ao nvel de sada do neurnio da camada anterior.Um nvel zero resulta em nenhuma mudana. Com entradas binrias, metade das sadas (na mdia) sero zero, e os pesos no treinam. A soluo por eles proposta, foi mudar a faixa de entrada da funo ativao de 1/2 a +1/2, e adotando um bias 1/2. Eles demonstraram que para funes binrias este procedimento reduz o tempo de treinamento de 30 a 50%. Hoje um mtodo comum de realizar isto usar funo ativao tangente hiperblica ou arco tangente. A nova funo (net) = -1/2 + ( 1 + e) Onde: a = net O principal problema do mtodo backpropagation o longo tempo de treinamento. Algumas redes neurais artificiais tem requerido dias ou meses no processo de treinamento e s vezes a redes simplesmente no treina ( no converge). Isto pode ser resultado de uma escolha ruim da taxa de treinamento (taxa de aprendizado), ou talvez a distribuio randmica dos pesos iniciais. Todavia em muitos casos a falha no processo de treinamento usualmente devido ao mnimo local ou a paralisa da rede, onde o treinamento virtualmente cessa devido operao na regio plana da funo superfcie do erro.

02/05/02

63

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

APRENDIZADO NO SUPERVISIONADO Conforme j mencionado no incio desta nota, no aprendizado no supervisionado a sada da rede no conhecida , portanto no existe clculo de erro entre valor desejado de sada e a sada real da rede, neste processo basicamente classifica grupo de entrada ou seja reconhece-se padres. Redes Neurais Memrias associativas Uma memria associativa serve para armazenar um conjunto de vetores = { ydp} ( p = 1 ,2 .............., P , padres ), de tal forma que se ela for endereada com um vetor arbitrrio y , retornar como sada aquele vetor ydp , cuja distncia for a menor para y. A memria associativa pode ser considerada como uma variante de um classificador de padres, no qual as categorias de classificao so representadas pelos vetores armazenados. Um padro isolado p pode ser classificado pela memria numa das categorias de padres, dependendo apenas do critrio de proximidade (ou distncia) que se definiu para a memria. Um dos critrios de distncia ou proximidade entre dois ou mais vetores com componentes binrias e de mesma dimenso, normalmente adotada em estudo de memria associativa como um associador linear distncia de Hamming. Antes, porm de definir a distncia de Hamming, falaremos sobre espao de Hamming. O espao de Hamming definido como o conjunto de vetores n-dimensionais, com cada componente pertencente ao conjunto dos nmeros reais, R, sujeitas condio de cada uma estar restrita a assumir os valores 1. A distncia de Hamming entre dois vetores x e y com o mesmo nmero de componentes denotada por h(x, y), e, igual ao nmero de componentes diferentes entre os dois vetores. Se x igual ao complemento de y, Se x igual a y, h(x,y) = 0 h (x,y) = n

Baseado na definio de distncia de Hamming podemos dizer que: 0hn Consideraes sobre a distancia de Hamming considerando-se as componentes dos vetores para os quais est sendo calculada a distncia de Hamming. Se os vetores so binrios constitudos de por zero e um ( [0,1]) a distncia dada por: h(x,y) = ( yi( 1- xi) + ( 1- xi) xi) Se os vetores so binrios constitudos de por [-1,1] a distncia dada por: h(x,y) = 1/2( 1- xiyi) = n/2 1/2 xiyi
02/05/02 64

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Podemos estabelecer a relao entre a distncia de Hamming e a distncia Euclidiana. Para isto vamos considerar dois vetores x = { x1, x2 ,...........xn} e y = {y1, y2,.........., yn}, no espao Euclidiano, sujeito s restries de que xi e yi { 1}. A distncia Euclidiana entre os dois vetores ; d = (( xi - yi)) Desde que xi e yi { 1}, ento ( xi yi ) {0,4} Se xi = yi ento ( xi yi ) = 0 Se xi yi ento ( xi yi ) = 4 Ento a distncia Euclidiana pode ser escrita como: d= (4 (nmero de componetes)) Definimos h como sendo igual ao nmero de componentes diferentes ou os bits que so diferentes nos dois vetores. Assim sendo distncia de Hamming relacionada distncia Euclidiana pela equao d = 2 (h) ou h = d/ 4 O exemplo mais elementar de memria associativa aquela que armazena apenas um vetor binrio de dimenso n, yd1 e seu complemento ydc1, isto = { yd1, ydc1} e com um critrio de proximidade entre dois vetores definido por uma medida de distncia entre eles. Exemplo de aplicao da memria associativa como separador linear: dado um vetor y arbitrrio, poderamos simplesmente calcular as distncias h = (y, yd) e h = (y, ydc) e classifica-lo numa categoria ou em outra segunda: Se h = ( y, yd) h = ( y, ydc) y categoria A Se h = ( y, yd) < h = ( y, ydc) y categoria A Este mtodo conhecido como mtodo da fora bruta ou da busca exaustiva e implica no clculo de todas distncias dos vetores do conjunto. Este mtodo pode se tornar complexo e muito lento quando a dimenso dos vetores que compem o conjunto grande. Exemplo: quando representa os elementos de uma imagem detalhada e complexa.

O associador linear Suponha que temos L pares de vetores (X1,Y1) , (X2,Y2),........., (XL, YL), com Xi Rn, e Yi Rm. Podemos distinguir trs tipos de memrias associativas:
02/05/02 65

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

1. Memria heteroassociativa : Implementa um mapeamento, , de X para Y / ( Xi) = Yi, e , se um X arbitrrio prximo a Xi e no de outros Xj, j = 1,........,L, ento (X) = Yi. Nesta e nas definies seguintes prximo significa com respeito distncia de Hamming. 2 . Memria associativa interpolativa : Implementa um mapeamento, , de X para Y / ( Xi) = Yi, mas , se o vetor de entrada X difere de um dos exemplares pelo vetor d, / X = Xi + d ento a sada da memria tambm difere a partir de exemplares de algum vetor e : ( X) = ( Xi + d ) = Yi + e. 3. Memria autoassociativa: Assume Yi = Xi e implementa um mapeamento , de X para Y / (Xi) = Xi, e, se algum X arbitrrio mais prximo a Xi do que de qualquer outro vetor Xj, j = 1,...........,L, ento (X) = Xi. Construir uma tal memria no uma tarefa matematicamente difcil se ns fazemos restrio adicional que os vetores, Xi, forma um conjunto ortonormal, um tal conjunto definido pela relao, Xi Xj = ij, onde ij = 1 se i = j, e ij = 0 se i j. Para construir uma memria associativa interpolativa, definimos a funo. ( X) = ( Y1X1 + Y2X2+ ............+ YLXL)X Se Xi o vetor entrada , ento (Xi) = Yi, uma vez que o conjunto de vetores X ortonormal. Este resultado pode ser visto a partir do exemplo seguinte. Seja X2 o vetor de entrada. Ento a partir da equao anterior podemos escrever: ( X2) = ( Y1X1 + Y2X2+ ............+ YLXL)X2 ( X2) = Y1X1 X2 + Y2X2 X2+ ............+ YLXL X2 ( X2) = Y112+ Y222+ ............+ YL L2 Na equao precedente todos os termos ij desaparecem, exceto 22, que igual a 1. O resultado : ( X2) = Y222 ou ( X2) = Y2 Se o vetor de entrada diferente de um dos exemplares, / X = Xi + d, ento a sada (X) = (Xi + d) = Yi + e Onde e = ( Y1X1 + Y2X2+ ............+ YLXL)d Note que no existe na discusso do associador linear a exigncia de que os membros dos vetores de entrada e sada serem membro do espao de Hamming. A exigncia deles serem ortonormal. Outra observao de que no foi envolvido treinamento na definio do associador linear. A funo que mapea X em Y foi definida pela expresso: ( X) = ( Y1X1 + Y2X2+ ............+ YLXL)X
02/05/02 66

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Memria Associativa Bidirecional BAM Foi desenvolvida por Kosko (1988), uma matriz de peso simtrica. Cada neurnio em cada camada tem uma entrada externa e entradas a partir de neurnios de outro campo de neurnios. Suponha que desejamos construir uma BAM para armazenar trs padres (par de padres) : [X1, Y1], [X2, Y2], [X3, Y3]. Uma vez que a BAM bidirecional, podemos entrar com X e recuperar Y correspondente, ou podemos entrar com Y e recuperar o X correspondente. O processo em uma BAM fundamentalmente diferente daquela operao em outros tipos de redes neurais como exemplo, na backpropagation, na qual os pesos so treinados para prover a sada desejada (mapea a entrada na sada). No caso de uma BAM, a matriz peso no treinada, mas sim construda usando cada par de entradas sada. O processo envolver construo de uma matriz para cada par de entradas sada e ento as combinando numa matriz mestre. Xi e Yi . So tratados como vetor coluna, e ento a matriz construda tomando o produto do vetor Xi e o vetor transposto de Yi (Yi): Exemplo: Vamos considerar os trs pares dados a seguir:

X1 : ( 1,-1,-1,-1,-1,1) ( (-1, 1, -1) : Y1 X2 : ( -1,1,-1,-1, 1,-1) ( (1, - 1, -1) : Y2


X3 : ( -1,-1,1,-1,-1,1) ( (-1, -1, 1) : Y3 Matriz peso Representao Desde que X1 tem 6 elementos e Y1 tem 3 elementos, a matriz para cada par de conjuntos uma matriz 6x3. importante notar que cada par de padres constitudo de valores +1 e 1 (poderia ser (0,1)). A matriz correlao Mi obtida pelo produto cruzado de Xi e Yi, isto Mi = Xi x Yi As trs matrizes so: M1 = X1 x Y1 = -1 +1 1 +1 -1 +1 +1 -1 +1 +1 -1 +1 +1 -1 +1 -1 +1 -1

+1 -1 -1 -1 -1 +1

-1, 1, -1

02/05/02

67

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

M2 = X2 x Y2 =

-1 +1 -1 -1 +1 -1

+1, -1, -1

-1 +1 = +1 -1 -1 +1 -1 +1 +1 -1 -1 +1

+1 -1 +1 +1 -1 +1

M3 = X3 x Y3 =

-1 -1 +1 -1 -1 +1

-1, -1, 1

+1 +1 = -1 +1 +1 -1

+1 1 +1 -1 -1 +1 +1 -1 +1 -1 -1 +1

Note que cada matriz produto de duas quantidades, uma componente de X e uma componente de Y este produto xiyi uma indicao clssica que o aprendizado de Hebb esta envolvido. A fim de obter uma memria associativa (chamada matriz mestre dos pesos) capaz de armazenar os trs pares ( X1,Y1), ( X2,Y2), ( X3,Y3), ns simplesmente adicionamos as trs matrizes de correlao o resultado :

M = M1 + M2 + M3
-1 +3 1 M = +3 1 1 -1 1 + 3 1 1 1 +3 -1 -1 -3 +1 +1

Obs: As matrizes s podem ser adicionadas se tiverem o mesmo tamanho. Ento isto significa que todos Xi padres devem ter o mesmo nmero de componentes, e todos os Yi padres devem ter o mesmo nmero de componentes . Contudo, o nmero de componentes de Xi pode ser diferente do nmero de componente de Yi.
02/05/02 68

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

A fim de colocar qualquer Xi e obter qualquer Yi, (ou colocar qualquer Yi e obter qualquer Xi) temos que tomar o produto do vetor de entrada e a matriz. Isto equivalente a tomar o produto escalar do vetor e a matriz mestre. O resultado :

Xi = M . Yi
E Yi = MXi

(A)

(B)

Onde a matriz M no caso uma matriz 6x3 e Xi um vetor 6x1, e Yi um vetor coluna 3x1. Note que a transposta de M :

-1 +3 -1 1 3 -3 3 -1 -1 1 -1 -1 M = -1 -1 3 1 -1 1 Exemplo: Usando BAM, vamos usar a expresso (A) para obter X2 a partir de Y2 -1 +3 1 +3 1 1 -1 1 + 3 1 1 1 +3 -1 -1 -3 +1 +1 1 -1 -1

O resultado do produto anterior da matriz M e vetor Y2 , o vetor X2, que tem como transposto cujo X2.

X2 = [ -3 5 3 1 5 -5] , adotando como regra a seguinte orientao : Se xi menor do que zero faz se xi = - 1 Se xi maior do que zero faz se xi = 1, Adotando este procedimento obtemos para X2 = [ -1 1 1 1 1 1], que o transposto do vetor X2.

02/05/02

69

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Operao da BAM Se qualquer vetor Xs e Ys so introduzidos para a matriz mestre de maneira apropriada, a resposta correspondente dada imediatamente. O problema acontece quando a entrada uma verso distorcida de X ( ou Y) que chamaremos de X (ou Y) introduzido, especialmente se X tem alguma similaridade para com mais do que um dos Xs. A resposta do produto M X pode no resultar num dos Ys armazenados na matriz, mas pode ser alguma combinao de dois ou mais vetores Ys que chamaremos de Y. O vetor Y enviado de volta para a BAM resultando X, como resultado do produto de M.Y, o vetor X enviado de volta a BAM , dando como resultado Y, como resultado do produto de M X, novamente Y apresentado a matriz mestre dos pesos, resultando X, como resultado do produto de M.Y. Esta condio continua at quando os valores sucessivos de X* e Y* no mudarem. Algoritmo 1. Um vetor padro X apresentado a BAM; 2. Os neurnios no campo X geram um padro atividade que passado para o campo onde armazenado Y atravs da matriz mestre de peso M; 3. O campo de Y aceita a entrada a partir do campo de X e gera uma resposta de volta para o campo de X, atravs da transposta da matriz mestre dos pesos M; 4. O campo X aceita o retorno da resposta a partir de Y, e ento ele gera uma resposta de volta ao campo Y atravs da matriz mestre dos pesos M; 5. A atividade continua at a ressonncia ser alcanada. O que significa que no Haver mudanas nos padres (isto valores sucessivos de Xs e Ys no modificam). Neste ponto, a sada Y um dos valores armazenados na matriz mestre, e corrigida a resposta para entrada X distorcida. Esta metodologia aparentemente arbitrria permite gerar uma matriz memria a partir da qual podemos recuperar (relembrar) os padres de entrada usados para produzi-la. Onde esto realmente armazenados os padres na matriz BAM? Eles no esto armazenados em qualquer elemento individual da matriz peso, porque se fosse para mudarmos um dos trs padres, no haveria necessidade de mudar a matriz inteiramente, conforme pode ser observado no processo de construo da matriz mestre dos pesos. Portanto podemos concluir que a informao armazenada no num elemento individual, mas na matriz como um todo, e cada padro distribudo sobre a matriz inteira. Adicionado e deletando par de padres matriz mestre Ns podemos adicionar outro par de padres [X4,Y4] matriz mestre, adicionando a matriz correlao M4, associado a ele a matriz mestre M : M nova = M1 + M2 + M3 + M4 Alternativamente podemos a pagar um par de padres, pela subtrao da matriz correlao daquele padro da matriz mestre. Por exemplo se desejamos remover o padro [X3,Y3] da matriz memria (matriz mestre), bastaria subtrair da matriz memria a matriz M3 : M (nova) = M (antiga) M3
02/05/02 70

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Este sistema tem toda caracterstica de um sistema memria. Ele pode armazenar na memria, ele pode relembrar a partir da memria, ele pode escrever novas informaes, e ele pode apagar informaes antigas. Capacidade e eficincia de uma rede com sistema de memriaA capacidade de uma rede NxN neurnios teoricamente limitada aproximadamente N par de padres. Na realidade, a capacidade real maior da ordem de 10 a 15 % de N. Por exemplo, na matriz de 288 bits foi necessrio (18 elementos de 16 bits por elemento) para armazenar trs padres de 9 (total) bits, ou 27 bits total. A operao de armazenar e relembrar requer varias operaes com matriz(multiplicao, transposio, e adio). Com a tecnologia atual isto muito menos eficiente que simplesmente armazenar os dados convencionalmente. Desvantagens Existem muitas desvantagens a serem consideradas: 1. O nmero de conexo.- Uma rede de 100 ns tem 100x100 0u seja 10000 conexes no total; 2. Entrada somente binria Para implementar um problema analgico, algumas transformaes adequadas devem ser feitas para converter as quantidades analgicas em sinais digitais; 3. Capacidade A armazenagem terica baixa para o nmero de conexes, e a capacidade real de armazenagem ainda muito menor; 4. Ortogonalidade Para melhor resultado, os padres dados devero ser ortogonais para minimizar a superposio; Tipo de redes memria associativa Citamos a seguir algumas redes neurais baseadas no principio das memrias associativas e princpio de aprendizado no supervisionado: Rede BAM (Memria BAM) Rede Crossbar Rede Hopfield Rede Estocstica Camada de Kohonen Rede Counterpropagation Rede Probabilstica Rede Funo radial Rede Adapitativa Ressonate (ART)

02/05/02

71

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Camada de Kohonen A camada de Kohonen um tipo de rede adaptativa e, um caso de redes neurais no supervisionadas, pertencente classe de redes competitivas dentro das memrias adaptativas. Como o prprio nome indica, elas adaptam as novas situaes. Todavia desejvel que as novas situaes no difiram muito daquelas utilizadas na fase de estruturao da rede. O nmero de neurnios da rede deve ser igual aos possveis grupos (aglomeraes) que possam existir na operao normal da rede. A caracterstica desta rede que ela treinada em operao (enquanto esta operando o sistema), devido a isto indicada para alguns casos para operao on-line Estrutura Bsica da rede Camada de Kohonen
X1

Y1

W1
Xn . . .

WL
Algoritmo

YL

1. Inicialize os pesos Wj (j = 1, 2,...........L) iguais , os pesos associados a cada vetor Wj; 2. Apresente um vetor Xq (normalizado) entrada da rede; o processo de adaptao consiste em fazer os pesos da unidade que se identifique mais com o vetor Xq, tenham seus valores trocados pelo do vetor Xq; 3. Se existe um Wk prximo de Xq, fazer Wk = Xq (o critrio de proximidade realizado calculando a distncia Euclidiana entre o vetor de entrada e o vetor peso utilizando a expresso d = ( (xqi- wki))); 4. Se no existe alguma unidade prxima (Wk) ou que se identifique com Xq, escolher outra unidade (mais prxima que no tenha sido modificada e fazer): Wk = Xq Obs: Pode acontecer situaes no previstas, e que novos conjuntos apaream na entrada da rede, em tal situao ser preciso criar mais neurnios para que a rede tenha capacidade de reconhecer esta nova situao outras vezes. Rede Neural Counterpropagation
02/05/02 72

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Introduo rede Counterpropagation


A rede counterpropagation foi desenvolvida por Robert Hecht Nielsen no perodo de 1987 a 1988. Quando comparada com a rede backpropagation em termos de tempo gasto para treinamento, para o mesmo vetor de entrada, ela reduz o tempo cerca de 100 vezes. A counterpropagation no to geral quanto a backpropagation, mas ela prov solues para aquelas aplicaes que no pode ter longas sesses de treinamento. Algumas aplicaes em que apresentaram resultados satisfatrios so classificao de imagens viso artificial aplicada a robot, classificao de padres, classificao de cluster (categoria), em que os vetores de entrada so similares. A counterpropagation uma combinao de dois conhecidos algoritmos; o mapa auto-organizvel de Kohonen (1987) e a rede de Grossberg (1982). Juntos eles possuem propriedades no disponveis em uma delas somente. O processo de treinamento associa vetor de entrada com correspondente vetor de sada. Estes vetores podem ser binrios constitudos de um e zero, ou contnuos. Uma vez treinada, a aplicao de um vetor na entrada produz o vetor de sada desejado. A capacidade de generalizao da rede permite a ela produzir uma sada correta, mesmo que o vetor de entrada seja parcialmente incompleto ou parcialmente impreciso. Isto torna a rede til para reconhecimento de padres.

Estrutura da rede
X1 W11
W21 Wm1

K1

V11 V21
Vn1

G1

Y1

X2

K2 . . .

G2

Y2

Xm

Kn

Gn

Yn

Camada de Kohonen

Camada de Grossberg

02/05/02

73

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Rede counterpropagation completa

Onde: X = {x1, x2,............,xm} vetor de entrada a uma dada classe ou categoria (isto ; uma classe corresponde a vetores similares, com mesmo comprimento, todavia nem todas as componentes dos vetores so iguais, mas so prximas). Wi o vetor peso conectando o vetor de entrada a cada neurnio ki da camada de Kohonen; Exemplo: W1 = { w11, w21,.........................................., wm1 }, o vetor peso que liga o vetor de entrada X ao neurnio K1, na camada de Kohonen
02/05/02 74

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Vi o vetor peso conectando os neurnio da camada de Kohonen a cada neurnio da camada de Grossberg; Exemplo: V1 = { v11, v21,............................, vn1 }, o vetor que liga o vetor Ki da camada de Kohonen correspondente a uma dada classe de vetor Xi de entrada, ao neurnio G1 da camada de Grossberg; No modelo counterpropagation, a camada 0 denominada de camada de entrada, ela no desenvolve nenhum clculo, cada neurnio na camada de entrada conecta a cada neurnio na camada 1, chamada de camada de Kohonen atravs de pesos separados wij, estes sero referidos coletivamente como uma matriz W, de maneira similar, cada neurnio da camada de Kohonen conecta a cada neurnio da camada de Grossberg atravs de um peso vnp, estes compreendem os elementos da matriz peso V. Esta estrutura parecida com a de outros modelos, todavia a diferena esta no processamento feito pelos neurnios na camada de Kohonen e de Grossberg. Como em qualquer rede, a funo counterpropagation desenvolvida em dois modos: 1) modo normal, em que ela recebe um vetor de entrada X e produz um vetor de sada Y ; 2) modo de treinamento, em que um vetor aplicado e os pesos so ajustados para produzir o vetor desejado de sada. Modo normal de operao Camada de Kohonen Na sua simples forma, a camada de Kohonen para um dado vetor de entrada, um e somente um neurnio de Kohonen, apresenta sada lgica 1, e todos demais apresentam sada zero, isto para um dado vetor de entrada existe um nico neurnio vencedor. Conforme mostrado na figura anterior, associado a cada neurnio de Kohonen esta um conjunto de pesos conectando - o a cada vetor de entrada . Por exemplo o neurnio K1 da camada de Kohonen, tem associado a ele, os pesos w11, w21,..........., wm1, compreendendo um vetor W1 conectando o aos sinais de entrada x1, x2,...................., xm, compreendendo um vetor de entrada X . Como na maioria das redes, o Net de cada neurnio de Kohonen simplesmente a soma das entradas ponderadas. Isto pode ser expresso por: Net j = x1.wij + x2.w2j + ...........................+ xm.wmj Onde o Netj o Net do j-simo neurnio de Kohonen Netj = xi.wij i ou em notao vetorial
02/05/02 75

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

N = X. W

Onde N o vetor sada da camada de Kohonen O neurnio com o maior Net o vencedor, sua sada ajustada para um e os demais neurnios da camada de Kohonen tem suas sadas so ajustadas em zero. Camada de Grossberg Na camada de Grossberg o Net de cada neurnio a soma ponderada das sadas da camada de Kohonen, k1, k2,..............., kn, formando o vetor Ki. Os pesos conectando o vetor designado como vetor V constitudo pelos pesos v11, v21, ..................., vn1 . O Net do neurnio de sada da camada de Grossberg ento: Netj = ki.vij i =1, 2, .....,n ou na forma vetorial Y = K.V Onde Y vetor sada da camada de Grossberg K vetor sada da camada de Kohonen V Matriz peso da camada de Grossberg Se a camada de Kohonen operada de modo que somente um neurnio est no nvel um e todos outros com nvel zero na sada, resulta que somente um elemento do vetor K um e os demais so zero. Nesta condio, cada neurnio na camada de Grossberg reproduzir na sua sada o valor do peso que conecta o ao neurnio no zero da camada de Kohonen.

Treinando a camada de Kohonen


Para o treinamento da camada de Kohonen, um vetor de entrada aplicado e seu produto escalar com vetor peso associado com cada neurnio de Kohonen calculado. O neurnio com maior produto escalar declarado vencedor e seus pesos so ajustados. Por causa da operao produto escalar para calcular o NET, o seu valor uma medida de similaridade entre os vetores de entrada e os vetores pesos. O processo de treinamento consiste realmente em selecionar o neurnio de Kohonen cujo vetor peso mais similar ao vetor de entrada. somente necessrio garantir que o treinamento separa os vetores em grupos similares. A rede auto organizada de forma que um dado neurnio de Kohonen tenha sada mxima para um dado vetor de entrada. A camada de Kohonen classifica os vetores de entrada em grupo que so similares. Isto acompanhado pelo ajuste dos pesos da camada de Kohonen, de modo que vetores de entrada similares ativam o mesmo neurnio de Kohonen.
02/05/02 76

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Treinamento de Kohonen um algoritmo auto organizado que opera em um modo no supervisionado. Por este motivo difcil predizer qual neurnio especfico da camada de Kohonen ser ativado para um dado vetor de entrada. Por outro lado. responsabilidade da camada de Grossberg produzir a sada desejada a partir dos neurnios vencedores da camada de Kohonen, conforme ser abordado posteriormente. O treinamento baseado na equao seguinte:

Wnovo = Wvelho + (X Wvelho)


Onde:

Wnovo o novo valor de um peso conectando uma componente de entrada do vetor X ao neurnio vencedor; Wvelho o valor de um peso conectando uma componente de entrada do vetor X ao neurnio vencedor na iterao anterior; ( ) a taxa de treinamento que pode variar durante o processo de treinamento.
Cada peso associado com o neurnio vencedor Kohonen modificado por uma quantidade proporcional diferena entre seu valor e o valor da entrada a qual conectado. A direo da mudana minimiza a diferena entre o peso e sua entrada. Na figura dada a seguir ilustrado esse processo geometricamente num espao de duas dimenses.

Preprocessamento do vetor de entrada altamente desejvel (mas no mandatria) normalizar todos os vetores de entrada antes de aplicalo rede. Isto feito dividindo cada componente do vetor de entrada pelo comprimento do vetor. Este comprimento determinado tomando a raiz quadrada da soma dos quadrados das componentes do vetor. xi = xi / ( (x i) )
02/05/02 77

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Isto converte o vetor de entrada num vetor unitrio na mesma direo. Isto um vetor de comprimento unitrio num espao n dimensional. A equao apresentada anteriormente para normalizao do vetor de entrada aplicada a um espao de duas dimenses, generaliza o caso em que o comprimento do vetor igual hipotenusa do tringulo retngulo. Na figura apresentada a seguir ilustrado o processo de normalizao da como mencionado anteriormente.

Na figura apresentada o vetor V tem duas componentes x = 4 e y = 3. Dividindo cada componente do vetor V pelo seu mdulo obtendo um vetor V com componentes 4/5 e 3/5, com V na mesma direo de V, mas com comprimento unitrio. Num espao de duas dimenses os vetores normalizados de entrada sero os pontos de um circulo de raio unitrio. Esta idia pode ser extendida para uma rede tendo um nmero arbitrrio de entradas, onde cada vetor termina sobre uma hiper superfcie. A normalizao dos dados de entrada aumentar a estabilidade numrica do processamento da rede neural e dos dados de sada necessrio devido caracterstica da funo ativao que usada na unidade de processamento da rede neural ALGORITMO Passo 1

As unidades da camada intermedirias ou de Kohonen deve ter seus respectivos pesos iniciados com os valores dos elementos de X que melhor representa cada ngulo;
02/05/02 78

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Passo 2 Aplicar um vetor X para a entrada da rede; Passo 3 Propagar calculando o net de cada unidade; Passo 4 Determinar a unidade vencedora r (aquela unidade que possuir maior Net) Net = max {netk} Passo 5 Atualizar os pesos da unidade vencedora da camada escondida W ri = Wri + ( xi - Wri) 0< < 1, i = 1, 2 ......N (Obs: convm iniciar com valor grande e ir diminuindo medida que (xi wri) vai diminuindo). geralmente tomado com valor inicial igual 0.7, sendo reduzido medida que o treinamento vai avanando e = 0.1 tomado nas iteraes finais.) Passo 6 normalizar os elementos Wri Wri = Wri / (Wri) Passo 7 Repetir os passos de 2 at 6 para todos os conjuntos de padres (imagens) Passo 8 Repetir o passo 7 at classificar as aglomeraes de vetores de entrada Ajuste dos pesos da camada de sada (camada de Grossberg) Passo 1 Inicializar os pesos da camada de sada aleatoriamente Passo 2 Aplicar o vetor de entrada X Passo 3 Determinar a unidade vencedora yi Passo 4 Atualizar os pesos v kr(novo) = vkr(antigo) + ( yq vkr(antigo))

0< < 1, k = 1, 2 ......m

Obs: geralmente tomado com valor inicial igual 0.1 e gradualmente reduzido medida que o treinamento vai progredindo.
02/05/02 79

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Passo 5Repetir os passos de 2 at 4 para que todas as entradas correspondam satisfatoriamente s sadas

Exemplo: Seja o mapa representativo de posio, representado pela matriz 8x8. A dimenso da matriz 64. Isto corresponde a um vetor X de dimenso 64

X1 X9 X17 X25 X33 X41 X49 X57

X2 X10 X18 X26 X34 X42 X50 X58

X3 X11 X19 X27 X35 X43 X51 X59

X4 X12 X20 X28 X36 X44 X52 X60

X5 X13 X21 X29 X37 X45 X53 X61

X6 X14 X22 X30 X38 X46 X54 X62

X7 X15 X23 X31 X39 X47 X55 X63

X8 X16 X24 X32 X40 X48 X56 X64

( x1.............,..........x64) Os elementos do vetor X podem assumir valores " um ou zero " Assim para representar uma posio de um objeto em 45 o vetor de entrada X45 ter os elementos : x8,x15,x22, x29 iguais a 1 (um) e os demais componentes iguais a zero Assim para representar uma posio de um objeto em 135 o vetor de entrada X135 ter os elementos: x1,x10,x19,x20 iguais a 1 (um) e os demais componentes iguais a zero Assim para representar uma posio de um objeto em 225 o vetor de entrada X225 ter os elementos: x36,x43,x50,x57 iguais a 1 (um) e os demais componentes iguais a zero Assim para representar uma posio de um objeto em 315 o vetor de entrada X315 ter os elementos: x37,x46,x55,x64 iguais a 1 (um) e os demais componentes iguais a zero Assim para representar uma posio de um objeto em 90 o vetor de entrada X90 ter os elementos: x4,x55,x12,x13, x20, x21, x28,x29 iguais a 1 (um) e os demais componentes iguais a zero

02/05/02

80

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Assim para representar uma posio de um objeto em 210 o vetor de entrada X210 ter os elementos: x36,x37,x44,x45, x52, x53, x60,x61 iguais a 1 (um) e os demais componentes iguais a zero

COMPRESSO DE IMAGEM

A imagem subdividida em sub imagens, e cada sub imagem tem um vetor que melhor a represente.

02/05/02

81

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

ASPECTOS PRTICOS DO USO DA REDE NEURAL Seleo de rede neural O procedimento de seleo de rede neural para soluo de um problema, se faz comparando suas caractersticas com aquelas em outras aplicaes que tm sido bem sucedidas. Com o objetivo de dar uma viso do campo de aplicao das redes neurais artificiais, Bailey e Thompson em 1990 fizeram um estudo no sentido de identificar o potencial de aplicao das redes neurais e um procedimento heurstico para orientao no uso com sucesso em suas aplicaes. A seguir dada uma orientao para os tipos de aplicao com sucesso: Tecnologia convencional de computador inadequada; Problema que requer raciocnio qualitativo ou quantitativo complexo; Soluo derivada a partir de parmetros altamente interdependentes que no tem quantificao precisa; O fenmeno envolvido depende de parmetros mltiplos interangindo; Os dados esto prontamente disponveis, mas, so multivariados e intrinsecamente com rudo ou sujeitos a erros; Existe uma grande quantidade de dados a partir de exemplos especficos teis para modelar o sistema; Alguns dos dados podem ser errneos ou perdidos; O fenmeno envolvido to complexo que outra abordagem no apropriada, demasiadamente complicada ou demasiadamente expansiva; O tempo para desenvolvimento do projeto curto, mas o tempo disponvel para treinamento da rede suficiente. Aplicaes bem sucedidas de redes neurais envolve reconhecimento de padres, mapeamento estatstico, ou modelamento. Dentre aplicaes bem sucedidas pode-se incluir validao de sinal, processo de monitoramento, diagnstico, processamento de sinal e informao e controle de sistema complexo freqentemente no linear.Contudo, problemas que pode ser resolvido usando metodologia convencional de computador especialmente aquelas que requer alta preciso ou envolve rigor matemtico, no so usualmente adequado para uma abordagem com redes neurais artificiais. Escolha do Tipo de Rede A adequada escolha do tipo de rede neural artificial (aprendizado supervisionado, no supervisionado ou reforado), depende dos dados disponveis. O aprendizado supervisionado requer pares de dados consistindo de padres de entrada e sada desejada, que so algumas vezes difcil de obter. J o treinamento no supervisionado classifica internamente os padres e no necessita de resultados esperados. Os dados necessrios para treinamento no supervisionado so desta forma mais fceis e menos dispendiosos, mas a capacidade da rede significativamente menor que para treinamento supervisionado. Um compromisso
02/05/02 82

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

entre treinamento supervisionado e no supervisionado o treinamento reforado, que necessita de uma entrada e somente um grau ou sinal recompensa como sada desejada. O tempo necessrio para o treinamento e lembrana tambm importante no desenvolvimento da rede neural. Geralmente as redes neurais artificiais tm um tempo treinamento relativamente grande, mas o tempo para lembrar por outro lado curto, envolve somente uma simples passagem do exemplo de teste atravs da rede. Quando a rede neural artificial implementada em hardware com os neurnios operando em paralelo, o tempo de lembrana virtualmente instantneo. Por outro lado, certos modelos, tais como o probabilstico, funo bsica radial, e regresso geral, treina numa simples passada de exemplos atravs da rede, mas o tempo de execuo essencialmente o mesmo que o tempo de treinamento. Portanto a necessidade de satisfazer exigncia on-line (no controle de um sistema de controle ativo) pode ditar o tipo de rede neural usado, ou ela pode requerer que a rede neural seja implementada em hardware. Projeto da rede neural Os tamanhos da rede neurais so algumas vezes relacionados experincia do usurio tanto quanto da natureza do problema. Usurios principiantes tendem a fixar um tamanho pequeno para rede e com isto reduzindo o tamanho da aplicao consequentemente. Aqueles usurios com considervel experincia com rede neural so geralmente inclinados a deixar a natureza do problema decidir o tamanho da rede. Hoje em dia com o software de simulao de redes neurais artificiais para computadores pessoais e workstation, uma rede neural com cerca de 1000 neurnio e cerca de 100mil conexes pode no ser um limite superior muito prtico para modelos no estatstico como backpropagation ou counterpropagation. Escolha da sada O tipo de sada determinado usualmente pela natureza da aplicao. A sada da funo ativao (funo ativao) pode ser binria ou escala contnua (muitos valores individuais). Funo de Ativao do Neurnio Tipicamente, a funo de ativao uma funo contnua que cresce monotonicamente entre um limite inferior e um limite superior (0 e 1 ou -1 e 1) quando a soma pondera lquida aumenta em magnitude ( Net). As funes de ativao com estas caractersticas freqentemente usadas so: Sigmoide ( tem sada contnua no intervalo [0, 1]; Tangente hiperblica ( tem sada contnua no intervalo [-1, 1]; Alm deste tipo de funo existem outras funes cujas sadas assumem valores descontnuos limitados inferiormente e superiormente respectivamente como as funes:
02/05/02 83

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Step (tem sada limitada binria {0, 1}), freqentemente utilizada quando a entrada e sada so binrias; Sinal (tem sada bipolar {-1, 1}), freqentemente utilizada quando a entrada e sada so bipolares. Certos modelos de rede como Backpropagation, requer que a funo de ativao e sua derivada sejam contnuas, ento neste modelo de rede so usadas somente funes contnuas como funo de ativao.

Nmero de neurnio das Camadas Uma rede Neural Perceptron Multicamada (NPM), tipo Backpropagation, com trs camadas, possui uma camada de entrada, uma camada intermediria e uma camada de sada. O nmero de camada pode ser maior dependendo da preciso que se deseja no mapeamento da entrada na sada. O aumento do nmero de camadas intermedirias aumenta a potncia da rede neural, mas requer um tempo significativamente maior para treinamento e um nmero grande de exemplo de treinamento para treinar a rede adequadamente. As camadas intermedirias atuam como camada de sntese, extraindo as caractersticas dos padres de entrada da rede neural. Nmero de Neurnio por Camada Os nmeros de nuernios nas camadas de entrada e de sada so determinados pela natureza do problema. Determinao do adequado nmero de neurnio para a camada intermediria freqentemente realizado atravs de experimentao. Poucos neurnios na camada intermediria impedem que a rede mapei corretamente a entrada para a sada, enquanto que muitos impedem a generalizao e aumenta o tempo de treinamento. Quando o nmero de neurnio muito grande, a rede memoriza os padres de entrada sem extrair caractersticas para generalizar. Assim quando apresentado novo padro para a rede ela incapaz de processa-lo adequadamente, porque ela no capaz de descobrir os princpios bsicos do sistema. Para uma rede neural com uma camada intermediria, comum na prtica fazer o nmero de neurnios da camada intermediria igual cerca de dois tero do nmero de elementos do vetor de entrada. Quando existe mais que uma camada intermediria, o nmero de neurnio significativamente menor em cada camada intermediria. Testes feitos com grandes e pequenos nmeros de neurnios na camada intermediria muda o tempo de treinamento bem como a habilidade da rede neural generalizar. Tcnicas de otimizao tem sido implementada como metodologia para determinar o nmero de neurnio timo para camada intermediria. Podemos citar como tcnicas; programao linear, algoritmo gentico e outras. REFERNCIAS BIBLIOGRFICAS PARA ESTUDO DE REDES NEURAIS ARTIFICIAIS

02/05/02

84

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

As referncias abaixo relacionadas esto dispostas para uma orientao de leitura de maneira gradativa como uma iniciao ao estudo de redes neurais artificiais.

1. Redes Neurais Artificiais Teoria e Aplicaes Antonio de Pdua Braga Teresa Bernarda Ludeemir AndreCarlos Ponce de Leon Ferreira Carvalho Editora Livros Tcnicos eCientficos Editora S.A. - 2000 2. Redes Neurais Artificiais Fundamentos e Aplicaes Zsolt L. Kovcs Editora collegium cognito So Paulo - Segunda Edio 1996 3. Neural Computing Theory and Practice Philip D. Wasserman Editora: Van Nostrand Reinhold , New York, 1989 4. Neural Netowrks Algorithms, Applications and Programinng Techniques James A. Freeman and David. M. Skapura Editora: Addison Wesley Publishing Company, USA, 1991 5. Neural Networks : A Comprehensive Fundation Simon Haykin Editora: Prentice Hall, USA, New Jersey, 1999 6. Neuro Fuzzy and Soft Computing A Computational Approach to Learning and Machine Intelligence, J. S. R. Jang, C. T. Sun, E. Mizutani Editora: Prentice Hall Upper Saddle River, USA, 1997 7. Computational Intelligence : An Introduction Witold Pedrycz Editora: CRC Press 1998 Aplicaes: 8. Patter Recognition with Neural Networks in C++ Abhijit S. Pandya and Robert B. Macy Editora: CRC Press IEEE Press, USA , 1995 9. Artificial Neural Networks for Intelligence Manufacturing Cihan H. Dagli
02/05/02 85

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

Editora: Chapman & Hall, London, 1994

02/05/02

86

CURSO DE ENGENHARIA DE CONTROLE E AUTOMAO PUC - MG

ANEXO

TOOLBOX DE REDES NEURAIS

02/05/02

87

Você também pode gostar