GAN Generative 생성모델
생성 모델 GAN Generative Adversarial Network
적대적으로 성능 경쟁을 하면서 생성한다.
Generator는 가짜를 만들어내고, Discriminator는 이것이 실제인지 가짜인지 판독한다.
이런 과정을 거치면서 더 정교한 가짜를 만들어내고, 더 정확한 감정을 해낸다.
위조의 능력이 판독의 역할을 넘어서면 가짜인지 진짜인지 구분할 수 없는 상태가 된다.
이전까지의 영상 생성은 확률모델에 기인해왔다.
PDF probability density function
사건의 발생 확률을 나타내었다.
이 확률 분포를 가지고 샘플을 나타내보면 0 주변에 발생할 확률이 높고 양쪽으로 퍼질 수록 나타날 확률이 줄어든다.
만약 그림과 같은 다차원의 영상에서 PDF를 나타낸다면 (4, 1) 벡터보다 (3, 2)에서 사건이 발생할 확률이 높다.
영상이 2차원 벡터일 때 얼굴일 확률을 PDF로 나타낸다고 하면
(3, 2)에서 얼굴일 확률은 0.9
(4, 1)에서 얼굴일 확률은 0.01이다.
실제 영상은 n차원 벡터로부터 n개의 축을 가진 PDF로 생성된 샘플이다.
PDF 값을 알고 있다면 영상을 생성할 수 있게 된다.
하지만 PDF 값을 구하는 것이 불가능한 상황이라면 영상을 생성해낼 수 없다.
GAN에서의 분포 매핑함수
가우시안 분포로부터 샘플을 뽑아서 GAN 모델을 적용하면 얼굴이 생성된다.
Discriminator
D의 값을 보고 Generator는 피드백을 받아 계속 업데이트 된다.
인공신경망으로 구성된 Discriminator의 초기 모습이다.
컨볼루션을 통해 점점 차원을 축소시켜서 마지막에 1, 0 둘중에 하나를 출력하게 된다.
Generator의 초기 모습이다.
Z에서 100 사이즈를 갖는 노이즈값을 선택해서 점점 차원을 늘려간다.
결국 G(Z)인 영상이 출력된다.
비용함수 Cost Function은 다음과 같다.
진짜 값이 들어가면 큰값, 가짜 값이 들어가면 작은 값이 나오게 만든 V(D)라는 함수를 최대화 한다.
bedroom의 이미지를 생성해낸 모습이다.
사실 존재하지 않지만 가짜로 만들어냈다.
Walking in the latent space
여기서 latent space 는 Z를 의미한다.
숨어있는 공간인 latent space에서 거리가 멀어질수록 5에서 멀어져서 9로 자연스럽게 변화가 되는 모습을 보여주고 있다.
생성모델의 Z에서 5라는 사진만 보고 만들어낼 수 있는 것이 아니라, 하나의 샘플만 보고 만드는 것이 아니라 전체적인 그림을 보고 만들어낸다는 것을 알 수 있다.
Latent Space에서의 선형결합을 보여준다.
노이즈 공간에서 화살표 방향의 다양한 벡터가 있을 때 선형적으로 연산해서 새로운 피쳐를 가진 그림을 만들어낼 수 있다.
Smailing Woman이 z1벡터
Neutral Woman이 z2벡터
Neutral Man이 z4벡터일때
G(Z1) - G(Z2) + G(Z4) = G(Z3 +Z4) = Smailing Man
Z공간에서는 선형 연산으로 의미를 갖는 이미지를 추출할 수 있다.