テンソル分解の基礎と 画像・信号処理への応用 横田 達也 2014年3月 13日 1
テンソル分解の基礎と画像・信号処理への応用
横田達也
2014年3月 13日
1
高校時代
~魚ロボット~
大学時代
情報工学科 (計算機システム・プログラミングなど)
大学院
機械学習(パターン認識・データ解析)を研究
卒業後理研の研究員
学歴 研究
2005年3月 東京工業大学工学部附属工業高等学校機械科卒業
↓ 特別推薦で合格
(10/200)
2009年3月 東京工業大学卒業 杉山研究室
2011年3月 東京工業大学大学院修士課程修了
山下研究室
2011年4月~現在
東京工業大学大学院博士後期課程在学
大学:山下研理研:チホツキ研
2自己紹介
テンソルについて
テンソルとは
テンソルの計算則
テンソル分解のモデル
CPモデル
Tuckerモデル
テンソル分解のアルゴリズム
テンソル分解へのいろいろな拡張の研究
テンソル分解の応用技術の紹介
3目次
添え字のついた変数(配列)
スカラー、ベクトル、行列の一般名
例
添え字の数:階数
スカラー:0階のテンソル
ベクトル:1階のテンソル
行列 :2階のテンソル
・・・
4テンソルとは?
多次元配列としてイメージしてみる
0階テンソル:
1階テンソル:
2階テンソル:
3階テンソル:
5テンソルデータ
ベクトル-スカラーを並べたもの
行列-ベクトルを並べたもの
-行列を並べたもの
3階のテンソルを直方体で表す
4階のテンソルは、
3階のテンソルを並べたものなので、
5階のテンソルは、
4階のテンソルを並べたものなので、
n階のテンソルは、
(n-1)階のテンソルを並べたもの。
6高階のテンソル
・・・
・・・・・・
・・・
・・・
・・・
・・・
7テンソルデータの例
時系列データ
1階のテンソル (ベクトル)
多チャンネルの時系列データ
2階のテンソル (行列)
濃淡画像
カラー画像
2階のテンソル (行列)
3階のテンソル(RGB×濃淡画像)
カラー動画
4階のテンソル(フレーム×カラー画像)
N階のテンソルを で表し、
その 成分を
または
で表す。
足し算(引き算)
同じ大きさの二つのテンソルの和は、
定数cに対するテンソルXの定数倍 cXは、
8テンソルの計算(1)
アダマール積(Hadamard product)
同じ大きさの二つのテンソルのアダマール積は、
成分ごとの商(elementwise division)
同じ大きさの二つのテンソルの成分ごとの商は、
クロネッカー積(Kronecker product)
9テンソルの計算(2)
内積とノルム
同じ大きさの二つのテンソルの内積は、
X = Yのとき、フロベニウスノルムになる
10テンソルの計算(3)
テンソルの展開(Unforlding)
ベクトル化(vectorization)
11テンソルの計算(4)
n方向の行列化(n-way matricization)
12テンソルの計算(5)
-行列化の手順-① テンソルをn方向へスライスする。(In個のスライス)
② 各スライスを行ベクトルへ展開する。(In個のベクトル)
③ 各行ベクトルを上から下に縦に並べる。
行列と行列の積
(I×J)行列・(J×K)行列 = (I×K)行列
テンソルと行列の積
(I×J×K)テンソル×1 (L×I)行列 = (L×J×K)テンソル
(I×J×K)テンソル×2 (L×J)行列 = (I×L×K)テンソル
(I×J×K)テンソル×3 (L×K)行列 = (I×J×L)テンソル
13テンソルの計算(6)
=・I
J
J
K K
I
I
JK
×1
I
L = L
JK
I
L I=
JK
L
JK
行列化 行列化
・
3階テンソルと3つの行列との積
14テンソルの計算(7)
I
JK
×1L = L
MN
×2M ×3
N
I J K
I
L I=
JK
L
MN
・ ・
MN
JK
行列化で表記すると
=IJK LMN・
ベクトル化で表記すると
IJK
LMN
いろいろなテンソル同士の積
外積 (s階テンソルとt階テンソルでs+t階テンソルになる)
15テンソルの計算(8)
I
JK
L
JK
I
L
=
JKL
JKI I
L
=
テンソルの概念について紹介
テンソルの計算
足し算(引き算)
定数倍
アダマール積
成分ごとの商
クロネッカー積
内積、ノルム
展開:ベクトル化
展開:行列化
テンソルと行列の積
テンソル同士の積
外積
16途中まとめ
行列の因子分解、特徴抽出
テンソルの因子分解と次元削減
行列分解をテンソルに拡張したもの
17テンソル分解
ベクトルベースのデータ解析
・・・
主成分分析(PCA)
独立成分分析(ICA)
スパース成分分析(SCA)
非負行列分解(NMF)
W・・・
18テンソルデータの解析
MRI画像
脳波(時間・周波数)
3階テンソルの特徴抽出
A
C
BT
高階テンソルデータ
CPモデル Tuckerモデル
gr
ar
cr
brGA
C
BT
テンソル分解
全部同じモデルを指す
CP: canonical polyadic decomposition
PARAFAC: pararell factor analysis
CANDECOMP: canonical decomposition
ここでは、CPモデルとよびます。
1ランクテンソル
N個のベクトルの外積で表せるN階テンソル
CPモデル(3階テンソル)
Rランクへの近似モデルになっている
19CPモデル
CPモデル(3階テンソル)
カトリ・ラオ積
20CPモデルの行列化
CPモデル
行列化されたCPモデル
評価基準
a,b,cのノルムは一意に決まらない
任意の実数dに対して, a a/d, bb*d としてもよい
a,b,cのノルムを正規化
21CP分解のための評価基準
特異値のテンソル版
問題
導出 (λ,B,Cを固定して, Aについて解く)
最小化条件
更新式
22CP分解のアルゴリズムの導出
この目的関数を関数Lとおく
入力: X, R
初期化:B, C (各列のノルムは1)
収束するまで繰り返し
(r=1,…,R)
(r=1,…,R)
(r=1,…,R)
(r=1,…,R)
出力: A, B, C, Λ
23CP分解のアルゴリズムまとめ
Tucker3モデル(3階テンソル)
Gが対角の時、Tuckerモデル=CPモデル
24Tuckerモデル
=
Tuckerモデルの行列化(3階テンソル)
Tuckerモデルのベクトル化
25Tuckerモデルの展開
I
R1
I =
JK
R2R3
JK
AR1
R2R3
(C× B)〇 TG(1)
[Tuck](1)
(C× B× A)〇 〇
=IJK IJK
R1R2R3
R1R2R3・
評価基準
G,A,B,Cは一意に決まらない
A, B, Cに正規直交制約を加える(これでも一意にはならない…)
目的関数Lについて見ていく
26Tucker分解のための評価基準
この目的関数を関数Lとおく
目的関数LにGを代入する
目的関数の最小化は、 Gのノルムの最大化となる(PCAと同じ)
27Tucker分解のための評価基準(2)
問題
導出 (λ,B,Cを固定して, Aについて解く)
更新則
28Tucker分解のアルゴリズムの導出
または
入力: X, R1, R2, R3
初期化ステップ
Repeat(収束まで)
End
出力: G, A, B, C
29Tucker分解のアルゴリズムまとめ
HOSVD
HOOI
一般的な評価基準
モデル+制約
という組み合わせから、いくつもの手法とアルゴリズムが提案されている。
制約項
最適化アルゴリズム
30制約付きのCP・Tucker分解
与えられたテンソルデータ
モデル(CP・Tucker)
制約・直交制約・スパース制約・スムース制約・非負制約
解の一意性の向上
目的にあった特徴を抽出したい
例: Textデータ(ヒストグラム)、確率密度関数は必ず非負であり、それらを構成する基底(特徴)ベクトルもまた非負であるはず。
例:物理的要因でスパース性、スムース性を仮定して良い場合、(
スムースな自然画像、一般に疎なスペクトルなど)
例:それぞれが独立な特徴ベクトルを抽出したい
ノイズや、無駄な因子をできるだけ取り除きたい
制約によっては、ノイズに対する頑健性を向上できる
31なぜ、制約が必要なのか?
解の領域
解の領域制約
特徴ベクトルをそれぞれが直交するベクトルの組に限定
線形独立性が保障される
特徴ベクトルのノルムが正規化される
他の制約(疎、非負など)との親和性が低い
適用例:SVD、PCA、ICA、HOSVDなど
32直交制約
スパースとは、
ベクトルの成分のほとんどの値が 0のような状態をいう
例: a = [0 0 0 0 5 0 0 0 -1 4 0 0 0 0 0 0 -9 0 0 0 0]
スパース性を得るための制約
l1-ノルムの最小化が良く用いられる
l1-ノルム
評価基準: LASSOと呼ばれる
二次の目的関数+L1ノルムの最小化
λ:正則化パラメータ
弱い成分をつぶして、主要な成分のみを残す
33スパース制約
l1ノルムの等高線
目的関数の等高線
スムース性
ベクトルの隣り合う成分の値の差が小さい
例: a = [0 -3 9 0 5 15 0 0 0 0 1 1 0 -1 -1 1 2]
良く用いられる評価基準(fused lasso, total variation)
他にも、Aをスムースな基底関数の線形結合としてモデル化する方法が提案されている
A=ΦW
ノイズに対する頑健性が得られる
34スムース制約
スムースでない スムース
非負制約とは、
特徴ベクトルの成分の値がすべて非負という制約
非負制約は、特徴ベクトルの非負性だけではあまり意味がなく、係数の非負性があってはじめて効果を発揮する。
なぜなら非負制約は和算のみでモデル化するための制約だから
和算のみの制約によって相殺が不可能となるため、構成要素としてのパーツを抽出することができる。
35非負制約
+
+
+
+
+
+
+ + +
+-
- +
スパース・スムース・非負制約などを付加したさまざまな拡張が提案されている。
スパースCP分解[Allen, 2012]
スパースTucker分解
非負CP分解
非負Tucker分解[Kim&Choi, 2007][Phan&Cichoki, 2008,2009,2011]
スムース非負CP分解[Yokota et al, 2015]
スムース非負Tucker分解[Tokota et al, 2015]
行列分解の多様な技術をテンソル分解に拡張したい
主成分分析(PCA)、スパースPCA、スパース&スムースPCA
非負行列分解(NMF)、スパースNMF、スムースNMF
独立成分分析(ICA)
共通個別因子分析など
36CP・Tucker分解のさまざまな拡張
複数の濃淡画像を重ねた3階のテンソルデータ
特徴行列=基底行列であり、コアテンソルはその係数と考えて良い。
37テンソル分解の画像処理への応用
A BT
タッカー分解
Tucker2モデル
特徴行列
特徴行列 コアテンソル
= + + + +・・・
= + + + +・・・
38Tucker2モデルで得られた直交基底
39二次元DCT と Tucker2分解の違い
A BT
Tucker2モデル
基底行列
基底行列 コアテンソル
C1C2
Tコサイン関数行列
コサイン関数行列
コアテンソル
DCT
基底行列が決まっていて、コアテンソルだけを最適化してフィッティングしている
基底行列とコアテンソル両方最適化するフィッティングする
DCT基底 Tucker2基底
もし、NMF/NTFによって顔画像のパーツが的確に学習されていれば、パーツの組み合わせによって顔画像を構成できる。ノイズを付加された顔画像を、構成モデルで再構成する事を考える。再構成された画像は基底行列が張る空間に限定されるため、ノイズ除去に利用できる。
張る空間の次元が小さいとまったく別の(平均的な)顔になる…
40非負テンソル分解による顔画像の再構成
ノイズ付加 NMF Smooth NMF NTF Smooth NTF
PSNR(peak signal to noise ratio)
41再構成誤差の評価
11枚
33 pixels
26 pixels
GA
C
B T
・・・
15人
・・・・・・・・・・・・
11枚
858
pixels
R1×10×10
・画像にはノイズ(10dB)が付加されている・R1個のパーツで各顔画像を再構成する・再構成した画像とノイズのない原画像をPSNRで比較
42応用例2: 3階テンソルデータのノイズ除去
7.21 dB
非負CP分解(19.8 dB)
非負Tucker分解(13.5 dB)
スムース非負CP分解(26.8 dB)
スムース非負Tu-
cker分解(23.9 dB)
Gaussian
noise
GA
C
B T
GU
W
V TT
非負Tucker分解非負CP分解
スムース非負Tucker分解スムース非負CP分解
テンソルの概念とさまざまな計算則を紹介
2つのテンソル分解モデルを紹介
CPモデル
Tuckerモデル
最も基本的な分解アルゴリズムを紹介
CP-ALSアルゴリズム
HOOIアルゴリズム
制約付きテンソル分解について紹介
直交制約
スパース制約
スムース制約
非負制約
簡単な応用例を紹介
Tucker2モデルによる直交基底の学習
CP・Tucker分解によるノイズ除去
43まとめ
最後まで聞いてくださってありがとうございました。
44おわり