Classifier Guidance
Classifier Guidance は、別途 training された classifier の gradient を使って、Diffusion Model の sampling を condition に合う方向へ誘導する方法です。
基本 idea
Class label に条件づけて sample を生成したい場合、classifier を使って、現在の noisy sample が class らしくなる方向を求めます。
この gradient を reverse diffusion の update に加えることで、sample は condition に合う方向へ誘導されます。
Guidance strength
Classifier Guidance では、guidance の強さを調整できます。Guidance を強くすると condition への忠実度は上がりやすくなりますが、sample diversity が下がったり、artifact が増えたりする可能性があります。
欠点
Classifier Guidance には、noisy image に対して class を予測できる classifier が必要です。つまり、通常の clean image classifier ではなく、diffusion の各 noise level に対応した classifier を training する必要があります。
この手間を避ける方法として、Classifier-Free Guidance が広く使われます。
数式で見る classifier guidance
Classifier guidance は、diffusion の score に classifier の勾配を足す方法です。Class に条件づけたいとき、条件付き score は次のように分解できます。
この式の気持ちは、「自然な画像分布へ戻す denoising 方向に加えて、classifier が class らしいと判断する方向へ画像を動かす」というものです。
Guidance scale を入れると、sampling で使う score は次のようになります。
を大きくすると class への忠実度は上がりますが、classifier の弱点や adversarial direction も強く反映されるため、画像品質が落ちる場合があります。