2017-04-14 15 views
0

勾配降下によってscikit-learnでハイパーパラメータチューニングを実行する方法はありますか?ハイパーパラメータ勾配の計算式は計算が難しいかもしれませんが、ハイパーパラメータ宇宙の2つの近似点を評価することにより、ハイパーパラメータ勾配の数値計算は非常に簡単です。このアプローチの既存の実装はありますか?なぜこのアプローチは良いアイデアですか?sklearn:勾配降下によるハイパーパラメータ調整?

答えて

6

グラデーションの計算は、問題の中では最小です。少なくとも、高度なソフトウェアの場合は、automatic differentiationソフトウェアです。

(もちろん全てsklearn-分類のための一般的な方法でこれを実装することは容易ではありません)そしてアイデアのこの種を使用する人の作品がありますが、彼らは唯一のいくつかの具体的かつ明確に定式化問題のためにこれをしなかった(たとえば、 SVMチューニング)。さらに、多くの仮定があったと考えられます。

なぜこれは良い考えではありませんか

  • ハイパーPARAMの最適化は、一般にある:非平滑
    • ゼロの勾配が有用
    • 一部によって定義される(各ハイパーパラメータではないようにGDは本当に滑らかな機能を好き離散集合(例えば、l1対l2のペナルティの選択)は、非平滑面を導入する)
  • 一般的に、ハイパーパラメータ最適化は非凸形
    • GDの全体の収束理論は根本的な問題が
      • グッドケースに凸であることを、前提としています。あなたは最悪のケース
      • (任意に悪いことができます)いくつかのローカル最小値を得る:GDでも私は、追加その可能性がある

いくつかのローカル最小値に収束していない、あなたの一般的な問題それはだから1を検討することができます最適化問題の最悪の一種である:

  • 非平滑、非凸
  • とも、最も根本的なアルゴリズムは、最終的に点でいくつかの分散とヒューリスティックな近似値であるとして、騒々しい/確率的出力(しばしばPRNGベースのランダム動作)

最後の部分はsklearnで提供する方法は、そのシンプルされている理由は、次のとおりです。

  • ランダム検索:
    • 問題があまりにもあるので、我々は何かをinfereことができない場合ハード、ちょうど多くのインスタンスを試してみて、最高の
  • グリッドサーチ選択:
    • のではなく、ランダムサンプリングの滑らかさのいくつかの種類
      • があると仮定しましょう、私たちは私たちの平滑性の仮定
        • (など他の仮定に関してのサンプル:paramはおそらく大きい - 分析する>np.logspaceもっと大きな数字)

hyperoptspearmintのような利用可能なPythonソフトウェアを含む多くのベイジアンアプローチがありますが、ランダム検索は一般的に最良の方法です(驚くかもしれませんが、上記の問題を強調します)。

+0

非常に良い答え。あなたは、あなたが行った発言をさらに説明する参考資料をお勧めしますか? – Archie

関連する問題