오토인코더

개요[편집 | 원본 편집]

AutoEncoder.png

오토인코더(Autoencoder)는 기계 학습 방법의 일종으로, 비지도 학습(Unsupervised learning)에 속한다. 신경망 알고리즘(Neural network)을 이용하여 어떤 입력이 신경망을 거쳐 나온 출력값이 그 입력값과 최대한 비슷해지도록 하는 것을 목표로 학습한다. 이때 입력값의 차원보다 신경망 뉴런의 개수가 크거나 같을 경우 학습의 의미가 없어진다. 입력값을 그대로 받아서 내보내면 그만이기 때문. 즉 의미를 가지기 위해서는 뉴런의 개수가 입력값의 차원보다 작아야 한다. 이 학습의 결과 더 적은 수의 값들을 가지고 원래 값을 복원할 수 있는 압축의 효과를 얻을 수 있다.

변형[편집 | 원본 편집]

Denoising autoencoder[편집 | 원본 편집]

오토인코더가 원래 입력을 복원하는 것을 목표로 한다면, Denoising autoencoder는 원래 입력에 일부러 노이즈를 추가하여 이 입력을 원본으로 만드는 것을 목표로 한다. 비가 와서 창에 물방울이 맺혀 있더라도 밖의 사물을 분간할 수 있는 것처럼, 노이즈가 추가되더라도 그 사물을 나타내는 특징은 유지되는 경우가 많다. 이러한 특징을 효과적으로 추출해낼 수 있는 방법이 바로 Denoising autoencoder이다. 실제 구현시에는 입력값(이미지 등)의 많은 점들을 랜덤하게 0으로 만드는 등의 처리를 한다.