【らんだむさーち】
ランダムサーチ とは?
最終更新:
💡 全部試すより、サイコロを振った方が早いことがある
ハイパーパラメータ最適化の手法の一つ。指定した候補や確率分布から組み合わせを無作為に選び、決めた回数だけ評価して、その中で良い結果を探す。
📌 このページのポイント
- 指定した候補や分布から組み合わせを選び、試行回数を決めて探索する
- 影響の大きいパラメータが少ない場合、格子より多くの値を試せることがある
- 各試行を独立に選べるため、実装や並列化がしやすい
- 結果は探索範囲・分布・評価条件・試行数に依存し、最良値の発見を保証しない
ランダムサーチって、ただの当てずっぽうなの?
候補や確率分布、評価指標、試行回数を先に決めてから無作為に選ぶよ。決めた範囲の外は探索できないし、均等に選ぶとは限らない。良い値を見つける保証はないけれど、探索手法を比べる基準にもなるんだ。
グリッドサーチと何が違うの?
グリッドは各パラメータの候補を組み合わせるので、3種類ずつなら3×3で9回だよ。ランダムでは同じ9回でも、連続した軸の値をそれぞれ違う点で試せることがある。影響の大きい軸が少ないと有利になる場合があるけれど、探索範囲そのものが自動で広がるわけではないね。
乱数シードを固定したら結果も同じになる?
RandomizedSearchCVのrandom_stateに整数を指定すると、候補の選択を再現しやすくなるよ。ただし学習器の乱数やデータ分割なども結果に影響する。探索のシードだけで実験全体の再現性が確保できるとは限らないんだ。
ベイズ最適化があるのに、なぜ使うの?
試行を独立に選べて、実装や並列実行がしやすいからだよ。過去の結果を使って次の候補を選ぶ方法と比べる基準にもなる。どちらが良いかは問題や予算、分布の設定によるので、同じ評価条件で比べることが大切だね。
まとめ:ざっくりこれだけ覚えればOK!
「ランダムサーチ」って出てきたら「ランダムにハイパーパラメータを試して良い組み合わせを探す手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Random Search」 = ランダム探索
💬 Random(無作為)にSearch(探索)するという意味。2012年のBergstraとBengioの論文では、ハイパーパラメータ探索における効率や比較の基準としての価値を示したよ