Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Redes Neurais, Notas de estudo de Engenharia Elétrica

Redes Neurais

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 23/05/2009

paulo-victor-lameira-de-souza-3
paulo-victor-lameira-de-souza-3 🇧🇷

1 documento

Pré-visualização parcial do texto

Baixe Redes Neurais e outras Notas de estudo em PDF para Engenharia Elétrica, somente na Docsity! CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG - REDES NEURAIS ARTIFICIAIS 01 - Introdução - A questão da inteligência humana sempre foi um dos problemas filosóficos mais interessantes, intrigantes e debatidos que se conhecem. Nas inúmeras tentativas de sua proposição não faltam imaginação criadora nem diversidade de idéias, sem, contudo haver nenhum paradigma unificador que permita ao menos algumas conclusões definitivas. Uma das abordagens mais aceita na atualidade é a de considerar a questão sob múltiplos aspectos, passando necessariamente pela questão do conhecimento, de sua representação e de seu aprendizado, pelas evidências descobertas nas Ciências Biológicas, por desenvolvimentos matemáticos e pelos experimentos com artefatos construídos para mostrar um ou mais componentes do que se admite, subjetivamente ser a inteligência humana. Um dos paradigmas de maior notoriedade hoje é o “conexionista”, que privilegia a evidência biológica de uma imensa multiplicidade de pequenos agentes com alto grau de coesão, como a existente no cérebro, para a explicação de comportamentos ditos inteligentes. Cabe observar que o paradigma conexionista não diz respeito apenas à questão da inteligência, sendo aplicado também em campos tão diversos, quanto os das Ciências Sociais e da Economia. 02 - Histórico A reprodução de características “Inteligentes” em máquinas construídas pelo homem é um dos objetivos mais perseguidos pela comunidade científica e tecnológica já há muito tempo. No que diz respeito ao aspecto “Conhecimento”, remonta da Grécia antiga uma das primeiras experiências para a sua representação, feita através da “Lógica”. Na época a metodologia era exercida através da cuidadosa manipulação das estruturas lingüísticas, realizando-se com frases bem construídas e apelando-se para princípios de “Inferência”, hoje muito bem formalizado, que condiziam com as bases filosóficas da cultura na época. As três leis fundamentais do pensamento segundo Aristóteles espelham rigorosamente os conceitos usados na formalização teórica do que hoje conhecemos como “Lógica Matemática” A formalização acima referida deu-se mais de dois mil anos depois, a partir dos trabalhos de “Frege”, que propiciaram o desenvolvimento dos meios teóricos para “Representação Simbólica de Conhecimento” e também para a rigorosa fundamentação de toda a matemática. 02/05/02 1 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG A passagem dos conceitos teóricos para a prática tecnológica teve grande impulso na época da “Segunda Guerra Mundial”. A construção dos primeiros computadores digitais no fim da década de 1940 foi fruto de uma grande concentração de cientistas do mais alto gabarito em propostas de realização do que se chamava “Cérebro Eletrônico”, qualificação que há até bem pouco tempo ainda se atribuía aos processadores digitais. Simultaneamente aos avanços das técnicas digitais, a partir de 1943 dois pesquisadores da área biológica McCulloch & Pitts (1) propuseram o primeiro modelo matemático do funcionamento de um neurônio. Este modelo, apesar de muito simples, trouxe uma grande contribuição para as discussões sobre o cérebro eletrônico, estimulando especulações sobre a verdadeira estrutura de um cérebro e, principalmente, permitindo a criação dos primeiros modelos matemáticos de dispositivos artificiais que buscavam analogias biológicas. Sem dúvida os sonhos proliferaram e muitos recursos financeiros foram distribuídos aos grupos de pesquisa na área, uma vez que as promessas eram fantásticas. Esta situação perdurou até meados da década de “60”, quando os organismos financiadores retiraram seu apoio tendo em vista o não cumprimento das propostas contidas nos projeto. Para colocar uma pá de cal nas discussões 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 lógicas tão simples quanto à do “ou - exclusivo”. Pouquíssimos pesquisadores continuaram a trabalhar no assunto, entre os quais destacam-se: Teuvo Kohonen ( Finlândia); Edoardo Caianiello (Itália); Stephen Grossberg, (E.U.A); James Anderson (E.U.A); Kunihiko Fukushima (Japão); Bernard Widrow (USA ), estes estavam ligados a vertente do modelo biológico. A vertente ligada à Lógica Matemática, entretanto estava mais bem apoiada institucionalmente, dada a grande conquistas realizadas na área de computação que, se não geraram o cérebro eletrônico como se propôs originalmente, obtiveram um dispositivo que inegavelmente revolucionou o ambiente tecnológico existente. Estes pesquisadores “lançaram as bases” do que hoje entendemos por “Inteligência Artificial”, obtendo logo no início da década de 70 resultados bastante concretos em diversas e importantes aplicações de caráter prático. Da mesma forma que a “lógica proposicional” (ou lógica de ordem zero) foi à base para o desenvolvimento dos “computadores digitais”, a lógica de predicados de primeira ordem o foi para a Inteligência Artificial. O início da década de 80 marcou a consolidação desta vertente e o crescimento acentuado das aplicações como é do conhecimento geral. 02/05/02 2 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG No clássico problema do caixeiro viajante, para um número razoável de cidades o homem acha uma solução ótima (quase ótima) com relativa facilidade. Mas algoritmos para esta tarefa são complexos e extensos. O cérebro apresenta também outras características muito desejáveis para uma máquina que são: - Capacidade de aprender sem que seja necessário 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 posição ou condição de iluminação diferente. - Robustez - isto quer dizer que a perda de algumas unidades de processamento, ou neurônios, não implica na perda de uma quantidade considerável de informação. Em vista do exposto anteriormente, leva-nos a reproduzir artificialmente as redes neuronais biológicas, e usá-las como ferramenta de computação em engenharia. Para um bom desempenho do leitor é necessário um conhecimento básico de: - Cálculo; - Equações diferenciais; - Equações às diferenças; - Probabilidade; - Álgebra linear; - Sistemas lineares O que são redes neurais artificiais? 1. Segundo Alexandre P. Alves da Silva: “Uma rede neural artificial é uma estrutura de processamento de informação não - algorítmica na forma de um grafo direcionado, onde cada nó, denominado neurônio, possui muitas entradas e um único sinal de saída que pode ser desmembrado. O processamento em cada nó depende exclusivamente das entradas desse nó e dos valores acumulados em uma pequena memória local do mesmo”. 2. Segundo Simon Haykin: “Uma rede neural é um processador maciçamente paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para uso. Ela se assemelha ao cérebro em dois aspectos”: a) O conhecimento é adquirido pela rede a partir de seu ambiente através de um processo de aprendizagem. b) Forças de conexão entre neurônios, conhecidas como pesos sinápticos, são utilizadas para armazenar o conhecimento adquirido.” 02/05/02 5 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG 03 - FUNDAMENTOS - Neurônio Biológico Antes de iniciarmos o estudo sobre redes neurais artificiais, considero importante fazer algumas considerações sobre o neurônio biológico por ser ele a inspiração para o neurônio artificial, e este por sua vez, é a unidade processadora da rede neural artificial. O neurônio biológico é constituído de um corpo celular denominado soma. Local no qual ocorre o processamento metabólico da célula nervosa ou neurônio. Deste corpo projetam-se extensões filamentares, os dendritos, e o axônio, este modelo anatômico foi identificado por Ramon Cajal (Neurologista) em 1894. As manifestações elétricas dos neurônios biológicos foram observadas pela primeira vez no século XIX por Dubis Reymond auxiliado por um galvanômetro, todavia o entendimento do funcionamento só foi melhorado a partir das observações de Erlanger e Gasser em 1920. O resultado desta pesquisa rendeu – lhes o prêmio Nobel em fisiologia no ano de 1944. Com base nesta pesquisa e outras posteriores passou-se a entender o comportamento do neurônio biológico como sendo o dispositivo computacional do sistema nervoso o qual possui muitas entradas e uma única saída. 02/05/02 6 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG As entradas ocorrem através das conexões sinápticas, que conectam a árvore dendrital aos axônios de outras células nervosas. Os sinais que chegam pelos axônios são pulsos elétricos conhecidos como impulsos nervosos ou potenciais de ação, e constituem a informação que o neurônio processará de alguma forma para produzir como saída um impulso nervoso no seu axônio. As sinapses são regiões eletroquimicamente ativas, compreendidas entre duas membranas celulares: a membrana pré-sináptica, por onde chegam o estímulo vindo de uma célula e a membrana pós-sináptica, que é a do dendrito. Na região pré-sináptica, o estímulo nervoso que chega é transferido à membrana dendrital através de neurotransmissores (substância eletrolítica). O resultado desta transferência é uma alteração do potencial elétrico da membrana pós-sináptica. Dependendo do neurotransmissor, a conexão sináptica é excitatória ou inibitória. A conexão excitatória provoca uma alteração no potencial da membrana que contribui para formação do impulso nervoso no axônio de saída, enquanto que a conexão inibitória age no sentido contrário. Como é formado o potencial de ação? Segundo estudiosos da área de neurologia, o axônio ou fibra nervosa de um neurônio é um tubo filamentar delimitado pela membrana celular. Assim existe uma região interior a membrana e outra exterior a ela. Assim em repouso, sem a presença de um impulso nervoso, o interior da membrana está num potencial eletronegativo de alguns milivolts em relação ao exterior da membrana. Este é o potencial de repouso da membrana. Essa diferença de potencial é sustentada por um processo de difusão de íons de sódio e potássio através da membrana, processo este conhecido como bomba de sódio. O mecanismo como é criado o potencial de ação 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 AUTOMAÇÃO PUC - MG Modelo do Neurônio Artificial - Redes Neurais – Modelo do Neurônio Artificial O primeiro modelo matemático do neurônio artificial desenvolvido na tentativa de representar o comportamento do neurônio biológico, foi proposto pelos pesquisadores Warren McCulloch (médico, filosofo, matemático e poeta) & Walter Pitts (estatístico) em 1943, inspirados nas propriedades eletrofisiológicas do neurônio biológico e também nos resultados de Alan Turing e John Von Neumann, que indicavam ser a natureza da inteligência humana essencialmente Booleana. Esse modelo foi publicado no boletim “Mathematical Biophysics” com o título “A Logical Calculus of the Ideas Immanent in Nervous Activy”, é considerado referência zero para a teoria das redes neurais artificiais. Neste modelo cada entrada recebe um estímulo que é ponderado por algum valor wij que representa a coesão sináptica que existe no neurônio biológico. Todas as entradas ponderadas são somadas, e se a combinação das entradas alcança um certo nível limiar, uma resposta é gerada, a qual é posteriormente modulada por uma função de transferência não linear. A saída é então expressa por: x j ( 1 ) ( )( )Οi ixji wij= ∑f θ− ) ( )( xji wij i∑ ≥ θ condição para disparar o neurônio (a soma ponderada das excitações igual ou maior que o nível do limiar); onde: xji é o sinal de entrada ou estímulo na entrada j sobre o i - ézimo neurônio; wji corresponde a coesão sináptica do estímulo da entrada j do i – ézimo neurônio; 02/05/02 10 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG função de transferência não linear ou função de ativação (representa a não linearidade no neurônio biológico ); f Oi é a resposta de saída do i -ézimo neurônio. Fazendo wij xji = δi, pode – se escrever: ∑ δi (j =1 ..n) = ∑ wij xji (j =1...n) = W™Xi W™= [ wi1, wi2,………., win] é o vetor transposto dos pesos da ligação sináptica do i – ézimo neurônio; Xi é o vetor estímulo das entradas do i – ézimo neurônio, cujo transposto é: Xi™ = [ x1i, x2i,……….., xni] A saída do neurônio antes de passar pelo bloco da função não linear f é denominada saída líquida da unidade de processamento ou neurônio, é normalmente representada por: Net(i) = ∑ wij xji - θi (j =1...n) Onde : θi é o limiar do i – ézimo neurônio. A partir desta consideração a equação (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 propósito: modelar um neurônio simples. Não existe nenhum mecanismo de comparação na saída do neurônio com a finalidade de comparar a saída real do neurônio com alguma saída esperada, desta maneira nenhum peso sináptico é ajustado, e como conseqüência nenhum aprendizado toma lugar. O modelo de neurônio proposto por McCulloch – Pitts é um dispositivo binário, a sua saída podia ser pulso (1) ou não pulso (0), e as suas várias entradas podiam ter ganhos arbitrário, e ainda serem excitatórias ou inibitórias. Princípio de funcionamento do neurônio de McCulloch-Pitts Se ∑ wij xji ≥ θi ( j =1...n) a saída Oi é pulso ( Oi =1), semelhante ao que ocorre no neurônio biológico; Se ∑ wij xji < θi ( j =1...n) a saída Oi é não pulso ( Oi =0), semelhante ao que ocorre no neurônio biológico Assim sendo a saída Oi do neurônio é, portanto binária. 02/05/02 11 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG A seguir são apresentados alguns tipos de funções ativação, que são geralmente utilizadas: Funções de ativação – Funções ativação são funções não lineares associadas às saídas das unidades de processamentos com o objetivo de limitar a saída da unidade num valor limitante, de maneira similar ao que ocorre no neurônio biológico, com o objetivo de reproduzir o mais próximo possível o comportamento deste. Elas são às vezes referidas como funções de transferência não lineares, relacionando a saída do neurônio artificial à sua entrada. As funções ativações mais usadas são: • Função impulso unitário ( degrau); • Função sigmóide; • Função tangente hiperbólica; • Função Siebert. Função degrau – A função degrau pode ser expressa segundo a equação: y = f ( net) Uma das seguintes situações pode acontecer: y = 1 se net ≥ 0 y = 0 se net < 0 y Função degrau Função sigmoide A função sigmóide pode ser expressa segundo a equação: φ(I) = f(net) = ( 1 + eª)¯¹ Onde: a = -α net 02/05/02 12 ne CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Lembrando que φ(I)= φ( net) = ( 1 + eª )¯¹, podemos escrever; ∂φ(I)/∂(I)= ∂φ(net)/∂(net) = α eªφ(I)² =α eªφ(net)² , substituindo eª na expressão anterior e, partindo da expressão de φ(I) (φ(net)) e após manipulação algébrica obtemos: ∂φ(I)/∂(I)= ∂φ(net)/∂(net) = α [1 – φ(I)] φ(I)= α [1 – φ( net)] φ( net) Tangente Hiperbólica Uma outra função logística não linear e monotonicamente crescente com I (net), muito utilizada como função ativação é a tangente hiperbólica dada a seguir: φ(I)= φ( net) = tangh ( α I)= tangh ( α net) = ( eª - e¯ª ) / ( eª + e¯ª ) = (1 - e¯²ª) / (1 - e¯²ª) onde “ a” é α I A função ativação tem por derivada a expressão seguinte: ∂φ(I)/∂(I)= ∂φ(net)/∂(net) = α sech² (α I) = α sech² (α net) Na figura dada a seguir é mostrado o gráfico da tangh (α net). 02/05/02 15 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Função Siebert: A função Siebert ( modela a resposta dos neurônios do sistema auditivo dos vertebrados) pode ser expressa segundo a equação: f(net) = ( netª ) / (netª + 0.5ª) Onde: a =k ( parâmetro variável) A seguir é ilustrado o gráfico desta função para condição do parâmetro k variável. Discriminador Linear- O neurônio de McCulloch – Pitts pode ser modelado por um caso particular de discriminador linear cujas entradas são binárias. 02/05/02 16 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Genericamente um discriminador linear de n entradas [x1, x2,....................., xn] e uma saída y pode ser modelado ou definido como: Y = H( ∑ wi xi - θ) , i = 1 .........n = H ( W X - θ) , quando y ∈ [0;1] A expressão de um discriminador linear, representa um hiperplano, que divide o espaço Rn ( espaço de dimensão n) em duas regiões “ A “ e “ B”. Desta maneira X = [x1, x2,....................., xn] pode estar em uma das regiões se por acaso se verificar: a) ∑ wi xi - θ ≥ 0 X ∈ A ⇒ y = 1 ( i = 1 ,..........n) b) ∑ wi xi - θ < 0 X ∈ B ⇒ y = 0 (-1) ( i = 1 ,..........n) Em vista do exposto pode-se pensar no neurônio de McCullhoch – Pitts como um classificador de padrões ou separador de pontos aglomerados. Neste ponto vamos abrir um espaço para definir o que é um hiperplano. Definição de hiperplano – O hiperplano é um sub espaço em Rn definido pela relação < a,X > = 0, H = { X / < a,X > = 0, X ∈ Rn } Isto é , dado um vetor a ∈ Rn , a equação < a,X > = 0, define um sub – espaço em Rn, de dimensão n-1. Notação: < a = a = [ a1,a2,.........,an ] (transposto do vetor a) x > = [x ] (transposto do transposto do vetor x que é próprio vetor x) < a, x > ⇒ representa o produto escalar ou o produto interno de dois vetores < a, x > = 0 ⇒ a1x1+ a2x2 + ........+ anxn =0 Fazendo correspondência entre w e a, pode-se escrever: a1x1+ a2x2 + ........+ anxn = w1x1+ w2x2 + ...........+ wnxn = 0 < w, x > = 0 é o hiperplano. Aproveitando o espaço aberto, vamos definir distância entre dois vetores. 02/05/02 17 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Nas figuras dadas a seguir estão ilustradas as funções booleanas and, or e xor A partir das figuras vê-se que as funções and e or são linearmente separável, isto é; é possível encontrar retas que separam os vetores de entrada em regiões tal que a saída reflita completamente o resultado das funções booleanas. Estas funções são implementáveis com o neurônio de McCulloch-Pitts. Por outro lado fica claro que a função booleana ou – exclusivo não é linearmente separável, isto é; não é possível encontrar retas que separem os vetores de entrada em regiões tal que a saída reflita o resultado da função booleana xor. Seriam necessárias duas retas discriminatórias para separar os pontos claros dos escuros. Embora os neurônios singelos (simples) não tenham capacidade de implementar todas funções booleanas, associação deles em rede possibilitará a implementação de qualquer função booleana. O xor de duas variáveis pode ser implementado por uma rede neural de três neurônios N1, N2 e N3 02/05/02 20 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Com N1, N2 e N3 implementando as funções N1 → f1 = X1. X2 N2 → f2 = X1. X2 N3 → f3 = f1 ∪ f2 Onde X1 e X2 são complementos de X1 e X2 respectivamente; X1 X1 X2 X2 F1 F2 F3 0 1 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 0 0 As “Redes Neurais Artificiais” de que trataremos são todas baseadas nos “Conceitos Conexionistas”, ou seja compõe-se de blocos construtivos similares entre si no aspecto funcional, todos eles muito simples e existentes em grande número, com a característica de formar um conjunto com elevado grau de interconexão. 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 saídas para as entradas de outras unidades por meio de ligações que permitem modular a intensidade de cada sinal enviado. As redes neurais artificiais que descreveremos são todas variações da idéia sobre processamento paralelo distribuído (PDP). A arquitetura de cada rede é baseada na construção de muitos blocos similares que desempenham o processamento. Será discutida inicialmente a célula de processamento, as diferentes estruturas de topologia da rede. Estratégia de aprendizagem com base em sistema adaptativo. 02/05/02 21 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO 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 conexões sob ponderações. Um conjunto dos principais aspectos de um modelo paralelo distribuído é apresentado a seguir: • Um conjunto de unidade de processamento (“Neurons”, célula); • Um estado de ativação ai (Ri) para cada unidade, que também determina a saída da unidade; • Conexão entre as unidades. Geralmente cada conexão é definida por um peso wij que determina o efeito que o sinal da unidade “j” tem sobre a unidade “i”; • Uma regra de propagação, que determina a entrada efetiva ij da i-ésima unidade a partir de suas entradas externas; • Uma função ativação Fi, que determina o novo nível de ativação baseado na entrada efetiva neti e o estado atual ai(t); (isto é, the update) ( )ti • Uma entrada externa ou off-set θi para cada unidade; • Um método para coleta de informação; • Um ambiente dentro do qual o sistema deve operar, provendo sinais de entrada e se necessário sinais de erro. 04 - UNIDADES PROCESSADORAS - - Unidade de Processamento - As unidades processadoras realizam funções muito simples, como a de coletar os sinais existentes em suas entradas, agregá-los de acordo com a sua função de entrada e produzir sua saída de acordo com a função de ativação inerente. Cada unidade desenvolve uma tarefa relativamente simples, recebe entradas de vizinhanças ou fontes externas e usa estas para calcular um sinal de saída 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 saídas ao mesmo tempo. Isto é; cada unidade realiza suas funções simultaneamente às das outras, podendo inclusive operar de maneira contínua no tempo. Neste caso o modelo matemático global do sistema será um conjunto de equações diferenciais. No caso de haver instante preferencial de execução das funções das células, ou seja, de cada célula, o sistema será discreto no tempo e seu modelo matemático global será um conjunto de equações às diferenças. Quando a “Rede Neural Artificial” opera em tempo discreto pode-se optar por duas políticas básicas para definir o instante de execução das funções nas células: • Execução síncrona: Quando todas as unidades são atualizadas no mesmo instante de tempo. 02/05/02 22 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG d p →saída desejada quando o vetor padrão x {p} é apresentado à entrada da rede; p → d i p →saída desejada do i-ésimo elemento da rede quando vetor padrão x {p} é apresentado à entrada da rede; p → a p →valores de ativação da rede quando vetor padrão x {p} é apresentado à entrada da rede; p → a i p →valor da ativação do i- ésimo elemento da rede quando o vetor padrão x {p} é apresentado à entrada da rede; p → w → matriz peso de conexões; w i →peso da conexão que alimenta a unidade i; wij →peso da conexão da unidade j até a unidade i; ℑ→conjunto das funções ativação. ℑ →i função ativação associada à unidade i; γ ij → (µ ij) taxa de aprendizado associado ao peso wij; θ i → influência para unidade i; E p → o erro na saída da rede quando o vetor padrão x {p} é apresentado à entrada da rede; p → 5.2 - Terminologia - Saída versus ativação de uma unidade - Desde de que não haja necessidade, de consideramos a saída e o valor de ativação de uma unidade como sendo a mesma coisa. Isto é, a saída de cada neuron igual a valor de ativação. Note que o símbolo Oi é usualmente reservado para saída da rede (isto é, uma unidade de saída i). Influência, 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 ativação 1. 6- Parâmetros Importantes das Redes Neurais Artificiais - (ANNS) O desempenho da ANN é descrito pela figura de mérito, que expressa o número de padrões lembrados quando padrões são aplicados a entrada. Um desempenho de 100% em lembranças significa que para cada sinal de entrada de estímulo a rede treinada produz sempre, o padrão de saída desejado. Quando planejamos uma Rede Neural Artificial (ANN). estaremos preocupados com o seguinte: 01- A topologia da rede 02- O número de camada da rede 02/05/02 25 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG 03- O número de neurônio ou nó por camada 04- O algoritmo de aprendizado a ser adotado (somente no caso de treinamento supervisionado) 05- O número de iterações por padrões durante treinamento. 06- O número de cálculo por iterações 07- Velocidade para lembrar um padrão 08- Desempenho da rede 09- Plasticidade da Rede-(isto é, o número de falta de neurônio e o grau de funcionalidade da rede). 10- Capacidade da rede, ou o máximo de sinais padrões que a rede pode lembrar. 11- Grau de adaptabilidade da rede (isto é capacidade da rede auto-adaptar após o treinamento) 12- Bias Terms - (ocasionalmente ajusta algum valor fixado apriori em 1) 13- Threshold Terms (ocasionalmente ajusta algum valor fixado apriori em 0 ou 1) 14- Limite do peso sináptico (para melhorar o desempenho e imunidade a ruído, o limite será determinado baseado sobre a implementação real da rede). 15- Escolha da função não linear e a faixa de operação da rede. 16- Imunidade da rede a ruído-(isto é, o grau de deterioração de um sinal de estímulo de entrada ou o grau de perda de sinal. (isto é, sinal parcial) que produz a saída padrão desejada). 17- Valores de regime ou valores finais do peso sinápticos (isto é o programa da rede). 7 - CONEXÃO ENTRE UNIDADES - A característica essencial das Redes Neurais Artificiais é o alto grau de conectividade entre suas células. A conexão entre os neurônios 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 contrário. Para termos uma idéia da estrutura do cérebro humano, existem cerca de 10 neurônios e estima-se que cada um se conecte a 1000 ou 10000 outros. Estes números indicam que a matriz do cérebro humano é bastante esparsa. 11 [ ]W É importante observar que cada peso pode ser positivo ou negativo, dando a característica da conexão: excitadora ou inibidora, respectivamente. Esta característica será explorada em diversas arquiteturas de redes para a obtenção de efeitos específicos. 02/05/02 26 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Esta nota de aula foi elaborada tomando-se como base as seguintes referências bibliográficas: Referências Bibliográficas: 1. BEN J. A Kröse and PATRICK P. van der Smagt, An Introduction to Neural Networks, University of Amsterdam, Fifth Edition, January 1993, p 129; 2. KOVÄCS Z. L., Redes Neurais Artificiais – Fundamentos e Aplicações, Editora Collegium Cognitio, 2ª Edição, São 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 expressões foram transcritas das referências citadas anteriormente. Endereços para pesquisa em IA A seguir apresentamos alguns endereços interessantes, para obterem informações sobre desenvolvimento da IA, redes neurais, lógica fuzzy, para vocês 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/versão1.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 AUTOMAÇÃO PUC - MG Se a saída é 1 e deveria ser 0 (classe φ2) faça: ω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 diferença entre a saída atual e a saída desejada, é denominado erro (ydl(t) – yl(t)). O ajuste dos pesos é conduzido em função do erro ε = ydl(t) – yl(t) Se a saída desejada é ydl(t) = 1 e a saída atual é yl(t) = 0 ε = +1, desta maneira os pesos são aumentados no processo de treinamento. Se a saída desejada é ydl(t)= 0 e a saída atual é yl(t) = 1 ε = -1, desta maneira os pesos são diminuídos processo de treinamento. Note que os pesos não são modificados se ε = ydl(t) – yl(t) = 0. O algoritmo de aprendizado é basicamente o mesmo algoritmo básico do perceptron, com modificação 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 próxima seção 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 neurônios utilizando esta regra modificada foi chamado de ADALINE (Adaptive Linear Neurons), por Widrow, que também foram denominados MADALINE, quando muitos ADALINE são conectados. 02/05/02 30 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Regra delta Um importante algoritmo de aprendizado apresentado por Widrow e Hoff na década 60 na Universidade de Stanford, como “ Least Mean Square” ( LMS), posteriormente conhecido como Regra Delta, tendo sido aplicado mais freqüentemente a unidade de processamento com saída ou melhor com função de ativação linear na saída. Após estas considerações iniciais vamos considerar a regra delta para condição de saída linear para a situação ilustrada na figura dada a seguir: Da figura apresentada anteriormente a função erro εk, como função de todos pesos wik é dada por: εk = (Tk – Ik) = (ykd – yk) = (ykd – net k) onde: k indica genericamente a qual neurônio estamos nos referindo (isto é k-ésimo neurônio) netk = ∑ wik.xi i= 0, 1,.........., n onde Tk ( ykd) é a saída desejada e Ik é o netk ou soma líquida 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 AUTOMAÇÃO PUC - MG O gradiente do erro quadrático corresponde ao conjunto das derivadas parciais do erro ε²k com relação a cada peso wi é: ∂ε²k (wik)/∂wik = -2 ( Tk – wik.xi) xi O sinal somação não está aqui representado porque estamos considerando cada i- ésimo componente do vetor peso. O problema básico consiste em encontrar o vetor W* que minimize o vetor erro quadrático εk. Isto é obtido através de ∂ε(w)/ ∂w = 0 Tecnicamente isto é correto, mas na realidade o erro mínimo quadrático nunca é igual a zero devido, as não linearidades envolvidas, ruídos, e dados imperfeitos. A presença do ruído, com uma função de ativação sigmoidal resultará num vetor erro mínimo quadrático não zero designado por ε²min. Solução analítica notação vetorial do erro médio quadrático Vamos considerar o valor médio do erro quadrático para um dado padrão expresso por: ρk(W) = E ((ekp)²) = 1/L ( ∑( ekp)² ) k= 1,.......L, para todo o conjunto de treinamento onde: (ekp)² = ( Tkp – Ikp )² é o erro quadrático associado ao k-ésimo neurônio quando a entrada está submetida ao par de padrões de treinamento (Xp, Tp); p =1, 2, .............P exemplos ( padrões)de treinamento ρkp(W) = E ((ek)²) = E ((Tkp – Ik)²) = E((Tkp)² + (Ik p)² - 2 (TkpIkp)) onde: Ikp = Wk™Xp; a dimensão do vetor transposto peso Wk™ é (1xn) e do vetor Xp é (nx1), o resultado do produto escalar Wk™Xp é um escalar (1x1) Obs.: os caracteres em negrito representam notação vetorial ρkp(W) = E ((ekp)²) = ((Tkp)² + (Wk™Xp )² - 2 (Tkp Wk™Xp)) ρkp(W)= E ((ekp)²) = ((Tkp)² + (Wk™Xp Wk™Xp ) - 2 (Tk Wk™Xp)) ρkp(W)= E ((ekp)²) =((Tkp)² + Wk™ (Xp Xp™) Wk - 2 (Tk pXp™) Wk) Chamando R = (Xp Xp™ ) é uma matriz de correlação de Xp de dimensão (nxn), a condição para que R seja inversível é de que ela tenha pelo menos n ( onde n é a 02/05/02 32 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Exemplo de aplicação para o cáculo do gradiente Na figura dada a seguir é ilustrado uma situação em que se tem: ε²k = [Tk –w1x1 – w2x2]² e a condição de mínimo 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 considerações apresentadas anteriormente quanto ao ajuste do erro no valor zero. Nesta ilustração esta sendo mostrado o cálculo de w1k. Na condição de que x1 e x2 não são zero, a quantidade dentro do colchete deve ser zero; Tk – w1kx1-w2kx2 = 0 Resulta: W1k = (Tk – w2kx2) / x1 W2k = (Tk – w1kx1) / x2 A substituição dos valores de w1k e w2k obtidos anteriormente na expressão de ε²k resulta ε²k = 0 02/05/02 35 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG A regra delta de Widrow – Hoff, provê a mudança 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 minimização. A figura dada a seguir ilustra o processo de ajuste dos pesos. Algoritmo do procedimento de treinamento (ajuste dos pesos) (Algoritmo de implementação da Regra Delta de Widrow – Hoff) Passos Ação 1. Inicializar W(0) aleatoriamente; W(0) pode ter valores positivos e negativos; 2. Escolher para cada Xkp uma saída desejada dkp ((Tkp, ydkp) correspondem à mesma saída desejada); 3. Escolha do critério de parada: (a) tolerância εkp ≤ δ (δ> 0 um certo valor positivo pequeno escolhido) ou b) adotar um certo número de iterações, neste procedimento de parada a tolerância do erro pode não ser alcançada. 4. Aplicar Xkp e calcular Ikp; (ykp, akp ou netkp todos representam a saída linear do k-ésimo neurônio); Ikp = ∑ wikxikp, i = 0,1 .........n 5. Calcular o erro quadrático: ε²kp = (Tkp – Ikp) ² 6. Verifique se o vetor erro satisfaz: Se εkp = (Tkp – Ikp) ≤ δ , se esta condição é satisfeita pare o processo, caso contrário continue os cálculos; ou 02/05/02 36 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Se número de iterações é igual ao valor adotado, pare o processo, caso contrário continue os cálculos; 7. Calcular derivada do vetor erro quadrático (gradiente do erro quadrático): ∇( ε²kp(W)) = ∂ [( Tkp – W™ k Xkp)²]/ ∂W ∇( ε²kp(W)) = -2 ( Tkp - W™ k Xkp) Xkp ∇( ε²kp(W)) = - 2 εk Xkp; onde: W™k é o transposto de Wk; Xkp vetor padrão de entrada para rede ou no caso considerado para o k -ésimo neurônio; Ikp corresponde ao netkp ou ao ykp ou akp, quando é aplicado o vetor padrão de entrada. (p = 1, 2, .........P; está associado a cada exemplo da coleção de vetores para o treinamento da rede) 8. Calcule a correção do peso Wk (t + 1) por intermédio de: Wk (t + 1) = Wk (t) + 2 µ εkp(t) Xkp, e volte ao passo 4; onde: (t +1) é a próxima iteração e (t) é a iteração anterior Observações: 1. A taxa de aprendizado η (µ) grande pode levar a não convergência do erro e às vezes leva a oscilação; 2. Uma vez treinada a rede para cada par de vetores de treinamento (Xkp, Tkp). Onde p = 1, 2,............P, padrões de treinamento da rede, repetir o treinamento uma outra vez, tomando os elementos do conjunto de treinamento aleatoriamente. Exemplo de aplicação sobre a implementação do algoritmo Exemplo sobre o algoritmo de correção do peso W, segundo a regra Delta de Widrow. Regra Delta para correção 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 AUTOMAÇÃO PUC - MG Algoritmo de treinamento backpropagation Introdução – O algoritmo backpropagation é um método sistemático para treinamento de rede neural artificial multicamadas perceptron “ MLP”. A elucidação deste algoritmo de treinamento por Rumelhart, Hinton, e Williams em 1986 foi o passo chave no projeto de redes neurais para muitas aplicações em problemas do mundo real. Hoje em dia é estimado que 80% das aplicações das redes neurais utilizam este algoritmo. Apesar de suas limitações, 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 fundamentação matemática. O algoritmo backpropagation ou da retropropagação do erro, para redes neurais de múltiplas camadas foi originalmente desenvolvido para redes de neurônios com função ativação monotônica com derivadas contínuas. Na realidade o algoritmo backpropagation é baseado na regra Delta de Widrow- Hoff, desenvolvida para ajuste dos pesos sinápticos na entrada de cada neurônio (elementos de processamento), tendo por referência o erro existente entre a saída real e a saída desejada do neurônio, quando um dado vetor é apresentado à sua entrada. A correção do peso é feita utilizando-se método de otimização LMS (mínimos médios quadrático) com o objetivo de encontrar um valor para o peso que minimize o erro na saída da rede. Neste procedimento toma-se a derivada do erro em relação ao peso conforme já apresentado na regra delta anteriormente. Porém é considerada a existência de uma função de ativação não linear na saída do neurônio e não mais uma função linear. Alguns autores chamam este algoritmo de regra delta generalizada aplicada a uma rede neural de múltiplas camadas. Basicamente ele consiste em corrigir os pesos nas entradas das camadas intermediárias (camadas ocultas) a partir do erro em cada neurônio na camada de saída. Isto é os pesos vão sendo corrigidos a partir da camada de saída para a camada de entrada. O interessante deste algoritmo é que não se conhece qual deve ser à saída dos neurônios das camadas intermediárias, somente se tem conhecimento do vetor de entrada e qual deve ser a saída a ele associada na camada de saída da rede. A partir do erro entre a saída desejada e a saída real na camada de saída de rede ajusta-se os pesos sinápticos das camadas intermediárias. A seguir será apresentado o desenvolvimento matemático no qual se apóia 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 AUTOMAÇÃO PUC - MG Cálculo do ajuste dos pesos – O processo de ajuste dos pesos utilizando o algoritmo backpropagation será descrito a partir dos pesos associados a um determinado neurônio da camada de saída da rede (neurônio 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 AUTOMAÇÃO PUC - MG Nesta figura φqk é à saída do neurônio q da camada k que será subtraída do valor desejado Tq ( yqd) produzindo o sinal do erro quadrático: ε² = ε²q = [ Tq - φ( I)qk ]² Conforme já vimos anteriormente na regra Delta, a mudança no peso associado ao q- ésimo neurônio 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 neurônio da camada j (camada intermediária); q está associado ao q-ésimo neurônio da camada k (camada de saída); ε²q é o erro quadrático associado ao q-ésimo neurônio da camada de saída. Para avaliar a derivada, usamos a regra de diferenciação 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] (B) (∂φ(I)qk / ∂Iqk) = αφ(I)qk [1 - φ(I)qk] (C) Conforme já visto anteriormente Iqk é a soma líquida das entradas ponderadas no neurônio “q” da camada k, isto é: Iqk = ∑wpqk .φ(I)pj Onde: j é a camada anterior e p corresponde a qualquer neurônio da camada j ( p = 1, 2,..........n) Tomando a derivada parcial com relação ao peso wpqk resulta: Obs: o último índice associado a cada peso refere-se a camada na qual o neurônio está. wpqk ( refere-se ao peso que conecta o neurônio p ao neurônio q da camada k ) ∂ Iqk / ∂wpqk = φ(I)pj (D) 02/05/02 42 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG A taxa de aprendizado é ηhp pode ser feita igual a ηpq, mas, todavia não é necessário, podendo assumir valores diferentes. Aplicando novamente a regra em cadeia de diferenciação 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 equação 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 relação à φ(I)pj resulta: (∂ Iqk / ∂φ(I) pj) = wpqk A soma sobre p desaparece no resultado anterior porque somente uma conexão 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 relação a whpj resulta: ( ∂ Ipj / ∂whpj) = xh Novamente a soma sobre h na equação de Ipj desaparece porque somente uma conexão está envolvida. Considerando as expressões desenvolvidas para cada termo da expressão (∂ε² / ∂whpj), e substituindo-os nela, obtém-se: (∂ε² / ∂whpj) = ∑ {(-2) [Tq - φ(I)qk] (αφ(I)qk [1 - φ(I)qk]) wpqk} 02/05/02 45 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO 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 expressão utilizada para o cálculo na mudança dos pesos da camada de saída podemos através de expressão análoga obter a mudança dos pesos da camada intermediária como ∆whpj = - ηhp ( ∂ε² / ∂whpj). Nota-se que tal ajuste é proporcional ao negativo da taxa de mudança do erro quadrático com respeito aquele peso, então a substituição de (∂ε² / ∂whpj) na expressão de ∆whpj resulta: ∆whpj = ηhp xh ∑ δhpj q = 1.......r Assim o novo valor do peso da camada intermediária na iteração (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 intermediária de neurônio, esse processo move através 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 aceitável seja alcançado para cada padrão. Nesta condição diz-se que a rede está treinada para cada padrão de entrada. 02/05/02 46 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Resumo Algoritmo Backpropagation Considerações Iniciais Seja o conjunto de treinamento (X1, d1).............. (Xl, dl); L → número de conjunto a ser treinado Xi → conjunto de entradas (i = 1,........, l) di → saídas desejadas (i = 1,........, l) Análise do Algoritmo backpropagation Para o l -ésimo elemento do conjunto de treinamento temos: A saída linear da p-ésima unidade da camada escondida j (camada intermediária ) é: net l p = ∑ whp. Xlh (h = 0,......., n) com Xl0 = 1 A saída correspondente não linear é: i l p = fpj (net l p) A saída linear da q-ésima unidade da camada de saída é: net ql = ∑ wqp. i lqp ( p = 0, ........, m unidades da camada intermediária anterior a camada de saída) l corresponde a um dado padrão de entrada, . A saída não linear da q-ésima unidade da camada de saída é; Olq = fq (net lq) Atualização dos pesos da camada de saída Wqp (q = 1,......, v saídas; p = 0,........m entradas) Seja o erro: δlq = (d lq - O lq) 02/05/02 47 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG p = 0,....,m q = 0,.......v (x) Verificar tolerância para se erro Elq = ε² = (1/ 2) ∑(δlq)² < tolerância q = 1,... v ou se o número de iterações é igual ao valor estipulado pare; se erro ε² = (1/ 2) ∑(δlq )² > tolerância q = 1,... v ou se o número de iterações é menor que valor estipulado volte ao passo (ii) (xi ) Entrar com novo par de padrões ( Xl, dl ), repetir os passos de (ii) a ( x), até percorrer todo conjunto de padrões. 02/05/02 50 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Fluxograma do algoritmo Exemplo: Vamos considerar a rede neural feedforward múltipla camada MLP ilustrada na figura dada a seguir. 02/05/02 51 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Condições impostas: 1. Vamos admitir que todos neurônios tem a mesma função logística sigmoidal com α igual a 1 ( α = 1); 2. As entradas dos limiares iguais a +1 e os pesos dos limiares (bias) ajustáveis (w1c, w1d, w1e); 3. A taxa de aprendizado constante e a mesma para todos pesos e igual a η = 0.5; 4. A saída desejada do neurônio igual a Te = 0.1; 5. Os pesos iniciais são 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 AUTOMAÇÃO PUC - MG ∆wad = -0,5[-2 [Te - φ(Ie)] αφ(Ie)[1- φ(Ie)]wde α φ(Id)[1 - φ(Id)] xa] ∆wad = -0,5[-2 [0,1–0,32] 1 x 0,32[1–0,32](-0,5) x1 0,46[1– 0,46] 0,4] ∆wad = 0,00238 = 0,002 Ajuste do peso que liga o neurônio B ao neurônio C ∆wbc = -0,5[-2 [Te - φ(Ie)] αφ(Ie)[1- φ(Ie)]wce α φ(Ic)[1 - φ(Ic)] xb] ∆wbc = -0,5[-2 [0,1–0,32] 1 x 0,32[1–0,32] 0,2x1x 0,42[1– 0,42](-0,7)] ∆wbc = 0,00163 = 0,002 Ajuste do peso que liga o neurônio B ao neurônio D ∆wbd = -0,5[-2 [Te - φ(Ie)] αφ(Ie)[1- φ(Ie)]wde α φ(Id)[1 - φ(Id)] xb] ∆wbd = -0,5[-2 [0,1–0,32] 1 x 0,32[1–0,32](-0,5)x1x 0,46[1–0,46](-0,7)] ∆wbd = - 0,00142 = - 0,001 7.Cálculo do ajuste dos pesos dos limiares dos neurônios e D da camada intermediária Ajuste do peso do limiar do neurônio C ∆w1c= -0,5[-2 [Te - φ(Ie)] αφ(Ie)[1- φ(Ie)]wce α φ(Ic)[1 - φ(Ic)] x 1] ∆w1c = -0,5[-2 [0,1–0,32] 1x 0,32[1–0,32] 0,2x1x 0,42[1– 0,42] x1] ∆w1c = -0,0023 = - 0,002 Ajuste do peso do limiar do neurônio D ∆w1d= -0,5[-2 [Te - φ(Ie)] αφ(Ie)[1- φ(Ie)]wde α φ(Id)[1- φ(Id)] x1 ] ∆w1d = -0,5[-2 [0,1–0,32]1x0,32[1–0,32](-0,5)x1x 0,46[1–0,46]x 1] ∆w1d = 0.0059 = 0,006 8. Cálculo dos novos valores dos pesos associados a cada neurônio Esse cálculo é feito considerando a expressão: w (n + 1) = w(n) + ∆w(n) onde: n+1 é a iteração atual n é a iteração anterior Passemos aos cálculos 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 AUTOMAÇÃO 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 saída desejada Te, isto é feito para todo pares de entrada. A título de exercício reinicie outro ciclo de cálculo partindo com os novos pesos, repita o processo até que obtenha um erro. ε(e) = [ Te - φ( Ie) ]= 0,0001 Análise de sensibilidade – A análise de sensibilidade tem por objetivo identificar a influência da variação dos dados de entrada da rede sobre a variação no valor de saída de cada neurônio na camada se saída. Para tal análise será considerada a relação apresentada a seguir: ξqh = ( ∆yq ) / ( ∆xh )= (∂ yq)/ (∂ xh) onde: (∂ yq) → é a variação da saída do q-ésimo neurônio da camada de saída (∂ xh) → é a variação na h-ésima entrada da rede na camada de entrada ξqh → sensibilidade da saída com relação à 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)] (a) [(∂ (netq)) / (∂φ (netp))] = ∑ wqp ; p =1,...............,m (b) [(∂φ (netp))/(∂(netp))] = αφ(netp)[1 - φ(netp)] (c) 02/05/02 56 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG [(∂(netp))/ ∂(xh)] = wph (d) Substituindo (a), (b), (c) e (d) na expressão de ξqh resulta: ξ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 expressão de ξqh resulta: ξqh = α²φ(netq)[1 - φ(netq)]. { [wq1 .φ(net1)[1 - φ(net1)]. W1h + [wq2 .φ(net2)[1 - φ(net2)]. W2h] + .........+[ wqm .φ(netm)[1 - φ(netp)]. Wph]} p q wq1 yq xh Da expressão acima se no função de ativação. Porta acelerar o processo de aju ruídos no sinal de entrada certo cuidado para evitar a 02/05/02 W11 wq2 W22 m wqm wmh ta que a sensibilidade varia com o quadrado do expoente α da nto se adotarmos um valor elevado para o mesmo podemos ste dos pesos, mas por outro lado aumenta a sensibilidade aos sobre a saída. A escolha do valor de α deve ser feita com instabilidade na sensibilidade da rede. 57 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG µ representa a proporção da faixa dinâmica do neurônio que se utilizará 05< µ < 0.8 Outro problema que ocorre quando utilizamos f(.) não linear como função de ativação, isto é neurônios não lineares é o do mínimo local no panorama do erro quadrático, isto devido procedimento bacpropagation ser essencialmente local, poderá perfeitamente convergir para um ponto de mínimo local e ali permanecer encalhado, este é um problema de difícil solução, todavia alguns pesquisadores sugerem adicionar alguns ruídos aos parâmetros, fazendo-os saltar para fora desta região de mínimos locais. Um dos maiores problemas encontrados no procedimento de retropropagação do erro é a existência de regiões planas na superfície de erro ou superfície panorama de erro. A velocidade de convergência depende diretamente da taxa de aprendizado η que determina o passo que será dado a cada iteração. Com a superfície panorama do erro muito plana, isto com gradiente pequeno, a convergência será lenta. Uma alternativa pode ser a utilização de expansão do gradiente grad(E(w)) pela série 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 mínimo, o gradiente será nulo e resulta: 0 = grad(E(w))+ H ∆w ∆w = - H¯¹(w) grad(E(w)), que é o método de Newton. Neste método a constante η (taxa de aprendizado) é substituída pela inversa da matriz Hessiana e deve ser recalculada a cada iteração. É sem dúvida um ônus computacional imenso na medida em que uma única operação de cálculo passa a ser substituída por n² operações de inversão de matriz (nxn), n² multiplicações e igual número de somas. Existe um método conhecido como método do momento que consiste basicamente em acelerar a convergência com a escolha de uma taxa de aprendizado η grande evitando a oscilação nas proximidades do ponto mínimo, usando um filtro passa baixa. Com um filtro de primeira ordem procede-se ao cálculo dos ∆w por: ∆w (t+1) = λ∆w(t) - η∇(E(w(k))) o que corresponde a um filtro cuja função de transferência é: 02/05/02 60 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO 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 variação do grad(E(w)) é lenta, portanto nas regiões planas da superfície panorama do erro quadrático, a taxa efetiva de aprendizado é η´> η. Para acelerar ainda mais a convergência, pode-se naturalmente usar filtros autoregressivos de ordem superior do tipo: ∆w(t+1) = ∑ λi∆w(t-i) - η∇ (E(w(t)), i = 0 ……m o que representará um ônus computacional tanto maior quanto for a ordem do filtro. Método do Momento Este método foi proposto por Rummelhart,Hinton e Willanms(1986), para melhorar o tempo de treinamento do algoritmo backpropagation Os ajustes dos pesos são feitos segundo: ∆w(N+1) = - η δ φ + µ∆w(N) Onde: ∆w (t) é o ajuste do peso na iteração anterior µ é o coeficiente do momento valor típico 0.9 δ = ∂E²(w)/ φ(net)= -2[T - φ(net)] φ = sigmóide(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 ação do momento 02/05/02 61 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Este método tem apresentado bom resultado para maioria dos problemas onde é aplicado. O método do momento força a solução para o mínimo global, evitando-se o mínimo local. Vários procedimentos têm sido propostos no sentido de acelerar o método backpropagation, dentre eles podemos citar: O método de Sejnowski e Resenberg em 1987, semelhante ao método do momento, baseado na ”exponencial suave” que apresentou melhores resultados do que o método do momento em algumas aplicações. O método consiste em: ∆w(N+1) = α∆w(N) +( 1 - α)δ φ A mudança 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)] φ = sigmóide(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 AUTOMAÇÃO PUC - MG Podemos estabelecer a relação entre a distância de Hamming e a distância Euclidiana. Para isto vamos considerar dois vetores x = { x1, x2 ,...........xn}™ e y = {y1, y2,.........., yn}™, no espaço Euclidiano, sujeito às restrições de que xi e yi ∈ {± 1}. A distância Euclidiana entre os dois vetores é; d = (∑( xi - yi)²)½ Desde que xi e yi ∈ {± 1}, então ( xi – yi )² ∈ {0,4} Se xi = yi então ( xi – yi )² = 0 Se xi ≠ yi então ( xi – yi )² = 4 Então a distância Euclidiana pode ser escrita como: d= (4 (número de componetes))½ Definimos h como sendo igual ao número de componentes diferentes ou os bits que são diferentes nos dois vetores. Assim sendo à distância de Hamming é relacionada à distância Euclidiana pela equação d = 2 (h)½ ou h = d²/ 4 O exemplo mais elementar de memória associativa é aquela que armazena apenas um vetor binário de dimensão n, yd1 e seu complemento ydc1, isto é ψ = { yd1, ydc1} e com um critério de proximidade entre dois vetores definido por uma medida de distância entre eles. Exemplo de aplicação da memória associativa como separador linear: dado um vetor y arbitrário, poderíamos simplesmente calcular as distâncias 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 método é conhecido como método da força bruta ou da busca exaustiva e implica no cálculo de todas distâncias dos vetores do conjunto. Este método pode –se tornar complexo e muito lento quando a dimensão dos vetores que compõem 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 três tipos de memórias associativas: 02/05/02 65 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG 1. Memória heteroassociativa : Implementa um mapeamento, φ, de X para Y / φ( Xi) = Yi, e , se um X arbitrário é próximo a Xi e não de outros Xj, j = 1,........,L, então φ(X) = Yi. Nesta e nas definições seguintes próximo significa com respeito à distância de Hamming. 2 . Memória 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 então a saída da memória também difere a partir de exemplares de algum vetor e : φ( X) = φ( Xi + d ) = Yi + e. 3. Memória autoassociativa: Assume Yi = Xi e implementa um mapeamento φ, de X para Y / φ(Xi) = Xi, e, se algum X arbitrário é mais próximo a Xi do que de qualquer outro vetor Xj, j = 1,...........,L, então φ(X) = Xi. Construir uma tal memória não é uma tarefa matematicamente difícil se nós fazemos restrição adicional que os vetores, Xi, forma um conjunto ortonormal, um tal conjunto é definido pela relação, Xi Xj = δij, onde δij = 1 se i = j, e δij = 0 se i ≠ j. Para construir uma memória associativa interpolativa, definimos a função. φ( X) = ( Y1X1 + Y2X2+ ............+ YLXL)X Se Xi é o vetor entrada , então φ(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. Então a partir da equação anterior podemos escrever: φ( X2) = ( Y1X1 + Y2X2+ ............+ YLXL)X2 φ( X2) = Y1X1 X2 + Y2X2 X2+ ............+ YLXL X2 φ( X2) = Y1δ12+ Y2δ22+ ............+ YL δL2 Na equação precedente todos os termos δij desaparecem, exceto δ22, que é igual a 1. O resultado é: φ( X2) = Y2δ22 ou φ( X2) = Y2 Se o vetor de entrada é diferente de um dos exemplares, / X = Xi + d, então a saída é φ(X) = φ(Xi + d) = Yi + e Onde e = ( Y1X1 + Y2X2+ ............+ YLXL)d Note que não existe na discussão do associador linear a exigência de que os membros dos vetores de entrada e saída serem membro do espaço de Hamming. A exigência é deles serem ortonormal. Outra observação é de que não foi envolvido treinamento na definição do associador linear. A função que mapea X em Y foi definida pela expressão: φ( X) = ( Y1X1 + Y2X2+ ............+ YLXL)X 02/05/02 66 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Memória Associativa Bidirecional – BAM Foi desenvolvida por Kosko (1988), é uma matriz de peso simétrica. Cada neurônio em cada camada tem uma entrada externa e entradas a partir de neurônios de outro campo de neurônios. Suponha que desejamos construir uma BAM para armazenar três padrões (par de padrões) : [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 operação em outros tipos de redes neurais como exemplo, na backpropagation, na qual os pesos são treinados para prover a saída desejada (mapea a entrada na saída). No caso de uma BAM, a matriz peso não é treinada, mas sim construída usando cada par de entradas – saída. O processo envolverá construção de uma matriz para cada par de entradas – saída e então as combinando numa matriz mestre. Xi e Yi . São tratados como vetor coluna, e então a matriz é construída tomando o produto do vetor Xi e o vetor transposto de Yi (Yi): Exemplo: Vamos considerar os três 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 Representação – 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 padrões é constituído de valores +1 e –1 (poderia ser (0,1)). A matriz correlação Mi é obtida pelo produto cruzado de Xi e Yi, isto é Mi = Xi x Yi As três matrizes são: -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 M1 = X1 x Y1 = = 02/05/02 67 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Operação da BAM – Se qualquer vetor Xs e Ys são introduzidos para a matriz mestre de maneira apropriada, a resposta correspondente é dada imediatamente. O problema acontece quando a entrada é uma versão 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 não resultar num dos Ys armazenados na matriz, mas pode ser alguma combinação 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 condição continua até quando os valores sucessivos de X* e Y* não mudarem. Algoritmo – 1. Um vetor padrão X é apresentado a BAM; 2. Os neurônios no campo X geram um padrão atividade que é passado para o campo onde é armazenado Y através 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, através da transposta da matriz mestre dos pesos M™; 4. O campo X aceita o retorno da resposta a partir de Y, e então ele gera uma resposta de volta ao campo Y através da matriz mestre dos pesos M; 5. A atividade continua até a ressonância ser alcançada. O que significa que não Haverá mudanças nos padrões (isto é valores sucessivos de Xs e Ys não modificam). Neste ponto, a saída Y é um dos valores armazenados na matriz mestre, e é corrigida a resposta para entrada X distorcida. Esta metodologia aparentemente arbitrária permite gerar uma matriz memória a partir da qual podemos recuperar (relembrar) os padrões de entrada usados para produzi-la. Onde estão realmente armazenados os padrões na matriz BAM? Eles não estão armazenados em qualquer elemento individual da matriz peso, porque se fosse para mudarmos um dos três padrões, não haveria necessidade de mudar a matriz inteiramente, conforme pode ser observado no processo de construção da matriz mestre dos pesos. Portanto podemos concluir que a informação é armazenada não num elemento individual, mas na matriz como um todo, e cada padrão é distribuído sobre a matriz inteira. Adicionado e deletando par de padrões à matriz mestre – Nós podemos adicionar outro par de padrões [X4,Y4] à matriz mestre, adicionando a matriz correlação M4, associado a ele a matriz mestre M : M nova = M1 + M2 + M3 + M4 Alternativamente podemos a pagar um par de padrões, pela subtração da matriz correlação daquele padrão da matriz mestre. Por exemplo se desejamos remover o padrão [X3,Y3] da matriz memória (matriz mestre), bastaria subtrair da matriz memória a matriz M3 : M (nova) = M (antiga) – M3 02/05/02 70 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Este sistema tem toda característica de um sistema memória. Ele pode armazenar na memória, ele pode relembrar a partir da memória, ele pode escrever novas informações, e ele pode apagar informações antigas. Capacidade e eficiência de uma rede com sistema de memória- A capacidade de uma rede NxN neurônios é teoricamente limitada à aproximadamente N par de padrões. Na realidade, a capacidade real é maior da ordem de 10 a 15 % de N. Por exemplo, na matriz de 288 bits foi necessário (18 elementos de 16 bits por elemento) para armazenar três padrões de 9 (total) bits, ou 27 bits total. A operação de armazenar e relembrar requer varias operações com matriz(multiplicação, transposição, e adição). Com a tecnologia atual isto é muito menos eficiente que simplesmente armazenar os dados convencionalmente. Desvantagens – Existem muitas desvantagens a serem consideradas: 1. O número de conexão.- Uma rede de 100 nós tem 100x100 0u seja 10000 conexões no total; 2. Entrada somente binária – Para implementar um problema analógico, algumas transformações adequadas devem ser feitas para converter as quantidades analógicas em sinais digitais; 3. Capacidade – A armazenagem teórica é baixa para o número de conexões, e a capacidade real de armazenagem é ainda muito menor; 4. Ortogonalidade – Para melhor resultado, os padrões dados deverão ser ortogonais para minimizar a superposição; Tipo de redes memória associativa - Citamos a seguir algumas redes neurais baseadas no principio das memórias associativas e princípio de aprendizado não supervisionado: Rede BAM (Memória BAM) Rede Crossbar Rede Hopfield Rede Estocástica Camada de Kohonen Rede Counterpropagation Rede Probabilística Rede Função radial Rede Adapitativa Ressonate (ART) 02/05/02 71 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Camada de Kohonen A camada de Kohonen é um tipo de rede adaptativa e, um caso de redes neurais não supervisionadas, pertencente à classe de redes competitivas dentro das memórias adaptativas. Como o próprio nome indica, elas adaptam as novas situações. Todavia é desejável que as novas situações não difiram muito daquelas utilizadas na fase de estruturação da rede. O número de neurônios da rede deve ser igual aos possíveis grupos (aglomerações) que possam existir na operação normal da rede. A característica desta rede é que ela é treinada em operação (enquanto esta operando o sistema), devido a isto é indicada para alguns casos para operação on-line Estrutura Básica da rede Camada de Kohonen . . . W1 W YL Y1 1 Algoritmo – 1. Inicialize os pesos Wj (j = 1, 2,..... 2. Apresente um vetor Xq (normalizad em fazer os pesos da unidade que se trocados pelo do vetor Xq; 3. Se existe um Wk próximo de Xq, f calculando a distância Euclidiana expressão d = (∑ (xqi- wki)²)½); 4. Se não existe alguma unidade próxi unidade (mais próxima que não tenh Obs: Pode acontecer situações não da rede, em tal situação será preciso cri reconhecer esta nova situação outras ve Rede Neural Counterpropagation 02/05/02 L X Xn ......L) iguais , os pesos associados a cada vetor Wj; o) à entrada da rede; o processo de adaptação consiste identifique mais com o vetor Xq, tenham seus valores azer Wk = Xq (o critério de proximidade é realizado entre o vetor de entrada e o vetor peso utilizando a ma (Wk) ou que se identifique com Xq, escolher outra a sido modificada e fazer): Wk = Xq previstas, e que novos conjuntos apareçam na entrada ar mais neurônios para que a rede tenha capacidade de zes. 72 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Vi é o vetor peso conectando os neurônio da camada de Kohonen a cada neurônio 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 neurônio G1 da camada de Grossberg; No modelo counterpropagation, a camada 0 é denominada de camada de entrada, ela não desenvolve nenhum cálculo, cada neurônio na camada de entrada conecta a cada neurônio na camada 1, chamada de camada de Kohonen através de pesos separados wij, estes serão referidos coletivamente como uma matriz W, de maneira similar, cada neurônio da camada de Kohonen conecta a cada neurônio da camada de Grossberg através de um peso vnp, estes compreendem os elementos da matriz peso V. Esta estrutura é parecida com a de outros modelos, todavia a diferença esta no processamento feito pelos neurônios na camada de Kohonen e de Grossberg. Como em qualquer rede, a função counterpropagation é desenvolvida em dois modos: 1) modo normal, em que ela recebe um vetor de entrada X e produz um vetor de saída Y ; 2) modo de treinamento, em que um vetor é aplicado e os pesos são ajustados para produzir o vetor desejado de saída. Modo normal de operação – Camada de Kohonen Na sua simples forma, a camada de Kohonen para um dado vetor de entrada, um e somente um neurônio de Kohonen, apresenta saída lógica 1, e todos demais apresentam saída zero, isto é para um dado vetor de entrada existe um único neurônio vencedor. Conforme mostrado na figura anterior, associado a cada neurônio de Kohonen esta um conjunto de pesos conectando - o a cada vetor de entrada . Por exemplo o neurônio 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 neurônio 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 neurônio de Kohonen Netj = ∑ xi.wij i ou em notação vetorial 02/05/02 75 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG N = X. W Onde N é o vetor saída da camada de Kohonen O neurônio com o maior Net é o vencedor, sua saída é ajustada para um e os demais neurônios da camada de Kohonen tem suas saídas são ajustadas em zero. Camada de Grossberg – Na camada de Grossberg o Net de cada neurônio é a soma ponderada das saídas da camada de Kohonen, k1, k2,..............., kn, formando o vetor Ki. Os pesos conectando o vetor é designado como vetor V constituído pelos pesos v11, v21, ..................., vn1 . O Net do neurônio de saída da camada de Grossberg é então: Netj = ∑ ki.vij i =1, 2, .....,n ou na forma vetorial Y = K.V Onde Y vetor é à saída da camada de Grossberg K vetor saída da camada de Kohonen V Matriz peso da camada de Grossberg Se a camada de Kohonen é operada de modo que somente um neurônio está no nível “um” e todos outros com nível zero na saída, resulta que somente um elemento do vetor K é “um” e os demais são zero. Nesta condição, cada neurônio na camada de Grossberg reproduzirá na sua saída o valor do peso que conecta –o ao neurônio não 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 neurônio de Kohonen é calculado. O neurônio com maior produto escalar é declarado vencedor e seus pesos são ajustados. Por causa da operação 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 neurônio de Kohonen cujo vetor peso é mais similar ao vetor de entrada. É somente necessário garantir que o treinamento separa os vetores em grupos similares. A rede é auto organizada de forma que um dado neurônio de Kohonen tenha saída máxima para um dado vetor de entrada. A camada de Kohonen classifica os vetores de entrada em grupo que são similares. Isto é acompanhado pelo ajuste dos pesos da camada de Kohonen, de modo que vetores de entrada similares ativam o mesmo neurônio de Kohonen. 02/05/02 76 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Treinamento de Kohonen é um algoritmo auto – organizado que opera em um modo não supervisionado. Por este motivo é difícil predizer qual neurônio específico da camada de Kohonen será ativado para um dado vetor de entrada. Por outro lado. é responsabilidade da camada de Grossberg produzir a saída desejada a partir dos neurônios vencedores da camada de Kohonen, conforme será abordado posteriormente. O treinamento é baseado na equação seguinte: Wnovo = Wvelho + α(X – Wvelho) Onde: Wnovo é o novo valor de um peso conectando uma componente de entrada do vetor X ao neurônio vencedor; Wvelho é o valor de um peso conectando uma componente de entrada do vetor X ao neurônio vencedor na iteração anterior; α ( µ ) é a taxa de treinamento que pode variar durante o processo de treinamento. Cada peso associado com o neurônio vencedor Kohonen é modificado por uma quantidade proporcional à diferença entre seu valor e o valor da entrada a qual é conectado. A direção da mudança minimiza a diferença entre o peso e sua entrada. Na figura dada a seguir é ilustrado esse processo geometricamente num espaço de duas dimensões. Preprocessamento do vetor de entrada – É altamente desejável (mas não mandatária) normalizar todos os vetores de entrada antes de aplica- lo à 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. x´i = xi / ( ∑ (x i)² )½ 02/05/02 77 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG Passo 5- Repetir os passos de 2 até 4 para que todas as entradas correspondam satisfatoriamente às saídas Exemplo: Seja o mapa representativo de posição, representado pela matriz 8x8. A dimensão da matriz é 64. Isto corresponde a um vetor X de dimensão 64 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30 X31 X32 X33 X34 X35 X36 X37 X38 X39 X40 X41 X42 X43 X44 X45 X46 X47 X48 X49 X50 X51 X52 X53 X54 X55 X56 X57 X58 X59 X60 X61 X62 X63 X64 ( x1.............,..........x64) Os elementos do vetor X podem assumir valores " um ou zero " Assim para representar uma posição 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 posição 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 posição 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 posição 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 posição 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 AUTOMAÇÃO PUC - MG Assim para representar uma posição 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 COMPRESSÃO 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 AUTOMAÇÃO PUC - MG ASPECTOS PRÁTICOS DO USO DA REDE NEURAL Seleção de rede neural O procedimento de seleção de rede neural para solução de um problema, se faz comparando suas características com aquelas em outras aplicações que têm sido bem sucedidas. Com o objetivo de dar uma visão do campo de aplicação das redes neurais artificiais, Bailey e Thompson em 1990 fizeram um estudo no sentido de identificar o potencial de aplicação das redes neurais e um procedimento heurístico para orientação no uso com sucesso em suas aplicações. A seguir é dada uma orientação para os tipos de aplicação com sucesso: • Tecnologia convencional de computador é inadequada; • Problema que requer raciocínio qualitativo ou quantitativo complexo; • Solução é derivada a partir de parâmetros altamente interdependentes que não tem quantificação precisa; • O fenômeno envolvido depende de parâmetros múltiplos interangindo; • Os dados estão prontamente disponíveis, mas, são multivariados e intrinsecamente com ruído ou sujeitos a erros; • Existe uma grande quantidade de dados a partir de exemplos específicos úteis para modelar o sistema; • Alguns dos dados podem ser errôneos ou perdidos; • O fenômeno envolvido é tão complexo que outra abordagem não é apropriada, demasiadamente complicada ou demasiadamente expansiva; • O tempo para desenvolvimento do projeto é curto, mas o tempo disponível para treinamento da rede é suficiente. Aplicações bem sucedidas de redes neurais envolve reconhecimento de padrões, mapeamento estatístico, ou modelamento. Dentre aplicações bem sucedidas pode-se incluir validação de sinal, processo de monitoramento, diagnóstico, processamento de sinal e informação e controle de sistema complexo freqüentemente não linear.Contudo, problemas que pode ser resolvido usando metodologia convencional de computador especialmente aquelas que requer alta precisão ou envolve rigor matemático, não são 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, não supervisionado ou reforçado), depende dos dados disponíveis. O aprendizado supervisionado requer pares de dados consistindo de padrões de entrada e saída desejada, que são algumas vezes difícil de obter. Já o treinamento não supervisionado classifica internamente os padrões e não necessita de resultados esperados. Os dados necessários para treinamento não supervisionado são desta forma mais fáceis 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 AUTOMAÇÃO PUC - MG As referências abaixo relacionadas estão dispostas para uma orientação de leitura de maneira gradativa como uma iniciação ao estudo de redes neurais artificiais. 1. Redes Neurais Artificiais – Teoria e Aplicações Antonio de Pádua Braga Teresa Bernarda Ludeemir Andre´Carlos Ponce de Leon Ferreira Carvalho Editora – Livros Técnicos eCientíficos Editora S.A. - 2000 2. Redes Neurais Artificiais – Fundamentos e Aplicações Zsolt L. Kovács Editora collegium cognito – São Paulo - Segunda Edição –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 Aplicações: 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 AUTOMAÇÃO PUC - MG Editora: Chapman & Hall, London, 1994 02/05/02 86 CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG ANEXO TOOLBOX DE REDES NEURAIS 02/05/02 87
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved