機械学習・自然言語処理の勉強メモ

学んだことのメモやまとめ

Snorkelの識別モデルについて(理論編)

前回で生成モデルを用いてP(y_i|\lambda)を推定するところをまとめた。
kento1109.hatenablog.com
(論文の解釈に自信が無い部分もあるが・・)

生成モデルにより、データx_iに対応するラベルy_iが生成できた。
f:id:kento1109:20180110145508p:plain
https://hazyresearch.github.io/snorkel/pdfs/snorkel_demo.pdf

教師ありデータを識別モデルを用いてモデリングする。
f:id:kento1109:20180110145722p:plain
Weak Supervisionより引用

2値分類の識別モデルなので、損失関数はロジスティック損失を用いる。
ロジスティック損失は、次式で定義される。
L(f(w,x),y)={\rm E}_{x,y}[ \log(1+\exp (-f(w,x)y)]
x,yを与えて、f(w,x)y>0で正しく識別している。y=+1の時、f(w,x)の値が大きいほど、識別境界から離れて余裕をもって識別できる。(その分、\exp (-f(w,x)y)は小さくなるので、損失値も小さい。)パラメータwは、最尤法により求める。
\begin{eqnarray}\tilde {w}=\arg\min_w\sum_{i=1}^n (\log(1+\exp (-f(w,x_i)y_i))\end{eqnarray}
ただし、今回の場合、y_iは観測できないので、生成モデルにより求めたP(y=1|\lambda(x))を利用する。
よってロジスティック損失は、
\begin{eqnarray}\tilde {w}=\arg\min_w\sum_{i=1}^n (\log(1+\exp (-f(w,x_i)y_i|\lambda(x_i)))\end{eqnarray}
となる。
確率的勾配法などで最適な\tilde {w}を求める。

また、論文の後半では、ラベリング関数同士の依存関係を考慮したモデルなどが紹介されているが、まとめられる程理解できていない・・
もう少し、勉強して理解できたら補足していきたい。