김활석(Naver) 님의 오토인코더의 모든 것 (1/3) 강의에서 03. Autoencoders 챕터 일부를 정리한 글입니다.
오토인토더란?
인코딩(encoding) 하면 줄어들고, 디코딩(decoding)하면 늘어나는 구조
Autoencoders
= Auto-associators
= Diabolo networks
= Sandglass-shaped net
Bottleneck Hidden Layer
- code
- Laten Variable
- Feature
- Hidden representation
Introduction | Notations
- Make output layer same size as input layer
- Loss encourages output to be close to input
L(x, y) : 네트워크 출력값(y)이 정답과 같아야되는데 그게 사실 입력값(x)인, 입출력이 동일한 네트워크 - Unsupervised Learning → Supervised Learning
- Decoder가 최소한 학습 데이터는 생성해낼 수 있게 된다.
→ 생성된 데이터가 학습 데이터와 닮아있다. - Encoder가 최소한 학습 데이터는 잘 Latent vector로 표현할 수 있게 된다.
→ 데이터 추상화를 위해 많이 사용된다.
- Decoder가 최소한 학습 데이터는 생성해낼 수 있게 된다.
Q. 왜 Autoencoder가 초기에 각광을 많이 받았나?
A. 차원을 줄이는 과정은 비교사 학습으로만 가능함. (예: 1,000차원을 3차원으로 줄이는 정답을 알 수 없기 때문)
Autoencoder는 출력에 대한 정답을 입력값(x)으로 하기 때문에, 비교사 학습(unsupervised learning)이지만 교사 학습으로 풀어서 각광을 받게 됨. 그래서 self-learning 이라는 표현도 자주 함.
Linear Autoencoder | Multi-Layer Perceptron
Stacking Autoencoder
- 2000년도 초반에 많이 사용됨
- CNN 모델은 2014년에 인기를 끌었으므로, Autoencoder 사이에 약 10년정도의 차이가 있음
- Autoencoder가 주로 사용한 경우
- 네트워크 파라미터 초기화 (pre-traning) : 딥러닝에서 초기값 설정이 매우 중요함
- 차원 축소
초기값을 무작정 랜덤으로 설정하지 않고, Input 784 단계의 값을 784 -> 1000 -> 784으로 다시 원복할 수 있도록 가중치(weight) 값을 설정한다. 두 단계 모두 transpose 할 수 있도록 tide 형태로 학습을 하는 방식이다. 오터인코더를 쌓으면서 pre-traning 하기 때문에 stacking autoencoder 라고 한다.
Denoising AutoEncoder
입력값에서 노이즈(random noise)를 추가한 corrupted input값으로 Encoder -> Latent vetcor -> Decoder 과정을 거치고, 출력값은 노이즈가 추가되기 전인 입력값과의 차이를 최소한으로 하는 과정을 하게 된다.
사람이 노이즈를 넣기 전후의 이미지를 모두 숫자 2라고 인식할 수 있는 수준으로 노이즈를 추가한 후, manifold 과정을 거치는데 이는 같은 의미로 매핑되어 1000개와 위치가 노이즈 추가되기 전의 위치와 같아야 한다.
따라서, 입력값에 manifold에서 의미적으로는 같지만 원데이터와는 다른 수준의 노이즈를 추가하면 결과가 잘 나온다!
참고자료
강의 : https://youtu.be/o_peo6U7IRM
발표자료 : https://www.slideshare.net/NaverEngineering/ss-96581209
'20. 인공지능과 딥러닝' 카테고리의 다른 글
Generative AI를 만드는 생성형 모델 동작 방식 (0) | 2023.05.18 |
---|---|
2023 Google I/O : 인공지능, 검색엔진, 하드웨어 (0) | 2023.05.17 |
[인공지능 및 기계학습 개론 II] Latent Dirichlet Allocation 모델 (0) | 2020.11.29 |
Asynchronous Methods for Deep Reinforcement Learning (A3C) (0) | 2020.09.14 |
DQN 실습 :: CartPole 게임 (1) | 2020.08.30 |
댓글