9
Least Square Method zuqqhi2

20140706 zuqqhi2-lsm-v1

Embed Size (px)

Citation preview

Page 1: 20140706 zuqqhi2-lsm-v1

Least Square Method zuqqhi2

Page 2: 20140706 zuqqhi2-lsm-v1

目的

1 2

下図のようなデータが得られたら、そのデータが発生するメカニズムを見つける(右の図の緑色の線を推測する)

0x

y

0x

y

Page 3: 20140706 zuqqhi2-lsm-v1

モデル化

3 4

以下の様な多項式でデータを表すことを考える(モデル化)

ここでは一旦 nを 2として考えてみる。

0x

y

Page 4: 20140706 zuqqhi2-lsm-v1

データ N点分合計すること部分を式に表すと以下の式になる( 1/2は後の計算を楽にするため)。

最小= (偏 )微分が 0微分:接線の傾き

最小二乗法の考え方

5 6

各データ点について以下の値を計算して合計を取ればいい

上の式の値は赤のデータについてはプラス、水色のデータについてはマイナスになってしまうため、以下のようにして常にプラスにする

0x

y

0x

y

この関数の場合、接線の傾きが 0になるのはこの点=> yが最小値

Page 5: 20140706 zuqqhi2-lsm-v1

これを行列を元に連立方程式を行列の形にすると以下のようになる(正規方程式)

これを行基本変形で解いて、多項式を作れば以下の緑線が得られる

最小二乗法の考え方

7 8

(偏 )微分すると各係数はそれぞれ以下のようになる

0x

y

Page 6: 20140706 zuqqhi2-lsm-v1

    -1/2 2☓ 行目

    3  – 行目 2 2☓ 行目

    -1/2 3☓ 行目

アルゴリズム

9 10

Gauss-Jordan法で正規方程式を解く

http://www.yamamo10.jp/yamamoto/lecture/2006/5E/Linear_eauations/gaussj_html/node2.html

Gauss-Jordan法の例

    2行目 - 2 1☓ 行目

    3行目 - 2 1☓ 行目

Page 7: 20140706 zuqqhi2-lsm-v1

アルゴリズム

11 12

Gauss-Jordan法の例

    計算結果を連立方程式にすると以下のようになる

    これを元に各変数の値を求める

Page 8: 20140706 zuqqhi2-lsm-v1

結果の評価

13 14

訓練誤差最小二乗法の計算に使用したデータとの差分を見る

汎化誤差最小二乗法の計算に使用していない観測されたデータとの差分を見る

Page 9: 20140706 zuqqhi2-lsm-v1

プログラムと実行結果

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