GAN(Generative Adversarial Network)의 핵심 아이디어 미리보기
1. Generative model
의미 자체로만 생각해보면 그럴듯한 이미지나 문장을 만드는 모형?
하지만 단순히 무언가를 만드는 것만 generative model은 아니다.
개 사진을 학습한 확률모형에서 새로운 개 사진을 sampling 하는 generation 이러한 모형을 implicit model이라 한다.
새로운 사진을 주었을 때 개랑 비슷할수록 높은 확률을 뽑아내는 density estimation, 이러한 모형을 explicit model이라 한다.
density estimation은 이상점 탐지(anomaly detection)에 사용할 수 있다.
입력 이미지들에서 공통 부분(개의 경우 귀나 꼬리)을 배우는 feature learning <이것은 교수님은 동의하지 않는다..>
2. GAN(Generative Adversarial Network)의 핵심 아이디어
도둑(generator)이 위조지폐를 만들고 싶은데 위조지폐를 잘 구분하는 경찰(discriminator)이 있다고 가정해보자.
도둑이 위조지폐를 만들면 그것을 보고 경찰이 구별해낸다.
구별한 결과를 바탕으로 도둑은 더욱 위조지폐를 잘 만들려고 하고 경찰도 질 수 없어서 더 잘 구별하려고 한다.
이 과정을 반복하면서 결국에는 generator의 성능을 높이고자 한다.
학습의 결과로 원하는 것은 generator이지만 이것을 보며 학습하는 discriminator의 성능도 올라가는 것이 하나의 장점
확률을 뽑아내는 것이 아닌 generating을 하는 implicit model
3. GAN의 목표는
GAN은 generator와 discriminator의 two min max게임이다.
무슨 말이냐면 GAN은 generator를 최대화<위조지폐 생산 성능을 최대화>하면서
동시에 discriminator를 최소화<위조지폐 구별 실패를 최소화>하는 것이 목표이다.
고정된 generator에 대하여 discriminator를 최소화하는 최적의 discriminator는
이 최적으로 구한 discriminator를 generator 입장에서 최대화하는 식에 집어넣어보면
데이터를 실제로 만든다고 생각하는 true 분포 $P_{data}$와 generator의 분포 $P_{G}$의 거리를 좁히는 과정이다.
여기서 거리는 Jenson-Shannon Divergence로 표현했다
이것을 반복하면서 최적의 discriminator와 generator를 구하는것.
근데 사실 바꿔말하면 한계점이 있다.
고정된 generator로 최소화시킨 discriminator를 처음 구할 때 진짜 그것이 optimal이라고 할 수 있을까?
그 discriminator를 이용해서 구한 generator도 optimal이라는 보장이 없어진다
아무튼 이 gan의 아이디어를 받아서 다양한 gan들이 나왔다.
'딥러닝 > Computer Vision' 카테고리의 다른 글
semantic segmentation을 할 수 있는 fully convolutional network의 특징 (0) | 2022.04.19 |
---|---|
EfficientNet은 어떻게 만들어졌을까? (0) | 2022.03.14 |
DenseNet과 SENet의 핵심아이디어 살펴보기 (0) | 2022.03.13 |
변형된 모델 학습방법 - semi-supervised training과 self-training (0) | 2022.03.08 |
semantic segmentation task와 Fully convolutional network, deconvolution 간단하게 알아보기 (0) | 2022.02.20 |