Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Crfと素性テンプレート

48.615 visualizaciones

Publicado el

tokyo nlp 6

  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ,Download or read Ebooks here ... ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn }
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn }
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • -- DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT -- ......................................................................................................................... ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... (Unlimited)
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • ..............ACCESS that WEBSITE Over for All Ebooks ................ ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Crfと素性テンプレート

  1. 1. CRFと素性テンプレート @uchumik
  2. 2. 自己紹介● 某IT企業勤務● ものぐさ
  3. 3. 今日のお話1. CRF の説明(実装に必要な部分のみ)2. 素性テンプレートのお話
  4. 4. CRF に入る前に…● マシンラーニング界での CRF の立ち居値は何処? ML界 Logistic Regression SVM 識別モデル Perceptron M^3N CRF Structured SVM PA Structured Perceptron MIRA HMM 識別関数 構造学習 ベイジアンの集う修羅の地 生成モデル 僕は立ち入れないので説明不可 NB※ @echizen_tm さんのネタパクりました。
  5. 5. CRFを理解するには?● CRFはいろんな技術があれこれ使われる● ラベル推定 Viterbi アルゴリズム● パラメータ学習 Forward-Backward アルゴリズム
  6. 6. (最低限な)CRFの説明● CRFとは何するものぞ?● 素性関数とは?● Viterbi アルゴリズム?● パラメータ推定ってどうやるの? ● Forward-Backward アルゴリズム
  7. 7. CRFとは何するものぞ?
  8. 8. Conditional Random Fields って?● 系列ラベリングに対数線形モデルを適用した物 Y B B I B I X 今すぐ ここ から 逃げだし たい B: 文節の開始を示すラベル I: 文節に含まれることを示すラベル系列ラベリング:入力系列Xが与えられた時に、適切なラベル列Yを与えるこの発表では CRF と言えば Linear Chain CRF を指すよ。
  9. 9. 適切なラベリングとは exp(W ・Φ ( X ,Y )) P(Y | X )= Z X ,W Z X ,W : Σ Y P(Y | X )=1 を保証するための分配関数 Φ : 素性関数 W : 素性関数に対する重みベクトル訓練データ(正しいラベルが付けられた系列データ)から学習したパラメータWを用いて、入力系列Xに対する出力ラベル系列Yの確率P(Y|X)が最大となるようなラベリングを行う Viterbi アルゴリズムで効率的に行える (あとで話す)
  10. 10. 素性関数とは?
  11. 11. 素性関数とはなんぞ? Φ ( X , Y ) は K 次元のベクトルを返す関数 Φ0 Φ1 Φ2 Φ3 ...Φ k ... ΦK Φ k ( X ,Y )= Σ t ϕ k ( X , y t , y t −1 ) ϕ k ( X , y t , y t−1 )= { 1 ( y t −1=B , y t=B , xt =ここ.) 0 otherwise y t−1 yt 現在の位置 t から見て, 1つ前の ラベル y_{t-1}と現在のラベル y_t , 観測された素性Xが特定の 3つ組の時に1を返すような関数 (y_{t-1},y_t,Xの全ての情報を自x0 x1 ・・・ xt ・・・ xT 由に使ってよい)
  12. 12. よくある素性関数 yt y t−1 yt 遷移素性とか言われたりする xt ϕ 10 ( y t , y t −1)= 0 { 1 ( y t −1=BOS , y t =B) 観測素性とか言われたりする otherwise ϕ 0 (今すぐ , B) ϕ 5 (から , I ) ϕ 10 ( B , BOS ) ϕ 14 ( B , B) ϕ (今すぐ , I ) ϕ (逃げ出し , B) 1 6スペースの省略 ϕ 11 ( I , BOS ) ϕ 15 ( B , I ) ϕ 2 (ここ , B) ϕ 7 (逃げ出し , I )のためこう書く ϕ ( B , EOS ) ϕ 16 ( I , B) 12 ϕ 3 (ここ , I ) ϕ 8 (たい , B) ϕ 13 ( I , EOS ) ϕ 17 ( I , I ) ϕ 4 (から , B) ϕ 9 (たい , I ) ラベルの種類は B , I の2つ, 入力系列Xが以下の時には上のような素性関数が作られる X 今すぐ ここ から 逃げだし たい
  13. 13. Viterbi アルゴリズム?
  14. 14. Viterbi アルゴリズムって何?(1/5)● グラフ上の重みが最大となる経路を求める手法● 各位置 t で取り得るラベル種類が L, 系列長が T の時は O(L^2 T) で最適パスが求まる (まともに取り得るラベルを全列挙するとO(L^T) )● 各位値 t のノードのスコアが最大となるような t-1 の ノードを選んで接続する
  15. 15. Viterbi アルゴリズムって何?(2/5) ϕ 1(今すぐ , I )ϕ 11 ( I , BOS ) I I I I I BOS EOS ϕ 16 ( I , B)ϕ 10 ( B , BOS ) B B B B B が発火 ϕ 0 (今すぐ , B) ϕ 14 ( B , B) ϕ 2 (ここ , B) 今すぐ ここ から 逃げだし たい I I B B B というラベル付け BOS から EOS までの経路を辿 るとラベル付けが行える B B I B I というラベル付け ではどうやって最適な経路を見 つけたら良いのか?
  16. 16. Viterbi アルゴリズムって何?(3/5) ϕ 1(今すぐ , I )ϕ 11 ( I , BOS ) I I I I I BOS EOS ϕ 16 ( I , B)ϕ 10 ( B , BOS ) B B B B B が発火 ϕ 0 (今すぐ , B) ϕ 14 ( B , B) ϕ 2 (ここ , B) 今すぐ ここ から 逃げだし たい W 1 -1 2 -1 0 1 3 -2 -3 1 3 -2 1 1 1 2 1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 学習済みのパラメータ
  17. 17. Viterbi アルゴリズムって何?(4/5) w 11 +w 1=−3 各ノードごとで最もスコアの大きくなる I I 1つ前のノードと接続するBOS w 11 +w 1+ w 16=−2 ^ w 10 +w 0 +w 14 =5 スコアの大きくなる B B B のノードと接続! w 10 + w 0=4 w 10 + w 0+w 14 +w 2 =7 今すぐ ここ から 逃げだし たいW 1 -1 2 -1 0 1 3 -2 -3 1 3 -2 1 1 1 2 1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  18. 18. Viterbi アルゴリズムって何?(5/5) I I I I IBOS EOS B B B B B 今すぐ ここ から 逃げだし たいEOSから順番にBOSまで、後ろ向きに接続されてるノードを辿ると最適パスになっている!
  19. 19. パラメータ推定ってどうやるの?
  20. 20. 重みベクトル W はどう求めるの? W の更新式 勾配ベクトル W t+1 = W t +Φ ( X ,Y )− Σ Y P (Y | X )Φ ( X ,Y ) Y は学習データにある正解のラベル列 Y は生起しうる全てのラベル列 Σ Y P (Y | X )Φ( X , Y ) が求まれば割と簡単に更新出来る Forward-Backward アルゴリズムで効率的に求まる● 勾配ベクトルの求め方は @sleepy_yoshi さん のブログを見ると良い。 ● http://d.hatena.ne.jp/sleepy_yoshi/20110329/p1
  21. 21. ここから Forward-Backward アルゴリズムの話
  22. 22. まずは式変形Σ Y P (Y | X )Φ( X , Y ) = ΣY P (Y | X ) Σ t ϕ( X , y t , y t −1 ) = Σt Σ y , y P ( y t−1 , y t | X ) ϕ( X , y t , y t −1) t t−1 位置 t-1 から t へのラベルの遷移確率が求まればよい y_0,...,y_{t-2} y_{t+1},...,y_T について 周辺化することで求められる
  23. 23. 周辺化とは?● ラベルは B I の2種類で、T=5● 位置 1 が B で、位置 2 が I となる組み合わせ B B I B B P( B B I B B ) + B B I B I P( B B I B I ) + B B I I B . B B I I I . I B I B B . I B I B I . I B I I B . I B I I I . 全部足し合わせてやると = P ( y 1= B , y 2= I | X ) 0 1 2 3 4 が求まる
  24. 24. P(B B I B B) 1 ( W ・ϕ ( B , BOS , X , t =0) ) (W ・ϕ ( B , B , X , t =1)) ( W ・ϕ ( EOS , B , X , t =5))= (e e ...e ) Z X ,WP(B B I B I ) 1 ( W ・ϕ ( B , BOS , X , t =0) ) (W ・ϕ ( B , B , X , t =1)) ( W ・ϕ ( EOS , I , X ,t =5))= (e e ...e ) Z X ,W I I I I BOS EOS B B B B 今すぐ ここ から 逃げだし たい 素性関数のベクトル ϕ ( y 0=B , y −1=BOS , X , t=0)が得られる
  25. 25. 周辺化した式P ( y t−1 , y t | X ) (W ・ ϕ ( y t , y t − 1 , X , t)) e ( W ・ ϕ( y t , y t − 1 , X , t ))= Σy Σy Π t != t e ... , y t− 2 ,... , y T Z X ,W 0, t+ 1各位置での遷移確率を計算する場合, 同じ計算が何回も出てくるので,再計算が起こらないように計算結果を保存しておいて再利用する Forward-Backward アルゴリズム
  26. 26. Forward-Backward アルゴリズムP ( y t−1 , y t | X ) (W ・ ϕ ( y t , y t − 1 , X , t)) e ( W ・ ϕ( y t , yt−1 , X ,t ))= Σy .. , y t − 2 Σy , ... , y T Π t != t e Z X ,W 0,. t+ 1 (W ・ϕ (y t , y t− 1 , X , t )) Σy 0,. .. , y t − 2 Σy t +1 ,... , y T Πt ! =t e (W ・ϕ ( yt , y t − 1 , X , t )) = (Σ y 0,. .. , yt− 2 Π t =0,. .. ,t −1 e ) ( W ・ϕ ( y t , y t − 1 , X , t )) ( Σy t+ 1 ,... , y T Π t =t +1,... ,T +1 e ) t-1より前とtより後ろで式を分けて (W ・ ϕ( y t , y t−1 , X ,t )) α ( y t , t )=Σ y 0,. .. , y t− 1 Π t =0,... , t e (W ・ ϕ( y t , y t−1 , X ,t )) β ( y t , t )=Σ y t+1 , ... , y T Π t =t+1,... , T +1 e とおくと
  27. 27. Forward-Backward アルゴリズム ( W ・ϕ ( y t , yt −1 , X ,t )) eP ( y t−1 , y t | X )= α ( y t−1 , t −1) β ( y t , t ) Z X ,W と表せる。 α と β は次のように表せる α ( y t , t )=Σ y e(W ・ϕ ( y , y , X , t) ) α ( y t −1 , t −1) t− 1 t t− 1 β ( y t , t )=Σ y e(W ・ ϕ ( y , y , X , t+1)) β ( y t +1 , t +1) t+1 t+ 1 t ただし α (BOS ,−1)=1, β ( EOS , T +1)=1 Z X ,W = α ( EOS ,T +1)= β (BOS ,−1)となる 。
  28. 28. e( W ・ ϕ( I , B , X , t=2))∗e(W ・ ϕ ( I , I , X , t=3))∗e(W ・ ϕ (I , I , X ,t =4)) + (W ・ ϕ( I , B , X , t= 2)) (W ・ ϕ ( I , I , X , t =3)) (W ・ϕ (B , I , X ,t =4)) e ∗e ∗e = (W ・ ϕ ( I , B , X ,t =2)) ( W ・ ϕ ( I , I , X ,t =3)) (W ・ ϕ (I , I , X ,t =4)) (W ・ϕ ( B , I , X , t=4))e ∗e (e +e ) 途中の計算結果を保存しておくと 再計算の必要が無くなる。 I I I I BOS EOS B B B B 今すぐ ここ から 逃げだし たい 素性関数のベクトル ϕ ( y 0=B , y −1=BOS , X , t=0)が得られる
  29. 29. ϕ ( y 2=I , y 1=B , X , t=2) β ( I ,t = 2) I I I IBOS EOS α ( B , t =1) B B B B 今すぐ ここ から 逃げだし たい P ( y 1=B , y 2= I | X )= ( W ・ ϕ ( y 2 =I , y1= B , X ,t =2)) e α ( B ,t =1) β ( I , t =2) Z X ,W
  30. 30. 学習まとめ1. 学習事例を1つ読み込む2. 現在のパラメータWtを使って勾配ベクトルを計算 1.Forward-Backward で各ノードのα, βを計算 2.α,βを使って各位置での遷移確率を求めて勾配ベクトル を作成3. Wt に勾配ベクトルを足し込んで Wt+1とする4.1-3. を繰り返す 勾配法とか学習率のスケジューリングとか正則化とか いろいろあるけどそれらはここでは説明しない
  31. 31. ここから素性テンプレートの話をするよ!
  32. 32. 素性テンプレートの説明● 何が出来るの?● どう書くの?● 素性関数は?● 素性関数のID管理ってどうしてる?
  33. 33. Q&AQ「素性テンプレートって何が出来るの?」A「素性関数のデザインが出来るよ。」
  34. 34. どう書くの?
  35. 35. テンプレートの例(1/5) yt xt 2 形動 名詞場所 格助詞 サ五 助動詞たい X 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t 現在の位置 t からの相対位置 指定された位置の何行目の素性を取るか U01:%x[0,0] 指定された位置の観測された 素性を取り出すマクロ現在の位置のラベルのみ見る 観測された素性x_t に Prefix として付加される
  36. 36. テンプレートの例(2/5) yt xt 2 形動 名詞場所 格助詞 サ五 助動詞たいX 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t U01:%x[0,0] U01:ここ U02:%x[0,1] U02:名詞 の様に置き換わる
  37. 37. テンプレートの例(3/5) y t−1 yt B 各位置 t で B という 素性が取り出される位置 t とt-1 の2つのラベルを見る
  38. 38. テンプレートの例(4/5) y t−1 yt B01:%x[0,0] xt B01:ここ と置き換わる 2 形動 名詞場所 格助詞 サ五 助動詞たいX 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t
  39. 39. テンプレートの例(5/5) yt ytx t−1 xt x t−1 xt x t+1 U03:%x[-1,0]/%[0,0] U04:%x[-1,0]/%[0,0]/%x[1,0] 観測値の bigram 観測値の trigram “/”はただの文字列として観測された素性に付加される
  40. 40. 素性関数は?
  41. 41. 素性関数はどうした。テンプレートに従って取り出された観測された素性について先頭のU,Bに従って素性関数が作られる U01:ここ マクロで取り出された素性ラベルの種類は B と I の2種類だとしたら ϕ 0 (U01 : ここ , B) ϕ 1 (U01: ここ , I )が作られるPrefix があるおかげで, 観測された値が位置 t からどの位置にあるのかが区別出来る
  42. 42. B とだけあるのはどうなるの? B マクロで取り出された素性 ϕ 10 ( B , B , BOS ) ϕ 10 ( B , B , B) ϕ 11 ( B , I , BOS ) ϕ 11 ( B , I , B) ϕ 12 ( B , B , EOS ) ϕ 12 ( B , B , E ) ϕ 13 ( B , I , EOS ) ϕ 13 ( B , I , E) という素性関数が作られる入力系列Xに依存しないため, 全ての位置についてBという 素性が取り出され, ラベル遷移だけを見る事が出来る
  43. 43. 素性関数のID管理はどうしてる?
  44. 44. 内部での表現 “U01:ここ-B” = 0 “U01:ここ-I” = 1 ...Q. みたいな Key と ID のペアを用意してハッシュにでも入れるの?A. それでも出来るけど素性関数のIDチェックする度に文字列作る事に なるから遅い。 それに組み合わせが多すぎてハッシュがメモリ馬鹿食いしちゃう。 Q. じゃあどうやって ID を管理するのさ?
  45. 45. Idの管理(1/2)素性テンプレートで取りだされた観測値が U の時は (Unigram Feature) ラベル数L∗Uで始まる素性数の素性関数が作られる素性テンプレートで取りだされた観測値が B の時は (Bigram Feature) 2 (2∗L+L )∗Bで始まる素性数の素性関数が作られ, 重みベクトルWの要素数は 2ラベル数L∗Uで始まる素性数 + (2∗L+L )∗Bで始まる素性数になる
  46. 46. Idの管理(2/2)Wパラメータの構造を下のようにする Unigram Feature のパラメータ Bigram Feature のパラメータ素性とラベルには予め ID を付けておいて φ(0,0), φ(0,1),φ(1,0),φ(1,1),.... ,φ(0,0,0),φ(0,0,1),φ(0,1,0),φ(0,1,1),... Unigram Feature のパラメータ Bigram Feature のパラメータと対応づける
  47. 47. すると・・・U01:%x[0,0]B X 今すぐ ここ から 逃げだし たい素性テンプレート U01:今すぐ U01:ここ U01:から U01:逃げ出し U01:たい B B B B BUnigram Feature のID 0 1 2 3 4 Bigram Feature のID 0 0 0 0 0
  48. 48. 素性ID と ラベル ID の組から対応するWの 要素が直で参照出来る ϕ 1(0, 1) 1 1 1 1 1 BOS 1つ前のラベルID カレントのラベル ID EOS ϕ 16 (0,1,0) Unigram Feature 数10 + (2L+L^2)*0 + 2L + 1*L + 0 = 16 0 0 0 0 0 ϕ 0 (0,0) ϕ 14 (0,0,0) ϕ 2 (1,0)0*L+0 0 1 2 3 4 X 0 0 0 0 0 W 1 -1 2 -1 0 1 3 -2 -3 1 3 -2 1 1 1 2 1 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
  49. 49. 結論● 素性関数は対応するパラメータWだけ作る● 素性とラベルにだけ ID を付ける ● Unigram Feature と Bigram Feature は別管理● 系列Xにテンプレートを適用して素性 ID 列にする ● ラティスのノードに付けられたラベルIDと各位置の素性 IDから対応するWの要素を直で参照する
  50. 50. まとめ● 「言語処理のための機械学習入門」(高村大也, 奥村学) を読めば今日の話はもっと詳しく載ってる ので、これを読めば良いと思う。

×