Miyazaki-PBV200308

Download Report

Transcript Miyazaki-PBV200308

パターン認識と学習のアルゴリズム
上坂吉則
尾関和彦
文一総合出版
宮崎大輔2003年8月7日(木)PBVセミナー
5 時系列パターンの線形予測
目的
• 時系列パターンの認識をおこなうために、スペクトル
を推定する→線形予測法
• 二つのスペクトルの類似度をLPCケプストラム距離
を使う
自己回帰過程
• 時刻を整数とし、時刻nで実数x(n)が決まる時系列を考える
, x(2), x(1), x(0), x(1), x(2), x(3),
• 確率変数の列(確率過程)X(n)を考え、x(n)をX(n)の実現値と
考える
, X (2), X (1), X (0), X (1), X (2), X (3),
• 以下が成り立つ確率過程を自己回帰過程と言う
p
X (n)  k X (n  k )  gauss noise(平均0, 分散 )
k 1
• α1,…,αpを予測係数、pを次数と呼ぶ
• 要は、現在のXを過去p個のXの線形和で表せるってこと
線形予測法
• 2N+1個の時系列値でパラメータ推定
x(n0  N ),, x(n0 ),, x(n0  N )
• 同時確率密度関数
2
n0  N
p



1
1
P
exp 2  x(n)   k x(n  k ) 
( 2 N 1) / 2
2 ( 2 N 1) / 2
(2 )
( )
k 1
 2 nn0  N 
 
線形和で近似したときの誤差
• →誤差が小さいと尤度Pが高く、誤差が大きいと尤度
Pが低い
• 最尤法:尤度Pを最大化する
• log Pをσ2で偏微分して0とおき、αkで偏微分して0と
おいた2つの式の連立方程式を解けば良い
窓
y(n)  W (n  n0 ) x(n)
• 方形窓
1;  N  n  Nのとき ,
W (n)  
0; それ以外のとき
• ハミング窓
0.54  0.46 cos(n / N );  N  n  Nのとき ,
W (n)  
0;
それ以外のとき

自己回帰過程のスペクトル
• スペクトル密度関数は
S () 

 r(m) exp(im)
m
r(m)  E( X (n) X (n  m))
•
•
•
•
区間[-π,π]で定義されている
Eは期待値、exp(-iωm)は複素正弦波
つまりフーリエ変換
2
結局、最終的に S () 
p
1  k (exp(ik ))
k 1
2
LPCケプストラム距離
• 二つのスペクトルSとS’の類似度の定義
1 
2

D(S, S) 
(log
S
(

)

log
S
(

))
d

2 
• logS,logS’をフーリエ級数に展開する
log S () 

c
k 
k
log S () 
exp(ik )

c exp(ik )
k 
• Parsevalの公式
1
2



k

(log S ()  log S ()) d  (c0  c0 )  2 (ck  ck )2
2
2
• c0,c1,c2,…: LPCケプストラム係数
• LPC=Linear Predictive Coding(線形予測符号化)
• LPCケプストラム距離
2
 2
k 1
q
D(S , S )  (c0  c0 )  2(ck  ck )2
k 1
• つまり、フーリエ展開係数の差を二つのスペクトルの距離として用いる
LPCケプストラム係数の計算
c0  log
2
c1  1
1 n1
cn   n   kck nk
n k 1
 j  0 ( j  p)
• c0はスペクトルの大きさだけに関係し、音韻性と無関
係。無視するか十分小さな0<ε≪1を使い
q
2
2
2



