GAN 에 대하여 ¶
- GAN ( Generative Adversarial Network)
- 경찰과 도둑 예시
- 도둑 : 자신이 만든 지폐에 대해 경찰의 아웃풋을 1로 만들기 G(x)
- 경찰 목표 : 도둑 지폐는 0으로 진짜 지폐는 1로 만들기 D(x)
- X : 진짜 지폐 , Z 는 학습 해야 할 노이즈
- 도둑 : 자신이 만든 지폐에 대해 경찰의 아웃풋을 1로 만들기 G(x)
Mnist data set ¶
- 경찰과 도둑을 수천번 학습 시키면 둘 다 똑같아짐. GAN이라는 데이터 모델셋이 만든 숫자가 예시로 제시됨.
- Pix2pix : 어느정도 표현된 모습을 보여주면 이미지와 비슷하게 만들어준다.
- Pix2pix는 supervised learning 모델이다.
- Pix2pix는 supervised learning 모델이다.
supervised learning 모델의 단점 ¶
- 특정 데이터에 대한 lable 값이 필요하다. 즉 input이미지와 그에 상응하는 output 역시 데이터로서 준비되어야 한다. 이를 pair dataset이라고 부르며 데이터 수집에 어려움이 있다.
- Input, output이 정해져 있어 output에서 input에서 역연산할 수 없어 일방적이다.
cycle GAN ¶
- 사진을 업로드하고, 화풍을 고르면 사진이 화풍처럼 표현된다.
- 화풍만 가져와 사진에 덧붙인다.
- 설명
- 민수와 철수는 해강마트 과일 코너에서 아르바이트를 한다.
- 해강마트 과일코너에서 팔린 모든 오렌지 수익은 민수, 모든 사과는 철수에게 돌아간다.
- 민수와 철수는 서로의 수익을 극대화하기 위해 스프레이를 뿌려 상대방의 과일을 자신의 과일처럼 보이게 한다. 민수는 사과를 주황색으로 칠하고, 철수는 오렌지를 빨간색으로 칠한다.
- 처음에는 실력이 좋지 않아 손님들이 알기 때문에 아무 일도 일어나지 않는다.
- 민수와 철수는 분발하여 손님이 속을 때까지 수없이 과일을 칠한다. 그 중에서는 상대방이 칠한 과일을 다시 칠하는 경우도 있다. 그렇게 몇 달 후 손님은 칠한 과일이 가짜인지 확인할 수 없게 된다. 이 경우 학습이 완료되었다고 한다.
- 민수와 철수는 해강마트 과일 코너에서 아르바이트를 한다.
4개의 학습 모델 ¶
- g_AB : A이미지를 B로 바꾸는 모델
- g_BA : B이미지를 A로 바꾸는 모델
- d_A : A이미지와 g_BA이미지의 차이점을 인식한다. (A를 사러 온 손님)
- d_B : B이미지와 g_AB이미지의 차이점을 인식한다. ( B를 사러 온 손님)
- 이때 g_AB와 g_BA는 서로 순환하며 학습한다.
- 무턱대고 학습하면 안 되고 규칙이 있다.
- 유효성 : 각 생성자에서 만든 이미지가 판별자를 속일 수 있나?
- 재구성 : 두 생성자를 그대로 적용하면 원본 이미지를 얻을 수 있는가? G_BA(g_AB(A)) = A인가?
- 동일성 : 각 생성자를 자신의 이미지에 적용했을 때 그대로인가?
- 유효성 : 각 생성자에서 만든 이미지가 판별자를 속일 수 있나?