Slide 1

Slide 1 text

テンソル分解の基礎と 画像・信号処理への応用 横田 達也 2014年3月 13日 1

Slide 2

Slide 2 text

高校時代 ~魚ロボット~ 大学時代 情報工学科 (計算機システム・プログラミングなど) 大学院 機械学習(パターン認識・データ解析)を研究 卒業後 → 理研の研究員 学歴 研究 2005年3月 東京工業大学工学部附属 工業高等学校機械科卒業 ↓ 特別推薦で合格 (10/200) 2009年3月 東京工業大学 卒業 杉山研究室 2011年3月 東京工業大学大学院 修士課程修了 山下研究室 2011年4月 ~現在 東京工業大学大学院 博士後期課程在学 大学:山下研 理研:チホツキ研 2 自己紹介

Slide 3

Slide 3 text

テンソルについて テンソルとは テンソルの計算則 テンソル分解のモデル CPモデル Tuckerモデル テンソル分解のアルゴリズム テンソル分解へのいろいろな拡張の研究 テンソル分解の応用技術の紹介 3 目次

Slide 4

Slide 4 text

添え字のついた変数(配列) スカラー、ベクトル、行列の一般名 例 添え字の数:階数 スカラー:0階のテンソル ベクトル:1階のテンソル 行列 :2階のテンソル ・・・ 4 テンソルとは?

Slide 5

Slide 5 text

多次元配列としてイメージしてみる 0階テンソル: 1階テンソル: 2階テンソル: 3階テンソル: 5 テンソルデータ ベクトル -スカラーを並べたもの 行列 -ベクトルを並べたもの -行列を並べたもの

Slide 6

Slide 6 text

3階のテンソルを直方体で表す 4階のテンソルは、 3階のテンソルを並べたものなので、➔ 5階のテンソルは、 4階のテンソルを並べたものなので、➔ n階のテンソルは、 (n-1)階のテンソルを並べたもの。 6 高階のテンソル ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・・・ ・・・ ・・・

Slide 7

Slide 7 text

7 テンソルデータの例 時系列データ ➔ 1階のテンソル (ベクトル) 多チャンネルの時系列データ ➔ 2階のテンソル (行列) 濃淡画像 カラー画像 ➔ 2階のテンソル (行列) ➔ 3階のテンソル (RGB×濃淡画像) カラー動画 ➔ 4階のテンソル (フレーム×カラー画像)

Slide 8

Slide 8 text

N階のテンソルを で表し、 その 成分を または で表す。 足し算(引き算) 同じ大きさの二つのテンソルの和は、 定数cに対するテンソルXの定数倍 cX は、 8 テンソルの計算(1)

Slide 9

Slide 9 text

アダマール積(Hadamard product) 同じ大きさの二つのテンソルのアダマール積は、 成分ごとの商(elementwise division) 同じ大きさの二つのテンソルの成分ごとの商は、 クロネッカー積(Kronecker product) 9 テンソルの計算(2)

Slide 10

Slide 10 text

内積とノルム 同じ大きさの二つのテンソルの内積は、 X = Y のとき、フロベニウスノルムになる 10 テンソルの計算(3)

Slide 11

Slide 11 text

テンソルの展開(Unforlding) ベクトル化(vectorization) 11 テンソルの計算(4)

Slide 12

Slide 12 text

n方向の行列化(n-way matricization) 12 テンソルの計算(5) -行列化の手順- ① テンソルをn方向へ スライスする。 (In 個のスライス) ② 各スライスを行ベク トルへ展開する。 (In 個のベクトル) ③ 各行ベクトルを上から 下に縦に並べる。

Slide 13

Slide 13 text

