2014 3 13(テンソル分解の基礎)

44
テンソル分解の基礎と 画像・信号処理への応用 横田 達也 20143131

Upload: tatsuya-yokota

Post on 21-Jul-2015

539 views

Category:

Science


10 download

TRANSCRIPT

Page 1: 2014 3 13(テンソル分解の基礎)

テンソル分解の基礎と画像・信号処理への応用

横田達也

2014年3月 13日

1

Page 2: 2014 3 13(テンソル分解の基礎)

高校時代

~魚ロボット~

大学時代

情報工学科 (計算機システム・プログラミングなど)

大学院

機械学習(パターン認識・データ解析)を研究

卒業後理研の研究員

学歴 研究

2005年3月 東京工業大学工学部附属工業高等学校機械科卒業

↓ 特別推薦で合格

(10/200)

2009年3月 東京工業大学卒業 杉山研究室

2011年3月 東京工業大学大学院修士課程修了

山下研究室

2011年4月~現在

東京工業大学大学院博士後期課程在学

大学:山下研理研:チホツキ研

2自己紹介

Page 3: 2014 3 13(テンソル分解の基礎)

テンソルについて

テンソルとは

テンソルの計算則

テンソル分解のモデル

CPモデル

Tuckerモデル

テンソル分解のアルゴリズム

テンソル分解へのいろいろな拡張の研究

テンソル分解の応用技術の紹介

3目次

Page 4: 2014 3 13(テンソル分解の基礎)

添え字のついた変数(配列)

スカラー、ベクトル、行列の一般名

添え字の数:階数

スカラー:0階のテンソル

ベクトル:1階のテンソル

行列 :2階のテンソル

・・・

4テンソルとは?

Page 5: 2014 3 13(テンソル分解の基礎)

多次元配列としてイメージしてみる

0階テンソル:

1階テンソル:

2階テンソル:

3階テンソル:

5テンソルデータ

ベクトル-スカラーを並べたもの

行列-ベクトルを並べたもの

-行列を並べたもの

Page 6: 2014 3 13(テンソル分解の基礎)

3階のテンソルを直方体で表す

4階のテンソルは、

3階のテンソルを並べたものなので、

5階のテンソルは、

4階のテンソルを並べたものなので、

n階のテンソルは、

(n-1)階のテンソルを並べたもの。

6高階のテンソル

・・・

・・・・・・

・・・

・・・

・・・

・・・

Page 7: 2014 3 13(テンソル分解の基礎)

7テンソルデータの例

時系列データ

1階のテンソル (ベクトル)

多チャンネルの時系列データ

2階のテンソル (行列)

濃淡画像

カラー画像

2階のテンソル (行列)

3階のテンソル(RGB×濃淡画像)

カラー動画

4階のテンソル(フレーム×カラー画像)

Page 8: 2014 3 13(テンソル分解の基礎)

N階のテンソルを で表し、

その 成分を

または

で表す。

足し算(引き算)

同じ大きさの二つのテンソルの和は、

定数cに対するテンソルXの定数倍 cXは、

8テンソルの計算(1)

Page 9: 2014 3 13(テンソル分解の基礎)

アダマール積(Hadamard product)

同じ大きさの二つのテンソルのアダマール積は、

成分ごとの商(elementwise division)

同じ大きさの二つのテンソルの成分ごとの商は、

クロネッカー積(Kronecker product)

9テンソルの計算(2)

Page 10: 2014 3 13(テンソル分解の基礎)

内積とノルム

同じ大きさの二つのテンソルの内積は、

X = Yのとき、フロベニウスノルムになる

10テンソルの計算(3)

Page 11: 2014 3 13(テンソル分解の基礎)

テンソルの展開(Unforlding)

ベクトル化(vectorization)

11テンソルの計算(4)

Page 12: 2014 3 13(テンソル分解の基礎)

n方向の行列化(n-way matricization)

12テンソルの計算(5)

-行列化の手順-① テンソルをn方向へスライスする。(In個のスライス)

② 各スライスを行ベクトルへ展開する。(In個のベクトル)

③ 各行ベクトルを上から下に縦に並べる。

Page 13: 2014 3 13(テンソル分解の基礎)

行列と行列の積

