【グリッドサーチ】

グリッドサーチ とは?

💡 全パターンをしらみつぶしに試す、力技だけど確実なチューニング法
📌 このページのポイント
グリッドサーチ:全組み合わせを探索 学習率 木の深さ 0.01 0.1 0.5 1.0 3 5 10 0.78 0.84 0.79 0.65 0.82 0.93 最高スコア 0.88 0.70 0.80 0.89 0.85 0.68
グリッドサーチ:全組み合わせのスコアを比較して最適な設定を選ぶ
ひよこ ひよこ

グリッドサーチって何をしているの?

ペンギン先生 ペンギン先生

機械学習モデルの設定値(ハイパーパラメータ)の最適な組み合わせを探す方法だよ。たとえば「学習率は0.01, 0.1, 1のどれがいい?」「木の深さは3, 5, 10のどれがいい?」という候補を全パターン試すんだ。3つ x 3つなら9通りを全部やってみるということだね。

ひよこ ひよこ

全部試すのって大変じゃないの?

ペンギン先生 ペンギン先生

その通り!パラメータが2種類で各3候補なら9通りだけど、5種類で各5候補なら3,125通りになるよ。さらに交差検証で5分割すると15,625回もモデルを訓練することになる。これが「次元の呪い」と呼ばれる問題で、グリッドサーチの最大の弱点なんだ。

ひよこ ひよこ

もっと効率のいい方法はないの?

ペンギン先生 ペンギン先生

ランダムサーチという方法があるよ。全組み合わせではなくランダムに選んだ組み合わせだけを試すんだ。実は研究で「グリッドサーチと同等の精度をもっと少ない試行回数で達成できる」ことが示されているよ。ベイズ最適化はさらに賢くて、過去の結果から次に試す値を推測してくれるんだ。

ひよこ ひよこ

じゃあグリッドサーチはもう使われないの?

ペンギン先生 ペンギン先生

いやいや、まだまだ現役だよ。パラメータが少ないモデルや、候補値の範囲がある程度絞れている場合は確実性が高くて信頼できるんだ。scikit-learnのGridSearchCVのように簡単に使えるライブラリもあるし、まず粗いグリッドサーチで大まかな範囲を見つけて、そこを細かくサーチする二段階戦略もよく使われるよ。

ひよこ ひよこ

交差検証と組み合わせるのはなぜなの?

ペンギン先生 ペンギン先生

特定のデータ分割にたまたまハマっただけの設定を選んでしまうのを防ぐためだよ。交差検証でデータを何回か分け直して平均スコアを使えば、安定して高性能な組み合わせを選べるんだ。GridSearchCVの「CV」は交差検証(Cross-Validation)の略で、グリッドサーチと交差検証はセットで使うのが基本だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「グリッドサーチ」って出てきたら「ハイパーパラメータの全組み合わせを試して最適値を探す方法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Grid Search」 = 格子探索
💬 パラメータの候補値を格子(グリッド)のように並べて全交点を調べるイメージから名付けられたんだよ
← 用語集にもどる