機械学習の研究を再現するのは非常に難しい

機械学習の研究を再現するのは非常に難しい

[[223551]]

はじめに:再現性と一貫性は計算科学研究の基本要件であり、機械学習も例外ではありません。

機械学習の研究論文は間違いなく貴重な資産です。これらの論文は、将来の研究の刺激となり、学生にとって有用な教育ツールとなり、また産業界の応用研究者に指針を提供することができます。おそらく最も重要なのは、それらが人間の存在に関する最も根本的な疑問のいくつかに答えるのに役立つことです。たとえば、学ぶとはどういう意味でしょうか?人間の存在とは何を意味するのでしょうか?再現性は科学研究において必ずしも達成されるわけではありませんが、研究の質を向上させる強力な基準となります。研究結果が再現できれば、研究結果がより堅牢で有意義なものになる可能性が高く、少なくとも実験者による多くのエラー(不正行為や偶発的な結果など)が排除されます。

しかし、既存の機械学習の研究結果の多くは再現不可能であるか、再現が困難です。研究結果の信頼性と再現性をどのように確保するかは、多くの機械学習研究者が解決に取り組んでいる問題です。 2017年のICMLでも、機械学習の研究成果の再現性と再現可能性を探るために、「機械学習における再現性」というワークショップが開催されました。

機械学習の研究を再現するのはなぜ難しいのでしょうか? Google の TensorFlow チームでディープラーニングを研究しているエンジニア、Pete Warden 氏の意見を聞いてみましょう。

ピート・ウォーデン氏の記事が公開された後、機械学習を研究している多くのエンジニアや研究者が同意を表明した。その中には、Google Brainの研究者でありSketchRNNの生みの親でもあるデビッド・ハ氏(@hardmaru)もおり、彼も彼のツイートを黙ってリツイートした。

私の友人が機械学習のスタートアップ企業を設立しましたが、最近、ある問題に遭遇しました。彼らの機械学習モデルは整理されておらず、彼のチームがそのモデルに基づいて何かを構築したり、顧客に見せたりしようとしたときに、深刻な問題が発生しました。場合によっては、モデルの元の作成者であっても、作成したモデルを適切に実行できなかったり、以前と同じ結果が得られなかったりすることがあります。彼は私に解決策を提案できることを期待して助けを求めてきましたが、私も職場で同じ問題に直面していることを認めざるを得ませんでした。機械学習を理解していない人にこれを説明するのは本当に難しく、私たちは結局、コードにバージョン管理システムを使用せず、モデルをゼロからトレーニングしていた時代に戻りました。それがひどいと感じることもありました。

私がコーディングのキャリアを始めたのは 1990 年代半ばで、当時は Microsoft の Visual SourceSafe がコード バージョン管理システムの標準でした。優れたエクスペリエンスを提供するために、アトミック コード送信操作はサポートされていないため、複数の開発者が同時に同じファイルを変更することはできません。予期しない競合を避けるために、スキャンとコピーは夜間に行う必要がありますが、それでも朝までにデータベースが完了するという保証はありません。私はとても幸運だったとしか言いようがありません。私のチームは付箋を貼る壁を用意し、それぞれの付箋はプロジェクト内のファイルに対応していました。開発者がファイルを変更する場合、対応するメモを取り、変更が完了したら元に戻します。

バージョン管理システムの前では、私は何の恐怖も感じないと言えます。私はかなりひどいシステムを扱ったことがありますが、必要な場合は同期ツールを使用して自分でいくつかのソリューションをハックすることもできます。しかし、そうはいっても、機械学習開発における変更追跡とコラボレーションに関しては、正直言って途方に暮れています。

