SlideShare a Scribd company logo
スパース モデリング入門
2015/11/16 株式会社 オープンストリーム
CTO 寺田英雄
https://www.facebook.com/hideo.terada.5
1
Copyright(C) Open Stream, Inc. All Rights Reserved.
経歴
■ 大阪大学工学部機械系/電子制御機械工学科 卒
• 画像認識ソフトウェアを専攻
• Project-TEAM DoGA 初代メンバー:CG映画制作
• http://doga.jp/
■ 仕事歴
• 1992 IHI入社・技術開発本部所属
• 2007 某モバイル動画ベンチャー 入社
• 2011 ベンチャー崩壊しはじめる
• 2012 オープンストリーム入社
• 2014 オープンストリームCTO
2
Copyright(C) Open Stream, Inc. All Rights Reserved.
コンピュータ歴
■ コンピュータ歴 36年目(小学校5年から)
■ 言語
• 大阪弁、標準語、英語(少々)
• Fortran, asm, basic, C/C++/Obj-C, Java, CUDA,

Python, Ruby
■ 分野
• 画像認識、CG、ストリーミングシステム
• FA制御、Linux/Windowsデバイスドライバ、CADシステム
• モバイル・アプリケーション(iOS/Android)
• 機械学習、数理アルゴリズム、データ解析
3
Copyright(C) Open Stream, Inc. All Rights Reserved.
開発経験
■ 画像認識関連
• ごみ焼却炉制御用火炎認識システム(擬似3次元計測)
• 鋳型組み立てロボット制御用、ワーク位置計測システム(ベクトル相関)
• 舞台装置コンテナの荷降ろしロボット制御用位置決めシステム(ベクトル相関、直線検知)
• 自動車工場の鋼板受け入れ検査システム(濃淡モフォロジー)
• デパレタイザー用3次元認識(計算幾何学)
• 監視カメラ用ハードディスクレコーダー(画像圧縮)
• 乗用車用、歩行者検知システム(HoG, SVM, GPGPU)
■ 動画ストリーミング
• 携帯電話用コーデック、画像・音声同期再生エンジン、マルチキャスト動画配信
■ その他
• C-HTML編集エディタ、GTコジェネ制御ロジックCAD
• Oracle用 C++ ORマッパーの開発
• 電子書籍フォーマット&デコーダ生成システムの開発
• DRM動画配信アプリ&状態マシンフレームワーク
4
Copyright(C) Open Stream, Inc. All Rights Reserved.
最近の興味
■ 生物に学ぶ情報処理
• 全脳アーキテクチャー
• Deep Learning
• Sparse Modeling
5
Copyright(C) Open Stream, Inc. All Rights Reserved.
アジェンダ
■ イントロ
■ スパースモデリングの数理入門
■ スパースモデリングの応用
6
Copyright(C) Open Stream, Inc. All Rights Reserved.
イントロ
7
01
Copyright(C) Open Stream, Inc. All Rights Reserved.
生物の一次視覚野(V1)
■ 目から入った視覚情報を最初に
受け取る脳の部位
■ 方向・空間スケールに関する選
択的空間フィルタを有すること
が知られている
8
Copyright(C) Open Stream, Inc. All Rights Reserved.
空間フィルタ
■ 網膜に特定の傾き
のスリット光を与
えると、その時だ
け反応する受容細
胞がある
■ ガボールフィルタで
近似できる
9
Copyright(C) Open Stream, Inc. All Rights Reserved.
視覚野はフィルタバンク
■ 様々な方向、空間周波数に対応した受容細胞(=
フィルタ)の集まり
■ なぜこのように進化したか?
• 有力な仮説:
• 自然画像の統計的構造を利用
• 自然画像を効率的に符号化→エネルギー効率
• 脳はとてつもなく効率のよい計算機
10
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパースモデリングは
V1の模倣
■ 自然画像を基底画像(フィルタ)の

線形結合として表す。
■ 結合係数がスパース(Sparse:まばら)な行列
のとき、V1に良く一致する結果が得られる。
11
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパースモデリングの

