Challenge of GAN Loss
GAN(The generative adversarial network)은 이미지 합성을 위해 생성모델을 훈련시키는 딥러닝 방법이다. 매우 효과적이고 사실적인 얼굴이나 장면 등을 생성하는데 인상적인 결과를 얻음으로써 매우 효과적인 것으로 증명되었다.
GAN의 구조는 상대적으로 간단하지만 여전히 어려운 한가지 측면은 GAN 손실함수에 관한 내용이다. GAN은 판별기와 생성기의 두 가지 모델로 구성된다. 판별자는 실제이미지와 생성된 이미지에 대해 직접 학습되며 이미지를 실제 또는 가짜로 분류하는 역할을 한다. 생성기는 직접 훈련되지 않고 대신 판별자 모델을 통해 훈련이 된다. 여기서 주목해야 할 것은 판별자는 생성기에 손실 함수를 제공하도록 학습된다.
두 모델은 마치 2명이서 게임을 하듯 경쟁을 하며, 경쟁하는 동안 두 모델은 동시에 개선이된다. 일반적으로 훈련 데이터 세트에서 구한 손실 함수의 최소화를 통해 모델의 수렴을 찾는다. GAN에서 생성자와 판별자 사이의 균형점을 찾게되면 훈련이 끝나는 것이다.
Standard GAN Loss Functions
GAN은 Ian Goodfellow, et al. “Generative Adversarial Networks.”라는 제목의 2014년 논문에서 나왔고, 두 가지 손실 함수를 도입한다. 첫 번째는 Minimax GAN Loss로 알려져있고 두번째는 Non-Saturating GAN Loss로 알려져 있다.
Discriminator Loss
두 방식 모두 판별자 손실을 동일하다. 판별자는 실제 이미지와 가짜 이미지에 할당된 확률을 최대화 하려고 한다.
We train D to maximize the probability of assigning the correct label to both training examples and samples from G. — Generative Adversarial Networks, 2014.
수학적으로 설명하면 판별자는 실제 이미지의 로그 확률과 가짜 이미지 역수의 확률 로그의 평균을 최대화하려고 한다.
$$ max logD(x)+log(1-D(G(z))) $$
Minimax GAN Loss
Minimax GAN loss는 판별기와 생성기를 minimax로 동시에 최적화시킨다. GAN은 두 모델이 가중치 업데이트와 관련하여 교대로 훈련이 된다. 최소값과 최대값은 생성자 손실의 최소화와 판별자 손실의 최대화를 나타낸다.
- min max(D, G)
위에서 언급했듯이 판별자는 실제 이미지의 로그 확률과 가짜 이미지 역수의 확률 로그 평균을 최대화하려고 한다.
- discriminator: maximize log D(x) + log(1 – D(G(z)))
생성기는 가짜 이미지에 대해 판별자가 예측한 역 활률 로그를 최소화하려고 한다. 이는 생성자가 가짜일 가능성이 낮은 샘플을 생성하도록 유도하는 효과가 있다.
- generator: minimize log(1 – D(G(z)))
Here the generator learns to generate samples that have a low probability of being fake. — Are GANs Created Equal? A Large-Scale Study, 2018.
GAN에 대한 손실의 이러한 구조는 모델을 minimax게임으로 분하는데 유용한 것으로 밝혀졌지만 실제로는 생성기는 이 손실함수가 saturation된다. 즉, 판별자만큼 빨리 학습할 수 없으면 결국 판별자가 모든 것을 장악하고 훈련이 종료되어 생성자는 효과적으로 학습을 할 수 없게 된다.
In practice, [the loss function] may not provide sufficient gradient for G to learn well. Early in learning, when G is poor, D can reject samples with high confidence because they are clearly different from the training data. —
Generative Adversarial Networks, 2014.
Non-Saturating GAN Loss
The Non-Saturating GAN Loss는 saturation 문제를 극복하기 위해 생성기 손실을 수정한 형태이다. 생성된 이미지에 대한 역 확률 로그를 최소화하는 대신 생성자가 생성된 이미지에 대한 판별자 확률 로그를 최대화하는 것으로 변경했다.
- generator: maximize log(D(G(z)))
요약하면 이전 생성자는 이미지가 가짜로 예측될 확률을 최소화하려고 했는데 이미지가 실제로 예측될 확률을 최대화하는 방향으로 관점을 바꾼것이다.
To improve the gradient signal, the authors also propose the non-saturating loss, where the generator instead aims to maximize the probability of generated samples being real. — Are GANs Created Equal? A Large-Scale Study, 2018.
결과적으로 생성자가 가중치를 업데이트할 때 더 좋은 gradient정보를 가지고 안전하게 훈련을 할 수 있다.
This objective function results in the same fixed point of the dynamics of G and D but provides much stronger gradients early in learning. — Generative Adversarial Networks, 2014.
실제로 이것은 판별자와 같은 이진 분류 문제에도 적용된다. 손실을 최대화하는 대신 실제 이미지와 가짜 이미지의 위치를 바꿔 cross entropy가 최소화 되는 것으로 생각할 수 있다.
… one approach is to continue to use cross-entropy minimization for the generator. Instead of flipping the sign on the discriminator’s cost to obtain a cost for the generator, we flip the target used to construct the cross-entropy cost. — NIPS 2016 Tutorial: Generative Adversarial Networks, 2016.
Alternate GAN Loss Functions
손실 함수는 여러 연구가 존재하고 새롭게 제안된 손실함수가 존재한다. 가장 인기 있는 손실함수는 least squares loss와 Wasserstein loss이다.
Least Squares GAN Loss
The least squares loss는 Xudong Mao, et al.에 의해 "Least Squares Generative Adversarial Networks"라는 제목의 2016년 논문에서 시작되었다. 접근방식은 생성된 이미지가 실제 이미지와 매우 다를 때 binary cross entropy loss를 사용하면 sigmoid 특성상 기울기가 매우 작거나 사라져 업데이트가 되지 않을 수 있다.
… this loss function, however, will lead to the problem of vanishing gradients when updating the generator using the fake samples that are on the correct side of the decision boundary, but are still far from the real data. —
Least Squares Generative Adversarial Networks, 2016.
이를 피하기 위해 판별자는 실제 이미지와 가짜 이미지에 대한 예측값과 예상값 간의 차이를 제곱합으로 최소화한다.
- discriminator: minimize (D(x) – 1)^2 + (D(G(z)))^2
생성자는 생성된 이미지가 실제인 것처럼 예측 값과 예상값 사이의 제곱합 차이를 최소화한다.
- generator: minimize (D(G(z)) – 1)^2
이를 L2 loss라고도 하는데 최소 제곱 손실의 이점은 더 큰 오류에 더 많은 페널티를 부여하기에 결과적으로 gradient가 사라지고 모델 업데이트가 이루어지지 않는 문제점이 해결된다.
- l2 loss = sum (y_predicted – y_true)^2
… the least squares loss function is able to move the fake samples toward the decision boundary, because the least squares loss function penalizes samples that lie in a long way on the correct side of the decision boundary. — Least Squares Generative Adversarial Networks, 2016.
Wasserstein GAN Loss
Wasserstein Loss는 Martin Arjovsky, et al “Wasserstein GAN.”이라는 제목의 2017년 논문에서 나왔다.
기존 GAN이 실제 이미지와 생성된 이미지에 대한 실제 확률 분포와 예측된 확률 분포사이의 거리를 소위, KL divergence 또는 JS divergence를 최소화했다는 점에 착안하여 The Wasserstein loss는 다른 거리 측정치를 사용했다. Wasserstein-1 distance라고도하는 Earth-Mover Distance로 문제를 모델링한 것으로 제안한다. Earth-Mover Distance는 한 분포를 다른 분포로 바꾸는 이동하는 것을 비용 측면에서 두 확률 분포 사이의 거리를 계산한다. Wasserstein Loss을 사용하는 GAN은 판별자를 평가하여 생성자 모델보다 더 자주 업데이트 되도록 한다. 확률 예측보다 실제 값으로 이미지를 평가 점수를 매기고 가중치를 [-0.01 ~ 0.01] 사이로 잘라 작게 유지함으로써 업데이트를 한다. 점수는 실제 이미지와 가짜 이미지의 점수 사이의 거리가 최대한 분리가 되도록 계산한다.
손실 함수는 실제 이미지와 가짜 이미지의 평균 예측 점수를 계산하고 평균 점수에 각각 1과 -1을 곱하여 구현할 수 있다. 이렇게 하면 실제 이미지와 가짜 이미지의 점수를 구분하는 효과가 있다. Wasserstein Loss의 이점은 거의 모든 곳에서 유용한 기울기를 제공하여 모델을 계속 훈련할 수 있다는 것이다. 또한 Wasserstein Loss가 낮을수록 생성자의 이미지 품질이 좋아지고 이는 생성자의 손실이 최소화가된다는 것을 의미하게 된다.
Instead, they propose modeling the problem on the Earth-Mover’s distance, also referred to as the Wasserstein-1 distance. The Earth-Mover’s distance calculates the distance between two probability distributions in terms of the cost of turning one distribution (pile of earth) into another.
The GAN using Wasserstein loss involves changing the notion of the discriminator into a critic that is updated more often (e.g. five times more often) than the generator model. The critic scores images with a real value instead of predicting a probability. It also requires that model weights be kept small, e.g. clipped to a hypercube of [-0.01, 0.01].
The score is calculated such that the distance between scores for real and fake images are maximally separate.
The loss function can be implemented by calculating the average predicted score across real and fake images and multiplying the average score by 1 and -1 respectively. This has the desired effect of driving the scores for real and fake images apart.
The benefit of Wasserstein loss is that it provides a useful gradient almost everywhere, allowing for the continued training of the models. It also means that a lower Wasserstein loss correlates with better generator image quality, meaning that we are explicitly seeking a minimization of generator loss.
To our knowledge, this is the first time in GAN literature that such a property is shown, where the loss of the GAN shows properties of convergence. — Wasserstein GAN, 2017.
Effect of Different GAN Loss Functions
GAN 모델 훈련의 안정성을 개선하기 위해 많은 손실 함수가 개발되고 평가되었다. 주어진 모델 구현에 대해 하나의 손실 함수가 다른 손실 함수보다 진정으로 더 나은지 여부에 많은 관심이 있다.
'지식공학 > 기계학습' 카테고리의 다른 글
Histogram of Oriented Gradients (0) | 2022.03.20 |
---|---|
Histogram of Oriented Gradients (1) | 2022.03.04 |
PCA(Principal Component Analysis)의 이해 (0) | 2021.07.26 |
The Gaussian Distribution (0) | 2021.07.20 |
Binary Variables (0) | 2021.07.20 |
댓글