文系でも頑張る

スイスで圧倒的に強い人達に出会った文系大学生が、なんとか強くなろうとあがく日記です。

カステラ本 Vol.1 「線形近似における最小二乗法」概論

これから「The Elements of Statical Learning(ESL)」通称「カステラ本」を ろくに数学勉強してない文系大学生が極めて大雑把に読みすすめてまいります。
英語のままになってるのは英語で読んでるからなので大目に見てください。

第一弾です。

今日のコンテンツはこちら
「線形近似における最小二乗法」
機械学習の基礎の基礎です。
【最小二乗法】
バイナリのclassificationについて。
直線のモデルを仮定して、一番RSS(残差の二乗)の小さいパラメータ(β)を行列で求めるというもの。


式の流れは以下の通り。
いまxy平面上にN個点があるとして、その座標を
(x_i, y_i) (i =1,2, ..., p)
とするとX、yっていうN行1列の行列が定義できて、
縦長めんどくさいから転置して書くとこうなる。
X^T = (x_1, x_2, \cdots, x_N)
y^T = (y_1, y_2, \cdots, y_N)
で、考えるモデルはこういうやつ
\hat{Y} = \hat{\beta_0} + \sum_{j=1}^p X_j \hat{\beta}_j.
hat(^)は推定値を意味するという理解のつもり。
要はXやyは定まっているが、今やりたいのは、既知のXを用いてよりよいY(ここでは0か1)の推定値を求めるためにβを推定することなんで、X以外にハットが付いてるんですね。


でさっきのモデルなんですけど、Xに新たに1という定数をappendすると、あら不思議という感じ(全く不思議ではない)で\beta_0が消えて、シグマを書き換えるとこうなる。
 \hat{Y} = X^T\hat{\beta}.
 \hat{Y} はここではscalarになる(バイナリだから)が、次元が上がれば話は違う。
まあ今回は簡単のためにほっておこう。


さて、最小二乗誤差をパラメータ\betaの関数として定義して、それが最小になるものを\hat{\beta}とするわけですね。(XがN*pの行列だとしたら、yはN次のベクトルになる)
RSS(\beta) = \sum_{i=1}^N (y_i - x^{T}_i\beta)^2
で、これを行列にしたやつで微分して正則条件とか考えつついじると、
\hat{\beta} = (X^TX)^{-1}X^{T}y
となって、RSSを最小にするβの推定値が出てくるから、あとはこれを使った\hat{Y}によって分類すると。
というまあ細かいところを抜きにしたら大学1年の線形代数とかで理解できる手法ですね。
ただし、これはクラス(Yのこと、0か1か)ごとにサンプルが分布するモデルがひとつずつしかない場合に有効で、例えばY=0のクラスのなかで、更に5個のモデルが存在したりするとうまくいかないと。そういうときに役に立つのがk近傍法だとのこと。


やっぱブログ書くの苦手やなと思いつつ、もう少し頑張りたいと思います。