数理入門
12
02
Copyright(C) Open Stream, Inc. All Rights Reserved.
2つの主要なアイデア
■ スパース信号分解
■ スパースコーディング
13
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパース信号分解とは
■ N次元(N=WxH) 画像信号 f の線形生成モデル
■ s:係数ベクトル
■ A:辞書(基底行列), ai:原子(基底ベクトル)// 既定とする
■ まばらに非ゼロ要素が分布する s で f を表現することを

『スパース信号分解』という。
14
f = As (f 2 RN
)
線形生成モデルのイメージ
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパース信号分解

アルゴリズム
■ 過完備(overcomplete)な基底行列とは
• 基底ベクトルの数M>信号の次元数N
• N個の互いに一次独立な基底ベクトルがある
■ Aが過完備なとき、sは一意に定まらない

→どうする?

 答:制約条件をつけて数値的に解く
16
f = As
Copyright(C) Open Stream, Inc. All Rights Reserved.
制約条件=
sに対するペナルティ
■ いろんな方法がありうる
■ よくあるペナルティは 『lp ノルム』
■ l2:『最小ノルム解』:信号の再構成保証

■ l0:画像処理、情報圧縮でよく用いる
17
lp = s p
=
P
n |sn|p
1
p p 0
Copyright(C) Open Stream, Inc. All Rights Reserved.
l0ノルムによる
スパース信号分解
■ 以下の解を求める。(l0ノルムの最小化)
■ l0ノルムの最小化=非ゼロ要素数の最小化
■ 解析的には解けない。最適解の探索は計算量
多い。
■ 近似解を得る方法がいろいろ提案されている。
18
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパース信号分解
アルゴリズム例:MP
■ Matching pursuits(MP)アルゴリズム
■ 以下を反復する i=0,1,2…
1)初期残差信号 R(i=0)=f, s=(0,0,…,0)とおく
2)R(i)との内積が最大となる基底ベクトル
ajmaxを検索し、sjmax←ajmax
TR(i) と更新する
3)R(i+1)←R(i)-sjmaxajmax と更新する
4)終了条件満たさなければ 2)へ戻る
19
Copyright(C) Open Stream, Inc. All Rights Reserved.
その他のアルゴリズム
■ OMP
■ BP
■ BPDN
■ BCR
■ ・・・
■ 活発に改良案が研究されている
20
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパースコーディング
■ 復習:スパース信号分解は Aとfからsを求める方法
■ スパースコーディングは辞書Aを作る方法:
• 事前設計型
• DCT、Fourier変換、wavelet,、curvelet、…
• 学習型
• INPUT: 学習用信号群 {fi}(i=1,2,…,I)
• OUTPUT: A

(ただし、できるだけ少ない基底ベクトルで)
• これも、いろいろなアルゴリズムが提案されている
21
Copyright(C) Open Stream, Inc. All Rights Reserved.
代表的な学習型スパースコーディング
例:K-SVD法
■ クラスタリングの k-means 法の一般化
■ (係数の最適化 基底の最適化)

を交互に繰り返す交互最適化
■ 基本的な考え方
• 基底ベクトル ai を更新する際、ai抜きで近
似した信号と原信号の誤差を表現する基底
を新たな ai とする。
22
Copyright(C) Open Stream, Inc. All Rights Reserved.
K-SVDの手順(1/2)
(1)任意の方法(乱数など)で辞書Aを初期化する。

このAに対する係数sをMP法などで求めておく。
(2)学習信号{fi}(i=1,2,…I)のなかで、更新対象の基底 al が

表現に用いられている信号の添字集合Ωlを求める。

• fiとaiの内積を取って、その値が小さいものは除外?
(調査中)
(3)Ωlに含まれる観測信号のみからなるfの部分行列f[l]を構
成する。同様に作った s[l]
j を並べた係数行列 s[l] とする。
23
⌦l = i 2 {1, · · · , n}|
⇥
C
⇤
li
6= 0
Copyright(C) Open Stream, Inc. All Rights Reserved.
K-SVDの手順(2/2)
(4)al を利用しないで観測信号を近似し、そのときの残差 Rl を求め
る。



