📖

FIDに替わる評価指標?

2025/02/19に公開

Rethinking FID: Towards a Better Evaluation Metric for Image Generation (CVPR2024)

画像生成でお馴染みFIDですが, 既に発表から7年の時が経過しています. 未だに現役の評価指標ですが, 「FID低いけど生成品質微妙だな...?」みたいなこともあるかなと思います. あまり例を挙げるのは失礼ではないかなとも思いますが, 一応例を挙げると2022年に発表されたSwinv2-ImagenはFIDがImagenより低いことを主張していますが, 定性的結果を見る感じだと果たしてそうだろうかと個人的には思います (解像度の問題もあるかもしれません).

https://link.springer.com/article/10.1007/s00521-023-09021-x

実際に, FIDが様々な場面で人間の感覚と異なる結果を出すという研究はあり, 例えばToward Verifiable and Reproducible Human Evaluation for Text-to-Image Generation (これはFIDには限らない点に注意が必要です)や On Aliased Resizing and Surprising Subtleties in GAN Evaluation, An Improved Evaluation Framework for Generative Adversarial Networksなどがあります.

今回取り扱う論文 Rethinking FID: Towards a Better Evaluation Metric for Image Generationでは, FIDの欠点を指摘し, 新しい評価指標としてCMMDを提案しています.

関連リンク

Google Researchの論文なので公式実装もTensorflowとJAXで書かれています. そのため, PyTorchに書き直しているバージョンが非公式に存在します.

TL; DR

  • 画像生成の評価指標であるFIDのベースとなっているFDには分布が多変量正規分布という仮定が置かれている
  • Inception V3の埋め込みは多変量正規分布ではないのにそれを使ってFDを計算している
  • 分布に依存しない指標であるCMMDを提案
  • CMMDは高速に計算可能でサンプル効率 (FID比較で少ない枚数でもOK)も良い

FID

本題に入る前に, FIDについて確認します. FIDはFrechet Inception Distanceのことですが, その前にFrechet Distanceを扱います. これは2つの確率分布 P, Q があったときに

\mathrm{dist}_{F}^2(P, Q)=\inf_{\gamma\in\Gamma(P, Q)}\mathbb{E}_{(\bold{x}, \bold{y})\sim\gamma}\|\bold{x}-\bold{y}\|^2

で与えられます. \Gamma(P, Q)PQ の全てのペアの集合です. \mathbb{R}^d 上では, これはWasserstein-2 distanceと等価です. 一般的にはこれを計算することは困難です. 1982年のJournal of Multivariate Analysisに掲載された論文では, 多変量正規分布の場合には

\mathrm{dist}_{F}^2(P, Q)=\|\boldsymbol{\mu}_P-\boldsymbol{\mu}_Q\|_2^2+\mathrm{Tr}(\boldsymbol{\Sigma}_{P}+\boldsymbol{\Sigma}_Q-2(\boldsymbol{\Sigma}_P\boldsymbol{\Sigma}_Q)^{1/2})

を計算すれば良いことが示されます. \boldsymbol{\mu} は平均, \boldsymbol{\Sigma} は共分散で, これが見慣れた形だと思います. FIDでは, Inception V3を用いて埋め込みを獲得し, それを基に計算します. 直感的には値が小さければ距離が小さい, すなわち2つの集合が同一視できるということで, 画像生成では片方を実画像のデータ集合とすることで「どれだけリアルな画像か?」を調べることができます.

FIDの問題点

著者らはここで, 2つの問題点 (論文ではerrorという単語を使っています)を指摘しています.

  1. 典型的な画像の集合におけるInception embeddingは正規分布から大きく離れたものになっている
  2. Inception Embeddingの共分散行列は巨大 (2048\times2048) でサンプル数が少ないと大きな問題が発生する

2つめについてはFIDは枚数が必要だという話を聞いたことがある人もいると思います. これは実験の最後に確認するとして, まずは1つめの方を確認します.

正規性の仮定の誤りその1

