torch.manual_seed(3407) is all you need
3つの要点
✔️ モデルの精度と、モデルの初期化に使われるmanual seedの選択
✔️ 劇的に良い結果をもたらすseedがあるかどうかを調査
✔️ 事前学習したモデルの使用と、seedの選択によって引き起こされる変動性の関係
Torch.manual_seed(3407) is all you need: On the influence of random seeds in deep learning architectures for computer vision
written by David Picard
(Submitted on 16 Sep 2021)
Comments: Published on arxiv.
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめ
深層学習モデルは、モデルの初期状態に敏感です。同じデータと学習手順で学習した同じアーキテクチャでも、初期状態が異なれば、最終的なモデルは2つになり、性能に測定可能な差が生じる可能性があります。しかし、ある「幸運な」初期状態(manual seed)では、他の初期状態(manual seed)に比べてどの程度の改善が期待できるのでしょうか。Manual seedの選択によって引き起こされる変動性を緩和する要因はあるのでしょうか?本論文では、これらの疑問に答えていきたいと思います。
意義と方法論
アーキテクチャの設計や学習が少しずつ進歩していることは定期的に発表されていることからもご存知だと思います。もし、ある特定のseedが他のseedよりも劇的に優れた結果を本当に生み出すのであれば、研究者は複数のシードを使って実験を行い、自分の研究を検証する必要があるはずです。方法は精度検証において、seedも変更させていきながら、評価をしていくという単純なものです。表は、行った実験をまとめたものです。
結果
収束の不安定
まず、CIFAR-10において、500種類のシードの検証精度の分布を調べます。
左の図は、エポック数による精度の変化を示しています。25エポック程度で検証精度は飽和しますが、様々なシードで学習したモデルは、40エポックまで学習したにもかかわらず、1つの曲線に収束しなくなっていることがわかります。右の図は、最終的な検証精度のヒストグラム/密度プロットです。曲線の中心がとがっていることから、多少の努力をして、いくつかの異なるseedを試した後に最終的なモデルを選択することが、そのモデルの能力を代表している可能性が高いことがわかります。しかし、90.5%から91%までの密度はまだかなり高いので、ランダムにseedを選択した場合、このケースでは約0.5%の性能低下(または上昇)が容易に起こり得ます。
ブラックスワン調査
次に、10000件のCIFAR-10実験の結果を調べて、急激に良い結果(または悪い結果)をもたらすmanual seedがあるかどうかを調べます。その結果、精度の最小値は89.01、最大値は90.83で、その差は1.82%でした。このような差は、精度を重視する今日では重要視されており、多くの場合、新しい論文を発表する必要が出てきます。
もちろん、かなりの部分のseedを検討しなければ、極端に高い値や低い値を得ることはできないでしょう。一方、10000個以上のサンプルから得られた両極端の差は、はるかに大きくなる可能性もあります。
大規模データセット
事前学習させたモデルを用いることで、seedの選択によって生じるランダム性が軽減されるかどうかを調べました。その結果、標準偏差は約0.1%、最小精度と最大精度の差は約0.5%でした。これはCIFAR-10の場合よりもはるかに小さいのですが、最後の線形層を除く他のすべての層が、すべてのモデルで同じ重みを持っているという事実を考慮しなければなりません。
しかし、サンプル数が50と少ないため、この結果の妥当性には疑問が残ります。また50個のサンプルの分布を見ても、サンプル数が多ければ1%以上の差にならなかったとは言えません。とはいえ、この0.5%というばらつきも、深層学習の世界ではまだ重要だと考えられています。
まとめ
Manual seedの選択が重要であることははっきりしています。深層学習の研究は急速に進んでおり、研究者は自分の研究を発表することを急いでいます。主要なコンピュータビジョン会議には、毎年10000以上の投稿があります。確かに投稿されたモデルは同じではありませんが、その大半は、自分の結果が幸運な設定によるものではないことを確認するために、あまり努力をしていない可能性があります。
このような問題を解決するためには、研究コミュニティは、seed(データセットの分割もあり得る)を変化させ、結果を報告することで、何らかの形で標準的なランダム性の研究を取り入れなければなりません。 将来的には、サンプルサイズを増やしたり、他のデータセットやモデルアーキテクチャを使ってモデルをより長く学習したりすることで、さらなる知見が得られると思います。
この記事に関するカテゴリー