SlideShare a Scribd company logo
1 of 50
Download to read offline
CRFと素性テンプレート


    @uchumik
自己紹介
●   某IT企業勤務
●
    ものぐさ
今日のお話

1. CRF の説明(実装に必要な部分のみ)
2. 素性テンプレートのお話
CRF に入る前に…
●   マシンラーニング界での CRF の立ち居値は何処?

      ML界                        Logistic Regression


           SVM                                         識別モデル

       Perceptron         M^3N             CRF
                     Structured SVM
          PA        Structured
                    Perceptron
                        MIRA             HMM
      識別関数
                                 構造学習

                               ベイジアンの集う修羅の地
                    生成モデル      僕は立ち入れないので説明不可
                                 NB

※ @echizen_tm さんのネタパクりました。
CRFを理解するには?
●   CRFはいろんな技術があれこれ使われる
●
    ラベル推定
       Viterbi アルゴリズム
●
    パラメータ学習
       Forward-Backward アルゴリズム
(最低限な)CRFの説明

●   CRFとは何するものぞ?
●
    素性関数とは?
●   Viterbi アルゴリズム?
●
    パラメータ推定ってどうやるの?
    ●   Forward-Backward アルゴリズム
CRFとは何するものぞ?
Conditional Random Fields って?
●
    系列ラベリングに対数線形モデルを適用した物


       Y     B    B     I     B          I

       X     今すぐ ここ     から    逃げだし       たい



            B: 文節の開始を示すラベル
            I: 文節に含まれることを示すラベル


系列ラベリング:入力系列Xが与えられた時に、適切なラベル列Yを与える


この発表では CRF と言えば Linear Chain CRF を指すよ。
適切なラベリングとは
                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 アルゴリズムで効率的に行える
              (あとで話す)
素性関数とは?
素性関数とはなんぞ?
     Φ ( 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     由に使ってよい)
よくある素性関数
                                                    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            今すぐ ここ   から   逃げだし   たい
Viterbi アルゴリズム?
Viterbi アルゴリズムって何?(1/5)
●
    グラフ上の重みが最大となる経路を求める手法
●   各位置 t で取り得るラベル種類が L, 系列長が
    T の時は O(L^2 T) で最適パスが求まる
    (まともに取り得るラベルを全列挙するとO(L^T) )
●   各位値 t のノードのスコアが最大となるような t-1 の
    ノードを選んで接続する
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 というラベル付け        ではどうやって最適な経路を見
                                                 つけたら良いのか?
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
                         学習済みのパラメータ
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
Viterbi アルゴリズムって何?(5/5)

       I     I   I     I     I



BOS                               EOS




       B    B    B     B     B



      今すぐ   ここ   から   逃げだし   たい

EOSから順番にBOSまで、後ろ向きに接続されてる
ノードを辿ると最適パスになっている!
パラメータ推定ってどうやるの?
重みベクトル 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
ここから Forward-Backward アルゴリズムの話
まずは式変形
Σ 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 について
                      周辺化することで求められる
周辺化とは?
●   ラベルは 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
                                が求まる
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 ,W
P(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)が得られる
周辺化した式

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 アルゴリズム
Forward-Backward アルゴリズム
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 − 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
                                                                                               '




                とおくと
Forward-Backward アルゴリズム
                          ( W ・ϕ ( y t , yt −1 , X ,t ))
                       e
P ( 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)となる 。
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)が得られる
ϕ ( y 2=I , y 1=B , X , t=2)
                  β ( I ,t = 2)
       I                           I                   I                  I



BOS                                                                                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
学習まとめ
1. 学習事例を1つ読み込む
2. 現在のパラメータWtを使って勾配ベクトルを計算
 1.Forward-Backward で各ノードのα, βを計算
 2.α,βを使って各位置での遷移確率を求めて勾配ベクトル
   を作成
3. Wt に勾配ベクトルを足し込んで Wt+1とする
4.1-3. を繰り返す

   勾配法とか学習率のスケジューリングとか正則化とか
   いろいろあるけどそれらはここでは説明しない
ここから素性テンプレートの話をするよ!
素性テンプレートの説明

●
    何が出来るの?