先ほど確認したように, 多変量正規分布の場合は簡単にFrechet Distanceを求めることができます. このとき, 誤った正規性の仮定を用いると当然ですが話が変わってきます. 基準となる分布を2次元等方性ガウス分布としてガウス混合分布との距離を測定します.

結果の前に, ガウス混合分布の作り方を述べておきます.

  1. 基準となるガウス分布と同じ平均・共分散を持つ4つのガウス成分の混合を用意します. この時点では何もしていないので基準となる分布との距離は0であることが期待されます (便宜上設定Aとします).

  2. 4つの成分を遠ざけることを考えますが, 全体の平均と共分散は固定しながら徐々に遠ざけます (設定Bとします).

設定A・Bを図示し, FIDなどを計算した表を示します.

設定Aが一番左, 設定Bはそれより右側です. 設定Aは期待通りの結果を示しています. しかし設定Bは明らかに設定Aとは異なる分布ですが, Frechet Distance (ここでは真のFrechet Distanceではなく近似値)が0になってしまっています.

設定Aでは分布の初期状態が正規分布なのでこれは正規性の仮定が妥当です. しかし, 設定Bでは正規分布ではないので正規性の仮定が不適となります. この状態でFrechet Distanceを計算しても正しい値は得られません.

FIDのバイアスを取り除いたFID_{\infty} も同じ問題が発生していることがわかります. これは, FID_{\infty} も同じ仮定を置いているためです. 一方で提案手法で使われているMMDはこれを克服していることがわかります.

正規性の仮定の誤りその2

先ほどは「正規分布ではないときにFrechet Distanceは誤った挙動を示す」ということをお話ししましたが, 正規分布という仮定をしているのに正規分布でない分布を使っているので (正規分布でないときの挙動は保証されていないという意味で)かなり当たり前の話です. 続いてはInception V3の埋め込みが正規分布に従うと仮定しているFIDの前提条件が誤りであることを示します. これが示されるとFrechet Distanceの計算の際の前提も崩れ, FIDが不適当な指標であるという主張につながります.

直感的にはこれは突拍子な主張ではありません. Inception EmbeddingはInception V3の最終層直前の活性化の部分を取り出しています. これはImageNetの1000クラス分類用に調整されたものです. そのことを考えるとInception Embeddingは1000個のクラスタ, あるいはモードを持つと予想できます. ここからInception Embeddingが正規分布に従うと仮定することは少し難しいです.

これを確かめるために, 実際にMSCOCO-30kのデータセットから得られたInception Embeddingをt-SNEで見てみます.

これは2次元の分布ですが, 1000個あるかはさておき埋め込みが複数のモードを持つことは疑う余地もないです. このことから, 2048次元である元の分布も多変量正規分布に近くないことがわかります. 著者らはこれに加えてMardiaの歪度検定、Mardiaの尖度検定、Henze-Zirkler検定を用いましたが, すべてで p 値がほぼ0となり, Inception Embeddingが多変量正規分布に従うという仮説が棄却されたようです.

ちなみに, この後提案手法でCLIPを用いたものが登場しますが, 著者らはCLIP Embeddingも同様に正規分布に従うとは考えていません. ここでの問題点は, FIDの計算において正規分布ではないInception Embeddingに対して正規分布とみなして計算を行っている点にあります. 実際にCLIP Embeddingに対しても検定を行うと正規分布という仮説は棄却されます.

このことから著者らは「正規分布という仮定を置く指標を設計することが間違っている」と考えていることが推測できます. 多くの場合埋め込みは正規分布にならないからです. 実際, 次に登場する提案指標では分布に依存しない設計がされています.

提案手法: CMMD

ここまでFIDの何が問題かをみていきました. 他にも問題点はありますが, それは適宜触れることにして提案手法であるCMMD (CLIP-MMD)について見ていきます. MMDとはMaximum Mean Discrepancyのことです. Maximum Mean Discrepancyと調べても日本語の記事などが全然出てきませんが

https://ryamada22.hatenablog.jp/entry/20180104/1515064531

https://qiita.com/matsutakk/items/938890ee431aca3f451b

などが参考になりそうです.

