辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の...
Transcript of 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の...
辞書学習のアルゴリズム
樺島祥介(東工大総理工),
坂田綾香(統計数理研究所)
概要
• 辞書学習の定式化• 準備:スパース表現を求めるアルゴリズム
– 貪欲法:OrthogonalMatchingPursuit(OMP)– 確率推論:BeliefPropaga7on(BP)
• 既存の辞書学習のアルゴリズム– MethodofOp7malDirec7ons(MOD)– K-SVD
• Bayes推定を用いた辞書学習のアルゴリズム– BlindCalibra7on問題へのBPアルゴリズム
• まとめ
辞書学習の定式化
• P 個の M-次元ベクトルY={Y1,Y2,…,YP} • 問題:スパースな行列 X を使ってY = DX と表現できるよう
な辞書行列D を求めよ. – 因子分析,クラスタリングなど潜在変数を用いた多変量解析の一種.
Y D=
zero component
XM
P P
N
N
M
様々な方法による実現
• 辞書とスパース表現の最適化を交互に繰り返す.– OlshausenandField(1996),Enganetal(2000),Aharonetal(2006)
• ベイズ推論として定式化し,近似推論アルゴリズムを使う.– Schniteretal(2012),Krzakalaetal(2013),Kabashimaetal(2014)
• 長いベクトルからのパッチで辞書を構成し自由度を低減.– Aharonetal(2008)
minX,D
X 0 subj. to Y −DX 2 ≤ ε or minX,D
Y −DX 2 subj. to X 0 ≤ K
P D,X |Y( ) = P Y −DX( )P D( )P X( )P Y( ) ⇒ Beliefpropaga7onで近似的に実現
「行列」ではなく「ベクトル」の最適化問題になるので相対的に楽.
準備:スパース表現を求めるアルゴリズム
• 辞書(D)の学習には,固定された辞書に対して,スパース表現(X)を求めるアルゴリズムを内部ルーチンとして使う.
• 辞書学習に入る前に,準備として,以後必要になる2つのアルゴリズムを紹介しておく.
貪欲法(GreedyAlgorithms)
• 核となるアイデア– サンプルベクトル は行列 の列ベクトル に関する線形和
– を単一の列ベクトル の成分のみで近似することを考える.– 最も良く近似するものからサポート に加えていく.
= Ay
a1a2 aN!x1x2
xN
! = x1a1 + x2a2 +…+ xNaN
y ai
y aiS
A
単一の列ベクトルでの近似
x̂i = argminxi
y − xiai2 =
ai ·y( )ai
2
ε(i) = minxiy − xiai
2 = y 2 −ai ·y( )2ai
2
⎧
⎨
⎪⎪⎪
⎩
⎪⎪⎪
a1·y( )a1
2 a1
a2 ·y( )a2
2 a2
a1
a2
ピタゴラスの定理
最良の近似は「射影」
• 横長行列なので列ベクトルは互いに直交しない• 射影した結果が最も長くなる列ベクトルからサポ ートに加える• 「近似できたところ」は取り除く• 「近似しきれていないところ」に同様のことをする
• Ini$aliza$on:Ini7alize,andset
• Mainitera$on:Incrementby1andperformthefollowings:– Sweep:
– UpdateSupport:
– UpdateProvisionalSolu$on:
– UpdateResidual:
– StoppingRule:Stopifholds.Otherwise,applyanotheritera7on.
k = 0x0 = 0, r0 = y − Ax0 , S0 = φ
k
ε(i) = minxi
xiai − rk−1 2 = rk−1
2−ai ·r
k−1( )2ai
2
i0 = arg mini∉Sk−1
ε i( ){ }, Sk = Sk−1 ∪ i0{ }
x̂k = argminxSk
y − ASkxSk
2= A
SkT A
Sk( )−1 ASkT y( )
rk = y − ASkx̂k = I − A
SkASkT A
Sk( )−1 ASkT( )yrk < ε0
近似誤差の評価
サポートの更新
サポート内での最良解
残差の評価
OrthogonalMatchingPursuit(OMP)
考察
• 必要計算量:最終的なサポートの大きさを とすると
• スパース解を確実に求めることができる
k0 ~O(1)( )
O(MNk0 ) O(MNk0k0 )列挙法(厳密)大幅な削減OMP
確率推論
• 核となるアイデア– 信号復元=計測データからの統計的推定問題,と捉える.– 「生成モデル」の知見を利用することで,より高い復元性能を期待.
– 大自由度の分布から情報を取り出す(=確率推論:平均値を計算する,最大化する,など)ことは一般に計算困難
– 確率推論の研究で提案されている様々な「近似推論アルゴリズム」を利用する.
P x | y,A( ) = 1Z
δ yµ − Aµi xii=1
N
∑⎛⎝⎜
⎞⎠⎟µ=1
M
∏ P xi( )i=1
N
∏スパースな信号を生成する事前分布
ベイズの公式
事後分布
ベイズ最適な復元法
• MSEについて以下の不等式が成立する.
• 等号は以下の復元法(mmse復元法)の場合に成立.
MSE ≥ x 2
x,y− x x|y
2
y
x̂opt y,A( ) = xP x | y,A( )x∑ = x x|y :事後分布での平均値
ただし,実行は計算量的に困難
グラフィカルモデル
• 確率分布が以下のように表現される場合を考える
• 依存関係をファクターグラフ(2部グラフ)で表現する
P x( ) = 1Z
ψ a xa( )a=1
M
∏ψ a ·( ) ≥ 0 :
xa : subset of x1, x2 ,…, xN{ }
x1
x2 x3
x4
x5ψ 1(x1, x2 , x3 )
ψ 2 (x3, x4 , x5 )P(x) = 1Zψ 1(x1, x2 , x3 )ψ 2 (x3, x4 , x5 )
ポテンシャル関数
• 完全2部グラフ+リーフになる.
信号復元問題のグラフィカルモデル
P x | y,A( ) = 1Z
δ yµ − Aµi xii=1
N
∑⎛⎝⎜
⎞⎠⎟µ=1
M
∏ P xi( )i=1
N
∏
δ yµ − Aµi xii=1
N
∑⎛⎝⎜
⎞⎠⎟
P xi( )
µ = 1,2,…,M( ) i = 1,2,…,N( )
xi i = 1,2,…,N( )
M = 3 N = 4
Beliefpropaga7on(BP)• (近似的な)周辺分布を効率的に計算するアルゴリズム
mi→µ xi( ) =α i→µP xi( ) m̂ν→i xi( )ν≠µ∏
m̂µ→i xi( ) =α µ→i dx jmj→µ x j( )δ yµ − Aµi xi − Aµi x jj≠i∑⎛
⎝⎜⎞
⎠⎟j≠i∏∫
反復計算
収束
Belief=(近似的な)周辺分布
bi xi( ) =α iP xi( ) m̂µ→i xi( )µ=1
M
∏
メッセージ(補助関数)の収束解を使って
近似的メッセージ伝搬(AMP)
• 行列 Aが大きなランダム行列の場合には以下が使える(YK(2003),Donohoetal(2009),Krzakalaetal(2012))– メッセージ評価にガウス近似が使える⇒平均と分散で表現できる– “1つ抜き”を摂動的に扱うことができる⇒変数の数 MxN→M+N
aµ =1
1+ χyµ − Aµimi
i=1
N
∑ + χaµ⎛⎝⎜
⎞⎠⎟
, Γ = 11+ χ
Aµi2
µ=1
M
∑hi = Aµiaµ
µ=1
M
∑ + Γmi
mi =∂∂hi
log dxP x( )exp − Γ2x2 + hix
⎛⎝⎜
⎞⎠⎟∫⎡⎣⎢⎤⎦⎥
χ = Aµi2 ∂∂hi
log dxP x( )exp − Γ2x2 + hix
⎛⎝⎜
⎞⎠⎟∫⎡⎣⎢⎤⎦⎥i=1
N
∑
⎧
⎨
⎪⎪⎪⎪
⎩
⎪⎪⎪⎪
ベイズ最適な復元信号(の近似値)
x̂opt y,A( ) =m
考察
• 計測が仮定されたモデルに従っている場合,高い信号復元効率
• 計測が仮定されたモデルに従っていない場合,かえって性能劣化– 収束するとは限らない– スパース解になるとは限らない
既存の辞書学習アルゴリズム
• MethodofOrthogonalDirec7on(MOD)– Enganetal(2000)
• K-SVD– Aharonetal(2006)
辞書学習の定式化(再掲)
• P 個の M-次元ベクトルY={Y1,Y2,…,YP} • 問題:スパースな行列 X を使ってY = DX と表現できるよう
な辞書行列D を求めよ. – 因子分析,クラスタリングなど潜在変数を用いた多変量解析の一種.
Y D=
zero component
XM
P P
N
N
M
MethodofOp7malDirec7on(MOD)
• 核となるアイデア– 残差平方和最小原理によって行列を分解する
– 以下を交互に繰り返して最適化
• 辞書 Dを固定して最適なスパース表現 Xを求める• スパース表現 Xを固定して最適な辞書 Dを求める
minD,X
Y − DX 22{ }
• Ini7aliza7on:Setsothateachcolumnisnormalizedtounity.Setthecounterk=0.
• Mainitera7on:Incrementkby1.– SparseCodingState
– MODDic7onaryUpdateState
– StoppingRule:Stopifthechangeinissmallenough
D0 ∈RM×N
Forl=1,2,…,P
x̂l = argminxl
yl − Dk−1xl 2
2{ } subj. to xl 0≤ K UseOMP
Dk = argminD
Y − DX̂k 2
2{ } =YXkT XkXk
T( )−1
Y − DX 22
擬似コード
手で解ける
人工データでの実験
D:30x60のランダム行列,X:4000サンプルのK(=4)-sparseベクトルMODで Y=DX+n→(D,X)を実験
正しく同定されたカラムの割合(%) |Y-DX|2
M.Elad(2010)SparseandRedundantRepresenta7ons(NY:Springer)より
MODで画像の圧縮をやってみた
• 512x512の画像を8x8=64のパッチ 64x64=4096個に分解.• 4096個すべてのパッチを使って,64x64の辞書を作成.
スパース度はK=8(⇒8/64=1/8のサイズに圧縮).• 学習後の辞書を使って,各パッチをスパース表現で近似.
– 用途:有歪圧縮,ノイズ耐性,etc.
8x8のパッチ
1次元化
64次元のベクトル
64x64の辞書=
ー
表現
512個のデータから作成
オリジナル(512x512)
512個のパッチからK=8のMODで辞書学習K=8の圧縮(R=0.14)
ランダムな辞書K=8の圧縮(R=0.14)
学習後の辞書+K=6の圧縮(R=0.11)
学習後の辞書+K=4の圧縮(R=0.078)
学習後の辞書+K=2の圧縮(R=0.047)
PSNR=32.6[dB]
PSNR=31.4[dB] PSNR=29.7[dB] PSNR=26.7[dB]
PSNR=17.6[dB]
MODによって出来上がった辞書
良いところ,悪いところ
• 良いところ– アルゴリズムが素朴– 簡単な割にソコソコうまくいく
• 悪いところ– スパース性が高いと辞書更新(MODDic7onaryUpdateState)のところ
でランク落ちしてエラーが出る
K-SVD
• 核となるアイデア– 残差平方和最小原理によって行列を分解する
– 辞書 Dを一斉にではなく,カラム毎に変更していく.
minD,X
Y − DX 22{ }
Y − DX 22 = Y − d j
j≠i∑ x j
T⎛
⎝⎜⎞
⎠⎟− dixi
T
止めておく
最適化
絵を使って説明
Y D X= d2 x2
T
d2が関わっているカラム
= d2 x2T+
d2が関わっていない成分
絵を使って説明
Y
d2が関わっているカラム
= d2 x2T
d2が関わっていない成分
−d j
j≠2∑ x j
T
d2 が関わっていない成分が正しく求まっていれば残差 の1ランク分解で と は正しく求まる.
Y − d jj≠2∑ x j
T
d2 x2T
絵を使って説明
• とはいえ,学習途中では各カラムは正しく求まっていないので,1ランク近似(=SVDで最大特異値成分を求める)をしてもスパースな X は求まらない.
• そこで,Dを固定した下でOMPによりスパースな Xを求め,Dの更新時に非ゼロ成分の位置を固定するためにXの情報を使う.
Y= d2 x2
T−d j
j≠2∑ x j
T
− ⇒SVDで1ランク近似
現時点での にもとづいて非ゼロ位置を固定
x2T
d2′
擬似コード
• Ini7aliza7on:Setsothateachcolumnisnormalizedtounity.Setthecounterk=0.
• Mainitera7on:Incrementkby1.– SparseCodingState
– K-SVDDic7onaryUpdateState
– StoppingRule:Stopifthechangeinissmallenough
D0 ∈RM×N
Forl=1,2,…,P
x̂l = argminxl
yl − Dk−1xl 2
2{ } subj. to xl 0≤ K UseOMP
Y − DX 22
Fori=1,2,…,N
• Definethegroupofexamplesthatuse• Computetheresidualmatrix• Restrictbychoosingonlycolumnsof,andobtain• ApplySVDto,andupdatetothe1stleceigenvector
Qi diEi = Y − d jx j
Tj≠i∑
EiREi Qi
EiR di
人工データでの実験
D:30x60のランダム行列,X:4000サンプルのK(=4)-sparseベクトルMODで Y=DX+n→(D,X)を実験
正しく同定されたカラムの割合(%) |Y-DX|2
M.Elad(2010)SparseandRedundantRepresenta7ons(NY:Springer)より
MODよりうまく行く!
K-SVDで画像の圧縮をやってみた
• 512x512の画像を8x8=64のパッチ 64x64=4096個に分解.• 4096個すべてのパッチを使って,64x64の辞書を作成.
スパース度はK=8(⇒8/64=1/8のサイズに圧縮).• 学習後の辞書を使って,各パッチをスパース表現で近似.
– 用途:有歪圧縮,ノイズ耐性,etc.
8x8のパッチ
1次元化
64次元のベクトル
64x64の辞書=
ー
表現
512個のデータから作成
オリジナル(512x512)
512個のパッチからK=8のKSVDで辞書学習K=8の圧縮(R=0.14)
ランダムな辞書K=8の圧縮(R=0.14)
学習後の辞書+K=6の圧縮(R=0.11)
学習後の辞書+K=4の圧縮(R=0.078)
学習後の辞書+K=2の圧縮(R=0.047)
PSNR=32.7[dB]
PSNR=31.3[dB] PSNR=29.4[dB] PSNR=26.6[dB]
PSNR=17.3[dB]
K-SVDによって出来上がった辞書
良いところ,悪いところ
• 良いところ– (一般化)逆行列の計算がないのでランク落ちによるエラーの心配が
ない– 人工データでは,MODよりも高い性能
• 悪いところ– 少しアルゴリズムが複雑– MODとくらべて計算量が多い– 実データではMODとそれほど性能差がない
Bayes推定を用いた辞書学習のアルゴリズム
• Blindcalibra7on– Krzakalaetal(2013)
• P 個の M-次元ベクトルY={Y1,Y2,…,YP},ノイズの加わった辞書Dobs=D+W
• 問題:辞書ノイズ W,観測ノイズ N の統計性がともに分かっているときに,Dobs を正しい辞書D に較正(calibration)し,スパースな表現 X も求めよ – Balzano and Nowak (2007)
BlindCalibra7on問題の定式化
Y D=
zero component
XM
P P
N
N
M + NYM
P
D+WN
M
なぜ,素直な辞書学習を考えないのか?
• 辞書学習をベイズ推論(=BP)で扱うのは難しい.– 行列積の対称性に起因する収束性の悪化
• Calibra7on問題では,ノイズで乱された辞書を与えることで対称性が破られるため,ある程度BPがうまく動作する.
BPにもとづくアルゴリズム
• 核となるアイデア– ベイズ推論の問題として定式化する
– BPを利用してベイズ最適解を近似的に求める
P D,X Y,Dobs( ) = P Y | DX( )P D Dobs( )P X( )P Y Dobs( )
D̂ Y,Dobs( ) = d∫ DdXP D,X Y,Dobs( )D
グラフィカルモデル
Krzakala,MezardandZdeborova,inProc.ISIT2013659–663(2013)より
アルゴリズムの導出
yµl
exp −yµl − Dµ j x jl
j∑⎛
⎝⎜⎞
⎠⎟
2
2Δ
⎛
⎝
⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟
x1l
x2l
xNl
Dµ1
Dµ2
DµN
P xil( ) P Dµi Dµiopt( )
! ! ! !
Dµ1opt
Dµ2opt
DµNopt
mil→µl xil( )∝P xil( ) m̂νl→il xil( )ν≠µ
M
∏
アルゴリズムの導出
yµl
exp −yµl − Dµ j x jl
j∑⎛
⎝⎜⎞
⎠⎟
2
2Δ
⎛
⎝
⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟
x1l
x2l
xNl
Dµ1
Dµ2
DµN
P xil( ) P Dµi Dµiopt( )
! ! ! !
Dµ1opt
Dµ2opt
DµNopt
nµi→µl Dµi( )∝P Dµi Dµiobs( ) n̂µn→µi Dµi( )
n≠l
P
∏
アルゴリズムの導出
yµl
exp −yµl − Dµ j x jl
j∑⎛
⎝⎜⎞
⎠⎟
2
2Δ
⎛
⎝
⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟
x1l
x2l
xNl
Dµ1
Dµ2
DµN
P xil( ) P Dµi Dµiopt( )
! ! ! !
Dµ1opt
Dµ2opt
DµNopt
m̂µl→il xil( )∝ dxjl dDµkk∏
j≠i∏ exp −
yµl − Dµ j x jlj∑( )2
2Δ
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
∫
× nµk→µl Dµk( ) mjl→µl x jl( )j≠i∏
k∏
アルゴリズムの導出
yµl
exp −yµl − Dµ j x jl
j∑⎛
⎝⎜⎞
⎠⎟
2
2Δ
⎛
⎝
⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟
x1l
x2l
xNl
Dµ1
Dµ2
DµN
P xil( ) P Dµi Dµiopt( )
! ! ! !
Dµ1opt
Dµ2opt
DµNopt
n̂µl→µi Dµi( )∝ dxjlj∏∫ dDµk
k≠i∏ exp −
yµl − Dµ j x jlj∑( )2
2Δ
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
× nµk→µl Dµk( ) mjl→µl x jl( )j∏
k≠i∏
BPによるBlindCalibra7onアルゴリズム
mil→µl xil( )∝P xil( ) m̂νl→il xil( )ν≠µ
M
∏nµi→µl Dµi( )∝P Dµi Dµi
obs( ) n̂µn→µi Dµi( )n≠l
P
∏
m̂µl→il xil( )∝ dxjl dDµkk∏
j≠i∏ exp −
yµl − Dµ j x jlj∑( )2
2Δ
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
∫
× nµk→µl Dµk( ) mjl→µl x jl( )j≠i∏
k∏
n̂µl→µi Dµi( )∝ dxjlj∏∫ dDµk
k≠i∏ exp −
yµl − Dµ j x jlj∑( )2
2Δ
⎛
⎝
⎜⎜⎜
⎞
⎠
⎟⎟⎟
× nµk→µl Dµk( ) mjl→µl x jl( )j∏
k≠i∏
メッセージ(補助関数)伝搬
周辺分布の導出
yµl
exp −yµl − Dµ j x jl
j∑⎛
⎝⎜⎞
⎠⎟
2
2Δ
⎛
⎝
⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟
x1l
x2l
xNl
Dµ1
Dµ2
DµN
P xil( ) P Dµi Dµiopt( )
! ! ! !
Dµ1opt
Dµ2opt
DµNopt
mil xil( )∝P xil( ) m̂νl→il xil( )µ=1
M
∏ nµi Dµi( )∝P Dµi Dµiobs( ) n̂µn→µi Dµi( )
n=1
P
∏
BPによるBlindCalibra7onアルゴリズム
bilX xil( )∝P xil( ) m̂νl→il xil( )
ν≠µ
M
∏bµiD Dµi( )∝P Dµi Dµi
obs( ) n̂µn→µi Dµi( )n≠l
P
∏
周辺分布の評価
学習結果
最適化したい評価基準にもとづいて,周辺分布から算出
BPによるBlindCalibra7onアルゴリズム
• 大規模なシステムの場合には以下が使える(と仮定)(YK(2003),Donohoetal(2009),Krzakalaetal(2012))– メッセージ評価にガウス近似が使える⇒平均と分散で表現できる– “1つ抜き”を摂動的に扱うことができる⇒変数の数
MNxNP→MN+NP
• 最終的に更新式が得られるが,複雑なので具体的な詳細は省略.
人工データに対する結果(Krzakalaetal(2013))観測ノイズの分散10-8,辞書ノイズの分散10-4,M/N=0.3,ρ=0.1
サンプル数/N
Krzakala,MezardandZdeborova,inProc.ISIT2013659–663(2013)より
人工データに対する結果(Krzakalaetal(2013))観測ノイズの分散10-8,辞書ノイズの分散10-2,M/N=0.5,ρ=0.2
サンプル数/N
次転移
生
Krzakala,MezardandZdeborova,inProc.ISIT2013659–663(2013)より
良いところ,悪いところ
• 良いところ– 事前確率,ノイズ過程のモデル化が正しい場合には,少なくとも人工
データについてはうまく行く
• 悪いところ– モデルの仮定が正しくないと動作は不安定– 実データについては多くの場合モデルの仮定は正しくないので,なか
なか使える場面がない
まとめ
• 代表的な辞書学習アルゴリズムとBPにもとづいたアルゴリズムについて紹介した– MOD,K-SVD,BlindCalibra7on(beliefpropaga7on)
• 多くのアルゴリズムは内部ルーチンとして,スパース解探索アルゴリズムを使う.なので,その知識が必要– OMP,beliefpropaga7on,etc.
まとめ
• 多くの人が関心を持っている話題であるが,実用で十分有用なレベルにあるのかは不明– 調べた範囲では,いくつかのグループの画像に対するデモ程度の結
果しかアプリケーションの事例が見当たらない
• 決定版の方法は,まだ存在せず,今後も研究の余地が広く残されている(?)