-- Views
April 16, 26
スライド概要
東北大学で2023年に開講していた「パターン認識論」のスライドです
本スライドでは、文字認識や音声認識で用いられる高次元特徴ベクトルの問題点として、重要でない次元や次元間の相関・レンジの違い、そして次元の呪いを紹介しています。その上で、次元間の相関を除去し情報を保ったまま次元を削減する手法として、主成分分析(PCA)の理論と計算手順、固有値・固有ベクトルの役割を詳述しています。また、識別に有利な次元を優先する線形判別分析(LDA)と、ニューラルネットワークを用いた次元圧縮手法であるオートエンコーダの概念と構成を示し、実際に文字画像を2704次元から2次元へ圧縮する例を通じて可視化や認識への応用を解説しています。
I'll be writing programs, papers, and ramblings.
パターン認識論 第3回 伊藤 彰則 [email protected] @akinori_ito 1
特徴空間の変換(1) ◼ 認識に使う特徴ベクトルは一般に大変次元が高 い 文字認識で1文字あたり32×32ドット→1024次元 ◼ 音声認識:5~10msあたり20~30次元 ◼ ◼ 次元は高いが,すべての次元が重要とは限らない あまり重要でない次元の存在 ◼ 次元間の相関 ◼ 次元間のレンジの違い ◼ ◼ 次元が高いと認識系の設計がうまく行かなくなる (次元の呪い) 2
特徴空間の変換(2) ◼ 重要でない次元の存在 この辺はほとんど1 にならない→識別 に寄与しない 3
特徴空間の変換(3) ◼ 次元間の相関 1次元では分類できない →2次元必要? こうすれば? 4
特徴空間の変換(4) ◼ 次元間のレンジの違い 5
次元の呪い 無限にデータと計算能力があれば次元数は 関係ない ◼ 実際には有限なデータから推定をする必要 がある ◼ 高次元では推定に要するサンプル数が多くなる (逆に,限られたサンプルでは推定精度が悪くな る) ◼ 次元を増やしすぎると識別性能が悪化 (Hughesの現象) ◼ ◼ 計算量は次元数の増加につれて急激に増 える 6
特徴空間の正規化 ◼ 次元間に相関がなければ,各次元の分散を 合わせることで正規化できる ・・・ ・・ ・ ・ ・・ ・ ◼ ・・ ・ ・ ・・ ・ ・ ・ ・ 各次元の分散を重みとする重みつきユーク リッド距離を使うことと等価 7
主成分分析(1) ◼ 次元間に相関がある場合は? ◼ 距離が離れることの「重要度」が方向によって 違う マハラノビス距離を使 うと言う手もあるが 8
主成分分析(2) ◼ 各次元が無相関になるように空間を回転さ せ,重要な軸を残す→Karhunen-Loéve(KL) 展開、または主成分分析(PCA) 9
主成分分析(3) ◼ 元の特徴空間上のベクトルxに対する線形 𝑡 写像𝐲𝑖 = 𝐴 𝐱𝑖 ~ ◼ Aは d d の行列 (図の例では2×1) ◼ Aを求める基準: 変換後のデータの分散が 最大になるように選ぶ t ◼ Aの条件:A A=I Aは回転(と次元圧縮)を表す 10
主成分分析(4) 分散最大基準 1 t ~ ~ ) → max ( y − m ) ( y − m i i n i 1 1 t ~ m = yi = A m = At xi n i n i 1 1 t t t ~ ~ (yi − m) (yi − m) = (xi − m) AA (xi − m) n i n i ここで列ベクトルv について vt v = tr(vvt ) したがって 1 t t tr A (xi − m)(xi − m) A = tr( At A) → max 11 n i ◼
補足:正規分布の1次変換 t ~ m= Am 1 t ~ ~ = ( yi − m)(yi − m) n i 1 t t ~ = A ( xi − m)(xi − m) A n i t = A A 12
解の導出 ( ) t t tr( A A) + (I − A A) = 0 A Lagrangeの未定係数 1 0 t = tr( A A) = 2A 0 ~ A d t (I − A A) = −2 A A A = A ←固有方程式 13
解の形 ◼ 前記の式の解は次の形になる ただしe1,..., ed~はの固有値 A = (e1 ... ed~ ) 1,...d~に対応する固有ベクト ル 1 d~ , || e1 ||=|| e2 ||= =|| ed~ ||= 1 14
補足:固有値(1) ◼ 固有値(eigenvalue)と固有ベクトル (eigenvector) 1次変換Aに関して Ax = x が成り立つとき,を固有値,xを固有ベクトルと いう. ◼ 簡単な例 1 0 1 = 2 = 1 A = 0 1 ◼ a 0 1 0 1 = a, 2 = b, e1 = , e2 = A = 0 b 0 1 15
補足:固有値(2) ◼ 対角行列の固有値=対角成分 1 e1 e 1 2 O a 0 0 b b be1 O ae2 a 16
補足:固有値(3) ◼ 対角成分が等しい対称行列の固有値 1 e1 Oe 2 1 a c c a 1e1 O 2e2 斜め45度方向 1 = a + c 2 = a − c 17
補足:固有値(4) ◼ 一般の対称行列の固有値(c0) 1 e1 Oe 2 1 a c c b 1e1 O cos e = sin c −a tan = = −b c a + b (a − b)2 + 4c2 = 2 2e2 18
演習 ◼ 次の行列の固有値と固有ベクトルを求めよ 2 0 (1) A = 0 3 2 1 (2) A = 1 2 4 2 (3) A = 2 1 19
再び主成分分析 ◼ PCAの意味 データ全体の分布を 楕円(超楕円体)で近 似 (=多次元正規分布 で近似) ◼ 楕円の長い方の対称 軸(=大きい固有値に 対応する固有ベクト ル)にデータを射影 ◼ 20
どこまで次元圧縮できるか ◼ 累積寄与率を使う 固有値の総計に対する,上位の固有値の和の 比率 ◼ これが1に近ければ,それだけデータが記述で きていることを表す ◼ ~ d ~ i=1 r(d ) = d i i =1 i 21
PCAの利点・欠点 ◼ 良い点 データの表現力を保存したまま次元を下げられ る ◼ 変換後は次元軸の間のデータの相関がないの で,データを多次元正規分布で表現しやすくなる (共分散行列が対角になる) ◼ ◼ 悪い点 ◼ 識別に有利な次元が残るとは限らない 22
例 ◼ 文字ピクセルの空間をPCAで次元圧縮して みよう 1文字あたり 52x52ピクセル (周囲に空白有) 23
平均と分散 平均 分散 24
2次元に圧縮
2704次元を2次元
に圧縮
比較的似た文字
が同じ領域に集
まっている
◼ 1次元目は「外側
に四角い線があ
るかどうか」
◼ 2次元目は「中心
の縦線」
4
D
R
B
U H
O
GQ C
N P
ES
◼
2
F
-2
0
0
M L
6
@
K
9
u
8
b
3
h
d 5opW
V
q 2Z w
% n
$
J?
g
&
e
A c
X
a
7vy
#
k m
s
z 4 Yx
-4
compdata[,2]
◼
~
"
T
><
^
=
/*
+ \r
) (
] i
[ 1 l! I
{} j |
t
,.` _
;: '
f
-10
-8
-6
-4
compdata[,1]
-2
0
25
固有ベクトル 1次元目 2次元目 3次元目 4次元目 26
線形判別分析(LDA) ◼ 識別に有利な次元を優先して次元圧縮 1 2 27
線形判別分析(2) ◼ 準備 1 : N (m1, 1) 2 : N (m2 , 2 ) W = P(i )i クラス内共分散 i m = P(i )mi 全パターン平均 i B = P(i )(mi − m)(mi − m)t クラス間共分散 i 28
線形判別分析(3) ◼ 変換行列Aでデータを1次元に射影 y=Ax t ◼ それぞれの共分散行列を変換すると ~ t W = A W A ~ t B = A B A ◼ 変換後は1次元なので比が計算できる A B A J ( A) = t → max A W A t 29
線形判別分析(4) ◼ −1 前式を最大にするA: W B の固有ベクトル ◼ J(A)の最大値はその固有値に一致する 30
ニューラルネットによる次元圧縮 ◼ PCAをニューラルネット風に描けば 𝒚 𝑡 𝒚=𝐴 𝒙 𝒙 𝒙′ 𝑡 𝐴 𝒙′ = 𝐴𝒚 𝐴 パーセプトロン 31
オートエンコーダ ◼ パーセプトロンの部分を一般的なニューラル ネットに置き換える →オートエンコーダ (Autoencoder、自己符号化器) 𝒚 𝒙 𝒙′ 𝒙 − 𝒙′ 2 を最小化 左と右のネットワークは 必ずしも対称でなくても よい このように抽出した特徴 𝒚をボトルネック特徴 (bottleneck feature)と 呼ぶことがある 32
LDAをニューラルネット化 ◼ サンプルに対するクラスがわかっているので あれば、認識性能が上がるように次元削減 をすることができる 𝒚 𝒙 𝑳 𝑳 = (𝐿1 , … , 𝐿𝐶 ) 1 𝒙 ∈ 𝜔𝑘 𝐿𝑘 = ቊ 0 otherwise One-hot vector 33
LDAをニューラルネット化 ◼ ニューラルネットで認識をするのなら、そもそ も次元圧縮をする必要がないのでは? →次元圧縮はさまざまなことに使える 可視化 ◼ ニューラルネットで特徴量を求めた後で、別の 認識器を使って認識する ◼ ◼ 本当のクラスがわからないときに、疑似的な クラスを使って同じようなことをする →自己教師あり学習 (self-supervised learning) 34
例 先ほどと同じ例 (2704次元を2 次元にする) ◼ オートエンコー ダを使う ◼ ◼ 2704→20→ sigmoid→2→ 2704 35
例 先ほどと同じ例 (2704次元を2 次元にする) ◼ 認識ネットワー クのボトルネッ ク特徴 ◼ ◼ 2704→20→ sigmoid→2→ 94→softmax 36