知能システム論1 (10 2) - university of electro …taka.is.uec.ac.jp › ~suehiro ›...
TRANSCRIPT
知能システム論1 (10_2)
2015.6.24情報システム学研究科
情報メディアシステム学専攻
知能システム学講座
末廣尚士
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 2
- (擬似)逆行列と特異値分解
行列の特異値分解A=UWVT
V :(n×r )
A:(m×n)
U :(m×r)
W=diag (σ 1 ,σ 2 , ... ,σ r)
は、 の形で表現することが出来る
(σ 1≥σ 2≥...≥σ r≥0)
U, Vは列直交行列, rは行列のrank
U=(e1, e2, , , ,er) e i⋅e j= 1i= j
0i≠ j
列直交行列
つまり
UTU=I はI r×r
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 3
- 逆行列と特異値分解
m = n=r の場合(Aが正則行列の場合): 逆行列
A−1=VW−1UT
A−1A=VW−1UTUWVT=VWW−1VT=VVT
=I
W−1=diag (1 /σ 1 ,1/σ 2 , ... ,1 /σ n)
そうでない場合: 擬似逆行列
A+=VW−1UT
AA+A=UWVTVW−1UTUWVT=UWVT=A
W−1=diag (1 /σ 1 ,1/σ 2 , ... ,1 /σ r)
Aが正則
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 4
- 他の逆行列を求める方法との比較
m > n の場合
AA+A=A (ATA)−1ATA=A
・ が正則とは限らない.つまり が求められない.
・ 正則であったとしても、危ない場合がある
よくある方法
A+=(ATA)−1AT
ATA
問題点:
特異値分解を行うとこれらの問題点が明確になるし、対応を工夫することが出来る
ただし、計算コストはかかる。
(ATA)−1
(疑似)逆行列の計算には特異値分解を使おう!
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 5
- 特異値分解でみるヤコビアンの性質
J=UWVT
VT :(6×6)
J :(6×6)U:(6×6)
は、 の形で表現することが出来る
W=diag (σ 1 ,σ 2 , ... ,σ 6)
(直交行列)
(直交行列)
Δ p=JΔ q=UWVTΔq
Δ p̃=WΔ q̃
逆行列は軸方向に 倍すればよいことになる。1/σ i
q pと の座標軸(直交基底)をうまく選ぶと、軸方向に倍するだけの変換になる。σ i
(σ 1≥σ 2≥...≥σ 6≥0)
UTΔ p=WVTΔ q=>
Δ p̃=UTΔ p ,Δ q̃=VTΔqここで
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 6
- ヤコビアンの逆行列と特異点
Δ p=JΔ q=UWVTΔq
J−1=VW−1UT W−1=diag (1 /σ 1 ,1/σ 2 , ... ,1 /σ 6)
σ i が大きい: 動かしやすい方向
σ i が小さい: 動かしにくい方向
の最大と最小の比:特性値σ i
がゼロ: 動かせない方向がある 特異点ということ
一般に擬似逆行列では、 のところは計算しない。すなわち対応する の部分を0としたことと等しい。
さらに、アームの逆運動学解を求める場合などでは、 の場合も0にすることで、解の発散を防ぐ。
σ i
σ i=01/σ i
σ i≈0
Δq=VW−1UTΔ p Δ q̃=W−1
Δ p̃つまり
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 7
- 特異点
p= f (q)p
q
特異点
解が複数ある
山や谷(特異点)を越えられない
どちらへもいけない、またはどちらへ行くかわからない
qをうごかしてもpがほとんど変化しない
pを少し動かそうとするだけでqが大きく変化する
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 8
- 注意点
収束性 下手をすると大きく変化しすぎて違うところに飛び出
してしまう。
停留 local minimum に落ち込む
特異点 行列が正則でなくなる
複数解の存在 複数解のどれになるかの保障がない
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 9
- 特異値分解と最小二乗法
連立一次方程式の解 疑似逆行列の最小二乗,ノルム最小性 ニュートン法と(局所)最小二乗解
(ガウス・ニュートン法)
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 10
- 連立一次方程式の解(1)
b=A x b の次元を m, x の次元を n , Aはm x n 行列,r=rank(A)とする.
(1) Aが正方でフルランク(m=n=r)の場合:
x=A−1b
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 11
- 連立一次方程式の解(2)(2) m>n=r の場合:
x=A+bこのとき,x は, を最小とする解(最小二乗解)となる.∥A x−b ∥
A+=VW−1UTこれを特異値分解で考えてみる
b̃=UT b=WVT xここで
A x−b=UWVTVW−1UTb−b=U b̃−b
これが意味するところは, は で変えることのできる の部分空間への写像ということ. の残りの部分はその直交補空間であり で変えることが出来ない. ということで最小二乗(近似)解になっていることが分かる.
b̃ x b
b x
これは多数のデータをモデルにフィッティングする場合などに相当する.
(m>nなので とならない.)UUT=I
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 12
- 連立一次方程式の解(3)(3) m=r<n)の場合:
x=A+b
このとき,x は, で を最小とする解(ノルム最小解)となる.
A x=b
A+=VW−1UTこれを特異値分解で考えてみる
x̃=VT x=W−1UTbここで
A x=UWVTVW−1UTb=UUTb=b
これが意味するところは, は に影響する の部分空間への写像ということ. の残りの部分はその直交補空間であり に影響しない.その部分を としたことでノルム最小解になっていることが分かる.
x̃ b x
x b
∥x∥
(rank(A)=mなので となる.)UUT=I
0
これは冗長自由度をもつアームの制御の場合などに相当する.
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 13
- 連立一次方程式の解(4)(4) m>r, n>r の場合:
x=A+b
このとき,x は, および を最小とする解(最小二乗,ノルム最小解)となる.
これも同様に特異値分解で考えることができる.
∥x∥
これは計測データでは決めることのできないパラメタを含むモデルを多数のデータでフィッティングするような場合に相当する.
∥A x−b ∥
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 14
- 非線形最小二乗法
非線形最小化のニュートン法
二次微分を用いて極値を求める 非線形最小二乗(ガウス・ニュートン法)
誤差関数の二乗ノルムを最小化
誤差関数に対する一次のニュートン法
最小二乗性は疑似逆行列の最小二乗性による Levenberg-Marquardt(レベンバーグ・マーカート)法
ガウス・ニュートン法の収束性の改良版
極値から遠いときは最急降下法
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 15
- ガウス・ニュートン法
非線形最小二乗(ガウス・ニュートン法)のモデルフィッティングへの応用
f (x ,q)=0
がパラメタ を持つモデル に当てはまることを以下で表現する.x q
fこのときモデル に当てはまる複数の計測値 から,モデルパラメタ を推定することをここではモデルフィッティングと呼ぶことにする.
すなわち,
x kq
f
argminq
∑∥ f k (x k , q)∥2
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 16
- ガウス・ニュートン法
これを に関して分解し,計測値 が固定であることを考慮して簡略化して,改めてすべてを連立させてまとめると,
xkf k
argminq
∥ f (q)∥2
初期パラメタ から始めて一次のニュートン法で解く.
f (q)=0q0
本来,モデルや計測値に誤差がなく,パラメタが正しく求められていれば,
e0= f (q0)
argminq
∑∥ f k (x k , q)∥2
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 17
- ガウス・ニュートン法
のまわりでテーラー展開して
e0= f (q0)
f (q0+Δ q)≈ f (q0)+(∂ f∂q )Δ q=0
これを解くと
Δ q=−(∂ f∂q )
+
e0
q0
これを繰り返しにより収束させる.この(局所)最小二乗性は疑似逆行列が与える解の最小二乗性によって保証される.
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 18
- 特異値分解(numpy)
from numpy import *from numpy.linalg import *
vpythonでも使っている numpyモジュールに線形代数のルーチンがある。その中のsvd関数が特異値分解
u_mat,w_vec,v_trn=svd(a_mat,compute_uv=1,full_matrices=0)
a_mat=empty((M,N),dtype=float64)
(1) モジュールの読み込み
(2) 分解される行列
(3) 特異値分解の実行
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 19
- 特異値分解の使い方
連立一次方程式 を解く
u_mat,w_vec,v_trn=svd(a_mat,compute_uv=1,full_matrices=0)
a_mat=empty((M,N),dtype=float64)b_vec=empty((M),dtype=float64)w_size=min(M,N)w_inv=empty((w_size),dtype=float64)
(1) 行列の準備
(3) 特異値分解の実行
b=A x
(2) a_mat, b_mat の作成
for i in range(M) : for j in range(N): a_mat[i][j]=.... b_vec[i]= ....
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 20
- 特異値分解の使い方
( )の計算
w_max=max(w_vec) #w_max=w_vec[0] could be okw_min=w_max*rlimfor j in range(w_size) : if w_vec[j]<w_min : w_inv[j]=0.0 else : w_inv[j]=1.0/w_vec[j]
(4) 小さい特異値の切り捨て
(5) の計算
x=A+b
u_trn=u_mat.transpose()tmp=dot(u_trn,b_vec)tmp=tmp*w_invv_mat=v_trn.transpose()x_vec=dot(v_mat,tmp)
x=A+b x=VW−1UTb
VW−1UTb
2015年度前学期 電気通信大学大学院 情報システム学研究科情報メディアシステム学専攻 知能システム論1 21
- 次回予告 アームのヤコビアン