AULA06-exercícios
MLP
exercício1
w1
w2

f1
y1 w
7
w3
w5

w6
w4
x2

w9
x1
y2
w8
f2
Definir os pesos iniciais e aplicar o algoritmo do gradiente
(backpropagation com atualização em lote)
para a função XOR, com entradas binárias e funções
de ativação sigmoidais.
y
f
Algoritmo de primeira ordem: gradiente
Dado o gradiente da soma dos quadrados dos erros por:
 (w ) (w )
(w ) 
grad((w ))  (w )  
...


w

w

w
1
2
n 

a direção de maior decrescimento é dada por
d
(w)
(w)
e o ajuste do peso é dado por:
w(t  1)  w(t )   (t )
(w(t ))
(w(t ))
T
Programa – gradiente1
•
Os seguintes arquivos constituem o programa do gradiente binário:
– Inicializa – deve ser executado primeiro para inicializar os pesos e
parametros
– Continua100 – executa 100 épocas
– Continua1000– executa 1000 épocas
• Subprogramas
–
–
–
–
–
–
–
Passo1 – calcula o passo do cálculo da saida
Passo2 – calcula o passo da retro-propagação do erro
Erromed – calcula o erro medio quadrático
Atualizarpesos – atualiza os pesos
Epoca – calcula e ajusta os pesos para uma época
Plotag – plota o erro medio quadrático para todas as épocas
Plotatodos – plota as saídas dos neurônios para todas as épocas e
entradas
– Saídas – mostra as saídas atuais para todas as entradas
exercício2
w1
w2

f1
y1 w
7
w3
w5

w6
w4
x2

w9
x1
y2
w8
f2
Definir os pesos iniciais e aplicar o algoritmo do gradiente
com momento
para a função XOR, com entradas binárias e funções
de ativação sigmoidais
y
f
Momentum
• As fórmulas de atualização são
wji (t 1)  wji (t )   j yi  m[wji (t )  wji (t 1)]
ou
wji (t 1)   j yi  mwji (t )
onde o parâmetro de momentum m é restrito ao intervalo (0,1).
• O momentum permite à rede realizar ajustes de peso razoavelmente grande
enquanto as correções forem na mesma direção para vários padrões, e uma
pequena taxa de aprendizado para quaisquer erros de padrão de
treinamento.
• Exemplo: Usando os mesmos pesos iniciais e arquitetura para os exemplos
de aplicação para o problema do Xor e valores desejados +1 e -1,
adicionando momentum (parâmetro = 0.9) com a taxa de aprendizado como
antes (0.02) reduz o número de épocas de 387 para 38.
Programa – momento1
•
Os seguintes arquivos constituem o programa do gradiente binário:
– Inicializa – deve ser executado primeiro para inicializar os pesos e
parametros
– Continua100 – executa 100 épocas
– Continua1000– executa 1000 épocas
• Subprogramas
–
–
–
–
–
–
–
Passo1 – calcula o passo do cálculo da saida
Passo2 – calcula o passo da retro-propagação do erro
Erromed – calcula o erro medio quadrático
Atualizarpesos – atualiza os pesos
Epoca – calcula e ajusta os pesos para uma época
Plotag – plota o erro medio quadrático para todas as épocas
Plotatodos – plota as saídas dos neurônios para todas as épocas e
entradas
– Saídas – mostra as saídas atuais para todas as entradas
exercício3
w1
w2

f1
y1 w
7
w3
w5

w6
w4
x2

w9
x1
y2
w8
f2
Definir os pesos iniciais e aplicar o algoritmo do gradiente
com delta-bar-delta
para a função XOR, com entradas binárias e funções
de ativação sigmoidais.
y
f
Delta-bar-delta
• Seja wji (t) um peso arbitrário no tempo t, e  ji (t) a respectiva taxa
de treinamento, e  a soma dos quadrados dos erros para o
padrão apresentado nesse tempo t.
• A regra delta-bar-delta muda os pesos conforme:

