More Related Content
Similar to Sparse Codingをなるべく数式を使わず理解する(PCAやICAとの関係) (20)
More from Teppei Kurita (6)
Sparse Codingをなるべく数式を使わず理解する(PCAやICAとの関係)
- 2. 背景
• 10年前に画像処理界隈で流行っていたSparse Codingを改めて振り返ってみる
• 結局なんだったんだっけ?
• 数式をなるべく使わない
• 何か気づきがあるかも
https://towardsdatascience.com/cyber-security-sparse-coding-and-anomaly-detection-1b0508d041c8
https://www.sciencedirect.com/topics/engineering/sparse-coding
Sparse Codingのイメージ(ノイズ除去等によく使われていた)
- 10. PCA (主成分分析)とICA (独立成分分析)
詳解 独立成分分析
アーポ ビバリネン (著)
詳しいことはこの本に
(高いけどとても良書)
PCAそれぞれ
N次元
観測データ
N
それぞれ
N次元
観測データ
N
ICA
N次元直交基底
N次元基底
それぞれ直交
発生確率
それぞれ独立
PCA(主成分分析)は観測データの無相関性を保証する直交基底を作成する
ICA(独立成分分析)は観測データの無相関性を保証し統計的に独立である基底を作成する
- 24. SPARSE CODING(ノイズ除去タスク、数式あり)
min
𝐃𝐃∈𝐶𝐶,𝐀𝐀
�
𝑖𝑖=1
𝑛𝑛
𝛂𝛂𝑖𝑖 𝑝𝑝 𝑠𝑠. 𝑡𝑡. 𝐲𝐲𝑖𝑖 − 𝐃𝐃𝛂𝛂𝑖𝑖 2
2
≤ 𝜀𝜀
1α 2α nα
min
𝛂𝛂𝑖𝑖∈ℜ𝑘𝑘
𝛂𝛂𝑖𝑖 𝑝𝑝 𝑠𝑠. 𝑡𝑡. 𝐲𝐲𝑖𝑖 − 𝐃𝐃𝛂𝛂𝑖𝑖 2
2
≤ 𝜀𝜀
基底k
最適化式
最適化式
学習(ノイズ)
パッチ𝐲𝐲𝑖𝑖
再構成パッチ𝐃𝐃𝛂𝛂𝑖𝑖
𝐶𝐶:ℜ 𝑚𝑚×𝑘𝑘
𝑛𝑛:画像全体のパッチ数(通常画素数と同じ)
𝑘𝑘:基底の数(通常400程度)
𝑚𝑚:パッチ(基底)内の画素数(通常8×8=64程度)
𝐃𝐃:基底の集合(基底数𝑘𝑘×基底の画素数𝑚𝑚)
𝐀𝐀=[𝛂𝛂1, … , 𝛂𝛂𝑛𝑛]はℜ𝑘𝑘×𝑛𝑛の行列
𝐲𝐲𝑖𝑖:ノイズ画像𝐲𝐲の𝑖𝑖番目のパッチ
𝛂𝛂𝑖𝑖:𝐲𝐲𝑖𝑖に使用される基底𝐃𝐃の係数
𝐑𝐑𝑖𝑖:画像中のパッチ𝑖𝑖の正しい場所を示す2値行列(ℜ𝑛𝑛×𝑚𝑚
)
𝜒𝜒𝑚𝑚
2
分布の累積分布関数𝐹𝐹𝑚𝑚を用いて、𝜀𝜀を𝜎𝜎2 𝐹𝐹𝑚𝑚
−1
(𝜏𝜏)として選択する(通常𝜏𝜏=0.9)
(𝜎𝜎:ノイズの標準偏差)
Encoding Phase
Decoding Phase
目的:基底の集合Dを学習パッチの集合𝐲𝐲から作成
目的:係数(基底の重み)𝛂𝛂𝑖𝑖をノイズパッチ𝐲𝐲𝑖𝑖から作成
𝛂𝛂𝑖𝑖のpノルムの合計を最小化
ノイズパッチ𝐲𝐲𝑖𝑖 再構成パッチ𝐃𝐃𝛂𝛂𝑖𝑖𝛂𝛂𝑖𝑖それぞれのpノルムを最小化
パッチ画素n
1. Dを固定し、Matching Pursuit等でαを求める
2. αを固定し、Lasso-LARS等で式を最小化するDを求める
収束するまで繰り返し
Matching Pursuit等でαを求める
※本来はこれに正則化項が入る
- 31. MATCHING PURSUIT
再構成のための係数は各ステップでの各基底で計算された内積
x
y
0
𝑠𝑠2 = 𝐵𝐵, 𝑋𝑋2 =
1
2 5
𝑠𝑠1 = ⃗𝐴𝐴, ⃗𝑋𝑋 =
11 2
2
𝑋𝑋𝑛𝑛𝑛𝑛𝑛𝑛 = ⃗𝐴𝐴𝑠𝑠1 + 𝐵𝐵𝑠𝑠2 =
28
5
,
57
10
= (5.6,5.7)
もし直交基底ならば他の直交成分を元の信号から減算しても内積は変化しない。
すなわち直交基底に対してMPを行うことは(打ち切りがなければ)、
直交変換における係数を算出しているのと等価(ただし減算の操作だけ冗長)
𝐵𝐵 = (
1
5
,
2
5
) ⃗𝐴𝐴 = (
1
2
,
1
2
)
𝑋𝑋 = (5,6)