機械学習論
Lec03非線形モデリングの基礎
非線形データ例(衝突実験データ)
10 20 30 40 50
−100−50050
Head Acceleration
非線形モデリングの例
線形モデル
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
非線形モデリングの例
非線形モデル
10 20 30 40 50
−100−50050
Head Acceleration
非線形モデリングは難しいか
▶
1次元データ
(d= 1)の非線形モデリング:簡単
▶
多次元データ
(d >2)の非線形モデリング:困難
2
つのプローチ
▶
アプローチ
1:基底関数モデリング
▶
アプローチ
2:局所構造モデリング
2つのタイプの非線形モデル
▶
タイプ
1:パラメータに対して線形
▶ y=w0+w1logx
▶ y=w0+w1
√x+w2exp(−x2)
▶ y=w0+w1cos(2πx) +w2sin(2πx) +w31 x
▶
タイプ
2:パラメータに対して非線形▶ y= log(w0+w1x)
▶ y=exp(w−0+xw
1x2)
▶ y= sin(2π(w0+w1x)) + cos(2π(w2+w3x))
基底関数モデリング(
d = 1の場合)
▶
基底関数
hk :R→R, k= 1, . . . , q
▶
基底関数モデリング
y=
∑q
k=1
wkhk(x)
▶
例
y=w0+w1sin(2πx) +w2cos(2πx) +w3
√x
▶
基底関数
h1(x) = 1, h2(x) = sin(2πx), h3(x) = cos(2πx), h4(x) =√ x
▶
基底関数モデル
∑q
w h (x) =w +w sin(2πx) +w cos(2πx) +w √ x
基底関数モデルの学習
▶
ステップ
1:入力データを変換nX×1
=
x1
x2 ... xn
7→
h1(x1) h2(x1) · · · hq(x1) h1(x2) h2(x2) · · · hq(x2)
... ... . .. ... h1(xn) h2(xn) · · · hq(xn)
:= Z
n×q
▶
ステップ
2: (最小二乗法などにより)線形モデルを学習
ˆw= (Z⊤Z)−1Z⊤y
▶
基底関数モデル
y=w⊤h(x) =
∑q k=1
wkhk(x)
ここで
h(x) = [h1(x), . . . , hq(x)]⊤∈Rq
多項式回帰
▶ 1
次多項式回帰
y=w0+w1x
▶ 2
次多項式回帰
y=w0+w1x+w2x2
▶ 3
次多項式回帰
y=w0+w1x+w2x2+w3x3
▶
基底関数(
m次多項式回帰の場合,
q= 1 +m)
h1(x) = 1, h2(x) =x, h3(x) =x2, . . . , hq(x) =xm
多項式回帰の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
1
次多項式(
=線形モデル)
多項式回帰の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
2
次多項式
多項式回帰の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
3
次多項式
多項式回帰の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
4
次多項式
多項式回帰の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
10
次多項式
多項式回帰の例(再掲)
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
区分多項式モデリング
▶
全体でなく一部に多項式をあてはめてはどうか
“https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載
区分
0次多項式=区分定数モデル
区分多項式モデリング
▶
全体でなく一部に多項式をあてはめてはどうか
“https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載
区分
1次多項式=区分線形モデル
区分多項式モデリング
▶
全体でなく一部に多項式をあてはめてはどうか
“https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載
区分
3次多項式
境界での連続性(区分線形モデル)
▶
境界で関数が連続であるとよい
“https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載 “https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載
不連続区分線形モデル 連続区分線形モデル
境界での連続性(区分多項式モデル)
“https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載 “https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載
不連続区分
3次多項式
0次連続区分
3次多項式
“https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載 “https://web.stanford.edu/~hastie/ElemStatLearn/printings/ESLII_print12.pdf”より転載
回帰スプラインモデル
▶
境界で
m−1次連続な
m次区分多項式モデルを「回帰スプライン モデル」と呼ぶ.
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
回帰スプラインモデルの学習(
1次回帰スプライン)
▶ 1
個の境界(ξ)を持つ
1次回帰スプライン
▶ x≤ξ
のモデル
y=w0L+wL1x
▶ x > ξ
のモデル
y=wR0 +wR1x
▶
制約付き最適化
( ˆwL0,wˆL1,wˆ0R,wˆR1) = arg min
wL0,w1L,wR0,wR1
∑
i:xi≤ξ
(yi−(wL0 +wL1xi))2
+ ∑
i:xi>ξ
(yi−(wR0 +wR1xi))2 subject to w0L+w1Lξ=wR0 +wR1ξ
制約付き最適化と自由度
▶
自由度
:=「未知変数の数」
−「等式制約の数」
▶
等式制約付き最適化問題の例
zmin1,z2 −z1z2
s.t. z1+z2= 4
▶
自由度
dfの等式制約付き問題
⇒df変数の制約なし最適化問題
▶ ℓ
個の境界(ℓ
+ 1個の部分領域)を持つ
m次回帰スプラインの自 由度は
4(ℓ+ 1)−3ℓ=ℓ+ 4
回帰スプラインの基底関数
▶
次数
m,境界数ℓ(ξ1< ξ2< . . . < ξℓ)の回帰スプライン
▶
基底関数
hk(x) =xk−1, k= 1, . . . , m+ 1
hk(x) = (x−ξk−(m+1))m+, k=m+ 1, . . . , m+ℓ+ 1
ただし
z+=
{ z ifz >0, 0 otherwise.
▶ 2
つの境界を持つ
3次回帰スプラインの場合の例
h1(x) = 1, h2(x) =x, h3(x) =x2, h4(x) =x3,h5(x) = (x−ξ1)3+, h6(x) = (x−ξ2)3+
演習問題1
▶ x=ξ
に
1つの境界を持つ
1次回帰スプラインの基底関数
h1(x), h2(x),h3(x)を定義にしたがって書け.
▶ x=ξ
に
1つの境界を持つ
1次回帰スプラインが
y=∑3 k=1
wkhk(x)
と表わされているとし,境界
ξとパラメータ
w1, w2, w3が
ξ= 1, w1= 3, w2=−2, w3= 5
であったとする.このスプライン関数を図示せよ.また,境界
ξ= 1において,2 つの部分領域の関数がつながっていることを確
認せよ.
演習問題1の解答
2
つのプローチ
▶
アプローチ
1:基底関数モデリング
▶
アプローチ
2:局所構造モデリング
最近傍回帰分析の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
k= 1
近傍回帰分析
最近傍回帰分析の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
k= 2
近傍回帰分析
最近傍回帰分析の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
k= 5
近傍回帰分析
最近傍回帰分析の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
k= 10
近傍回帰分析
演習問題2
▶
以下のデータを
xを横軸,
yを縦軸とする
2次元グラフにプロッ トせよ
x y
1 2
4 4
5 5
7 8
8 5
10 4 14 3 16 3
▶ k= 1,2
のときの
k最近傍回帰分析の結果を同グラフ上にプロッ
トせよ.
演習問題2の解答
最近傍回帰分析の例(再掲)
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
k= 1
近傍回帰分析
k= 2近傍回帰分析
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
k= 5
近傍回帰分析
k= 10近傍回帰分析
重み関数の導入
▶
三角形重み関数
x
Weight
▶
釣鐘型重み関数
x
Weight
局所定数回帰分析(
Nadaraya-Watson法)
▶
重み関数=カーネル関数
(例)
k(x;c, s) := exp (−(x−c)2 2s2
)
▶
局所定数回帰分析(テスト入力
x0に対する予測値) :
ˆy0=
∑n
i=1k(x0;xi, s)yi
∑n
i=1k(x0;xi, s)
局所定数回帰分析の例
10 20 30 40 50
−100−50050
Time after Collision [ms]
Head Acceleration
演習問題3の解答
ここまでのまとめ
▶
基底関数モデリング
▶
多項式回帰分析
▶
回帰スプライン
▶
局所構造モデリング
▶ k
最近傍回帰分析
▶
局所定数回帰分析,局所線形回帰分析
演習問題3
▶ x=ξ
において
1つの境界を持つ
3次回帰スプラインの基底関数を
h1(x) = 1, h2(x) =x, h3(x) =x2, h4(x) =x3, h5(x) = (x−ξ)3+
とするのが適切であることを示せ.具体的には,以下を示せ.
▶ x≤ξ
における
3次関数と
x > ξにおける
3次関数を,それぞれ,
fL(x) =aL+bLx+cLx2+dLx3, fR(x) =aR+bRx+cRx2+dRx3
としたとき,
aL, bL, cL, dLと
aR, bR, cR, dRを回帰スプライン基 底関数の係数
w1, w2, w3, w4, w5を使って表わせ.
▶
境界
ξにおいて関数値が等しい,すなわち,
fL(ξ) =fR(ξ)である ことを示せ.
▶
境界
ξにおいて
1次導関数値が等しい,すなわち,f
L′(ξ) =fR′(ξ)であることを示せ.
▶