行列と行列の積 (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 J K ×1 I L = L J K I L I = JK L JK 行列化 行列化 ・

Slide 14

Slide 14 text

3階テンソルと3つの行列との積 14 テンソルの計算(7) I J K ×1 L = L M N ×2 M ×3 N I J K I L I = JK L MN ・ ・ MN JK 行列化で表記すると = IJK LMN ・ ベクトル化で表記すると IJK LMN

Slide 15

Slide 15 text

いろいろなテンソル同士の積 外積 (s階テンソルとt階テンソルでs+t階テンソルになる) 15 テンソルの計算(8) I J K L J K I L = JK L JK I I L =

Slide 16

Slide 16 text

テンソルの概念について紹介 テンソルの計算 足し算(引き算) 定数倍 アダマール積 成分ごとの商 クロネッカー積 内積、ノルム 展開:ベクトル化 展開:行列化 テンソルと行列の積 テンソル同士の積 外積 16 途中まとめ

Slide 17

Slide 17 text

行列の因子分解、特徴抽出 テンソルの因子分解と次元削減 行列分解をテンソルに拡張したもの 17 テンソル分解 ベクトルベースのデータ解析 ・・・ ➔ 主成分分析 (PCA) 独立成分分析(ICA) スパース成分分析 (SCA) 非負行列分解 (NMF) W ・・・

Slide 18

Slide 18 text

18 テンソルデータの解析 MRI画像 脳波(時間・周波数) 3階テンソルの特徴抽出 A C BT ➔ 高階テンソルデータ CPモデル Tuckerモデル gr ar cr br G A C BT テンソル分解

Slide 19

Slide 19 text

全部同じモデルを指す CP: canonical polyadic decomposition PARAFAC: pararell factor analysis CANDECOMP: canonical decomposition ここでは、CPモデルとよびます。 1ランクテンソル N個のベクトルの外積で表せるN階テンソル CPモデル(3階テンソル) Rランクへの近似モデルになっている 19 CPモデル

Slide 20

Slide 20 text

CPモデル(3階テンソル) カトリ・ラオ積 20 CPモデルの行列化 CPモデル 行列化された CPモデル

Slide 21

Slide 21 text

評価基準 a,b,c のノルムは一意に決まらない 任意の実数dに対して, a a/d, bb*d としてもよい a,b,c のノルムを正規化 21 CP分解のための評価基準 特異値の テンソル版

Slide 22

Slide 22 text

問題 導出 (λ,B,Cを固定して, Aについて解く) 最小化条件 更新式 22 CP分解のアルゴリズムの導出 この目的関数を 関数L とおく ➔

Slide 23

Slide 23 text

入力: X, R 初期化:B, C (各列のノルムは1) 収束するまで繰り返し (r=1,…,R) (r=1,…,R) (r=1,…,R) (r=1,…,R) 出力: A, B, C, Λ 23 CP分解のアルゴリズムまとめ

Slide 24

Slide 24 text

Tucker3モデル(3階テンソル) Gが対角の時、Tuckerモデル=CPモデル 24 Tuckerモデル =

Slide 25

Slide 25 text

Tuckerモデルの行列化(3階テンソル) Tuckerモデルのベクトル化 25 Tuckerモデルの展開 I R1 I = JK R2R3 JK A R1 R2R3 (C × B) 〇 T G(1) [Tuck](1) (C × B × A) 〇 〇 = IJK IJK R1R2R3 R1R2R3 ・

Slide 26

Slide 26 text

評価基準 G,A,B,C は一意に決まらない A, B, C に正規直交制約を加える(これでも一意にはならない…) 目的関数Lについて見ていく 26 Tucker分解のための評価基準 この目的関数を 関数L とおく ➔

Slide 27

Slide 27 text

目的関数LにGを代入する 目的関数の最小化は、 G のノルムの最大化となる(PCAと同じ) 27 Tucker分解のための評価基準(2)

Slide 28

Slide 28 text

問題 導出 (λ,B,Cを固定して, Aについて解く) 更新則 28 Tucker分解のアルゴリズムの導出 または

Slide 29

Slide 29 text

入力: X, R1, R2 , R3 初期化ステップ Repeat(収束まで) End 出力: G, A, B, C 29 Tucker分解のアルゴリズムまとめ HOSVD HOOI

Slide 30

Slide 30 text

一般的な評価基準 モデル + 制約 という組み合わせから、いくつもの手法とアルゴリズ ムが提案されている。 制約項 最適化アルゴリズム 30 制約付きのCP・Tucker分解 与えられたテンソルデータ モデル(CP・Tucker) 制約 ・直交制約 ・スパース制約 ・スムース制約 ・非負制約

Slide 31

Slide 31 text

解の一意性の向上 目的にあった特徴を抽出したい 例: Textデータ(ヒストグラム)、確率密度関数は必ず非負であり、 それらを構成する基底(特徴)ベクトルもまた非負であるはず。 例: 物理的要因でスパース性、スムース性を仮定して良い場合、( スムースな自然画像、一般に疎なスペクトルなど) 例: それぞれが独立な特徴ベクトルを抽出したい ノイズや、無駄な因子をできるだけ取り除きたい 制約によっては、ノイズに対する頑健性を向上できる 31 なぜ、制約が必要なのか? 解の領域 解の領域 制約

Slide 32

Slide 32 text

特徴ベクトルをそれぞれが直交するベクトルの組に限定 ☺線形独立性が保障される ☺特徴ベクトルのノルムが正規化される 他の制約(疎、非負など)との親和性が低い 適用例:SVD、PCA、ICA、HOSVDなど 32 直交制約

Slide 33

Slide 33 text

スパースとは、 ベクトルの成分のほとんどの値が 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ノルムの等高線 目的関数の等高線

Slide 34

Slide 34 text

スムース性 ベクトルの隣り合う成分の値の差が小さい 例: 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 スムース制約 スムースでない スムース

Slide 35

Slide 35 text

非負制約とは、 特徴ベクトルの成分の値がすべて非負という制約 非負制約は、特徴ベクトルの非負性だけではあまり意味がなく、 係数の非負性があってはじめて効果を発揮する。 なぜなら非負制約は和算のみでモデル化するための制約だから 和算のみの制約によって相殺が不可能となるため、構成要素としての パーツを抽出することができる。 35 非負制約 ➔ ➔ + + + + + + + ➔ + + ➔ ➔ + - - ➔ +

Slide 36

Slide 36 text

スパース・スムース・非負制約などを付加したさまざまな 拡張が提案されている。 スパース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) 共通個別因子分析など 36 CP・Tucker分解のさまざまな拡張

