最新AI論文をキャッチアップ

暗黙的な誤りが存在していた?!

暗黙的な誤りが存在していた?!

GAN(敵対的生成ネットワーク)

3つの要点
✔️ FIDの算出に大きな誤りが存在した。
✔️ 画像形式によってもFIDは影響を受けることが判明
✔️ PILのbicubic補間を使用することが推奨された

On Buggy Resizing Libraries and Surprising Subtleties in FID Calculation
written by Gaurav ParmarRichard ZhangJun-Yan Zhu
(Submitted on 22 Apr 2021)
Comments: Published on arxiv.

Subjects: Computer Vision and Pattern Recognition (cs.CV); Graphics (cs.GR); Machine Learning (cs.LG)

code:  

追記

今回の内容はライブラリのV1での実装である可能性が高く、V2では改善されているライブラリも存在します。tensorflowであれば、こちらを確認いただければ、今回のような誤りを回避できるかもしれません。注意としては「デフォルトではantialias=False」気をつけてください。リサイズ時のaliasingを簡単な確認を行いました。bicubicですが、オプションによって修正ができることを確認いたしました。Bilinearに関しては@Dsuke_KATOさんが確認済みです。

はじめに

今回の論文はGANの精度評価で用いられるFIDで言われていたバラつき問題を丁寧に評価した研究になります。精度評価指標自体に誤りがあればそれこそ評価指標としてはよくありません。GANを使用した研究はしていなくても、この問題は比較的多くの人も影響が考えられる内容が含まれていますので、ぜひ見ていただきたいです。もちろんGANを用いた研究をされている方は必読です!

復習

そもそもGANの精度評価なんてどうやって行うのか。GANの精度評価について、簡単に説明いたします。

まず考えるべきは、GANの精度が高いってなんなのかです。それこそ綺麗な画像が生成された?人には判断できない顔画像を生成できたら?ここで発生する問題が、精度で当たり前の比較ができない点です。比較ができれば精度の良さも評価できますが、例えば、GANが生成した顔画像(偽物)をどのように"本物らしさ"を測れば良いのかです。そこで生まれたのが

ID(Inception Score, 2016):Imagenetで学習したInception Networkを使った評価指標です。簡単に言えば、リアル画像で学習したInception Networkによってリアルな物としてGANの生成した画像が認識されやすいかという感じです。

しかしこの手法には実画像の分布が考慮されていないという大きな欠陥が存在しています。なので実画像の分布と比較すればいいじゃんという発想で、有名なFID(Fréchet Inception Distance)が提案されました。

FIDは先ほど述べた実画像の分布が考慮されていないという欠点を、実画像の分布と生成画像の分布間の距離をFréchet距離で測って算出すればいいよねって発想です。図のようにリアル画像と生成画像の特徴間でFréchet距離を測っています。

背景

上記の復習で述べたFIDにも実際は問題点があります。

  1. FID算出に、暗黙的な画像のリサイズが存在する。(上記図のResize to ~が該当箇所です。 )
    これはInception Networkに入れるために必ず、299×299にしなければいけないのです。そして、フレームワークにこのリサイズは依存し、算出時に必ず行われます。基本的には不可避です。
  2. FID実装が決まったものがなく、研究者依存である。
    そのためそもそも同じFIDでも、どのスクリプトを使う方によって数値にばらつきが存在する。

これらの問題は有名です。ただ結論からいうと、今回の論文ではそもそもFIDの算出に誤りが存在するライブラリだらけだったそうです。ここは非常に驚きました。

ライブラリの誤り確認

実際のライブラリごとのダウンサンプリングの方法を比較した結果(左図)です。行ったことは円が描かれた128×128の画像を16×16にダウンサンプリングを行うものです。明らかにPIL以外はダウンサンプリングに失敗しています。aliasing artifactが発生しています。右の結果でも明らかに処理後のノイズ画像が違います。

このようにリサイズにライブラリ依存の誤りが存在するということはFID算出時に何かしらの影響があると言えるでしょう。今回はそこから検討していきます。

リサイズ関数によるFIDの影響

リサイズの影響を見たいので、入力はどちらもリアル画像です。なので、分布は一致します。リサイズ部分をライブラリごとに変更した際の結果(右の表)を評価します。(理想は画像が同じなので、全てのライブラリでFIDは一致します。)

もちろん、PIL-bicubicのペアは-になります。多少の誤差はあれど、PIL-box以外はFIDが正しいといます。しかし、その他のライブラリの結果は明らかに悪いものになっています。すなわち、どのライブラリを用いたかによって精度に差が出るということです。また、右側のStyleGAN2は実際の生成画像の場合を示しています。やはりPIL以外のライブラリは大きく数値の誤差が出ることがわかりました。

画像の保存形式によるFIDヘの影響結果

当たり前ですが、PNG保存なのか・JPEG保存なのかによって画像の情報量は異なるため、ここにもFIDに影響があるのではないかと考えた著者らはここについても検討しています。リサイズはPIL-bicubicで固定し、入力の画像をわざとJPEGに圧縮したもので検討します。

