Coursera Machine Learning 2週目の復習
自分用のメモです。
- ①Multivariate Linear Regression
- ②Computing Parameters Analytically
- ③Octave/Matlab Tutorial
- プログラミング課題
①Multivariate Linear Regression
複数の特徴量(Feature)
線形回帰で、複数の変数を持つものは、"multivariate linear regression"と呼ばれる。
これまではインプット(x)は一つだったが、普通はx1,x2...のように複数ある。
記法
nとmで違うのに注意。mはデータのセットの個数、nは特徴量の個数
Hypothesis 仮説関数 (特徴量が複数ある場合)
注意:x0なんていう特徴量は存在しないが、x0があるとしてx0=1とすると、スッキリしたベクトル式が書けるのでそう定義する。
コスト関数 (特徴量が複数ある場合)
Feature Scaling -特徴量のスケーリング
特徴量のサイズの大きさは揃えて計算したほうがいい。
例えば、家の特徴量として、面積x1は0-2000feet, ベッドルームの数x2は1-5個
のように特徴量の大きさが離れていると、その2つの値に同じα(学習率)を用いると最急降下法のコストが高くなる。
のように。
スケーリングの目安としては、全ての特徴量が -1 ≦ x ≦ 1 に収まるようにするとよい。
-1 ≦ x ≦ 0 はOK, -100 ≦ x ≦ 100 や -0.01 ≦ x ≦ 1 はダメ
スケーリングの仕方は
・特徴量を最大値で割る
・特徴量 = (特徴量 - 平均値)/取る値の範囲 で置き換える
学習率αの選び方
αが小さすぎると、収束が遅い
αが大きすぎると、コスト関数の値は小さくならないかもしれない
ので、αは都度試してみる
多項式回帰
直線の式に当てはまらなさそうなデータでも、線形回帰モデルを工夫すれば使うことができる。
仮説を
としたとき、
のように、sizeとsizeの二乗をそれぞれ別の特徴量とする。
このとき、特徴量のスケーリングがより重要になる。
なぜなら、例えばsize =100ならsize^2は10000になる、つまり各特徴量の差が大きくなるから。
②Computing Parameters Analytically
Normal Equation 正規方程式
A⊤A が正則なとき、Ax−b を最小にする x はただ一つであり,
それは正規方程式
を解くことで得られる。(x,bは縦ベクトル、Aは行列)
これを変形すると
最急降下法と正規方程式の特徴まとめ
最急降下法 | 正規方程式 |
---|---|
学習率αを設定する必要がある | αの設定がいらない |
たくさんのイテレーションが必要 | 一発で求められる |
O(kn^2) | O(n^3) ...X^TXの計算が必要 |
nが巨大なときに使うといい | nが巨大だと遅い |
だいたいn=10000くらいが境目になるらしい。それより小さければ全部正規方程式でいい。
O(nkn^2)とかいうのは、計算量(オーダー)のこと。
ざっくりいうと、計算するのに必要な所要時間のようなもの。
qiita.com
プログラミング課題
難しかった。これは別の記事で。
Coursera Machine Learning 2週目 プログラミング課題 - 高卒フリーターがAIエンジニアを目指す