ガウス過程回帰とは

最近機械学習を用いたMaterials Infomaticsを本業としている。Pythonのコードを書いたりデバッグするのに時間がかかっていたが、最近ではChatGPTが助けてくれるのでそれに向ける時間が減った。それと機械学習自体に対する理解が足りていないような気がしていたので、色々な機械学習の考え方を学習している。その中でガウス過程回帰を集中的に学習したので、忘備の意味も含めて記載する。教材は、講談社・機械学習プロフェッショナルシリーズの「ガウス過程と機械学習」である。帯に「第0章だけでも読んでいってください‼」と書かれているが、その通りの内容でなかなかの名著であった。

ガウス過程回帰はまずその名前が分かりにくさに拍車をかけている。何故ガウス過程なのかがパッと理解できない。「確率過程」という言葉を知っている人であればイメージできるのかもしれない。書籍内にも書かれているように、元々は時間経過に伴う変化を予測するためのモデルであったために「過程」という言葉が付いているものの、現在の使用法としては経時データを扱わない限り時間は関係ない。単純に無限のガウス分布の重なり合わせでモデル化するものと考えるとイメージはしやすくなる。

モデルをガウス分布の重なりと考えるために平均値と分散を計算することが可能で、これがベイズ最適化を行ううえで武器となる。次の実験でこの辺りを攻めれば平均値と分散はどのくらいになりそう、ということが予測できるためだ。現在データがある部分の分散は小さく、データがない部分の分散は大きくなる傾向があるため、現在データがないところの上限値は大きくなる可能性が大きくなり、現在のデータの外挿領域を攻めやすくなる。

個人的に最も面白かったのは、ガウス過程回帰は原理上無限の中間層をもつニューラルネットワークと等価である、という話だった。ということはガウス過程回帰を極めていくと、ニューラルネットワークをも超えるものができるのかもしれない、とも思った。元々ニューラルネットワークはデータ数が大きいときに威力を発揮するもので、Materials Infomaticsのような実験データを用いる場合には実験速度が律速になるためデータ数はどう頑張っても数千個にしかならない。多くの場合は数百個だろう。このような場合にはニューラルネットワークよりもガウス過程回帰を含めた通常の回帰分析の方が精度が高いことが知られている。

しかし、ガウス過程回帰の弱点は計算コストが大きいことである。計算量はデータ数の3乗に比例するため、大きいデータを扱ううえではこれが致命傷となる。計算コストを下げるような工夫もされているようであるが、限界はあるだろう。しかし先述したようにベイズ最適化との相性も良いため、Materials Infomaticsの観点からは最強の回帰方法となる。

ガウス過程回帰においてカーネル関数というものを使用する。カーネル関数も色々あるのだが、そのカーネル関数の意味も今回よく理解できた。更にカーネル関数を工夫することで、特徴量の自動選択的なことまで可能になる。このようなカーネルを関連度自動決定(ARD:Automatic Relevance Determination)カーネルと呼ぶ。経験的に、このようなカーネルを用いると回帰性能は高くなる傾向がある。但しその分計算時間は他のカーネル関数よりも数倍かかるため、「ここ」というところで用いると良いのだろう。

ARDカーネルを使用することで、特徴量の自動選択もできるし、特徴量の重要度の指標も得られる。しかし、計算時間が非常にかかるので、この方法で特徴量選択をすることが合理的かどうかは微妙となる。普通にRandom Forestの重要度を計算した方が話が早いのかもしれない。

#ガウス過程回帰 #カーネル関数 #ARD

コメント

タイトルとURLをコピーしました