Auto-Encoder

$$ l(f(x)) = \frac{1}{2} \int_k ( \widehat{x}{k} - x{k} ) ^{2} $$

$$ 단, \, 여기서 \, k는 \, 입력 \, 변수의 \,차원\, 수 \, \\ \widehat{x}{k}는 \, Auto-Encoer에 \, 의해\,복원된 \, k번째 \,입력노드의 \, 추정값\\ x{k}는 \, k번째 \, 원본 \, 입력값 $$

⇒ input을 그대로 복제하는 Auto-Encoder가 데이터를 잘 학습하면 손실함수가 작을 것임

Untitled

Untitled

⇒ 1번 layer와 3번 layer는 원래 내가 가지고 있는 벡터의 차원 수 보다 더 많은 히든 노드를 가지고 있음

⇒ 2번 layer에서는 input의 벡터의 차원수보다 더 작은 수의 히든 노드를 가지고 있음. 이러한 layer를 bottleneck layer라고 함. Auto- Encoder는 bottleneck layer가 있어야 함. 그래야 정보가 축약이 됨.(필요없는 것들은 걸러내고 중요한 정보들만 bottleneck layer에서 보존됨. 이후 다시 차원을 증가 시켰을 떄 자기 자신이 거의 비슷하게 복원될 수 있음 )

Auto-Encoder의 예시

Untitled