パターン認識論 - tohoku university official english ...aito/patternrec/slides.pdf ·...
TRANSCRIPT
パターン認識論
前半(基礎)
http://www.spcom.ecei.tohoku.ac.jp/~aito/patternrec
パターン認識とは?
自然界にあるさまざまな情報を元に、物事を分類・識別する
● 人間の能力を模倣するもの顔の認識情景の認識音声の認識文字の認識ジェスチャーの認識
● 人間の能力とは(あまり)関係ないものリモートセンシングタッチパネル
簡単な例(1)
簡単な計測で男女を自動的に識別することを考えてみよう
身長?何かの量を計測して,それを元に識別を行う→特徴量識別するものの数→クラス
しきい値による識別
1次元の量を元に識別
ある値(しきい値/閾値)より大きいか小さいか
130 140 150 160 170 180 190 200
0
1
2
3
4
5
6
7
8
[cm]
[%]
大学生の身長分布(健康白書より)
簡単な例(1)認識のプロセス
人間計測 特徴量
(身長)
識別関数(閾値) 答え
(0/1)
原データから、認識に有効な特徴を数値で取り出す過程
特徴量を使って、クラスの識別を行う関数
+なら男-なら女
165)( xxg
簡単な例(2)
OK NG
これはどうよ?
これは?
簡単な例(2)特徴量を探そう
例えば「縦横比=短辺/長辺>0.65ならOK」
簡単な例(2)認識のプロセス
原データ(長方形)
特徴抽出(縦横比計算) 特徴量
(縦横比)
識別関数(閾値) 答え
OK/NG
原データから、認識に有効な特徴を数値で取り出す過程
特徴量を使って、クラスの識別を行う関数
65.0)( xxg),max(
),min(
hw
hwx
簡単な例(3)
これはどうよ?
OK NG
色の識別
簡単な例(3)特徴量を探そう色空間は3次元 (R,G,B)
1つの色は3つの数字からなるベクトルで表される→特徴ベクトル
簡単な例(3)他の特徴量?
(R,G,B)を(色相(H),彩度(S),明度(V))にしてみたら?
色相:色の種類(色相環での角度)青(-120)~赤(0)~緑(120)
彩度:色の鮮やかさ白(0)~純色(1)
明度:色の強さ黒(0)~
RGB空間とHSV空間
R
G
B
r
bg
(r,g,b)
V R
G
B
S
H(H,S,V)
色空間内の(R,G,B)座標と(H,S,V)座標
G,Bif24060
BR,Gif12060
BG,Rif60
RMINMAX
BGMINMAX
BGMINMAX
BG
H),,min(
),,max(
BGRMIN
BGRMAX
MAXV
MAX
MINMAXS
簡単な例(3) HS空間での分布
0
0.2
0.4
0.6
0.8
1
-180 -80 20 120
色相(H)
彩度
(S) OK
NG??
簡単な例(2)識別関数の設計
0
0.2
0.4
0.6
0.8
1
-180 -80 20 120
色相(H)
彩度(S) OK
NG
??
例えば
22
205.0
11),(
HSSHg
簡単な例(2)識別関数の設計
0
0.2
0.4
0.6
0.8
1
-180 -80 20 120
色相(H)
彩度(S) OK
NG
??
識別関数は1通りではない
60
||5.0),(
HSSHg
簡単な例(2)識別関数の設計
識別関数は1通りではない
1-otherwise
160||and5.0),(
HSSHg
0
0.2
0.4
0.6
0.8
1
-180 -80 20 120
色相(H)
彩度
(S) OK
NG??
パターン認識のポイント
特徴量(特徴ベクトル)の選択
生データからどういう特徴を選ぶか
次元は低いほうが望ましい(次元の呪い)
識別関数の設計
人間が設定 vs. データから自動設計
自動設計の方法 パラメトリック vs. ノンパラメトリック
識別関数のタイプ(1次,2次,それ以上…)
特徴量の選択 どんな問題にも適用できる設計方針はない
問題に応じて考える 顔画像認識:顔の部品の位置
文字認識:方向線素特徴量など
音声認識:スペクトル,ケプストラムなど
衛星画像リモートセンシング:色,テクスチャ
次元はできれば低いほうが良い 次元が高いほうが表現能力は高い
次元が高いと,特徴関数の自動推定が困難に
特徴量の次元と表現能力 1つのデータを表すのに使う数値の数=次元
「縦横比」は1次元,(H,S)は2次元,(R,G,B)は3次元
音声や画像では10~100次元も珍しくない
できるだけいろいろな情報があったほうがデータの記述能力は上がる(当然)
例:(H,S)では明るさの情報が表せない.(R,G,B)または(H,S,V)ならすべての色が表現できる
次元が高いと識別関数の設計が難しくなる(後述)
問題に対して必要かつ十分な次元を選ぶ(難)
識別関数(2クラス)
入力を2つのクラスに分類することを考える
OK と NG とか
一方をクラス ,もう一方を とする
クラスωについての識別関数 を考える)(xg
xx
xx
0)(
0)(
g
g
識別関数の設計 人間が設計する方法
さっきは人間が設計した
次元が高いと破綻する 50次元空間での識別関数を想像できる?
データから自動設計する方法
「教師データ」を与えて,それをできるだけうまく表現できるモデルを自動生成
「どういうタイプのモデルか」は既知
これを「学習(learning)」と呼ぶ
識別関数の自動設計 実はこの部分が狭義の「パターン認識理論」なのだ
どういう形式の識別関数を使うか? 1次関数,2次関数,ニューラルネットワーク,…
K-NN法,マハラノビス距離,ベイズ識別,…
その識別関数をどうやって学習するか? パーセプトロン学習
学習ベクトル量子化
逆誤差伝播学習(BP法)
...
識別関数のパラメータと表現力
手動で設定するにしても学習するにしても,識別関数の「形」だけ最初に決めてしまい,そのパラメータだけを後から決めることが多い
識別関数とパラメータの例
1次元:しきい値(パラメータ1個)
2次元:線形判別関数(パラメータ実質3個)
),( 21 xxx
xxg )(
221100)( xaxaaag T xax
識別関数と識別境界
「識別」とは
特徴量空間上の点をいくつかのクラスに分ける
特徴量空間にはクラスの境界面ができる→識別境界
いろいろな識別境界
いろいろな識別境界
x<2
y>3
x<4
y>2.8
Yes No
Yes No
Yes No
Yes No
いろいろな識別境界
いろいろな識別境界
識別境界について
境界の複雑さ 単純 複雑
表現力 低い 高い
パラメータ数 少ない 多い
必要な学習データ量 少ない 多い
過学習 起きにくい 起きやすい
過学習
学習 実際
微妙な識別境界の曲り具合に意味があるのか?
表現力と学習の容易さ
識別関数の表現能力が高くても,パラメータが適切に学習できなければ無意味
適切な学習アルゴリズムがあるか
データ量は十分か
一般にパラメータが多いほど多くの学習データを必要とする
空間に対して学習用のサンプルデータが密に配置されているのが望ましい
次元が上がるほどサンプルは疎になる(次元の呪い)
識別関数の設計
では,どうやって識別関数を決めればいいのか
一般的な方法はない
何に依存するか 問題の複雑さ
特徴ベクトルの次元
サンプル数
いろいろな識別手法の紹介
最近傍決定則(NN法)
あるクラスを代表する点(「プロトタイプ」または「標準パターン」)を用意する
新しいデータ x について,距離が最も近いプロトタイプを探す
が最も近ければ ,そうでなければ
n
n
2
1
2
1
1
1
,...,
,...,
pp
pp
i
1p x
x
距離とは何か?(1)
2点間の近さ加減を表す尺度
距離の公理
),(),(),(
),(),(
0),(
yzzxyx
xyyx
xx
ddd
dd
d
距離とは何か?(2)
距離(距離尺度)の例
ユークリッド距離
d
t
d
d
t
d
y
y
yyy
x
x
xxx
1
21
1
21
),...,,(
),...,,(
y
x
d
i
ii yxd1
2)(),( yx
距離とは何か?(3) 市街地距離
重みつきユークリッド距離
d
i
ii yxd1
||),( yx
)0...()(),( 1
1
2
D
d
i
iii wwyxwd yx
距離とは何か?(4)
距離が一定の点の軌跡を見てみよう(2次元の場合)
ユークリッド距離 市街地距離 重みつきユークリッド距離
NN法再び
2つのプロトタイプとユークリッド距離を使った識別
Op1
Np1
x
識別境界の超平面
超平面(2次元の場合は直線)によってクラスを分離→線形識別関数
補足:多次元空間での境界
2つの領域を分けるものは?
1次元:点
2次元:線
3次元:面
N次元: (N-1)次元超平面
演習
2次元で2つのプロトタイプの境界が直線になることを示せ.
プロトタイプ
これらの点からのユークリッド距離が等しい点の軌跡を調べよ
),(),,( 2211 yxyx
演習の答え(1)
0))(2())(2(
0)()()()(
),(),(
)()(),(
)()(),(
),,(),,(),,(
12211221
2
2
2
2
2
1
2
1
2
2
1
2
2
2
2
22
2
2
1
2
11
2
21222111
yyyyyxxxxx
yyxxyyxx
dd
yyxxd
yyxxd
yxyxyx
よりxpxp
xp
xp
ppxpp
演習の答え(2)
2
0))(2(
2)(2
))((
02))(()(2
0))(2())(2(
21
1221
21
21
12
1212
12
12
21
12
1212
12
12
21
12211221
xxx
xxxxx
yy
yy
yy
xxxxx
yy
xxy
yyyyy
xxxxx
yy
xx
yy
yyyyyxxxxx
のとき
のとき
演習の答え(3)
例を見てみよう
24
3
2
1
)3,2(),1,1( 21
xy
pp
NN法と線形識別関数(1)
プロトタイプとパターンの距離が最小になるプロトタイプpiを選ぶ
max||||2
1
min||||2||||)()(
min||||
min||||
2
22
2
ii
iii
t
i
i
i
ppx
ppxxpxpx
px
px
補足:ベクトルの内積
d
i
i
t
d
i
ii
t
d
t
d
d
t
d
x
yx
y
y
yyy
x
x
xxx
1
22
1
1
21
1
21
||||
),...,,(
),...,,(
xxx
yxyx
y
x
線形識別関数
一般の線形識別関数:xの一次関数
次のような「拡張特徴ベクトル」を考える
d
i
ii xwwwg1
00)( xwx
xw
wx
t
dd
g
w
w
w
x
x
)(
1
1
0
1
x
NN法と線形識別関数
NN法
線形識別関数
NN法は線形識別関数の一種
逆は成り立たない
2||||2
1)( iig pxpx
0)( wg xwx
多クラスの線形識別関数
クラス数をcとする
)(maxargˆ
,...,1)(
x
x
ii
t
ii
gi
cig
xw
これがパーセプトロンだ!
1x
2x
3x
4x
w11
w12
w13
)(1 xg
)(2 xg
)(3 xg
1
w10
w14
パーセプトロン学習 パーセプトロンの重みを学習するアルゴリズム
1. 重みw1…wcを初期化
2. k=1,2,…nについて
3. ならば
4. 修正がなければ終了
)(),...,(,..., 11 nn xxxx のクラスサンプル
jijk
t
ll
ik xwx maxarg)( のとき,
kjj
kii
xww
xww
)0(
なぜこれでよいのか?
xww とする
2||||( xxwxxxwxx)wxwtt ttt
すなわち>0ならwtxは大きくなり,<0なら小さくなる
内積 witx が誤分類の場合は,正しいクラスの値が大きくなり,
誤ったクラスの値が小さくなるように係数を修正
線形分離可能性 パーセプトロン学習は「誤りがあったら修正」→原理的に誤りが起きる場合は収束しない
教師データが「線形分離可能」な場合のみ収束する
線形分離可能 線形分離不可能
演習
パーセプトロン学習を実際にやってみよう
222
211
22
12
21
11
21
21
313121
311111
1223222
621212
)1,1,1()2,2,2(
1,)3,2(,)1,1(
xww
xww
xw
xw
xw
xw
ww
t
t
t
t
tt
tt
初期値
xx
演習の答え
重みベクトルの更新状況g(x) 判定 g(x) 判定
2 2 2 1 1 6 ○ 0 -2 2 1 1 0 ×2 2 2 2 3 12 × 0 -2 2 2 3 -4 ○1 1 1 1 1 3 ○ 3 5 1 1 1 9 ×1 1 1 2 3 6 × 3 5 1 2 3 22 ○0 -1 1 1 1 0 × 1 -1 3 1 1 3 ×0 -1 1 2 3 -2 ○ 1 -1 3 2 3 2 ○3 4 2 1 1 9 × 2 4 0 1 1 6 ×3 4 2 2 3 20 ○ 2 4 0 2 3 16 ○1 0 2 1 1 3 × 2 0 4 1 1 6 ○1 0 2 2 3 4 ○ 2 0 4 2 3 8 ○2 3 1 1 1 6 × 1 3 -1 1 1 3 ○2 3 1 2 3 14 ○ 1 3 -1 2 3 10 ○2 1 3 1 1 6 ○2 1 3 2 3 10 ×1 2 0 1 1 3 ○1 2 0 2 3 8 ×
w x w x
=0.2についても求めてみよう
演習の答え(2)
=0.2の場合g(x) 判定
2.00 2.00 2.00 1 1 6.00 ○2.00 2.00 2.00 2 3 12.00 ×1.00 1.00 1.00 1 1 3.00 ○1.00 1.00 1.00 2 3 6.00 ×1.60 1.40 1.80 1 1 4.80 ×1.60 1.40 1.80 2 3 9.20 ○1.40 1.60 1.20 1 1 4.20 ×1.40 1.60 1.20 2 3 8.80 ○1.20 0.80 1.60 1 1 3.60 ×1.20 0.80 1.60 2 3 6.40 ○1.80 2.20 1.40 1 1 5.40 ×1.80 2.20 1.40 2 3 11.60 ○1.40 1.00 1.80 1 1 4.20 ×1.40 1.00 1.80 2 3 7.60 ○1.60 2.00 1.20 1 1 4.80 ×1.60 2.00 1.20 2 3 10.40 ○1.60 1.20 2.00 1 1 4.80 ○1.60 1.20 2.00 2 3 8.80 ○1.40 1.80 1.00 1 1 4.20 ○1.40 1.80 1.00 2 3 9.20 ○
w x
演習の答えを確かめよう 最初に求めた識別境界は?
2番目に求めた識別境界は?
3
5
3
1
053
)5,3,1(
)1,3,1(),4,0,2(
21
21
xy
yxtxw
www
ww
3
5
3
1
016.02.0
)1,6.0,2.0(
)1,8.1,4.1(),2,2.1,6.1(
21
21
xy
yxtxw
www
ww
NN法の境界と異なることに注意
3点の場合
(1,1),(2,3),(3,1)の学習=0.1で求めると次のような境界が求まる
17
1313
4
1
8
732
9
11
9
121
)9.0,9.0,9.2(
)5.0,5.2,5.1(
)6.1,6.1,6.1(
3
2
1
xy
xy
xy
の境界と
の境界と
の境界と
w
w
w
区分的線形識別関数 非線型な識別関数を折れ線で近似
例:すべての教師データをプロトタイプとする「全数記憶方式」
一般的な学習アルゴリズムは知られていない
特殊な場合:全数記憶,学習ベクトル量子化(LVQ)など
線形分離不可能な場合の学習
線形分離不可能な場合
パーセプトロン学習は収束しない
完璧でなくても,何らかの意味で最善の識別関数が学習できれば都合が良い
望ましい識別関数出力との2乗誤差が最小になるように学習してみよう
最小2乗和
と,その教師信号パターン
重み
c
1i
2
1
)( pp
t
i
n
p
pp
i
b
b
xw
x
w
パーセプトロンと教師信号
1のパターンを入力
1)(1 xg
0)(2 xg
0)(3 xg
1x
2x
3x
4x
w11
w12
w13
1
w10
w14
教師信号bp
出力が教師信号に近づくように重みを学習する
p
tb xw1誤差
δルールによる学習
次の式により重みを更新
更新の重みを教師信号との誤差に比例させる
その他の部分はパーセプトロン学習とほぼ同じ
誤差の2乗和の減少が止まったところで停止
線形分離可能な場合に最適とは限らない
ppp
t
iii b xxwww )(
ニューラルネットワーク
多層パーセプトロン+非線型=ニューラルネットワーク
1x
2x
3x
4x
1
)1(
11w)1(
1h)2(
11w)1(
1g)2(
1h)2(
1g
1
入力層 中間層
(隠れ層)
出力層
ニューラルネットワーク
第k層の第iユニットの入力と出力
x
k
i
k
i
j
k
j
k
ji
k
i
ii
exf
hfg
gwh
xg
1
1)(
)( )()(
)1()()(
)0(
ニューラルネットワークの能力
非線型関数がミソ
非線型関数がないと,結局パーセプトロンと同じになる
中間層が多ければ任意の非線型境界が表現できる(でも学習できるとは限らない)
極限では区分的線形識別関数と同じ
効率の良い学習アルゴリズムが知られている(誤差逆伝播法)
演習
非線形性のない3層ネットワークは,2層のパーセプトロンと等価であることを示せ.
ニューラルネットでf(x)=xの場合に相当
まず下の例から行ってみよう
11
1x
2x)1(
ijw)2(
ijw
)(xg
演習の答え(1)
22110
2
)1(
22
)2(
21
)1(
21
)2(
11
1
)1(
12
)2(
21
)1(
11
)2(
11
)1(
02
)2(
21
)1(
01
)2(
11
)2(
01
2
)1(
221
)1(
12
)1(
02
)2(
21
2
)1(
211
)1(
11
)1(
01
)2(
11
)2(
01
)1(
2
)2(
21
)1(
1
)2(
11
)2(
01
)(
)(
)(
)(
)(
)(
xvxvv
xwwww
xwwww
wwwww
xwxwww
xwxwwww
gwgwwxg
演習の答え(1)
次は一般の場合
k
kk
k
j
ji
k
kj
j
jjii
k
kkjj
j
jii
j
j
jiii
xvv
xwwwww
xwwww
gwwxg
0
)2()1()1(
0
)2()2(
0
)1()1(
0
)2()2(
0
)1()2()2(
0)(
誤差逆伝播(BP)法(1)
重みの学習
出力層の誤差
中間層の誤差
)1()()()( l
i
l
j
l
ij
l
ij gww
)1()( )2()2()2()2(
jjjjj ggbg
)1( )1()1()2()2()1(
jj
k
jkkj ggw
誤差逆伝播法(2) 非線型関数と誤差
+
)2(
ih )( )2()2(
ii hfg
教師信号bi
ii bg )2(
)1()(
)()(
)2()2()2(
)2(')2()2(
iiii
iiii
ggbg
hfbg
+
)1(
ih)2(
1)2(
2)2(
3)2(
4
)1()(
)()(
)1()1()2()2(
)1(')2()2()1(
ii
k
ikk
i
k
ikki
ggw
hfw
ありがちなニューラルネットの例
XORの学習
O
2次元で線形分離不可能な最小のパターン
入力x
出力
入力y
1 1
1.34 3.07
-1.51
2.95
3.75
-2.67
-3.45
-3.55
3.30
学習結果
学習結果
ニューラルネットと NN法
XORは1つの線形識別関数では表せない
区分的線形な識別関数ならOK
O O
学習データの各点をプロトタイプにすれば完全
な識別が可能
ニューラルネットではこのような識別境界が学習された
O
こんな風にプロトタイプを配置すれば同じ識別境界が表
現できる
パラメトリックな識別
いままでは学習データから識別関数を直接学習していた
学習データがある確率分布に従うと仮定
確率分布のパラメータを推定する
確率密度関数を識別関数として利用
パラメトリックな識別
何が違うの?
1次元の識別
識別関数の学習による場合
確率密度関数を推定する場合
確率密度関数
あるクラスのパターンxが来る確率密度
あるクラスの生起確率
1)|(
)|(
xx
x
dp
p
1)(
)(
1
c
i
i
i
P
P
代表的な密度関数:正規分布
1次元の場合
2
2
2 2
)(exp
2
1)(
xxp
:平均
:標準偏差
正規分布
(ガウス分布)
多次元正規分布 d次元での正規分布
)μ()μ(
2
1exp
||)2(
1)( 1
2/12/xxx
t
dp
: 平均ベクトル
:共分散行列
2
21
2
2
221
121
2
1
21 ),...,,(
ddd
d
d
d
μ
2次元正規分布
共分散行列
多次元正規分布を輪切りにすると,断面は楕円(一般には超楕円体)になる
O
(1,2)
補足:1次変換
空間内の点を行列の掛け算によって写像
1次変換に平行移動を加えると「アフィン変換」
は単位行列 は対角行列 は対称行列
確率から識別関数へ
確率密度が求まったとして,どう認識するのか
パターンx,クラス1…c
パターンxが,あるクラスに属する確率
これが最大になるクラスに分類する
この確率をどう計算するか?
)|( xiP
Bayesの決定則
)()|(maxarg
)(
)()|(maxarg
)|(maxargˆ
Pp
p
Pp
P
x
x
x
x
あるクラスの確率密度関数×そのクラスの出現確率
補足:Bayesの定理
同時確率と条件付確率の関係
)(
)()|()|(
)|()()|()(),(
aP
bPbaPabP
baPbPabPaPbaP
パラメータの決定法
分布の推定=パラメータの推定=学習データから平均ベクトルと共分散行列を求める
学習データ
最尤(ML)推定法 :最も普通の推定
分布のパラメータをとする
が最大となるを推定パラメータとする
nX xxx ,...,, 21
)θ|(XP
最尤推定
最尤推定で平均と共分散を求めると
t
1
1
)()(1
1
μxμx
xμ
i
n
i
i
n
i
i
n
n
平均はどうして平均なのか?
最尤推定による平均の導出
分散は既知,平均が未知な正規分布N(,2)から生成されたサンプルx1…xn
i
i
i
i
i
i
i
i
i
i
xn
nxx
Xpd
d
xXp
xXp
100
2
)(2
0)|(log
2log2
1log
2
)()|(log
2
)(exp
2
1)|(
2
2
2
2
2
とおく
普通の識別関数との関係は?
確率の対数を識別関数にしてみよう
xとのマハラノビス距離
||log2
12log
22
)μ()μ(
2
)μ()μ(exp
||)2(
1log)|(log
1
1
2/12/
d
xp
t
t
d
xx
xx
)μ()μ()μ,( 12
xxxt
Md
マハラノビス距離
距離が一定の点の軌跡を見てみよう(2次元の場合)
正規分布による確率的な識別は,マハラノビス距離を使ったNN法に近い
ユークリッド距離 重みつきユークリッド距離
マハラノビス距離
マハラノビス距離と識別境界
2つのクラスで共分散行列が異なる場合
識別境界は2次曲線になる
識別関数による方法と確率分布による方法の比較
識別関数による方法の利点
事前に分布の形を仮定する必要がない
確率分布による方法の利点
識別に関する情報を他の情報(クラスの出現しやすさなど)と組み合わせるのが容易
複雑な形状の分布の扱い
混合正規分布でデータの分布を近似
複数プロトタイプのNN法と限りなく近くなる
混合正規分布
実際の分布が正規分布であらわせるかどうかは疑問→複雑な分布を複数の正規分布の和で近似
1
),|()(
k
k
k
kkk pp
μxx
注意:混合正規分布
混合正規分布と正規分布する確率変数の和を混同してはいけない
平均1cm,標準偏差5mmの棒の束と,平均2cm,標準偏差7mmの棒の束がある
両方の束から棒を1本ずつとり,両方を加えた長さを測る
正規分布する確率変数の和
平均3cm,標準偏差8.6mm
どちらかの束から棒を1本だけとり,その長さを測る 両方の分布を混合した混合正規分布
λはそれぞれの束から棒を取り出す確率
特徴空間の変換(1)
認識に使う特徴ベクトルは一般に大変次元が高い
文字認識で1文字あたり32×32ドット→1024次元
音声認識:5~10msあたり20~30次元
次元は高いが,すべての次元が重要とは限らない
あまり重要でない次元の存在
次元間の相関
次元間のレンジの違い
次元が高いと認識系の設計がうまく行かなくなる(次元の呪い)
特徴空間の変換(2)
重要でない次元の存在
この辺はほとんど1にならない→識別に寄与しない
特徴空間の変換(3)
次元間の相関
1次元では分類できない→2次元必要?
こうすれば?
特徴空間の変換(4)
次元間のレンジの違い
次元の呪い 無限にデータと計算能力があれば次元数は関係ない
実際には有限なデータから推定をする必要がある 高次元では推定に要するサンプル数が多くなる
(逆に,限られたサンプルでは推定精度が悪くなる)
次元を増やしすぎると識別性能が悪化(Hughesの現象)
計算量は次元数の増加につれて急激に増える
特徴空間の正規化
次元間に相関がなければ,各次元の分散を合わせることで正規化できる
各次元の分散を重みとする重みつきユークリッド距離を使うことと等価
・ ・・ ・・ ・・・・
・・ ・
・・・ ・・
・・
・
KL展開(1)
次元間に相関がある場合は?
距離が離れることの「重要度」が方向によって違う
マハラノビス距離を使うと言う手もあるが
KL展開(2)
各次元が無相関になるように空間を回転させ,重要な軸を残す→Karhunen-Loéve(KL)展開(または主成分分析、PCA)
KL展開(3)
元の特徴空間上のベクトルxに対する線形写像
Aは の行列(図の例では2×1)
Aを求める基準:変換後のデータの分散が最大になるように選ぶ
Aの条件:AtA=I
Aは回転(と次元圧縮)を表す
it
i A xy
dd~
KL展開(4)
分散最大基準
max)())((1
)(
)()(1
)~()~(1
11~
max)~()~(1
AAtrAAn
tr
vvtrvvv
AAnn
An
An
n
t
i
t
ii
t
tt
i
i
tt
ii
i
t
i
i
i
tt
i
i
i
i
t
i
mxmx
mxmxmymy
xmym
mymy
したがって
について 列ベクトル ここで
補足:正規分布の1次変換
AA
AAn
n
A
t
i
t
ii
t
i
t
ii
t
)~)((1
)~)(~(1
~
mxmx
mymy
mm
解の導出
AA
AAAIA
AAAtrA
AAIAAtrA
t
t
tt
2)(
2)(
0)()(Lagrangeの未定係数
d~
1
0
0
←固有方程式
KL展開(5)
前記の式の解は次の形になる
1||||||||||||,
,...
,...,...
~21~1
~1
~1~1
dd
d
d
dA
eee
eeee
ルに対応する固有ベクト
の固有値はただし
補足:固有値(1)
固有値(eigenvalue)と固有ベクトル(eigenvector)
1次変換Aに関してが成り立つとき,を固有値,xを固有ベクトルという.
簡単な例
xx A
1
0,
0
1,,
0
0
110
01
2121
21
eebab
aA
A
補足:固有値(2)
対角行列の固有値=対角成分
O
1
1
O
b
a
b
a
0
0
1e2e
2ae
1be
補足:固有値(3)
対角成分が等しい対称行列の固有値
O
1
1
O
ac
ca
1e
2e
22e
11e
斜め45度方向
ca
ca
2
1
補足:固有値(4)
一般の対称行列の固有値(c0)
O
1
1
O
bc
ca
1e
2e
22e
11e
2
4)(
tan
sin
cos
22 cbaba
c
a
b
c
e
演習
次の行列の固有値と固有ベクトルを求めよ
12
24)3(
21
12)2(
30
02)1(
A
A
A
演習の答え1
c=0の場合縦横方向のベクトルが変換後も同方向であることがわかる
)0,1(,2
)1,0(,3
30
02
22
11
e
e
A
演習の答え2
a=bの場合固有ベクトルが45度方向であることがわかる
2
2,
2
2,1
2
2,
2
2,3
21
12
22
11
e
e
A
演習の答え3
行列が1次独立でない場合,固有値が0になり,ランクが低下する
0
5
5,
5
52,5
12
24
2
11
e
A
再びKL展開
KL展開の意味
データ全体の分布を楕円(超楕円体)で近似(=多次元正規分布で近似)
楕円の長い方の対称軸(=大きい固有値に対応する固有ベクトル)にデータを射影
どこまで次元圧縮できるか
累積寄与率を使う
固有値の総計に対する,上位の固有値の和の比率
これが1に近ければ,それだけデータが記述できていることを表す
d
i
i
d
i
i
dr
1
~
1)~
(
KL展開の利点・欠点
良い点
データの表現力を保存したまま次元を下げられる
変換後は次元軸の間のデータの相関がないので,データを多次元正規分布で表現しやすくなる(共分散行列が対角になる)
悪い点
識別に有利な次元が残るとは限らない
例
文字ピクセルの空間をKL展開で次元圧縮してみよう
1文字あたり52x52ピクセル(周囲に空白有)
平均と分散
平均 分散
2次元に圧縮
2704次元を2次元に圧縮
比較的似た文字が同じ領域に集まっている
1次元目は「外側に四角い線があるかどうか」
2次元目は「中心の縦線」 -10 -8 -6 -4 -2 0
-4-2
02
4
compdata[,1]
co
mp
da
ta[,2
]
!
"
#
$ %&
'
()
*+
,
-
.
/
0
1
23
4
5
6
7
89
:;<
=
>?
@
A
BC
D
EF
G
H
I
J
KLM
N
O
P
QR
S
T
U
VW
X
Y
Z
[
\
]
^
_`
a
b
c
d
e
f
g
h
i
j
k
l
m
nopq
rs
t
u
v
w
x
yz
{ |}
~
固有ベクトル
1次元目 2次元目
3次元目 4次元目
線形判別分析(LDA)
識別に有利な次元を優先して次元圧縮
1
2
線形判別分析(2)
準備
i
t
iiiB
i
ii
i
iiW
P
P
P
N
N
))()((
)(
)(
),(:
),(:
222
111
mmmm
mm
m
m
クラス内共分散
クラス間共分散
全パターン平均
線形判別分析(3)
変換行列Aでデータを1次元に射影
それぞれの共分散行列を変換すると
変換後は1次元なので比が計算できる
xytA
AA
AA
B
t
B
W
t
W
~
~
max~
~
)(
AA
AAAJ
W
t
B
t
線形判別分析(4)
前式を最大にするA: の固有ベクトル
J(A)の最大値はその固有値に一致するBW
1
部分空間法
部分空間への射影を利用して識別を行う
KL展開やLDAは「特徴の変換」であって「識別」ではなかった
認識手順(CLAFIC法)
各クラスの特徴を保存する部分空間を作る
パターンを各部分空間に射影
射影後のパターンが元のパターンに最も近い空間に対応するクラスに分類する
CLAFIC法(1)
各クラスの固有空間
それぞれのクラスに属するデータに対してKL展開を適用して求める
1
2
1S
2S
CLAFIC法(2)
パターンをそれぞれの部分空間に射影する
直交射影行列
射影された点の長さ
1
2
1S
2S
i
t
ii AAP
xPx
xPPx
xPPxP
i
t
ii
t
i
t
i
t
i
2|||| x
CLAFIC法(3)
別な説明
固有空間の正規直交基底
点xのuij方向成分
点xを固有空間に射影したもの
その長さの2乗
iidii uuu ,...,, 21
ij
tux
j
ijij
tuux )(
j
ij
t 2)( ux
CLAFIC法(4)
射影された点と原点との距離
識別
1
2
1S
2S
j
ij
t
i
t
i PS
2)(
)(
ux
xxx
)(maxargˆ xii
Si
)(2 xS )(1 xS