티스토리 뷰

다루는 내용.

- 잠재 공간으로 데이터를 인코딩(차원 축소) 그 후 차원 확장.

- 변이형 오토인코더를 통해 생산 모델링의 어려움 이해하기

- 케라스와 오토인코더를 이용한 손글씨 숫자 생성하기

- 오토인코더의 한계와 GAN의 필요성 이해하기

 

아이디어

    딥러닝을 통해 이미지의 픽셀 데이터를 학습하여 클래스를 예측했다. 그렇다면 클래스를 통해 이미지를 만들 수는 없을까?

 

INTRO

    Autoencoder는 인코더와 디코더 두 부분과 가운데 히든 레이어로 이루어져 있는데, autoencoder에서 히든 레이어를 잠재 공간(latent space)라고 합니다. 잠재 공간에서는 데이터의 '압축'이라는 과정이 일어나는데, 압축의 의미는 input에 대한 학습에 따라 적절한 output을 낼 수 있도록 input에 대한 중요한 feature들만 차원 축소를 통해서 남겨두는 것입니다. 마치 사람이 특정 분야의 어렵고 전문적인 지식에 대해서도 익숙해진다면 단어만 들어도 그것을 떠올리고 이해할 수 있는 것과 같습니다.

https://excelsior-cjh.tistory.com/187

GAN과 오토인코더

    오토인코더의 학습 방법은 비교사 학습(Unsupervised learning), Loss는 negative maximum likelihood로 하나의 손실 함수를 통해 해석합니다. 학습된 오토인코더에서의 인코더는 차원 축소를, 같은 의미로는 Manifold learning을 수행하며, 디코더는 생성 모델의 역할을 합니다. 반면에 GAN은 오토인코더와는 다르게 두 가지의 목적함수를 가지고 학습합니다. 두 가지의 목적함수는 각각 생성자와 판별자의 목적함수이며, 생성자는 판별자를 속여 그럴 듯한 데이터를 생성하고 판별자는 생성된 이미지가 오리지날인지 아닌지를 더욱 꼼꼼하게 살펴보면서 세밀하게 판별하도록 학습합니다.

 

오토인코더의 구성 및 훈련 과정

  1. 데이터 수집
  2. 모델(잠재 공간 부분)과 Loss를 정한다.
  3. Learning(training)
    • input image(\(x\))
    • 재구성된 이미지 \(x^{'}\) 
    • \(x\)와 \(x^{'}\)간의 loss를 측정한다. 
  4. Predicting(testing)

 

오토인코더의 활용

    오토인코더는 매우 심플해보이지만 유용한 점이 많다고 합니다. 특히, 오토인코더는 input data에서 유용한 feature들을 추출하는 역할로서 활용되는데, 예를 들어 축소된(=추출된) 잠재 공간에서 아이템과 타겟 클래스의 유사도를 빠르게 확인할 수 있는 원 클래스 분류기로서 이상치 탐지에 활용될 수 있다고 합니다. 또한 옛날에 촬영한 흑백 사진의 노이즈를 제거하고 채색을 시켜주는 작업을 수행하는데도 활용됩니다. 일부 GAN(ex. BEGAN)에서는 오토인코더의 구조 일부를 사용해서 훈련을 하기도 합니다.

   오토인코더의 가장 큰 장점은 비지도 학습이 가능하다는 점 입니다. 레이블링을 하지 않아도 되기 때문에 매우 편리하고, 반면에 데이터 생성 작업을 수행할 경우 이미지 데이터의 해상도가 클수록 output의 결과물이 흐릿하거나 성능이 떨어진다는 점이 단점입니다. 그럼에도 MNIST 데이터와 같이 매우 단순한 데이터에서는 제법 효과적인 데이터 생성이 가능합니다.

 

변이형 오토인코더

    오토인코더 중 변이형 오토인코더(Variational Autoencoder)라는 것이 있습니다(코드도 이를 구현합니다). 순수한 오토인코더의 목표는 latent vector z에서 기존의 데이터를 최대한 비슷하게 복구하는 것이 목표였다고 합니다. 그러나 VAE는 latent vector z를 통해 유사하지만 새로운 데이터를 생성하는 것을 목표로 합니다. 이를 위해 학습을 통해 

\(\array{ z & \rightarrow & x \\ p_{\theta^\ast}~(z) && p_{\theta^\ast}~(x|z^{(i)})}\)  

 

코드 리뷰

https://colab.research.google.com/drive/1D2lebWGGb7M5OL3vVDez8JDwY4MCeMmX#scrollTo=_dSBkiFxNVKZ

참고자료

https://angeloyeo.github.io/2020/01/09/Bayes_rule.html

 

베이즈 정리의 의미 - 공돌이의 수학정리노트

 

angeloyeo.github.io

 

'스터디 > GANs in Action' 카테고리의 다른 글

DCGAN (GANs 인 액션)  (1) 2022.05.03
Basics of GAN (GANs 인 액션)  (0) 2022.04.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함