오토인코더(Autoencoder)는 단순히 입력을 출력으로 복사하는 신경망이다.
이 때 hidden layter의 뉴런수를 input layer보다 작게 해서 데이터를 압축하거나 노이즈를 추가해 원본 입력을 복원할 수 있도록 하는 등의 다양한 오토인코더가 존재한다.
수식
학습방법
다시 말해, 입력데이터를 압출시켜 압축 시킨 데이터로 축소한 후에 다시 확장하여 결과 데이터를 입력 데이터와 동일하도록 만드는 과정이며, Unsupervised Learning으로 분류된다.
이때 압출시키는 부분은 Encoder라고 하며, 확장시키는 부분은 Decoder라고 한다.
AutoEncoder는 보통 Stacked Auto Encoder구조로 많이 활용되며, 대칭적 구조이다.
input layer의 입력데이터를 압축시켜 가장 대표적인 특성을 추출하 층이 Encoded Layer에 있는 노드들이다. 이 층이 압축된 데이터를 갖고 있는 layer이며, 결과 데이터가 입력 데이터와 얼마나 동일하게 출력할 것인가를 결정하는 역할이다.
DAE는 임의의 데이터인 노이즈 데이터를 제거하거나, 노이즈를 일부러 추가해 중요한 특징을 추출하도록 하는 Auto Encoder이다.
가우시안 노이즈를 통해 노이즈를 추가하거나 dropout을 통해 이미지를 예로 든다면 이미지의 픽셀 일부를 사라지게 하는 것이다. > Regularization 효과
노이즈를 추가하는 역할을 주로 하며, hidden layer에서의 노드 값들 중 한번의 샘플링을 통해 대표 특성들의 또 대표 특성들을 추출한다. 여기에 가우시안 노이즈를 더해주어 노이즈가 첨가된 대표특성들을 생성하며, 이를 기반으로 확장하여 출력데이터를 도출하게 된다.