ディープラーニングでハイパーパラメーターを選択するためのガイドライン


38

スタックオートエンコーダーやディープブレイドネットワークなど、ディープアーキテクチャーのハイパーパラメーターを選択する方法に関するガイドラインを提供するのに役立つ論文を探しています。ハイパーパラメーターはたくさんあり、それらの選択方法については非常に混乱しています。また、トレーニングには多くの時間がかかるため、相互検証の使用は選択肢ではありません!


:私はイアン・グッドフェローのディープラーニングブックをお勧めしますdeeplearningbook.org
ヴァディムSmolyakov

回答:


24

基本的に4つの方法があります。

  1. 手動検索:問題を推測するパラメータに関する知識を使用して、結果を観察します。その結果に基づいて、パラメーターを調整します。適切に機能するパラメーターが見つかるまで、または時間切れになるまで、このプロセスを繰り返します。
  2. グリッド検索:問題に関する知識を使用して、ハイパーパラメーターの範囲を特定します。次に、それらの範囲から、通常は均一に分布する複数のポイントを選択します。パラメーターのあらゆる組み合わせを使用してネットワークをトレーニングし、最高のパフォーマンスを発揮する組み合わせを選択します。あるいは、最高のパフォーマンスを発揮するパラメーターを中心に、より狭いドメインで検索を繰り返すことができます。
  3. ランダム検索:グリッド検索のように、問題の知識を使用してハイパーパラメーターの範囲を特定します。ただし、それらの範囲から系統的な方法で値を選択する代わりに、ランダムに選択します。うまく機能するパラメーターが見つかるまで、または学習したものを使用して検索を絞り込むまで、このプロセスを繰り返します。論文の中で、ハイパーパラメータ最適化のためのランダム検索は、これが他のすべての方法と比較されるべきベースライン方法であると提案し、他の方法よりもうまく機能する傾向があることを示しています。
  4. ベイジアン最適化:最近の研究では、特定の実験から得られた情報を使用して次の実験のハイパーパラメーターを調整する方法を決定することにより、これらの他のアプローチの改善に焦点を当てています。この仕事の例は、アダムス等による機械学習アルゴリズムの実用的なベイズ最適化です

14

さまざまな方法があります。グリッド検索やランダム検索などのランダム/無向の検索方法と直接的な方法で大きく分割できます。ただし、幸運な場合を除き、それらはすべてかなりの量のハイパーパラメーター設定をテストする必要があることに注意してください(少なくとも数百はパラメーターの数に依存します)。

直接メソッドのクラスでは、いくつかの異なるアプローチを特定できます。

  • Nelder-MeadシンプレックスやDIRECTなどの派生のないメソッド
  • CMA-ESやパーティクルスウォームなどの進化的方法
  • モデルベースのアプローチ、たとえばEGOおよびシーケンシャルクリギング

ハイパーパラメーターチューニング用のさまざまなソルバーを提供するPythonパッケージであるOptunity(今のところ、EGOとKrigingを除くすべてのもの)を調べてください。最適化は、MATLABおよびRで間もなく利用可能になります。免責事項:私はこのパッケージのメイン開発者です。

私の個人的な経験に基づいて、進化的方法はこれらのタイプの問題に対して非常に強力です。


10

これ以上探さない!Yoshua Bengioは、お気に入りの応用論文の1つを公開しました。これは、すべての新しい機械学習エンジニアがニューラルネットのトレーニングを開始するときに推奨するものです。ハイパーパラメーターターニングに関する彼の視点を得るには、学習率、学習率スケジュール、早期停止、ミニバッチサイズ、隠れ層の数などを含め、セクション3を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.