機械学習論文を再現する際に注意すべき5つの問題

機械学習論文を再現する際に注意すべき5つの問題

私が初めて機械学習に興味を持ったとき、論文を読んだり、それを実装したりすることに多くの時間を費やしました。もちろん、私は天才ではありません。これを実装するには、git clone を実行して論文の著者のコードを実行する必要があります。興味のある概念については、論文やプロジェクトをよりよく理解するために、手動でコードを入力して注釈を付けることもあります。

[[350120]]

これはイライラする学習方法です。論文を再現しようとするプロセスは、おおよそ次のようになります。

  • 新しい SOTA を達成した論文はニュース メディアで注目を集めます。
  • 読者は論文の内容を詳しく読んだり、ざっと目を通したりします。
  • 読者は論文の実験結果に感銘を受け、それを再現することに興味を持っています。

次のステップは、プロジェクト コードを必死に検索し、作成者が使用したデータセットでコードを実行してみることです。この時点で、プロジェクトに実行手順 (README.md)、コード、パラメーター、データセット、データセット パス、ソフトウェア環境、必要な依存関係、ハードウェア条件などの要素が含まれていることを確認する必要があります。これらを理解することによってのみ、論文の SOTA 結果を正常に再現することができます。

このプロセス中に、多くの一般的な問題が発生する可能性があります (以下を参照)。問題に遭遇する前に、それについて知っておくことは役に立ちます。結局、誰も何も解決せずに終わるのは嫌ですから。

機械学習論文を再現する際によくある問題

複製プロセス中に発生する一般的な問題は次のとおりです。

  • README ファイルが不完全または欠落しています。
  • 未定義の依存関係、バグのあるコード、事前トレーニング済みモデルの欠如。
  • 非公開パラメータ。
  • プライベートデータセットまたは前処理手順の欠落。
  • GPU リソースに対する需要は非現実的です。

1. READMEファイルが不完全または欠落している

論文がオープンソース コードとともに公開されている場合、プロジェクトの再現を開始するために使用する必要があるドキュメントの 1 つが README です。優れた README ファイルには通常、依存関係のリスト、トレーニング スクリプト、評価スクリプト、事前トレーニング済みモデル、およびスクリプトの実行結果というコンポーネントが含まれます。

実際、これらの内容は、Papers with Code が公開した「機械学習コード完全性セルフチェックリスト」(NeurIPS 2020 コード提出プロセスの一部となっている)にすでに記載されています。このリストは、マギル大学の准教授であり、モントリオールにあるFacebookのFAIRラボの責任者であるジョエル・ピノー氏からヒントを得たものだ。

Papers with Code が提供するサンプル README については、以下を参照してください。

https://github.com/paperswithcode/releasing-research-code

README ファイルが不完全な場合、コードを実行する際のスタートとしては不適切です。

注意すべき兆候の 1 つは、サンプルノートブックまたはサンプルコードです。ノートブックの目的は、コードの使用方法を示すことです。理想的には、「すべて実行」をクリックする以外の調整を行わずにノートブックを実行できるはずです。コマンドラインにパラメータとデータパスを事前に入力することで、同じ効果を実現できます。

また、完全な README ファイルには、作者の連絡先情報や、モデル アーキテクチャやデータ変換プロセスを示す GIF 画像など、重要ではないが役に立つ情報もいくつか含まれています。コード ベースが GitHub でホストされている場合は、問題領域の問題に積極的に対応されているかどうか、およびプル リクエストが定期的にレビューされているかどうかを確認します。これらのアイテムは、ライブラリが慎重に維持管理されていることを証明し、その後の複製作業が効果的にサポートされることを保証します。もちろん例外もありますが、上記の項目が欠けている状況については慎重に検討してください。

Joelle Pineau の機械学習再現性チェックリスト

