[논문 리뷰] Gernerative Adversarial Nets
Feb 08, 2025
![[논문 리뷰] Gernerative Adversarial Nets](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255B%25EB%2585%25BC%25EB%25AC%25B8%2520%25EB%25A6%25AC%25EB%25B7%25B0%255D%2520Gernerative%2520Adversarial%2520Nets%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3D%25EC%258B%25AC%25EB%25B0%2594&w=3840&q=75)
- 2개의 model을 동시에 훈련시키는 adversarial process를 통한 generative model 제시
- generative model G : D가 최대한 실수하도록 학습됨
- discriminative model D : G보다 나은 sample을 만들도록 학습됨
1. Introduction
- Deep generative model은 maximum likelihood estimation에서 발생하는 많은 다루기 어려운 확률 계산을 근사하는 것이 어려움
- generative model은 보통 확률적 방법을 기반으로 데이터를 생성하는데, 이를 최적화하려면 복잡한 확률 계산이 필요
- 근데 이러한 복잡한 확률 계산이 많은 경우 계산적으로 다루기 어려운 문제로 남아 있음
- 생성적 맥락에서 piecewise liniear uniis의 이점을 활용하는 것이 어려움
- generative model 외의의 CNN에서는 ReLU와 같은 부분 선형 함수가 널리 사용됨
- 하지만, generative model는 이러한 구조를 적용하는 것이 쉽지 않음
- 위의 두 가지 어려움을 해결할 수 있는 새로운 generative model을 제안
- adversarial nets framawork
- generative model이 discriminative model(sample이 model distribuiton과 data distribution 중에 어디에서 비롯되었는지 판별)과 대척점에 있음
- data distri. : 실제 dataset의 분포
- sample distr. : 생성한 data의 분포
- generative model은 위조화폐를 제조 // discriminative model은 위조화폐를 탐지하려는 경찰
- 본 연구에서는 generative model도 multilayer perceptron을 통해 random noise를 통과시켜 sample을 마늘고, discriminative model도 multilayer perceptron인 경우를 다룸 → adversarial nets
- 이 경우에서는 두 모델 모두 역전파와 드롭아웃을 사용할 수 있음
2. Related work
- undirected graphical model with latenet variable
- ex. RBMs (restricted Boltzmann machines), DBMs
- latenet variable와 observed variable을 함께 모델링하는 확률 모델 → latenet variable와 data 간의 의존성을 학습하면서 확률 분포를 근사하는 구조
- product of unnormalized potential functions들이 모든 상태의 RV에서 global summation/integration에 의해 정규화됨
- 하지만, 이러한 partition function과 기울기는 거의 대부분 계산이 어려움
- DBNs (Deep belief network)
- undirected layer 한개와 여러 개의 directed layer로 구성
- layer별로 학습이 이러나며 빠르게 근사가 되지만, undirected & directed model 둘 다와 관련된 계산적인 어려움이 발생
- alternative criteria
- 기존의 생성 모델의 학습에서는 log-likelihood를 근사하거나 그 경계를 찾는 방식이 많이 사용됨 → 하지만, 이는 항상 효율적이거나 가능하지 않음 → alternative criteria 제안됨
- Score matching, NCE (Noise-contrastive estimation)
- log-likelihood를 직접 최적화하지 않고, 대체적인 방법으로 생성모델 학습
- 학습된 확률 밀도가 normalization constant(정규화 상수)를 포함한 형태로 명확하게 정의될 수 있어야 함
- DBM, DBN처럼 여러 개의 latent variable을 포함하는 생성 모델에서는, unnormalized 확률 밀도를 명확하게 정의하는 것이 어려움
- DAE (Denosing Autoencoder, 노이즈 제거 오토인코더), CAE (Contractive Autoencoder, 수축 오토인코더) → RBM에 score matching을 적용한 것과 유사한 학습 규칙을 가짐
- NCE
- discriminative criteria를 사용하여 생성 모델 학습
- NCE는 별도의 discriminative model을 따로 학습하지 않고, 생성 모델 자체가 데이터를 구별하도록 학습 → 실제 data vs. fized noise distribution 에서 생성된 sample 구별
- fixed noise distribution → 학습 속도가 느려짐
- GSN (generative stochastice network)
- 확률 분포를 명시적으로 정의하지 않고, 주어진 분포에서 샘플을 생성하도록 학습
- 역전파 사용 가능
- Generalized denoising Autoencoder의 확장 버전
- Markov chain 필요
- GAN과 차이점
- GAN은 Markov chain 필요 X
- GAN은 feedback loop 필요 X
- piecewise linear units(ex ReLU)와 더 잘 결합
3. Adversarial nets
- : data 에 대한 generator’s distr.
- : input noise variable
- : data space와 mapping해주는 함수 (미분 가능, second multilayer의 input이 될 것)
- : second multilayer perceptron
- output : single scalar
- data 가 (generator’s distr.)보다 (data distr.)에서 왔을 확률 → real data일 확률을 출력
- training example과 generator에서 온 sample 둘 다 correct label에 할당될 확률을 최대화하도록 학습시킴
- 동시에, 는 최소화되도록 학습

