Buscar

Resumo de Redes Neurais Feedforward

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

Continue navegando