140 likes | 233 Views
AULA06-exercícios. MLP. exercício1. 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. Algoritmo de primeira ordem: gradiente.
E N D
exercício1 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.
Algoritmo de primeira ordem: gradiente Dado o gradiente da soma dos quadrados dos erros por: a direção de maior decrescimento é dada por e o ajuste do peso é dado por:
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 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
Momentum • As fórmulas de atualização são ou 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 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.
Delta-bar-delta • Seja wji (t) um peso arbitrário no tempo t, e aji (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: • 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: onde o valor do parâmetro b deve ser especificado pelo usuário (0< b <1). Assim a nova taxa de aprendizado é dada por
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 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.
Resumo do Algoritmo de Gradiente Conjugado • 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: • 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 • Atualizar a direção conjugada • Fazer n = n + 1 e ir para o passo 4.
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