반응형
Index
Deep Convolutional GAN (DCGAN)
- GAN에 CNN을 적용한 모델로, generator가 vector arithmetic 속성을 가지고 있는게 특징인데, G의 input으로 사용되는 latent vector 안에서 연산을 함으로서 output으로 생성할 이미지를 어느정도 조정할 수 있다는 뜻이다.
- 즉 어느정도 특정 요구사항에 맞춘 generate가 가능한 모델이다.
- G는 fractionally-strided 혹은 transposed convolution 방식을 활용해서 up-sampling을 진행한다.
- D는 Maxpooling 대신 stride를 통해 down-sampling 하고, FC Layer는 사용하지 않는다. (분류문제가 아니기 때문)
- G,D 모두 batch normalization을 사용하고, activation function의 경우 G는 ReLU, D는 LeakuReLU를 사용한다.
- Vector arithmetic 은 다소 heuristic한 방법으로 진행된다. 1) 많은 이미지를 생성한다 2) 이미지를 특징별로 분류한다 3) 각 특징에 해당하는 latent vector 평균을 구한다.
- 예를들어 아래와 같이 사람이미지를 많이 만들어 놓고 안경쓴 남자, 안쓴 여자 이미지로 분류하고 각 분류별 latent vector를 평균낸다.
- 그렇게 계산한 latent vector 를 통해 interpolation도 가능하다. 예를들어 당나귀,얼룩말에 해당하는 v,w 두개의 latent vector를 가지고 (4v+w)/5 하면 당나귀에 매우 가까운 얼룩말이 탄생할 수 있다.
Conditional GAN (cGAN)
- G와 D 모두에게 extra information이 condition(아래 그림에선 'y')으로 주어지는 모델이다.
- Condition(y)은 Class label과 같은 값들로, condition이 주어진 다는것은 일종의 supervised GAN으로 볼수있다
Pix2Pix with cGAN
- image(condition) - to - image(output) translation task. 즉, condition도 이미지도 사용하는 것. 주로 low input → high input으로 변환하고 싶을때 사용한다.
- 바로 위 그림과 혼동을 위해..변수 먼저 설명하면 x=condition , y=real data, z=latent vector
- 아래 목적함수를 보면 L1 Term이 추가되었는데, Generator가 condition(x)을 통해 만든 fake 이미지 G(x|z)가 real image(y) 와 pixel 별로(L1) 얼마나 비슷한지 계산하는 것이다.
- cGAN term만 있으면 이미지가 선명한데, real 이미지(y)와 pixel 위치가 안맞을 수 있다. ↔ 반대로 L1 term만 있으면 pixel 위치는 잘맞는데 output 이미지가 blurry 하다.
반응형
'Study > DL' 카테고리의 다른 글
GAN - 1편 (GAN 구조,학습,어려움) (0) | 2023.07.01 |
---|---|
Variational Auto Encoder (VAE) (0) | 2023.07.01 |
Auto Encoder (0) | 2023.07.01 |
Attention Mechanism (0) | 2023.07.01 |
RNN - 2편 (LSTM) (0) | 2023.07.01 |
댓글