GAN - tips for training

TOLL TERRY·2024년 2월 11일
0

GAN(생성모델)

목록 보기
3/3

오늘은 GAN 학습시의 tips들을 요약해보는 시간입니다.


1. Normalize inputs

  • 이미지의 경우 픽셀의 값이 0 ~ 255의 값이므로, -1과 1사이의 normalize가 좋은 성능을 나타내고 있다. 보통 하이퍼볼릭 탄젠트

2. Modified loss function

  • loss func을 (생성자의loss)=(1판별자의loss)(생성자의 loss) = (1 - 판별자의 loss)이라면, 기울기 소실의 문제가 발생하기에, real과 fake의 class값들을 대칭하게 만들어두고, 생성자의 loss가 min이 되도록 하는 것이 더 효과가 좋음.

3. Spherical Z 사용

  • uniform한 분포는 sperical 하지 않으므로, 잠재백터(데이터)를 sampling하기 보다 가우시안 분포와 같이 spherical하게 된 곳에서 sampling하는 것이 더 효과가 좋음.

4. Batch normalization

  • 실제 이미지는 실제 이미지끼리 batch norm, 가짜 이미지는 가짜 이미지끼리 batch norm를 사용하는 것이 더 성능이 향상될 수 있음.

5. sparse gradients인 reru, maxpool를 피하자

  • sparse한 기울기를 가지게 되는 ReLU에서 대신에 LeakyReLU를 사용.
  • downSampling시에는 maxpool대시엔 Average Pool, conv2D + stride사용.
  • upSamplig시에는 PixelShuffle, convTranspose2D + stride를 사용.

6. use soft and noisy label

  • soft label이란
    real = 1, fake = 0 이런식의 hard한 label이 아닌, random한 숫자로 0.7 ~ 1.2사이의 값으로 real이미지의 label를 가지고, 0.0 ~ 0.3을 fake이미지의 label를 갖게 하는 것이 더 효과가 좋음.

  • noisy label이란
    real과 fake이미지의 label를 바꾸면 학습에 도움이 되기도 한다.

7. RL

  • 강화학습
    강화학습에서의 적용방법을 GAN에서도 적용가능하기에 도움이 된다.

8. Track 실패를 일찍 확인

  • 판별자의 loss가 0으로 빠르게 된다면 모델은 오래 걸리게 되므로 실패될 수 있음.
  • 기울기의 이동을 확인한다.
    높거나, 극단적인 값들을 확인
  • D loss는 점차적으로 낮아지며, 만약 분산과 spiking이 크다면 문제가 있을 수 있다.

9.

profile
행복을 찾아서(크리스 가드너)

0개의 댓글