Classifier Guidance는 추가로 train된 classifier 를 활용하여, diffusion model 의 추정된 score와 input 이미지의 log 확률에 대한 gradient 를 결합하여, 생성된 이미지의 품질을 높이는 방법이었다.
하지만 Classifier Guidance는 여러가지 문제가 있다. 첫번째로, Classifer Guidance에서 쓰이는 분류기는 noise 가 섞인 데이터에서 trian 해야하기 떄문에 일반적인 pretrained 된 classifer 를 사용할 수 없다. 두번째로, classifier guidance는 diffusion model 의 socre esmtimae와 classifier gradient 를 합치는데, 이과정은 마치 adversial attrack처럼 보일 수 있다. train하면서 clasifier guidance 가 정말 이미지를 잘 만들기 위해 도와주는 것인지 아니면, classifier 를 속여서 점수를 잘 받는 것인지 알수가 없다.
위와 같은 이유로, 이 논문에서는 classifier 가 없는 classifier free guidance diffusion model을 제안한다. conditional diffusion model과 unconditional diffusion model에서 나오는 score estimate를 결합하여 sampling 을 진행한다.
trncated sampling 은 noise의 입력 범위를 줄여서 sampling 시 다양성을 감소시키는 방법이며 sample의 품질은 높아지지만, diversity는 줄어든다. low temperature sampling은 noise의 분산을 줄여서 sample간의 변화를 줄여 더 높은 품질의 sample을 얻는 방법이다. 이 두 방법 모두 noise 입력을 제한하여, 더 낮은 variance로 더 높은 품질을 sampling 한다.
GAN 이나 Flow-based모델에서는 noise의 범위나 분산을 줄여 sampling 품질을 높이는데 사용되지만, Diffusion Model에서는 noise 를 단순히 줄히는 방법은 흐릿하고 낮은 품질의 sample 을 생성하게 되어서 적절하지 않다.
diffusion model 에서 기본적으로 사용하는 score 함수를 수정하여, 조건 c에 대하여 데이터 의 log-likelihood의 gradient 를 나타낸다. 모델이 주어진 condition에 맞게 데이터를 sampling 해야할 gradient 를 알려준다.
classifier guidance 를 추가해준다. 즉 분류기 모델 의 log likehood gradient 를 추가로 반영하는 방식으로 score 를 수정한다.
는 데이터가 주어진 조건 c에 얼마나 잘 맞는지를 조건부확률의 log likehood 를 데이터에 대해 미분한것이다.
는 데이터가 주어졌을때 분류기 가 조건 c로 분류 할 수 있도록 데이터를 조정한다.
수정된 score 는 의 gradient 를 계산하는 것과 비슷하다. 여기서 w는 classifier gudiance 의 강도를 조절하는 파라미터이다.
또한 위와 같이 표현할 수 있다. 는 주어진 조건 c에 맞게 얼마나 잘 맞는지 평가하고 는 classifier가 그 이미지를 보고 해당 조건 c라고 얼마나 확신하는 지 평가한다. 이 두확률을 결합하여, w값을 통해 classifer 의 확신을 얼마나 반영할지 조절한다.
여기서 w를 증가시키면 Inception Score( 이미지 품즐을 측정하는 지표) 가 올라간다. 왜냐하면 Classifer 가 이미지를 더 잘 분류 할수 있도록 이미지의 quality 가 올라가기 때문이다. 하지만 w가 너무 커지면 diversity 가 줄어든다.
위 그림처럼 세가지 클래스가 존재할때, 각 클래스는 Gaussian 분포로 퍼져 있다. 하지만 Classifer Guidance 가 적용되면, 분포의 모양이 점점 Non Gaussian 모양으로 변하게 된다. 강한 guaidance 가 적용될수록, 각 class 가 더 멀어지게 되고 분포가 복잡한 모양으로 변하게 된다.
Classifer guidance를 Uncodnditional Model에 적용할 수도 있고, Conditional Model 에 적용할 수 있다. Conditional Model 에 w guidance 를 적용할 수 있으며, Unconditional Model에는 w보다 더 큰 w+1 guidance 를 적용하여 같은 효과를 낼 수 있따다. 하지만 실험결과 Conditional model에 Guidance 를 주었을때 더 좋은 성능을 얻었다.
Classifier Guidance 를 사용하면 IS와 FID 사이의 균형을 잘 조절할 수 있다. 하지만 classifier 에서나온 graident 에 의존하기 때문에 문제가 생길 수 있다. 왜 문제가 생기는지 위에 introduction 에서 설명해 두었다. 본 논문에서는 Classifier 없이 비슷한 효과를 낼 수 있는 Classifier free guidance 를 제안한다.
기존의 Classifer Guidance 모델에서는 이미지를 더 잘 분류하기 위해서 Classifier 모델을 따로 훈류했지만. 본 논문에서는 unconditional diffusion model 과 conditional diffusion model 을 훈련한다.
unconditional diffusion model은 로 표현할 수 있고, score estimator 은 이다. conditional diffusion model은 로 표현할 수 있고, score estimator 은 이다.
본 논문에서는 하나의 신경망을 사용해서 두 가지의 모델을 동시에 훈련하는 방법을 제안한다. unconditonal model에서는 c 대신에 null token 을 입력한다. conditional model과 unconditional model 을 random 하게 훈련하여 일부는 unconditional 로 일부는 conditional 로 훈련한다.
위 식처럼 이미지 sampling 시에 conditional model 과 unconditional model의 score 추정값을 결합한 선형결합으로 사용한다.
본 논문에서 제안하는 방법은 classifier gradient 가 사용되지 않아서, adversarial attack으로 해석하지 않을 수 있다. 또한 non-conservative vector filed 를 사용하므로, 기존의 classifier guidance 처럼 특정 확률을 최대화 하는 방식이 아니다.
implicit classifier 를 사용하여 classifier 없이 이미지를 더 잘 분류할 수 있도록 한다. implicit classifier 는 conditional probability 와 unconditional probabiltly 를 기반으로 베이지안 정리를 활용하여 주어진 데이터가 특정 class 에 속할 확률을 나타낸다.
implicit classifier 에서의 gradient는 다음과 같이 표현될 수 있다.
으로 표현할 수 있다.
implicit classifier 를 사용한 guidance는 정확한 점수를 사용하여 만들어졌고, classifier 가 없는 guidance는 신경망에서 나온 추정값이다.
실험결과, implicit classifier 를 사용한것 보다 신경망을 통해 추정한 값이 더 좋은 성능을 발휘했다.
실험의 목적은 classifeier free guidance 가 classifier guidance와 유사한 FID/IS tradeoff 를 달성할 수 있음을 증명한다.
이 실험의 목적이 SOTA를 찍는 것이 아니라, classifier free guidance가 classifier guidance와 유사하는지 확인하는 것이기 때문에, classifier frree guidance 모델은 classifier guidance 모델과 동일한 아키텍처와 hyperparmeter를 사용했다. 그렇기 때문에, classifier free guidnace 에서는 최적의 hyperparmaeter가 아닐 수도 있다.
conditional diffusion model과 unconditional diffusion model을 하나의 아키텍처로 통합하여, 더 적은 계산량으로 모델을 학습할 수 있다. 결과적으로, 더 적은 모델 용량을 사용하지만, 높은 샘플 품질을 생성해낸다.
classifier free guidance 가 IS 와 FID 사이의 균형을 맞출 수 있다. 실험결과 w=0.1 또는 w=0.3 과 같은 작은 값에서 좋은 FID 결과를 얻었으며 w>=4와 같은 높은 gudiance 에서 가장 좋은 IS 결과를 얻었다. 즉, w가 증가할수록 FID는 감소하고 IS 는 증가하는 상관관계를 보였다.
unconditional generation 과 conditional generation 이 동시에 이루어지는 train 에서 unconditional generation 을 위한 확습 확률 파라미터 puncond 의 값에 대한 실허이다.
puncound=0.5 는 puncond=0.1 이나 0.2 보다 sample 품질이 낮은 성능을 보였다. puncond=0.1 과 0.2 는 거의 비슷한 성능을 보였다.
이전에 발표 되었떤 classifieur guidance sampling 을 위해 작은 용량의 classifier 도 충분하다고 언급되었는데, 이러한 부분이 classifer free gudied model 에서의 현상과 유사하다는 것을 확인할 수 잇다. 즉 unconditional generation 에 큰 용량이 필요하지 않다.