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

大規模な事前学習モデルの限界を探る!

大規模な事前学習モデルの限界を探る!

論文

3つの要点
✔️ 大規模な事前学習モデルの下流タスク性能について幅広い実験により調査
✔️ 上流タスクでの精度向上が下流タスク精度の飽和に繋がることを実証
✔️ 上記の飽和現象について詳しく調査

Exploring the Limits of Large Scale Pre-training
written by Samira AbnarMostafa DehghaniBehnam NeyshaburHanie Sedghi
(Submitted on 5 Oct 2021)
Comments:  ICLR2022

Subjects: Machine Learning (cs.LG); Artificial Intelligence (cs.AI); Computer Vision and Pattern Recognition (cs.CV); Machine Learning (stat.ML)

code:  

本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。  

はじめに

現在の機械学習分野では、ImageNetなどの上流タスクで大規模な事前学習を行い、その後下流タスクにモデルを適応させる方針がよく取られています。しかし、事前学習モデルをより大規模にしたり、上流タスクでの性能を高めることが、下流タスクでの性能向上に必ずしも繋がると言えるでしょうか。

この記事で紹介する論文では、Vision Transformer、MLP-Mixer、ResNetについて、パラメータ数1000万~100億の範囲にて4800回以上もの大規模な実験を行い、モデルのスケーリング・ハイパーパラメータ・アーキテクチャの選択と下流タスクの性能との関係を詳細に調査しました。

その結果、上流タスクでの性能を向上させると、下流タスクでの性能が飽和することなど、既存の研究とは異なる興味深い結果が示されました。(この論文はICLR2022にAccept(Spotlight)されています。)

実験設定

実験では、大量のデータによる上流タスクでの事前学習と、下流タスクでのfew-shot学習とfine-tuningによる性能評価を行います。上流タスクでは、303Mの画像と18kのクラスからなるJFT-300M、または14Mの画像と21kのクラスからなるImageNet21Kを利用します。下流タスクは以下の通りです。

 

トレーニングのより詳細については元論文付録Gを参照ください。

実験結果

下流タスク精度の飽和現象

はじめに、上流タスクでの性能向上が、下流タスクでの性能にどのような影響をもたらすかについて実験を行います。上流タスク(JFT)で事前学習を行い、few-shot(25-shot)設定で下流タスクでの評価を行った場合の、上流(US)・下流(DS)タスク性能の結果は以下の通りです。

また、上流タスク(JFT、ImageNet)で事前学習を行い、few-shot(1-shotまたは25-shot)設定で下流タスクでの評価を行った場合の、上流(US)・下流(DS)タスク性能の結果は以下の通りです。

 

ここで、下流タスク・上流タスクの誤差(1-精度)をそれぞれ$e_{DS},e_{US}$としたとき、以下の関係が成り立つとします。

このとき、$e_{IR}$は上流タスク誤差がゼロ(精度が1)になった場合の下流タスク誤差の値であり、これを飽和値として定義します。$k,\alpha$は定数です。上の図の$1-e_{IR}$のプロットから分かる通り、上流タスク性能と下流タスク性能の関係は線形ではなく、下流タスクの性能は1より低いある時点($1-e_{IR}$)で飽和します。

以降では、この$e_{IR}$について更に調査を行います。

$e_{IR}$と上流・下流タスクの関係

上の図では、下流タスクの種類やショット数により性能が大きく変化していました。ここで、ショット数に対する$e_{IR}$の変化は以下のようになりました。

また、様々な上流・下流タスクについて、$k,\alpha,e_{IR}$とショット数の相関は以下のようになりました。

総じて、$k,e_{IR}$はショット数と負の相関があり、$\alpha$は正の相関があることがわかりました。

スケーリングの効果について

次に、データセットサイズ、モデルサイズ、エポック数により、下流・上流タスクがどのように変化するかについて実験を行います。結果は以下の通りです。

また、より多くの下流タスクについての結果は以下の通りです。

総じて、データセットサイズ、モデルサイズ、エポック数の変化は上流タスク精度には影響を与えていますが、これらのパラメータが下流タスク精度に直接もたらす影響はあまりないと見られます。これは、三つのパラメータが変化しても、下流タスク精度のプロットはほぼ同一の曲線上に存在していることから示されます。

また、これまでの実験と同様、上流タスク精度を上げると下流タスク精度が飽和する傾向がみられること、下流タスクの種類に応じて飽和の度合いが異なる結果となりました。

上流タスク・下流タスク精度間の関係について

これまでの実験では、下流タスクによって飽和の度合いが異なる結果が得られました。ここで、なぜ一部の下流タスクは、他のタスクと比べて早く飽和が起こるのかについて検討します。まず、上流タスクと下流タスク精度間のスピアマン順位相関係数は以下のようになりました。

 

下流タスク精度の飽和が早く始まっていたUC-Mercedやcol_histは、上流タスク精度との相関係数の値が比較的低い傾向にあることがわかります。一方、異なる層の表現を下流タスクに利用した場合、下流タスク精度は以下のような結果となりました(上流タスクはJFTです)。

ここで、緑色の丸は三つのパラメータ(データセットサイズ、モデルサイズ、エポック数)を変化させた場合のプロットにあたります。

これらの図から、上流タスクと類似した下流タスク(ImageNetなど)では、後の層の表現ほど下流タスク精度も高くなっている一方で、UC-Mercedやcol_histのように飽和が早く起こった下流タスクでは、最後の層の表現は必ずしも最適ではありませんでした。過去の研究では、下位の層ほど異なるデータセット・タスク間で共通する特徴を捉えていると議論されていることを踏まえると、下流タスクにて性能が飽和するのは、上流タスクで事前学習されたネットワークには、下流タスクで良い性能を発揮するために必要な特徴が欠落していることによると見られます。

まとめ

Vision Transformer、MLP-Mixer、ResNetによる幅広い実験の結果、上流タスクで性能が向上すると、下流タスクでの精度が飽和することが示されました。この下流タスクでの精度の飽和は、データセットサイズ、モデルサイズ、エポック数の選択によって大きく変化することはなく、すべての下流タスクにて良好に機能する事前学習モデルを得ることは困難であるとみられます。また、上流タスク精度との相関が低い下流タスクでは飽和が早く起こる傾向にあるなど、下流タスクによって飽和の度合いが異なることがわかりました。そのため、上流タスクの結果に近い一つの下流タスクの性能に焦点を当てることは好ましくなく、幅広い下流タスクで性能を向上させるための選択をするべきであるといえます。(元論文にはより多くの実験結果の表や図、考察が記されているため、興味を持った方は元論文も合わせて御覧ください。)

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

お問い合わせする