AutoEncoder? 위키에서 찾아보았다.

스크린샷 2022-02-11 오후 12.59.56.png

간단하게 말하자면,

스크린샷 2022-02-11 오후 12.51.51.png

AutoEncoder는 input으로 계산되는 output이 input과 비슷하게 표현되도록 학습하는 신경망.

image.png

입력과 출력이 같은 크기를 가지며,

이 같은 구조를

bottleneck (좁은 통로) 라고 부른다.

목표 출력이 input 그 자체로,

  1. input을 정방향으로 전파시켜 한 번 output을 구한 뒤,
  2. 이번에는 output을 역방향으로 전파시켜 input 측으로 되돌리는 연산을 말한다.

AutoEncoder 설계

단층의 Forward NN 식은 다음과 같다.

$y = f(Wx+b)$

encoding 활성화 함수 $f$와, decoding 활성화 함수 $\tilde f$라고 하자.

이렇게 구성된 신경망을 SGD로 loss 값을 최소화하면서, W와 b를 학습한다. ($\tilde f$의 $\tilde W$와 $\tilde b$는 사용하지 않는다.)

각 sample $\hat x_n$을 입력한 시점의 출력 $\hat x_n$이 평균적으로 가까워지도록 학습하는 것이다.