(5)Rlを特異値分解(SVD)し、

第一左特異ベクトル u1 を al とする。al ← u1。また最大特異値
σ1と第一右特異ベクトルv1を用いて sj
←σ1v1 として係数を修正
する。(特異ベクトルは、Rlを最も良く近似する成分となる)
(6)ここまでの処理を全ての al について行い、順次 A を更新する。
(7)終了条件を満たさなければ、(2)へ戻る。
24
Rl = f[l]
X
j6=l
ajsj
[l]
Rl = U⌃V T
特異値分解は
スペクトル分解のような
効果
Copyright(C) Open Stream, Inc. All Rights Reserved.
スパースモデリングの応用
25
03
Copyright(C) Open Stream, Inc. All Rights Reserved.
画像分離・画像修復
■ 2つの異なる画像a,bが重なった画像 x があると
き、2つの画像がそれぞれ異なる辞書 Aa, Ab と
係数 sa, sb で、Aasa, Absb と表せるとする。
■ 次の問題を解けば、2つの画像を分離できる。
■ Aa=原画像辞書, Ab=ノイズ画像辞書とすれば、
ノイズ除去(画像修復)に使える。
26
minimizesa,sb
sa 0
+ sb 0
subject to x Aasa Absb
2
2
 ✏
Copyright(C) Open Stream, Inc. All Rights Reserved.
超解像
(次頁の図参照)
■ 高解像度の学習用画像から辞書 AH を学習しておく。
■ AHにダウンサンプリング・ボケ関数などを施して低解
像度な辞書ALを作成する。
■ 低解像度な入力画像列XL を AL でスパース信号分解す
る。
■ 上記で得られた非ゼロ係数列を使って、AHで画像を再
構成すると、高解像度画像XHが得られる。
■ 高画質TV、患者の負担を減らした医療画像撮影などに
用いられる
27
超解像処理の概念図
Copyright(C) Open Stream, Inc. All Rights Reserved.
顔認識(1/2)
■ 登録ユーザH人とする。各自は複数の顔画像f



を登録しているとする。これらを基底として
扱い、辞書D



を構成する。

29
fh
1 , · · · , fh
nh
, h = 1, · · · , H
D = (f1
1 , · · · , f1
n1
; · · · ; fH
1 , · · · , fH
n1
)
Copyright(C) Open Stream, Inc. All Rights Reserved.
顔認識(2/2)
■ 認識したい人物の顔画像XをDでスパース信号
分解すると、その人物が登録済みであれば、
その基底に該当するごく一部の係数だけが非
ゼロになる。
■ この係数の大きさをスコアとして、認証判定
ができる。

30
Copyright(C) Open Stream, Inc. All Rights Reserved.
ディープラーニングと
スパースモデリング
■ ディープラーニングの自己符号化器では

スパースモデリングのアイデアを活用している。
■ 『冗長(過完備)な基底ベクトルに対するス
パースな係数行列でより高次の情報を表現す
る』というモデルで、教師なし多層学習を
行っている。
31
Copyright(C) Open Stream, Inc. All Rights Reserved.
まとめ
■ スパースモデリングは生物の信号処理をヒントに
したアルゴリズム
■ 辞書の作成アルゴリズムと、辞書の利用アルゴリ
ズム(スパースな係数行列を求める)が主要な理
論
■ さまざまな自然信号の処理(画像、音声)に応用
できる。
■ ディープラーニングとの関係性
32

More Related Content

