識別モデルと識別学習

 "Discriminative models, not discriminative training", Tom Minka, 2005 (pdf) を久々に読み返してみた。完全に理解したとは言えないけど、それほど難しい内容でもなかった…ような気がする。
 この論文(?)の主張は2つある。まず、あるモデルに対する最尤解はひとつしかないのだから、識別的学習、という単語はおかしいよね、モデルが違うんだから識別モデルと呼ぶべきだよね、という論点がひとつ。当時は「HMMの識別的学習」みたいな論文が結構あったことに対して、用語法がおかしいんじゃないの、というツッコミである。これは簡単に納得できる。
 主張はもう一つ、生成モデルと識別モデルの間の関係をもうちょっと明らかにする、という話である。
 生成モデルではp(C,X,θ)を最大化するのに対し、識別モデルではp(C,θ|X)を最大化する。ここで、識別モデルについてもうちょっと考える。以下、大文字でデータ全体を、小文字でデータの一部を表すものとする。
 まず、生成モデルで考えていた生成過程のc, x 〜 p(c,x|θ)を拡張してθ'というパラメーターを増やし、q(c,x|θ, θ')という確率分布を考える(なぜここだけqを使っているのかはよくわからないが、たぶんこの分布が重要なので、他と区別するためだと思う。)。θとθ'は同じ形をしている(例えば、θがn次元実数ベクトルで表現されるとしたら、θ'もn次元実数ベクトルで表現されるものとする。)
 q(c,x|θ, θ') = p(c|x, θ) p(x| θ') とする。ここで、xの生成に対してθは無関係であるという仮定を置かないとこの式は出てこないと思うのだが、特にそのような注釈はないような気がする。識者の意見を求む…。→shima_shimaさんによると、「「次のようなモデルをおきました」って書いてあるので,まぁそこで仮定が入ってるってことですね.」とのことです。
 p(x|θ')はp(x,c|θ')を周辺化して求めることができ、そうするとp(x|θ') = ��_c p(x,c|θ') と書ける。
 q(C, X, θ, θ')を最大化することを考える。θとθ'が独立であると仮定すると、q(C, X, θ, θ') = p(θ)p(θ')π_i q(x_i, c_i, θ, θ') = p(θ)p(θ')π_i p(c_i, x_i| θ) p(x_i, θ') と書ける。こう考えて求めたθは、識別モデルの最良の解と一致する。よって、識別モデルの考え方として、

  • 条件付き確率(尤度)の最大化を行う

 の他に、

  • 生成モデルにθ'というパラメーターを追加して、その同時確率を最大化する

 という見方がある、と言える。また、θ, θ'が独立であると仮定しない場合、通常の識別モデルのθ=θ'という制限を外しているので、より柔軟なモデルになっていると言える。
 このような見方を取ることで、生成モデルと識別モデルの考え方を両方とも使うことができ、識別モデルの場合にunlabeled dataを自然に使う、といったことが可能になる。
 以下は感想。

  • 具体的なモデルがどうなっているかを考えないと、自分としてはどうもこれを読んだだけではまだ納得しかねる感じがする。ナイーブベイズの場合について、ちょっと考えてみようかなぁ。
  • 暗黙的な独立性が仮定されてところがいくつかある気がして、どうもそこら辺もまだ納得しきれていない。やっぱり具体的なモデルで考えないと納得できない気がしてきた。

 (追記):判別と生成のモデル はこのペーパーに関する識者の方々による議論です。