辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の...

53
辞書学習のアルゴリズム 樺島祥介(東工大総理工), 坂田綾香(統計数理研究所)

Transcript of 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の...

Page 1: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

辞書学習のアルゴリズム

樺島祥介(東工大総理工),

坂田綾香(統計数理研究所)

Page 2: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

概要

•  辞書学習の定式化•  準備:スパース表現を求めるアルゴリズム

–  貪欲法:OrthogonalMatchingPursuit(OMP)–  確率推論:BeliefPropaga7on(BP)

•  既存の辞書学習のアルゴリズム–  MethodofOp7malDirec7ons(MOD)–  K-SVD

•  Bayes推定を用いた辞書学習のアルゴリズム–  BlindCalibra7on問題へのBPアルゴリズム

•  まとめ

Page 3: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

辞書学習の定式化

•  P 個の M-次元ベクトルY={Y1,Y2,…,YP} •  問題:スパースな行列 X を使ってY = DX と表現できるよう

な辞書行列D を求めよ. –  因子分析,クラスタリングなど潜在変数を用いた多変量解析の一種.

Y D=

zero component

XM

P P

N

N

M

Page 4: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

様々な方法による実現

•  辞書とスパース表現の最適化を交互に繰り返す.–  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で近似的に実現

「行列」ではなく「ベクトル」の最適化問題になるので相対的に楽.

Page 5: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

準備:スパース表現を求めるアルゴリズム

•  辞書(D)の学習には,固定された辞書に対して,スパース表現(X)を求めるアルゴリズムを内部ルーチンとして使う.

•  辞書学習に入る前に,準備として,以後必要になる2つのアルゴリズムを紹介しておく.

Page 6: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

貪欲法(GreedyAlgorithms)

•  核となるアイデア–  サンプルベクトル は行列 の列ベクトル に関する線形和

–  を単一の列ベクトル  の成分のみで近似することを考える.–  最も良く近似するものからサポート に加えていく.

= Ay

a1a2 aN!x1x2

xN

! = x1a1 + x2a2 +…+ xNaN

y ai

y aiS

A

Page 7: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

単一の列ベクトルでの近似

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

ピタゴラスの定理

最良の近似は「射影」

• 横長行列なので列ベクトルは互いに直交しない• 射影した結果が最も長くなる列ベクトルからサポ ートに加える• 「近似できたところ」は取り除く• 「近似しきれていないところ」に同様のことをする

Page 8: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

•  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)

Page 9: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

考察

•  必要計算量:最終的なサポートの大きさを とすると

•  スパース解を確実に求めることができる

k0 ~O(1)( )

O(MNk0 ) O(MNk0k0 )列挙法(厳密)大幅な削減OMP

Page 10: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

確率推論

•  核となるアイデア–  信号復元=計測データからの統計的推定問題,と捉える.–  「生成モデル」の知見を利用することで,より高い復元性能を期待.

–  大自由度の分布から情報を取り出す(=確率推論:平均値を計算する,最大化する,など)ことは一般に計算困難

–  確率推論の研究で提案されている様々な「近似推論アルゴリズム」を利用する.

P x | y,A( ) = 1Z

δ yµ − Aµi xii=1

N

∑⎛⎝⎜

⎞⎠⎟µ=1

M

∏ P xi( )i=1

N

∏スパースな信号を生成する事前分布

ベイズの公式

事後分布

Page 11: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

ベイズ最適な復元法

•  MSEについて以下の不等式が成立する.

•  等号は以下の復元法(mmse復元法)の場合に成立.

MSE ≥ x 2

x,y− x x|y

2

y

x̂opt y,A( ) = xP x | y,A( )x∑ = x x|y :事後分布での平均値

ただし,実行は計算量的に困難

Page 12: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 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 )

ポテンシャル関数

Page 13: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

•  完全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

Page 14: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

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

メッセージ(補助関数)の収束解を使って

Page 15: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