この問題を説明するために、まず典型的な機械学習モデルのライフサイクルを見てみましょう。

  • 研究者たちは、画像分類のための新しいアーキテクチャを試してみたかった。
  • 彼女は、入力データセットを処理するために以前のプロジェクトからいくつかのコードをコピーしました。
  • データセットはインターネット上のファイルディレクトリに保存されています。ImageNet からダウンロードされた可能性がありますが、どのディレクトリであるかは不明です。ある時点で、誰かが JPEG 以外の画像の一部を削除したり、変更履歴を残さずにその他の小さな変更を加えたりした可能性があります。
  • 彼女はバグを修正し、アルゴリズムを微調整する方法を見つけました。これらの変更はすべてローカル マシン上で行われ、モデルをトレーニングするには、大量のコードを GPU クラスターにコピーする必要がありました。
  • モデルのトレーニングには数日、場合によっては数週間かかることもあるため、彼女はモデルを何度も再トレーニングし、ローカルマシンでコードを修正し続けました。
  • トレーニングの終わり近くにバグが発生した可能性があるため、すぐにファイルの 1 つを変更し、クラスター マシンにコピーしました。
  • 彼女は、あるトレーニングセッションで使用した半完成のウェイトを新しいトレーニングに使用した可能性があり、その新しいトレーニングは変更されたばかりのコードに基づいていました。
  • 時間の制約により、彼女はこれらの回のトレーニング結果を評価し、そのうちの 1 つをリリースする最終モデルとして選択しましたが、このモデルは異なるコードを使用してトレーニングされた可能性があります。
  • 彼女は、バージョン管理システムの個人ディレクトリにコードをコミットします。
  • 彼女はコードとモデルを公開しました。

研究者が十分に注意を払っている場合、これはすでに比較的楽観的な状況ですが、別の人が上記の手順を繰り返して同じ結果を保証した場合、どれほど困難になるかは想像に難くありません。上記の各ステップは一貫性がない可能性があり、言うまでもなく、機械学習フレームワークはパフォーマンスと数値の精度の間でトレードオフを行うことがあります。誰かが上記のステップを実際にステップごとに繰り返すことができたとしても、異なる結果が表示されます。

ほとんどの場合、研究者は自分が行った作業を追跡していないため、同じモデルを生成することができません。すべての手順を書き留めて再度実行したとしても、フレームワークはいつでも変更される可能性があるため、以前のモデルとの一貫性を保つためにシステムのスナップショットを記録する必要があります。私は研究者にモデルの再生成を手伝ってくれるよう頼んだことがあります。彼らは寛大に協力してくれましたが、彼らがモデルの元の作成者であったとしても、数か月かかることもよくあります。

一貫性はなぜそれほど重要なのでしょうか?論文を書いているときにモデルを再現する方法がわからなかったという友人が何人かいました。元の著者と同じ精度が得られない場合、新しい方法が元の方法よりも改良されていることを他の人にどうやって納得させることができるでしょうか?変更された要件やプラットフォームに対応するためにモデルを完全に再構築する能力がない場合は、運用システムで既存のモデルに大きく依存するのが普通です。コードの変更やトレーニング データをロールバックすることが難しいため、研究実験を行う際にも大きな問題となります。バージョン管理システムを使用しないとコード変更のコストが増加するのと同様に、上記の手順に従おうとすると追加のリスクが伴います。

もちろん、事態はそれほど悲観的ではなく、コミュニティはモデルの一貫性の問題を解決するためにこの点に関して努力しています。私のお気に入りは、Toby Boyd 氏が率いる TensorFlow Benchmarks プロジェクトです (https://www.tensorflow.org/performance/benchmarks)。このチームの使命は、現在主流のモデルの一部を複数のプラットフォームで迅速にトレーニングする方法を実現するだけでなく、これらのモデルが十分に高い精度を達成できるようにすることです。私は、彼がモデルの精度を向上させるために懸命に努力しているのを個人的に目撃しました。なぜなら、上記のすべての手順が結果に影響を与える可能性があり、モデルの元の作成者の助けを借りても簡単にデバッグする方法がなかったからです。そして、それは終わりのない仕事のように思えます。TensorFlow フレームワークは変化し、GPU ドライバーは変化し、データセットは変化し、これらすべてが結果に影響します。 Toby のチームは、TensorFlow の変更によって生じたバグの発見と修正、外部依存関係によって生じた問題の特定に協力してくれましたが、スケールアップは依然として困難でした。

また、一部のチームが本番システムで機械学習モデルを使用することに非常に慎重であることも知っています。トレーニングされたモデルの一貫性を確保するために多くの時間と労力を費やしていますが、問題はこのプロセスがまだ手動であることです。現時点では、モデルが将来も同じ結果を生成し続けることを保証できるバージョン管理システムや合意されたベスト プラクティスは存在しません。今のところこれより良い解決策は思いつきませんが、この問題を解決する際に従うべきいくつかの原則を以下に示します。

  • 新しいアイデアは研究者が理解しやすいもので、研究者にあまり時間や労力をかけずに済むものでなければなりません。そうでないと、研究者はこれらのシステムをまったく使用しようとしないかもしれません。理想的には、これらのシステムは効率性を大幅に向上させるのに役立つはずです。
  • 研究者が誤って車に轢かれ(大きなミス、削除)、起業するために退職した場合、翌日に入社する新しい研究者でも、以前に作成したモデルを再トレーニングして同じ結果を得られるようにする必要があります。
  • モデルの作成者が公開したくない履歴の詳細を明かすことなく、モデルをトレーニングするために必要な要素をパッケージ化して共有できる方法が必要です。
  • 結果を再現するには、コード、トレーニング データ、プラットフォーム全体を正確に文書化する必要があります。

いくつかのオープンソース コミュニティやスタートアップ企業がこの問題に取り組んでいるのを見てきました。残りの人生をかけてこの問題を解決するのが待ちきれません。しかし、すぐに完全な解決策は見つかりません。モデルのトレーニングに関しては、バージョン管理システムの出現がコーディング プロセスに大きな変化をもたらしたのと同じように、変更が必要です。

機械学習の研究結果を再現しようとしたときに、どのような落とし穴に遭遇しましたか?機械学習の結果を再現するのが難しいことにも不満を言いたいですか?ぜひメッセージを残してご意見をお聞かせください。

オリジナルリンク: https://petewarden.com/2018/03/19/the-machine-learning-reproducibility-crisis/

<<:  「黄金の3月と銀の4月」が到来し、AIはすでに人材採用の分野に浸透しています。あなたにはどのような影響があるでしょうか?

>>:  Cheetah MobileがロボットプラットフォームOrion OSと5つのロボット製品をリリース

ブログ    

推薦する

AI人材の世界的な需要が急増、一部の職種では年間40万ドル近くを稼ぐ

6月19日のニュース:AI産業の急速な発展に伴い、テクノロジー業界のAI人材に対する需要も高まってい...

...

AlphaFold2 の原理: 注意メカニズムが畳み込みネットワークに取って代わり、予測精度が 30% 以上向上

[[412540]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

快手が手の姿勢推定機能を発表、電光手の秘密を公式に公開

アイアンマンは指と手のひらを回すだけで、あっという間に鎧の製作を完了した。この魔法のような技に、スク...

...

AIチップ市場で何が起こっているのか?

現在、AI チップ市場全体はディープラーニングを中心に展開しています。ディープラーニング (DL) ...

OpenAIが安全チームを設置 準備: AIのリスクを評価し、外部からの悪用を防ぐ

OpenAIは10月27日、汎用人工知能(AGI)によって引き起こされる可能性のある壊滅的なリスクを...

「バンカーズアルゴリズム」の秘密が明らかに!フロントエンド テーブルでカスタム数式を使用して「偶数に丸める」

銀行の収益モデルとは何でしょうか? 3 つの言葉: 情報の非対称性です。銀行は預金者から資金を集めて...

RPAは人工知能の究極の発展方向でしょうか?

ロボティック・プロセス・オートメーション (RPA) は、単調で反復的なタスクを排除するのでしょうか...

...

突如、Stable Diffusion 3がリリースされました!ソラと同じアーキテクチャですが、すべてがよりリアルです

1年以上の開発期間を経て、前世代に比べて3つの主要な機能に進化しました。さあ、効果を直接確かめてみま...

JD Digits の AI ロボットが物理産業に貢献し、業界賞を受賞

電気の「ジュージュー」という音が響くコンピューター室では、「スマートガーディアン」コンピューター室検...

Google の AI 覇権を解決する別の方法は?開発プラットフォームのエコシステム包囲

編集者注:この記事はWeChatパブリックアカウント「脑极体」(ID:unity007)からのもので...

GPT のプログラミング バージョンは 30,000 スターに急上昇し、AutoGPT は危険にさらされています。

執筆者 | 王 瑞平AutoGPT に続いて、GPT ファミリーに新しいメンバーである GPT-En...

ChatGPT パラメータが 200 億しかないとは思いませんでした。

ChatGPT の核心的な秘密が Microsoft によってこのように暴露されるとは誰も予想して...