スパースモデリング入門

  • 1. スパース モデリング入門 2015/11/16 株式会社 オープンストリーム CTO 寺田英雄 https://www.facebook.com/hideo.terada.5 1
  • 2. Copyright(C) Open Stream, Inc. All Rights Reserved. 経歴 ■ 大阪大学工学部機械系/電子制御機械工学科 卒 • 画像認識ソフトウェアを専攻 • Project-TEAM DoGA 初代メンバー:CG映画制作 • http://doga.jp/ ■ 仕事歴 • 1992 IHI入社・技術開発本部所属 • 2007 某モバイル動画ベンチャー 入社 • 2011 ベンチャー崩壊しはじめる • 2012 オープンストリーム入社 • 2014 オープンストリームCTO 2
  • 3. Copyright(C) Open Stream, Inc. All Rights Reserved. コンピュータ歴 ■ コンピュータ歴 36年目(小学校5年から) ■ 言語 • 大阪弁、標準語、英語(少々) • Fortran, asm, basic, C/C++/Obj-C, Java, CUDA,
 Python, Ruby ■ 分野 • 画像認識、CG、ストリーミングシステム • FA制御、Linux/Windowsデバイスドライバ、CADシステム • モバイル・アプリケーション(iOS/Android) • 機械学習、数理アルゴリズム、データ解析 3
  • 4. Copyright(C) Open Stream, Inc. All Rights Reserved. 開発経験 ■ 画像認識関連 • ごみ焼却炉制御用火炎認識システム(擬似3次元計測) • 鋳型組み立てロボット制御用、ワーク位置計測システム(ベクトル相関) • 舞台装置コンテナの荷降ろしロボット制御用位置決めシステム(ベクトル相関、直線検知) • 自動車工場の鋼板受け入れ検査システム(濃淡モフォロジー) • デパレタイザー用3次元認識(計算幾何学) • 監視カメラ用ハードディスクレコーダー(画像圧縮) • 乗用車用、歩行者検知システム(HoG, SVM, GPGPU) ■ 動画ストリーミング • 携帯電話用コーデック、画像・音声同期再生エンジン、マルチキャスト動画配信 ■ その他 • C-HTML編集エディタ、GTコジェネ制御ロジックCAD • Oracle用 C++ ORマッパーの開発 • 電子書籍フォーマット&デコーダ生成システムの開発 • DRM動画配信アプリ&状態マシンフレームワーク 4
  • 5. Copyright(C) Open Stream, Inc. All Rights Reserved. 最近の興味 ■ 生物に学ぶ情報処理 • 全脳アーキテクチャー • Deep Learning • Sparse Modeling 5
  • 6. Copyright(C) Open Stream, Inc. All Rights Reserved. アジェンダ ■ イントロ ■ スパースモデリングの数理入門 ■ スパースモデリングの応用 6
  • 7. Copyright(C) Open Stream, Inc. All Rights Reserved. イントロ 7 01
  • 8. Copyright(C) Open Stream, Inc. All Rights Reserved. 生物の一次視覚野(V1) ■ 目から入った視覚情報を最初に 受け取る脳の部位 ■ 方向・空間スケールに関する選 択的空間フィルタを有すること が知られている 8
  • 9. Copyright(C) Open Stream, Inc. All Rights Reserved. 空間フィルタ ■ 網膜に特定の傾き のスリット光を与 えると、その時だ け反応する受容細 胞がある ■ ガボールフィルタで 近似できる 9
  • 10. Copyright(C) Open Stream, Inc. All Rights Reserved. 視覚野はフィルタバンク ■ 様々な方向、空間周波数に対応した受容細胞(= フィルタ)の集まり ■ なぜこのように進化したか? • 有力な仮説: • 自然画像の統計的構造を利用 • 自然画像を効率的に符号化→エネルギー効率 • 脳はとてつもなく効率のよい計算機 10
  • 11. Copyright(C) Open Stream, Inc. All Rights Reserved. スパースモデリングは V1の模倣 ■ 自然画像を基底画像(フィルタ)の
 線形結合として表す。 ■ 結合係数がスパース(Sparse:まばら)な行列 のとき、V1に良く一致する結果が得られる。 11
  • 12. Copyright(C) Open Stream, Inc. All Rights Reserved. スパースモデリングの
 数理入門 12 02
  • 13. Copyright(C) Open Stream, Inc. All Rights Reserved. 2つの主要なアイデア ■ スパース信号分解 ■ スパースコーディング 13
  • 14. Copyright(C) Open Stream, Inc. All Rights Reserved. スパース信号分解とは ■ N次元(N=WxH) 画像信号 f の線形生成モデル ■ s:係数ベクトル ■ A:辞書(基底行列), ai:原子(基底ベクトル)// 既定とする ■ まばらに非ゼロ要素が分布する s で f を表現することを
 『スパース信号分解』という。 14 f = As (f 2 RN )
  • 16. Copyright(C) Open Stream, Inc. All Rights Reserved. スパース信号分解
 アルゴリズム ■ 過完備(overcomplete)な基底行列とは • 基底ベクトルの数M>信号の次元数N • N個の互いに一次独立な基底ベクトルがある ■ Aが過完備なとき、sは一意に定まらない
 →どうする?
  答:制約条件をつけて数値的に解く 16 f = As
  • 17. Copyright(C) Open Stream, Inc. All Rights Reserved. 制約条件= sに対するペナルティ ■ いろんな方法がありうる ■ よくあるペナルティは 『lp ノルム』 ■ l2:『最小ノルム解』:信号の再構成保証
 ■ l0:画像処理、情報圧縮でよく用いる 17 lp = s p = P n |sn|p 1 p p 0
  • 18. Copyright(C) Open Stream, Inc. All Rights Reserved. l0ノルムによる スパース信号分解 ■ 以下の解を求める。(l0ノルムの最小化) ■ l0ノルムの最小化=非ゼロ要素数の最小化 ■ 解析的には解けない。最適解の探索は計算量 多い。 ■ 近似解を得る方法がいろいろ提案されている。 18
  • 19. Copyright(C) Open Stream, Inc. All Rights Reserved. スパース信号分解 アルゴリズム例:MP ■ Matching pursuits(MP)アルゴリズム ■ 以下を反復する i=0,1,2… 1)初期残差信号 R(i=0)=f, s=(0,0,…,0)とおく 2)R(i)との内積が最大となる基底ベクトル ajmaxを検索し、sjmax←ajmax TR(i) と更新する 3)R(i+1)←R(i)-sjmaxajmax と更新する 4)終了条件満たさなければ 2)へ戻る 19
  • 20. Copyright(C) Open Stream, Inc. All Rights Reserved. その他のアルゴリズム ■ OMP ■ BP ■ BPDN ■ BCR ■ ・・・ ■ 活発に改良案が研究されている 20
  • 21. Copyright(C) Open Stream, Inc. All Rights Reserved. スパースコーディング ■ 復習:スパース信号分解は Aとfからsを求める方法 ■ スパースコーディングは辞書Aを作る方法: • 事前設計型 • DCT、Fourier変換、wavelet,、curvelet、… • 学習型 • INPUT: 学習用信号群 {fi}(i=1,2,…,I) • OUTPUT: A
 (ただし、できるだけ少ない基底ベクトルで) • これも、いろいろなアルゴリズムが提案されている 21
  • 22. Copyright(C) Open Stream, Inc. All Rights Reserved. 代表的な学習型スパースコーディング 例:K-SVD法 ■ クラスタリングの k-means 法の一般化 ■ (係数の最適化 基底の最適化)
 を交互に繰り返す交互最適化 ■ 基本的な考え方 • 基底ベクトル ai を更新する際、ai抜きで近 似した信号と原信号の誤差を表現する基底 を新たな ai とする。 22
  • 23. Copyright(C) Open Stream, Inc. All Rights Reserved. K-SVDの手順(1/2) (1)任意の方法(乱数など)で辞書Aを初期化する。
 このAに対する係数sをMP法などで求めておく。 (2)学習信号{fi}(i=1,2,…I)のなかで、更新対象の基底 al が
 表現に用いられている信号の添字集合Ωlを求める。
 • fiとaiの内積を取って、その値が小さいものは除外? (調査中) (3)Ωlに含まれる観測信号のみからなるfの部分行列f[l]を構 成する。同様に作った s[l] j を並べた係数行列 s[l] とする。 23 ⌦l = i 2 {1, · · · , n}| ⇥ C ⇤ li 6= 0
  • 24. Copyright(C) Open Stream, Inc. All Rights Reserved. K-SVDの手順(2/2) (4)al を利用しないで観測信号を近似し、そのときの残差 Rl を求め る。
 
 (5)Rlを特異値分解(SVD)し、
 第一左特異ベクトル u1 を al とする。al ← u1。また最大特異値 σ1と第一右特異ベクトルv1を用いて sj ←σ1v1 として係数を修正 する。(特異ベクトルは、Rlを最も良く近似する成分となる) (6)ここまでの処理を全ての al について行い、順次 A を更新する。 (7)終了条件を満たさなければ、(2)へ戻る。 24 Rl = f[l] X j6=l ajsj [l] Rl = U⌃V T 特異値分解は スペクトル分解のような 効果
  • 25. Copyright(C) Open Stream, Inc. All Rights Reserved. スパースモデリングの応用 25 03
  • 26. Copyright(C) Open Stream, Inc. All Rights Reserved. 画像分離・画像修復 ■ 2つの異なる画像a,bが重なった画像 x があると き、2つの画像がそれぞれ異なる辞書 Aa, Ab と 係数 sa, sb で、Aasa, Absb と表せるとする。 ■ 次の問題を解けば、2つの画像を分離できる。 ■ Aa=原画像辞書, Ab=ノイズ画像辞書とすれば、 ノイズ除去(画像修復)に使える。 26 minimizesa,sb sa 0 + sb 0 subject to x Aasa Absb 2 2  ✏
  • 27. Copyright(C) Open Stream, Inc. All Rights Reserved. 超解像 (次頁の図参照) ■ 高解像度の学習用画像から辞書 AH を学習しておく。 ■ AHにダウンサンプリング・ボケ関数などを施して低解 像度な辞書ALを作成する。 ■ 低解像度な入力画像列XL を AL でスパース信号分解す る。 ■ 上記で得られた非ゼロ係数列を使って、AHで画像を再 構成すると、高解像度画像XHが得られる。 ■ 高画質TV、患者の負担を減らした医療画像撮影などに 用いられる 27
  • 29. Copyright(C) Open Stream, Inc. All Rights Reserved. 顔認識(1/2) ■ 登録ユーザH人とする。各自は複数の顔画像f
 
 を登録しているとする。これらを基底として 扱い、辞書D
 
 を構成する。
 29 fh 1 , · · · , fh nh , h = 1, · · · , H D = (f1 1 , · · · , f1 n1 ; · · · ; fH 1 , · · · , fH n1 )
  • 30. Copyright(C) Open Stream, Inc. All Rights Reserved. 顔認識(2/2) ■ 認識したい人物の顔画像XをDでスパース信号 分解すると、その人物が登録済みであれば、 その基底に該当するごく一部の係数だけが非 ゼロになる。 ■ この係数の大きさをスコアとして、認証判定 ができる。
 30
  • 31. Copyright(C) Open Stream, Inc. All Rights Reserved. ディープラーニングと スパースモデリング ■ ディープラーニングの自己符号化器では
 スパースモデリングのアイデアを活用している。 ■ 『冗長(過完備)な基底ベクトルに対するス パースな係数行列でより高次の情報を表現す る』というモデルで、教師なし多層学習を 行っている。 31
  • 32. Copyright(C) Open Stream, Inc. All Rights Reserved. まとめ ■ スパースモデリングは生物の信号処理をヒントに したアルゴリズム ■ 辞書の作成アルゴリズムと、辞書の利用アルゴリ ズム(スパースな係数行列を求める)が主要な理 論 ■ さまざまな自然信号の処理(画像、音声)に応用 できる。 ■ ディープラーニングとの関係性 32