●
    どう書くの?
●
    素性関数は?
●   素性関数のID管理ってどうしてる?
Q&A

Q「素性テンプレートって何が出来るの?」

A「素性関数のデザインが出来るよ。」
どう書くの?
テンプレートの例(1/5)
                         yt


                         xt

          2 形動         名詞場所      格助詞    サ五   助動詞たい
      X   1 形容動詞       名詞        助詞     動詞     助動詞
          0 今すぐ        ここ        から     逃げだし   たい


             -1         0        1       2     3
                        t
  現在の位置 t からの相対位置                指定された位置の何行目の素性を取るか
                   U01:%x[0,0]
                                 指定された位置の観測された
                                 素性を取り出すマクロ
現在の位置のラベルのみ見る
                  観測された素性x_t に Prefix
                  として付加される
テンプレートの例(2/5)
                   yt


                   xt

    2 形動          名詞場所    格助詞     サ五   助動詞たい
X   1 形容動詞        名詞      助詞      動詞     助動詞
    0 今すぐ         ここ      から      逃げだし   たい


       -1         0        1       2     3
                  t
    U01:%x[0,0]          U01:ここ
    U02:%x[0,1]          U02:名詞

            の様に置き換わる
テンプレートの例(3/5)
     y t−1       yt


             B        各位置 t で B という
                      素性が取り出される

位置 t とt-1 の2つのラベルを見る
テンプレートの例(4/5)
    y t−1        yt          B01:%x[0,0]


                 xt
                             B01:ここ        と置き換わる

    2 形動              名詞場所     格助詞         サ五   助動詞たい
X   1 形容動詞            名詞       助詞          動詞     助動詞
    0 今すぐ             ここ       から          逃げだし   たい


            -1        0         1           2     3
                      t
テンプレートの例(5/5)
                   yt                       yt




x 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

             “/”はただの文字列として観測された素性に付加される
素性関数は?
素性関数はどうした。
テンプレートに従って取り出された観測された素性について
先頭のU,Bに従って素性関数が作られる

            U01:ここ
        マクロで取り出された素性

ラベルの種類は B と I の2種類だとしたら

           ϕ 0 (U01 : ここ , B)
           ϕ 1 (U01: ここ , I )

が作られる

Prefix があるおかげで, 観測された値が位置 t からどの位置に
あるのかが区別出来る
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という
 素性が取り出され, ラベル遷移だけを見る事が出来る
素性関数のID管理はどうしてる?
内部での表現
             “U01:ここ-B” = 0
             “U01:ここ-I” = 1
                   ...

Q. みたいな Key と ID のペアを用意してハッシュにでも入れるの?
A. それでも出来るけど素性関数のIDチェックする度に文字列作る事に
   なるから遅い。
   それに組み合わせが多すぎてハッシュがメモリ馬鹿食いしちゃう。


   Q. じゃあどうやって ID を管理するのさ?
Idの管理(1/2)
素性テンプレートで取りだされた観測値が U の時は (Unigram Feature)

      ラベル数L∗Uで始まる素性数

の素性関数が作られる

素性テンプレートで取りだされた観測値が B の時は (Bigram Feature)
           2
      (2∗L+L )∗Bで始まる素性数

の素性関数が作られ, 重みベクトルWの要素数は
                           2
ラベル数L∗Uで始まる素性数     +   (2∗L+L )∗Bで始まる素性数
になる
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 のパラメータ


と対応づける
すると・・・
U01:%x[0,0]
B           X           今すぐ ここ      から   逃げだし    たい
素性テンプレート


                   U01:今すぐ U01:ここ   U01:から   U01:逃げ出し   U01:たい
                   B       B        B        B          B



Unigram Feature のID 0      1        2        3          4
 Bigram Feature のID 0      0        0        0          0
素性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
結論
●   素性関数は対応するパラメータWだけ作る
●   素性とラベルにだけ ID を付ける
    ●   Unigram Feature と Bigram Feature は別管理
●   系列Xにテンプレートを適用して素性 ID 列にする
    ●   ラティスのノードに付けられたラベルIDと各位置の素性
        IDから対応するWの要素を直で参照する