定式化に入る前に, 上の記事などを見ていただければわかる通り, 特にCLIPを使う理由はなく, Inception V3でもいいように思えます. 著者らはCLIPの採用理由について以下のように述べています.

  • CLIPは400Mのtext-imageのペアで学習されており, 複雑なシーンも含む. 一方でInception V3はImageNetでの学習で, 高々1000クラスの1Mの画像にとどまるために多様性や複雑なコンテンツを捉えられない.
  • このことは現代の画像生成の基準からはかけ離れており, 不適当である.

言いたいことはよくわかります. 個人的にはそれに加えてInception V3が随分前のモデルであることも入れていいかなと思います.

さて, 本筋に戻ります. CMMDはMMDを用いますので, まずはMMDについて触れます. MMDは本来, 2つのサンプルが同じ分布から得られたものかどうかを判定する統計的手法です.

2つの確率分布 P, Q があったとき, MMD distanceはカーネル k を用いて次のように書けます.

\mathrm{dist}_{\mathrm{MMD}}^2(P, Q)\coloneqq\mathbb{E}_{\bold{x},\bold{x}'}[k(\bold{x},\bold{x}')]+\mathbb{E}_{\bold{y},\bold{y}'}[k(\bold{y},\bold{y}')]-2\mathbb{E}_{\bold{x},\bold{y}}[k(\bold{x},\bold{y})]

\bold{x}, \bold{x}' はそれぞれ独立に分布 P に従います. \bold{y}, \bold{y}' も同様に, それぞれ独立に分布 Q に従います. 現実には m 個の \bold{x}n 個の \bold{y} を用意します. すなわち X=\{\bold{x}_1,\bold{x}_2,\ldots,\bold{x}_m\}, Y=\{\bold{y}_1, \bold{y}_2, \ldots, \bold{y}_n\} をそれぞれ P, Q から得られるサンプル集合としたときに

\hat{\mathrm{dist}}_{\mathrm{MMD}}^2(X, Y)=\dfrac{1}{m(m-1)}\sum_{i=1}^m\sum_{j\neq i}^mk(\bold{x}_i, \bold{x}_j)+\dfrac{1}{n(n-1)}\sum_{i=1}^n\sum_{j\neq i}^nk(\bold{y}_i, \bold{y}_j)-\dfrac{2}{mn}\sum_{i=1}^m\sum_{j=1}^nk(\bold{x}_i, \bold{y}_j)

です. このような距離の測り方は, Frechet Distanceと比較して3つの利点があります.

  1. MMDはdistribution-freeです. すなわち, P, Q がどのような分布であったとしても使用できます. 正規分布を仮定していたFrechet Distanceとは違い, 分布によって想定とは異なる振る舞いをすることはなくなります.
  2. FIDは評価に用いる集合が大きければ大きいほど正確性が期待できます (bias). ですが, MMDはunbiasedです.
  3. FIDは非常に計算量が大きいですが, CMMDは小さい計算量で求めることが可能です.

提案手法ではカーネルとしてGaussian RBF kernelを用います. k(\bold{x}, \bold{y})=\exp(-\|\bold{x}-\bold{y}\|^2/2\sigma^2) です. \sigma=10 とします. 実験ではCLIPとしてViT-L/14@336pxを使用し, m=n とします.

Human Evaluation

まず人間の評価によって, FIDよりもCMMDが妥当な指標であることを示します. 2つのモデルAとBを用意します. Aはfull Museモデルです. Museとは同じGoogleから出ているtext-to-imageのモデルで, Masked Transformerが採用されていることが特徴です. BはAをWebLIで訓練中にearly stopしたものです. Museは何度も推論を行いますが, BはAよりも少ない回数行われます. このことからAが理想のモデルでBは意図的に性能を悪化させたモデルといえます.

同じ条件で画像を生成し, どちらの方がいいかを聞きます. 3人にしか聞いていないので信用性が足らない気もします (一応クラウドコンピューティングプラットホームで雇った人のようです). PartiPromptsを使って生成します. 結果を確認します.

