機械学習-学習メモ2「予測」と「最小二乗法」
学習メモ1の続きです。今回は「最小二乗法」についてまとめます。引き続き「ITエンジニアのための機械学習理論入門」を参考にしていきます。
- 作者: 中井悦司
- 出版社/メーカー: 技術評論社
- 発売日: 2015/10/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
最小二乗法は「予測」のアルゴリズム
「予測」とは
「予測」のゴールは「与えられたデータがどのような関数から生み出されたか」を特定すること。そうすれば、いかなる観測点が与えられた時でも観測値を求めることができる(つまり予測できる)から。
関数の特定までの流れ
本書では目的変数(被説明変数)と特徴変数(説明変数)間に、多項式の関数関係があるととりあえず仮定していた。ここからやりたいことは、未知のパラメーターである①係数の値を決めることと、②次数の値を決めること。(①と②が決まれば、関数が特定できるから。)
の値を0とし、係数の値を求める →関数0
の値を1とし、係数の値を求める →関数1
の値を2とし、係数の値を求める →関数2
…
の値をとし、係数の値を求める →関数N-1
その後、それぞれの関数を比較してがいくつ以上になるとオーバーフィッティング(過学習)が起きるのかを発見し、最適な次数を見つけます。(汎化能力の検証)
はじめに与えられたデータ(トレーニングセットと呼ばれる)をできるだけ正確に再現する多項式(関数)を特定する必要があるが、「何をもって正確とするか」の思想によって、そのアルゴリズムが分かれる。主な「予測」のアルゴリズムとして1.最小二乗法、2.最尤推定法、3.ベイズ推定法の3つが存在する。
最小二乗法について
最小二乗法の考え方
で計算されると実際の観測値の差の二乗を合計したものを「誤差」と定義し、その「誤差」が最小になるようにを決定する、という方法。モデルから計算される値と実際の値とで、差が少ないほうがより正確なモデルに決まってるじゃん、という考え方からきている。割と馴染みやすい考え方だと思う。
オーバーフィッティングの検証(最適な次数探し)では、トレーニングセットとは別に用意したテストセットの場合で、各関数()の平方根平均二乗誤差の数値を比較し、がこれ以上小さくならないという次数を見つける。
数学的手続き
・モデル
・誤差
本来であれば
となるが、この後の計算の都合上、便宜的にこれを1/2倍した
を誤差と定義する。
・誤差が最小となる条件
・誤差が最小となる条件下でのの値
より、
これを変形して、
ここで、上の式を
を用いてベクトルと行列で表現しなおすと、
となり、転置をとって変形すると、
となり、を導く式が完成した。
そこで一旦の2階偏微分係数を表すヘッセ行列を考えます。
すると、
となり、ヘッセ行列が、逆行列をとったと一致することがわかります。つまり、
ここでヘッセ行列が正定値であることを確かめます。なぜなら正定値な行列は逆行列をもつことが証明できるからです。
正定値というのは、任意のベクトルに対して、が成り立つことを言います。
ヘッセ行列はのとき、
となります。
ゆえにヘッセ行列は正定値となり、逆行列をもつと分かります。
いまいち分からないです。どなたか教えてください。
が逆行列をもつかどうかを調べるだけなら、が正定値であることが示せればよいはずです。にもかかわらず、とヘッセ行列が一致することまで確認しています。なぜ。
推測ですが、思い返せばそもそも多変数関数が最小となるが一意に決まるのかどうかはわからないし確認していないはずです。したがって、そのための条件が、(5)式の「その点で偏導関数の値が全て0」かつ、上で確認した「ヘッセ行列が正定値」ということであり、突然ヘッセ行列が登場した、ということでしょうか。
つまり、ヘッセ行列が正定値かどうかを確かめる手続きは本来最初に行うべきだが、今回は後回しにした、ということでしょうか。
ヘッセ行列について参考にしたサイトを載せておきます。多変数関数の極値判定とヘッセ行列 | 高校数学の美しい物語
※11/21追記 「ITエンジニアのための機械学習理論入門」のp82にヘッセ行列について書かれていました。ヘッセ行列が登場した理由はおそらく推測のとおりみたいですが、完全に理解しきれていないのでもう少しよく読んで確認してみます。
パラメトリックモデルの3ステップ
今までの手続きを整理すると、これらはパラメトリックモデルと呼ばれる手法の3ステップで整理できる。
パラメトリックモデルの3ステップ |
最小二乗法の場合 |
(1) パラメーターを含むモデルをたてる |
|
(2) パラメーターを評価する基準を定める |
誤差が最小になれば良い |
(3) 最良の評価を与えるパラメーターを決定する |
誤差が最小の時のを求める |
今回はここまで
感想
今回勉強していて思ったこと、「行列すっごい便利」。
我ながらアホ丸出しの感想ですね。最小二乗法の概念自体は、大学の統計学の授業でも習っていたので理解しやすかったです。しかし、文系なので数式のところはかなり苦労しながら読み進めました。とりわけ行列については結構忘れていたので、逐一「逆行列ってなんだっけ、演算のルールは、、、」なんて調べながら本を読み進めていました。それにしても行列のおかげで数式がすっきりして操作しやすくなるんですね~すごい。しかしヘッセ行列登場で完全にノックアウトでした。精進します。
疑問点
1.ヘッセ行列について。コラム欄で書いた通りです。なぜ登場したのかいまいち不明です。
12/3追記 この疑問はおそらく解消。
temperu.hatenablog.com
次回は予測のアルゴリズムの続きで、「最尤推定法」についてまとめようと思います。
終わり。