ガウス分布(正規分布)は、確率分布の一種で、私たちの生活に密接に関わる分布のひとつです。さらに、機械学習の分野においても非常に重要な役割を果たしています。
ですが、確率や分布のような単語が出てくると、いかにも数学という感じがして、身構えてしまう部分もありますよね。しかし、実はそんなに難しいことはありません。
ガウス分布は、たとえば試験の点数の分布や多数回サイコロを振ったときの出た目の和の確率分布として現れます。そして、平均の付近にたくさんの標本が集まり、平均から遠くなるほどその数は少なくなります。確かに試験の点数は平均点の近くの人がたいてい多くなるし、サイコロを100回振ったときの和は((1+2+3+4+5+6)/6)*100=3500に近くなることが多いことに思い当たるでしょう。
これがガウス分布の一例ですが、たとえばガウス分布の具体的な形や、他の性質はどんな物があるのかなど気になる方がいるかもしれません。
ですから今回は、ガウス分布についてしっかりと説明しましょう。ガウス分布とは何かということから初めて、それに関連する重要なキーワードであるガウス過程のことについて触れつつ、さらに、ガウス過程が機械学習の場面でどのような役割を果たしており、それを応用すると何ができるのかにも言及します。
ガウス分布(正規分布)とは
ガウス分布とは、確率に関係する分布の1つで正規分布とも呼ばれます。正規、やガウス、という名前からいかにも重要そうな印象がありますよね。
ガウス分布は、平均と分散によって定義されます。平均の周囲で左右対称な分布となっており、平均の天においてもっとも大きい値を取ります。また、分散が小さいと、尖った分布となり、逆に分散が大きいと平たい分布となります。
ガウス分布をグラフ上に描いた曲線(正規分布曲線)は、その様子が釣り鐘に似ていることから、「ベル・カーブ」とも呼ばれます。
他にもさまざまな性質がありますが、ここでは特に重要なものについて触れました。次の節では、ガウス分布と深い関連を有するガウス過程について説明します。
ガウス分布とガウス過程の違い
ガウス分布は平均と分散によって定義される確率に関係する分布です。
ところで、ガウス過程ということばもあります。ガウス過程はガウス分布とは異なる概念で、確率変数の集合に関するものです。ある関数の全ての入力に対する出力がそれぞれガウス分布に従うとき、その関数がガウス過程に従っているといえます。
違いという意味において着目すべきなのは、ガウス分布という用語が各入力に対する出力の分布に注目した用語であるのに対し、ガウス過程という用語は全ての入力に対して出力がガウス分布に従うことに注目した用語であるという点です。ですから、ガウス過程という語は1つの変数に関する語ではありません。
ガウス過程は、なぜ機械学習でも使われるのか
ガウス過程は、機械学習においても重要な概念です。実際に、ガウス過程を利用した機械学習モデルが利用されているのだとか。
しかし、ガウス過程を用いることには問題もあります。それは、多項式の適切な次数があらかじめわかっているとは限らないという問題。もし次数が小さすぎれば真の事象を十分に説明できないことになりますし、逆に次数が大きすぎれば過学習によって未知の入力データに対する精度が落ちることとなります。
ガウス過程を利用した機械学習では、この問題を回避できます。ガウス過程を利用したガウス過程回帰では、多項式回帰曲線の次数を事前に定めることなく、回帰をおこなうことができます。
さらに、回帰に対する予測誤差も自動的に求めることができます。これは、各点における分布がガウス分布に従うという仮定から明らかで、各点が従うガウス分布の分散によって各点における予測誤差も定まります。
ガウス過程回帰の魅力はその柔軟性です。性質が未知のデータについて、計算コストをかけてでも良いモデルを知りたいような場合に有効な手法でしょう。
ガウス過程を実際に機械学習で使う方法
ガウス過程回帰という機械学習を実装する方法の1つは、scikit-learn(サイキットラーン)を用いることです。scikit-learnにはガウス過程のクラス(gaussian_process)があるので、これを用いることで簡単にガウス過程回帰を実装することができます。
よく用いられるカーネルとして、ガウスカーネルがあります。入力が1次元であれば、ガウスカーネルkは次のように表されます。
ここに、xとx’は2つの異なる入力を表します。βは、「1つのデータが与える影響の範囲」を表しているといえます。βが小さいほど1つのデータが遠くまで影響を与え、大きい時には近くにしか影響を与えません。その結果、βを大きくすると回帰曲線が複雑になる傾向があります。
ガウス分布・ガウス過程を応用するとできること
ガウス過程の応用事例の1つとして、台風の移動シミュレーションがあります。台風の移動速度が、緯度、経度、年内の日付、年の4変数の関数で表現できると仮定してガウス過程回帰でモデルを生成しています。
その事例では、台風の移動速度についてガウス過程回帰を用いたことによって、季節変動によく対応したモデルを作成できたとしています。これは、台風の確率的な動きをガウス過程でうまく再現できる部分があったということです。
このように、ガウス過程回帰はモデルの柔軟性が求められる高度な分野で活用されています。
さて今回は、ガウス分布とガウス過程について説明しました。
ガウス分布は、平均と分散によって定められる確率に関する分布で、グラフは平均を軸にして対称なベル・カーブを描くということでした。
また、ガウス分布に基づく概念であるガウス過程では、過程の各点における目的変数の値が、ガウス分布を取ります。ガウス過程を用いた機械学習の手法にガウス過程回帰があり、柔軟なモデルの作成ができます。
ガウス過程回帰を実装する方法の1つとして、scikit-learnのクラスを利用する方法があります。gaussian_processモジュールをインポートして、GaussianProcessRegressorクラスを利用しましょう。
また、応用例として、気象シミュレーションやフィードバック制御の事例を紹介しました。ガウス過程回帰は高度な分野で利用されています。
ガウス分布やガウス過程は、数学的に突き詰めて考えると難しい側面もありますが、今回説明したような基本的な部分に関する理解はさほど難しくありません。また、実用的にはそれで全く問題ないでしょう。
ここまで読んで、取っ付きにくかったガウス分布というキーワードが理解できたのであれば、もはや少し手を動かせば活用できる段階。ぜひ皆さんも、ガウス過程回帰の柔軟性をその目で確かめましょう。