May the Neural Networks be with you

ニューラルネットワークと共にあらんことを

コンピュータサイエンスのトップカンファレンスが示す再現性チェックリスト

こんにちは。@shunk031 です。機械学習モデルの実験をする際の乱数シード値は 19950815 を使っています。

この記事は 法政大応情 Advent Calendar 2020 10 日目の記事です。

f:id:shunk031:20201210200333j:plain
再現性を担保する上で多様な視点のチェック項目が必要です*1

研究において、再現性は非常に重要なポイントの 1 つです。 特に最近は機械学習や深層学習の研究における再現性について議論されております。 こうした研究において再現性を高める上で、当たり前ですが次の 2 点が重要です:

  • 再現可能な 実装 の公開
  • 再現可能な 論文 の公開

再現可能な実装の公開 については、先日私が寄稿した pyenv と poetry による再現可能な実験環境構築 が助けになるかもしれません。

data.gunosy.io

本記事では 再現可能な論文の公開 に焦点を当てます。 近年のコンピュータサイエンス分野におけるトップカンファレンスでは、著者に対して 再現性チェックリスト が示され、投稿時にこれらのチェックリストに従った論文であるかの確認があります。 こうした再現性チェックリストについての論文が arXiv に公開されていたりと、今後も注目される点だと感じております *2。 本記事の目的は、複数のトップカンファレンスから各カンファレンスがどのような点の再現性を求めているかを把握し、今後の執筆に役立てることです。

トップカンファレンスが要求する再現性

今回、独断と偏見で、人工知能分野 , 機械学習分野 , コンピュータビジョン分野 , 自然言語処理分野 から再現性に言及している以下のカンファレンスを対象としました:

各カンファレンスが示す再現性チェックリスト

以下は各カンファレンスが示す再現性の確認項目やチェックリストです:

上記で示されている再現性確認項目の中で、 Joelle Pineau 氏の The Machine Learning Reproducibility Checklist (2020/12/10 現在 v2.0) が複数登場しています。 次にこの再現性チェックリストについて詳しく見ます。

The Machine Learning Reproducibility Checklist

2020/12/10 現在の The Machine Learning Reproducibility Checklist の中身をざっくり日本語訳すると以下のとおりです。 なおこのチェックリストに加えて NAACL'21 で追加された項目がありました:

  • ✔ 論文中に提示されているモデルやアルゴリズムについて
    • 数式を用いたモデルやアルゴリズムの明確な説明
    • そのほか用いた定理等の明確な説明
    • アルゴリズムの複雑性 e.g., 時間複雑度、空間複雑度 etc
  • ✔ 理論的な主張について
    • 主張の明確さ
    • 完全な証明
  • ✔ 論文中で使われたすべてのデータセットについて
    • 統計量 e.g., サンプル数
    • データセットを train /validation/test 分割する際の詳細
    • データの前処理や予め取り除いたデータについての詳細
    • 使ったデータセットやシミュレーション環境をダウンロード可能なリンクの提示
    • 新たなデータを収集した場合、どのように収集したか e.g., アノテーターへの指示やクオリティを制御する方法 etc を明示
    • 言語の種類 e.g., 英語や日本語 etc. (NAACL'21)
  • ✔ 提案法の評価の際に実装したコードについて
    • 依存コード・アプリケーションの明示
    • 学習用コード
    • 評価用コード
    • (事前) 学習済みモデル
    • 以下の情報が含まれている README ファイル
      • 結果の表
      • コードの実行方法
  • ✔ 論文中で報告されているすべての結果について
    • ハイパーパラメータについての詳細
      • ハイパーパラメータの範囲
      • どのようにハイパーパラメータの値を選択したか e.g., manual tuning, uniform sampling, etc.
      • どのようにハイパーパラメータを評価したか e.g., accuracy
      • 報告されている結果を再現する上で必要なすべてのハイパーパラメータの設定
      • ハイパーパラメータチューニングの結果のサマリ e.g., expected validation performance *3*4, mean, variance, error bar, etc.
    • 学習と評価はそれぞれ何回行われたか
    • 結果を報告するために使用された指標または統計量の明確な定義
    • 報告されている結果の平均と分散
    • 平均実行時間
    • 結果を得るための計算機環境
    • モデルのパラメータ数について (NAACL'21)
    • 対応する test に対応する validation スコア (NAACL'21)

提案モデル・アルゴリズム評価データ実験コード評価方法 の観点から簡潔な指示が与えられている事がわかりました。

ML Code Completeness Checklist

実験を再現するコードについて、論文実装がまとめられている paper with code と The Machine Learning Reproducibility Checklist を公開している Joelle Pineau 氏から機械学習コードの再現性チェックリストも公開されています。

ML Code Completeness Checklist では公開されている著者実装レポジトリに対して、以下の視点からチェックします:

  • ✔ Dependencies
    • リポジトリに依存関係に関する情報や環境の設定方法の指示があるか?
  • ✔ Training scripts
    • リポジトリに論文で説明されているモデルをトレーニング / フィットさせる方法が含まれているか?
  • ✔ Evaluation scripts
    • リポジトリには、訓練されたモデルの性能を計算したり、モデルの実験を実行するためのスクリプトが含まれているか?
  • ✔ Pretrained models
    • リポジトリは予習済みモデルの重みへの無料アクセスを提供しているか?
  • ✔ Results

リポジトリは、0(だめ)から 5(いいね)のスコアを付けることができます。 各基準の詳細については以下のレポジトリで公開されており、1000 を超えるスターを得ています。 github.com

ML Code Completeness Checklist の詳細は以下のブログ記事から読むことが可能です。 medium.com

まとめ

本記事では 再現可能な論文の公開に焦点を当て、 近年のコンピュータサイエンス分野におけるトップカンファレンスに投稿する際に著者に対して示されている再現性チェックリストの内容を大まかに把握しました。 また成果を公開する際にチェックするとよいリストについても言及し、より再現性担保する方法を確認しました。 これらのチェックリストを予め把握しておくことで、実験や執筆時に注意しながら研究を進めることができ、結果として良い研究ができるのではないでしょうか。

*1:Background image from https://ai.facebook.com/blog/how-the-ai-community-can-get-serious-about-reproducibility/

*2:[2003.12206] Improving Reproducibility in Machine Learning Research (A Report from the NeurIPS 2019 Reproducibility Program) https://arxiv.org/abs/2003.12206

*3:[1909.03004] Show Your Work: Improved Reporting of Experimental Results https://arxiv.org/abs/1909.03004

*4:http://shunk031.hatenablog.com/entry/allentune-algorithm