본문 바로가기
AI 빅데이터/후려치는 데이터분석과 AI 알고리즘

[영상인식] GAN과 AutoEncoder

by 마고커 2020. 6. 14.


GAN(Genrative Adverserial Network)과 AE(Auto Encoder) 둘다 Generative 계열의 모델이다. Generative(생성)하다는 말 그대로 임의로 학습한 결과값과 원본 데이터를 판별자(Discriminator)에 넣어 두 가지가 얼추 유사할 때까지 Generator를 돌려 판별하기 힘든 수준의 학습 모델을 만든다는 것이다. 

 

말로 하면 너무 어려운데 쉽게 풀어보자면 아래 그림과 같다. 생성 모델은 첫번째 그림처럼 엉성한 그림을 그리는 모델이다. 판별자 모델에 생성자가 그린 그림을 각각 훈련 시켜 두 모델이 얼마나 유사한지를 판단한다. 어처구니 없으니 가중치를 업데이트 해서 두번째 그림을 만들어본다. 사람 얼굴(?)이 나타났지만 여전히 어이 없어서 계속 가중치를 조절해서 만들다보면 지폐와 유사한 이미지를 만들어내는 모델을 만들어 낸다.

 

 

<출처: 구글 https://developers.google.com/machine-learning/gan/gan_structure?hl=ko>
<출처: 구글 https://developers.google.com/machine-learning/gan/gan_structure?hl=ko>
<출처: 구글 https://developers.google.com/machine-learning/gan/gan_structure?hl=ko>

 

 

AutoEncoder는 GAN과 거의 유사하다. 하지만 원본과 똑같은 이미지를 생성해 내는 데 목표를 두고 있지 않고 원본 이미지와 유사한 모델을 만들어내는 데 목표를 두고 있다고 보면 될 것이다.

 

 

<AutoEncoder, 출처: https://hugrypiggykim.com/2018/01/16/fds-fraud-detection-system-with-autoencoder/>

 

 

위의 그림과 같이, 네트워크(Encoder)를 거치며 노드의 수를 줄여 특징적 요소들만 남게하고, 이를 다시 업샘플링하는 모델(Decoder)에 넣어 원본 이미지와 얼마나 유사한 이미지를 만들어내느냐를 판단한다. 점차 원본 이미지와 유사한 모델을 만들게 되어 결과적으로 살짝 다르지만 원본의 버섯돌이와 유사한 버섯돌이를 만들어내는 모델이 만들어지게 된다. 내용상으로 보면 딱 감이 오듯이, AutoEncoder는 학습데이터량이 부족한 경우에 증강을 위해서 많이 사용된다고 한다. 

 

※ Disclaimer: 본인은 AI알고리즘을 연구하지 않습니다. 의미 부분만 대충 파악하고 싶어서 정리하는 것이고 내용에 다소 때로는 상당히 오류가 있을 수 있으며, 아주아주 단편적 내용만 담고 있습니다. 참고만 하시고 각자 열심히 공부하시길 바랍니다 :D



댓글