저번 포스팅에서 오토인코더의 기본적인 개념에 대해서 알아 보았다.
복습하면 오토인코더는 딥러닝을 2개 붙여놓은 것으로
- 하나의 딥러닝 구조는 Encoder로 Hidden(latent space)로 압축 하는 것.
- 하나의 딥러닝 구조는 Decoder Hidden(latent space)으로 압축된 것에서 원본으로 복원하는 것.
이다. 즉, 단순히 출력 =입력이 되도록 하는 개념이다. 하지만 이런 Autoencoder도 여러 기법을 사용한다.
예를 들어서 Denoising autoencoder, 그리고 Stacked encoder와 같은 방법이 존재한다.
Denoising autoencoder(https://excelsior-cjh.tistory.com/187)
입력에 Noise를 추가하고 노이즈가 없는 우너본 입력을 Decoder가 구성하도록 학습시키는 것.

일반적으로 Gaussian Random을 추가하며, 복원할 떄는 입력된 초기 값을 복원한다.
- Denoising Auto Encoder를 사용하면 (Training Data + Noise) - Training Data를 학습한 결과가 Encoder에 넣어져서 노이즈를 붙이기 전 데이터와 노이즈를 붙였을 때 Data와의 차이를 구한다.
- 어떤 Data가 Noise에 대해 강력한 지 알 수 있다.
- 예) 사람이라면 머리, 눈, 코가 가장 강력하게 구분하는 데 강력한 영향을 미치고, 주근깨 등은 적은 영향을 미침.
- 따라서 Denoising Auto Encoder를 잘 활용하면 데이터가 별로 없는 상황에서도 어떤 특성이 가잔 영향력을 많이 미치는 지 비지도 학습으로 딥러닝을 수행할 수 있다.
Stacked Auto Encoder(http://jaynewho.com/post/9)

Auto Encoder자체가 비지도 학습이지만 Stacked Encoder는 Latent Space를 더 많이 사용하여 레이블되지 않은 데이터가 많을 때 사용하는 방법이다. 즉, Hidden layer를 더 많이 사용함으로써, 1) 전체 데이터를 학습시켜서 데이터를 레이블링한 다음 2) 하위 레이어를 사용하여 다시 학습시키는 방법을 사용하여 성능을 증가 시키는 방법을 사용한다.
이 방법으로 일반적인 오토인코더보다 성능이 훨씬 개선되지만 정확한 수식이나 코드는 아직 보지 못했다. 최근에는 Denoising과 Stacked Auto Encoder를 섞어서 사용하는 것 같은데 이러한 방법에 대해서도 알아 봐야 할 것 같다. 다음에는 이, Stacked Denoising Auto Encoder아니면 Stacked나 Denoising Autoencoder의 코드를 알아 보도록 하겠다.
-끝-
'머신러닝 > 딥러닝 - 오토인코더' 카테고리의 다른 글
오토인코더란(4) - 그림으로보는 오토인코더의 종류 (0) | 2021.11.10 |
---|---|
오토인토더란(3) - Deep Auto Encoder With MNIST DATA (0) | 2021.11.09 |
Auto Encoder란(1) (0) | 2021.11.04 |
Keras로 딥러닝 만들고 파라미터 튜닝하기(Grid Search (0) | 2021.01.26 |
tensorflow model 못 읽는 문제 해결 (0) | 2020.12.08 |