March 22, 2023
논문에서는 적대적 과정(adversarial process)를 통해 생성 모델을 추정하는 새로운 방법을 제안합니다. 적대적 과정에서는 다음과 같은 두 종류의 모델을 학습합니다.
생성 모델 G와 판별 모델 D는 함께 학습되며, 모델 G는 자신이 생성한 데이터를 모델 D가 실제 데이터로 인식하도록 하는 방향으로 학습하며, 모델 D는 모델 G가 생성한 데이터와 실제 데이터를 잘 구분하도록 하는 방향으로 학습합니다. 만약 생성 모델 G가 충분히 학습하여 모델 D를 충분히 속이도록 데이터를 생성할 수 있다면, 판별 모델 D가 추정한 확률 분포는 1/2에 수렴하게 됩니다.
이러한 방법은 생성 모델 G가 파라미터만을 사용하여 직접 샘플링을 수행하기 때문에 마르코프 체인(markov chain)이 필요 없으며, 직접 확률 분포를 계산하지 않기 때문에 별도의 근사 추정 네트워크(approximate inference networks) 또한 필요하지 않습니다.
이미지와 음성 그리고 자연어 등과 같은 분야에서 딥러닝 모델은 다양하고 계층적인 모델을 발견해왔습니다. 이러한 모델은 고차원의 입력 데이터로부터 클래스 라벨을 판별하는 모델을 통해 발전해왔으며, 역전파(backpropagation) 알고리즘과 드롭아웃(dropout) 알고리즘을 기반으로 여러 선형 레이어(linear units)를 통해 기울기를 계산하여 학습되었습니다.
그러나 생성 모델의 경우 데이터 분포의 샘플링을 수행할 수는 있으나, 이를 이용해 직접적으로 확률 분포를 계산하기 어렵기 때문에 최대 가능도 추정(maximum likelihood estimation) 알고리즘을 사용하여 학습하는데 어려움이 있습니다. 논문에서는 이러한 어려움을 극복하기 위해 새로운 생성 모델 기법을 제안합니다.
논문에서 제안하는 적대적 네트워크(adversarial nets)에서 생성 모델은 적대자(판별 모델)과 맞서고, 판별 모델은 생성 모델로부터 생성된 분포인지 실제 데이터 분포인지 판별합니다. 이러한 방법을 통해 근사 추론이나 마르코브 체인 없이 오직 순전파(forward-propagation)를 사용하여 생성 모델로부터 샘플을 생성합니다.
또한 이 프레임워크에서는 다양한 모델과 최적화 알고리즘을 적용할 수 있습니다. 논문에서는 노이즈를 다층 퍼셉트론(perceptron)에 전달하는 방식으로 생성 모델로부터 샘플을 생성하는 방법을 보입니다.
데이터 를 통해 생성자의 분포 를 학습하기 위해 사용되는 입력 노이즈 변수를 로 정의합니다. 그리고 샘플 로부터 생성자(generator)가 생성한 데이터 공간을 로 표현합니다. 생성자 G는 파라미터 를 포함하는 다층 퍼셉트론으로 구성된 미분 가능 함수로 파라미터 갱신을 통해 샘플 로부터 생성된 분포 가 실제 데이터 분포를 따라가도록 학습합니다.
또한 생성자로부터 생성된 샘플 분포와 실제 데이터 분포를 판별하기 위해 사용되는 판별자(discriminator)를 로 표현합니다. 판별자의 출력은 스칼라 값을 가집니다. 는 입력 값 가 생성자가 아닌 실제 데이터인지에 대한 확률 값을 나타냅니다.
모델 학습 과정은 모델 D가 실제 학습 샘플과 생성자로부터 생성된 샘플이 정확한 클래스 값을 갖도록 하는 확률 값을 최대화하도록 학습하며, 모델 G는 수식 값이 최소화되도록 학습합니다. 따라서 모델 D와 G는 다음과 같은 수식을 만족하도록 학습됩니다. 즉, 아래와 같은 손실 함수를 갖습니다.
논문에서는 adversarial nets의 이론적인 분석을 통해, 모델 G와 D가 충분한 파라마티 크기를 갖는다면 학습을 통해 생성된 샘플 분포가 데이터 분포를 따라갈 수 있음을 보였습니다. 먼저 판별 모델 D의 경우 완전하게 학습하지 말아야 합니다. 학습 데이터가 한정되어 있으므로 D 모델이 완전히 학습하는 경우 오버피팅(overfitting)의 경향을 보일 수 있습니다. 대신 k번의 스텝만큼 모델 D를 학습시키고 G 모델을 한 스텝 학습시키는 방법을 사용합니다. 이로 인해 판별 모델 D는 최적해에 수렴하도록 유지할 수 있고, 생성 모델 G는 천천히 학습할 수 있습니다. 이 과정을 알고리즘으로 나타내면 아래 그림과 같습니다.
학습 초기 단계에서는 생성 모델 G가 충분히 학습하지 못한 상태이므로, 모델 D가 주어진 학습 데이터와 모델 G가 생성한 생성한 데이터를 확실하게 판별할 가능성이 높습니다. 이 경우에는 모델 G 학습 시 더 강한 기울기(gradient) 값을 주기 위해 모델 G 학습 시 가 최소화하도록 학습하는 것보다 가 최대화하도록 학습하는 것이 좋습니다. 판별 모델 D가 생성 모델 G가 생성한 데이터를 잘 판별할 수 있는 상태이므로 값은 0에 가까운 값을 갖는데, 그래프가 0에 가까운 범위에서 그래프보다 더 높은 기울기 값을 갖기 때문입니다.
를 만족하는 전역 최적해를 구하기 위해 먼저 주어진 생성 모델 G에 대한 최적화 된 판별 모델 D에 대해 고려합니다. 생성 모델 G가 고정되었다고 할 때, 최적화 된 판별 모델 D는 다음과 같음을 증명합니다.
먼저, 주어진 생성 모델 G에 대해 판별 모델 D에 대한 학습 손실 함수는 아래 식과 같은 를 최대화하는 것과 같습니다.
이 때, (0, 0)을 제외한 실수를 만족하는 (a, b) 쌍에 대해, 함수 는 [0,1] 범위에서 일 때 최대 값을 만족하므로, 위 를 만족할 때 가 최댓값을 가지므로 최적화 된 판별 모델 D가 위 수식과 같음을 증명할 수 있습니다. 즉, 판별 모델 D는 와 의 확률 밀도 함수만 사용해서 최적의 판별 모델 D을 얻을 수 있습니다. 따라서 판별 모델 D의 손실 함수는 조건부 확률 를 추정하는 로그-가능도(log-likelihood)를 최대화하는 것으로 해석할 수 있습니다. 조건부 확률에서 는 가 의 데이터인 경우 이며, 인 경우 입니다. 따라서 이를 이용하여 생성 모델 G에 대한 손실 함수 를 아래와 같이 정리할 수 있습니다.
여기서는 생성 함수 G에 대한 손실 함수 에 대한 전역 최솟값은 에서 나타나며, 이 때 전역 최솟값은 가 됨을 증명합니다. 일 때 식 (2)에 의해 이며, 따라서 위의 식에 따라 전역 최솟값이 가 됨을 알 수 있습니다. 추가로 전역 최솟값이 에서만 만족하는지 확인하기 위해 에서 를 빼 아래와 같은 식을 얻습니다.
은 쿨백-라이블러 발산(Kullback-Leibler divergence, KLD)를 의미하며, 이 식을 젠슨-섀넌 발산(Jensen-Shannon divergence, JSD)로 다시 정리하면 아래와 같습니다.
이 때, 두 분포의 JSD는 항상 음수가 아니며, 두 분포가 동일할 때 0 값을 갖기 때문에 는 두 분포가 같을 때인 일 때 최솟값 를 갖음을 확인할 수 있습니다.
생성 모델 G와 판별 모델 D가 충분한 모델 크기(capacity)를 가지며, 학습 알고리즘의 스텝마다 판별 모델 D가 최적화된다면, 생성 모델 G와 가 아래 손실 함수을 따라서 최적화되며, 는 에 수렴함을 증명합니다.
먼저 를 에 대한 함수 로 치환하여 생각합니다. 는 에 대해 볼록(convex) 함수입니다. 이 때, 부분 도함수(sub-derivative)는 볼록 함수(convex function)에 대해 최댓값을 가지는 지점에서 함수의 도함수(derivative)를 포함하는 성질이 있습니다. 즉 ( 함수들 중 에 대한 최댓값)이고, 는 모든 에 대하여 에서 볼록 함수라고 할 때, (가 최댓값을 갖게하는 값)를 만족하는 에 대하여 를 만족합니다. 이를 통해 생성 모델 G가 주어진 최적의 판별 모델 D에서 에 대하여 경사 하강법을 사용하여 최적화를 할 수 있음을 증명합니다. 따라서 는 에 대하여 볼록 함수이며, 고유한 전역 최솟값을 갖음을 이미 증명했으므로, 의 충분한 갱신(경사하강법을 통한)으로 에 수렴할 수 있습니다.
실제로는, 모델은 함수 를 통해 제한된 의 분포만을 표현하고 자체를 최적화하는 것보다는 를 최적화합니다. 또, 생성 모델 G를 다층 퍼셉트론을 사용하여 정의하면 매개 변수 공간에 여러 임계점이 존재합니다. 그러나 이론적으로 보장하기 어려움에도 다층 퍼셉트론이 우수한 성능을 보이기 때문에 생성 모델 G를 정의하는데 사용합니다.
논문에서는 MNIST, TFD(Toronto Face Database), CIFAR-10 데이터셋 등을 사용한 실험을 통해 생성 모델의 결과를 보였습니다.
생성 모델 G은 활성화 함수로 변형한 ReLU(a mixture of rectifier linear activations)와 sigmoid를 사용하였으며, 판별 모델 D는 maxout를 사용했습니다. 판별 모델 학습에 dropout 방법을 추가로 적용했습니다. 추가로 논문에서는 생성 모델의 중간 레이어에 dropout과 다른 노이즈 기법을 사용할 수 있다고 설명했으나, 실험에서는 생성 모델 G의 가장 최하단 레이어의 입력으로만 노이즈를 사용했다고 설명했습니다.
논문에서는 생성 모델 G를 통해 생성된 샘플에 가우시안 파첸 윈도우(Gaussian Parzen window)를 사용하여 테스트 데이터의 확률 를 추정하고, 해당 분포를 사용하여 로그 우도(log-likelihood) 값을 계산했습니다. 가우시안 파첸 윈도우를 사용한 로그 우도 추정 방법은 상대적으로 분산이 높고 차원이 높은 공간에서는 별로 성능이 높지 않다고 알려져 있으나, 논문을 발표한 당시 가장 좋은 방법이므로 선택했다고 설명합니다.
테스트 데이터에 대한 생성된 데이터 의 확률을 추정하기 위해 가우시안 파첸 윈도우(Gaussian Parzen window)와 분포 간의 로그-가능도(log-likelihood)를 사용했습니다. 가우시안 파첸 윈도우에서 사용되는 파라미터는 검증 데이터셋에 대한 교차 검증을 통해 얻은 값을 사용했습니다.
위 표는 MNIST와 TFD 데이터셋에 대한 모델 별 파첸 윈도우 기반의 로그 우도 값을 기록해놓은 결과입니다. MNIST 데이터셋은 각 테스트 데이터셋의 샘플 별로 로그 우도와 표준 편차들의 평균 값을 사용했으며, TFD 데이터셋은 데이터 폴드 별 로그 우도와 표준 편차들의 평균 값을 사용했습니다. 이 때 각 폴드 별로 다른 값을 사용했습니다. MNIST 데이터셋의 경우 기존 모델보다 높은 로그 우도 값을 보였습니다.
위 그림은 앞에서 설명한 여러 데이터셋을 통해 생성된 샘플 결과입니다. (a)는 MNIST 데이터셋에 대한 생성 결과, (b)는 TFD 데이터셋에 대한 생성 결과이며, (c)는 생성 모델과 판별 모델에 fully connected layer를 사용한 CIFAR-10 데이터셋 생성 결과, (d)는 생성 모델에 deconvolutional layer, 판별 모델에 convolutional layer를 사용한 CIFAN-10 데이터셋의 생성 결과입니다.
가장 오른쪽 열은 실제 학습 데이터 샘플과 가장 가깝게 생성된 샘플로 모델이 학습 데이터를 기억하지 않았음을 보입니다. 또 다른 생성 모델들이 히든 레이어의 샘플들의 조건부 평균을 사용하는 것과 달리 모델 분포로부터 실제 샘플을 생성함을 보입니다. 또한, 이 샘플들은 마르코프 체인에 의존하지 않기 때문에 상관 관계를 가지고 있지 않습니다.
논문에서 새롭게 제시한 프레임워크의 장단점을 이미 존재하는 프레임워크들과 비교하여 설명합니다.
먼저 논문에서 제시한 프레임워크의 단점은 에 대한 명시적으로 표현하기 어려우며, 모델 훈련 중에 생성 모델 G와 판별 모델 D가 서로 잘 동기화되도록 학습해야 합니다. 특히 판별 모델의 파라미터를 업데이트하지 않고 생성 모델을 너무 많이 학습하는 것을 피해야 합니다. 그렇지 않으면, 생성 모델이 의 많은 값들을 의 동일한 값으로 축소시켜 를 모델링하기에 충분한 다양성을 갖지 못하는 헬베티카 시나리오(Helvetica scenario)가 발생할 가능성이 있습니다.
장점으로는 마르코프 체인(Markov chain)이 전혀 필요하지 않으며, 기울기 값을 얻는데 오직 역전파(backprop)만이 필요합니다. 또 학습하는 중에 추론 과정이 필요하지 않으며, 다양한 기능을 모델에 추가할 수 있습니다. 아래 표는 다른 생성 모델링 기법과 논문에서 제시한 생성 모델링 기법을 비교한 표입니다.
위에서 언급한 장점은 주로 계산적이었으나, 이외에도 생성 모델은 데이터 샘플로부터 직접 업데이트되지 않고 판별 모델을 통해 얻은 기울기로만 업데이트되므로 이를 통해 통계적인 이점을 얻을 수 있습니다. 이는 입력 데이터의 요소들이 직접적으로 생성 모델의 파라미터로 복사되지 않는 것을 의미합니다. 또 다른 이점으로는, 마르코프 체인을 기반으로 하는 모델들은 각 체인들이 섞일 수 있도록 생성된 분포가 흐릿해야 하는 반면에, 적대적 생성 모델은 제대로 생성되지 않은 분포일지라도 샤프하게 표현되는 장점이 있습니다.
논문에서 제시한 프레임워크는 다음과 같이 많고 간단하게 확장이 가능합니다.