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 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 Subprogramas 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 Subprogramas 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 A regra delta-bar-delta muda os pesos conforme: Seja wji (t) um peso arbitrário no tempo t, e a 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: 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