【機械学習】グリッドサーチとは?モデルの性能を最大化する「最強のレシピ」の探し方

こんにちは。ゆうせいです。

前回はモデルの評価方法についてお話ししましたが、今回はモデルの性能をもっと引き出すためのテクニックについて深掘りしていきましょう。

あなたは料理をするとき、レシピ通りの分量で作りますか。それとも自分好みにアレンジしますか。

カレーを作るとき、隠し味にコーヒーを入れるか、チョコレートを入れるか、それともハチミツを入れるか。さらに煮込む時間は30分か、1時間か。

この組み合わせ次第で、カレーの味は劇的に変わりますよね。最高に美味しいカレーを作るには、あらゆる組み合わせを試してみるのが一番確実です。

機械学習の世界でも全く同じことが言えます。モデルの性能を最大化するために、設定値のあらゆる組み合わせを全部試してしまおう、というのが今回紹介するグリッドサーチです。

まさに、力技にして最強の探索手法。今日はこのグリッドサーチについて、新人エンジニアのあなたに向けて丁寧に解説していきます。

ハイパーパラメータという名の「隠し味」

グリッドサーチの話をする前に、まず知っておかなければならない言葉があります。それがハイパーパラメータです。

機械学習モデルには、学習によって勝手に更新されるパラメータと、人間があらかじめ設定してあげなければならないパラメータの2種類があります。

この、人間が決める設定値のことをハイパーパラメータと呼びます。

例えば、決定木というモデルなら木の深さをどこまで許可するかとか、k近傍法というモデルなら近くのデータを何個参考にするか、といった設定値のことです。

料理で言えば、具材(データ)は決まっていても、火加減や煮込む時間(ハイパーパラメータ)はシェフであるあなたが決めなければなりません。この設定次第で、完成するモデルの賢さは大きく変わってしまいます。

では、どうやって最適な設定値を見つければよいのでしょうか。

そこで登場するのがグリッドサーチです。

総当たり戦で正解を探すグリッドサーチ

グリッドサーチの仕組みは驚くほど単純です。

気になるハイパーパラメータの候補をいくつか挙げて、その全ての組み合わせを実際に試してみるのです。

例えば、あるモデルの設定Aと設定Bについて、以下の候補があるとします。

  • 設定Aの候補:1、10、100
  • 設定Bの候補:0.1、0.01

この場合、設定Aは3通り、設定Bは2通りありますよね。

これらを格子(グリッド)状に組み合わせて、総当たり戦を行います。

  1. 設定Aが1で、設定Bが0.1のとき
  2. 設定Aが1で、設定Bが0.01のとき
  3. 設定Aが10で、設定Bが0.1のとき...

このように、全部で 3 \times 2 = 6 通りの組み合わせが発生します。

グリッドサーチは、この6通りすべてのモデルを実際に作り、それぞれの性能を評価して、一番成績が良かった組み合わせを優勝者(ベストパラメータ)として選出してくれるのです。

なんて健気で力強い手法なんでしょうか。

グリッドサーチのメリット

最大のメリットは、指定した範囲内であれば確実に最も良い組み合わせを見つけられることです。

人間が勘や経験で適当に設定するよりも、論理的に網羅して検証するため、納得感のある結果が得られます。

また、仕組みがシンプルなので理解しやすく、実装も非常に簡単です。多くの機械学習ライブラリには、この機能があらかじめ組み込まれています。

グリッドサーチのデメリット

もちろん、良いことばかりではありません。

最大の敵は、時間です。

試すパターンが増えれば増えるほど、計算にかかる時間は爆発的に増えていきます。

例えば、パラメータが3つあって、それぞれに10通りの候補があったとしましょう。

すると、組み合わせは 10 \times 10 \times 10 = 1000 通りになります。

もし、1回のモデル学習と評価に1分かかるとしたら、全て終わるのに1000分、つまり約16時間以上も待たなければなりません。

さらに、前回学んだクロスバリデーションと組み合わせると、時間はさらに倍増します。

5分割のクロスバリデーションを行うなら、計算回数はさらに5倍です。

そのため、グリッドサーチを行う際は、候補の値を絞り込んだり、夜寝ている間にプログラムを走らせたりといった工夫が必要になります。

今後の学習の指針

グリッドサーチは、シンプルですが非常に強力な武器です。

まずはパラメータの候補を少なく設定して、実際にプログラムを動かしてみてください。

「設定値を変えるだけで、精度が数パーセントも上がった!」という感動をぜひ味わってほしいのです。

しかし、実務ではパラメータの種類が多く、グリッドサーチでは時間がかかりすぎて終わらないという壁にぶつかることがあります。

そんなときのために、次はランダムサーチやベイズ最適化といった、より効率的に正解を探す手法についても学んでみてください。これらは、全部を試すのではなく、賢く当たりをつけて探索する方法です。

一歩一歩、着実に知識を積み重ねていきましょう。

あなたが作ったモデルが、最高のパフォーマンスを発揮できる日を楽しみにしています。

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。