May the Neural Networks be with you

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

「期待検証性能(expected validation performance)」をもとにしたパラメータ探索の検証

こんにちは@shunk031です。 温泉は素晴らしいですが、ホテルのインターネットが遅いと生きた心地がしないので人生難しいと感じています。

この記事は彌冨研 Advent Calendar 2019 19日目の記事です。

f:id:shunk031:20191219192507p:plain

今回はAllenAiから公開されているハイパーパラメータ探索allentuneに実装されているアルゴリズムであるShow Your Work: Improved Reporting of Experimental Resultsを紹介します。

arxiv.org

背景および導入

自然言語処理の研究において、しばしば提案手法が先行研究よりも優れたテストスコアを出すことによって提案手法の良さを実証するというロジックで論文が書かれます。この論文では、こうしたテストデータに対するスコアだけで手法の良し悪しを判断するのは難しいことを述べています。また、validationデータを用いたモデルの訓練で得られるスコアに焦点を当てて検証を行っています。

本論文では computation budget (例えばハイパーパラメータの探索回数やモデル全体の訓練時間) を関数として、ベストなモデルを発見するに至るまでの expected validation performance (期待検証性能) を示しています。こうした指標に従って筆者らが先行研究の再検証を行った結果、より多くの時間を掛けてモデルを訓練することで、報告されているスコアとは異なるスコアになる場合があることを表しています。

期待検証性能

異なるハイパーパラメータ  h を割り当てられた複数のモデル  \mathcal{M} の集合  \mathcal{H}_{\mathcal{M}} を考えます。 あるハイパーパラメータ h_i で訓練されたモデルを  m_i \in \mathcal{M} とします。 ハイパーパラメータを探索するにはたくさんの計算リソースが必要です。今回はそのリソースを表すような関数を computation budget  \mathcal{B}として定義しておきます。

最適なハイパーパラメータ  h_{i*} が見つかったときに、そのパラメータを設定した  m_{i*} に対してテストデータにおけるスコアを論文に書きます。 ここで、 n 個のハイパーパラメータがある場合のベストなvalidationスコアは以下のように定義できます:

 v_{n}^{*} = {\rm max}_{h \in \{h\_{1}, \cdots, h\_{n} \}} \mathcal{A}(\mathcal{M}, h, \mathcal{D}_T, \mathcal{D}_V)

ここで、 \mathcal{A}はtrainデータ \mathcal{D}_Tで学習させたモデル群 \mathcal{M}とそのハイパーパラメータ群 hにおけるvalidデータ \mathcal{D}_Vに対するvalidationスコアを返す関数です。

上記の式をもとに、異なるハイパーパラメータで何度も繰り返しvalidationスコアを計算したときに、 V_{n}^{*}の分布が得られます。 従って、期待性能  \mathbb{E}[V_{n}^{*}\ | n ]として推定可能になります。

本論文では、実験結果を得るために必要な計算コストを概算する方法を導入します。  n 個のハイパーパラメータにおける期待性能は以下のように定義できます。

  \mathbb{E} [{\rm max}_{h \in \{h\_{1}, \cdots, h\_{n} \}} \mathcal{A}(\mathcal{M}, h, \mathcal{D}_T, \mathcal{D}_V) | n]

この指標を用いることで、あるスコアに到達するまでに必要な計算コストについて知ることができます。 特にvalidationスコアに対する期待性能を 期待検証性能 と呼んでいます。

ハイパーパラメータ探索を行う際の推奨事項

ハイパーパラメータの値を決める手法として、 grid searchuniform sampling が一般的に使われます。また適応的にハイパーパラメータをサンプリングするベイズ最適化も有名です。

こうしたハイパーパラメータ探索を検証するために、実験の再現性を担保するためのチェックリストが示されています。 特に本論文で導入されている 期待値検証性能 を基にしたパラメータ探索の検証を行うために必要な項目もあります。

再現性を担保するためのチェックリスト

研究者が報告する実験結果の再現性の向上のために、以下のようなチェックリストが論文内で提供されています。

  • 実験結果の報告について
    • 計算リソースについて
    • 各アプローチの平均実行時間
    • train/validationの分割の詳細情報
    • 報告された各test結果に対応するvalidationのパフォーマンス
    • 実装の公開リンク
  • ハイパーパラメータサーチについて
    • 各ハイパーパラメータの探索域
    • ベストモデルにおけるハイパーパラメータのセッティング
    • ハイパーパラメータ探索の試行回数
    • ハイパーパラメータのサンプリング手法
    • validationのパフォーマンスの期待値

EMNLP2018におけるチェックリストの集計結果

以下は上記のチェックリストに対する有無のパーセンテージを示しています。

  • 実験結果の報告について
    • 計算リソースについての有無: 18%
    • 各アプローチの平均実行時間の有無: 14%
    • train/validationの分割の詳細情報の有無: 92%
    • 報告された各test結果に対応するvalidationのパフォーマンスの有無: 24%
    • 実装の公開リンクの有無: 30%
  • ハイパーパラメータサーチについて
    • 各ハイパーパラメータの探索域の有無: 8%
    • ベストモデルにおけるハイパーパラメータのセッティングの有無: 74%
    • ハイパーパラメータ探索の試行回数の有無: 10%
    • ハイパーパラメータのサンプリング手法の有無: 14%
    • validationのパフォーマンスの期待値: 10%

特にハイパーパラメータの探索域や試行回数が論文中に記述されない場合が多いようです。最近は実装が公開されている論文も多く見られるように感じますが、それでも30%程度であることも驚きでした。

おわりに

今回、allentuneに実装されているShow Your Work: Improved Reporting of Experimental Resultsで提案されている 期待検証性能 について触れました。計算コストの観点から期待できる性能をもとに検証を行っていました。

ハイパーパラメータ探索の再現性を担保するために、計算リソースの規模やハイパーパラメータ探索関連の設定等のチェックリストが示されていました。 より大規模化するモデルとそのハイパーパラメータ探索をより再現しやすくするために、こうしたプロトコルで適切に評価し、再現できるような世界になるとよいですね。私自身もこうした点に注意したいと思います。