特異値分解とその応用

Download Report

Transcript 特異値分解とその応用

特異値分解とその応用
2009年5月12日
計算理工学専攻 張研究室
山本有作
目次
• 特異値分解とその基本的性質
• 画像圧縮への応用
• 情報検索への応用
特異値分解とその基本的性質
対称行列の固有値分解
• 定理1
– 任意の n×n 実対称行列 A は次の形に分解できる。
A = VDVT
– ここで,
• V: n×n の直交行列
• D: n×n の対角行列 D = diag (l1 , l2 , … , ln )
(ただし l1 ≧l2 ≧ … ≧ln )
– これを A の固有値分解と呼ぶ。
– l1 , l2 , … , ln は A の固有値, V の第 i 列 vi は li に対応する
固有ベクトルとなる。
行列の特異値分解
• 定理2
– 任意の m×n 実行列 A (m ≧ n)は次の形に分解できる。
A = US VT
A
=
U
S
– ここで,
• U: m×m の直交行列
• V: n×n の直交行列
• S: m×n の対角行列 S = diag (s1 , s2 , … , sn )
(ただし s1 ≧s2 ≧ … ≧sr > sr+1 = …= sn = 0)
– これを A の特異値分解,s1 , s2 , … , sn を A の特異値と呼ぶ。
– 0 でない特異値の個数 r は行列 A のランクに等しい。
VT
特異ベクトル
• 右特異ベクトルと左特異ベクトル
– V の各列 v1, v1, …, vn を右特異ベクトルと呼ぶ。
– U の各列 u1, u1, …, um を左特異ベクトルと呼ぶ。
– 右特異ベクトル,左特異ベクトルは,それぞれ Rn, Rm の正規直
交基底をなす。
• これらを使うと,A はランク1の行列の和として表現できる。
A = s1u1v1T + s2u2v2T + … + srurvrT
A
=
+
× ×
s1
u1
+
× ×
s2
v1
u2
+
× ×
sr
v2
ur
vr
特異値分解の意味
• 幾何学的意味
– 行列 A をかける線形写像において,元の空間と行き先の空間に
適当に直交座標を定めると,写像は対角行列で表される。
v4
v3
A による乗算
u1
v2
元の空間
v1
vi 成分(i = 1, …, r)は
si 倍され,ui 方向を向く
vi 成分(i = r +1, …, n)
は 0 になる。
u2
u3
行き先の空間
像空間・核空間との関係
• 像空間
– Im(A) = {y∈Rm | ∃x∈Rn s.t. y = Ax}
– Im(A) = span{u1, u2, …, ur}
• 核空間
– Ker(A) = {x∈Rn | Ax = 0}
– Ker(A) = span{vr+1, vr+2, …, vn}
• すなわち,特異値分解が与えられると,像空間・核空間の
正規直交基底が特異ベクトルによって陽的に表される。
定理2の証明
• 証明の流れ
– m×m 正定値対称行列 AAT の固有値を {si2},固有ベクトルを
{ui} とする。 s1 ≧ … ≧sr > sr+1 = …= sm = 0 とする。
– AT ui = 0 (i = r+1, …, m)を示す。
– vi = (1/si) ATuiにより,ベクトル vi (i =1, 2, …, r)を求める。これら
が正規直交系をなすことを示す。
– V = [v1, v2, … , vn] が直交行列となるように vr+1, …, vn を定める。
– U = [u1, u2, … , um] とし,UTAV が対角行列となることを示す。
固有値分解との関係
• A の左特異ベクトルは AAT の固有ベクトル
– 定理2の証明より明らか。
• A の右特異ベクトルは ATA の固有ベクトル
– 実際に ATAvi を計算してみればよい。
• A の特異値は AAT (ATA )の固有値の正の平方根
– 定理2の証明より明らか。
ランク1の行列の和による行列の近似
• 近似
– A を次のようにランク1の行列 k 個(k ≦ r)の和で近似する。
A~
– Ak = x1y1T + x2v2T + … + xkykT
– 近似誤差を || A – Ak ||F で定義する。
• || A ||F = (Tr(ATA))1/2 = (Si=1m Sj=1n aij2)1/2
• 問題
– {xi},{yi} をどのように取れば,近似誤差が最小になるか?
– そのときの近似誤差は?
• 応用
– 情報圧縮,情報検索など
ランク1の行列の和による行列の最適近似
• 定理3 (Eckart & Young の定理)
– ランク1の行列 k 個(k ≦ r)の和による A の最適近似は,A の最
初の k 個の特異値と特異ベクトルを用いて次のように与えられる。
Ak = s1u1v1T + s2u2v2T + … + skukvkT
– また,近似誤差は特異値を用いて次のように書ける。
|| A – Ak ||F = (S i=k+1r si2)1/2
A
=
U
– Ak を A の打ち切り型特異値分解と呼ぶ。
S
VT
打ち切り
Ak
=
Uk
Sk
VkT
定理3の証明
• 補題4
– m×n 行列の空間 Rm×n における内積を,(A, B) = Tr(ATB) で定義
する。
– このとき,mn 個のランク1行列 uivjT (i = 1, 2, …, m, j = 1, 2, …,
n)は,この内積に関して正規直交系をなす。
– Rm×n は mn 次元であるから,これら mn 個の行列は Rm×n の正規
直交基底をなす。
定理3の証明(続き)
• 証明の流れ
– {uivjT} は Rm×n における基底であるから,A – Ak を {uivjT} で展開
してみる。
– {uivjT} は正規直交基底であるから,|| A – Ak ||F は展開係数の2
乗和の平方根となる。
– これが最小になるよう, Ak の展開係数を決める。ただし,0 でない
展開係数の数が k 個となるようにする。
画像圧縮への応用
画像圧縮の必要性
• 画像は一般的にデータ量が多い。
• 画像データの転送・記憶を効率的に行うために,圧縮が
できれば望ましい。
行列の近似を用いた画像圧縮
• 画像を行列と見る
– 200×320 ピクセルの白黒画像データ
– これを 200×320 の行列と見なす。
– データ量は 200×320 個の実数
• ランク1の行列の和による近似
– この行列をランク1の行列 k 個の和で近似できたとすると,デー
タ量は k×(200 + 320) 個の実数
– k が小さければ,データは大きく圧縮できる。
– 最適なランク1行列を求めるために,Eckart & Young の定理が
利用できる。
特異値分解を用いたアルゴリズム
• アルゴリズム
– 画像データを行列 A とみなす。
– A の特異値分解 A = US VT を計算
– 近似誤差 || A – Ak ||F = (S i=k+1r si2)1/2 が十分小さくなるよう,ランク
1行列の個数 k を決定
– s1u1, …, skuk, v1, …, vk が圧縮データ
– データを復元するには,次のようにして Ak を計算する。
Ak = s1u1v1T + s2u2v2T + … + skukvkT
– このデータ圧縮方式は,近似誤差の意味で,最適な圧縮となって
いる。
例題の画像データに対する特異値分布
• 特異値の分布から,ある次数 k で打ち切ったときの近似
誤差が推定できる。
打ち切り次数と復元画像の品質
情報検索への応用
効率的な情報検索の必要性
• 膨大な情報の中から必要な情報を引き出すことの難しさ
– 文献データベース
– インターネット上のファイル
• キーワードによる検索の問題点
– synonymyの問題: 内容的には関係の深い文書でも,たまたま
そのキーワードを使っていないために検索から漏れる。
– polysemyの問題: 同じキーワードを使っていても,内容的には
関係のない文書がヒットする。
• 課題
– 単なるキーワードのマッチングではなく,文書の意味内容に基づ
く分類/検索ができないか?
LSIの原理 (1) ベクトル空間モデル
• Term-Document Matrix
– 単語が行,文書が列に対応する行列A
– 要素 aij は,文書 j 中に単語 i が出てくる回数を表す。
LSIの原理 (1) ベクトル空間モデル
• 例: 文書のタイトルを内容とするデータベース
– 9個の文書
– 内容的に大きく2つの分野に分けられる。
c1:
c2:
c3:
c4:
c5:
m1:
m2:
m3:
m4:
Human machine interface for Lab ABC computer applications
A survey of user opinion of computer system response time
The EPS user interface management system
Systems and human systems engineering testing of EPS-2
Relation of user-perceived response time to error measurement
The generation of random, binary, unordered trees
The intersection graph of paths in trees
Graph minors IV: Widths of trees and well-quasi-ordering
Graph minors: A survey
LSIの原理 (1) ベクトル空間モデル
• Term-Document Matrixの例
Term
human
interface
computer
user
system
response
time
EPS
survey
tree
graph
minor
c1
1
1
1
0
0
0
0
0
0
0
0
0
c2
0
0
1
1
1
1
1
0
1
0
0
0
c3
0
1
0
1
1
0
0
1
0
0
0
0
Document
c4 c5 m1 m2
1 0 0 0
0 0 0 0
0 0 0 0
0 1 0 0
2 0 0 0
0 1 0 0
0 1 0 0
1 0 0 0
0 0 0 0
0 0 1 1
0 0 0 1
0 0 0 0
m3
0
0
0
0
0
0
0
0
0
1
1
1
m4
0
0
0
0
0
0
0
0
1
0
1
1
LSIの原理 (1) ベクトル空間モデル
• Term-Document Matrix を用いた文書間の近さの計算
– 2本の列ベクトル ai,aj の内積の値(またはベクトルのなす角度)
により,2つの文書の近さを判定。
– 内積の値が大きい → 文書の内容が近い
• 単語間の近さの計算
– 2本の行ベクトルの内積の値(またはベクトルのなす角度)により,
2つの単語の近さを判定。
LSIの原理 (2) ベクトル空間モデルの問題点
• 文書間の関連が十分に表現されない
– 内容的に関連のある文書でも,使用する単語に共通なものが少
ないと,列ベクトルどうしの内積は0に近くなる。
• 原因
– 列ベクトルの張る空間の自由度が大きすぎて,互いに直交する
方向の数が多すぎる。
LSIの原理 (2) ベクトル空間モデルの問題点
• 関連のある文書ベクトルどうしが直交する例
a1 a2 a3
a1
a2
a3
Term-Document Matrix A
a1,a2,a3 の位置関係
LSIの原理 (3) 次元の縮小
• 基本的なアイディア
– 各単語の軸は完全に独立ではないはず(ex. car と automobile)。
– 列ベクトルを低次元の部分空間に射影することにより,内容的に
近い文書どうしを近くに集める。
LSIの原理 (3) 次元の縮小
• 次元縮小による文書のクラスタリング
– 高次元の文書ベクトル集合をできるだけ良く近似する低次元空間
(平面)への射影を求める。
a2
a1
a1とa3は直交
a1
a1とa3は非直交
a3
a4
a3
a5
a7
a6
高次元空間
低次元空間(平面)
LSIの原理 (3) 次元の縮小
• 何次元の空間に射影すべきか?
– 大きすぎると,関連のある文書ベクトルどうしが直交してしまう。
– 小さすぎると,関連のない文書ベクトルどうしも重なってしまう。
– この2つのトレードオフから,経験的に最適な次元数を決定
LSIの原理 (3) 次元の縮小
• 次元を指定したとき,どうやって部分空間を求めるか?
– 元のベクトル集合をもっともよく近似する部分空間を求める。
– 部分空間の次元をkとするとき,|| A – A(k) ||F を最小化するランク
kの行列 A(k) を求めればよい。
– 特異値分解(SVD)を利用することにより可能
LSIの原理 (4) 特異値分解の利用
• 特異値分解の復習
– 任意の m×n 行列 A (m≧n) は,次の形に分解できる。
A = UΣVt
– ここで,
• U: m×n の直交行列
• V: n×n の直交行列
• Σ: n×n の対角行列Σ=diag (σ1 , σ2 , … , σn )
(ただしσ1 ≧σ2 ≧ … ≧σn )
– これをAの特異値分解,σ1 , σ2 , … , σn をAの特異値と呼ぶ。
LSIの原理 (4) 特異値分解の利用
• Eckart & Young の定理
– Aの列ベクトルの集合をもっともよく近似するランク k の行列A(k)
(k≦n) は,Σにおいてσk+1 以下の特異値をすべて0とした行列Σ(k)
=diag (σ1 , σ2 , … , σk , 0, … , 0 ) を用いて次のように求められる。
A(k) = UΣ(k) Vt
: 打ち切り型特異値分解
LSIの原理 (4) 特異値分解の利用
• 打ち切り型特異値分解の作成
特異値分解
A
打ち切り型
特異値分解
Ak
=
=
U
Uk
Σ
Vt
Σk
Vkt
• LSIによる文書間の近さの計算
– (1) Term-Document Matrix Aを作成し,特異値分解
– (2) 打ち切り型特異値分解 Ak = UkΣkVkt を作成
– (3) Ak の2本の列ベクトルの内積から,文書間の近さを計算
LSIの原理 (5) キーワードによる検索
• LSIによる文書間の近さの計算(続き)
– A(k) の2本の列ベクトル ai(k),aj(k) の内積は,元のAの列ベクトル
ai,ajを使うと以下のように書ける。
ai(k)・ aj(k) = ai・ U(k) U(k)t aj
– U(k) U(k) t は k 次元部分空間への射影演算子と見なせる。
• キーワードによる検索
– 与えられたキーワード群から単語空間での列ベクトル bi
(pseudo-objectと呼ぶ) を作成し,以下のようにして任意の文書
ベクトル aj との近さλを計算する。
λ = bi・ U(k) U(k)t aj
– λの値の大きな順に,キーワードに近い文書として答えを返す。
今後の課題
• 打ち切り型特異値分解の効率的な計算法
– 疎行列であるTerm-Document Matrixに適した計算法
– 並列化アルゴリズム
• 最適な打ち切り次元数の計算
– 現在は,経験的に最適な値を設定
– 最適な打ち切り次数は,理論的に計算できるか?
• 特異値分解の更新
– データベースに文書を追加すると,特異値分解の再計算が必要
– 最初から計算し直すことなく,特異値分解を更新できるか?
レポート課題
• 特異値分解の他の応用例を1つ挙げ,特異値分解がど
のように使われるかを数式を交えて説明せよ。
• 締め切り: 6月2日(火)
• 提出先: 3号館南館4階479号室
または [email protected]
様々な応用
• 文書以外のマルチメディア検索への応用
• 新材料設計への応用 (Oak Ridge国立研究所)
• 大学におけるエッセイの採点への応用 (Colorado大学)