D(S, S )   (c0  c0 )  2(1   )(ck  ck )
k 1
スペクトルの推定
スペクトルの近似
• LPCケプストラム係数q次までを使ってス
ペクトルを近似
• LPCケプストラム距離=LPCケプストラム
係数で近似し、フーリエ展開係数の距離
6 DPマッチング
類似度
• パターンの要素x,yの類似度dを考える
xがyに似ている  d (x, y)の値が小さい
x  y  d ( x, y)  0
• パターンA,Bの類似度としてD0を考える
D0 ( A, B)  0
AがBに似ている  D0 ( A, B)の値が小さい
パターン Aはパターン Bを長さ方向に
伸縮したパターンであ る  D0 ( A, B)  0
I
D0 ( A, B; w)   d (ai , bw(i ) )
i 0
D0 ( A, B)  minD0 ( A, B; w) | w W (I , J )
• 伸縮写像(端点が一致、各aiに一つのbj、順
序は逆転しない)
DP マッチング
類似度
d(a0,b0)
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
∞
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
d(a1,b0)+d(a0,b0)
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
d(a1,b1)+min(d(a0,b0),d(a0,b1))
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
d(a1,b2)+min(d(a0,b0),d(a0,b1),d(a0,b2))
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
d(a2,b0)+d(a1,b0)
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
d(a2,b1)+min(d(a1,b0),d(a1,b1))
b2
b1
b0
a0
a1
a2
DP マッチング
類似度
d(a2,b2)+min(d(a1,b0),d(a1,b1),d(a1,b2))
b2
b1
b0
a0
a1
a2
DPマッチング
• ある問題を解きたいとき、“それと同じタイプで、それよりサイ
ズが小さい一群の問題”の解を利用する、という原理を動的
計画法と呼ぶ
• 動的計画法を用いて二つのパターンの要素間の対応付け
(整列化)を行い、それによって類似度を計算することをDP
マッチングと呼ぶ
• DP=Dynamic Programming(動的計画法)
• 時系列パターンに対しては、DPマッチングのことを
DTW(Dynamic Time Warping)と呼ぶこともある
傾斜制限
対照的な類似度
• 縦・横・斜め、1マスだけ動ける
脱落と挿入
A’ = * a1 a2 a3 *
* a4 a5
B’ = b1 b2 * b3 b4 b5 b6 *
• *は脱落を表す記号
タンパク質
• 生物のタンパク質=20種類のアミノ酸の有限列
• A(アラニン),C(システイン),D(アスパラギン酸),E
(グルタミン酸),F(フェニルアラニン),G(グリシン),H
(ヒスチジン),I(イソロイシン),K(リジン),L(ロイシ
ン),M(メチオニン),N(アスパラギン),P(プロリン),Q
(グルタミン),R(アルギニン),S(セリン),T(スレオニ
ン),V(バリン),W(トリプトファン),Y(チロシン)
チトクロムC
• ヒト
– GDVEKGKKIFIMKCSQCHTVEKGGKHKTGPNLHGLF
GRKTGQAPGYSYTAANKNKGIIWGEDTLMEYLENPK
KYIPGTKMIFVGIKKKEERADLIAYLKKATNE
– 104個
• ミドリムシ
– GDAERGKKLFESRAAQCHSAQKGVNSTGPSLWGVY
GRTSGSVPGYAYSNANKNAAIVWEEETLHKFLENPK
KYVPGTKMAFAGIKAKKDRQDIIAYMKTLKD
– 102個
比較
• ヒト(18個)
– GDVEKGKKIFIMKCSQCH
• ジャガイモ(26個)
– ASFNEAPPGNPKAGEKIFKTKCAQCH
• ミドリムシ(18個)
– GDAERGKKLFESRAAQCH
• クロバエ(22個)
– GVPAGDVEKGKKLFVQRCAQCH
• ウサギ(18個)
– GDVEKGKKIFVQKCAQCH
類似度
a  bのとき
0,

d (a, b)  2,
a  b, a  *, b  *のとき
1, a  b, a  *または b  *のとき

結果
7 NN法とボロノイ図
k-NN法
• 今、あるカテゴリに含まれるパターンの集合(=標準
パターン(テンプレート))が分かるとする
• あるパターンxが与えられて、それがどのカテゴリに
属するかを知りたいとする
• xに最も近いk個のパターンを選ぶ(k-最近傍)
• そのk個のパターンの中で最も多いカテゴリをxのカ
テゴリとする(多数決)
• これをk-NN法(k-Nearest Neighbor法)と呼ぶ
• k-NN法(k≧2)は1-NN法より良いかのように思われ
るが多くの場合1-NN法のほうが良い
• 1-NN法を略してNN法と書く
標準パターンと勢力圏
• カテゴリを調べるために全ての点との類似度を計算するのは
面倒→各カテゴリに“代表点”を1個当てはめるようにする
• あるカテゴリに属するパターンの集合を勢力圏と言う
• 2次元の場合で、類似度がユークリッド距離の場合、勢力圏
はボロノイ図になる
クラスタリング
• 学習パターンから標準パターンを求めたい→クラスタリング
N
• D(S , S ,, S )  D(S )
 n
