やりたい事
データが与えられたときに予測をしたいのですが、
そのためには、データにフィットする曲線を求めればよさそうです。
出力値が入力値の関数で表せるならば、新たな入力に対して予測ができます。
単なる点推定ではなく、不確実性を表現できると予測としては最高です。
これがベイズ線形回帰で実現できます。
概要
本記事では説明することが多いので、流れを説明します。
実際の項目とは異なります。
「モデルの決定」どんなモデルを使うか決めます。
「パラメータの導出」モデルのパラメータを訓練データから求めます。
「モデル選択」ハイパーパラメータ の値についてざっくり検討します。
「過学習と正則化」過学習と正則化について簡単に触れます。
「最尤推定」確率モデルについて最尤推定します。
「事後分布とMAP推定」事後分布を求め、MAP推定します。事前分布を2パターン設けて説明します。
「予測分布」予測分布を導出します。
「周辺尤度最大化によるモデル選択」周辺尤度最大化により、ハイパーパラメータを推定します。
変数
変数でよく登場するや重要なものをまとめておきます。
データの個数
入力空間の次元
特徴空間の次元
訓練データの 番目の入力値
訓練データの 番目の目標値
: 訓練データの入力値全体の集合
: 訓練データの目標値からなるベクトル
入力値
目標値
パラメータ
基底関数( は基底関数のパラメータ)
特徴量関数
: 行目が からなる行列(訓練データの入力値からなる行列)
正則化の係数
の予測値の精度(分散の逆数)
※ の事前分布(ガウス分布)の平均は を使う場合と、 を使う場合があります。
の事前分布(多次元ガウス分布)の分散共分散が等方的な行列(スカラー行列)の時のスカラー
の事前分布(多次元ガウス分布)の平均
の事前分布(多次元ガウス分布)の分散共分散行列
の事後分布(多次元ガウス分布)の平均
の事後分布(多次元ガウス分布)の分散共分散行列
が与えられたときの の予測分布(1次元ガウス分布)の平均
が与えられたときの の予測分布(1次元ガウス分布)の分散
注意
入力値 は とします。
入力値はベクトルなのですが、図は細字でスカラーで書かれていたりして、細字と太字が混在しています。
すみませんが適宜読み分けてください。
線形基底関数モデル
最も単純な線形回帰モデルは入力変数の線形結合
で表されますが、入力変数 に関して線形関数になっているため表現能力に乏しいです。
例えば、 のとき となり、直線しか表現できません。
そこで、以下のようにこのモデルを拡張します。
を基底関数といいます。
ここで、式 のように拡張することによりパラメータ数は になったことに注意しましょう。
ダミーの基底関数 を追加すると、式 は以下のように簡単に書くことができます。
ただし、 とします。
という写像で を変換しているわけですが、これはパターン認識の実用場面でよくみられる前処理(特徴抽出)に相当します。
基底関数には非線形関数を用います。
例えば、 のとき、 は について非線形です。
のとき、式 は と の 次関数となっており、式 と比べて表現能力が向上していることが分かります。
本記事では基底関数の選択に依存しない内容なので、基底関数を限定しませんが
基底関数として をイメージするとよいと思います。
曲線フィッティング
個のデータ が与えられていて、 とします。
のように入力値をベクトルで表記しますが、実際は のスカラーとします。
このデータに当てはまる曲線を求めてみます。
式 より、モデルを とします。
目的関数の定義
パラメータは最小二乗法によって求めます。
あるデータ について着目します。
の予測値は なので、
との差の 乗は となります。
これを全データについて足し合わせたものにを乗じたものを目的関数とします。
ここで、
とおくと、目的関数は
と書けます。
目的関数の最小化
目的関数を最小化するためにで偏微分し、とし、
これについて解くとが定まり、予測曲線が決定します。
誤差の二乗和からなる目的関数を最小化するので、これを最小二乗法と言います。
以下、導出です。
は正則であるとします。
目的関数は凸関数である
目的関数が凸関数であること示すには、目的関数のヘッセ行列が半正定値行列であることを示せばよいです。
以下、証明です。
まず、目的関数のヘッセ行列を求めます。
次に、ヘッセ行列が半正定値行列であることを示します。
とします。
目的関数のヘッセ行列は半正定値行列であることが示せました。
よって、目的関数は凸関数です。
モデル比較
与えられたデータに対して、 が計算できることは分かりましたが、パラメータ を選ぶ問題が残っています。
基底関数を としたときの の場合の予測曲線は以下のようになります。
の場合は、データへの当てはまりがあまり良くないことが分かります。
の場合が、もっともよく当てはまっているように見えます。
の場合、訓練データには非常によく当てはまっています。データの数 が であり、予測曲線が 次関数であるため になっています。しかし、当てはめた曲線は無茶苦茶に発振したようになっています。このようなふるまいを過学習といいます。
私たちの目標は、新たなデータに対して正確な予測を行える汎化性能を達成することです。
訓練データと訓練データとは独立したテストデータを用いて平均二乗平方根誤差 を計算した結果が以下です。
の場合は訓練データ、テストデータの平均二乗平方根誤差が小さいので、良さそうなMであることが分かります。
の場合は、訓練データの平均二乗平方根誤差は ですが、テストデータの時の値が非常に大きく、過学習していることが見て取れます。
次に、モデルの次数 は固定し、データ集合のサイズを変えてみたときの振る舞いを以下の図に示します。
モデルの複雑さを固定したとき、データ集合のサイズが大きくなるにつれて過学習の問題は深刻でなくなっていることが分かります。
リッジ回帰(L2正則化)
最尤推定
目標変数がと加法性のガウスノイズの和で表される場合を考えます。
は期待値が で精度(分散の逆数)が のガウス分布に従う確率変数です。すなわち、
と表せます。
式 のイメージ図を記載します。
ここで尤度関数を求めます。
式 で としました。
式 に対数を取って、対数尤度関数を求めます。
なんと、 の第三項に二乗和誤差関数が現れました。
すなわち、条件付ガウスノイズ分布の下で線形モデルに対する尤度関数の最大化は、二乗和誤差関数を最小化するのと等価であることが分かります。
式 をで偏微分し、とおいて解くと(導出については式 をご覧ください。全く同じです。)
式 は当然、最小二乗法の解と同じです。
式 を で偏微分し、 とおいて解くと が求まります。
事後分布とMAP推定
wの事前分布の平均が0で共分散行列が等方的な場合
MAP推定とは事後分布を最大するようなパラメータ を点推定することです。
事後分布を求めるために事前分布を定めます。
尤度は1次元ガウス分布の積であり、多次元ガウス分布であるため、共役事前分布として多次元ガウス分布とします。
恣意的ですが、平均は、共分散行列は等方的な分布 とします。 は定数です。
尤度関数は式 より以下のようになります。 は定数です。
あとは、ベイズの定理を用いれば、事後分布 は求まるのですが、
ベイズの定理というのは、そもそも同時分布を異なる条件付き確率の積にして、変形しただけのものですから、
それにならって同時分布 から考えていきたいと思います。
その同時分布を考えるために、グラフィカルモデルという図がとても便利なので、今回のグラフィカルモデルを以下に示します。
まず、同時分布 を以下のように変形します。
次に、同時分布 を以下のように式 とは異なる変形します。
式 を等号で結んで、事後分布 について解きます。
式 に対数を取ります。
なんと、式 にリッジ回帰(L2正則化)と同じ目的関数が出てきました。
すなわち、この事後分布を について最大化することは、二乗和誤差関数と二次正則化項の和を最小化することと等価であることが分かります。
このような結果になったのは、事前分布の平均を、共分散行列を等方的な分布としたためです。
式 がガウス分布であることは、以下の「wの事前分布に特別な仮定を置かない場合」で示します。
予測分布
この「予測分布」の説明では、条件付き確率の条件 を省略します。
予測分布とは、新たな入力値 に対する の分布のことです。
この時のグラフィカルモデルを以下に示します。
予測分布の導出について2通り示そうと思います。
導出その1 - ガウス分布の周辺化に関する公式を使う方法
予測分布は の条件付き同時分布を について周辺化することにより求まります。
を変形します。
をに代入します。
ここで、
は仮定であり、 は事後分布で式 で求めています。
をに代入します。
は以下の公式を使えば、積分計算せずに求まります。
のとき、
が成り立ちます。
この公式にのように当てはめると
は以下のようになります。
ただし、
です。
以下に、予測分布のグラフを3つ示します。
青色の丸は訓練データを、点線は真の値を、赤色の線は予測分布の平均を、青色の線は予測分布±予測分布の標準偏差を表します。
データがある箇所では、予測分布の分散が小さくなっていることが分かります。
導出その2
同時分布 を変形します。
式 より、 は以下のようになります。
式 に対数を取ります。
式 の第 項の は式 と同じです。
式 の第 項の は の事後分布のパラメータを事前分布のパラメータとして
1件からなるデータ で事後分布がさらに更新されると考えればよいので、
となります。(式 参照。)
式 を式 に代入します。
を計算します。
式 を式 に代入します。
を計算するため、以下のウッドベリーの公式を用います。
で が存在するとき
が成り立つ。
式 より、 なので、
とウッドベリーの公式に対応づけると
となります。
式 の を計算します。
式 の を計算します。
式 を式 に代入します。
式 より、予測分布はガウス分布なので、平均を 、分散を とおきます。
と を係数比較します。
解法1と一致しました。
ベイズモデル比較
ベイズの立場からモデル比較の問題を考えます。
周辺尤度
個のモデルを比較する場合を考えます。
観測されたデータをとします。
モデルの不確かさは、事前確率分布で表します。
この時、モデルの事後分布は
となります。
簡単のため、すべてのモデルの事前分布が等しい場合を考えます。
ベイズモデル比較では、モデルエビデンスと呼ばれる項が重要な働きをします。
モデルエビデンスは周辺尤度とも呼ばれます。
2つのモデルに対するエビデンスの比はベイズ因子と呼ばれます。
モデルの事後分布が分かれば、予測分布は以下のようになります。
モデル平均の単純な近似は、一番尤もらしいモデルを1つ選ぶ方法です。
これをモデル選択と言います。
パラメータを持つモデルに対しては、周辺尤度は以下で与えられます。
また、周辺尤度は事後分布を計算するときの分母に現れる正規化定数でもあります。
周辺尤度によるモデル比較 - M
一般の周辺尤度
一般に、観測データ、パラメータのとき、の事後分布は以下の式で表されます。
のを周辺尤度といい、モデルからデータが出現する尤もらしさを表しています。
をについて解きます。
このモデルの周辺尤度
今回のモデルでは、 となるので、周辺尤度は
となります。
式 で を無視しているのは、 は今回のモデルでは常に与えられているものだからで、
興味があるのは、周辺尤度の値ではないからです。(ベイズ推論による機械学習入門 p109 より引用)
そのため、周辺尤度として を用います。
周辺尤度の計算
ベイズの定理より、周辺尤度は以下のようになります。
対数を取ります。
は尤度を、は事前分布を、は事後分布を表します。
を展開します。
を展開します。
を展開します。
をに代入します。
これで対数周辺尤度が計算できます。
このモデルのパラメータを変えて、対数周辺尤度を計算した結果が以下です。
の時が最大になっています。
周辺尤度によるモデル比較 - α、β
周辺尤度
事前分布を平均は、共分散行列は等方的な分布として、 を推定します。
事前分布は
です。
尤度は
です。(多次元正規分布で書き換えました)
周辺尤度を計算します。(先ほど求めた方法とは異なる方法で求めます)
は以下の公式を使えば、積分計算せずに求まります。
のとき、
が成り立ちます。
この公式にのように当てはめると
となります。
対数を取ります。
ここで公式より、の第2項は
でとおきました。
ウッドベリーの公式
をとして、の第3項に適用します。
をに代入します。
では以下のようにおきました。
周辺尤度の最大化
対数周辺尤度を最大化するを求めるのですが、解析的に求めるのが難しい為、
の更新式を導出し、繰り返し法で解を求めます。
行列を行列で対角化します。
すると、行列にも対角化ができます。
式の導出については、後で説明します。
よって、
となります。
をで微分します。
対数周辺尤度をで微分してとおきます。
でを以下のようにおきました。
がの更新式です。
の右辺のはを含むので、はに関する陰関数になっていることに注意してください。
となります。
をで微分します。
対数周辺尤度をで微分してとおきます。
はの更新式です。
の右辺のはを含んでおり、はに依存するので、
はに関する陰関数になっています。
に関する更新式が求まりましたので、収束するまで繰り返せば、近似解が求まります。
MAP推定とリッジ回帰の関係の記事より、リッジ回帰のはなので、
となります。
最後に
本当は 式 で を代入して式 を導きたかったんですが、計算が合わなかったので
昔の記事で計算したものを載せました。
計算が合ったら書き換えます。計算が合った方はコメントください。