Académique Documents
Professionnel Documents
Culture Documents
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.
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
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.
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.
02/05/02 2
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Pelo outro lado, entretanto, o “renascimento” do interesse científico teve início através dos
físicos com uma aplicação dos conceitos “conexionistas” ao problema de modelagem de
materiais paramagnéticos como o “vidro spin” realizada por Hopfield (3) e publicada em
1982. A idéia básica era a da analogia entre o spin magnético de um átomo influenciando
a todos os demais existentes no vidro e evidentemente, sofrendo a influência de todos na
determinação de sua própria orientação magnética. Esta analogia gerou um modelo
dinâmico não linear que se provou ser estável desde que a matriz de pesos que medem a
força de interação entre cada par de fosse simétrica. Esta condição é naturalmente
verificada no problema físico que estava sendo modelado e, portanto, não causou
dificuldades para sua aplicação.
Em 1986 ocorreu o fato que efetivamente colocou a área de “Redes Neurais Artificiais”
como uma das prioritárias na obtenção de recursos. Este fato foi à explicação por
Rummelhart, Hinton e Williams (4) de um algoritmo de aprendizado (backpropagation)
para redes do tipo Perceptron com estrutura multicamadas, fazendo cair definitivamente à
alegação 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 solução para problemas simples de classificação, não
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 não relacionados diretamente com redes neurais.
Hoje redes neurais constituem uma teoria para estudo problemas ou fenômenos
complexos. É considerada como um ramo ou sub especialidade da inteligência artificial.
Após a publicação em 1986 do clássico “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 década de 1980 e um
volumoso número de pesquisa e trabalhos têm sido realizados, apesar da falta de um
corpo teórico consolidado, e a inexistência de livros abrangentes.
Após as considerações sobre a evolução histórica das redes neurais, cabe uma pergunta.
- Reconhecimento de Padrões -
Reconhecemos com relativa facilidade um rosto visto anteriormente, mas um algoritmo
para realizar esta tarefa pode ser bastante complexo;
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.
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”.
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.
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.
Este fenômeno é o potencial de ação, que passa propagar ao longo da fibra nervosa
(axônio), na forma de uma onda, com velocidade de dezenas de centímetros por
segundo, em fibras mielinizadas pode atingir até 150m / seg.
Após a ocorrência de um impulso nervoso a membrana entra num período conhecido com
refração absoluta, durante o qual é incapaz de produzir outro potencial de ação
independente da intensidade da despolarização. Seguido a este período tem-se o período
de refração relativa, correspondente a um período de redução do potencial eletronegativo
até o limiar de disparo. Durante o período de refração relativa, a fibra nervosa (axônio) é
02/05/02 8
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
02/05/02 9
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Neste modelo cada entrada recebe um estímulo x j 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:
(∑ ( 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);
02/05/02 10
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
W™= [ wi1, wi2,………., win] é o vetor transposto dos pesos da ligação sináptica do i –
ézimo neurônio;
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:
Oi = fi(Net(i))
O modelo de McCulloch-Pitts
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 degrau –
y = f ( net)
Uma das seguintes situações pode acontecer:
y=1 se net ≥ 0
y=0 se net < 0
ne
Função degrau
Função sigmoide
02/05/02 12
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
φ(I) = ( 1 + eª )¯¹
onde : a = -α I (-αnet) , no caso específico 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 variação da função sigmóide e de sua derivada em função de α .
02/05/02 13
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
02/05/02 14
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
= (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)
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:
Discriminador Linear-
02/05/02 16
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Y = H( ∑ wi xi - θ) , i = 1 .........n
= H ( W X - θ) , quando y ∈ [0;1]
Desta maneira X = [x1, x2,....................., xn] pode estar em uma das regiões se
por acaso se verificar:
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)
02/05/02 17
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
( < ( X – Y ), ( X – Y )> ) ½
Exemplo:
Exemplo:
φ1 = { U1, U2,.........................., Uk }
φ2 = { Z1, Z2,.........................., Zm }
Onde:
Ui → vetor de dimensão n (i = 1,.............,k; representa o número de vetores da
coleção)
Zj → vetor de dimensão n (j = 1,............,m; representa o número de vetores da
coleção)
O problema aqui a ser abordado, consiste em separar estas duas coleções de vetores φ1
e φ2.
Neste caso diz-se que existirá um discriminador linear ou seja um hiperplano capaz
de separar as duas coleções de vetores φ1 e φ2 desde que elas sejam linearmente
separáveis. Caso contrário não existirá nenhum hiperplano ou discriminador linear capaz
de separar as duas coleções.
02/05/02 19
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.
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
N1 → f1 = X1. X2
N2 → f2 = X1. X2
N3 → f3 = f1 ∪ f2
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 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.
02/05/02 21
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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:
02/05/02 22
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
• Execução assíncrona: Quando cada unidade tem associada a ela uma função de
probabilidade para entrar em operação em cada instante “t”. Usualmente não é
permitida operação de mais de duas unidades no mesmo instante. Este modo tem a
maior analogia com os processos biológicos reais, porém acarreta maiores dificuldades
nas implementações feitas em computadores digitais.
Uma vez calculada a entrada líquida neti , ela é convertida para um valor de ativação ou
simplesmente ativação, para a unidade processadora ( PE). Podemos escrever este valor
de ativação como:
ai ( t ) = Fi ( ai ( t − 1), neti ( t ))
Note que a ativação é uma função explicita da entrada líquida, ele pode depender de um
valor prévio da ativação a ( t − 1) 2 . Incluindo esta dependência na definição para
generalidade. Na maioria dos casos a ativação e entrada líquida são idênticas e os termos
são freqüentemente intercambiáveis.
Uma vez calculada a ativação da PE, podemos determinar o valor de sua saída aplicando
uma função de saída:
Oi = f i (ai )
Oi = f i (neti )
02/05/02 23
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Por todos anos de pesquisa de diferentes disciplinas tem chegado a um acordo com um
vasto número 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- Notação
Note que nem todo símbolo tem significado completo para todas redes e que em alguns
casos sub índice ou sobre índices podem ser abandonados ou adicionados.
Exemplos de notação são apresentados a seguir:
i (,j,k,...) a unidade;
x p → p-ésimo vetor padrão;
x ip → i-ésimo elemento do p-ésimo vetor padrão de entrada;
i p → entrada para um conjunto de neurônio quando vetor padrão p é apresentado à rede.
i ip → entrada líquida do i-ésimo neurônio devido ao vetor padrão x p → { p}
o p →saída da rede quando o vetor padrão x p → {p }é apresentado à entrada da rede;
o ip → saída do i-ésimo elemento da rede quando o vetor padrão x p → { p } é apresentado
à entrada da rede.
02/05/02 24
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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.
02/05/02 25
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
[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 1011 neurônios
e estima-se que cada um se conecte a 1000 ou 10000 outros. Estes números indicam que
a matriz [W] do cérebro humano é bastante esparsa.
É 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;
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
ALGORITMOS DE APRENDIZADO –
Conforme falado anteriormente é necessário ajustar os pesos para obter a saída 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 Princípio de Aprendizado de Hebb, no qual as intensidades das conexões sinápticas
são alteradas em função dos erros detectados localmente. Este princípio pode ser traduzido
conforme expressão dada a seguir:
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 programação.
Algoritmo –
Apresente as entradas X0, X1, X2, ........, XN e as saídas desejadas ydl(t) l= 0, 1....,N;
02/05/02 28
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Note que os pesos não são corrigidos se a rede toma a decisão correta. Também os pesos não
são corrigidos para a linha de entrada que não contribui para a resposta correta, uma vez que o
peso é ajustado pelo valor da entrada xi(t) que seria zero. Este é o algoritmo básico do
perceptron.
Todavia, várias modificações têm sido sugeridas para este algoritmo básico. A
primeira modificação foi à introdução de um fator de multiplicação 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 direção da solução.
Esta alteração acarreta mudança no quarto passo do algoritmo básico, conforme apresentado a
seguir:
5. Ajuste os pesos
6.
Se saída calculada yl é igual à saída desejada então faça:
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.
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)
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 é:
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.
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);
dimensão do vetor X ) vetores colunas linearmente independentes, com isto a matriz será
não singular e conduzirá a solução única, P = (Tkp Xp™) é um vetor de dimensão (nx1).
Onde: Tkp é a saída desejada do k-ésimo neurônio da rede, é portanto um escalar
Wk *= R¯¹ P
A correção do vetor peso Wk é feita no sentido de encontrar o valor do vetor peso que
minimize a função panorama do erro ρ(W) ou seja E(e² (w)) isto é obtido através da
expressão:
W (t+1) k = W (t) k - µ ∇ρ(W)
Onde:
02/05/02 33
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Com o objetivo de reduzir problema de instabilidade numérica no processo de ajuste dos pesos no
processo de treinamento, é aconselhável normalizar os vetores de entrada, e os vetores pesos, com
isto reduzindo a relação entre os valores máximos e mínimo dos autos-valores da matriz peso.
Processo de normalização:
A normalização das componentes do vetor de entrada é feita, dividindo xi
= ηε.xi / X²,
neste caso a taxa de aprendizado η passa a ser dada por:
η = [ 2 µ X²]
02/05/02 34
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
∂ε²k(w)/ ∂wi = 0
02/05/02 35
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
= 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.
Passos Ação
2. Escolher para cada Xkp uma saída desejada dkp ((Tkp, ydkp)
correspondem à mesma saída desejada);
02/05/02 36
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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.
ε(W(t)) = W ²
Cálculo do gradiente:
Gradε(W (t)) = ∂ε(W (t))/∂w(t) = 2 W(t)
02/05/02 38
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
02/05/02 39
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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.
02/05/02 40
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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:
Onde:
Onde:
(∂ε²q / ∂φ(I)qk) = - 2 [ Tqk - φ( I)qk] (B)
02/05/02 42
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Uma vez que estamos nos referindo a um único peso, somente um termo da soma da
equação de Iqk é mantido.
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 quadrático com relação
ao peso da camada intermediária a ser ajustado. Assim de maneira semelhante àquela
utilizada para ajustar o peso da camada de saída k, tem-se:
uma vez que várias saídas com erros podem estar envolvidas.
02/05/02 44
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.
Lembrando que:
Iqk = ∑wpqk.φ(I)pj
p = 1, 2, ...............n
A soma sobre p desaparece no resultado anterior porque somente uma conexão está
envolvida.
( ∂ 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:
02/05/02 45
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
q = 1 .............r
α(φ(I)pj [1 - φ(I)pj]) xh
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:
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
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
i l p = fpj (net l p)
Seja o erro:
δlq = (d lq - O lq)
02/05/02 47
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
onde:
δlq =(d lq - O lq)
(∂fq)/(∂ net lqp) = f′q (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
fq → fp
olq → ilp
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
Algoritmo ( implementação)
Seja o conjunto de treinamento ( X l, d l ).
Passos Descrição
(i) Entrar com Xl = (xl1,..........xln)™ e dl
tomar xl0 = 1
(ii) Calcular a saída linear da camada intermediária
net l p = ∑ whp. ;( p = 1,...., m)
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;
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.
02/05/02 52
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Procedimento
Neurônio D:
Id = 0.4 x 0.4 + (-0.7) x 0.2 + 1 x (-0.2)
Id = - 0.18
Cálculo da saída dos neurônios da camada intermediária
Neurônio C:
φ(Ic) = 0,42
Neurônio 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 neurônio da camada de saída através
da expressão:
Iqk = ∑wpqk.φ(I) pj, para os neurônios da camada de saída.
p = 1, 2, ...............n
02/05/02 53
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Neurônio E
ε(e) = [ Te - φ( Ie) ]
ε(e) = [ 0,1 – 0,32]
ε(e) = - 0, 22
4. Cálculo do ajuste dos pesos entre a camada intermediária e a camada de saída
6. Cálculo dos ajustes dos pesos entre os neurônios da camada de entrada e a camada
intermediária
7.Cálculo do ajuste dos pesos dos limiares dos neurônios e D da camada intermediária
w (n + 1) = w(n) + ∆w(n)
onde: n+1 é a iteração atual
n é a iteração anterior
02/05/02 55
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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.
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:
[ ∑ 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 wq1 q
W1 yq
xh
1
wq2
W2
2
wmh wqm
02/05/02 57
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Uma dentre várias técnicas que iremos apresentar aqui a CMAC (Cerebelumm Model Articulation
Controller), desenvolvida por James Albus num esforço para projetar um controlador que trace a
origem da funcionalidade do cérebro.
O CMAC é em muitos aspectos similar ao funcionamento do algoritmo backpropagation. Ambos
necessitam de supervisão para aprender, eles associam a um dado padrão de entrada um padrão de
saída (ou um padrão de resposta para saída). O CMAC usa como algoritmo de aprendizado, o
Widrow – least – mean – square (ou regra delta de aprendizado) que utiliza o método do gradiente
passo descendente, para calcular o erro mínimo:
Uma das principais características do CMAC é sua rápida velocidade de aprendizado, comparado
com o algoritmo de aprendizado backpropagation. Em adição, as entradas e saídas do CMAC são
números binários (1 ou 0). Deste modo, o CMAC é facilmente implementado com relativa rapidez
com circuito CMOS de baixa potência.
representação escolhido para uma aplicação específica. Não existem restrições acerca do número
de camadas ocultas. Contudo não existe nenhuma evidência de que a rede com maior número de
camadas ocultas apresenta melhor desempenho. Por outro lado às camadas ocultas podem ter
quantos nós 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 número de camada apresenta melhor desempenho, porém com aumento do tempo de
treinamento, quando comparado com uma rede de menor número de camada. O tempo de
treinamento é diretamente dependente do tamanho da rede, sendo maior para rede de maior
tamanho. Quanto ao número de nós por camadas ocultas existe um teorema proposto por
Kolmogorov que diz: “uma rede neural de três camadas, com n neurônios na camada de entrada e
m neurônios na camada de saída, poderá ter 2n+1 neurônios na camada intermediária ou oculta”.
As redes com essa arquitetura podem ser utilizadas para resolver com sucesso problemas com
características não lineares.
A escolha do valor da taxa de aprendizado é uma outra consideração 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 período de treinamento ou ela pode
mudar após um certo período. No começo do período de treinamento, a taxa de aprendizado pode
assumir grandes valores, com isto aumentando a taxa de convergência. Após um certo período de
tempo a taxa será reduzida para produzir pequenos ajustes no peso, caso contrário ela pode criar um
comportamento oscilatório próximo ao valor ótimo do erro Parlos [1992]. A taxa de aprendizado é
ajustada em função do gradiente do erro. Esta dependência da taxa de aprendizado produz uma
vantagem em relação ao algoritmo convencional backpropagation, porque ele permite o ajuste
dinâmico da taxa resultando numa convergência forte. A desvantagem do algoritmo é quando ele
aproxima do valor ótimo, onde ocorre um comportamento oscilatório no ajuste do peso. Este
algoritmo é mais adequado para aplicação em problema analógico do que com problema binário. O
processo de treinamento pode ser terminado quando o erro da rede é menor que um valor aceitável
estabelecido no início do processo de treinamento. Todavia é possível neste processo caminhar para
o mínimo local durante o treinamento, em lugar do mínimo global.
Com o objetivo de evitar este problema vários algoritmo modificado tem sido propostos
[Dgali 1991], [Cybenco 1980]. Fahlman 1988 propôs um algoritmo backpropagation modificado,
usando a mudança anterior do peso para gerar a mudança no próximo ciclo de treinamento.
Yld = αyld + β
µ 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:
0 = grad(E(w))+ H ∆w
02/05/02 60
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Método do Momento
Este método foi proposto por Rummelhart,Hinton e Willanms(1986), para melhorar o tempo
de treinamento do algoritmo backpropagation
∆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)
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.
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
A nova função é
Onde: a = net
02/05/02 63
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Conforme já mencionado no início desta nota, no aprendizado não supervisionado a saída da rede
não é conhecida , portanto não existe cálculo de erro entre valor desejado de saída e a saída real da
rede, neste processo basicamente classifica grupo de entrada ou seja reconhece-se padrões.
A memória associativa pode ser considerada como uma variante de um classificador de padrões, no
qual as categorias de classificação são representadas pelos vetores armazenados.
Um padrão isolado p pode ser classificado pela memória numa das categorias de padrões,
dependendo apenas do critério de proximidade (ou distância) que se definiu para a memória.
Um dos critérios de distância ou proximidade entre dois ou mais vetores com componentes
binárias e de mesma dimensão, normalmente adotada em estudo de memória associativa como um
associador linear é à distância de Hamming.
0≤h≤n
Se os vetores são binários constituídos de por zero e um ( [0,1]) a distância é dada por:
h(x,y) = ∑( yi( 1- xi) + ( 1- xi) xi)
02/05/02 64
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)²)½
Se xi = yi então ( xi – yi )² = 0
Se xi ≠ yi então ( xi – yi )² = 4
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:
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
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.
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:
Na equação precedente todos os termos δij desaparecem, exceto δ22, que é igual a 1. O resultado é:
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
Exemplo:
Vamos considerar os três pares dados a seguir:
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 AUTOMAÇÃO 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
-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
Note que cada matriz é produto de duas quantidades, uma componente de X e uma componente de
Y este produto xiyi é uma indicação clássica que o aprendizado de Hebb esta envolvido.
A fim de obter uma memória associativa (chamada matriz mestre dos pesos) capaz de armazenar os
três pares ( X1,Y1), ( X2,Y2), ( X3,Y3), nós simplesmente adicionamos as três matrizes de
correlação 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. Então isto significa que
todos Xi padrões devem ter o mesmo número de componentes, e todos os Yi padrões devem ter o
mesmo número de componentes . Contudo, o número de componentes de Xi pode ser diferente do
número de componente de Yi.
02/05/02 68
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO 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 (A)
E
Yi = MXi (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:
-1 +3 –1
1
+3 –1 –1
-1 –1 + 3
-1
1 1 1
+3 -1 -1
-1
-3 +1 +1
O resultado do produto anterior da matriz M e vetor Y2 , é o vetor X2, que tem como transposto cujo X2.
02/05/02 69
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.
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.
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
X1
Y1
W1
Xn .
.
.
YL
WL
Algoritmo –
02/05/02 72
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Estrutura da rede
W11 K1 G1 Y1
X1 V11
W21 V21
Wm1 Vn1
X2 K2 G2 Y2
.
.
.
Gn Yn
Xm
Kn
02/05/02 73
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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 são iguais, mas são próximas).
Wi é o vetor peso conectando o vetor de entrada a cada neurônio ki da camada de
Kohonen;
Exemplo:
W1 = { w11, w21,.........................................., wm1 }, é o vetor peso que liga o vetor de
entrada X ao neurônio K1, na camada de Kohonen
02/05/02 74
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
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;
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:
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
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
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.
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.
É 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
Isto converte o vetor de entrada num vetor unitário na mesma direção. Isto é um vetor de
comprimento unitário num espaço n – dimensional.
A equação apresentada anteriormente para normalização do vetor de entrada aplicada a um espaço
de duas dimensões, generaliza o caso em que o comprimento do vetor é igual à hipotenusa do
triângulo retângulo.
Na figura apresentada a seguir é ilustrado o processo de normalização da como mencionado
anteriormente.
ALGORITMO
Passo 1
As unidades da camada intermediárias 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 AUTOMAÇÃO 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
Passo 7
Repetir os passos de 2 até 6 para todos os conjuntos de padrões (imagens)
Passo 8
Repetir o passo 7 até classificar as aglomerações de vetores de entrada
Passo 1 -
Inicializar os pesos da camada de saída 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 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)
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
Escolha da saída
02/05/02 83
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Step (tem saída limitada binária {0, 1}), freqüentemente utilizada quando a entrada e
saída são binárias;
Sinal (tem saída bipolar {-1, 1}), freqüentemente utilizada quando a entrada e saída
são bipolares.
Certos modelos de rede como Backpropagation, requer que a função de ativação e
sua derivada sejam contínuas, então neste modelo de rede são usadas somente
funções contínuas como função de ativação.
Uma rede Neural Perceptron Multicamada (NPM), tipo Backpropagation, com três
camadas, possui uma camada de entrada, uma camada intermediária e uma camada
de saída. O número de camada pode ser maior dependendo da precisão que se
deseja no mapeamento da entrada na saída. O aumento do número de camadas
intermediárias aumenta a potência da rede neural, mas requer um tempo
significativamente maior para treinamento e um número grande de exemplo de
treinamento para treinar a rede adequadamente. As camadas intermediárias atuam
como camada de síntese, extraindo as características dos padrões de entrada da
rede neural.
02/05/02 84
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
Aplicações:
8. Patter Recognition with Neural Networks in C++
Abhijit S. Pandya and Robert B. Macy
Editora: CRC – Press – IEEE Press, USA , 1995
02/05/02 86
CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO PUC - MG
ANEXO
02/05/02 87