学習率やバッチサイズなどのハイパーパラメータを、人手の勘に頼らず自動で探す——その代表的な方法の1つがランダムサーチです。「ランダムに試すだけ」という単純さにもかかわらず、総当たりのグリッドサーチより効率的な場面が多いことで知られています。
📖 ひと言でいうと
ランダムサーチとは、ハイパーパラメータの候補範囲を指定し、その範囲内から値をランダムに選んではモデルを訓練・評価することを繰り返して、良い組み合わせを探す自動調整手法です。
例えるなら、広大な砂浜のどこかに埋まっているお宝を探すとき、砂浜に等間隔の碁盤の目を引いて順番に掘る(グリッドサーチ)のではなく、サイコロを振ってあちこちをランダムに掘ってみるやり方です。意外に思えますが、掘れる回数が同じなら、ランダムに散らばって掘る方が有望な場所に当たりやすいケースが多いのです。
🖼 1枚でわかるランダムサーチ
📘 公式テキストの説明
ランダムサーチはハイパーパラメータの自動調整手法の一つであり、指定された範囲内でパラメータをランダムに選択してモデルを訓練する。これにより最適なハイパーパラメータの組み合わせを見つけ出すことが目的。ランダムサーチは計算コストが低く、高次元のハイパーパラメータ空間で効率的に探索できる利点がある。ただし、最適なパラメータを確実に見つけ出すわけではないため、他の手法と組み合わせて使用されることも多い。
押さえるべきは3点です。第一に、位置づけは「ハイパーパラメータの自動調整手法の一つ」であること。学習率や正則化の強度などを、人手ではなくアルゴリズムで探すための方法です。第二に、利点は「計算コストが低く、高次元のハイパーパラメータ空間で効率的」であること。調整したい項目が多い(=空間の次元が高い)ほど総当たりは破綻するため、ランダムの強みが際立ちます。第三に、限界として「最適なパラメータを確実に見つけ出すわけではない」こと。無作為抽出なので保証はなく、だからこそ他の手法との組み合わせが実務では一般的です。
🔍 しっかり理解する
探索の流れ
ランダムサーチは、次のループを試行回数の上限まで繰り返すだけの、非常にシンプルなアルゴリズムです。
試行同士が独立している点も実用上の長所です。前の結果を待つ必要がないため、複数のマシンで並列に試行を走らせることが容易です。
なぜ総当たりより効率的になり得るのか
グリッドサーチは各ハイパーパラメータに候補値を数個ずつ決め、その全組み合わせを試します。項目が2つで各5候補なら25通りですが、項目が5つに増えると3,125通りと、次元が増えるほど組み合わせが爆発します。これが「高次元で総当たりは苦しい」の意味です。
さらに本質的な理由があります。実際の機械学習では、性能に大きく効くハイパーパラメータは一部(たとえば学習率)で、残りはあまり効かないことが多いのです。グリッドサーチでは、効かない項目の候補を律儀に変えるたびに、効く項目については同じ値を何度も重複して試すことになります。ランダムサーチなら試行のたびに全項目が異なる値を取るため、同じ試行回数でも「効く項目」について多様な値を調べられます。この点は Bergstra と Bengio による2012年の研究で示され、ランダムサーチが広く使われる根拠となりました。
位置づけ — 3つの自動調整手法の中で
公式テキストのハイパーパラメータの項では、自動調整手法としてグリッドサーチ・ランダムサーチ・ベイズ最適化の3つが挙げられています。グリッドサーチは網羅的だが高コスト、ランダムサーチは低コストで高次元に強いが保証なし、ベイズ最適化は過去の試行結果から次の有望な候補を推定する賢い探索です。ランダムサーチは「まず広く当たりをつける」段階に向いており、公式テキストにあるとおり、絞り込みには他の手法と組み合わせて使われることも多くあります。
- 候補値の全組み合わせを総当たり
- 網羅的だが次元が増えると計算量が爆発
- 効かない項目のせいで重複試行が多い
- 範囲内からランダムに組み合わせを抽出
- 計算コストが低く高次元でも効率的
- 最適値を確実に見つける保証はない
💡 具体例で考える
ニューラルネットワークの学習率と正則化の強度、ドロップアウト率、バッチサイズの4項目を調整する場面を考えます。各項目に5候補ずつ用意してグリッドサーチをすると625回の訓練が必要ですが、1回の訓練に30分かかるなら約13日分の計算です。ランダムサーチなら「予算は60回」とまず決めて、その範囲で4項目すべてをランダムに変えながら探索できます。試行回数を予算に合わせて自由に決められるのも、実務でランダムサーチが好まれる理由です。
また、探索の実際では「学習率は0.0001〜0.1の範囲を対数スケールでランダムに選ぶ」といった指定がよく使われます。学習率のように桁が重要な項目では、対数スケールでの無作為抽出により小さい値から大きい値まで満遍なく試せます。範囲の指定の仕方そのものが探索の質を左右する、という点も覚えておくと理解が深まります。
⚠️ よくある誤解・紛らわしい用語
- グリッドサーチとの混同 — グリッドサーチは決めた候補の全組み合わせを規則的に試す方式、ランダムサーチは範囲から無作為に抽出する方式です。「網羅的か、無作為か」で区別します。
- 「ランダムだから劣る」という誤解 — 同じ試行回数なら、高次元空間ではランダムサーチの方が効率的なことが多いと知られています。単純=劣るではありません。
- 「最適解が保証される」という誤解 — 公式テキストが明記するとおり、最適なパラメータを確実に見つけ出すわけではありません。この一文はそのまま正誤問題になり得ます。
- 重みの探索との混同 — ランダムサーチが探すのはハイパーパラメータです。重み(パラメータ)は各試行の中で勾配降下法により学習されます。探索の対象が異なる点に注意しましょう。
📝 試験でのポイント
- 「指定された範囲内でパラメータをランダムに選択して訓練する自動調整手法はどれか」という定義問題が基本形です。
- グリッドサーチ・ベイズ最適化と並べて手法名と説明を対応づけさせる形式が典型的です。3つの方式の違いを一言で言えるようにしておきましょう。
- 利点(計算コストが低い・高次元で効率的)と限界(最適値の保証なし)の組み合わせは、正誤判定の材料になります。
- 「他の手法と組み合わせて使用されることも多い」という記述も、正しい選択肢として登場し得ます。
📚 まとめ
ランダムサーチは、指定範囲からハイパーパラメータをランダムに選んで訓練・評価を繰り返す自動調整手法です。計算コストが低く、高次元のハイパーパラメータ空間でも効率的に探索できる一方、最適値を確実に見つける保証はないため、他の手法と組み合わせて使われることも多くあります。グリッドサーチ(総当たり)・ベイズ最適化(推定に基づく探索)との三点セットで、それぞれの方式と得意場面を整理しておきましょう。
