Prof. Paulo Martins Engel
Redes Multicamadas
O MLP e o algoritmo Backpropagation
Informática
UFRGS Prof. Paulo Martins Engel
Redes multicamadas e o MLP
• Problemas não-linearmente separáveis podem ser resolvidos por redes que tenham pelo menos uma camada intermediária (oculta) para transformar o problema (em LS).
• O MLP (Multilayer Perceptron), ou perceptron multicamadas, utiliza nós com o modelo não-linear de neurônio e apresenta uma topologia com pelo menos 3 camadas:
• Camada de entrada: com neurônios sensoriais; distribui o vetor de entrada para todos os neurônios da camada oculta;
• Camada oculta: com neurônios computacionais; realiza um mapeamento intermediário do problema, gerando vetores linearmente separáveis para a camada de saída;
• Camada de saída: composta de neurônios computacionais; realiza a rotulação das classes ou o mapeamento desejado.
• Alternativamente, o mapeamento intermediário do problema pode ser realizado por sucessivas camadas ocultas.
• Qualquer função contínua pode ser aproximada por um MLP de 3 camadas, com um número suficiente de neurônios na camada oculta (aproximador universal).
3 Camada de entrada Camada oculta Camada de saída
A topologia do Perceptron de Múltiplas Camadas MLP
1 k M yk(n) ws k1 ws kj ws kL 1 1 N i j L wo j1 wo ji wo jN x1(n) xi(n) xN(n) wo j0 x0=1 i0=1 ws k0
ij(n) : valor de saída do neurônio genérico (j) da camada oculta gerado por x(n).
yk(n): valor de saída do neurônio genérico (k) da camada de saída gerado por x(n).
dk(n): valor de saída desejado do neurônio k correspondente a x(n).
wo
jie wskj: pesos genéricos da camada oculta e de saída, respectivamente.
dk(n) d1(n) dM(n) x1(n) xi(n) xN(n) i1(n) ij(n) iL(n) y1(n) yM(n) x(n) Informática
UFRGS Prof. Paulo Martins Engel
Problema NLS
Problema Lógico com ruído
Solução por MLP Problema LS
5
• A tabela-verdade da função booleana XOR induz uma partição que não é realizável por meio de uma única reta.
• Assim, este problema é não-linearmente separável e um perceptron elementar não o consegue resolver.
O problema do XOR
x1 x2 1 1 1 +1 +1 1 +1 +1 1 +1 +1 1 x(1) x(2) x(3) x(4) x1x2 x(1) x(4) x(3) x(2) InformáticaUFRGS Prof. Paulo Martins Engel
Solução do problema do XOR por MLP
As funções booleanas XOR e EQV são não-linearmente separáveis e podem ser implementadas por perceptrons de múltiplas camadas, MLP.
A solução do problema é equivalente a ajustar os pesos dos neurônios ocultos de modo a corresponder a mapeamentos intermediários em i1 e i2, que tornam o problema linearmente separável para a camada de saída.
x1 x2 x0 x0 y 1 2 3 i0 i1 i2
Exemplo de solução possível:
x1 x2 d –1 –1 –1 +1 +1 –1 +1 +1 –1 +1 +1 –1 i1 i2 –1 –1 +1 –1 –1 +1 –1 –1 i1 = ( x1 x2) i2 = (x1x2) y =
(
i1 i2)
Equivale à transformação: x1 x2 = ( x1 x2) (x1 x2)7
Representação gráfica da solução do problema do XOR
–1 –1 +1 –1 –1 +1 –1 –1 x1 x2 d –1 –1 –1 +1 +1 –1 +1 +1 –1 +1 +1 –1 i1 i2 x1 x2 1 (+1,1) (+1,+1) (1,+1) (1,1) +1 i1 = ( x1 x2) 1 1 x1 x2 (+1,1) (+1,+1) (1,+1) (1,1) i2 = (x1x2) 1 +1 1 1 y =(
i1 i2)
InformáticaUFRGS Prof. Paulo Martins Engel
Representação gráfica da solução do problema do XOR
–1 –1 +1 –1 –1 +1 –1 –1 x1 x2 d –1 –1 –1 +1 +1 –1 +1 +1 –1 +1 +1 –1 i1 i2 x1 x2 -1 +1 (+1,-1) (+1,+1) (-1,+1) (-1,-1) +1 -1 i1 = ( x1 x2) i2 = (x1x2) -1 -1 -1 -1 i1 i2 Classe: +1 Classe: –1 (+1,1) (+1,+1) (1,+1) (1,1) y = ( i1 i2 ) y =
(
i1 i2)
9
Mapeamento de entrada-saída da solução do problema do XOR
–1 –1 +1 –1 –1 +1 –1 –1 x1 x2 d –1 –1 –1 +1 +1 –1 +1 +1 –1 +1 +1 –1 i1 i2 x1 x2 = ( x1 x2) (x1 x2) Informática
UFRGS Prof. Paulo Martins Engel
• O processamento de informação em MLPs acontece em duas fases:
• A fase de propagação, onde o sinal de entrada é propagado através de toda a rede, camada por camada, gerando inicialmente os valores de saída dos neurônios da camada oculta, que servem de entrada para a camada de saída, e finalmente, gerando os valores de saída da rede.
• Esta fase é responsável pela atuação da rede e, portanto, ocorre on-line. • A fase de adaptação, onde ocorrem os ajustes dos pesos da rede.
• Nesta fase, o fluxo de informação se dá da camada de saída em direção à camada de entrada.
• As diferenças entre os valores de saída da rede e os valores desejados causam parcelas individuais de erro para cada neurônio, que são usadas para corrigir os pesos, segundo o algoritmo backpropagation.
• Esta fase é utilizada apenas durante o treinamento da rede, que é realizado off-line, ou seja, sem que a rede atue no ambiente.
11
A fase de propagação
• Nesta fase, os sinais de entrada, correspondentes às componentes do vetor de
entrada x(n), são propagados pela rede gerando as saídas intermediárias i(n) e as saídas da rede y(n).
x(n) x1(n) x2(n) x0 = 1 x1(n) x2(n) i(n) i0 = 1 i1(n) i2(n) i3(n) wo 20 1 2 2 1 3 1 2 wo 12 wo 21 wo 22 wo 32 wo 31 ws 10 ws 13 ws 24 ws 20 wo 30 wo 10 wo 11 ws 11 ws 12 ws 21 ws 23 y(n) y2(n) y1(n) Informática
UFRGS Prof. Paulo Martins Engel
A fase de propagação
• Nesta fase, os sinais de entrada, correspondentes às componentes do vetor de
entrada x(n), são propagados pela rede gerando as saídas intermediárias i(n) e as saídas da rede y(n).
• O potencial de ativação voj(n) e o valor de saída ij(n) de um neurônio genérico (j) da camada oculta causados pelo vetor de entrada x(n) são calculados por:
yk(n) = f (vsk(n)) vs k(n) =
wskj · ij(n) j=0 L vo j(n) =
woji · xi(n) i=0 N ij(n) = f (voj(n))• Analogamente, o potencial de ativação vsk(n) e o valor de saída yk(n) de um neurônio genérico (k) da camada de saída para a entrada x(n) são calculados por:
13
• Os MLP são treinados pelo algoritmo de retropropagação de erros, que é baseado
na regra delta de aprendizado por correção de erro [Paul Werbos 74].
• O algoritmo Backprop pode ser visto como uma generalização do algoritmo LMS
desenvolvido para um único neurônio.
• Como existem vários neurônios na camada de saída, deve-se definir a soma
instantânea dos quadrados dos erros em cada nó de saída da rede, E(n), quando o
n-ésimo vetor de treinamento x(n) é apresentado na entrada da rede:
O algoritmo Backpropagation
e2
k (n) =
(
dk(n) yk(n))
2Com o erro quadrático instantâneo na unidade k de saída definido por:
eké o erro numa unidade de saída k, quando o vetor x(n) é propagado pela rede:
ek(n) = dk(n) yk(n)
dk(n) é a saída desejada, correspondente a x(n), e yk(n) é a saída instantânea obtida no neurônio de saída k, pela propagação de x(n).
E(n) =
e2 k(n) k=1 M 1 2 InformáticaUFRGS Prof. Paulo Martins Engel
Atualização dos pesos do MLP
• Assim como no algoritmo LMS, no algoritmo Backprop será usado o erro
quadrático instantâneo na saída da rede, E(n), como função de custo a ser
minimizada no processo iterativo.
• O desempenho do treinamento é medido pelo erro quadrático médio definido como a média dos erros instantâneos, para todos os P vetores de treinamento:
• As modificações dos pesos acontecem a cada apresentação de um padrão de entrada, x(n), segundo a regra do gradiente descendente (LMS).
• Cada peso é ajustado de acordo com a sua contribuição ao erro, de forma a produzir deslocamentos na direção do gradiente descendente do erro E(n). • Observando o princípio da mínima perturbação, o erro quadrático médio será
minimizado com este procedimento.
• A expressão genérica para ajuste dos pesos pode ser escrita como (regra delta):
EQM= P
E(n) n=1 1 P w(n+1) = w(n) + (
E(n))
w(n) = E(n)15
• Na camada de saída, a expressão para atualização de um peso genérico é análoga à do perceptron elementar, pois aqui um vetor de pesos wsk (n) é responsável apenas pela parcela de erro correspondente ao seu neurônio k, isto é, ek(n).
Atualização dos pesos da camada de saída do MLP
1 L i1(n) i0=1 ws k1 1 d1(n) M iL(n) x1 (n) x0 = 1 xN(n) d M(n) y1(n) wo 11 wo LN φ(·) vs 1(n) yM(n) φ(·) vs M(n) φ(·) vo 1(n) φ(·) vo L(n) j ij(n) w s kj k dk(n) xi(n) w yk(n) o ji φ(·) vs k(n) φ(·) vo j(n) ws kL ws k0 wsk(n)=
wsk0 , wsk1 , , wskj,, wskL]
T e2 k(n) =(
dk(n) yk(n))
2
dk(n) f s
vsk(n))
)
2
dk(n)fs
i(n)T.wsk(n)
)
2
M k k n e n E 1 2 ) ( 2 1 ) ( E(n) InformáticaUFRGS Prof. Paulo Martins Engel
Cálculo de um termo do gradiente pela regra da cadeia
1 L i1(n) i0=1 ws k1 1 d1(n) M iL(n) x1 (n) x0 = 1 xN(n) d M(n) y1(n) wo 11 wo LN φ(·) vs 1(n) yM(n) φ(·) vs M(n) φ(·) vo 1(n) φ(·) vo L(n) j ij(n) w s kj k dk(n) xi(n) yk(n) wo ji φ(·) vs k(n) φ(·) vo j(n) ws kL ws k0 s kj s k s k s kj w n v n v n E w n E ( ) ) ( ) ( ) ( E(n) kj s k w n v ( ) ) ( ) ( n v n E s k s kL s k s k s kL w n v n v n E w n E ( ) ) ( ) ( ) (
17
Cálculo de um termo do gradiente pela regra da cadeia
s kj s k s k s kj w n v n v n E w n E ( ) ) ( ) ( ) ( E(n) =
e2 k(n) k=1 M 1 2 ek(n) = dk(n) yk(n) yk(n) = f (vsk(n))(
e2 1(n) + e22(n) + + e2k(n)+ + e2M(n))
= 1 2 vs k(n) =
wskj · ij(n) j=0 L = wsk0· i0(n) + wsk1· i1(n) + + wskj · ij(n) + + wskL · iL(n) ? ) ( s kj w n E
( )
) ( ) ( ) ( n v f n e n v n E s k k s k ) (n s k ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( n v n y n y n e n e n E n v n E s k k k k k s k j kj s k i w n v ( ) InformáticaUFRGS Prof. Paulo Martins Engel
Atualização dos pesos da camada de saída do MLP
• Com isso, o (vetor) gradiente da função de custo do algoritmo BP para um
neurônio k na camada de saída é:
• Para simplificar a notação, definimos o gradiente localsk(n) de um neurônio k da camada de saída como:
wskn wskn+ sk(n) .i (n)
• Assim, a expressão para o ajuste do vetor de peso de um neurônio genérico na
camada de saída do MLP depende diretamente do gradiente local do neurônio
correspondente: s k(n) ek(n) fs´ vsk(n) E(n) ws k (n) = –sk(n)
.
i(n) kE(n) = wsk(n+1) = wsk(n) + (
kE(n))
19
Ajuste dos pesos da camada de saída
1 2 i1(n) i0=1 ws 11 1 2 d1(n) 1 2 i2(n) x1 (n) x0 = 1 x2(n) x1(n) x2(n) d2(n) y1(n) y2(n) ws 10 ws 12 ws 20 ws 21 ws 22 wo 10 wo 11 wo 12 wo 20 wo 21 wo 22 s k(n) (dk(n)yk(n) ). (1yk(n)2) ws kj n wskj n+ sk(n) .ij (n) s 1(n) s 1(n) (d1(n) – y1(n) ). (1 – y1(n)2) s 2(n) (d2(n) – y2(n) ). (1 – y2(n)2) s 2(n) Informática
UFRGS Prof. Paulo Martins Engel
• Um vetor de pesos woj (n) da camada oculta influencia todas as parcelas de erro na saída da rede, por meio da saída do seu neurônio correspondente, ij(n).
Influência dos pesos da camada oculta no erro
e2 k(n) =
(
dk(n) yk(n))
2
dk(n) f s
vsk(n))
)
2
dk(n)fs
i(n)T wsk (n)
)
2 1 L i1(n) i0=1 1 d1(n) M iL(n) x1 (n) x0 = 1 xN (n) d M(n) y1(n) wo j0 wo LN φ(·) vs 1(n) yM(n) φ(·) vs M(n) φ(·) vo 1(n) φ(·) vo L(n) j w s kj k dk(n) xi(n) yk(n) wo ji φ(·) vs k(n) φ(·) vo j(n) ws Mj ws 1j wo j1 wo jN ij(n) ij(n) fo
x(n)Twoj (n)
E(n) =
e2 k(n) k=1 M 1 221 1 L i1(n) i0=1 1 d1(n) M iL(n) x1 (n) x0 = 1 xN (n) dM(n) y1(n) wo j0 wo LN φ(·) vs 1(n) yM(n) φ(·) vs M(n) φ(·) vo 1(n) φ(·) vo L(n) j w s kj k dk(n) xi(n) yk(n) wo ji φ(·) vs k(n) φ(·) vo j(n) ws Mj ws 1j wo j1 wo jN ij(n)
Cálculo de um termo do gradiente pela regra da cadeia
E(n) o ji o j o j j j s M s M j s k s k j s s o ji w n v n v n i i n v n v n E i n v n v n E i n v n v n E w n E ( ) ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1 1 Informática
UFRGS Prof. Paulo Martins Engel
Cálculo de um termo do gradiente pela regra da cadeia
o ji o j o j j j s M s M j s k s k j s s o ji w n v n v n i i n v n v n E i n v n v n E i n v n v n E w n E ( ) ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( 1 1 • Mas como: • Então: ) ( ) ( ) ( n n v n E s k s k s kj j s k w i n v ( )
( )
) ( ) ( n v f n v n i o j o j j i o ji o j x w n v ( )
i o j Mj s M kj s k j s o ji x n v f w w w w n E ) ( ) ( 1 1 • Definindo: o j (n)
k=1 M s k(n) wskj(n) fo(
voj(n))
• Obtemos: = oj (n) x(n) E(n) wo j (n) jE(n)23
Atualização dos pesos da camada oculta do MLP
wojn wojn+ oj (n) .x (n)
• A expressão para o ajuste do vetor de peso de um neurônio genérico na camada de
saída do MLP depende diretamente do gradiente local do neurônio correspondente:
woj (n+1) = woj (n) +
(
jE(n))
Informática
UFRGS Prof. Paulo Martins Engel
Ajuste dos pesos da camada oculta
1 2 i1(n) i0=1 ws 11 1 2 d1(n) 1 2 i2(n) x1 (n) x0 = 1 x2(n) x1(n) x2(n) d2(n) y1(n) y2(n) ws 10 ws 12 ws 20 ws 21 ws 22 wo 10 wo 11 wo 12 wo 20 wo 21 wo 22 o 1(n) o 1(n) 1 – i1(n)2s1(n) ws11s2(n) ws21 o 2(n) wo jin wojin+ oj (n) .xi (n) s 1(n) s 2(n) o 2(n) 1 – i2(n)2s1(n) ws12s2(n) ws22 o j (n)
k=1 M s k(n) wskj(n) fo(
voj(n))
25
Resumo do treinamento por retropropagação de erro
1. Inicializar os pesos com valores arbitrários não nulos.
2. Apresentar um padrão de entrada x(n) e propagá-lo até a saída da rede. 3. Calcular os erros instantâneos na saída da rede, ek(n).
4. Calcular os gradientes locais dos neurônios da camada de saída, s k(n). 5. Ajustar os pesos da camada de saída pela expressão:
wo
jin wojin+ oj (n) .xi (n)
6. Calcular os gradientes locais dos neurônios da camada oculta, o j (n). 7. Ajustar os pesos da camada oculta pela expressão:
ws
kj n wskj n+ sk(n) .ij (n)
8. Repetir os passos de 2 a 7 para todos os padrões de treinamento (1 época) 9. Calcular o erro médio quadrado (EMQ) para o arquivo de treinamento. 10. Se o EMQ for maior que o valor desejado, repetir o passo 8.
Informática
UFRGS Prof. Paulo Martins Engel
Representação da saída e regra de decisão
• O problema de classificar um vetor numa determinada classe Ckentre M classes
possíveis, para o qual a união das M classes distintas forma o espaço de entrada, requer M saídas para representar todas as possíveis decisões de classificação.
• Se o MLP for treinado com a função logística para os neurônios de saída e com os valores das saídas desejadas correspondendo à rotulação binária:
MLP xj y1,j yk,j yM,j dkj 1 se xj Ck 0 se xj Ck
• Então, após o treinamento, quando um vetor x for propagado pela rede, o valor de um nó de saída, yk, corresponde à probabilidade a posteriori que x pertença a classe Ck, isto é, P(Ck|x).
27
• Desta forma, cada nó de saída do MLP apresentará um valor que é uma estimativa de probabilidade a posteriori que o vetor de entrada pertença à classe respectiva. • Com isso, nós podemos utilizar a regra de Bayes para decidir a que classe o vetor
de entrada pertence.
• A regra de Bayes decide a classificação de um vetor pela máxima estimativa da probabilidade a posteriori.
• Esta regra é utilizada nos classificadores estatístico por máxima verossimilhança. • Então, considerando que um vetor x foi propagado através de um MLP treinado
segundo as condições descritas anteriormente, gerando as saídas da rede y1(x),
y2(x), …, yj(x), …, yM(x), a regra de classificação em uma das M classes possíveis pode ser expressa como:
Classifique o vetor x como pertencente a Ckse
yk(x) > yj(x) para todo j k
Informática
UFRGS Prof. Paulo Martins Engel
29
• Há dois modos de treinamento para os algoritmos iterativos supervisionados: 1. Modo seqüencial. Neste modo, também referenciado como modo incremental, ou
on-line, a atualização dos pesos é realizada após a apresentação de cada exemplo de
treinamento (adapt).
2. Modo por lote. Neste modo, o ajuste de pesos é realizado após a apresentação de
todos os exemplos de treinamento, que constituem uma época (train).
• Do ponto de vista operacional, o modo seqüencial é preferível porque requer menos armazenamento local para cada conexão sináptica.
• Além disso, pela aleatoriedade na apresentação dos padrões, a atualização dos pesos na base de padrão por padrão torna a busca no espaço de pesos de natureza
estocástica, tornando o algoritmo menos propenso a ficar preso em mínimos locais. • Por outro lado, a natureza estocástica do modo seqüencial torna difícil estabelecer as
condições teóricas para convergência do algoritmo.
• Já o modo por lote fornece, por exemplo, uma estimativa precisa do vetor gradiente, garantindo assim a convergência para um mínimo local.
Modos de Treinamento
Informática
UFRGS Prof. Paulo Martins Engel
Heurísticas para melhorar a convergência e a generalização
• Atualização seqüencial comparada à atualização por lote: o modo seqüencial do algoritmo BP é computacionalmente mais rápido que o modo por lote.
• Maximização do conteúdo de informação: Como regra geral, todo exemplo de
treinamento apresentado deve ser escolhido de forma que o seu conteúdo de informação seja o maior possível:
• exemplo que resulta no maior erro de treinamento • exemplo que seja bem diferente dos outros
• Soluções práticas: tornar aleatória a ordem de apresentação dos exemplo ou apresentar à rede um número maior de exemplos difíceis (maior erro).
• Função de ativação: a aprendizagem é mais rápida quando se utiliza uma função anti-simétrica do tipo:
(v) = a tanh(bv) com a = 1,7159 e b = 2/3
Com isso, a inclinação da função de ativação na origem fica próximo da unidade e a sua derivada segunda atinge o seu valor máximo em v = 1.
31
Função de ativação anti-simétrica
a = 1,7159
-a = -1,7159
(v)
v
Informática
UFRGS Prof. Paulo Martins Engel
Heurísticas para melhorar a convergência e a generalização
• Valores-alvo: É importante escolher os valores-alvo (resposta desejada) dentro do intervalo da função de ativação, ou seja afastados por uma quantidade do valor limite da sigmóide.
• Caso contrário, o algoritmo BP tende a levar os pesos para o infinito, reduzindo a velocidade do processo de treinamento, levando os neurônios ocultos à saturação. • Solução: escolher d = 1 quando a da função de ativação for 1,7159.
• Outra solução: escolher d = 0,9 quando a da função de ativação for 1.
• Normalizar as entradas: Cada variável de entrada deve ser pré-processada de modo que o seu valor médio seja pequeno comparado com o desvio padrão.
• Isto pode ser feito em três passos: remoção da média, descorrelação e equalização das covariâncias.
33 Normalização das entradas
remoção da média descorrelação equalização da covariância dados originais Informática
UFRGS Prof. Paulo Martins Engel
Heurísticas para melhorar a convergência e a generalização
• Inicialização: Os valores dos pesos devem ser inicializados uniformemente dentro de um intervalo de valores pequenos, para reduzir a probabilidade de que os neurônios da rede saturem, produzindo gradientes pequenos.
• Entretanto, se os pesos forem muito pequenos, os gradientes serão também muito pequenos no início.
• Quando utilizamos a função de ativação especificada anteriormente, uma solução é inicializar os pesos aleatoriamente dentro do intervalo (2,4/Fi, +2,4/Fi) onde Fié o fan-in do neurônio i da rede.
• Pelo método de Nguyen e Widrow, os pesos são inicializados aleatoriamente num intervalo regulado pelo núm. de unidades ocultas (H) e a dimensão dos padrões (N), 0,7H1/N.
• Regra delta generalizada: Para aumentar a taxa de aprendizagem, evitando o perigo da instabilidade, introduz-se um termo de momento na expressão de correção dos pesos, correspondente a uma parcela () da correção no passo anterior:
ws
35
• A avaliação empírica da capacidade preditiva de hipóteses
(desempenho preditivo) é fundamental para tarefas de aprendizado.
• A dificuldade em se estimar este desempenho está no fato de
normalmente se dispor de uma amostra limitada de dados que pode não
representar corretamente a distribuição geral dos dados.
• Com isso, a estimativa de desempenho feita sobre uma amostra de
dados disponível para este fim, não corresponde exatamente ao
desempenho verdadeiro, medido sobre a distribuição geral dos dados.
• Para contornar esta dificuldade, são aplicados métodos estatísticos e
feitas suposições sobre as distribuições dos dados.
• A taxa de erro de previsão da classe é uma medida natural de
desempenho para tarefas de classificação.
Avaliação de modelos
Informática
UFRGS Prof. Paulo Martins Engel
• Como obter uma estimativa confiável sobre o desempenho do modelo?
• Erro sobre os dados de treinamento não é um bom indicador de desempenho sobre
dados futuros (estimativa com viés otimista)
• Solução simples se existirem muitos dados rotulados:
– Dividir dados em conjuntos de treinamento e de teste (amostras independentes)
• Mas: normalmente o número de dados rotulados é limitado
– São necessárias técnicas mais sofisticadas de avaliação
• Mesmo que a estimativa seja realizada sobre um arquivo sem viés (amostras
independentes de teste), a acurácia medida pode ainda ser diferente da acurácia real, dependendo de como o arquivo de teste foi composto. Quanto menor o arquivo de teste, maior será a variância esperada entre estas acurácias.
• Desempenho do modelo pode depender de outros fatores, além do algoritmo de
aprendizagem:
– Distribuição de classes, custo para classificação errada, tamanho dos conjuntos de treinamento e teste
37
• É importante que os dados de teste não sejam usados para
criar o modelo
• Alguns esquemas de aprendizagem operam em dois estágios:
– Estágio 1: constrói a estrutura básica
– Estágio 2: otimiza os parâmetros da estrutura
• Os dados de teste não podem ser usados para ajustar
parâmetros!
• Neste caso são precisos três conjuntos: de treinamento, de
validação (ou configuração) e de teste.
– Conjunto de validação é usado para otimizar parâmetros
Nota sobre ajuste de parâmetros
Informática
UFRGS Prof. Paulo Martins Engel
• Após a avaliação, todos os dados podem ser usados para
construir o classificador final
• Geralmente, quanto maior o arquivo de treinamento melhor o
classificador
• Quanto maior o arquivo de teste mais exata será a estimativa
de erro
• Procedimento holdout (retenção): dividir os dados originais
em conjuntos de treinamento e de teste
– Dilema: queremos tanto um grande arquivo de treinamento quanto
um grande arquivo de teste
39
• O que fazer se a quantidade de dados é limitada?
• Método holdout reserva uma certa quantidade dos dados para
teste e usa o resto para o treinamento
– Usualmente 1/3 para teste, o resto para treinamento
• Mas: as amostras podem não ser representativas
– Exemplo: pode não haver amostras de uma classe nos dados de teste
• Versão avançada usa estratificação
– Assegura que cada classe esteja representada com proporções
aproximadamente iguais em ambos os conjuntos
• Bootstrap
– Amostragem com substituição
Estimação por retenção (holdout)
Informática
UFRGS Prof. Paulo Martins Engel
• Validação cruzada evita superposição dos conjuntos de teste
– Primeiro passo: conjunto de dados é dividido em k subconjuntos de
tamanhos iguais
– Segundo passo: cada subconjunto é usado para teste e os demais
para treinamento.
– O segundo passo é repetido k vezes
– Esta é a chamada validação cruzada por k vezes
• Muitas vezes os subconjuntos são estratificados antes de
realizar a validação cruzada
• A estimativa de erro global é calculada como a média das k
estimativas de erro de cada iteração
41
Avaliação do modelo gerado
• Validação cruzada (CV): o problema do treinamento da rede pode ser visto como o da escolha da melhor configuração de um conjunto de configurações possíveis de rede (parametrizações).
• A validação cruzada consiste em se dividir o conjunto de dados disponível aleatoriamente num conjunto de treinamento e num conjunto de teste.
• O conjunto de treinamento é dividido ainda num subconjunto de estimação e num subconjunto de validação.
• Deve-se treinar o modelo com o conjunto de estimação e validá-lo com o conjunto de
validação.
• O desempenho de generalização é medido pelo conjunto de teste.
• Na versão k-fold-CV, o conjunto de dados é dividido em k subconjuntos de tamanhos iguais.
• A seguir, cada subconjunto é usado para teste e os demais para treinamento
• A estimativa de erro global é calculada como a média das k estimativas de erro de cada iteração.
Informática
UFRGS Prof. Paulo Martins Engel
four-fold-cross-validation
subconj 1 subconj 2 subconj 3 subconj 4 Conjunto de Exemplos subconj 1 subconj 2 subconj 3 subconj 4 teste treino treino treino subconj 1 subconj 2 subconj 3 subconj 4 teste treino treino treino subconj 1 subconj 2 subconj 3 subconj 4 teste treino treino treino subconj 1 subconj 2 subconj 3 subconj 4 teste treino treino treino43
• A validação cruzada deixando um fora (
leave-one-out c-v
):
– O número de vezes é escolhido como o número de exemplos de
treinamento
– Isto é, deve-se construir n classificadores, onde n é o número de
exemplos de treinamento
• Aproveita ao máximo os dados
• Não envolve sub-amostragem aleatória
• Computacionalmente muito custoso
Validação cruzada deixando um fora
Informática
UFRGS Prof. Paulo Martins Engel
• O foco deve estar na capacidade preditiva do modelo
• Apesar de a taxa de erro, ser uma medida natural de desempenho de
classificação, ela não distingue entre erros feitos sobre exemplos
positivos daqueles feitos sobre exemplos negativos.
• A matriz de confusão é uma ferramenta que contabiliza os acertos e os
erros feitos pela hipótese avaliada:
Métricas para avaliação de desempenho
Classe prevista Positivo Negativo Classe real Positivo Verdadeiro Positivo (VP) Falso Negativo (FN) Negativo Falso Positivo (FP) Verdadeiro Negativo (VN)
45
Métricas para avaliação de desempenho...
Classe prevista Positivo Negativo Classe real Pos Verdadeiro Positivo (VP) Falso Negativo (FN) Neg Falso Positivo (FP) Verdadeiro Negativo (VN)
• Métricas mais usadas:
– Acurácia (mais usada), Erro
n VN VP FN FP VN VP n n FN FP Acurácia: Erro:
P : número de exemplos positivos (8) N : número de exemplos negativos (12) n = P + N : número total de exemplos (20)
Pr(P)= P/n = 0,4 : Probabilidade a priori da classe P Pr(N)= N/n = 0,6 : Probabilidade a priori da classe N Acurácia(M) = 15/20 = 0,75 Erro(M) = 5/20 = 0,25 Prevista P N Real P 6 2 N 3 9 Modelo M + + + + + + + + + + + + + + + + Informática
UFRGS Prof. Paulo Martins Engel
Métricas para avaliação de desempenho
Classe prevista Positivo Negativo Classe real Positivo Verdadeiro Positivo (VP) Falso Negativo (FN) Negativo Falso Positivo (FP) Verdadeiro Negativo (VN)
– Métricas mais usadas:
n VN VP FN FP VN VP n n FN FP Acurácia: Erro: Precisão (p): VPVPFP
(Fração relevante do total previsto)
Recall (r):
(Sensibilidade, SN ) VP FN
VP
(Fração prevista do total relevante)
– Métricas sensíveis a custo
VN w FP w FN w VP w VN w VP w 4 3 2 1 4 1 Acurácia ponderada:
• Matriz de confusão
47 Classe prevista + Classe real + VP FN FP VN Precisão (p)
Fração correta do total previsto VP FP VP p
Taxa de VP (TVP), sensitivity ou recall (r) Fração dos exemplos positivos prevista corretamente
FN VP VP r TVP Taxa de FP (TFP)
Fração dos exemplos negativos prevista como positivos
VN FP FP TFP
Taxa de VN (TVN), specificity ou fall-out Fração dos exemplos negativos prevista corretamente
VN FP VN TVN Taxa de FN (TFN)
Fração dos exemplos positivos prevista como negativos
FN VP FN TFN VN w FP w FN w VP w VN w VP w 4 3 2 1 4 1 Acurácia ponderada: Medida-F (F): p r rp 2
Média harmônica entre precisão e recall
Das definições segue: TVP + TFN = 1 TVN + TFP = 1