w ji (t  1)  w ji (t )   ji (t  1)
w ji
 wji (t )   ji (t 1) j yi
• Cada peso muda numa taxa de aprendizado individual.
Delta-bar-delta (cont.)
•
Se, para regra delta convencional,
•
a regra delta-bar-delta usa uma combinação da informação sobre a derivada
atual e passada para formar um novo delta, ou delta-bar, para cada unidade:

 ji 
  j yi
w ji
_
_
 ji (t )  (1  b ) ji (t )  b  ji (t 1)
onde o valor do parâmetro b deve ser especificado pelo usuário (0< b <1).
Assim a nova taxa de aprendizado é dada por
 ji (t )  
se  ji (t  1) ji (t )  0

 ji (t  1)   (1   ) ji (t ) se  ji (t  1) ji (t )  0

 ji (t )
casocontrário

Programa – deltabardelta1
•
Os seguintes arquivos constituem o programa do gradiente binário:
– Inicializa – deve ser executado primeiro para inicializar os pesos e
parametros
– Continua100 – executa 100 épocas
– Continua1000– executa 1000 épocas
• Subprogramas
–
–
–
–
–
–
–
Passo1 – calcula o passo do cálculo da saida
Passo2 – calcula o passo da retro-propagação do erro
Erromed – calcula o erro medio quadrático
Atualizarpesos – atualiza os pesos
Epoca – calcula e ajusta os pesos para uma época
Plotag – plota o erro medio quadrático para todas as épocas
Plotatodos – plota as saídas dos neurônios para todas as épocas e
entradas
– Saídas – mostra as saídas atuais para todas as entradas
exercício4
w1
w2

f1
y1 w
7
w3
w5

w6
w4
x2

w9
x1
y2
w8
f2
Definir os pesos iniciais e aplicar o algoritmo do gradiente
conjugado
para a função XOR, com entradas binárias e funções
de ativação sigmoidais.
y
f
Resumo do Algoritmo de Gradiente Conjugado
1.
2.
3.
4.
5.
6.
Iniciar os valores de w(0)
Para w(0) usar o back-propagation para computar o gradiente g(0).
Fazer s(0)=r(0)=-g(0)
No passo n, usar a busca em linha para encontrar h(n) que minimiza .
Testar se a norma euclidiana do residual r(n) caiu num valor abaixo do
especificado, ou seja numa pequena fração do valor inicial r(0).
Atualizar o vetor peso:
7.
8.
9.
Para w(n+1) usar back-propagation para computar o vetor gradiente g(n+1)
Fazer r(n+1) = - g(n+1)
Usar o método de Polak-Ribiére para calcular
w(n  1)  w(n)  h (n)s(n)
 r T (n  1)(r (n  1)  r (n))
b (n  1)  max
,
T
r (n)r (n)

10. Atualizar a direção conjugada
s (n  1)  r (n  1)  b (n  1) s (n)
11. Fazer n = n + 1 e ir para o passo 4.

0

Programa – gradienteconjugado1
•
Os seguintes arquivos constituem o programa do gradiente binário:
– Inicializa – deve ser executado primeiro para inicializar os pesos e
parametros
– Continua– executa até minimizar o MSE, 100 épocas
• Subprogramas
–
–
–
–
–
–
–
–
–
–
Passo1 – calcula o passo do cálculo da saida
Passo2 – calcula o passo da retro-propagação do erro
polak– calcula a direção conjugada s(n), a partir de n = 2
Calculalinha– faz a busca em linha para a obtenção de h(n)
Linha – calcula o valor do erro médio quadratico na linha
Erromed – calcula o erro medio quadrático para a época
Atualizarpesos – atualiza os pesos
Epoca – calcula e ajusta os pesos para uma época
Plotagc – plota o erro medio quadrático para todas as épocas
Plotatodos – plota as saídas dos neurônios para todas as épocas e
entradas
– Saídas – mostra as saídas atuais para todas as entradas
Download

AULA06-exercícios