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

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

[[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つのロボット製品をリリース

推薦する

景勝地ロープウェイのスペアパーツに基づくドローン検査市場の簡単な分析

最近、中秋節と国慶節の連休が近づき、わが国の多くの観光地では、今年、省をまたぐ団体旅行が再開され、観...

上級幹部との対話で洞察を得る - IBM アジア太平洋地域社長ブレンダ・ハーベイ氏による変革、クラウド コンピューティング、自動化に関する講演

調査データによると、過去18か月間、企業はさまざまな緊急事態に対応するために技術革新のペースを加速さ...

「データオープン化」の道で、百度アポロはウェイモをリード

6月17日、世界最大のコンピュータービジョンカンファレンスであるCVPRの自動運転セミナーにおいて、...

...

「検索」は終わり、「レコメンド」も終わるのか?

ザッカーバーグ氏は最近、苦境に立たされている。 Facebookが名前を「Meta」に変更して以来、...

ChatGPT 以外にも驚くような 6 つの AI ツール

今日の急速に変化する世界では、私たちが日常生活で処理しなければならないデータとタスクの量は膨大です。...

2020 年のディープラーニングに最適な GPU の概要。どれが最適かを確認してください。

ビッグデータダイジェスト制作出典: lambdalabs編纂者:張秋月ディープラーニング モデルが強...

このCVデータセットジェネレーターは人気があり、DeepMindなどが作成した13種類のCVタスクをサポートしています。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...

財務報告分析:マイクロソフトの生成AIへの賭けは成功したが、グーグルは依然として苦戦中

マイクロソフトとグーグルが財務報告を発表したが、一方は喜び、他方は悲しんだ。 AIへの大胆な賭けのお...

...

...

...