(画像出典: https://www.cs.mcgill.ca/~jpineau/ReproducibilityChecklist.pdf)

2. 未定義の依存関係、バグのあるコード、事前トレーニング済みモデルの欠如

サンプルノートブックに満足したら、異なるパラメータを使用して独自のデータセットでモデルを試してみるとよいでしょう。この段階では、サンプルノートブックで使用されていない関数を呼び出したり、事前トレーニング済みのモデルを独自のデータセットで試したりすると、問題が発生する可能性があります。

たとえば、requirements.txt が欠落していたり​​、パッケージのバージョンが固定されていない (例: tensorflow==2.2) ことに気付くかもしれません。作成者がバージョンを指定しなかったというだけの理由で、TensorFlow のバージョンが 2.2 ではなく 1.15 であることがわかったときの衝撃を想像してみてください。

依存関係をチェックして、事前トレーニング済みモデルが見つからないことに気づいたとします。この場合、コードをデバッグするか、バグレポートを提出するか、コードを無視することができます。最初のオプションでは、何時間も費やすことになる可能性があるので注意してください。もちろん、簡単に修正できるバグもありますので、修正できる場合はプル リクエストを送信します。しかし、私たちはいつもそれほど幸運なわけではなく、簡単に手の届くところにあるこれらの果物は、時には摘むのが難しいこともあります。

事前トレーニング済みのモデルが不足していることは危険信号ですが、実際には珍しいことではありません。結局のところ、論文の著者にはモデルを公開する義務はありません。次に、もう 1 つの選択肢は、再現用に公開されているパラメータを使用してモデルをトレーニングすることです。しかし、パラメータは必ずしも公開されているわけではありません...

3. 非公開パラメータ

モデルによっては、SOTA 結果を達成するためにハイパーパラメータが非常に重要です。下の図は、異なるパラメータによって異なる f1 スコア (0.5 ~ 1.0 の範囲) が生成される様子を示しています。モデル内のパラメータは通常、学習率、埋め込みサイズ、レイヤー数、ドロップアウトの量、バッチ サイズ、トレーニング エポック数などです。

したがって、著者が使用した正確なパラメータを提供していない場合は、SOTA の結果を再現するためにすべての実験を自分で実行する必要がある場合があります。

ちなみに、Facebook の HiPlot は、さまざまなパラメータの組み合わせを使用した場合のモデル結果を視覚化するのに役立つ優れたツールです。

HiPlot アドレス: https://github.com/facebookresearch/hiplot

4. プライベートデータセットまたは前処理手順の欠落

多くの点で、世界中の研究者によって提供されたオープンソースのデータセットを利用できることは幸運です。実際のところ、データの収集は簡単な作業ではなく、そのデータをクリーンアップして研究用にフォーマットするのはさらに面倒です。帯域幅とストレージのコストが非常に高いため、これらのオープンソース データセットを無料でホストしてくださった学術機関と Kaggle に感謝します。

しかし、プライベートデータセットを使用するのは簡単ではありません。データセットには、ImageNet などの著作権で保護された情報が含まれている場合があります。通常は申請書に記入する必要があり、著作権所有者が承認するかどうかを決定します。

このプロセスは面倒な場合があり、必要なデータセットが利用できない場合は、アクションを申請する前に慎重に検討してください。または、Academic Torrents などの他のソースからデータを検索またはダウンロードすることもできます。

https://academictorrents.com/ をご覧ください。

5. 非現実的なGPUリソ​​ース要件

最近の傾向として、モデルが大きくなるほどパフォーマンスも向上します。いくつかの論文では、SOTA の結果を達成するためにデータセンター全体の計算能力が使用されており、これらの論文を再現するのは当然困難です。たとえば、2019 年 10 月に Google は「統合テキストからテキストへのトランスフォーマーによる転移学習の限界の探究」というタイトルの論文を公開し、パラメータを 110 億に拡張することでトランスフォーマー モデル アーキテクチャの限界を探ろうとしました。しかし、数か月後、Microsoft は 170 億のパラメータを持つ Turning-NLG を作成し、すぐに OpenAI は 1750 億のパラメータを持つ事前トレーニング済み言語モデル GPT-3 をリリースしました...

数十億のパラメータを持つモデルをトレーニングするには、分散トレーニング方法と何らかの形式の高性能コンピューティング (HPC) または GPU クラスターを使用する必要があります。 110 億および 170 億のパラメータを持つモデルにはそれぞれ約 44 GB および 68 GB のメモリが必要なので、これらのモデルは単一の GPU のみを使用してトレーニングすることはできません。

つまり、論文で使用されている大規模なモデルが個人の能力を超えているかどうかを早い段階で調べるということです。

Microsoft トレーニング Turning-NLG。

要約する

論文のコードを再現するのは簡単ではありませんが、SOTA モデルの標準化を試みるプロジェクトが増えています。私の個人的なお気に入りは、研究者や開発者にとって参入障壁が十分に低い HuggingFace のトランスフォーマーです。さらに、TensorFlow の Model Garden と PyTorch の Model Zoo も急速に発展しています (それぞれ TensorFlow チームと PyTorch チームによって構築された事前トレーニング済みモデルを含む)。

これらのライブラリは、事前トレーニング済みモデルの使用を標準化し、モデルの貢献と配布に適した条件を提供することを目的としています。コードの品質が保証されており、ドキュメントも充実しています。コミュニティがこれらのライブラリの恩恵を受け、SOTA の結果を再現し、SOTA モデルを簡単に使用できるようになることを願っています。

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  新しいエッジAI手法であるTinyMLは、超低消費電力でエッジデバイス上で機械学習を実行します。

>>:  埋め込みアルゴリズム空間ベクトル角度式とその応用

ブログ    
ブログ    

推薦する

マスク着用で顔認証での支払いは難しいですが、手渡しでの支払いは可能ですか?

人工知能技術が私たちの生活にますます統合されるにつれて、一般の人々のプライバシーに対する懸念も高まっ...

...

AIが狂って縁石にぶつかる! Pony.aiの完全自動運転の路上テストは「失敗」に終わった

近年、中国の「新車製造勢力」のインテリジェント運転分野における宣伝・マーケティング活動とビジネス成果...

人間が理解できる音声を合成するために、機械はどのような「ディープラーニング」を行っているのでしょうか?

ディープラーニングは2006年に登場して以来、近年急速に発展し、学術研究と企業アプリケーションの両方...

CNNが画像の特徴を自動的に抽出できる理由

1. はじめに従来の機械学習のシナリオのほとんどでは、まず特徴エンジニアリングなどの方法を通じて特徴...

Baidu AIの新インフラが2020 CIFTISでデビュー、最新の人工知能成果をパノラマ展示

新たな科学技術革命と産業変革が起こりつつあり、デジタル技術とインテリジェント技術は我が国のサービス産...

ストレージ自動化、予測分析、人工知能について知っておくべき6つのこと

現在、人工知能や予測分析などのテクノロジーは、多くのストレージ製品に組み込まれています。これらのテク...

ローコード プラットフォームに関する不完全な推奨事項!

ソフトウェア開発者向けのローコード機能それでは、ソフトウェア開発者に機械学習機能を提供するローコード...

マテリアル界のImageNet、大規模6次元マテリアル実写データベースOpenSVBRDFを公開

計算グラフィックス分野では、マテリアルの外観は、実際のオブジェクトと光の間の複雑な物理的相互作用を表...

ビッグデータアルゴリズムにもっと積極的な役割を担わせる

近年、ビッグデータコンピューティングの継続的な発展に伴い、ユーザーを中毒に誘導したり、悪いアイデアを...

TensorFlow 2.8.0が正式にリリースされ、多くのバグが修正され、50以上の脆弱性パッチがリリースされました

最近、TensorFlow は公式バージョン 2.8.0 をリリースしました。バージョン 2.7 の...

なぜモノのインターネット、ビッグデータ、人工知能は常にグループで表示されるのでしょうか?

[[274332]]私のいとこは 2000 年代生まれで、大学に入学したばかりの才能あふれる若者で...

あなたの頭上に「ロボット」がやって来ます!起業家の知恵:リアルタイムで位置を特定し、自動的に警報を鳴らすスマートヘルメットの開発

[[317160]]建設作業中には、火災、電気、機械など、多くの潜在的な安全上の危険が存在します。安...

「地表」から「宇宙」まで、探査ロボットが未知の領域の秘密を解き明かす

ロボットは現代社会で生み出された新しい種です。科学技術の進歩により、ロボットの開発はもはや人間の能力...

...