狠狠撸

狠狠撸Share a Scribd company logo
Least Square Method
zuqqhi2
目的
1 2
? 下図のようなデータが得られたら、そのデー
タが発生するメカニズムを見つける(右の図
の緑色の線を推測する)
0
x
y
0
x
y
モデル化
3 4
? 以下の様な多項式でデータを表すことを考え
る(モデル化)
? ここでは一旦 n を 2 として考えてみる。
0
x
y
? データ N 点分合計すること部分を式に表す
と以下の式になる( 1/2 は後の計算を楽にす
るため)。
? 最小= ( 偏 ) 微分が 0
微分:接線の傾き
最小二乗法の考え方
5 6
? 各データ点について以下の値を計算して合計
を取ればいい
? 上の式の値は赤のデータについてはプラス、
水色のデータについてはマイナスになってし
まうため、以下のようにして常にプラスにす
る
0
x
y
0
x
y
この関数の場合、
接線の傾きが 0 になるのはこの点
=> y が最小値
? これを行列を元に連立方程式を行列の形にす
ると以下のようになる(正規方程式)
? これを行基本変形で解いて、多項式を作れば
以下の緑線が得られる
最小二乗法の考え方
7 8
? ( 偏 ) 微分すると各係数はそれぞれ以下のよ
うになる
0
x
y
   -1/2 ? 2 行目
   3 行目 – 2?2 行目
   -1/2 ? 3 行目
アルゴリズム
9 10
? Gauss-Jordan 法で正規方程式を解く
http://www.yamamo10.jp/yamamoto/lecture/200
6/5E/Linear_eauations/gaussj_html/node2.ht
ml
? Gauss-Jordan 法の例
   2 行目 - 2?1 行目
   3 行目 - 2?1 行目
アルゴリズム
11 12
? Gauss-Jordan 法の例
  計算結果を連立方程式にすると以下のよう
になる
  これを元に各変数の値を求める
結果の評価
13 14
? 訓練誤差
最小二乗法の計算に使用したデータとの差分
を見る
? 汎化誤差
最小二乗法の計算に使用していない観測され
たデータとの差分を見る
プログラムと実行結果
15 16
? 以下に具体的な実装がある
https://github.com/zuqqhi2/programming-
tips/blob/master/least-squares-method/lsm-
polynomial.go
? 実行結果
汎化誤差が一番少ない n が一番使い勝手がい
いから、この場合 n=10 が一番良い
n=1 n=2
n=5 n=7
n=11 n=30
プログラムと実行結果
15 16
? 以下に具体的な実装がある
https://github.com/zuqqhi2/programming-
tips/blob/master/least-squares-method/lsm-
polynomial.go
? 実行結果
汎化誤差が一番少ない n が一番使い勝手がい
いから、この場合 n=10 が一番良い
n=1 n=2
n=5 n=7
n=11 n=30

More Related Content

20140706 zuqqhi2-lsm-v1