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 nn0 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(im)
m
r(m) E( X (n) X (n m))
•
•
•
•
区間[-π,π]で定義されている
Eは期待値、exp(-iωm)は複素正弦波
つまりフーリエ変換
2
結局、最終的に S ()
p
1 k (exp(ik ))
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(ik )
c exp(ik )
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 n1
cn n kck nk
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) minD0 ( 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
n1
を最小にするクラスタS1,S2,…,SNに分割したい
D( x, S ) d ( x, y)
yS
D(S) minD(x, S) | x V
• 上の右辺を満たすxをセントロイドC(S)と呼ぶ
C(S) argminD(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(Si1 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/