---
presentation
theme: beige.css
slideNumber: true
width: 1024
height: 768
---
## Aprendizado de Máquina
#### Autoencoders e transfer learning
#### Prof. Ronaldo Cristiano Prati
[ronaldo.prati@ufabc.edu.br](mailto:ronaldo.prati@ufabc.edu.br)
Bloco A, sala 513-2
### Redes profundas
- A "profundidade" das redes profundas é apenas parte do seu sucesso.
- O excelente desempenho em algumas tarefas se deve a outras duas características:
- Autoencoders
- Transferência de aprendizado
### Redes autocodificadoras
- Redes autocodificadoras (autoencoders) criam uma representação adjacente ao conjunto de dados de forma não supervisionada (ou auto-supervisionada)
- Permite o aprendizado de representações mais concisas
### Redes autocodificadoras
- Características identificadas durante o aprendizado são úteis para uso posterior em tarefas de aprendizado supervisionado.
- Transformações são aplicadas na entrada de acordo com dois tipos de funções:
- Função de extração de características
- Função de reconstrução
### Encoder
- **Função de extração de características (encoder)** mapeia o conjunto de treinamento para uma representação latente.
- Mapeia o espaço de dimensão $m$ para um espaço de dimensão $k$
$$ h = R^m \rightarrow R^k$$
### Decoder
- **Função de reconstrução (decoder)** mapeia a representação produzida por h de volta para o espaço original.
- Mapeia o espaço de dimensão $k$ de volta para o espaço de dimensão $m$
$$ r = R^k \rightarrow R^m$$
### Autoencoders
![](autoencoder.png)
### Treinamento
- Um autoencoder é treinado para reproduzir na sua saída a própria entrada.
- O objetivo do treinamento é definir parâmetros em $h$ e $r$ tal que o erro de reconstrução seja minimizado.
- Pode ser treinada usando backpropagation com gradiente descendente, com o cuidado de substituir os valores-alvo desejados pela própria entrada
### Treinamento
- Possibilidade: pesos atados (tied weights)
- Há pares de matrizes de pesos em posições simétricas na rede, uma é a transposta da outra!
- menos parâmetros para otimizar;
- previne soluções degeneradas.
### subcompletas x supercompletas
- Se a representação latente em uma autocodificadora tem dimensão K:
- $k < m$: undercomplete autoencoder;
- $k > m$: overcomplete autoencoder.
- A escolha de K determina a quantidade de unidades da camada intermediária central, que tipo de informação o autoencoder pode aprender acerca da distribuição de entrada.
### Caso $k < m$ (bottleneck)
- **Objetivo:** aprender uma representação compacta do conjunto de dados.
- Exemplo:
- Considere como entrada o conjunto de disciplinas do BC&T, podemos criar uma camada $K$ com o número de cursos pós-BC&T que tentaria codificar qual é o curso que o aluno pretende seguir.
### Caso $K < D$ (bottleneck)
![](bottle.png)
### Caso $k > m$
- **Objetivo:** encontrar características da entrada para posteriormente serem apresentadas a um classificador linear (SVM, k-NN, etc).
- Problema potencial no treinamento: autocodificadora apenas copia os $m$ bits da entrada para $m$ unidades na camada central.
- aprende a função identidade, i.e. $f(x) = x$, deixando de usar $k-m$ unidades nessa camada.
#### Autoencoder com filtragem de ruído
- **Ideia básica:** fazer com que a representação aprendida seja robusta a ruídos nos dados.
- Aplicar alterações aleatórias em cada exemplo de treinamento antes de apresentá-lo à rede.
- Alternativas:
- com probabilidade p, atribuir zero a um atributo do exemplo.
- perturbar cada componente de x por meio de um ruído gaussiano aditivo.
#### Autoencoder com filtragem de ruído
![](noise.png)
#### Contrastive Autoemcoder
- **Ideia básica:** Ideia básica: adicionar uma penalização à função de perda para penalizar representações indesejadas.
- similar a regularização
$$J(\theta) = \frac{1}{2m}\sum_{i=i}^m (h_\theta(x^i) - x^i)^2 + \lambda \|\frac{\partial h_\theta(x)}{\partial x} \| $$
#### Sparse Autoencoder
- **Objetivo:** fazer com que apenas uma pequena quantidade de unidades da camada oculta seja ativada para cada padrão de entrada.
- A esparsidade pode ser obtida por meio de "*dropout*": mantendo apenas as $k$ unidades mais ativas e tornando todas as demais unidades iguais a zero.
#### Sparse Autoencoder
#### Autoencoder - aplicações
Redução da dimensionalidade