Download - Algoritmos de Aprendizado - UFSC
1
Algoritmos de AprendizadoAlgoritmos de Aprendizado•Regra de Hebb•Perceptron•Delta Rule (Least Mean Square)•Back Propagation•Hopfield•Competitive Learning•Radial Basis Function
Back PropagationBack Propagation
• Redes de apenas uma camada só representam funções linearmente separáveis
• Redes de múltiplas camadassolucionam essa restrição
• O desenvolvimento do algoritmo Back Back PropagationPropagation foi um dos motivos para o ressurgimentoressurgimento da área de Redes Redes NeuraisNeurais
2
Back PropagationBack Propagation
• O grande desafiodesafio foi achar um algoritmo de aprendizado para a atualização dos atualização dos pesospesos das camadas intermediárias.
• Idéia Central:– Os erroserros dos elementos processadores da
camada de saídacamada de saída (conhecidos pelo treinamento treinamento supervisionadosupervisionado) são retroretro--propagadospropagados para as camadas intermediáriascamadas intermediárias
Back PropagationBack Propagation
Padrão de
Entrada:vetor X
x1
x2
xi
sj
netj
w1j
w2j
wij
Bias = θθθθj+1
Modelo básico do Neurônio Artificial:
3
Back PropagationBack Propagation
•• Características Básicas:Características Básicas:– Regra de Propagação � netj = ΣΣΣΣ xi.wij + θθθθj– Função de Ativação � Função NNããoo--LinearLinear,
diferencidiferenciáávelvel em todos os pontos.– Topologia � MMúúltiplasltiplas camadas.– Algoritmo de Aprendizado � Supervisionado
Back PropagationBack Propagation
Topologia:Topologia:
PE1
Camadas Escondidas Camada Camada de Saídade SaídaEntradaEntrada
PEm
PEkPEjPEi
PE1
PE1PE1
4
Processo de AprendizadoProcesso de Aprendizado
• Processo de minimizaçãominimização do erro quadrático pelo método do Gradiente Gradiente DescendenteDescendente � ∆∆∆∆wij = -ηηηη δδδδE
δδδδwij• Cada peso peso sinsináápticoptico ii do elemento
processador jj é atualizado proporcionalmente ao negativo da negativo da derivada parcial do erroderivada parcial do erro deste processador com relação ao peso.
Processo de AprendizadoProcesso de Aprendizado
�Onde o erro quadrático do processador jé definido como:
• Ej = 1 (tj - sj)2
2• tj = valor desejado de saída para o processador j
da camada de saída
• sj = estado de ativação do processador j da camada de saída
5
Processo de AprendizadoProcesso de Aprendizado
�Na verdade, deve-se minimizarminimizar o erro de todos os processadorestodos os processadores da camada de saída, para todos os padrõestodos os padrões
Usa-se o EESSESSE � SSumum ofof SSquared quared EErrorsrrors
Processo de AprendizadoProcesso de Aprendizado
EESSESSE � SSumum ofof SSquared quared EErrorsrrors• ESSE = 1 Σp Σj (tpj - spj)2
2• tpj = valor desejado de saída do padrão p para o
processador j da camada de saída• spj = estado de ativação do processador j da camada
de saída quando apresentado o padrão p
6
Processo de AprendizadoProcesso de Aprendizado
EESSESSE � SSumum ofof SSquared quared EErrorsrrors
Vantagem:Vantagem: os erros para diferentes padrões, para diferentes saídas são INDEPENDENTESINDEPENDENTES
Cálculo de Cálculo de ∆∆∆∆∆∆∆∆wwijij
∆∆∆∆wij = -ηηηη δδδδEp = - ηηηη δδδδEp δδδδnetjδδδδwij δδδδnetj δδδδwij
netj = ΣΣΣΣ si.wij + θθθθj
∆∆∆∆wij = ηηηη . eejj . ssii
ej = - δδδδEpδδδδnetj
7
Cálculo de Cálculo de eejj
δδδδEp= δδδδEp . δδδδsjδδδδnetj δδδδsj δδδδnetj
sj = F(netj)
ej = - δδδδEpδδδδnetj
Depende da camada à qual o processador jj pertence:
FF’’((netnetjj))Se j ∈∈∈∈ Camada de Saída ���� ☺☺☺☺
Se j ∉∉∉∉ Camada de Saída ���� ����
Cálculo de Cálculo de eej j j j ∈∈∈∈∈∈∈∈ Camada de SaCamada de Saíídada
δδδδEp= δδδδEp . δδδδsjδδδδnetj δδδδsj δδδδnetj
sj = F(netj)
ej = - δδδδEpδδδδnetj
FF’’((netnetjj))
EEpp==ΣΣΣΣΣΣΣΣjj 1 (t1 (tjj -- ssjj))2 2
22
[[ 2 . 2 . 1 (1 (ttjj -- ssjj).().(--1)]1)]2 2
ej == -- [ [ -- ((ttjj -- ssjj) ] ) ] . . FF’’((netnetjj)) == (tj - sj) F’(netj)
8
Cálculo de Cálculo de eej j j j ∈∈∈∈∈∈∈∈ Camada EscondidaCamada Escondida
δδδδEp= δδδδEp . δδδδsjδδδδnetj δδδδsj δδδδnetj
sj = F(netj)
ej = - δδδδEpδδδδnetj
FF’’((netnetjj))
EEpp = f(= f(sj) = ?) = ?
• Pelo aprendizado supervisionadoaprendizado supervisionado, só se conhece o erro na camada de saerro na camada de saíídada ((eekk));
• Erro na saída (ek) é função do potencial potencial internointerno do processador ((netnetkk););
• O netk depende dos estados de ativaestados de ativaçãçãoo dos processadores da camada anterior ((ssjj) ) e dos pesos das conexões ((wwjkjk););
• Portanto, ssjj de uma camada escondida afeta, em maior ou menor grauem maior ou menor grau, o erro de todos os processadores da camada subsequente.
Cálculo de Cálculo de eej j j j ∈∈∈∈∈∈∈∈ Camada EscondidaCamada Escondida
9
F(net)
Processador j j da camada escondida
PE1
PE2
PEk
wj1
wj2
wjk
e1
Cálculo de Cálculo de eej j j j ∈∈∈∈∈∈∈∈ Camada EscondidaCamada Escondida
sj
sj
sj
e2
ek
Cálculo de Cálculo de eej j j j ∈∈∈∈∈∈∈∈ Camada EscondidaCamada Escondida
δδδδEp= δδδδEp . δδδδsjδδδδnetj δδδδsj δδδδnetj
sj = F(netj)
ej = - δδδδEpδδδδnetj
FF’’((netnetjj))
δδδδ EEpp = = δδδδ [ 1 ΣΣΣΣk (tk - sk)2 ]δδδδsj δδδδsj 2
= 2. 1 [ ΣΣΣΣk (tk - sk) ] .(-1). δδδδsk2 δδδδsj= - [ ΣΣΣΣk (tk - sk) ] . FF’’((netnetkk) . ) . δδδδδδδδnetnetkk
δδδδδδδδssjj
ej = = -- {{-- ΣΣΣΣk ek. . wwjkjk } . } . FF’’((netnetjj) ) ej = = FF’’((netnetjj) . ) . ΣΣΣΣk ek. . wwjkjk
10
Processo de AprendizadoProcesso de Aprendizado
• Em resumo, após o cálculo da derivada, tem-se:
– ∆∆∆∆wij = ηηηη.si.ej
Onde:si � � � � valor de entrada recebido pela conexão iiej ���� valor calculado do erro do processador jj
Cálculo do Erro (Cálculo do Erro (eejj))
��Processador j pertence à Processador j pertence à Camada de SaídaCamada de Saída::
ej = (tj - sj). δδδδ F(net)δδδδ net
F(net)wijssii
saída: ssjj
Processador j j da camada de saída
Valor desejado de saída: ttjj
11
Cálculo do Erro (Cálculo do Erro (eejj))
��Processador j pertence à Processador j pertence à Camada EscondidaCamada Escondida::ej = (ΣΣΣΣ ek.wjk).δδδδ F(net)
δδδδ net
F(net)wijssii
Processador j j da camada escondida
PE1
PE2
PEk
wj1
wj2
wjk
e1
e2
ek
ProcessoProcesso de de AprendizadoAprendizado
O algoritmo Back Propagation tem portanto duas fases, para cada padrão apresentado:
–– FeedFeed--ForwardForward ���� as entradasentradas se propagam pela rede, da camada de entrada até a camada de saída.
–– FeedFeed--BackwardBackward ���� os erroserros se propagam na diredireçãção contro contráária ao fluxoria ao fluxo de dadosde dados, indo da camada de saída até a primeira camada escondida.
12
Processo de AprendizadoProcesso de AprendizadoFase 1: Feed-Forward
PE1
2 Camadas Escondidas Camada Camada de Saídade SaídaEntradaEntrada
PEm
PEkPEi
PE1
PE1
Valor de entrada
Fluxo de DadosFluxo de Dados
Processo de AprendizadoProcesso de Aprendizado
PE1
Camada Camada de Saídade SaídaEntradaEntrada
PEm
PEkPEi
PE1
PE1
Valor de entrada
Fase 1: Feed-Forward
2 Camadas Escondidas
Fluxo de DadosFluxo de Dados
13
Processo de AprendizadoProcesso de Aprendizado
PE1
Camada Camada de Saídade SaídaEntradaEntrada
PEm
PEkPEi
PE1
PE1
Valor de entrada
Fase 1: Feed-Forward
2 Camadas Escondidas
Fluxo de DadosFluxo de Dados
Processo de AprendizadoProcesso de Aprendizado
PE1
Camada Camada de Saídade SaídaEntradaEntrada
PEm
PEkPEi
PE1
PE1
Valor de entrada
Fase 1: Feed-Forward
2 Camadas Escondidas
Fluxo de DadosFluxo de Dados
14
Processo de AprendizadoProcesso de Aprendizado
PE1
PEm
PEkPEi
PE1
PE1
Valoralvo
Fase 2: Feed-BackwardCálculo do erro da camada de saída
ssmm
ss22
ss11
ttmm
tt22
tt11
em = (tm - sm). F’(net)eemm = (= (ttmm -- ssmm). F). F’’(net)(net)
Fluxo de ErrosFluxo de Erros
Processo de AprendizadoProcesso de Aprendizado
PE1
PEm
PEkPEi
PE1
PE1
Fase 2: Feed-BackwardAtualização dos pesos da camada de saída
ssmm
ss22
ss11
ttmm
tt22
tt11
em
e1 e1
e1
e1
em
emem
ww1212
wwkmkm
ww1111
ww1m1m
∆∆∆∆wkm = ηηηη.sk.em∆∆∆∆wkm = ηηηη.sk.em
Fluxo de ErrosFluxo de Erros
15
Processo de AprendizadoProcesso de Aprendizado
PE1
PEm
PEkPEi
PE1
PE1
Fase 2: Feed-BackwardCálculo do erro da 2°°°° camada escondida
ssmm
ss22
ss11
ttmm
tt22
tt11
em
e1 e1
e1
e1
em
emem
ww1212
wwkmkm
ww1111
ww1m1m
ek = (ΣΣΣΣ em.wkm).F’(net)eekk = = ((ΣΣΣΣΣΣΣΣ eemm..wwkmkm).).F’(net)F’(net)
Fluxo de ErrosFluxo de Erros
Processo de AprendizadoProcesso de Aprendizado
PE1
PEm
PEkPEi
PE1
PE1
Fase 2: Feed-BackwardAtualização dos pesos da 2°°°° camada escondida
∆∆∆∆wik = ηηηη.si.ek∆∆∆∆∆∆∆∆wwikik = = ηηηηηηηη .s.sii..eekk
e1
ekekekek
e1e1
e1
wwikik
ww1313ww1k1k
ww1212
ww1111
Fluxo de ErrosFluxo de Erros
16
Processo de AprendizadoProcesso de Aprendizado
PE1
PEm
PEkPEi
PE1
PE1
Fase 2: Feed-BackwardCálculo do erro da 1°°°° camada escondida
ei = (ΣΣΣΣ ek.wik).F’(net)eeii = = ((ΣΣΣΣΣΣΣΣ eekk..wwikik).).F’(net)F’(net)
e1
ekekekek
e1e1
e1
wwikik
ww1313ww1k1k
ww1212
ww1111
Fluxo de ErrosFluxo de Erros
Processo de AprendizadoProcesso de Aprendizado
PE1
PEm
PEkPEi
PE1
PE1
Fase 2: Feed-BackwardAtualização dos pesos da 1°°°° camada escondida
∆∆∆∆wik = ηηηη.si.ek∆∆∆∆∆∆∆∆wwikik = = ηηηηηηηη .s.sii..eekk
ei
eiei
ei
e1e1 e1
e1
Fluxo de ErrosFluxo de Erros
ww3i3iwwnini
ww2i2iww1i1i
17
Processo de AprendizadoProcesso de Aprendizado
�Este procedimento de aprendizado é repetidorepetido diversas vezesdiversas vezes, até que, para todos os processadores da camada de todos os processadores da camada de saídasaída e para todos os padrões de todos os padrões de treinamentotreinamento,, o erro erro seja menor do que o especificado.
Algoritmo de AprendizadoAlgoritmo de AprendizadoInicializaçãoInicialização::
pesos iniciados com valores aleatórios e pequenos ((||||||||ww|≤|≤|≤|≤|≤|≤|≤|≤0.1)0.1)Treinamento:Treinamento:�������� Loop até que o erroerro de cada processador de saída seja ≤≤≤≤≤≤≤≤ tolertolerâânciancia,
para todos os padrões do conjunto de treinamento.� Aplica-se um padrpadrãão de entrada o de entrada XXii com o respectivo vetor de vetor de sasaíída da YYii desejadodesejado.� Calcula-se as sasaíídasdas dos processadores, começando da primeira camada escondida até a camada de saída.� Calcula-se o erroerro para cada processador da camada de saída. Se erro erro ≤≤≤≤≤≤≤≤tolertolerâânciancia, para todos os processadores, volta ao passovolta ao passo �.� Atualiza os pesosAtualiza os pesos de cada processador, começando pela camada de saída, até a primeira camada escondida.� Volta ao passo �
18
Avaliação do AlgoritmoAvaliação do Algoritmo• Foi demonstrado (Cybenko 1989) que o
Back PropagationBack Propagation é um Aproximador Aproximador UniversalUniversal, isto é, pode representar qualquer função.
• É o algoritmoalgoritmo de Redes Neurais mais mais utilizadoutilizado em aplicações práticas de previsãoprevisão, classificaçãoclassificação e reconhecimento de padrõesreconhecimento de padrões em geral.
Avaliação do AlgoritmoAvaliação do Algoritmo
• Apesar do grande sucesso do Back Propagation, existem alguns problemas:
– definição do tamanho da redetamanho da rede;
– problema de paralisiaparalisia da Rede Neural;
– problema de ficar preso em um mínimo localmínimo local.
19
Tamanho da Rede NeuralTamanho da Rede Neural
• Define o número de camadas número de camadas escondidasescondidas e o número de número de processadoresprocessadores em cada uma dessas camadas.
• Compromisso entre ConvergênciaConvergência e GeneralizaçãoGeneralização.
ConvergênciaConvergência
• É a capacidade da Rede Neural de aprender todos os padrõesaprender todos os padrões do conjunto de treinamento.
• Se a rede neural for pequenapequena, nnããoo serácapaz de armazenararmazenar todos os padrões necessários.
20
GeneralizaçãoGeneralização
• Se a rede for muito grande muito grande (muitos (muitos parâmetros = pesos)parâmetros = pesos), não responderá não responderá corretamentecorretamente aos padrões nunca vistos.
x
f(x)
x1 x2 x3 x4 x5
generalizações Boa interpolação
Rede com muitos parâmetros
xi � pontos do conjunto de treinamentoxnovo � novo ponto para generalização
xnovo
GeneralizaçãoGeneralização•• Influenciada por três fatores:Influenciada por três fatores:
– tamanho e eficiência do conjunto de treinamento;– arquitetura da rede (número de processadores);– complexidade do problema.
�
Duas formas de atacar o problema:�arquitetura fixa e deve-se achar o tamanho do conjunto
de treinamento�tamanho do conjunto de treinamento é fixo e deve-se
achar a melhor arquitetura da Rede Neural
⇐⇐⇐⇐ Não se tem controle⇐⇐⇐⇐ Não se tem controle
21
GeneralizaçãoGeneralização•• Métricas:Métricas:
�� BaumBaum--Haussler Haussler ��������
aproximando:
N ≥≥≥≥ 32W ln 32M____ ____εεεε εεεε
N ≥≥≥≥ 32W ln 32M____ ____εεεε εεεε
número de padrõesnúmero de número de padrõespadrões número de
sinapsesnúmero de número de sinapsessinapses
Erro permitido no testeErro permitido Erro permitido no testeno teste
número de PEs na camada escondidanúmero de número de PEsPEs na na camada escondidacamada escondida
N ≥≥≥≥ W____ εεεε
N ≥≥≥≥ W____ εεεε
GeneralizaçãoGeneralização
•• Métricas:Métricas:
�� BaumBaum--Haussler Haussler �������� Nhidden ≤≤≤≤ Ntrain εεεεtrain__________Nin + Noutput
Nhidden ≤≤≤≤ Ntrain εεεεtrain__________Nin + Noutput
número de PEs na camada de saídanúmero de número de PEsPEs na na camada de saídacamada de saída
número de entradasnúmero de número de entradasentradas
Erro permitido no treinamentoErro permitido Erro permitido no treinamentono treinamento
número de PEs na camada escondidanúmero de número de PEsPEs na na camada escondidacamada escondida
número de padrõesx
número de entradasnúmero de padrõesnúmero de padrões
xxnúmero de entradasnúmero de entradas
22
GeneralizaçãoGeneralização•• Métricas:Métricas:
�� HechtHecht--Nielsen Nielsen ��������
Nhidden ≤≤≤≤ 2Nin + 1Nhidden ≤≤≤≤ 2Nin + 1
número de PEs na camada escondidanúmero de número de PEsPEs na na camada escondidacamada escondida
número de entradasnúmero de número de entradasentradas
Usou Kolmogorov Theorem:qualquer função de n variáveispode ser representada por 2n+1 funções de uma variável
Usou Kolmogorov Theorem:qualquer função de n n variáveisvariáveispode ser representada por 2n+1 funções2n+1 funções de uma variável
GeneralizaçãoGeneralização•• Métricas:Métricas:
�� Upadhyaya Upadhyaya & & Eryurek Eryurek ��������
W ≤≤≤≤ Nin . log2 PW ≤≤≤≤ Nin . log2 P
número de pesosnúmero de pesosnúmero de pesos
número de entradasnúmero de número de entradasentradas
O número de parâmetrosnecessários para codificar P padrões binários é log2 P
O número de parâmetrosparâmetrosnecessários para codificar P padrões P padrões bináriosbinários é loglog22 PP
número de padrõesnúmero de número de padrõespadrões
23
Problema de ParalisiaProblema de ParalisiaCom o treinamento, os pesospesos podem
alcançar valores muito grandesgrandes (wij �)
A soma ponderadasoma ponderada de cada processador torna-se também muito
grandegrande (netj = Σ xi.wij + θj �)
F’(F’(netnetjj) ~ 0) ~ 0
∆∆∆∆∆∆∆∆wwijij ~ 0 ~ 0 �������� A Rede Neural não consegue aprendernão consegue aprender
F(netj)
netj
Regiões de derivada Regiões de derivada aproximadamente zeroaproximadamente zero
Problema de ParalisiaProblema de Paralisia
•• Como evitar paralisia da Rede?Como evitar paralisia da Rede?– Deve-se escolher valores de pesospesos e bias bias
uniformemente distribuídos dentro de um intervalo pequenointervalo pequeno;
– Os neurôniosneurônios devem, inicialmente, operar na sua região linearregião linear;
– O número de processadoresnúmero de processadores na(s) camada(s) escondida(s) deve ser pequenopequeno.
24
Problema do Mínimo LocalProblema do Mínimo LocalDe acordo com o método do gradiente
Descendente, tem-se: ∆∆∆∆∆∆∆∆wwijij = = ηηηηηηηη.s.sii..eejj
Taxa de aprendizadoTaxa de aprendizadoTaxa de aprendizado
Problema do Mínimo LocalProblema do Mínimo LocalDe acordo com o método do gradiente
Descendente, tem-se: ∆∆∆∆∆∆∆∆wwijij = = ηηηηηηηη.s.sii..eejj
A taxa de aprendizado não deve ser nem nem muito pequenamuito pequena ���� treinamento lentotreinamento lento, nem muito grande muito grande ���� oscilaoscilaçõções es
Taxa de aprendizadoTaxa de aprendizadoTaxa de aprendizado
25
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
wwL1L1
Posição Inicial 2
Mínimo Mínimo GlobalGlobal
Mínimo Mínimo LocalLocal
Posição Inicial 1
wwG1G1
Erro Erro mínimomínimo
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
wwL1L1Mínimo Mínimo LocalLocal
Posição Inicial 1
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 1:Partindo da posição inicial 1:Partindo da posição inicial 1:
26
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
wwL2L2
Posição 2
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 1:Partindo da posição inicial 1:Partindo da posição inicial 1:
PesoswwL1L1
∆∆∆∆w
Posição Inicial 1
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
wwLjLj
Posição j
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 1:Partindo da posição inicial 1:Partindo da posição inicial 1:
27
Com Com ηηηηηηηη pequenopequeno, n, nãão o éé posspossíível vel calcular um calcular um ∆∆∆∆∆∆∆∆ww que faque façça a Rede a a Rede
Neural sair do Neural sair do MMíínimo Localnimo Local..
Problema do Mínimo LocalProblema do Mínimo Local
A Rede Neural A Rede Neural não não consegue consegue aprenderaprender com a precisão com a precisão
especificada (especificada (Erro MínimoErro Mínimo)!)!
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 2:Partindo da posição inicial 2:Partindo da posição inicial 2:
Posição Inicial 2
Mínimo Mínimo GlobalGlobal
wwG1G1
28
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 2:Partindo da posição inicial 2:Partindo da posição inicial 2:
Posição Inicial 2
wwG1G1 wwG2G2
Posição 2
∆∆∆∆w
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 2:Partindo da posição inicial 2:Partindo da posição inicial 2:
wwG2G2
Posição 2
∆∆∆∆w
Posição 3
wwG3G3
29
Problema do Mínimo LocalProblema do Mínimo Local
Pesos
Erro (w)
Pelo método do Gradiente Descendente
Erro tende a diminuir com a atualização dos pesos
Erro Erro mínimomínimo
Partindo da posição inicial 2:Partindo da posição inicial 2:Partindo da posição inicial 2:
wwGkGk
Posição k
Posição 3
wwG3G3
Problema do Mínimo LocalProblema do Mínimo Local
•• Conclusões:Conclusões:– Quando ηηηηηηηη é pequenopequeno e dependendo da
inicialização dos pesos (feita de forma aleatória), a Rede Neural pode ficar presa em um Mínimo LocalMínimo Local.
•• Solução:Solução:– Utilizar taxa de aprendizadotaxa de aprendizado (ηηηηηηηη ))
adaptativaadaptativa.
30
Problema do Mínimo LocalProblema do Mínimo Local
•• Conclusões:Conclusões:– Quando ηηηηηηηη é grandegrande, a Rede Neural pode
nunca conseguir chegar ao Mínimo Global pois os valores de ∆∆∆∆w são grandes. ���� OscilaOscilaçõçõeses.
•• Solução:Solução:– Utilização do termo de Momento Momento (αααααααα ).
Termo de Momento (Termo de Momento (αααααααα ))
Uma forma de diminuirdiminuir a possibilidade de oscilaçõesoscilações com valores de ηηηηηηηη maioresmaiores
é incluir o Termo de MomentoTermo de Momento na atualização dos pesos sinápticos
Termo proporcional ao valor Termo proporcional ao valor anterior de atualização do pesoanterior de atualização do peso
∆∆∆∆wij (t+1) = ηηηη.si.ej + αααα . ∆∆∆∆wij(t)∆∆∆∆∆∆∆∆wwijij (t+1)(t+1) = = ηηηηηηηη .s.sii..eej j + + αααααααα . . ∆∆∆∆∆∆∆∆wwijij(t)(t)
31
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
Ponto Inicial - A’A’
Corte na Corte na SuperfícieSuperfíciede Errode Erro
Situação 1:Situação 1:Situação 1:
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
∆∆∆∆w(t)
Ponto Inicial - A’A’
A’’A’’
32
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
∆∆∆∆w(t)
Ponto Inicial - A’A’
A’’A’’-η∇η∇η∇η∇ E(t+1) + αααα ∆∆∆∆w(t)
A’’’A’’’
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
∆∆∆∆w(t)
Ponto Inicial - A’A’
A’ e A’’ estão namesma direção���� αααααααα acelera oacelera oaprendizadoaprendizado
A’’A’’-η∇η∇η∇η∇ E(t+1) + αααα ∆∆∆∆w(t)
A’’’A’’’
33
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
Ponto Inicial - B’B’
Situação 2:Situação 2:Situação 2:
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
∆∆∆∆w(t)
Ponto Inicial - B’B’
B’’B’’
34
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
α∆α∆α∆α∆w(t)
Ponto Inicial - B’B’
B’’B’’ -η∇η∇η∇η∇ E(t+1)B’’’B’’’
Termo de Momento (Termo de Momento (αααααααα ))
MínimoGlobal
w1
w2
α∆α∆α∆α∆w(t)
Ponto Inicial - B’B’
B’’B’’
B’ e B’’ estão em direções opostas
���� αααααααα evita evita oscilaoscilaçõçõeses
-η∇η∇η∇η∇ E(t+1)B’’’B’’’
35
Outros Fatores de Outros Fatores de Influência no AprendizadoInfluência no Aprendizado
• Aprendizado Incremental x AcumulativoIncremental x Acumulativo• Inclinação da Função de AtivaçãoFunção de Ativação
AprendizadoAprendizadoIncremental x AcumulativoIncremental x Acumulativo
•• Aprendizado IncrementalAprendizado Incremental– Atualiza os pesos a cada apresentação
de um novo padrão � Implementa o método do Gradiente Descendente mas tende a aprender melhor o último padrão apresentado � sequsequêênciancia aleataleatóóriaria
•• Aprendizado Aprendizado AculumativoAculumativo– Somente ajusta os pesos após a
apresentação de TODOSTODOS os padrões
36
Inclinação da Inclinação da Função de AtivaçãoFunção de Ativação
f(net) = 2 - 11 + exp(-λλλλnet)
f(net) = 2 f(net) = 2 -- 111 + 1 + expexp((--λλλλλλλλnet)net)
BIPOLARBIPOLARBIPOLAR UNIPOLARUNIPOLARUNIPOLAR
f(net) = 1 1 + exp(-λλλλnet)
f(net) = 1 f(net) = 1 1 + 1 + expexp((--λλλλλλλλnet)net)
f ‘(net) = 2 λλλλ exp(- λλλλnet)[1 + exp(-λλλλnet)]2
f ‘(net) = 2 f ‘(net) = 2 λλλλλλλλ expexp((-- λλλλλλλλnet)net)[1 + [1 + expexp((--λλλλλλλλnet)]net)]22
BIPOLARBIPOLARBIPOLAR
ICADEMOICADEMO
•• Formato de Entrada:Formato de Entrada:
37
ICADEMOICADEMO
•• Formato de Saída:Formato de Saída:
Vetor de 10 elementos bináriosbinários
dígito 1dígito 2
dígito 0
ICADEMOICADEMO
•• Topologia:Topologia:
111
000
000
000
38
Aplicação PráticaAplicação Prática
Reconhecimento de DígitosReconhecimento de DígitosICADEMOICADEMO