事前の目論見通り, 人間はモデルAを非常に好む結果となりました. それと同じ挙動となっているのは提案手法のCMMDです. FIDはどちらも品質を悪化させたモデルBの方を性能のいいモデルとしています.

Performance Comparison

先ほどMuseは推論を複数回行うという話をしました. それを生成画像で見てみます.

step 1では明らかに崩れている生成画像がstep 8になるとある程度綺麗になっていることがわかるかと思います. このように推論の回数を変化させたときに各指標がどのように変化するかをプロットしたのが以下の図になります.

CMMDは推論回数を増やすと定性的な結果と同様にスコアが良くなりますが, FIDは真逆の挙動を示します. これはMuseの話ですが, Stable Diffusionでも似たようなことが観察されます.

98stepまで順調に下がっているのになぜかそこからスコアが上昇してしまいます.

次に, 画像を意図的に歪めて (distortして)みます. InceptionNetの訓練ではデータ拡張が行われていないので, FIDはただ画像にノイズをかけたり歪ませたりしても正しく判定できます. ここではより高度な歪みとして, Museの生成画像をVQGANに与えて得られるトークンに対して確率 p でランダムなトークンと入れ替えます. 実験では p=0.2 を用います.

上が通常の生成画像, 下が歪めた画像です. 視覚的には明らかに下の画像が劣化していることがわかります. ところが, FIDの値は視覚的な結果とは逆になります. 上の画像群のFIDは21.40ですが, 下の画像群では18.02となり, FID上では性能が改善したといえます. 一方でCMMDは上の画像群では0.721, 下の画像群では1.190となり, 悪化していることを反映できています.

歪みの割合 p を変えても, CMMDは一貫性のある結果ですがFIDは異なっていることがわかります.

サンプリング効率と計算コスト

FIDは 2048\times2048 の共分散行列によって, 多くの画像を要求します. ところがCMMDは少ない枚数でもOKであることを示します. MSCOCO-30kから様々な値でサンプリングして結果を比較します.

上のグラフが枚数を変えた際の実際のFIDとCMMD, 下のグラフは30kのときを1とした場合に枚数を変えた際の変化率を表します. FIDの場合, 20kくらいから信頼性のある値になるのに対し, CMMDは5kでも既に安定した値を示します.

実際に, FIDとCMMDの計算の過程においてどれほどの差が生じるのかを計測します. 30kのサンプルを用い, d=2048 でFIDを求めます. CLIPの推論ではbatch sizeを32とします. 実験はTPUv4上で行われています.

結果を見ると, Frechet Distanceの計算がかなり支配的であることがわかります. モデルの埋め込みを得ること自体は大差なくできているのでこの計算によって非常に負荷の高い計算コストとなっています.

参考文献

  • Jayasumana, S., Ramalingam, S., Veit, A., Glasner, D., Chakrabarti, A., & Kumar, S. (2024). Rethinking FID: Towards a Better Evaluation Metric for Image Generation. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 9307–9315.
  • Li, R., Li, W., Yang, Y., Wei, H., Jiang, J., & Bai, Q. (2024). Swinv2-Imagen: hierarchical vision transformer diffusion models for text-to-image generation. Neural Computing and Applications, 36(28), 17245–17260. https://doi.org/10.1007/s00521-023-09021-x
  • Parmar, G., Zhang, R., & Zhu, J.-Y. (2022). On Aliased Resizing and Surprising Subtleties in GAN Evaluation. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 11410–11420.
  • Otani, M., Togashi, R., Sawai, Y., Ishigami, R., Nakashima, Y., Rahtu, E., Heikkilä, J., & Satoh, S. (2023). Toward Verifiable and Reproducible Human Evaluation for Text-to-Image Generation. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 14277–14286.
  • Liu, S., Wei, Y., Lu, J., & Zhou, J. (2018). An Improved Evaluation Framework for Generative Adversarial Networks. https://arxiv.org/abs/1803.07474
  • Chong, M. J., & Forsyth, D. (2020, June). Effectively Unbiased FID and Inception Score and Where to Find Them. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).

Discussion