590 likes | 984 Views
AULA 05 Multilayer perceptron. (continuação). CLASSES DOS ALGORITMOS DE TREINAMENTO. Os algoritmos de treinamento de perceptrons multicamadas podem ser classificados nos seguintes itens: Primeira classe : algoritmos que não requerem derivação, apenas avaliação
E N D
AULA 05Multilayer perceptron (continuação)
CLASSES DOS ALGORITMOS DE TREINAMENTO • Os algoritmos de treinamento de perceptrons multicamadas podem ser • classificados nos seguintes itens: • Primeira classe: algoritmos que não requerem derivação, apenas avaliação • da função em diferentes pontos do espaço. São chamados métodos • sem diferenciação. • Segunda classe: faz uso da derivada primeira a ser minimizada. • São chamados métodos de primeira ordem. • A terceira classe de algoritmos são os métodos de segunda ordem, e utilizam • informações sobre a derivada segunda. • Uma outra classe consiste no ajuste de pesos usando método de tentativas e • erros, e é denominado método empírico.
BE-Busca Exaustiva GA-Genetic Algorithms SA-Simulated Annealing BP –BackPropagation GRAD- Gradiente LM- Levenberg-Marquardt OSS- One Step Secant QN-Quasi Newton DFP-Davidon-Fletcher-Powell GC-Gradiente Conjugado SCG-Scaled CG FR-Fletcher-Reeves PR-Polak-Ribiére BFGS-Broyden-Fletcher-Goldfarb-Shanno
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:
Algoritmos de segunda ordem A série de Taylor de uma função f: R R na vizinhança do ponto x = x* é dada por: Exemplo:
A função custo ao redor de um ponto w* é dada por: onde grad( ) = é o gradiente de , e é a matriz Hessiana de , também denotada por H(w).
Vizinhança de w* (ponto de mínimo erro) Na vizinhança de w* , se aproxima de uma função quadrática. Os contornos correspondentes a um erro constante são elipses cujos eixos são alinhados com os autovetores u1 e u2da matriz Hessiana, com comprimentos inversamente proporcionais à raiz quadrada dos autovalores correspondentes.
Uma forma quadrática é chamada positiva se para qualquer e uma matriz simétrica A é chamada positiva se é uma forma quadrática positiva. O traço (interseção) no plano w1w2 é um ponto (origem) e os traços nos planos paralelos e acima do plano w1w2 são elipses. w2 w1
Cálculo da matriz hessiana Seja a função custo da rede dada por A primeira derivada é dada por: onde Para a obtenção da derivada segunda aplica-se a regra do produto: (uv)’= u’v + uv’)
Resultado final A matriz H é simétrica portanto os valores da parte triangular superior são iguais aos valores da parte triangular inferior.
Método de Newton. O método de Newton usa a equação do gradiente expandido em série de Taylor Se w + Dw é um ponto de mínimo, o gradiente será nulo, e desprezando os termos de ordem superior, resulta em Podendo usar para o cálculo de : OBSERVAÇÃO: na prática usa-se métodos próximos ao de Newton, para evitar o uso da matriz hessiana que necessita de uma quantidade grande de cálculos.
Exemplo Newton (cont.) Seja o ponto inicial w(0)=(1,1)
Exemplo Newton (cont.) Em w(1) =(-1/6,-1/4)
Método do gradiente conjugado (ou direção conjugada) Seja a forma quadrática onde é um vetor de parâmetros Wx1, A é uma matriz WxW, simétrica, definida positivamente, e b é um vetor Wx1 e c é um escalar. A minimização de é obtida atribuindo a o valor
Método do gradiente conjugado (cont.) Dada a matriz A, diz-se que um conjunto de vetores não-nulos s(0), s(1), ... s(W-1) é conjugado de A (i.é, não interferem entre si no contexto da matriz A) se a seguinte condição for satisfeita: Exemplo: os dois vetores mostrados na Figura (a) são conjugados pois feita a trans- formação resulta em vetores perpendiculares (Figura (b)). (a) (b)
Método de gradiente conjugado (cont.) • Para um dado conjunto de vetores conjugados de A, s(0), s(1)... s(W-1), o ajuste dos pesos é definido por: onde w(0) é um vetor inicial arbitrário e h(n) é um escalar definido para minimizar a funçãof(w(n)+h(n)s(n)), e é referido como busca em linha.
Exemplo: gradiente conjugado Começando do ponto (0,0) ao longo do eixo w1, isto é, na direção (1,0), procuramos a direção conjugada de (1, 0), denotada por (u,v). portanto um vetor que representa o gradiente conjugado é (1, -1).
Exemplo: Gradiente conjugado (cont.) na direção (1, 0) a função torna-se: e tem um mínimo em (4, 0). Iniciando desse mínimo (4, 0) ao longo da direção dada pelo conjugado (1, -1), ou seja, ao longo da reta a função pode ser escrita para w1 que tem um mínimo emw1 = 13/3 e w2 = -1/3
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.
Método de Levenberg-Marquardt (LM) Neste método considerando a soma dos quadrados na forma: onde n corresponde ao n–ésimo padrão de treinamento. o cálculo de um elemento da matriz Hessiana fica Calculando-se esse elemento sem o segundo termo do somatório, obtem-se o método de Levenberg-Marquardt.
Aplicação de LM no exemplo Hessiana LM
Métodos disponíveis no NN toobox (MATLAB) • Sigla algoritmo método • GD traingd Gradient Descent • GDM traingdm Gradient Descent with Momentum • GDA traingda Gradient Descent with Adaptive Learning Rate • LM trainlm Levenberg-Marquardt • BFG trainbfg BFGS Quasi-Newton • RP trainrp Resilient Backpropagation • SCG trainscg Scaled Conjugate Gradient • CGB traincgb Conjugate Gradient with Powell/Beale Restarts • CGF traincgf Fletcher-Powell Conjugate Gradient • CGP traincgp Polak-Ribiére Conjugate Gradient • OSS trainoss One Step Secant • GDX traingdx Variable Learning Rate Backprogagation
Como usar o NN toolbox para: Parâmetros: epochs, show, goal, time, min_grad, max_fail, lr lr – learning rate – se lr for muito grande o algoritmo se torna instável. se o lr for muito pequeno, o algoritmo leva muito tempo para convergir O estado do treinamento é mostrado a cada iteração (show). Se show for NaN, nunca é mostrado. Os outros parâmetros determinam a parada do treinamento. O treinamento pára se o número de iterações exceder epochs, se a função custo cair abaixo do goal, se a magnitude do gradiente for menor que min_grad, ou se o tempo de treinamento é maior que o tempo (time) em segundos. O parâmetro max_fail é associado à técnica de parada antecipada, para melhorar a capacidade de generalização da rede.
Como usar o NN toolbox para: criar um conjunto de treinamento de entradas p e alvo t (saída desejada) criar uma rede feedforward (a função minmax é usada para determinar o intervalo das entradas a ser usado): alterar alguns parâmetros default de treinamento treinar a rede executar a simulação com os dados de entrada de treinamento
MLP normalmente usa função sigmóide. Essas funções se caracterizam pelo fato da derivada para argumentos grandes ser muito pequena. Isso causa morosidade na velocidade de convergência quando os argumentos são grandes e ainda a rede estiver longe de valores ótimos. Rprop (resilient backpropagation) elimina esse efeito. Somente o sinal da derivada é usado para determinar a direção da atualização do peso. A quantidade da atualização é determinado de outra forma. O valor da atualização para pesos e bias é incrementado de um fator delt_inc sempre que a derivada for na mesma direção para duas iterações sucessivas. O valor da atualização é decrementado por um fator delt_dec sempre que a derivada muda de sinal em relação a iteração anterior. Sempre que os pesos estiverem oscilando a mudança nos pesos é reduzida. Se a derivada é zero, o valor da atualização permanece o mesmo.
Gradiente conjugado: Todos os algoritmos de gradiente conjugado iniciam a busca na direção descida íngreme (negativo do gradiente) para a primeira iteração. Uma pesquisa nessa direção é então realizada para determinar a distância ótima para mover ao longo da direção atual. Então a próxima direção é determinada tal que ela seja conjugada da direção prévia. O procedimento geral para determinar uma nova direção é combinar a nova direção de descida íngreme com a direção prévia. As várias versões de algoritmos de gradiente conjugado são diferentes na maneira em que bk é computado. Para Fletcher-Reeves é usada a equação: Essa é a razão do quadrado da norma do gradiente atual em relação ao quadrado da norma do gradiente anterior.
Gradiente conjugado: A direção de pesquisa a cada iteração é determinada, como no anterior, por porém a constante bk é computada por que é o produto interno da mudança anterior no gradiente com o gradiente corrente dividido pelo quadrado da norma do grandiente anterior.
Gradiente conjugado: Para todos os algoritmos de gradiente conjugado, a direção de pesquisa é periodicamente reiniciado (reset) para o negativo do gradiente. O ponto de reset padrão ocorre quando o número de iterações é igual ao número de parâmetros (pesos e bias) da rede, mas existem outros métodos que podem melhorar a eficiência do treinamento. Um método proposto por Powell, baseado numa versão anterior proposto por Beale, reinicia a direção se existe muito pouca ortogonalidade entre o gradiente atual e o gradiente prévio. Isso é testado pela seguinte inequação: Se essa condição é satisfeita, a direção de pesquisa é reiniciada para o negativo do gradiente.
Gradiente conjugado: Cada um dos algoritmos anteriores requerem uma pesquisa na direção a cada iteração. Essa pesquisa é computacionalmente onerosa, pois requer que sejam computadas a resposta da rede para todas as entradas de treinamento, várias vezes para cada pesquisa. O algoritmo de gradiente conjugado escalado, desenvolvido por Moller, foi projetado para evitar esse consumo de tempo. Esse algoritmo combina uma abordagem de modelo de região de confiança (model trust) usado no algoritmo de Levenberg-Marquardt, com a técnica do gradiente conjugado.
O método de Newton é uma alternativa para os métodos de gradiente conjugado para otimização rápida. O passo básico do método é O método quase sempre converge mais rápido que os métodos de gradiente conjugado. Infelizmente, é complexo e oneroso computar a matriz hessiana. Existe uma classe de algoritmos que é baseada no método de Newton, mas não requer o cálculo de derivadas segundas, que são chamados de métodos quasi-Newton ou secante. Eles atualizam uma matriz aproximada da hessiana a cada iteração do algoritmo. A atualização é computada como uma função do gradiente. O método quasi-Newton que tem sido mais bem sucedido em estudos publicados é o de Broyden, Fletcher, Goldfarb, e Shanno (BFGS).
Como o algoritmo BFGS requer mais armazenamento e computação em cada iteração que os algoritmos de gradiente conjugado, existe uma necessidade de uma aproximação secante com menor armazenamento e computação. O método de secante em um passo (one step secant) é uma tentativa intermediária entre os algoritmos de gradiente conjugado e os algoritmos quasi-Newton. Esse algoritmo não armazena a matriz hessiana completa. Ele assume que a cada iteração, a Hessiana anterior é uma matriz identidade. Existe uma vantagem adicional de que a nova direção de pesquisa seja calculada sem computar a matriz inversa.
SENO – aproximação de um período da função seno (1-5-1) Problema de aproximação de função. Rede 1 – 5 – 1, funções tansig para camadas escondidas e linear para camada de saída. Cada entrada na tabela representa 30 tentativas diferentes, com diferentes valores de pesos iniciais. Parada com erro quadrático = 0.002. O algoritmo mais rápido é o Levenberg-Marquardt, na média 4 vezes mais rápido que o próximo. Esse é o tipo de problema que o algoritmo LM é adequado – problema de aproximação de função, onde a rede tem menos que 100 pesos e a aproximação deve ser com muita precisão.
Detecção de paridade de um número de 3 bits(3-10-10-1) Problema de reconhecimento de padrões – detectar paridade de um número de 3 bits. Se o número de uns é impar a saída deve ser 1, caso contrário, -1. Rede 3-10-10-1, com tansig em todas as camadas. Cada entrada na tabela representa 30 diferentes tentativas, com diferentes valores iniciais de pesos. Parada a erro quadrático = 0.001. O algoritmo mais rápido é o Resilient Backpropagation (Rprop). Nota-se que o algoritmo LM não tem bom desempenho neste problema. Em geral LM não desempenha tão bem em reconhecimento de padrões como em problemas de aproximação. O LM é projetado para problemas de mínimos quadrados que são aproximadamente lineares. Como os neurônios de saída em problemas de reconhecimento de padrões são geralmente saturados, não operam na região linear.
Operação de um motor (entrada = velocidade e nível queima de combustível; saída= torque e emissão) (2-30-2) Problema de regressão não-linear. Os dados são obtidos de operação de um motor. As entradas são a velocidade e o consumo de combustível, enquanto que as saídas são o torque e o nível de emissão. A rede usada é de 2-30-2 com neurônios tansig na camada escondida e linear na camada de saída. Cada entrada na tabela representa 30 tentativas (10 par RP e GDX por restrições de tempo), com diferentes pesos iniciais. Parada com erro quadrático menor que 0.005. O mais rápido é o LM, embora o BFGS e os gradientes conjugados (scaled em particular) são quase tanto quanto. Embora esse problema seja de aproximação de função, o LM não é claramente superior como no caso do SENO. Neste caso, o número de pesos e bias na rede é maior (152 x 16), e as vantagens do LM decresce com o Aumento do número de parâmetros.
Operação de um motor (entrada = velocidade e nível queima de combustível; saída= torque e emissão) (2-30-2)
CÂNCER – Classificação de tumor benigno ou maligno baseada nas descrições obtidas através de dados microscópicos. (9-5-5-2) Reconhecimento de padrões (ou análise de discriminantes não-lineares). Objetivo é classificar um tumor como benigno ou maligno baseado em descrições celulares obtidas de exames microscópicos. Os atributos de entrada incluem espessura da amostra, uniformidade do tamanho da célula e formato, quantidade de adesão marginal, e frequência de núcleos descobertos. Os dados foram obtidos de: University of Wisconsin Hospitals. A rede é de 9-5-5-2 com neurônios tansig em todas as camadas. Cada entrada na tabela representa 30 tentativas, com pesos iniciais distintos. O critério de parada é de erro quadrático menor que 0.012. Alguns treinamentos falharam na convergência, tal que somente os 75% dos treinamentos de cada algoritmo foram usados para estatística. Os algoritmos de gradiente conjugado e Rprop apresentam convergência rápida e o algoritmo LM é também razoavelmente rápido. Como no caso de PARIDADE, o algoritmo LM não desempenha tão bem em problemas de reconhecimento de padrões, como em problemas de aproximação de funções.
CÂNCER – Classificação de tumor benigno ou maligno baseada nas descrições obtidas através de dados microscópicos. (9-5-5-2)