大規模データ解析応用事例
2. 行列分解1:特異値分解
情報工学部 知能情報工学科 田中宏和
講義スケジュール
1. 講義概要 & MATLAB入門
2. 行列分解1:特異値分解、行列近似、最小二乗法、擬逆行列
3. 行列分解2:主成分分析、固有顔、次元打ち切り、ランダム化SVD
4. スパース性と圧縮センシング1:フーリエ変換、圧縮センシング
5. スパース性と圧縮センシング2:スパース回帰、スパース分類、RPCA
6. 回帰分析とモデル選択1:線形回帰、非線形回帰、数値最適化
7. 回帰分析とモデル選択2:モデル選択、交差検証法、情報量基準
8. クラスタリングと分類分析1:特徴抽出、クラスタリング法
9. クラスタリングと分類分析2:教師あり学習、分類分析
10. ニューラルネットワーク1:パーセプトロン、誤差逆伝播法
11. ニューラルネットワーク2:確率勾配法、深層ネットワーク
12. 発展学習:神経データ解析
行列分解1:特異値分解(Singular value decomposition, SVD)
1.1 Overview
1.2 Matrix Approximation
1.3 Mathematical Properties and
Manipulations
1.4 Pseudo-Inverse, Least-Squares, and
Regression
1.5 Principal Component Analysis (PCA)
1.6 Eigenface Example
1.7 Truncation and Alignment
1.8 Randomized PCA
1.9 Tensor Decomposition and N-Way Data
Analysis
行列分解1:特異値分解(Singular value decomposition, SVD)
% 1.2 SVD Example: Image Compression
CH01_SEC02_production.m
% 1.4 Psudo-Inverse, Least-Squares, and Regression
CH01_SEC04_1_Linear.m
CH01_SEC04_2_Cement.m
CH01_SEC04_3_Housing.m
% 1.5 Principal Component Analysis
CH01_SEC05_1_PCAGaussian.m
CH01_SEC05_2_OvarianCancer.m
% 1.6 Eigenface Example
CH01_SEC06_1.m
CH01_SEC06_2_3_4.m
CH01_SEC06_2_3_4_production.m
% 1.7 Truncation and Alignment
CH01_SEC07_1_Truncation.m
CH01_SEC07_1_production.m
CH01_SEC07_2_Truncation.m
CH01_SEC07_2_production.m
CH01_SEC07_3_Alignment.m
CH01_SEC07_3_production.m
% 1.8 Randomized PCA
CH01_SEC08_RSVD.m
行列分解:特異値分解(Singular value decomposition, SVD)
1. 特異値分解(Singular value decomposition)
2. 行列近似(Matrix approximation)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
5. 主成分分析、固有顔
6. 次元打ち切り(dimensional truncation)
7. ランダム化特異値分解(randomized SVD)
5/26
特異値分解1
6/2
特異値分解2
【本日の講義内容】特異値分解(SVD)
1. 特異値分解(Singular value decomposition)
- 行列の因子分解の一つ
2. 行列近似(Matrix approximation)
- 特異値の大きい成分のみを用いて行列を近似(ランク r 近似)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
1 1 1
ˆ ˆ
m m mσ σ= = + +X U u vΣV u v  
1 1 1
ˆ ˆˆ
r r r r r r rσ σ≈ = = + +X ΣX U u vV u v   
1
,+
+ −
=
=
→ =
A A A
Ax b x A b
A ΣV U
【本日の講義内容】特異値分解(SVD)
1. 特異値分解(Singular value decomposition)
- 行列の因子分解の一つ
2. 行列近似(Matrix approximation)
- 特異値の大きい成分のみを用いて行列を近似(ランク r 近似)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
1 1 1
ˆ ˆ
m m mσ σ= = + +X UΣV u v u v  
1 1 1
ˆ ˆˆ
r r r r r r rσ σ≈ = = + +X ΣX U u vV u v   
1
,+
+ −
=
=
→ =
A A A
Ax b x A b
A ΣV U
データとしての行列とは:代表例
• 線形代数で習った行列
変数をn行m列に並べたもの
• データとしての行列
数字(何らかの観測値)をn行m列に並べたもの
例1:画像
例2:脳波
行列分解:大規模データから「重要な」要素を抽出する一方法
n行
m列
n行
m列
n×m行列にはnm個のデータ
→ 1,000×1,000ピクセルの画像データであれば、1,000,000個(=メガピク
セル)の数字
→ データの本質を保ちつつデータ量を削減する系統的手法が必要
n>m: tall-skinny matrix n<m: short-fat matrix
行列分解:大規模データから「重要な」要素を抽出する方法
行列分解の種類 定義 対応するMATLABコマンド
特異値分解 svd
固有値分解
(スペクトル分解)
eig
QR分解 qr
LU分解 lu
LDU分解 lu
シュール分解 schur
非負行列因子分解 nnmf
=X UΣV
1−
=X UΛU
=X QR
=X LU
=X LDU
=X QUQ
( ) ( )( ), , n m
O n O m ×
∈ ∈ ∈V ΣU 
( )( )1, dia ,g ,n n
nλ λ×
∈ =U Λ 
=X WH
( ),n k m k× ×
+ +∈ ∈W H 
( )( ):,O n∈Q R 上三角行列
( ): , :L U下三角行列 上三角行列
( )( ):,O n∈Q U 上三角行列
: , :
:
 
 
 
L U
D
下三角行列 上三角行列
対角行列
ここで行列 は直交行列である。
行列 は以下の形をとる。
行列の特異値分解:定義
定義:行列 の特異値分解とは、行列 の積
として、
と表すことである。
=X UΣV
n m×
∈X  , ,n n n m m m× × ×
∈ ∈ ∈U Σ V  
,U V
, mn= = = =UU U U I VV V V I   
Σ
( )
1 0ˆ
ˆ,
0n
m
m m
m
σ
σ×−
 
   
= =    
  
 
Σ
Σ Σ
0

  

行列の特異値分解:定義
行列の特異値分解:定義
行列の特異値分解:定義
X U Σ V=
X U V= Σ
n>m “tall-skinny”の場合
n<m “short-fat”の場合
行列の特異値分解:数値例
1 2 3
6 4 5
8 9 7
10 11 12
 
 
 =
 
 
 
X UΣV
0.138 0.617 0.053 0.773
0.340 0.370 0.814 0.290
0.546 0.535 0.575 0.290
0.753 0.443 0.059 0.483
− − − − 
 
− − =
 − − −
 
− − 
U
0.555 0.679 0.480
0.585 0.091 0.806
0.591 0.728 0.347
− 
 
=− − 
 − − 
V
25.35 0 0
0 2.15 0
0 0 1.71
0 0 0
 
 
 =
 
 
 
Σ
X = [1 2 3;
6 4 5;
8 9 7;
10 11 12];
[U, S, V] = svd(X);
• 上記で求めた行列U, S, Vが元の行列Xの特異
値分解になっていることを確かめよ。
>> U*S*V '
• 4×4行列Uと3×3行列Vが直交行列である
ことを確かめよ。
>> U*U'
>> U'*U
>> V*V'
>> V'*V
行列の特異値分解:定義
[ ]1 2 m
n m×
= ∈X x x x 
[ ]1 2 n
n n×
= ∈U u u u 
[ ]1 2 m
m m×
= ∈V v v v 
ˆ n m×
 
∈=  
 
Σ
Σ
0

行列の特異値分解:直交行列UとV
[ ]1 2 n
n n×
= ∈U u u u 
[ ]1 2 m
m m×
= ∈V v v v 
1 if
0 if
i j
j
i j
i
=
= 
 ≠
u u
は直交行列であり、 を左特異ベクトルと呼ぶ
n= =U U UU I 
も直交行列であり、 を右特異ベクトルと呼ぶ
1 if
0 if
i j
j
i j
i
=
= 
 ≠
v v
m= =V V VV I 
・
・
{ } 1
n
i i=
u
{ } 1
m
i i=
v
直交行列の例:回転行列と反転行列
( )
cos sin
sin cos
θ θ
θ
θ θ
− 
=  
 
R
xe
ye
x′e
y′e
( ) ( ) ( ) ( ) 2θ θ θ θ= =R R R R I
 
xe
ye
x′e
y′e
1
0 1
0− 
=  
 
