오토 인코더(Auto-Encoder)는 입력 데이터를 코드(code)라고 부르는 은닉층으로 인코딩하는 인코더(encoder)와 코드를 디코딩하는 디코더(decoder)로 구성된 네트워크입니다.
여기서 인코딩은 입력 데이터의 차원을 축소하는 것을 의미하고, 디코딩은 차원 축소된 데이터를 다시 원래 데이터로 차원을 복원하는 것을 의미합니다.
오토 인코더는 아래 구조와 같이 입력층보다 적은 수의 노드로 구성된 은닉층을 이용하여 입력 데이터의 차원을 축소합니다. 이후 입력층과 같은 크기의 출력층을 구성합니다.
이러한 방법은 기존의 입력 데이터 X를 이용하여 타겟 데이터 Y를 예측하는 것과 다릅니다. (오토 인코더는 비지도 학습입니다.)
오토 인코더는 주성분 분석(차원 축소)를 위해 사용했지만, 최근에는 컴퓨터 비전 분야(이미지 생성, 이미지 노이즈 제거, 이미지 고해상화 등)에서 많이 사용됩니다.
이미지 생성 관련하여 GAN(Generative Adversarial Network)과 유사하지만 조금 다릅니다.
GAN 입력과 상관없는 이미지를 생성하지만, 오토 인코더는 입력 데이터를 기반으로 이미지를 생성합니다.
오코 인코더는 데이터를 압축하는 과정(은닉층의 차원 축소)이 있기 때문에 메모리 측면에서 장점이 있습니다.
또한 이러한 데이터 압축은 전에 머신러닝에서 소개했던 차원의 저주 문제를 예방할 수 있습니다.
실습은 이곳을 참조해 주세요.
'AI > Deep Learning' 카테고리의 다른 글
[Deep Learning] 메타 러닝 (Meta Learning) (1) | 2023.12.01 |
---|---|
[Deep Learning] 적대적 생성 신경망 (GAN) (0) | 2023.06.10 |
[Deep Learning] RNN (Recurrent Neural Networks) (0) | 2023.06.08 |
[Deep Learning] CNN 파라미터 수 계산 (0) | 2023.06.07 |
[Deep Learning] CNN (Convolutional Neural Networks) (0) | 2023.06.07 |