Classifier-Free Guidance
Classifier-Free Guidance は、別途 classifier を用意せずに、conditional model と unconditional model の prediction を組み合わせて generation を誘導する方法です。
基本 idea
Training 時には、condition を与える場合と、condition を落とす場合を混ぜて model を training します。これによって、同じ model が次の二つを予測できるようになります。
- Conditional prediction:
- Unconditional prediction:
Sampling 時には、二つの prediction を組み合わせます。
ここで、 は guidance scale です。
利点
Classifier-Free Guidance は、追加の classifier を training する必要がありません。そのため、text-to-image model などで広く使われています。
Guidance scale を大きくすると condition への忠実度は上がりやすくなりますが、diversity が下がることがあります。
数式で見る guidance の意味
Classifier-Free Guidance は、conditional score と unconditional score の差を使って、condition に沿う方向を強めていると解釈できます。Noise prediction では次の形で書かれます。
ここで、 は guidance scale です。 では通常の conditional prediction に近く、 では conditional と unconditional の差分をさらに強調します。
この式の気持ちは、「condition を与えたときに denoising 方向がどれだけ変わるか」を取り出し、その差分を強く足すことで prompt への忠実度を上げる、というものです。ただし、 を大きくしすぎると、model が学習時に見た自然な denoising 分布から外れやすくなり、過飽和、破綻、多様性低下が起こります。