P
2= =P P PP I 
行列の特異値分解:特異値行列 Σ
Σ
ˆ
m m×Σ
( )n m m− ×
0
=
( )
1
1 2
2
0 0
0 0
0 0
=diag ,
ˆ
, ,
m m
m
m
σ
σ
σ
σ σ σ
×
 
 
 =
 

 
Σ



   


1 2 0mσ σ σ≥ ≥ ≥ ≥ 行列Xの特異値
行列の特異値分解
X U Σ V
V
VˆΣ
0
ˆU ˆU
ˆU
=
=
=
ˆΣ
Full SVD
economy SVD
行列の特異値分解:数値例
1 2 3
6 4 5 ˆ
8 9 7
10 11 1
ˆ
2
 
 
 =
 
 
 
X UΣV
0.138 0.617 0.053
0.340 0.370 0.814ˆ
0.546 0.535 0.575
0.753 0.443 0.059
− − − 
 
− =
 − −
 
− − 
U
0.555 0.679 0.480
0.585 0.091 0.806
0.591 0.728 0.347
− 
 
=− − 
 − − 
V
0
ˆ
25.35 0 0
0 2.15 0
0 1.71
 
 
=  
 
 
Σ
X = [1 2 3;
6 4 5;
8 9 7;
10 11 12];
[Uhat, Shat, V] = svd(X, ' econ ');
• 上記で求めた行列Uhat, Shat, Vが元の行列X
の特異値分解になっていることを確かめよ。
>> Uhat*Shat*V'
• 4×3行列Uhatに関して、以下の計算をせよ。
>> U'*U (これは単位行列)
>> U*U' (これは?)
行列の特異値分解:ランク1近似
X = 1u 2u mu 2
1
m
σ
σ
σ


1v
2v
mv
= 1u 1v
1σ 2u 2v
2σ mu mv
mσ+ + +
行列の特異値分解:数値例
ˆ
0.138 0.617 0.053
25.35 0 0 0.555 0.679 0.480
0.340 0.370 0.814
0 2.15 0 0.585 0.091 0.806
0.546 0.535 0.575
0 0 1.71 0.591 0.728 0.347
0.753 0.443 0.059
0.138
0.340
25.35
0.
ˆ=
− − − 
−   
−     − −   − −   − −   
− − 
−
−
=
−
X ΣU V

( ) ( ) ( )
0.617 0.053
0.370 0.814
0.555 0.585 0.591 2.15 0.679 0.091 0.728 1.71 0.480 0.806 0.347
546 0.535 0.575
0.753 0.443 0.059
− −     
     
     − − − + − + −
     −
     
− −     
S(1,1)*U(:,1)*V(:,1)' S(2,2)*U(:,2)*V(:,2)' S(3,3)*U(:,3)*V(:,3)'
【本日の講義内容】特異値分解(SVD)
1. 特異値分解(Singular value decomposition)
- 行列の因子分解の一つ
2. 行列近似(Matrix approximation)
- 特異値の大きい成分のみを用いて行列を近似(ランク r 近似)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
1 1 1
ˆ ˆ
m m mσ σ= = + +X U u vΣV u v  
1 1 1
ˆ ˆ ˆ
r r r r r r rσ σ≈ = = + +X X U Σ V u v u v   
1
,+
+ −
=
=
→ =
A A A
Ax b x A b
A ΣV U
行列近似:Eckart-Youngの定理
Eckart-Youngの行列近似定理(1936)
行列Xが与えられたとき、この行列を近似するランクrの行列のうち、二乗
誤差を最小にする最適解は、特異値分解をランクrで打ち切ったもの
(rank-r SVD truncation)
( )s.t. rank F
arg min
r=
− =
X X
ΣX X U V 
    
ここで、行列 は行列 の最初の列を取り出したもの、また行列
は行列 の最初のr×r行列を取り出したものである。また、近似行列 を
以下のように書くと便利である。
,U V,U V  Σ
Σ
1
1
1 1
r
r r r
i
i i iσ σ σ
=
= += +∑X u v u v u v   
X
(補足)minとargmin
min: 関数の最小値(minimum)
arg min: 関数の最小値を与えるxの値(argument of the minimum)
( )y f x=
x
y
*
x
( )*
f x ( )*
arg min
x
x f x=
( ) ( )*
min
x
f x f x=
( ) ( ) ( ) ( ){ }min | :
x
xf x f x y f fy= ∀ ≥
( ) ( ) ( ){ }arg min | :
x
f xf x x y f y ≥= ∀
行列近似:Eckart-Youngの定理
X
=
1
r
σ
σ

