본문 바로가기
Data Science/Recommendation

Autoencoder, 오토인코더란?

by yejining99 2022. 6. 27.

오토인코더(Autoencoder)는 neural network의 비지도 학습 중 하나.

목표 : 어떻게 효율적으로 데이터를 잘 압축(compress, encode)하고 어떻게 다시 그 압축된 데이터를 원래 데이터 형태로 복원(reconstruct) 시키는가 ! 

 

MNIST 데이터셋에 autoencoder를 적용시키면 이런 형식이 나온다.

오토인코더는 크게 4가지 파트가 있다.

1. Encoder : input data -> reduce! -> encoded representation

2. Bottleneck : input data의 압축된 형태를 가지고 있는 layer

3. Decoder : encoded representation -> reconstruct! -> original input

4. Reconstruction Loss : 얼마나 잘 복원했는지 측정

 

모델 training은 4.reconstruction loss를 최소화(minimize)하도록 back propagation하면서 진행된다.

 

autoencoders는 5 종류로 사용된다.

1. Undercomplete autoencoders

압축된 image를 원래 image로 예측하는 기법

encoder로 차원 축소

 

2. Sparse autoencoders

Undercomplete autoencoders과 비슷하지만, hidden layer의 노드수로 규제가 됨

-> sparsity function

 

3. Contractive autoencoders

image의 representation을 배우는 기법

 

4. Denoising autoencoders

image의 noise를 없애는 기법

 

5. Variational Autoencoders

image의 특정 부분을 확률분포로 다루는 기법

 

autoencoder의 활용

1. 차원축소

2. 이미지 노이즈 감소

3. 이미지와 시계열 데이터 생성

4. 비정상 탐지

 

 

참고 링크

https://towardsdatascience.com/auto-encoder-what-is-it-and-what-is-it-used-for-part-1-3e5c6f017726

 

Auto-Encoder: What Is It? And What Is It Used For? (Part 1)

A Gentle Introduction to Auto-Encoder and Some Of Its Common Use Cases With Python Code

towardsdatascience.com

 

https://www.v7labs.com/blog/autoencoders-guide

 

Autoencoders in Deep Learning: Tutorial & Use Cases [2022]

Autoencoders are a type of neural network that can be used for unsupervised learning. Explore different types of autoencoders and learn how they work.

www.v7labs.com

https://keras.io/examples/vision/autoencoder/

 

Keras documentation: Convolutional autoencoder for image denoising

Convolutional autoencoder for image denoising Author: Santiago L. Valdarrama Date created: 2021/03/01 Last modified: 2021/03/01 Description: How to train a deep convolutional autoencoder for image denoising. View in Colab • GitHub source Introduction Thi

keras.io