HOME/📦 INBOX/

【🐍 Python】 ハイパーパラメーターチューニング

Article Outline
TOC
Collection Outline

|| ハイパーパラメーター

|| 手法

| 1. Grid Serach(グリッドサーチ)

与えられたハイパーパラメータの候補の値の全パターンのモデル構築を行う手法。

メリット デメリット e.g.

調整する値の「あたり」が付いている場合は○

調整する値の数が少ない場合は○

モデル訓練回数が増えるので時間が掛かる...

計算コストが非常に高い...

設定Aと設定Bのハイパーパラメータを調整する場合、

設定Aには「1、3、5」の値、設定Bには「True、False」の値を候補として指定。全6(=3×2)回のモデル訓練が異なる設定の値で実行される。

| 2. Random Search(ランダムサーチ)

候補の値をランダムに組み合わせたモデル訓練を行いハイパーパラメータを検証する手法。

メリット デメリット e.g.
調整する値が多くても対応可 ランダム検証なので「運任せ」の要素あり 候補Aには10個の値、候補Bには5個、候補Cは30個の値があるとします。

グリッドサーチでは全組み合わせ1500回(=10×5×30)のモデル訓練を行います。(仮に1回の訓練で30分要するとした場合31日と現実的でないことに...)

そこで、ランダムサーチが役に立ちます。ランダムサーチで異なる組み合わせのハイパーパラメータを用いてモデル訓練を行い検証。

| 3. Bayesian Optimization(ベイズ最適化)

ベイズ最適化をざっくりと解説すると「前回の結果を基に次に調べる値を決めていく」手法。 (不確かさを利用して次に探索を行うべき値を探していく最適化アルゴリズムの一種。 目的関数(Acquisition Function)を推定する代理モデル(Surrogate Model)にはガウス過程が用いられる)

2つの戦略を使って最適化を順次的実行

  • 「Exploration(探索)」
  • 「Exploitation(活用)」
メリット デメリット e.g.
よく行く居酒屋で飲み物を選ぶ時を想像してみてください。

先週来た時は泡盛を頼み、とても美味しいのを覚えています。今回も似たような泡盛を頼めば恐らく前回と同様に楽しめることが容易に想像できます。これがExploitation(活用)

しかしメニューには日本酒や焼酎など、今まで頼んだことが無い飲み物もたくさんあります。もしかすると泡盛よりも自分好みのお酒があるかもしれません。そこで今回は日本酒を頼んでみることにします。これがExploration(探索)

Cf. ハイパーパラメータとは?チューニングの手法を徹底解説(XGBoost編) - codExa

|| 最新手法

| 4. オプツナ