1
2
N
n1
を最小にするクラスタS1,S2,…,SNに分割したい
D( x, S )   d ( x, y)
yS
D(S)  minD(x, S) | x V
• 上の右辺を満たすxをセントロイドC(S)と呼ぶ
C(S)  argminD(x, S) | x V
• 例えばdがユークリッド距離の2乗の場合はセントロイドは重
心になる
LBGアルゴリズム
•
1.
2.
3.
4.
•
LBG=Linde, Buzo, Gray
セントロイドの初期値を適当に設定
セントロイドからクラスタに分割する
そのクラスタのセントロイドを再計算
収束するまで2~3を繰り返す
最小値に到達するとは限らない
–
–
極小値に収束
いくつかの初期値を試す必要がある
LBGクラスタリングの実験
NN法とカテゴリの勢力圏
• c1,c2の学習パターンそれぞれでLBGクラスタリングを行った
8 ヒドンマルコフモデル
HMM(Hidden Markov Model)
いくつのカテゴリに分類するか決める
状態の数、出力記号の数を決める
カテゴリごとに学習パターンを用意
Baum-Welchアルゴリズムで、カテゴリごとにHMM
のパラメータを推定
5. 前向きアルゴリズム(あるいは後向きアルゴリズ
ム)で、未知パターンの出力確率をカテゴリごとに
計算。出力確率が最大となるカテゴリを認識結果と
する。
1.
2.
3.
4.
HMM(Hidden Markov Model)
• 要は、今までと同様、クラス分けをしたい
• つまり、ある未知パターンが与えられたとき、そのパターンが
どのカテゴリに属しているかが知りたい
• そのためにあらかじめ、学習パターンを与えて学習をさせ、い
いクラス分けができるような認識機械を作り上げる
• その認識機械がHMMである
• カテゴリ1にはHMM1をカテゴリ2にはHMM2を対応させる
• カテゴリ1に属する学習パターンをHMM1に与えて学習させ、
カテゴリ2に属する学習パターンをHMM2に与えて学習させる
• 未知パターンが現れたとき、HMM1にその未知パターンを与
えるとその未知パターンがカテゴリ1に属する確率が吐き出さ
れ、HMM2にその未知パターンを与えるとその未知パターン
がカテゴリ2に属する確率が吐き出される
• そこで最も確率の高いカテゴリが未知パターンのカテゴリとな
る
マルコフ連鎖
•
•
•
•
•
状態: s1 , s2 ,, sN
確率変数: S1 , S2 , S3 ,
初期分布: 1,,  N
推移確率: ai, j  P(Si1  s j | Si
一様なマルコフ連鎖では以下が
成り立つ
• 有向グラフで一様なマルコフ連鎖
を表せる
• 頂点=状態、辺=推移確率
 si )
P(S1  si (1)  S2  si ( 2)  St  si (t ) )
  i (1) ai (1),i ( 2) ai ( 2),i (3) ai (t 1),i (t )
• →時刻1で状態si(1)、時刻2で状態
si(2)…となる確率は、i(1)の初期
分布に、i(1)からi(2)に移る推移
確率をかけ、i(2)からi(3)に移る推
移確率をかけ…、を意味している
一様なヒドンマルコフモデル
•
•
•
•
•
出力記号: o1, o2 ,, oM
初期分布: 1 ,,  N
状態siから状態sjへの推移確率: ai, j  P(St 1  s j | St  si )
状態sjから出力記号okの出力確率: bj ,k  P(Ot  ok | St  s j )
初期分布:   1,,  N 
 a1,1  a1, N 


• 推移確率:
A 
 
aN ,1  aN , N 
• HMMのパラメータ:   (, A, B)
 b1,1  b1,M 

出力確率: B   



bN ,1  bN ,M 
  (1,, N , a1,1,a1,2 ,, aN ,N , b1,1, b1,2 ,, bN ,M )
• HMMに関する事象の確率P:
P (S1  si (1)  O1  ok (1)  St  si (t )  Ot  ok (t ) )
  i (1)bi (1),k (1) ai (1),i ( 2)bi ( 2),k ( 2) ai (t 1),i (t )bi (t ),k (t )
HMMの例
•
•
•
•
状態: s1, s2
出力: o1,o2
初期分布:   (0.3,0.7)
推移確率:
0.8 0.2
A 

0.4 0.6
• 出力確率:
0.1 0.9
B

0
.
5
0
.
5


