1. 定義と概要
ランダムサーチとは、あらかじめ定めたハイパーパラメータの探索範囲から値を無作為に選び、指定した試行回数だけモデルの学習と評価を繰り返すハイパーパラメータ探索手法です。グリッドサーチ(候補値を格子状に並べて全組み合わせを総当たりで試す探索方法)のように全組み合わせを網羅するのではなく、範囲内から無作為に選んだ候補点だけを試す点が特徴です。試行回数をあらかじめ分析者が指定できるため、計算にかかる時間の見積もりや打ち切りがしやすくなります。
ハイパーパラメータの探索は、従来グリッドサーチが基本でした。総当たりの仕組み自体は姉妹記事「グリッドサーチ」で扱います。しかし調整するハイパーパラメータの数が増えると、組み合わせ爆発(調整する項目や候補値の数が増えるほど、試すべき組み合わせの数が急激に増えてしまう現象)と呼ばれる状況が起こりやすくなり、現実的な時間で探索が終わらない場面も出てきます。
この課題に対し、2012年に発表された研究(Bergstra & Bengio、2012年)では、多くの機械学習の課題において性能に大きく効くハイパーパラメータと、ほとんど効かないハイパーパラメータが混在していることが示されました。そのうえで、値を無作為に選ぶランダムサーチのほうが、同じ試行回数でグリッドサーチと同等かそれ以上の性能を得やすいことも明らかにされています。この知見が示されて以降、ランダムサーチは計算資源や時間が限られる場面での選択肢の一つとして扱われています。
2. 試験対策ポイント
G検定における重要な論点は、ランダムサーチが同じ試行回数でもグリッドサーチより効率的になりやすい理由です。多くの機械学習の課題では、汎化性能(学習に使っていない未知のデータに対して、どれだけ正しく予測できるかという能力)に大きく効くハイパーパラメータと、ほとんど効かないハイパーパラメータが混在しています。グリッドサーチは各軸の値をあらかじめ少数の格子点に固定して全組み合わせを試すため、性能にほとんど効かないハイパーパラメータにも、効くハイパーパラメータと同じ回数の試行を割いてしまいます。
この理由は、1つの軸に射影して考えるとイメージしやすくなります。格子状に候補点を置く場合、たとえば学習率の軸に着目すると、他の軸の値をどう変えても、その軸上に登場する値の種類は格子の分割数と同じ少数のまま重複します。一方、ランダムに点を散らす場合は、同じ試行回数でもその軸に射影したときの値がほぼ毎回異なります。そのため、性能に効くハイパーパラメータについては、実質的により多くの異なる値を試すことになります。これが、ランダムサーチが効率的になりやすい理由として説明されます。
運用面では、試行回数をあらかじめ指定できるため、計算時間やコストの見積もりや打ち切りがしやすいという利点があります。一方で、候補を網羅的に試すわけではないため、最適な組み合わせを取りこぼす可能性は残り、得られる性能は確率的な要素に左右されます。
実装の名称としては、Pythonの機械学習ライブラリ「scikit-learn」に用意されているRandomizedSearchCV(ランダムサーチの実装機能)のような機能が知られています。これはグリッドサーチやベイズ最適化(過去に試した結果をもとに、次に試す値を確率モデルで予測しながら効率よく選んでいく探索方法)と並ぶ探索手法の名称セットとして教材で扱われます。各手法の詳しい仕組みは姉妹記事に譲ります。
3. 関連概念との比較・相違点
グリッドサーチとの最大の違いは、候補の与え方と試行回数の指定可否にあります。グリッドサーチは候補値を格子状に並べた全組み合わせを総当たりで試すのに対し、ランダムサーチは探索範囲から無作為に選んだ値だけを試します。
また、グリッドサーチは格子点の数だけ試行回数が自動的に決まるのに対し、ランダムサーチは試行回数をあらかじめ指定できるため、計算時間の管理という点でも扱いやすさが異なります。総当たりの具体的な仕組みは姉妹記事「グリッドサーチ」に譲ります。
ベイズ最適化との最大の違いは、過去の試行結果を次の候補選びに活かすかどうかにあります。ランダムサーチは各試行が独立しており、それまでの評価結果を次に試す値の選択には使いません。これに対しベイズ最適化は、過去の評価結果を確率モデルで学習し、次に試すべき値を予測しながら絞り込んでいきます。
効率よく候補を絞り込める一方、逐次的な計算が必要になる点が、ランダムサーチとの違いとして挙げられます。ベイズ最適化の仕組み自体は姉妹記事「ベイズ最適化」に譲ります。
3つの探索手法の関係を、候補の選び方という軸で並べると位置づけがはっきりします。
| 手法 | 候補の選び方 | 主な特徴 |
|---|---|---|
| グリッドサーチ | 候補値を格子状に並べ、全組み合わせを総当たりで試す | 格子点の数だけ試行回数が自動的に決まる |
| ランダムサーチ | 探索範囲から値を無作為に選んで試す | 試行回数をあらかじめ指定でき、各試行は独立している |
| ベイズ最適化 | 過去の評価結果を確率モデルで学習し、次に試す値を予測する | 効率よく候補を絞り込める一方、逐次的な計算が必要になる |
無作為に選ぶという単純さの裏返しとして、探索の規模を試行回数で直接管理できる点がランダムサーチの持ち味にあたります。
4. ビジネス・実務での活用シナリオ
製造業の画像認識モデル開発では、短納期のプロトタイピングで精度の見積もりを急ぐ場面が少なくありません。こうした場面では、限られた計算時間の中で試行回数をあらかじめ区切ってランダムサーチを実行し、有望なハイパーパラメータの範囲を絞り込んでから本格的なチューニングへ進むという進め方が取られます。試行回数を先に決められるため、開発スケジュールに合わせて探索の規模を調整できる点が実務上の強みになります。
小売・マーケティングの需要予測では、勾配ブースティング系のモデルが使われる場面が多く、調整するハイパーパラメータの数が多いために組み合わせの数が膨らみやすいという事情があります。全組み合わせの総当たりが現実的な時間で終わらないケースでは、ランダムサーチを用いることで、探索範囲を効率的にカバーしながら精度の高い設定を見つけられます。
クラウド環境でのAI開発では、機械学習ライブラリ「scikit-learn」に用意されたRandomizedSearchCVのような機能が使われます。クラウドの計算リソースの利用時間に応じて試行回数を調整する運用が広がっています。試行回数を事前に指定できる性質は、従量課金のクラウドリソースにおいて、探索にかかるコストを管理する土台になります。
5. 要点まとめ
- ランダムサーチは、あらかじめ定めた探索範囲からハイパーパラメータの値を無作為に選び、指定した試行回数だけ探索する手法です。
- 多くの課題では性能に効くハイパーパラメータとほとんど効かないハイパーパラメータが混在します(Bergstra & Bengio、2012年)。この研究が示すとおり、グリッドサーチは効かないハイパーパラメータにも試行を均等に割くのに対し、ランダムサーチは同じ試行回数でも効くハイパーパラメータについてより多くの異なる値を試せます。
- 過去の試行結果を次の候補選びに使わない点でベイズ最適化と異なり、試行回数をあらかじめ指定できる点は運用上のメリットとなります。
6. 確認問題
問1ランダムサーチは、あらかじめ指定した探索範囲からハイパーパラメータの値を無作為に選び、指定した試行回数だけ探索を行う手法である。
解答・解説をみる
○ 正しい
グリッドサーチが格子状の全組み合わせを総当たりするのに対し、ランダムサーチは探索範囲から無作為に値を選び、指定した試行回数だけ探索します。定義どおりの内容です。
問2ランダムサーチが同じ試行回数でグリッドサーチより効率的になりやすいのは、影響が小さいハイパーパラメータにも均等に試行を割くグリッドサーチに対し、ランダムサーチは影響が大きいハイパーパラメータでより多くの異なる値を試せるためである。
解答・解説をみる
○ 正しい
Bergstra & Bengio、2012年、JMLRに掲載の知見です。1つの軸に射影すると、格子状の探索では値の種類が少数のまま重複するのに対し、ランダムな探索では値がほぼ毎回異なるため、効くハイパーパラメータの探索の幅が実質的に広がります。
問3ランダムサーチは、これまでの試行結果を確率モデルで学習し、その結果をもとに次に試す値を選ぶという点で、ベイズ最適化と同じ仕組みを持っている。
解答・解説をみる
× 誤り
逆の記述です。ランダムサーチは各試行が独立しており、過去の結果を次の候補選びに使いません。正しくは、過去の評価結果を確率モデルで学習し、次に試す値を予測しながら絞り込むのはベイズ最適化の特徴であり、両者はこの点で区別されます。