(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

行列化 行列化

Page 14: 2014 3 13(テンソル分解の基礎)

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

Page 15: 2014 3 13(テンソル分解の基礎)

いろいろなテンソル同士の積

外積 (s階テンソルとt階テンソルでs+t階テンソルになる)

15テンソルの計算(8)

I

JK

L

JK

I

L

=

JKL

JKI I

L

=

Page 16: 2014 3 13(テンソル分解の基礎)

テンソルの概念について紹介

テンソルの計算

足し算(引き算)

定数倍

アダマール積

成分ごとの商

クロネッカー積

内積、ノルム

展開:ベクトル化

展開:行列化

テンソルと行列の積

テンソル同士の積

外積

16途中まとめ

Page 17: 2014 3 13(テンソル分解の基礎)

行列の因子分解、特徴抽出

テンソルの因子分解と次元削減

行列分解をテンソルに拡張したもの

17テンソル分解

ベクトルベースのデータ解析

・・・

主成分分析(PCA)

独立成分分析(ICA)

スパース成分分析(SCA)

非負行列分解(NMF)

W・・・

Page 18: 2014 3 13(テンソル分解の基礎)

18テンソルデータの解析

MRI画像

脳波(時間・周波数)

3階テンソルの特徴抽出

A

C

BT

高階テンソルデータ

CPモデル Tuckerモデル

gr

ar

cr

brGA

C

BT

テンソル分解

Page 19: 2014 3 13(テンソル分解の基礎)

全部同じモデルを指す

CP: canonical polyadic decomposition

PARAFAC: pararell factor analysis

CANDECOMP: canonical decomposition

ここでは、CPモデルとよびます。

1ランクテンソル

N個のベクトルの外積で表せるN階テンソル

CPモデル(3階テンソル)

Rランクへの近似モデルになっている

19CPモデル

Page 20: 2014 3 13(テンソル分解の基礎)

CPモデル(3階テンソル)

カトリ・ラオ積

20CPモデルの行列化

CPモデル

行列化されたCPモデル

Page 21: 2014 3 13(テンソル分解の基礎)

評価基準

a,b,cのノルムは一意に決まらない

任意の実数dに対して, a a/d, bb*d としてもよい

a,b,cのノルムを正規化

21CP分解のための評価基準

特異値のテンソル版

Page 22: 2014 3 13(テンソル分解の基礎)

問題

導出 (λ,B,Cを固定して, Aについて解く)

最小化条件

更新式

22CP分解のアルゴリズムの導出

この目的関数を関数Lとおく

Page 23: 2014 3 13(テンソル分解の基礎)

入力: X, R

初期化:B, C (各列のノルムは1)

収束するまで繰り返し

(r=1,…,R)

(r=1,…,R)

(r=1,…,R)

(r=1,…,R)

出力: A, B, C, Λ

23CP分解のアルゴリズムまとめ

Page 24: 2014 3 13(テンソル分解の基礎)

Tucker3モデル(3階テンソル)

Gが対角の時、Tuckerモデル=CPモデル

24Tuckerモデル

=

Page 25: 2014 3 13(テンソル分解の基礎)

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・

Page 26: 2014 3 13(テンソル分解の基礎)

評価基準

G,A,B,Cは一意に決まらない

A, B, Cに正規直交制約を加える(これでも一意にはならない…)

目的関数Lについて見ていく

26Tucker分解のための評価基準

この目的関数を関数Lとおく

Page 27: 2014 3 13(テンソル分解の基礎)

目的関数LにGを代入する

目的関数の最小化は、 Gのノルムの最大化となる(PCAと同じ)

27Tucker分解のための評価基準(2)

Page 28: 2014 3 13(テンソル分解の基礎)

問題

導出 (λ,B,Cを固定して, Aについて解く)

更新則

28Tucker分解のアルゴリズムの導出

または

Page 29: 2014 3 13(テンソル分解の基礎)

入力: X, R1, R2, R3

初期化ステップ

Repeat(収束まで)

End

出力: G, A, B, C

29Tucker分解のアルゴリズムまとめ

HOSVD

HOOI

Page 30: 2014 3 13(テンソル分解の基礎)

一般的な評価基準

モデル+制約

という組み合わせから、いくつもの手法とアルゴリズムが提案されている。

制約項

最適化アルゴリズム

30制約付きのCP・Tucker分解

与えられたテンソルデータ

モデル(CP・Tucker)

制約・直交制約・スパース制約・スムース制約・非負制約

Page 31: 2014 3 13(テンソル分解の基礎)

解の一意性の向上

目的にあった特徴を抽出したい

例: Textデータ(ヒストグラム)、確率密度関数は必ず非負であり、それらを構成する基底(特徴)ベクトルもまた非負であるはず。

例:物理的要因でスパース性、スムース性を仮定して良い場合、(

スムースな自然画像、一般に疎なスペクトルなど)

例:それぞれが独立な特徴ベクトルを抽出したい

ノイズや、無駄な因子をできるだけ取り除きたい

制約によっては、ノイズに対する頑健性を向上できる

31なぜ、制約が必要なのか?

解の領域

解の領域制約

Page 32: 2014 3 13(テンソル分解の基礎)

特徴ベクトルをそれぞれが直交するベクトルの組に限定

線形独立性が保障される

特徴ベクトルのノルムが正規化される

他の制約(疎、非負など)との親和性が低い

適用例:SVD、PCA、ICA、HOSVDなど

32直交制約

Page 33: 2014 3 13(テンソル分解の基礎)

スパースとは、

ベクトルの成分のほとんどの値が 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ノルムの等高線

目的関数の等高線

Page 34: 2014 3 13(テンソル分解の基礎)

スムース性

ベクトルの隣り合う成分の値の差が小さい

例: 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スムース制約

スムースでない スムース

Page 35: 2014 3 13(テンソル分解の基礎)

非負制約とは、

特徴ベクトルの成分の値がすべて非負という制約

非負制約は、特徴ベクトルの非負性だけではあまり意味がなく、係数の非負性があってはじめて効果を発揮する。

なぜなら非負制約は和算のみでモデル化するための制約だから

和算のみの制約によって相殺が不可能となるため、構成要素としてのパーツを抽出することができる。

35非負制約

+

+

+

+

+

+

+ + +

+-

- +

Page 36: 2014 3 13(テンソル分解の基礎)

スパース・スムース・非負制約などを付加したさまざまな拡張が提案されている。

スパース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分解のさまざまな拡張

Page 37: 2014 3 13(テンソル分解の基礎)

複数の濃淡画像を重ねた3階のテンソルデータ

特徴行列=基底行列であり、コアテンソルはその係数と考えて良い。

37テンソル分解の画像処理への応用

A BT

タッカー分解

Tucker2モデル

特徴行列

特徴行列 コアテンソル

= + + + +・・・

= + + + +・・・

Page 38: 2014 3 13(テンソル分解の基礎)

38Tucker2モデルで得られた直交基底

Page 39: 2014 3 13(テンソル分解の基礎)

39二次元DCT と Tucker2分解の違い

A BT

Tucker2モデル

基底行列

基底行列 コアテンソル

C1C2

Tコサイン関数行列

コサイン関数行列

コアテンソル

DCT

基底行列が決まっていて、コアテンソルだけを最適化してフィッティングしている

基底行列とコアテンソル両方最適化するフィッティングする

DCT基底 Tucker2基底

Page 40: 2014 3 13(テンソル分解の基礎)

もし、NMF/NTFによって顔画像のパーツが的確に学習されていれば、パーツの組み合わせによって顔画像を構成できる。ノイズを付加された顔画像を、構成モデルで再構成する事を考える。再構成された画像は基底行列が張る空間に限定されるため、ノイズ除去に利用できる。

張る空間の次元が小さいとまったく別の(平均的な)顔になる…

40非負テンソル分解による顔画像の再構成

ノイズ付加 NMF Smooth NMF NTF Smooth NTF

Page 41: 2014 3 13(テンソル分解の基礎)

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で比較

Page 42: 2014 3 13(テンソル分解の基礎)

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分解

Page 43: 2014 3 13(テンソル分解の基礎)

テンソルの概念とさまざまな計算則を紹介

2つのテンソル分解モデルを紹介

CPモデル

Tuckerモデル

最も基本的な分解アルゴリズムを紹介

CP-ALSアルゴリズム

HOOIアルゴリズム

制約付きテンソル分解について紹介

直交制約

スパース制約

スムース制約

非負制約

簡単な応用例を紹介

Tucker2モデルによる直交基底の学習

CP・Tucker分解によるノイズ除去

43まとめ

Page 44: 2014 3 13(テンソル分解の基礎)

最後まで聞いてくださってありがとうございました。

44おわり