近似的メッセージ伝搬(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

Page 16: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

考察

•  計測が仮定されたモデルに従っている場合,高い信号復元効率

•  計測が仮定されたモデルに従っていない場合,かえって性能劣化–  収束するとは限らない–  スパース解になるとは限らない

Page 17: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

既存の辞書学習アルゴリズム

•  MethodofOrthogonalDirec7on(MOD)–  Enganetal(2000)

•  K-SVD–  Aharonetal(2006)

Page 18: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

辞書学習の定式化(再掲)

•  P 個の M-次元ベクトルY={Y1,Y2,…,YP} •  問題:スパースな行列 X を使ってY = DX と表現できるよう

な辞書行列D を求めよ. –  因子分析,クラスタリングなど潜在変数を用いた多変量解析の一種.

Y D=

zero component

XM

P P

N

N

M

Page 19: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

MethodofOp7malDirec7on(MOD)

•  核となるアイデア–  残差平方和最小原理によって行列を分解する

–  以下を交互に繰り返して最適化

•  辞書 Dを固定して最適なスパース表現 Xを求める•  スパース表現 Xを固定して最適な辞書 Dを求める

minD,X

Y − DX 22{ }

Page 20: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

•  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

擬似コード

手で解ける

Page 21: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

人工データでの実験

D:30x60のランダム行列,X:4000サンプルのK(=4)-sparseベクトルMODで Y=DX+n→(D,X)を実験

正しく同定されたカラムの割合(%) |Y-DX|2

M.Elad(2010)SparseandRedundantRepresenta7ons(NY:Springer)より

Page 22: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

MODで画像の圧縮をやってみた

•  512x512の画像を8x8=64のパッチ 64x64=4096個に分解.•  4096個すべてのパッチを使って,64x64の辞書を作成.

スパース度はK=8(⇒8/64=1/8のサイズに圧縮).•  学習後の辞書を使って,各パッチをスパース表現で近似.

–  用途:有歪圧縮,ノイズ耐性,etc.

8x8のパッチ

1次元化

64次元のベクトル

64x64の辞書=

表現

512個のデータから作成

Page 23: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

オリジナル(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]

Page 24: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

MODによって出来上がった辞書

Page 25: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

良いところ,悪いところ

•  良いところ–  アルゴリズムが素朴–  簡単な割にソコソコうまくいく

•  悪いところ–  スパース性が高いと辞書更新(MODDic7onaryUpdateState)のところ

でランク落ちしてエラーが出る

Page 26: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

K-SVD

•  核となるアイデア–  残差平方和最小原理によって行列を分解する

–  辞書 Dを一斉にではなく,カラム毎に変更していく.

minD,X

Y − DX 22{ }

Y − DX 22 = Y − d j

j≠i∑ x j

T⎛

⎝⎜⎞

⎠⎟− dixi

T

止めておく

最適化

Page 27: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

絵を使って説明

Y D X= d2 x2

T

d2が関わっているカラム

= d2 x2T+

d2が関わっていない成分

Page 28: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

絵を使って説明

Y

d2が関わっているカラム

= d2 x2T

d2が関わっていない成分

−d j

j≠2∑ x j

T

d2  が関わっていない成分が正しく求まっていれば残差         の1ランク分解で   と   は正しく求まる.

Y − d jj≠2∑ x j

T

d2 x2T

Page 29: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

絵を使って説明

•  とはいえ,学習途中では各カラムは正しく求まっていないので,1ランク近似(=SVDで最大特異値成分を求める)をしてもスパースな X は求まらない.

•  そこで,Dを固定した下でOMPによりスパースな Xを求め,Dの更新時に非ゼロ成分の位置を固定するためにXの情報を使う.

Y= d2 x2

T−d j

j≠2∑ x j

T

− ⇒SVDで1ランク近似

現時点での   にもとづいて非ゼロ位置を固定

x2T

d2′

Page 30: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

擬似コード

•  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

Page 31: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

人工データでの実験

D:30x60のランダム行列,X:4000サンプルのK(=4)-sparseベクトルMODで Y=DX+n→(D,X)を実験

正しく同定されたカラムの割合(%) |Y-DX|2

M.Elad(2010)SparseandRedundantRepresenta7ons(NY:Springer)より

MODよりうまく行く!

Page 32: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

K-SVDで画像の圧縮をやってみた

•  512x512の画像を8x8=64のパッチ 64x64=4096個に分解.•  4096個すべてのパッチを使って,64x64の辞書を作成.

スパース度はK=8(⇒8/64=1/8のサイズに圧縮).•  学習後の辞書を使って,各パッチをスパース表現で近似.

–  用途:有歪圧縮,ノイズ耐性,etc.

8x8のパッチ

1次元化

64次元のベクトル

64x64の辞書=

表現

512個のデータから作成

Page 33: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

オリジナル(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]

Page 34: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

K-SVDによって出来上がった辞書

Page 35: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

良いところ,悪いところ

•  良いところ–  (一般化)逆行列の計算がないのでランク落ちによるエラーの心配が

ない–  人工データでは,MODよりも高い性能

•  悪いところ–  少しアルゴリズムが複雑–  MODとくらべて計算量が多い–  実データではMODとそれほど性能差がない

Page 36: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

Bayes推定を用いた辞書学習のアルゴリズム

•  Blindcalibra7on–  Krzakalaetal(2013)

Page 37: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

•  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

Page 38: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

なぜ,素直な辞書学習を考えないのか?

•  辞書学習をベイズ推論(=BP)で扱うのは難しい.–  行列積の対称性に起因する収束性の悪化

•  Calibra7on問題では,ノイズで乱された辞書を与えることで対称性が破られるため,ある程度BPがうまく動作する.

Page 39: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

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

Page 40: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

グラフィカルモデル

Krzakala,MezardandZdeborova,inProc.ISIT2013659–663(2013)より

Page 41: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

アルゴリズムの導出

yµl

exp −yµl − Dµ j x jl

j∑⎛

⎝⎜⎞

⎠⎟

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

Page 42: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

アルゴリズムの導出

yµl

exp −yµl − Dµ j x jl

j∑⎛

⎝⎜⎞

⎠⎟

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

Page 43: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

アルゴリズムの導出

yµl

exp −yµl − Dµ j x jl

j∑⎛

⎝⎜⎞

⎠⎟

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

⎜⎜⎜

⎟⎟⎟

× nµk→µl Dµk( ) mjl→µl x jl( )j≠i∏

k∏

Page 44: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

アルゴリズムの導出

yµl

exp −yµl − Dµ j x jl

j∑⎛

⎝⎜⎞

⎠⎟

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

⎜⎜⎜

⎟⎟⎟

× nµk→µl Dµk( ) mjl→µl x jl( )j∏

k≠i∏

Page 45: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

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

⎜⎜⎜

⎟⎟⎟

× 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

⎜⎜⎜

⎟⎟⎟

× nµk→µl Dµk( ) mjl→µl x jl( )j∏

k≠i∏

メッセージ(補助関数)伝搬

Page 46: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

周辺分布の導出

yµl

exp −yµl − Dµ j x jl

j∑⎛

⎝⎜⎞

⎠⎟

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

Page 47: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

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

周辺分布の評価

学習結果

最適化したい評価基準にもとづいて,周辺分布から算出

Page 48: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

BPによるBlindCalibra7onアルゴリズム

•  大規模なシステムの場合には以下が使える(と仮定)(YK(2003),Donohoetal(2009),Krzakalaetal(2012))–  メッセージ評価にガウス近似が使える⇒平均と分散で表現できる–  “1つ抜き”を摂動的に扱うことができる⇒変数の数

MNxNP→MN+NP

•  最終的に更新式が得られるが,複雑なので具体的な詳細は省略.

Page 49: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

人工データに対する結果(Krzakalaetal(2013))観測ノイズの分散10-8,辞書ノイズの分散10-4,M/N=0.3,ρ=0.1

サンプル数/N

Krzakala,MezardandZdeborova,inProc.ISIT2013659–663(2013)より

Page 50: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

人工データに対する結果(Krzakalaetal(2013))観測ノイズの分散10-8,辞書ノイズの分散10-2,M/N=0.5,ρ=0.2

サンプル数/N

次転移

Krzakala,MezardandZdeborova,inProc.ISIT2013659–663(2013)より

Page 51: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

良いところ,悪いところ

•  良いところ–  事前確率,ノイズ過程のモデル化が正しい場合には,少なくとも人工

データについてはうまく行く

•  悪いところ–  モデルの仮定が正しくないと動作は不安定–  実データについては多くの場合モデルの仮定は正しくないので,なか

なか使える場面がない

Page 52: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

まとめ

•  代表的な辞書学習アルゴリズムとBPにもとづいたアルゴリズムについて紹介した–  MOD,K-SVD,BlindCalibra7on(beliefpropaga7on)

•  多くのアルゴリズムは内部ルーチンとして,スパース解探索アルゴリズムを使う.なので,その知識が必要–  OMP,beliefpropaga7on,etc.

Page 53: 辞書学習のアルゴリズム - ieice.org · 辞書学習の定式化 • p 個の m-次元ベクトルy={y 1,y 2,…,y p} • 問題:スパースな行列 x を使ってy =

まとめ

•  多くの人が関心を持っている話題であるが,実用で十分有用なレベルにあるのかは不明–  調べた範囲では,いくつかのグループの画像に対するデモ程度の結

果しかアプリケーションの事例が見当たらない

•  決定版の方法は,まだ存在せず,今後も研究の余地が広く残されている(?)