1r
m
σ
σ
+

1 ru u 1r m+u u
1
r
v
v



1
m
r+v
v



≈ 1 ru u
1
r
σ
σ

1
r
v
v


 X
=
行列近似:Eckart-Youngの定理
X
=
1
r
σ
σ

1r
m
σ
σ
+

1 ru u 1r m+u u
1
r
v
v



1
m
r+v
v



≈ 1 ru u
1
r
σ
σ

1
r
v
v


 X
=
行列近似の図示
X = 1u 1v
1σ ru rv
rσ+ + 1r+u 1r+v
1rσ + mu mv
mσ+ ++
=1u 1v
1σ ru rv
rσ+ +
X≈
行列近似の図示
X = 1u 1v
1σ + +
1u 1v
1σ ru rv
rσ+ +
X =
mu mv
mσ
1j
j j
m
jσ
=
= ∑X u v
1
j j j
r
j
σ
=
= ∑X u v 
行列 X のランク-r 近似
( )
0.138 0.617
0.555 0.679
0.340 0.370 25.35 0
0.585 0.091
0.546 0.535 0 2.15
0.591 0.728
0.753 0.443
0.138 0.617
0.340 0.3
25.35 0.555 0.585 0.591 2.15
0.546
0.753
− − 
−  
−     −   −   − −   − − 
− − 
 
−  − − − +
 −
 
− 
X

( )
70
0.679 0.091 0.728
0.535
0.443
 
 
  −
 
 
− 
ˆ
0.138 0.617 0.053
25.35 0 0 0.555 0.679 0.480
0.340 0.370 0.814
0 2.15 0 0.585 0.091 0.806
0.546 0.535 0.575
0 0 1.71 0.591 0.728 0.347
0.753 0.443 0.059
0.138
0.340
25.35
0.
ˆ=
− − − 
−   
−     − −   − −   − −   
− − 
−
−
=
−
X ΣU V

( ) ( ) ( )
0.617 0.053
0.370 0.814
0.555 0.585 0.591 2.15 0.679 0.091 0.728 1.71 0.480 0.806 0.347
546 0.535 0.575
0.753 0.443 0.059
− −     
     
     − − − + − + −
     −
     
− −     
行列 X のランク-2 近似
行列近似:数値例
2
1.04 1.93 3.03
5.33 5.12 4.52
8.47 8.21 7.34
9.95 11.08 11.97
 
 
 =
 
 
 
X
ランク-2 近似
1 2 3
6 4 5
8 9 7
10 11 12
 
 
 =
 
 
 
X 1
1.94 2.05 2.07
4.79 5.05 5.10
7.69 8.10 8.18
10.60 11.17 11.27
 
 
 =
 
 
 
X
3
1 2 3
6 4 5
8 9 7
10 11 12
 
 
 =
 
 
 
X
行列近似:数値例
ランク-1 近似元行列 ランク-3 近似
行列近似:行列のフロベニウスノルム
2 2
F
2
2
F
2
F
1
1
1
2
(*)
(**)
(***)
m
j
r
j
m
j r
j
j
j
σ
σ
σ
=
=
= +
=
=
− =
∑
∑
∑
X
X
X X


2
1
1
22
F
2
F
r
j
j
j
m
j
σ
σ
=
=
=
∑
∑
X
X