結果を見てみると、JPEG圧縮の品質設定が悪くなる(JPEG-〇〇、〇〇の部分の数値が低くなる)ほど、FIDも悪くなっています。もちろんその結果はStyleGAN2で生成した画像で検討してみても同じ結果になっています。PSNRではFIDほど大きな劣化はありませんでした。少なくともJPEG圧縮による影響はあると言えます。ここで言いたいのは決して圧縮がダメではなく、保存形式によって影響を受けるので使用するデータセットによる保存形式に基本的に合わせないといけないのではないかということだと思います。次に簡単に説明します。

そもそも顔画像データセットといえばFFHQですが、これはPNG形式で保存されています。そのため、JPEG圧縮の影響を受けていることがわかります。また生成画像は生成時点では連続値(float)ですが、保存時に離散値(int)に変換する必要があります。そこで実際にInceptionにfloatのまま入力した結果も示されていますが、影響は少ないことがわかります。

研究では他にLSUN Churchでも検討しています。このデータセットはJPEG-75で保存されています。結果を見てみると、なぜか若干ノイズがあった方がいいという結果ですが、上記と傾向が違うというところが重要で、保存形式によってFIDが影響を受けるということが重要です。

ただこれらの結果を受けて、著者たちはPNGの使用を推奨しています。もしかすると今後のAIにおけるCV研究ではPNGが推奨されるかもしれません。また、画像の離散値による影響は多少あれど、FFHQと同様に影響は少なめです。

再実験

保存形式によるFIDの影響はライブラリの影響ほど大きくはありません。そこで、保存形式をPNGで固定して、各種ライブラリを変更させた際のFIDの再実験を行いました。正しくリサイズできるPIL-bicubic・公式Tensorflow実装・非公式Pytorch実装の3つで検討します。カッコ内の数値は最小の値のとの差分を表しています。

面白いことにどれもPytorchの結果が最もFIDは最小となりました。すなわち、PytorchでFIDを算出すると有利な比較ができるという、不公平さが存在することがわかりました。さらに面白いことにモデルの差はどの実装ライブラリを使用しても同じです。モデルの精度の良し悪し自体は同じライブラリ実装であれば、大丈夫です。

さらに学習済みではなく、学習させながら、その途中途中でもFIDを測った結果でもFID-correct(PIL-bicubic)とFID-buggy(=pytorch)を比較すると、どの学習stepsでもpytorch実装の方がFIDは小さくなることがわかります。(しかし、FID-correctとFID-buggyは完全な相関があるわけではないです。)

データセットによる結果

今までの検討をImagenetでも行って、一般的なデータにおけるFIDを見ていきます。

今回の結果では、FFHQほどFIDの劣化は出てきませんでした。可能性としてはImagenetがそもそも低解像度であり、リサイズの影響を受けにくかったのではないかと思われます。実際FFHQは1024×1024なので解像度が半分以下ですが、Imagenetではほとんど解像度が変わりません。

また、ダウンサンプリングの度合いによる影響を見ていくと、やはりダウンサンプリングの比率が大きくなれば、なるほど、FIDへの影響が大きいことがわかります。

まとめ

今回の研究でFIDがライブラリのリサイズ実装の誤りに影響を受けていることがわかりました。しかし、Imagenetでの実験では極端に影響がないことから、結局は最初の背景部分で述べたaliasing artifactの発生が影響しているのだと思います。もちろんライブラリ実装の誤りは修正していく必要があると思いますが、今後注意すべきなのは、処理をした時に知らぬ間に何かしらのartifactが発生していないかを検討しなければ今後も気づかずに研究が進んでいってしまうということです。

またそもそもリサイズしないLPIPSみたいな評価指標も存在するのでそういった部分も注目していきたいです。というのも著者のRichard ZhangさんこそがLPIPSの提案者です。

運営 avatar
AI-SCHOLARは最新のAIに関する論文を分かりやすく紹介するAI論文紹介メディアです。 日本の科学力の低下が叫ばれ政府による研究予算の抑制が続く中、 AIが担う役割はその技術革新にとどまりません。 AIの技術やその応用あるいはそれを支える基礎科学の文脈などを世に伝えることは重要なアウトリーチであり、科学に対する社会の理解や印象を大きく左右しうるものです。 AI-SCHOLARは、AIに対する一般の方々と専門家の間に存在する理解の乖離を少しでもなくし、一般社会にAIが溶け込んでいく姿の一助を担うべく作成されています。 それに加え、これまで皆様が築き上げてきた学習や研究の経験がメディアとして具現化され社会に表現されることのお手伝いができればと考えています。 先端的で難解な事柄を難しい言葉のまま説明することは誰にでもできますが、AI-SCHOLARはメディアとして情報を伝える上で、語彙やデザインを駆使して「読みやすさ」「わかりやすさ」を追求しています。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする