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

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

[[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の未来: データだけでは不十分

特定の問題を解決するための最適な技術としての人工知能 (AI) に対する熱意は否定できず、注目に値し...

...

1分で10日間の世界の天気を予測します! Google DeepMindの新しいAI天気予報がScienceに掲載され、業界のSOTAを圧倒

1分以内に、10日間の高精度な世界天気予報が提供されます。 ChatGPT に続いて、別の AI モ...

少数ショット学習(1) — 機械学習におけるタスク最適化空間

[[401868]]今日のディープラーニングの成功には大量のデータが必要であり、これは不可欠な前提条...

会話型AIの本当の限界は人間の忍耐力だ

私たちは多くの驚くべき進歩を目撃しました。最新の AI 技術は、数千億の計算能力を瞬時に活用すること...

AI一般技術の探求 WOT2019 グローバル人工知能技術サミットが継続

[51CTO.comより引用] 6月21日、WOT2019グローバルテクノロジーサミットとグローバル...

AI | 人工知能プロジェクトを成功させるための 8 つの重要な役割

企業が AI プロジェクトをさらに展開するにつれて、特定の役割がビジネスの成功に不可欠であることがわ...

...

詳細レポート: ビッグモデルが AI を全面的に加速させます!黄金の10年が始まる

過去70年間に「3つの上昇と2つの下降」を経験した後、基盤となるチップ、コンピューティングパワー、デ...

データサイエンスに必須の Python パッケージ 10 個

[51CTO.com クイック翻訳] データサイエンスに対する人々の関心は過去 5 年間で大幅に高ま...

デジタルツインブレイン:生物と人工知能の架け橋

人間の脳の構造にヒントを得た神経科学と AI 技術の最近の一連の進歩により、知性の謎を解き明かす新た...

世界では毎年24の言語が消滅している。AIは絶滅危惧言語の新たな救世主となった

昨年、国連は2019年を「国際先住民族言語年」と宣言し、今、このお祭りがますます近づいてきています。...

AIが皮膚がんの診断で17カ国の皮膚科医58人に勝利

現代医学の発展は、病気の診断と治療のための新しいツール、テクノロジー、方法を開発してきた医師と科学者...

6軸産業用ロボットの制御方法と特性

[[187760]]産業用ロボットは、産業分野における多関節マニピュレータまたは多自由度機械装置です...