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 mwji (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