Autoencoders Flashcards

1
Q

O que é um autoencoder?

A

É uma rede neural não supervisionada que é treinada com o objetivo de copiar sua entrada na sua saída. Essa é composta por um encoder e decoder.

Essa codifica os dados de entrada em um espaço de representação, ou espaço de variáveis latentes, geralmente com redução de dimensão e empregar este código para reconstruir a entrada na saída da rede neural.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Em geral, existe utilidade em um autoencoder que tenha sucesso em aprender g(f(x)) = x (onde f é o encoder e g é o decoder) perfeitamente em todo lugar??

A

Em geral, não

autoencoder não são projetados pra aprender a copiar a entrada perfeitamente. Usualmente, eles são restritos a aprender uma cópia aproximada. Dessa forma, o modelo é forçado a priorizar quais aspectos da entrada devem ser copiados (aprender propriedades úteis dos dados).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que são autoencoders incompletos

(undercomplete autoencoders)?

A

Um autoencoder que a dimensão de codificação é menor que a dimensão de entrada.

Sendo h=f(x) (encoder) h é restrito a ter dimensão menor que x obtendo características úteis (mais relevantes).

minimiza-se a função perda L

L(x, g(f(x)))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que são denoising autoencoders? Onde são usados e qual finalidade?

A

Denoising autoencoder são uma variação de um autoencoder padrão, geralmente do tipo undercomplete.

Na sua entrada é adicionada um ruído e na sua saída (target) se mantem a entrada sem ruído

assim sendo sendo x~(entrada + ruído) L a função de perda

L = -logp_{decoder}(x|h = f(x~))

O objetivo é gerar uma representação mais robusta que captura a essência nos dados de entrada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é variational autoencoder?

A

VAE é um tipo especial de autoencoder.
Em vez de seu código (saída do encoder) tratar valores singulares como autoencoders padrões. O encoder tem como saída uma distribuição de probabilidade com média e desvio padrão para cada variável do código.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como é o treinamento de um VAE?

A

O objetivo do treinamento de um VAE é similar a um autoencoder padrão a qual busca-se minimizar a diferença entre a entrada x e sua reconstrução \hat{x} por exemplo
min ||x - \hat{x}||
No entanto, como a saída do encoder é uma distribuição de probabilidade essa deve ser amostrada (sample) aleatoriamente . Assim, precisa ser garantido que pra qualquer amostragem aleatória as reconstruções sejam acuradas. Isso é obtido com
min KL(q(z|x), p(x|z))
onde KL é divergente de Kullback Leibher
p é a distribuição intratável (verdadeira) que faz z -> x
q é uma distribuição tratável que faz x -> z

A função de perda é

L(theta, phi, x,z) = E_{q_phi(z|x)}{log[p_theta(x|z)]} - D_{KL}[q_phi(z|x)||p(z)]

ou

L(x, \hat{x}) + \sum_{j}KL(q_j(z|x)||p(z))

onde assume-se que p(z) segue uma distribuição gaussiana unitária.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explique o disentangled (desembaraçado) VAE.

A

Em um disentangled VAE é dado um peso maior para o divergente de KL. Dessa forma, a rede aprende distribuições mais largas e as dimensões latentes se tornam mais não-correlacionadas.

L(theta, phi, x,z) = E_{q_phi(z|x)}{log[p_theta(x|z)]} - beta*D_{KL}[q_phi(z|x)||p(z)]

ou

L(x, \hat{x}) + beta*\sum_{j}KL(q_j(z|x)||N(0,1))

onde beta > 1

Em um VAE (padrão) beta = 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Na implementação do treinamento de VAE explique o truque de reparametrização,

A

No treinamento de um VAE é necessário se calcular a relação entre a função perda de saída e cada parâmetro através do backpropagation. No entanto, isso não é possível em um processo de amostragem aleatório. Assim, é usado o truque de reparametrização que sugere dado uma amostragem aleatória epsilon, de uma gaussiana unitária, deslocamos epsilon por uma média mu e escalamos pela variância sigma

z = mu + sigma* epsilon

onde epsilon ~ N(0,1)

Como essa reparametrização mantem-se a optimização de parâmetros enquanto se mantem a habilidade de se amostrar aleatoriamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que significa aprendizado da representação?

A

Significa aprender representações dos dados que facilitam a extração de informações uteis quando se constroem classificadores e preditores.

No caso de modelos probabilísticos, uma boa representação é frequentemente aquela que capta a distribuição posterior do fatores explicativos para a entrada observada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Deep learning geralmente envolve uma cascata de transformações não-lineares, ao longo das muitas camadas da rede neural. O que isto tem a ver com o aprendizado da representação?

A

Cada camada (transformação não linear) atua como uma extratora de atributos (feature extractor) fazendo assim um aprendizado da representação. Essas transformações tem o proposito de produzir representações dos dados que sejam mais abstratas e úteis para a execução da tarefa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly