Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFRJ/COPPE/PEE CPE 721 – Redes Neurais Feedforward Professor Calôba Resumo parte 1 Guilherme Lello e André Vizzoni guilherme@lemt.ufrj.br | arvizzoni@hotmail.com 5 de agosto de 2019 1. Otimização contínua 1.1. Gradiente Descendente Consiste em minimizar a função objetivo por meio do cálculo do gradiente de F - e de sua apli- cação, a cada passo, no conjunto de parâmetros do modelo -, sempre indo na direção contrária à dada pelo gradiente, em direção a um mínimo, que pode ser o global. Ou seja, dada uma função F com conjunto de parâmetros θ, pode-se definir o seguinte algoritmo para o método: θnovo = θantigo − α∂F ∂θ • Esse passo é repetido até que o critério de parada do método seja alcançado. • Um critério de parada natural é interromper a execução do método quando se chega a um ponto cujo gradiente é 0 (ou um vetor de zeros, quando a função tem mais de um parâmetros). Pode-se fazer alguns comentários mais conceituais sobre o método: • Não há convergência garantida para um mínimo global. Não há nem garantia de que o método leve a um mínimo, podendo levar a outros pontos críticos de uma função (pontos de sela, calha, cumeeira ou máximo); • a escolha de valores para α é importante, com valores excessivamente grandes levando à divergência do método e valores excessivamente pequenos levando a uma convergência muito lenta ("A escolha de α é uma arte"); • Valores típicos: entre 0.05 e 0.1; • quando α é variável, fala-se de otimização em linha; 1 • o valor ótimo de α, α∗, é definido com base em α∗ = −∇F(w)tddtH(w)d ; • pode-se também calcular α∗ por meio de α∗ = α21∇F(w)td2(F1−F0−α1∇F(w)td , sendo F0 o valor da fun- ção F aplicada a um ponto inicial qualquer e F1 o valor dela aplicada a um segundo ponto, w1, com w1 tendo sido calculado a partir da aplicação do método do Gradiente ao ponto inicial, com um passo de aprendizagem α1; • α∗ leva a extremos. Se α∗ < 0, o extremo é um máximo; • o passo de ensaio, –α1d , levanta as características da função no entorno do ponto inicial, com raio |α1d|. Se α∗ » α1, possivelmente o α∗ encontrado não é válido. 1.2. Newton Amortecido O método de Newton Amortecido depende da aproximação de Levenberg-Marquadt para a matriz Hessiana da função F(w). Essa aproximação parte de algumas definições, a seguir: F(θ) = 1 n n∑ i=1 �2i , sendo �i uma medida do erro da aproximação de F, ∇F(θ) = ∂F(θ) ∂θ1 . . . ∂F(θ) ∂θK = 2 n∑ i=1 �i ∂�i ∂θ1 . . . ∂�i ∂θK , sendo θi, i=1,...,K, os componentes do vetor paramétrico θ, H(θ) = ∂2F(θ) ∂2θ1 . . . ∂ 2F(θ) ∂θ1∂θK . . . . . . . . . . . . . . . ∂2F(θ) ∂θK∂θ1 . . . ∂ 2F(θ) ∂2θK = 1 n n∑ i=1 ∂2�2i ∂2θ1 . . . ∂2�2i ∂θ1∂θK . . . . . . . . . . . . . . . ∂2�2i ∂θK∂θ1 . . . ∂2�2i ∂2θK . Pode-se mostrar que ∂2�2i ∂θa∂θb = ∂ �2i ∂θb ∂θa = 2 ∂�i ∂�i ∂θb ∂θa = 2 [ ∂�i ∂θb ∂�i ∂θa + �i ∂2�i ∂θb∂θa ] E a aproximação de Levenberg-Marquadt consiste em definir o segundo termo, �i ∂ 2�i ∂θb∂θa , como igual a zero, de forma que H ≈ 21 n n∑ i=1 ∂� ∂θ1 ∂� ∂θ1 . . . ∂� ∂θ1 ∂� ∂θK . . . . . . . . . . . . . . . ∂� ∂θK ∂� ∂θ1 . . . ∂� ∂θK ∂� ∂θK = 1 n n∑ i=1 1 2�i ∇F(θ)∇F(θ)t. 2 E essa aproximação é válida no entorno do mínimo da função, já que a presunção de que �i ∂2�i ∂θb∂θa = 0 só vale quando �i tem um valor próximo de zero, o que só ocorre quando se está perto de um mínimo da função. 2. Backpropagation Figura 2.1: Multilayer perceptron O treinamento via backpropagation tem como objetivo minimizar uma função objetivo. Essa função geralmente é definida como uma medidora da distância entre a resposta dada pela rede e a resposta esperada, como uma função erro. E o erro mais utilizado como função objetivo é o erro quadrático médio, definido como: F(w) = n∑ i=1 (yi − yˆi)2, sendo yi a resposta esperada e yˆi a resposta dada pela rede. A partir da configuração da rede representada na Figura 2.1, pode-se formular as seguintes definições: • A camada de entrada da rede recebe um vetor x de entradas, com o vetor tendo N com- ponentes; • há uma camada escondida de H neurônios, cada um recebendo uma combinação linear dos componentes de x, ui(indexada de acordo com o i-ésimo neurônio da camada); • há um conjunto de pesos sinápticos wi para o i-ésimo neurônio da camada escondida, de forma que cada neurônio tem um conjunto de pesos sinápticos diferentes, que são utili- zados como os pesos da combinação linear ui. Ou seja, ui = ∑N j=0 wi jx j, com x0 sendo o bias, comumente definido como x0 = 1; 3 • cada neurônio tem sua própria função de ativação Φi, que atua sobre ui e produz uma saída vi tal que vi = Φi(ui); • a camada de saída tem M neurônios, e cada um recebe uma combinação linear (com pe- sos ti) das saídas de cada neurônio da camada intermediária. Em outras palavras, cada neurônio dessa camada recebe uma entrada zi tal que zi = ∑H j=0 ti jv j; • v0 é o bias da camada de saída, comumente definido como v0 = 1; • cada neurônio dessa camada tem sua própria função de ativação, Ψi, indexada de acordo com o i-ésimo neurônio da camada; • e a resposta dada por um desses neurônios consiste na aplicação de sua função de ativação sobre a combinação linear, yˆi = Ψi(zi). Uma vez que a rede foi propriamente construída e definida, o algoritmo de treinamento para minimizar o erro quadrático médio na resposta da rede consiste em tentar minimizar a função F. Para esse fim, usa-se o método do Gradiente Descedente. Ou seja, a cada passo há um acréscimo, ∆θ, aos valores dos parâmetros, representados como um conjunto por θ. E o método define que: ∆θ = −α∇(w) = −α∂F(θ) ∂θ , com o gradiente representado por ∇(w). Para que se possa calcular o gradiente, é necessário, primeiro, definir quais são os parâmetros do modelo. 3. Dimensionamento da rede 3.1. Arquitetura da rede • Uma camada com neurônios lineares: combinador linear, utilizado em problemas de clas- sificação em que as classes são linearmente separáveis; a aproximação é feita por um único hiperplano • Uma camada com neurônios tgh: combinador linear com saída limitada, utilizado em classificadores lineares • Duas camadas com neurônios lineares: combinador linear, mesma capacidade de mape- amento de uma rede com uma camada de neurônios lineares • Duas camadas, com neurônios tgh na camada intermediária e lineares na camada de saída: série de tgh com saída limitada; aproximador universal para funções L2 (Teorema de Kol- mogorov), utilizada em aproximadores de função; a aproximação é feita por segmentos de hiperplanos • Duas camadas, com neurônios tgh na camada intermediária e tgh na camada de saída: sé- rie de tgh com saída limitada; realização de qualquer função lógica, utilizada em classi- ficadores; saídas lógicas são intrepretadas como sign(tgh(u)) 4 3.2. Número de camadas • Tentativa e erro • Começar com uma camada e verificar se o erro após treinamento está dentro da especifi- cação; os neurônios devem ser lineares para saídas contínuas e tgh para saídas lógicas • Caso o erro esteja fora do especificado, utilizar duas camadas com neurônios tgh na camada intermediária • Três camadas, em geral, são difíceis de dimensionar e tornam o treinamento mais lento, mas em casos específicos levam a estruturas mais simples 3.3. Número de neurônios • Camada de saída: deve haver um neurônio de saída para cada saída • Camada intermediária: tentativa e erro; a heurística é começar utilizando um valor entre o número deentradas e o número de saídas, como a média ou a média geométrica; caso o erro seja aceitável, pode-se tentar diminuir o número de neurônios; caso contrário, deve-se aumentar o número de neurônios 3.4. Valores iniciais das sinapses • Heurística: valores aleatórios com distribuição uniforme com módulo menor do que √ 3 N , em que N é o número de sinapses do neurônio • Valores típicos: valores aleatórios entre −0.2 e 0.2, aumentando-se a faixa caso haja desconfiança de mínimos locais • Valores altos: saturação do neurônio, em que o gradiente tem módulo muito pequeno, paralisando o processo • Valores baixos: processo fica preso em mínimos locais 3.5. Escolha de α • Valores típicos: entre 0.05 e 0.1 • Valores baixos: convergência estável, porém muito lenta • Valores altos: processo instável, apresentando oscilações e podendo divergir • Métodos com α variável: otimização em linha e BP resiliente 4. Pré-processamento 4.1. Escolha das variáveis • É necessário, preferencialmente antes do início do treinamento, determinar que variáveis são relevantes para o processo sendo mapeado 5 • A falta de variáveis relevantes faz com que sejam observados pares entrada-saída em que, para a mesma entrada, a saída varia; essa situação faz com que a rede aprenda o valor médio, o que não representa fielmente o processo • A presença de variáveis não-relevantes faz com que as sinapses a elas conectadas não treinem (E[∆wi j] = 0) e mantenham os seus valores iniciais, já que o valor esperado do erro propagado (δi) vezes a entrada (v j) é zero; dessa forma, essas variáveis não- relevantes atuam como ruído, degradando a aproximação; por isso, idealmente devem ser podadas • As variáveis relevantes podem ser detectadas das seguintes formas: – Avaliação da fenomenologia – Avaliação das correlações entre os pares entrada-saída – Avaliação da relevância das variáveis na etapa de pós-processamento 4.2. Coeficiente de correlação de Pearson O coeficiente de correlação de Pearson quantifica a correlação de variáveis tomadas duas a duas, segundo a seguinte equação: r(x, y) = 1 P−1 ∑P i=1(xi − µx)(yi − µy) σxσy Ou, equivalentemente, utilizando o valor esperado: r(x, y) = E[(xi − µx)(yi − µy)] σxσy Onde: µx = 1 P P∑ i=1 xi = E[xi] σx = √√ 1 P − 1 P∑ i=1 (xi − µx)2 σ2x = E[(xi − µx)2] Simplificando para µx = µy = 0 e σx = σy = 1, temos: r(x, y) = 1 P − 1 P∑ i=1 xiyi = E[xiyi] 6 4.3. Limiar de relevância da correlação Pela estatística, o desvio-padrão do coeficiente de correlação de Pearson pode ser aproximado porσ(r) ≈ 1√ P para um conjunto amostral contendo P amostras com distribuição normal. Sendo assim, para se obter 95% de confiança na correlação, é necessário que: |r| ≥ 2σ(r) = 2√ P Coeficientes de correlação próximos ou maiores que esse limiar indicam variáveis forte- mente correlacionadas. Variáveis de entrada com alta correlação com a saída, em geral, devem ser mantidas, enquanto variáveis de entrada com alta correlação entre si devem ser descorrelaci- onadas e, possivelmente, descartadas caso a variável descorrelacionada tenha baixa correlação com a saída. Observação: para as variáveis de entrada, P deve ser a quantidade de amostras dos dados de treinamento. Já para a saída em problemas de classificação, deve-se utilizar a quantidade de pares em que houve ocorrência da classe. 4.4. Descorrelação entre as entradas Quando duas variáveis têm forte correlação com a saída e também entre si, deve-se verificar se há alguma informação relevante que não possa ser representada por apenas uma das variáveis. Caso não haja, a variável pode ser descartada, simplificando a rede, tornando o treinamento mais rápido e eliminando o ruído que seria causado pela variável redundante. Suponha que as variáveis x1 e x2, ambas com média zero, sejam correlacionadas e que esta correlação possa ser modelada como uma dependência linear. Deseja-se obter a variável descorrelacionada x2′ , que representa a parcela de informação de x2 independente de x1, como segue: x2 = ax1 + x2′ x2′ = x2 − ax1 a = argminE[(x2′)2] = σ2 σ1 r12 r2′y = r2y − r1yr12√ 1 − r212 4.5. Compactação / parametrização das variáveis • Fenomenologia • Transformadas matemáticas • Invariância (translação, rotação, escala) • Insensibilidade (identificação do conteúdo da voz independentemente de qual é o locutor) 7 4.6. Escalamento das variáveis O escalamento das variáveis permite um bom condicionamento do processo numérico de oti- mização. xi = 1 σXi (Xi − µXi) µxi = 0 σxi = 1 Desescalador: Xi = σXi xi + µXi 4.7. Balanceamento da população Consiste em equilibrar o treinamento de forma que os clusters menos populosos tenham o mesmo peso dos clusters mais populosos. O balanceamento é necessário porque a rede aprende com o erro. Regiões com mais pares terão mais erro e a rede aprenderá mais sobre elas. A rede aprende mais o que é mais ensinado a ela, a ponto de esquecer o que foi pouco ensinado. Diz-se, portanto, que a rede é "populista". O balanceamento pode ser feito replicando-se as amostras existentes nos clusters menos populosos ou aumentando-se o peso do treinamento desses pares. Caso o balanceamento não seja feito, o erro nessas regiões será alto, já que, neste caso, a estatística dos dados de treinamento ensina a rede a não dar a devida importância para as regiões menos populosas. Nesse contexto, é essencial que os conjuntos de treinamento e de teste possuam amostras em todos os clusters. 4.8. Outliers Supondo que a variável aleatória x tenha distribuição aproximadamente gaussiana, espera-se que a cardinalidade do conjunto de amostras com módulo acima do limiar z∗ seja 0. Amostras com módulo superior a este limiar são possíveis intrusos. z∗ = er f −1 ( 1 2P ) Possível intruso: |x| > er f −1 ( 1 2P ) Pares suspeitos de serem intrusos devem preferencialmente serem movidos do conjunto de treinamento para o conjunto de teste. Por outro lado, pares que estão fora da faixa mas devam ser treinados (evento raro estatisticamente), deve-se balancear o seu cluster durante o treinamento ou aumentar a capacidade da rede. 8 4.9. Pares incompletos Caso haja componentes incompletos nas amostras de treinamento, o ideal é descartar o par. No entanto, caso não seja uma opção realizar o descarte, deve-se substituir as entradas faltantes por zero e os erros de saída faltantes por zero. Dessa forma, as sinapses conectadas ao neurônio com dados faltantes não irá treinar enquanto que as demais sinapses não são afetadas. Para o caso de séries temporais, os pontos faltantes devem ser interpolados. É importantante treinar com dados faltantes caso se saiba que a rede irá operar com dados faltantes. 5. Análise do treinamento Ao longo do processo de treinamento, deve-se acompanhar a evolução do erro eficaz (erms =√ emq), para saídas contínuas, ou erro de classificação, para saídas lógicas, criticando os resul- tados obtidos. O primeiro passo é avaliar se o valor de α é adequado, já que valores muito altos causam instabilidade, enquanto valores baixos tornam o processo lento. Outras análises sobre as curvas de evolução de erro são: a análise de overtraining, em que o conjunto de validação indica em que época o treinamento deve ser interrompindo de forma que a rede mantenha a generalização; a validação cruzada; e o treinamento dinâmico ou adaptativo para sistemas variantes no tempo. 5.1. Overtraining O overtraining é um defeito da rede por ter capacidade maior do que a necessária para mapear o processo. Ocorre quando a rede é treinada por um número de épocas acima do necessário, fazendo com que a rede decore a tabela dos dados de treinamento. Treinar demais significa ajustar termos de ordem maior do que a ordem do fenômeno senso mapeado. O overtraining pode ter dois efeitos:perda de generalização, aumentando o erro de valida- ção enquanto o erro de treinamento ainda diminui; e a divergência tardia. Para evitar o overtraining, deve-se interromper o processo na época em que ocorre o erro mínimo do conjunto de validação, e não do conjunto de treinamento (parada "prematura"). 5.2. Validação cruzada Consiste em permutar os conjuntos de treinamento, validação e teste, verificando- se a média e a dispersão do erro nos conjuntos de teste de cada permutação. 9 Otimização contínua Gradiente Descendente Newton Amortecido Backpropagation Dimensionamento da rede Arquitetura da rede Número de camadas Número de neurônios Valores iniciais das sinapses Escolha de Pré-processamento Escolha das variáveis Coeficiente de correlação de Pearson Limiar de relevância da correlação Descorrelação entre as entradas Compactação / parametrização das variáveis Escalamento das variáveis Balanceamento da população Outliers Pares incompletos Análise do treinamento Overtraining Validação cruzada
Compartilhar