Slide 37

Slide 37 text

複数の濃淡画像を重ねた3階のテンソルデータ 特徴行列=基底行列であり、コアテンソルはその係数と考えて良い 。 37 テンソル分解の画像処理への応用 A BT タッカー分解 Tucker2モデル 特徴行列 特徴行列 コアテンソル = + + + + ・・・ = + + + + ・・・

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

39 二次元DCT と Tucker2分解 の違い A BT Tucker2モデル 基底行列 基底行列 コアテンソル C1 C2 T コサイン 関数行列 コサイン 関数行列 コアテンソル DCT 基底行列が決まっていて、 コアテンソルだけを最適化して フィッティングしている 基底行列と コアテンソル両方最適化する フィッティングする DCT基底 Tucker2 基底

Slide 40

Slide 40 text

もし、NMF/NTFによって顔画像のパーツが的確に学習さ れていれば、パーツの組み合わせによって顔画像を構成で きる。 ノイズを付加された顔画像を、構成モデルで再構成する事を考え る。再構成された画像は基底行列が張る空間に限定されるため、 ノイズ除去に利用できる。 張る空間の次元が小さいとまったく別の(平均的な)顔になる… 40 非負テンソル分解による顔画像の再構成 ノイズ付加 NMF Smooth NMF NTF Smooth NTF

Slide 41

Slide 41 text

PSNR(peak signal to noise ratio) 41 再構成誤差の評価 11枚 33 pixels 26 pixels G A C BT ・・・ 15人 ・・・ ・・・ ・・・ ・・・ 11枚 858 pixels R1×10×10 ・画像にはノイズ(10dB)が付加されている ・R1個のパーツで各顔画像を再構成する ・再構成した画像とノイズのない原画像をPSNRで比較

Slide 42

Slide 42 text

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 G A C B T G U W VT T 非負Tucker分解 非負CP分解 スムース非負Tucker分解 スムース非負CP分解

Slide 43

Slide 43 text

テンソルの概念とさまざまな計算則を紹介 2つのテンソル分解モデルを紹介 CPモデル Tuckerモデル 最も基本的な分解アルゴリズムを紹介 CP-ALS アルゴリズム HOOI アルゴリズム 制約付きテンソル分解について紹介 直交制約 スパース制約 スムース制約 非負制約 簡単な応用例を紹介 Tucker2モデルによる直交基底の学習 CP・Tucker分解によるノイズ除去 43 まとめ

Slide 44

Slide 44 text

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