【らんだむさーち】

ランダムサーチ とは?

💡 全部試すより、サイコロを振った方が早いことがある
📌 このページのポイント
グリッドサーチ vs ランダムサーチ グリッドサーチ 全組み合わせを均等に試す 重要でないパラメータも同じ回数試す ランダムサーチ ランダムだから重要な軸を広くカバー 試行数 = 4×4 = 16、探索範囲は限定的 試行数 = 16、より広い範囲を探索
グリッドサーチとランダムサーチの探索パターン比較
ひよこ ひよこ

ランダムサーチって、ただの当てずっぽうなの?

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

一見そう見えるけど、理論的な根拠があるんだよ。ハイパーパラメータの中には精度への影響が大きいものと小さいものがあって、ランダムに選ぶと重要な軸を高確率でカバーできるんだ。

ひよこ ひよこ

グリッドサーチと何が違うの?

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

グリッドサーチはすべての組み合わせを格子状に試すんだよ。パラメータが2つなら3×3=9回みたいに。でも重要じゃないパラメータにも同じだけ試行回数を使ってしまうから、同じ予算ならランダムサーチの方が重要なパラメータを多くの値で試せるんだ。

ひよこ ひよこ

ランダムだから毎回結果が変わるんだね!

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

そうだよ。だから乱数シードを固定して再現性を確保するのが大切だね。scikit-learnのRandomizedSearchCVでは`random_state`を指定するのがベストプラクティスだよ。

ひよこ ひよこ

ベイズ最適化の方が賢そうなのに、なんでランダムサーチも使われるの?

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

実装が圧倒的にシンプルで並列実行しやすいのが強みだよ。ベイズ最適化は次に試す点を逐次的に決めるからスケールしにくい場面もあるんだ。まず素早く試したいときや、次元数が多いときにはランダムサーチが現実的な選択になるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ランダムサーチ」って出てきたら「ランダムにハイパーパラメータを試して良い組み合わせを探す手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Random Search」 = ランダム探索
💬 「ランダム(無作為)」に探索空間を「サーチ(探索)」するシンプルな名前だよ。2012年のBergstraらの論文で、グリッドサーチより効率的だと示されて注目を集めたんだ
← 用語集にもどる