23 第 2 章 パラメトリック学習と Bayes 決定則 出現パターンに何らかの確率分布を仮定し,標本からその分布のパラメータを推定し,学習を行 う方法をパラメトリック学習と呼ぶ.これに対し,確率分布を仮定しない識別モデルのパラメータ を学習により求める手法をノンパラメトリック学習と呼ぶ.本章では,確率の基礎概念とパラメト リック学習の基本である正規分布を仮定したパラメトリック学習を中心に解説をする. 2.1 2.1.1 確率と正規分布 確率の基礎 確率を厳密に定義するには,測度や加法族の概念が必要となり,抽象的な定義となってしまう. 本節では,なるべく直観的に,パターン識別に必要な確率について論じる. 試行とは,結果を定める行為であり,サイコロを振るとか,気温を観測するといったものを表 す.当然,同じ条件で試行を行っても結果が異なる場合がある.試行によって得られる結果の全 体 Ω を標本空間と呼ぶ.サイコロを振る例では,{1, 2, 3, 4, 5, 6} が標本空間であり,気温の例で は,[−273.15, +∞] 度が標本空間となる.標本空間の部分集合を事象と呼ぶ.サイコロの例では, {1}, {1, 5} などが事象である.標本空間全体は全事象と呼び,空集合は空事象と呼ぶ.サイコロの例 の {1} のように要素が 1 つである事象を根源事象と呼び,要素が複数の場合は複合事象と呼ぶ.2 つ以上の集合に共通な要素がないとき,排反事象と呼ぶ. 事象の起こりやすさを表したものが確率であるが,厳密には,以下の性質を満たす関数 P(A) を A の確率と呼ぶ. 1. 0 ≤ P(A) ≤ 1 2. P(Ω) = 1 3. A1 , A2 , . . . が排反事象であれば,P(A1 ∪ A2 ∪ . . . ) = P(A1 ) + P(A2 ) + . . . 事象 A,B がどちらも起きる確率を同時確率と呼び,P(A, B) または P(A ∩ B) で表す.事象 A が起 こったことが分かったとき,事象 B が起こる確率を条件付き確率と呼び,P(B|A) で表す.ここで, P(A, B) =P(B|A)P(A) = P(A|B)P(B) (2.1) が成り立つ.つまり,A, B がどちらも起きる確率は「A が起きる確率」と「A が起きた時に B が起 きる確率」の積で与えられる.これを変形して, 第 2 章 パラメトリック学習と Bayes 決定則 24 P(B|A) = P(A|B)P(B) P(A) (2.2) が得られる.式 (2.2) は Bayes の定理と呼ばれ,パターン識別においても重要な役割を果たす.こ れは左辺に P(B|A), 右辺に P(A|B) を含む.これにより,条件付き確率の条件を交換することがで きる. Ω 上に定義された関数を確率変数と呼ぶ.サイコロの例では,出た目の数値 {1, 2, 3, 4, 5, 6} を確 率変数と考えることができる.また,目が奇数の場合は 5 点,偶数の場合は 0 点などと定めても確 率変数となる.しかし,天気を { 晴,曇,雨 } などの事象を考えれば,これは実数ではないため確 率変数ではない.晴のときは 3, 曇のときは 2, 雨のときは 1 などのように定めれば確率変数となる. 確率変数を X で表す.X が x 以下となる確率を P(X ≤ x) と表し,これを x の関数として考えた ものを確率分布関数と呼ぶ. F(x) =P(X ≤ x) (2.3) サイコロの目を確率変数と考え,すべて確率 1/6 である場合には確率分布関数は, F(x) = 0 x<1 1/6 1 ≤ x < 2 1/3 2 ≤ x < 3 .. .. . . 1 6≤x (2.4) となる.確率分布関数は,lim x→−∞ F(x) = 0,lim x→+∞ F(x) = 1 となる. サイコロの例では確率分布関数 F(x) は不連続点を持つが,気温の例では連続で滑らかな関数と なるであろう.確率分布関数がすべての定義域において微分可能な場合,その微分 p(x) = d F(x) dx (2.5) を確率密度関数と呼ぶ.確率密度関数は以下の性質を持つ. lim p(x) =0 (2.6) lim p(x) =0 (2.7) p(x)dx =1 (2.8) p( x̃)d x̃ =F(x) (2.9) x→−∞ Z x→+∞ +∞ Z−∞x −∞ また,δx が十分に小さいときには,[x, x + δx] の値を取る確率は p(x)δx で与えられる. パターンを確率変数で表現したとき,確率変数は多次元ベクトルとなる.多次元の場合において も同様に確率分布関数と確率密度関数が定義できる. 2.1. 確率と正規分布 25 F(x) =P((X1 ≤ x1 ) ∩ (X2 ≤ x2 ) ∩ · · · ∩ (Xd ≤ xd )) p(x) = ∂d F(x) ∂x1 ∂x2 . . . ∂xd (2.10) (2.11) ここで,X1 , X2 , . . . , Xd と x1 , x2 , . . . , xd はそれぞれ, X と x の要素を表す. 期待値とは,確率変数の平均値であり,記号 E を使って表す.E は,Expectation の略であるが, 統計用語では Ensemble average(アンサンブル平均) の意味も持つ.確率変数が離散の場合には, E[x] = X xP(x) (2.12) xp(x)dx (2.13) x∈Ω であり,連続の場合は, E[x] = Z Ω で定義される.期待値からの散らばり具合は,分散や標準偏差を用いて表される. Var[x] =E[(x − E[x])2 ] = E[x2 ] − (E[x])2 p SD[x] = Var[x] (2.15) X xP(x) (2.16) Z xp(x)dx (2.17) (2.14) 確率変数が多次元の場合,期待値は同様に定義できる. E[x] = x∈Ω E[x] = Ω ベクトル x の i 番目の要素 (x)i と j 番目の要素 (x) j に対し, Cov[(x)i , (x) j ] = E[{(x)i − E[(x)i ]}{(x) j − E[(x) j ]}] (2.18) は共分散と呼ばれる.d × d 行列の (i, j) 要素に (x)i と (x) j の共分散を配置し,i 番目の対角成分に は,(x)i の分散を配置した行列を分散共分散行列 (あるいは単に共分散行列) と呼ぶ. Var[(x)1 ] Cov[(x)1 , (x)2 ] . . . Cov[(x)2 , (x)1 ] Var[(x)2 ] ... Σ = .. .. .. . . . Cov[(x)d , (x)1 ] Cov[(x)d , (x)2 ] . . . Cov[(x)1 , (x)d ] Cov[(x)2 , (x)d ] .. . Var[(x)d ] (2.19) 実際のパターン識別では,標本から平均や分散共分散行列を推定する.確率変数 x の標本を x1 , . . . , xN とするとき,期待値は,単純標本平均 µ̂ = N 1 X xi N i=1 (2.20) 51 第 3 章 パーセプトロンモデル ∼1 次識別器∼ 3.1 パーセプトロンモデル d 次元の特徴ベクトルを x ∈ Rd と書く.パーセプトロンモデルは,特徴ベクトルの各要素の線 形和に,バイアス項 b を付加した y = f (x) = w⊤ x + b (3.1) を出力とするものであり,広く用いられるモデルである.ここで,w ∈ Rd は重みベクトルと呼ば れ,目的に応じて設計される. 例えば,2 クラス ω1 と ω2 の識別を考える.パーセプトロンモデルによる識別は f (x) > 0 =⇒ x ∈ ω1 (3.2) f (x) < 0 =⇒ x ∈ ω2 となるように,重み w とバイアス b を設計すればよい.なお,式 (3.1) は w̃ = [b, w⊤ ]⊤ ,x̃ = [1, x⊤ ]⊤ とおくことで, y = f (x) = w̃⊤ x̃ (3.3) と,線形に表現できる.したがって,パーセプトロンのモデルは,一般性を失うことなくバイアス のないもの y = f (x) = w⊤ x (3.4) と定義し直すことができる. 今,学習サンプルとそれに対応する教師信号の組 (xi , ti ) が N 個与えられているとする.式 (3.2) の識別規則をパーセプトロンで実現するには, xi ∈ ω1 であれば ti = +1, xi ∈ ω2 であれば ti = −1 と教師信号を与えればよい.パーセプトロンの重み w を決定するために,ここでは平均 2 乗誤差 J[w] = N X |ti − f (xi )|2 (3.5) i=1 を基準にし,これを最小にする w を求めることにする. 最適解は次のように求めることができる.教師信号を並べたベクトル t = [t1 , . . . , tN ]⊤ と,学習 サンプルを並べた行列 X = [x1 , . . . , xN ]⊤ を定義する.このとき, J[w] = kt − X⊤ wk2 (3.6) と書けるので, J[w] を w について微分すると以下の解析解を得る. w = (XX⊤ )−1 X t この解析解を用いて学習/識別を行うプログラムを図 3.1 に示す. (3.7) 第3章 52 ✓ パーセプトロンモデル ∼1 次識別器∼ mmse.m % 学習ステージ tra = loadPendigits(’pendigits.tra’, 1 ); ✏ % クラスラベルの設定 c1 = 1; c2 = 3; X1 = tra.data(:,find(tra.label==c1)); X2 = tra.data(:,find(tra.label==c2)); t1 = ones(size(X1,2),1); t2 = -ones(size(X2,2),1); t = [t1; t2]; X = [X1 X2]; X = [ones(1,size(X,2)); X]; w = (X*X’)\(X*t); % 重みベクトルの計算 % テストステージ tes = loadPendigits(’pendigits.tes’, 1 ); X1 = tes.data(:,find(tes.label==c1)); X2 = tes.data(:,find(tes.label==c2)); t1 = ones(size(X1,2),1); t2 = -ones(size(X2,2),1); X1 = [ones(1,size(X1,2)); X1]; X2 = [ones(1,size(X2,2)); X2]; y1 = sign(w’*X1); y2 = sign(w’*X2); result1 = y1.*t1’; result2 = y2.*t2’; num_cor1 = length(find(result1 > 0)); num_cor2 = length(find(result2 > 0)); % 誤識別率の計算 err1 = 1 - num_cor1/length(y1); err2 = 1 - num_cor2/length(y2); errt = 1 - (num_cor1 + num_cor2)/(length(y1)+length(y2)); ✒ 図 3.1: 最小 2 乗法によるパーセプトロン ✑ 3.2. Widrow-Hoff 則 3.2 53 Widrow-Hoff 則 平均 2 乗誤差の評価基準を,改めて書き下すと X 1X |ti − yi |2 = |ti − w⊤ xi |2 2 i=N i=1 N J[w1 , . . . , wN ] = N (3.8) となる.この関数の微分を取ると X X ∂J = − (ti − w⊤ xi )xi = − (ti − yi )xi ∂w i=1 i=1 N N (3.9) である.この勾配方向に重みを学習する規則 X ∂J = w + µ (ti − yi )xi ∂w i=1 N w←w−µ (3.10) を Widrow-Hoff 則と呼ぶ. なお,学習サンプルが次々に入力してくる場合を想定すると,オンラインの逐次学習則が考えら れる.この場合,サンプル間の平均化操作を除いた学習則 w ← w + µ(ti − yi )xi (3.11) は,確率勾配法と呼ばれる.信号処理の分野では,Least Mean Square (LMS)アルゴリズムと呼 ばれ,システムの同定に使われていたりする. 図 3.2 に Widro-Hoff のアルゴリズムを示す.このアルゴリズムを,手書き数字の識別の問題に ✓ widrow hoff.m ✏ function w = widrow_hoff(X, t, w0, mu, M); % (X, t): Set of samples % w0: initial vector % mu: learning parameter % M: iteration number:q w = w0; for i = 1:M y = X’*w; w = w + 2*mu*X*(t-y); end ✒ ✑ 図 3.2: Widro-Hoff のアルゴリズム 71 第 4 章 部分空間法 ∼2 次識別器∼ パーセプトロンモデルで表現される 1 次識別器は,2 クラスのパターン識別には有用なモデルで あるが,多クラスの識別を得意とはしない.多クラス識別は,部分空間法と呼ばれる 2 次識別器を 用いると容易に実現できることを,以下で見ていく. 4.1 主成分分析 主成分分析(PCA)は, 観測したサンプルを,最も平均的に近似する「軸」を見つけ出す作業 のことである.図 4.1 は,各サンプルの点から軸までの距離を表している図である.サンプルは 2 点で構成される 2 次元パターンであるが,この考え方は容易に N 次元の場合に拡張できる. あらためて,パーセプトロンのモデルを考えよう.主成分分析では,パーセプトロンの出力 yi の 分散を最大にする重みベクトルを,w が単位ベクトルであるという条件の下で求める.具体的に yi の分散は, σ2yi = |yi − E[yi ]|2 = |w⊤ (xi − xi )|2 = w⊤ (xi − xi )(xi − xi )⊤ w = w⊤ Sw で得られる.ここで, S = (xi − m)(xi − m)⊤ = N 1 X (xi − m)(xi − m)⊤ N i=1 (4.1) (4.2) は,学習サンプルの標本共分散行列である.ここで, m = xi は標本平均である. 拘束条件は kwk2 = 1 であるので,分散の最大化問題はラグランジュ未定定数 λ を導入して J ′ [w, λ] = σ2yi + λ(kwk2 − 1) = w⊤ Sw + λ(w⊤ w − 1) (4.3) となる.この関数を w について微分することで Sw = λw (4.4) を得る.つまり,共分散行列 S の最大固有値 λ1 に対応する単位固有ベクトル w1 が求めるべき重 みである.サンプル x ∈ Rd に対して,このようにして求めたパーセプトロンの出力 y(1) = w⊤1 (x − m) (4.5) は,サンプルの主成分,または第 1 主成分と呼ばれる.なお, S のランクの数だけ非零の固有値 と,それに対応する固有ベクトルが存在する.簡単のため,d < N かつ,S がフルランクであると すれば,固有値を大きい順に λ1 ≥ λ2 ≥ · · · ≥ λN > 0 と並べることができる.これに対応する単位 固有ベクトルを wn (n = 1, . . . , N) とすると, y(n) = w⊤n (x − m) (4.6) 第4章 72 部分空間法 ∼2 次識別器∼ x yi w w 図 4.1: 「軸」とそれぞれのサンプルの距離 はサンプルの第 n 主成分と呼ばれる.また,重みベクトル wn を第 n 主軸と呼んだりする. 主成分分析においては,共分散行列ではなく,相関行列 R = xi x⊤i = N 1 X xi x⊤i N i=1 (4.7) を用いて主軸を求める場合も多い.このとき,解くべき固有値問題は Rw = λw (4.8) y(n) = w⊤n x (4.9) であり,第 n 主成分は により得られる.各サンプルから平均ベクトルを減算する中心化 xi ← xi − m (4.10) と呼ばれる操作をすることで,共分散行列は相関行列に一致するので,2 種類の主成分分析は等価 となる. 主成分分析は,サンプルの次元を削減するために広く用いられる.今,サンプルの要素数 d が大 きい場合,これよりずっと小さい次元 r ≪ d でサンプルを表現することを考えよう. 式 (4.4) または (4.8) の固有値問題を解くことで,r 個の主軸 w1 , . . . , wr を得る.ここでは簡単の ために,主成分分析は相関行列 R を用いたものであるとする.主軸を並べた行列 W = [w1 , . . . , wr ] ∈ Rd×r (4.11) 4.2. CLAFIC 73 −3 x 10 2.5 label=2 label=4 2 1.5 1 0.5 0 −0.5 −1 −1.5 −2 −2.5 2.5 3 3.5 4 4.5 5 −3 x 10 図 4.2: 手書き数字「2」と「4」に PCA を適用したときの,2 次元散布図 を定義する.これを固有ベクトル行列と呼ぶ.このとき,主成分を並べたベクトル y1 . y = .. = W ⊤ x yr (4.12) は,サンブル x の圧縮表現を与える. 図 4.2 には,手書き数字のデータから 2 と 4 のみ抽出したデータ集合 {xi ∈ ω2 ∪ ω5 } に対して主 成分分析を適用した結果を示している.これは,横軸を第 1 主成分,縦軸を第 2 主成分とした散布 図である.サンプル xi は 16 次元のデータであるが,PCA によって 2 次元で表現しても十分に線 形分離が可能となる様子が理解できる. これに対して,図 4.3 は,1 と 5 の数字の主成分を散布図にしたものである.図 4.3(a) によると, 数字 5 の分布が 1 の分布に重なってしまい,2 次元表現ではデータ分類が困難であろうことがわか る.そこで,第 3 主成分まで表示したものが図 4.3(b) である.3 次元表現することによって,より 線形分離しやすいデータになっていることを理解できる. 4.2 CLAFIC クラスごとに主成分分析をして,それぞれのクラスにおけるサンプルの主成分の 2 乗和を比較す ることで,パターン識別ができる. 今,パターンの属するクラスが C 個あるとする.学習パターン xi がそれぞれどれかのクラスに 属して,クラス c (c = 1, . . . , C) インデックス集合を Ic ,そのサンプル数を |Ic | と表記することに する. 各クラスを特徴づけるため,クラス c の主成分分析を考えよう.学習パターンからクラス c の相
© Copyright 2024 Paperzz