• 確率計算の例:
• 観測できるのは出力記号だけで、
背後にマルコフ連鎖があり、状態
を直接観測できない→Hidden(隠
れ) Markov Model
0.8
P (S1  s1  O1  o2  O2  o2 )
 0.3 0.9  0.8  0.9  0.3 0.9  0.2  0.5
• これは、時刻1のとき状態がs1で、
時刻1のとき出力がo2で、時刻2
のとき出力がo2である確率
0.2
0.6
s2
s1
0.4
0.1
0.5
0.5
o1
0.9
o2
HMMによる時系列パターンの認識
• L個のカテゴリそれぞれに対してL個のHMMがあっ
たとする
• 出力記号列: ok (1) , ok (2) , ok (3) ,, ok (T )
• がどのカテゴリに属するか、すなわち、どのHMMが
上の記号列を出力する確率が最も高いか、を知りた
い=パターン認識
• 最尤法:上の記号列の出力確率、すなわち尤度(下
式)を最大とするHMM(カテゴリ)を選べばよい
P(i) (O1  ok (1) O2  ok (2) OT  ok (T ) )
• 出力確率を計算する方法としては、前向きアルゴリ
ズムと後向きアルゴリズムがある
出力確率を計算する方法
• 前向きアルゴリズム(Forward Algorithm)
1( j)   jbj,k (1)
N
t ( j)  t 1 (i)ai, j bj ,k (t )
i 1
N
P (O1  ok (1)  O2  ok (2)  OT  ok (T ) )  T ( j)
• 後向きアルゴリズム(Backward Algorithm)
j 1
T (i)  1
N
t (i)  ai, j bj ,k (t 1) t 1 ( j)
j 1
N
P (O1  ok (1)  O2  ok (2)  OT  ok (T ) )   ibi,k (1) 1 (i)
i 1
HMMにおける学習
• 先程は、HMMのパラメータが分かっているとして、与
えられたパターンがどのHMMから出力される確率が
高いかを調べるものだった
• ここでは、学習パターンを与え、そのパターンを出力
する確率(尤度)が最大となるHMMを構成するパラ
メータを求めたい
• 残念ながらこの最大化問題を完全に解く方法はいま
だ発見されていない
• しかし、繰り返し計算により、以前のループ時での出
力確率より現在のループ時での出力確率が必ず、同
じあるいは高くなるようにするアルゴリズムがある
→Baum-Welchアルゴリズム
Baum-Welchアルゴリズム
1 (i)1 (i)
i 
P()
T 1
ai , j 
 (i)a
t 1
t 1 ( j)
T 1
 (i) (i)
t 1
T
b j ,k 
b
i , j j ,k (t 1)
t

t 1
t
t
 t ( j ) t ( j )
k ,k (t )
T
 ( j) ( j)
t 1
t
t
HMM(Hidden Markov Model)
いくつのカテゴリに分類するか決める
状態の数、出力記号の数を決める
カテゴリごとに学習パターンを用意
Baum-Welchアルゴリズムで、カテゴリごとにHMM
のパラメータを推定
5. 前向きアルゴリズム(あるいは後向きアルゴリズ
ム)で、未知パターンの出力確率をカテゴリごとに
計算。出力確率が最大となるカテゴリを認識結果と
する。
1.
2.
3.
4.
HMMの学習実験
1  (1.0, 0.0)
0.2 0.8
A1  

0.8 0.2
0.8 0.2
A2  

0
.
2
0
.
8


0.8 0.2
B1  

0.2 0.8
0.8 0.2
B2  

0
.
2
0
.
8


Ai  
0.5
~ 0.15
A1  
0.70
~ 0.88
A2  
0.15
0.5
Bi  
0.5
~ 0.87
B1  
0.18
~ 0.74
B2  
0.22
•
HMM1の真値:
•
HMM2の真値:
•
•
Baum-WelchアルゴリズムでHMM1とHMM2のパラメータを推定する
0.5 0.5
初期値:
•
HMM1の推定値:
•
2  (1.0, 0.0)
i  (1.0, 0.0)
HMM2の推定値:
~
1  (1.0, 0.0)
~
2  (1.0, 0.0)
0.5
0.85
0.30
0.12
0.85
0.5
0.5
0.13
0.82
0.26
0.78
HMMによる認識実験
(c) Daisuke Miyazaki 2003
All rights reserved.
http://www.cvl.iis.u-tokyo.ac.jp/