知識処理論(第5回) 2015年5月13日 ノンパラメトリック法 杉山 将 [email protected] http://www.ms.k.u-tokyo.ac.jp パターン認識 2 入力パターンをカテゴリに割り当てる 識別関数を構成する問題 問題に合わせて人間が識別関数を設計 データから自動的に識別関数を学習 パターン カテゴリ 識別関数 y f (x ) xR d 3 y {1,2,, c} 統計的パターン認識 3 訓練標本:属するカテゴリが既知のパターン d xi R n {( xi , yi )}i 1 yi {1,2,, c} 統計的パターン認識:訓練標本の統計的な 性質を利用して識別関数を学習する 仮定: ( xi , yi ) i.i.d. p( x, y) i.i.d. (independent and identically distributed) 独立に同一の分布に従う 理想的なパターン分類法 事後確率 p ( y | x ) :与えられたパターン x が a クラス y に属する確率 b c 事後確率を最大にするカテゴリにパターンを 分類すれば,パターンの誤識別率が最小に なる. f ( x) arg max p( y | x) y 実際には事後確率は未知なので,訓練標本 から推定しなければならない. 4 生成モデルに基づいたパターン認識 5 ベイズの定理を用いれば, p( x | y ) p( y ) p( y | x ) p( x | y ) p( y ) p( x ) 事後確率 条件付き確率 事前確率 条件付き確率:クラス y に属するパターン xの分布 事前確率:クラス y の存在確率 事後確率を直接推定するのは x y 難しいので,代わりに条件付き a 確率と事前確率を推定し,識別 b c 関数を構成することにする. 事前確率の推定 p( y | x ) p( x | y ) p( y ) 事後確率 条件付き確率 事前確率 事前確率は離散的な確率分布なので, 単純にそのカテゴリに含まれる標本の 割合で推定する. pˆ ( y ) ny n y :カテゴリ y に属する 訓練標本の数 n 大数の法則より,一致性が保証される. p ˆp( y ) p( y ) (n ) 6 条件付き確率の推定 7 p( y | x ) p( x | y ) p( y ) 事後確率 条件付き確率 事前確率 条件付き確率は連続的な確率分布なので, 事前確率のように単純には推定できない. 以後,簡単のため,条件付きでない確率密度 n 関数 p (x ) を全訓練標本 {xi }i 1から推定する 問題を考える. カテゴリ y に関する条件付き確率 p ( x | y ) を 推定するときは, y に属する n y 個の標本のみ を用いればよい. 確率密度関数の推定法 8 パラメトリック法:有限次元のパラメータを持つ パラメトリックモデルを用いて確率密度関数を 推定する 最尤推定法 ベイズ推定法 q( x; ) ノンパラメトリック法:それ以外の方法 カーネル密度推定法 最近傍密度推定法 注意:無限次元のパラメータを持つモデルを 用いる方法はノンパラメトリック法に分類される. パラメトリック法 9 モデルが真の分布と(大体)合っていれば, パラメトリック法は少ない標本でも精度が良い. しかし,モデルが大きく外れていたら,いくら 標本数を増やしても精度は向上しない. 標本数:5 標本数:10000 対処法:モデルを変える/モデルを使わない 講義の流れ 1. 2. 3. 4. ノンパラメトリック法の基礎(第12章) カーネル密度推定法(第12章) 最近傍密度推定法(第13章) 最近傍識別器(第13章) 10 ベルヌーイ試行 11 ベルヌーイ試行(Bernoulli trials):成功する確率 , 失敗する確率が の実験を同じ条件で独立 に繰り返す 成功 実験 失敗 例:コインを投げて表が出るか裏が出るか 二項分布 二項分布(binomial distribution): 回のベルヌーイ試行に対して,実験が 回 成功する確率 回成功・ 回失敗: 順番を入れ替えたときの組み合わせ数: 12 二項分布の期待値と分散 期待値: 成功確率が 成功回数が で 回実験を行ったとき,平均 であることは直感的にもわかる 分散: 分散は のとき最大になる.これは, 成功と失敗の確率が五分五分のときに予想が 難しいという直感と合っている 13 二項分布の例 14 実験の成功率を変えたとき 成功率が低い 五分五分 成功率が高い 最も単純なノンパラメトリック法: ヒストグラム法 15 ヒストグラム法(histogram method):単純にヒストグラ ムを用いて確率密度関数を推定する方法 パターン空間を適当に分割する (必ずしも同じ形に分割する必要はない). 各分割内に入る訓練標本を数える. 積分が1になるように正規化する. 非常に単純な方法なので 便利であるが・・・ ヒストグラム法の問題点 領域間で不連続 領域の分割の仕方を決めるのが難しい もう少し工夫した方法が必要 16 ノンパラメトリック法の表記 17 ある注目点 x での確率密度 p (x) を推定する R :xを含むパターン空間 D 内のある領域(region) V : R の体積(volume) V dx R P:あるパターン x が R に入る確率 p (x ) P p( x )dx R R k : n 個の訓練標本のうち R に入っている個数 P V D ノンパラメトリック法の基礎 18 確率 P を二つの方法で近似する. A) k, n を用いれば, Pk n B) 注目点 x を用いれば, P Vp(x) これらより 積分の長方形近似 p ( x ) k p( x' ) nV P x V D 近似Aの良さ 19 Pk n n 個の訓練標本のうち k 個が R に入る確率は 二項分布に従う. 確率: n Ck P (1 P ) k P 0.1 n k 期待値: nP 分散: nP (1 P ) P 0.5 P 0.9 近似Aの良さ(続き) Pk n 平均的にはぴったり P k n .分散は? 相対的な分散が重要なので期待値を1に 揃える. k z nP 1 P E z 1, V z nP P が大きい方が分散が小さくなり,近似の 精度が良い 領域 R は大きい方が良い! 20 近似Bの良さ 21 P Vp(x) 積分の長方形近似は,p (x ) が R 内でほぼ 一定値をとるとき,精度が良い. 領域 R は小さい方が良い! p ( x ) P x V D 領域の決め方(続き) 22 k p( x ) nV 全体の近似精度を上げるためには,領域 R を 程よい大きさに決める必要がある. 訓練標本を用いて領域 R を決める. パーゼン窓法,カーネル密度推定法: R の形を決め V を固定したもとで k を標本から決定 最近傍密度推定法: R の形を決め k を固定したもとで V を標本から決定 講義の流れ 1. 2. 3. 4. ノンパラメトリック法の基礎(第12章) カーネル密度推定法(第12章) 最近傍密度推定法(第13章) 最近傍識別器(第13章) 23 パーゼン窓法 24 領域 R として,ある点 x を中心とする一辺の 長さが h の超立方体(hypercube)を用いる. 体積 V h d x R R に入る標本数 n D x xi h/2 h/2 k W h i 1 1 max | x (i ) | 12 W ( x) otherwise 0 パーゼン窓関数 (Parzen window function) x ( x , x , x ) (1) (2) (d ) T x xi W h 1 xi h/2 h/2 R D パーゼン窓法 25 パーゼン窓法(Parzen window method): 1 pˆ ( x ) d nh x xi W h i 1 n k p( x ) nV パーゼン窓法の特徴 与えられた標本からパターン領域の分割を 適応的に決定できるため,ヒストグラム法の ようにあらかじめ領域の分割の仕方を決定 しておく必要が無い. 領域間での不連続性は未解決. 領域の分割の仕方を決める必要は無いが, パーゼン窓関数のバンド幅 h を適切に 決める必要がある. 26 カーネル密度推定法 27 パーゼン窓法の不連続性を解決したい カーネル関数(kernel function) K (x ) : D K ( x )dx 1 K ( x ) 0 for all x D カーネル密度推定法(kernel density estimation): 1 pˆ ( x ) d nh x xi K h i 1 n h :バンド幅(bandwidth) カーネル密度推定法の例 ガウスカーネル関数: 1 1 T K ( x) exp( 2 x x) d /2 ( 2 ) 28 一般化 1 pˆ ( x ) d nh x xi K h i 1 n バンド幅を一つのパラメータ h で制御すると 自由度が小さい. バンド幅行列(bandwidth matrix) H : 正値対称行列 1 n 1 pˆ ( x ) K H ( x xi ) n | H | i 1 29 例 h H 30 実行例 31 myrand.m clear all n=10000; x=myrand(n); バンド幅 h 0 .1 function x=myrand(n) x=zeros(1,n); u=rand(1,n); flag=(0<=u & u<1/8); x(flag)=sqrt(8*u(flag)); flag=(1/8<=u & u<1/4); x(flag)=2-sqrt(2-8*u(flag)); flag=(1/4<=u & u<1/2); x(flag)=1+4*u(flag); flag=(1/2<=u & u<3/4); x(flag)=3+sqrt(4*u(flag)-2); flag=(3/4<=u & u<=1); x(flag)=5-sqrt(4-4*u(flag)); モデル選択 32 カーネル密度推定法の推定結果は, バンド幅 h の選び方に依存する. 実際にはバンド幅を程よい値に設定 しなければならない! 尤度交差確認法で選択する バンド幅:小さすぎ h 0 .01 バンド幅:適切 h 0 .1 バンド幅:大きすぎ h 0 .5 尤度交差確認法 訓練標本 {xi }in1 を t 個の重なりの無い t 部分集合 {Ti }i 1 に分ける. T1 … 推定用 T j 1 Tj 確認用 T j 1 … Tt 推定用 j 番目の部分集合 T j に含まれる訓練標本 を使わずに確率密度関数を推定する. pˆ T j ( x ) 33 尤度交差確認法(続き) T1 … 推定用 T j 1 Tj T j 1 確認用 … 34 Tt 推定用 T j に含まれる標本の対数尤度を計算する. 1 LCV j log pˆ T ( x ) | T j | xT j j これを全ての j に対して行ない,平均する. 1 t LCV LCV j t j 1 尤度交差確認法(likelihood cross validation) 実行例 35 5分尤度割交差確認: h バンド幅:小さすぎ h 0 .01 バンド幅:適切 h 0 .1 バンド幅:大きすぎ h 0 .5 カーネル密度推定法:まとめ ノンパラメトリック法:パラメトリックモデル を用いない確率密度関数の推定法 ノンパラメトリック法では,領域の大きさを 適当に決める必要がある. パーゼン窓法:領域の形と体積を固定し, 標本数をデータから決定する カーネル密度推定法:パーゼン窓を 滑らかなカーネル関数に置き換えた方法 36 講義の流れ 1. 2. 3. 4. ノンパラメトリック法の基礎(第12章) カーネル密度推定法(第12章) 最近傍密度推定法(第13章) 最近傍識別器(第13章) 37 ノンパラメトリック法の表記 38 ある注目点 x での確率密度 p (x) を推定する R :xを含むパターン空間 D 内のある領域(region) V : R の体積(volume) V dx R P:あるパターン x が R に入る確率 p (x ) P p( x )dx R R k : n 個の訓練標本のうち R に入っている個数 P V D ノンパラメトリック法の基礎 39 確率 P を二つの方法で近似する. A) k, n を用いれば, Pk n B) 領域 R 内のある点 x を用いれば, P Vp(x) 積分の長方形近似 これらより k p( x ) p ( x ) nV P x V D ノンパラメトリック法 40 k p( x ) nV 訓練標本を用いて領域 R を決める. パーゼン窓法,カーネル密度推定法: R の形を決め V を固定したもとで k を標本から決定 最近傍密度推定法: R の形を決め k を固定したもとで V を標本から決定 最近傍密度推定法 41 k-最近傍密度推定法(k-nearest neighbor density estimation): 領域 R として,ある点 x を中心とする超球 (hypersphere)を用いる. 超球の半径 r :訓練標本が k 個含まれる 最小の大きさに設定 d 超球の体積: 2rd V pˆ ( x) ( d2 1) k 4 k( d2 1) n r d d 2 x k p( x ) nV ガンマ関数 ガンマ関数(gamma function): ( ) x e d x 1 x 0 ( ) 42 ガンマ関数の性質 ( ) x 43 1 x 0 e dx 階乗の一般化:正の整数 n に対して (n 1) n! その他の性質: (t ) (t 1)(t 1), t R ( 12 ) 演習: 2 d 2 のとき V r d 3 のとき V 4 r 3 3 V rd d 2 ( d2 1) 実行例 近傍数 k は尤度交差確認に よって決定できる 近傍数:小さすぎ k 10 近傍数:適切 k 500 44 n 10000 近傍数:大きすぎ k 2000 ノンパラメトリック法:まとめ 45 カーネル密度推定法 滑らかなカーネルを使えば,滑らかな確率密度推定量 が得られる 計算が簡単 最近傍密度推定法 近傍の標本を見つけるためには距離をソートする必要 があり,大規模データに対しては計算時間がかかる 得られる確率密度推定量は比較的ギザギザしている? パターン認識との相性がよい(後述) 講義の流れ 1. 2. 3. 4. ノンパラメトリック法の基礎(第12章) カーネル密度推定法(第12章) 最近傍密度推定法(第13章) 最近傍識別器(第13章) 46 条件付き確率の推定 47 各カテゴリに対して,条件付き確率 p ( x | y ) を 1-最近傍密度推定法により推定. ( d2 1) pˆ ( x | y ) ry :カテゴリ y に属する標本のうち d n y ry xに最も近いものと,xとの距離 p ( y ) n y / n と事後確率 p ( y | x) は, ( d2 1) n y 1 p( y | x) p( x | y ) p( y ) d d n r n y ry y d 2 d 2 ry が小さいほうが 事後確率が大きい! 最近傍識別器 48 事後確率が最大のカテゴリ = x に一番近い訓練標本が属するカテゴリ このような識別法を,最近傍識別器(nearest neighbor classifier)とよぶ. k-最近傍識別器 49 実用的には,x の近傍 k 個の訓練標本が属 するカテゴリの多数決で,x の属するカテゴリ を決める k -最近傍識別器(k-nearest neighbor classifier)がよく用いられる. 注:k -最近傍密度推定法で確率密度関数を 推定するのと少し異なる 手書き文字認識 50 USPSデータセット(16×16画素) 訓練標本:0~9まで各500文字ずつ計5000文字 テスト標本:各200文字ずつ計2000文字 解答例 51 1932/2000=96.6%の正解率 k 1 予測したカテゴリ 1 正解のカテゴリ 1 2 200 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 2 0 193 1 0 0 0 1 4 1 0 3 0 0 195 0 3 0 0 1 1 0 4 0 0 0 191 1 2 0 0 6 0 5 0 3 4 0 187 0 1 1 2 2 6 0 2 0 0 2 195 0 0 0 1 7 0 0 1 2 0 0 192 2 3 0 8 0 1 4 1 3 0 0 186 2 3 9 0 0 0 3 0 0 1 1 195 0 0 0 1 1 0 0 0 0 0 0 198 近傍数kの決め方 52 k -最近傍識別器では近傍数 k を適切に決める 必要がある. 1. 値の候補を用意する.例えば, k 1,2, ,10 2. それぞれのモデルに対して,パターンの誤認識率 を推定する. 3. 誤認識率の推定値を最小にするモデルを選ぶ. どうやってパターンの誤認識率を推定するか? 交差確認法 53 交差確認法(cross validation) 訓練標本 {xi }in1 を t 個の重なりの無い, t { T } (ほぼ)同じ大きさの部分集合 i i 1 に分ける. j 番目の部分集合 T j に含まれる訓練標本を 使わずに識別器を学習する. T j に含まれる標本の誤認識率を計算する (訓練標本なので答えを知っている!). これを全ての j に対して繰り返し平均する. T1 … 推定用 T j 1 Tj 確認用 T j 1 … 推定用 Tt 手書き文字認識 54 k -最近傍識別器の近傍数 k を交差確認法により 決定せよ. 先の例では k 1 が選ばれた 最近傍識別器:まとめ 55 一番近い訓練標本が属するカテゴリを選ぶ 単純だが,非線形な分離境界を扱える 一番近い訓練標本を探索するのに時間がかかる 講義の流れ 1. 2. 3. 4. ノンパラメトリック法の基礎(第12章) カーネル密度推定法(第12章) 最近傍密度推定法(第13章) 最近傍識別器(第13章) 56 まとめ ノンパラメトリック法:モデルを用いずに直接 確率密度関数を推定 カーネル密度推定法:滑らかなカーネル関数の 線形和で推定 最近傍密度推定法:近傍の標本を含む超球を 用いて推定 カーネル関数の幅や近傍数は尤度交差確 認法で決定 最近傍密度推定法から,非線形な 決定境界を持つ最近傍識別器が 得られる 57 次回の予告 パラメトリック法:ベイズ推定 枠組み 近似計算法 モデル選択 58 宿題1 59 以下のデータを用いて,ガウス myrand.m カーネルに対するカーネル密度 function x=myrand(n) 推定法を実行せよ x=zeros(1,n); u=rand(1,n); バンド幅は尤度交差確認 により決定せよ clear all n=10000; x=myrand(n); flag=(0<=u & u<1/8); x(flag)=sqrt(8*u(flag)); flag=(1/8<=u & u<1/4); x(flag)=2-sqrt(2-8*u(flag)); flag=(1/4<=u & u<1/2); x(flag)=1+4*u(flag); flag=(1/2<=u & u<3/4); x(flag)=3+sqrt(4*u(flag)-2); flag=(3/4<=u & u<=1); x(flag)=5-sqrt(4-4*u(flag)); 宿題1(続き) 60 実行例 h バンド幅:小さすぎ h 0 .01 バンド幅:適切 h 0 .1 バンド幅:大きすぎ h 0 .5 宿題2 61 最近傍識別器によって手書き文字認識を行え 訓練標本:0~9まで各500文字ずつ計5000文字 テスト標本:各200文字ずつ計2000文字 近傍数 k は識別誤差に関する交差確認により決定せよ 宿題2(続き) 訓練入出力データ(X,Y)をもとに テスト入力データTのラベルの推定Uを k最近傍分類によって求める knn.m function U=knn(X,Y,T,ks) m=size(T,2); D2=repmat(sum(T.^2,1),[size(X,2) 1]); D2=D2+repmat(sum(X.^2,1)',[1 m])-2*X'*T; [dum,z]=sort(D2,1); for i=1:length(ks) k=ks(i); for j=1:m Z=sort(Y(z(1:k,j))); g=find([1 Z(1:end-1)~=Z(2:end)]); [dum,a]= max([g(2:end) k+1]-g); U(i,j)=Z(g(a)); end, end 62
© Copyright 2024 ExpyDoc