- discriminator
- real data → 는 높은 확률을 출력해야 함
- fake(generator) data → 는 낮은 확률을 출력해야 함
- : GAN의 objective function → 의 값이 커야 함
- : real data x가 들어옴 → 값이 1에 가까워질수록 값이 커짐 → 판별자는 real data에 대해 높은 확률인 1을 출력고자 함
- : fake data 가 들어옴 → 값이 0에 가까워질수록 값이 커짐 → 판별자는 fake data에 대해 0을 출력하고자 함
- generator
- input noise 를 입력받음 → fake data 생성
- 판별자를 속여서 fake data를 real data처럼 보이게 함
- 판별자는 fake data에 대해 를 작게 만들려고 하지만, 생성자는 반대로 를 크게 만드려고 함
- 따라서, 생성자는을 최소화하는 방향으로 학습됨
- 훈련의 내부 루프에서 완료까지 D를 최적화하는 것은 계산적으로 금지되며, 유한한 데이터셋에서는 과적합이 발생할 수 있음. → D를 최적화하는 단계와 G를 최적화하는 한 단계를 번갈아 가며 수행 → 그 결과 D는 최적해 근처에서 유지되므로 D는 최적 해에 가깝게 유지

- 전체 훈련 반복문 : 특정 횟수만큼 training 반복
- Discriminator 업데이트
- 번 반복
- noise distr. 에서 개의 sample { } 추출
- 실제 데이터 분호 에서 개의 sample { } 추출
- 판별자 를 Gradient Ascent를 사용하여 업데이트
- 판별자가 실제 데이터 x를 진짜라고 판단하고, 생성자가 만든 가짜 샘플 를 가짜라고 판별하도록 학습하는 과정

- Generator 업데이트
- discriminator 업데이트를 번 반복 후, generator 업데이트를 시작
- generator 업데이트는 반복 없이 딱 1번만 실행
- noise distr. 에서 다시 개의 샘플을 샘플링
- 생성자 를 Gradient Descent를 사용하여 업데이트
- 생성자가 판별자를 속여 를 진짜라고 판단하게 만드는 방향으로 학습

4. Theoretical Results
4.1 Global Optimality of

- 를 최적화하려면, 위에서 소개한 objective funcion 를 maximize해야 함
- 라고 하면, 의 최댓값은 위 사진에 있는 가 된다.
- 따라서, Proposition 1 증명 완료

- 그렇다면, 생성자 가 주어졌을 때 최적 판별자 를 사용한 objective function의 최댓값을 구해보자.
- 우선, 를 사용하여 objective fuction을 다시 쓰면 아래 사진과 같다.
- 4번째 줄은 자리에 위의 Proposition 1에 나와있는 식을 대입한 것
- 식 정리 결과, 위의 식은 real data와 fake data에서의 log-ratio를 나타내는 형태가 됨
- 는 생성자의 "오차"를 측정하는 함수로, 가 작을수록 가 실제 데이터 분포에 가까워졌음을 의미


- 그렇다면, 이제 의 최소화 조건을 알아보자.


- 결론적으로, 가 최소가 되는 조건은 가 실제 데이터 분포 를 완벽히 모방했을 때로, GAN의 최적화 목표와 일치
4.2 Convergence of Algorithm 1

- 조건
- 와 가 충분한 학습 용량을 가짐
- 학습 과정에서 는 고정된 에 대해 최적화됨 (즉, 는 라는 최적의 판별 함수를 학습)
- 는 를 업데이트하여 위의 의 식을 개선하고자 함
- 증명

- 한계
- 와 가 유한한 신경망 구조로 표현됨 → 학습할 수 있는 분포가 제한됨
- 는 를 직접적으로 업데이터하지 않고, 매개변수 를 통해 학습 →
Share article