ex) Generator-지폐 위조범, Discriminator-경찰
지폐 위조범이 지폐를 위조하면 경찰은 그 위조지폐가 범죄에 사용되는 것을 막기 위해 그 위조 지폐를 판별합니다.
생성자와 판별자가 서로 대립적으로 학습해가며 성능을 점차 개선

노이즈 z가 생성자 함수 G에 들어가 G(z)라는 가짜 데이터를 만들어내고, 판별자 함수이 D에 이 가짜 데이터를 넣어 D(G(z)) 값이 0과 1 사이의 확률값으로 나옵니다. 그리고 이때 이 확률값은 이 데이터가 진짜일 확률을 나타냅니다.
판별자 D는 이 D(G(z))값을 가짜 0으로 판별하고자 하고, 생성자 G는 이 D(G(z))값을 진짜 1이 나오도록 정교한 가짜 데이터를 만들어 판별자를 속이려는 목적을 가지고 있습니다.
진짜 데이터 x에 대해서 판별자 D가 D(x)가 진짜 1의 값을 가지도록 판별하는 것을 목적으로 합니다.
판별자를 속이는 것에만 목적을 두어서 실제 데이터와 유사한 데이터가 아닌 이상한 데이터가 생성되는 현상
ex) mnist 숫자 데이터로 예시를 들면, 2도 아니고 3도 아닌 2와 3이 합쳐진 형태의 이상한 데이터 생성
사용자가 원하는 데이터가 아닌 랜덤의 데이터가 생성됩니다.
GAN과 CNN을 합친 모델
처음에 입력값으로 넣어주는 각각의 이미지를 생성하는 노이즈 벡터들끼리 벡터 연산이 가능한 모델

Example 1
안경 쓴 남자 z1 - 남자 이미지 z2 + 여자 이미지 z3 = 안경 쓴 여자 이미지 z4
Example 2
오른쪽을 보고 있는 사진 z1과 왼쪽을 바라보는 z2를 통해 중앙을 바라보는 중간 이미지 생성
Conditional GAN
loss 함수를 통해 조건을 부여하여 사용자가 원하는 이미지 생성

ex)

0을 만들고 싶으면 y에 벡터 10000...을
1을 만들고 싶으면 y에 벡터 01000...을
.
.
Lest Squared GAN

일반적으로는 loss를 sigmoid cross-entropy를 사용합니다. 하지만 아는 갈수록 loss가 작아져 적절한 loss 전파가 불가능합니다. loss를 회귀분석에 적용되는 최소자승법인 Least Squared 즉, MSE로 바꾸면 떨어진 것에 비례해서 loss의 양을 잘 조절할 수 있습니다.

Style Transfer

X 도메인에서 Y 도메인으로 바꾸는 과정
X와 X햇의 거리 차이 최소화

발전

Style GAN

Star GAN

Creative Adversarial Networks
일반적으로 GAN은 창의성을 자극할만한 장치나 Loss가 없습니다. 그래서 우리가 가지고 있는 데이터의 분포를 따르는 새로운 데이터를 생성하게 됩니다.
CAN은 판별자가 어떤 스타일의 예술품인지를 헷갈리게 해서 스타일들의 중간에 creative space를 생성합니다. 일반적인 바닐라 GAN에서 판별자가 하는 역할인 가짜 이미지 판별에 추가로 어떤 스타일에 속하는 이미지인지까지 판별하는 역할을 부여하고, 생성자는 그 판별자를 속이는 것을 목적으로 합니다. 이를 위해 어떤 스타일인지 헷갈리게 하기 위해서 CAN에서는 크로스 엔트로피 로스를 사용해서 특정 스타일, 클래스일 확률을 높게 예측할 때 패널티를 부여하게 됩니다.

느낀 점
화질 복구 프로젝트 해보고 싶다. GAN 기반으로 많은 연구를 할 수 있는 주제인 것 같다.
어려운 AI 분야에 대해서 알기 쉽게 설명해주신 것 같아요~~ 잘 읽었습니다!