( ) ( )
1 1
2 2
F
tr tr
n m
i
j
j
iX
= =
= = =∑∑X XX X X 【定義】行列のノルム
(“長さ”)
行列のノルムと特異値の関係
特異値分解によるランク-r行列近似の精度は、
ノルムの比として書ける。
【演習問題】固有値分解の定義を用
いて、左の関係式を導け。
特異値分解:svdコマンド
>> [U,S,V] = svd(X, 'econ');
>> [U,S,V] = svd(X);
【本日の講義内容】特異値分解(SVD)
1. 特異値分解(Singular value decomposition)
- 行列の因子分解の一つ
2. 行列近似(Matrix approximation)
- 特異値の大きい成分のみを用いて行列を近似(ランク r 近似)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
1 1 1
ˆ ˆ
m m mσ σ= = + +X U u vΣV u v  
1 1 1
ˆ ˆˆ
r r r r r r rσ σ≈ = = + +X ΣX U u vV u v   
1
,+
+ −
=
=
→ =
A A A
Ax b x A b
A ΣV U
特異値分解による行列の近似
A=imread('../DATA/dog.jpg'); % 画像の読み込み
X=double(rgb2gray(A)); % 画像をグレイスケールに変換
nx = size(X,1); ny = size(X,2);
[U,S,V] = svd(X); % 特異値分解
figure, subplot(2,2,1)
imagesc(X), axis off, colormap gray
title('Original')
plotind = 2;
for r=[5 20 100] % 打ち切り値 この場合 5, 20, 100
Xapprox = U(:,1:r)*S(1:r,1:r)*V(:,1:r)'; % Approx. image
subplot(2,2,plotind), plotind = plotind + 1;
imagesc(Xapprox), axis off
title(['r=',num2str(r,'%d'),',
',num2str(100*r*(nx+ny)/(nx*ny),'%2.2f'),'% storage']);
end
set(gcf,'Position',[100 100 550 400])
CH01_SEC02_production.m
特異値分解による行列の近似:画像圧縮の例
特異値分解により画像の大まかな特徴が捉えられる
5
ˆ
r=X =
=
1 1 1σ u v
2 2 2σ u v
3 3 3σ u v
4 4 4σ u v
5 5 5σ u v
+ + + +
+ + + +
[ ]
2
1 1
5 1 2
2
3 4 5 3 3
4 4
5 5
ˆ
r
σ
σ
σ
σ
σ
=
  
  
  
  =
  
  
     
v
v
X u u u u u v
v
v





特異値の分布
CH01_SEC02_production.m
特異値 特異値の累積和
【本日の講義内容】特異値分解(SVD)
1. 特異値分解(Singular value decomposition)
- 行列の因子分解の一つ
2. 行列近似(Matrix approximation)
- 特異値の大きい成分のみを用いて行列を近似(ランク r 近似)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
1 1 1
ˆ ˆ
m m mσ σ= = + +X U u vΣV u v  
1 1 1
ˆ ˆˆ
r r r r r r rσ σ≈ = = + +X ΣX U u vV u v   
1
,+
+ −
= → =
= A A A
Ax b x A b
A V Σ U
線形回帰と最小二乗法
A x b= A x =A =
(# 方程式) > (# 未定変数) (# 方程式) = (# 未定変数) (# 方程式) < (# 未定変数)
bx
, 23m n= = , 22m n= = , 21m n= =
b
解は一意に求まる 解は無数解はなし
線形回帰と最小二乗法
=Ax b
, ,m nn m×
∈ ∈ ∈A x b  
A x b= A x =A =
(# 方程式) > (# 未定変数) (# 方程式) = (# 未定変数) (# 方程式) < (# 未定変数)
bx b
1−
=x A b+
=x A b
スパース解
(講義4,5でやります)逆行列擬逆行列
線形回帰:優決定系 (overdetermined system)
=Ax b
, ,m nn m×
∈ ∈ ∈A x b  
A x b=
• 優決定系 (# 方程式) > (# 未定変数)
→ 一般にAx=bを満たす変数xは存在しない
→ Axとbの差を最小にする変数xを求める
• 最小二乗問題
( ){ }
22
min min ii
i
Ax b−= −∑x x
Ax b
最小二乗問題と擬逆行列
( )
1 m n− ×+
∈=A A A A  
m m
+
×=A A I
( ){ }
22
min min ii
i
Ax b−= −∑x x
Ax b
+
=x A b
n n×
+
≠AA I
最小二乗問題
最小二乗問題の解
擬逆行列
擬逆行列について注意
( )
1 m n− ×+
∈=A A A A  
m m
+
×=A A I
n n×
+
≠AA I
A
n>m: tall-skinny matrix
n<m: shot-fat matrix
A
( )
1 m n×+ −
= ∈A A AA  
n n×
+
=AA I
m m
+
×≠A A I
n
n
m
m
特異値分解を用いた擬逆行列の計算
( )
1 m n− ×+
∈=A A A A  
m m
+
×=A A I
n n×
+
≠AA I
A
m>n: tall-skinny matrix
m
n
ˆˆ= A A AA ΣU V 1ˆ ˆ+ −
= A A AA ΣV U
特異値分解を用いた擬逆行列の計算
( )
1+ −
=A A A A 
1ˆ ˆ+ −
= A A AA ΣV U
ˆˆ= A A AA ΣU V
[U,S,V] = svd(A,'econ');
V*inv(S)*U'
inv(A'*A)*A'
% pinv(A)
擬逆行列:具体例
CH01_SEC04_2_Cement.m
7 26 6 60
1 29 15 52
11 56 8 20
11 31 8 47
7 52 6 33
11 55 9 22
3 71 17 6
1 31 22 44
2 54 18 22
21 47 4 26
1 40 23 34
11 66 9 12
10 68 8 12
78.5
74.3
104.3
87.6
95.9
109.2
102.7
72.5
93.1
115.9
83.8
113.3
109.4
x1
x3
x2
x4
=
=Ax b
[U,S,V] = svd(A,'econ');
x = V*inv(S)*U'*b;
• 特異値分解を用いた解法
• 擬逆行列を用いた解法
x = pinv(A)*b;
擬逆行列:例
CH01_SEC04_2_Cement.m
x1
x3
x2
x4
=
+
=x A b
-0.0193 -0.0176 0.0050 0.0158 -0.0315 0.0085 -0.0159 0.0130 -0.0086 0.0554 0.0132 0.0023 -0.0101
0.0040 0.0017 0.0018 -0.0036 0.0099 0.0006 0.0059 -0.0066 0.0020 -0.0094 -0.0059 0.0033 0.0066
-0.0261 -0.0065 -0.0026 0.0031 -0.0329 0.0012 0.0008 0.0283 0.0072 0.0233 0.0309 -0.0028 -0.0133
0.0111 0.0067 -0.0007 0.0032 0.0074 -0.0011 -0.0032 -0.0011 -0.0013 -0.0052 -0.0034 -0.0022 -0.0002
78.5
74.3
104.3
87.6
95.9
109.2
102.7
72.5
93.1
115.9
83.8
113.3
109.4
2.1930
1.1533
0.7585
0.4863
=
線形回帰:劣決定系 (underdetermined system)
=Ax b
, ,n mm n×
∈ ∈ ∈A x b  
A x b=
• 劣決定系 (# 方程式) < (# 未定変数)
→ Ax=bを満たす変数xは無数に存在
→ 解を一意に求めるには制約条件が必要
• 講義4, 5「スパース性と圧縮センシング」
で解法を学びます
【本日のまとめ】特異値分解(SVD)
1. 特異値分解(Singular value decomposition)
- 行列の因子分解の一つ
2. 行列近似(Matrix approximation)
- 特異値の大きい成分のみを用いて行列を近似(ランク r 近似)
3. 応用例:画像圧縮(Image compression)
4. 擬逆行列、最小二乗、回帰問題
1 1 1
ˆ ˆ
m m mσ σ= = + +X U u vΣV u v  
1 1 1
ˆ ˆˆ
r r r r r r rσ σ≈ = = + +X ΣX U u vV u v   
1
,+
+ −
=
=
→ =
A A A
Ax b x A b
A ΣV U
演習問題
1. 画像近似のコードを走らせて、その内容を理解してください。
CH01_SEC02_production.m
2. 線形回帰のコードを走らせて、その内容を理解してください。
CH01_SEC04_2_Cement.m
3. 以下の行列の特異値分解と擬逆行列を求めてください。
1 2
3 4
5 6
7 8
 
 
 =
 
 
 
X
演習問題
4.(やや難)
正規分布に従う確率変数を要素に持つ行列は(例えば200×100行列の場合)、以下
で生成できます。
>> X = randn(100, 200);
このようなランダム行列の特異値はどのような値を取るか、見てみましょう。
>> [U,S,V] = svd(X);
>> s = diag(S);
得られた特異値をヒストグラムとして表示してみましょう。これができたら、行列
Xをランダムに100回繰り返して生成し、特異値の分布を調べてみましょう。

東京都市大学 データ解析入門 2 行列分解 1