まとめ
●   「言語処理のための機械学習入門」(高村大也, 奥村学)

           を読めば今日の話はもっと詳しく載ってる
           ので、これを読めば良いと思う。

More Related Content

What's hot

ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾Yoshitake Takebayashi
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -tmtm otm
 
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定Yuya Takashina
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17Takuya Akiba
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展Deep Learning JP
 
実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像yaju88
 
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
 [DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent [DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient DescentDeep Learning JP
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...JunSuzuki21
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情Yuta Kikuchi
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向ohken
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured PredictionDeep Learning JP
 
強化学習その2
強化学習その2強化学習その2
強化学習その2nishio
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Kota Matsui
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-sleepy_yoshi
 
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...cvpaper. challenge
 

What's hot (20)

ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散・連続混合の相互情報量の推定
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展
 
実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像
 
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
 [DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent [DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
[DL輪読会]A Bayesian Perspective on Generalization and Stochastic Gradient Descent
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
トップカンファレンスへの論文採択に向けて(AI研究分野版)/ Toward paper acceptance at top conferences (AI...
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
LDA入門
LDA入門LDA入門
LDA入門
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
教師なし画像特徴表現学習の動向 {Un, Self} supervised representation learning (CVPR 2018 完全読破...
 

Similar to Crfと素性テンプレート

代数トポロジー入門
代数トポロジー入門代数トポロジー入門
代数トポロジー入門Tatsuki SHIMIZU
 
生物統計特論6資料 2006 abc法(bootstrap) isseing333
生物統計特論6資料 2006 abc法(bootstrap) isseing333生物統計特論6資料 2006 abc法(bootstrap) isseing333
生物統計特論6資料 2006 abc法(bootstrap) isseing333Issei Kurahashi
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装するShuhei Iitsuka
 
ベクトルで理解する相関係数
ベクトルで理解する相関係数ベクトルで理解する相関係数
ベクトルで理解する相関係数Satoshi MATSUURA
 
Introduction to Topological Data Analysis
Introduction to Topological Data AnalysisIntroduction to Topological Data Analysis
Introduction to Topological Data AnalysisTatsuki SHIMIZU
 
PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半Ohsawa Goodfellow
 
情報幾何の基礎輪読会 #1
情報幾何の基礎輪読会 #1情報幾何の基礎輪読会 #1
情報幾何の基礎輪読会 #1Tatsuki SHIMIZU
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notationKenta Oono
 
Implicit Explicit Scala
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit ScalaKota Mizushima
 
PRML 1.6 情報理論
PRML 1.6 情報理論PRML 1.6 情報理論
PRML 1.6 情報理論sleepy_yoshi
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論sleepy_yoshi
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理Ryo Nakamura
 
Introduction to Categorical Programming
Introduction to Categorical ProgrammingIntroduction to Categorical Programming
Introduction to Categorical ProgrammingMasahiro Sakai
 
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)Akira Asano
 
topology of musical data
topology of musical datatopology of musical data
topology of musical dataTatsuki SHIMIZU
 

Similar to Crfと素性テンプレート (20)

代数トポロジー入門
代数トポロジー入門代数トポロジー入門
代数トポロジー入門
 
分布 isseing333
分布 isseing333分布 isseing333
分布 isseing333
 
Bitmap
BitmapBitmap
Bitmap
 
NLPforml5
NLPforml5NLPforml5
NLPforml5
 
生物統計特論6資料 2006 abc法(bootstrap) isseing333
生物統計特論6資料 2006 abc法(bootstrap) isseing333生物統計特論6資料 2006 abc法(bootstrap) isseing333
生物統計特論6資料 2006 abc法(bootstrap) isseing333
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装する
 
ベクトルで理解する相関係数
ベクトルで理解する相関係数ベクトルで理解する相関係数
ベクトルで理解する相関係数
 
Introduction to Topological Data Analysis
Introduction to Topological Data AnalysisIntroduction to Topological Data Analysis
Introduction to Topological Data Analysis
 
PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半PRML上巻勉強会 at 東京大学 資料 第1章後半
PRML上巻勉強会 at 東京大学 資料 第1章後半
 
情報幾何の基礎輪読会 #1
情報幾何の基礎輪読会 #1情報幾何の基礎輪読会 #1
情報幾何の基礎輪読会 #1
 
mathemaical_notation
mathemaical_notationmathemaical_notation
mathemaical_notation
 
Implicit Explicit Scala
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit Scala
 
PRML 1.6 情報理論
PRML 1.6 情報理論PRML 1.6 情報理論
PRML 1.6 情報理論
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
5 Info Theory
5 Info Theory5 Info Theory
5 Info Theory
 
Introduction to Categorical Programming
Introduction to Categorical ProgrammingIntroduction to Categorical Programming
Introduction to Categorical Programming
 
PRML 10.4 - 10.6
PRML 10.4 - 10.6PRML 10.4 - 10.6
PRML 10.4 - 10.6
 
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
2021年度秋学期 画像情報処理 第10回 Radon変換と投影定理 (2021. 11. 19)
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
 

More from Kei Uchiumi

Deep Learning Chapter12
Deep Learning Chapter12Deep Learning Chapter12
Deep Learning Chapter12Kei Uchiumi
 
Nl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov ModelNl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov ModelKei Uchiumi
 
DSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language ModelDSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language ModelKei Uchiumi
 
Sigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pubSigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pubKei Uchiumi
 

More from Kei Uchiumi (10)

Ibisml vhmm
Ibisml vhmmIbisml vhmm
Ibisml vhmm
 
Deep Learning Chapter12
Deep Learning Chapter12Deep Learning Chapter12
Deep Learning Chapter12
 
Dsirnlp#7
Dsirnlp#7Dsirnlp#7
Dsirnlp#7
 
Gamglm
GamglmGamglm
Gamglm
 
Nl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov ModelNl220 Pitman-Yor Hidden Semi Markov Model
Nl220 Pitman-Yor Hidden Semi Markov Model
 
DSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language ModelDSIRNLP06 Nested Pitman-Yor Language Model
DSIRNLP06 Nested Pitman-Yor Language Model
 
Sigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pubSigir2013 retrieval models-and_ranking_i_pub
Sigir2013 retrieval models-and_ranking_i_pub
 
RNNLM
RNNLMRNNLM
RNNLM
 
Signl213
Signl213 Signl213
Signl213
 
Pylm public
Pylm publicPylm public
Pylm public
 

Crfと素性テンプレート

  • 2. 自己紹介 ● 某IT企業勤務 ● ものぐさ
  • 4. CRF に入る前に… ● マシンラーニング界での CRF の立ち居値は何処? ML界 Logistic Regression SVM 識別モデル Perceptron M^3N CRF Structured SVM PA Structured Perceptron MIRA HMM 識別関数 構造学習 ベイジアンの集う修羅の地 生成モデル 僕は立ち入れないので説明不可 NB ※ @echizen_tm さんのネタパクりました。
  • 5. CRFを理解するには? ● CRFはいろんな技術があれこれ使われる ● ラベル推定 Viterbi アルゴリズム ● パラメータ学習 Forward-Backward アルゴリズム
  • 6. (最低限な)CRFの説明 ● CRFとは何するものぞ? ● 素性関数とは? ● Viterbi アルゴリズム? ● パラメータ推定ってどうやるの? ● Forward-Backward アルゴリズム
  • 8. Conditional Random Fields って? ● 系列ラベリングに対数線形モデルを適用した物 Y B B I B I X 今すぐ ここ から 逃げだし たい B: 文節の開始を示すラベル I: 文節に含まれることを示すラベル 系列ラベリング:入力系列Xが与えられた時に、適切なラベル列Yを与える この発表では CRF と言えば Linear Chain CRF を指すよ。
  • 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 アルゴリズムで効率的に行える (あとで話す)
  • 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. よくある素性関数 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 今すぐ ここ から 逃げだし たい
  • 14. Viterbi アルゴリズムって何?(1/5) ● グラフ上の重みが最大となる経路を求める手法 ● 各位置 t で取り得るラベル種類が L, 系列長が T の時は O(L^2 T) で最適パスが求まる (まともに取り得るラベルを全列挙するとO(L^T) ) ● 各位値 t のノードのスコアが最大となるような t-1 の ノードを選んで接続する
  • 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. 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. 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. Viterbi アルゴリズムって何?(5/5) I I I I I BOS EOS B B B B B 今すぐ ここ から 逃げだし たい EOSから順番にBOSまで、後ろ向きに接続されてる ノードを辿ると最適パスになっている!
  • 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
  • 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. 周辺化とは? ● ラベルは 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. 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 ,W P(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. 周辺化した式 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. Forward-Backward アルゴリズム 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 − 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. Forward-Backward アルゴリズム ( W ・ϕ ( y t , yt −1 , X ,t )) e P ( 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. 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. ϕ ( y 2=I , y 1=B , X , t=2) β ( I ,t = 2) I I I I BOS 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. 学習まとめ 1. 学習事例を1つ読み込む 2. 現在のパラメータWtを使って勾配ベクトルを計算 1.Forward-Backward で各ノードのα, βを計算 2.α,βを使って各位置での遷移確率を求めて勾配ベクトル を作成 3. Wt に勾配ベクトルを足し込んで Wt+1とする 4.1-3. を繰り返す 勾配法とか学習率のスケジューリングとか正則化とか いろいろあるけどそれらはここでは説明しない
  • 32. 素性テンプレートの説明 ● 何が出来るの? ● どう書くの? ● 素性関数は? ● 素性関数のID管理ってどうしてる?
  • 35. テンプレートの例(1/5) yt xt 2 形動 名詞場所 格助詞 サ五 助動詞たい X 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t 現在の位置 t からの相対位置 指定された位置の何行目の素性を取るか U01:%x[0,0] 指定された位置の観測された 素性を取り出すマクロ 現在の位置のラベルのみ見る 観測された素性x_t に Prefix として付加される
  • 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. テンプレートの例(3/5) y t−1 yt B 各位置 t で B という 素性が取り出される 位置 t とt-1 の2つのラベルを見る
  • 38. テンプレートの例(4/5) y t−1 yt B01:%x[0,0] xt B01:ここ と置き換わる 2 形動 名詞場所 格助詞 サ五 助動詞たい X 1 形容動詞 名詞 助詞 動詞 助動詞 0 今すぐ ここ から 逃げだし たい -1 0 1 2 3 t
  • 39. テンプレートの例(5/5) yt yt x 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 “/”はただの文字列として観測された素性に付加される
  • 41. 素性関数はどうした。 テンプレートに従って取り出された観測された素性について 先頭のU,Bに従って素性関数が作られる U01:ここ マクロで取り出された素性 ラベルの種類は B と I の2種類だとしたら ϕ 0 (U01 : ここ , B) ϕ 1 (U01: ここ , I ) が作られる Prefix があるおかげで, 観測された値が位置 t からどの位置に あるのかが区別出来る
  • 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という 素性が取り出され, ラベル遷移だけを見る事が出来る
  • 44. 内部での表現 “U01:ここ-B” = 0 “U01:ここ-I” = 1 ... Q. みたいな Key と ID のペアを用意してハッシュにでも入れるの? A. それでも出来るけど素性関数のIDチェックする度に文字列作る事に なるから遅い。 それに組み合わせが多すぎてハッシュがメモリ馬鹿食いしちゃう。 Q. じゃあどうやって ID を管理するのさ?
  • 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. 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. すると・・・ U01:%x[0,0] B X 今すぐ ここ から 逃げだし たい 素性テンプレート U01:今すぐ U01:ここ U01:から U01:逃げ出し U01:たい B B B B B Unigram Feature のID 0 1 2 3 4 Bigram Feature のID 0 0 0 0 0
  • 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. 結論 ● 素性関数は対応するパラメータWだけ作る ● 素性とラベルにだけ ID を付ける ● Unigram Feature と Bigram Feature は別管理 ● 系列Xにテンプレートを適用して素性 ID 列にする ● ラティスのノードに付けられたラベルIDと各位置の素性 IDから対応するWの要素を直で参照する
  • 50. まとめ ● 「言語処理のための機械学習入門」(高村大也, 奥村学) を読めば今日の話はもっと詳しく載ってる ので、これを読めば良いと思う。