A simple introduction to maximum entropy models for natural language processing

DMLAにはローカルルールがあって、基本的に論文紹介でも外部のBlogのようなところに書いてはいけないというルールがあるのだが*1、金曜のyuta-hさんの最大エントロピー法周りの話は外部に公開しても構わないと書いてあったので書いてみる。

Ratnaparkhi A. "A simple introduction to maximum entropy models for natural language processing" Technical Report 97-08, Institute for Research in Cognitive Science, University of Pennsylvania, 1997

最大エントロピー法の基本的な話。松本先生が適宜つっこみを入れながらの回でM1の人が参加するとちょうどよかったんではないかと思ったが、科学技術論・科学技術者論が同時間帯にあっていたためM1での参加は自分だけだった。だけどMEはよく出てくるモデルだし、知っておいて損はないと思うので興味ある人は読んでみるといいと思う。分からないところがあっても、きっとyuta-hさんが優しく教えて(ry。どーしても日本語がいいとかいう人はこれを読めば分かると思う。

言語と計算 (4) 確率的言語モデル

言語と計算 (4) 確率的言語モデル

そういう自分は最大エントロピー法をやるのは初めてではない。筑波にいたときの山本先生の自然言語処理特論(基本的には言語モデルのスムージングの話が一学期間続く。よい授業だったと思う)で習っていた。

ということで最大エントロピー法がどういうものかについて説明するのは今回は省こうと思う。

最大エントロピー法と対数線形モデルのときの最尤法の違い

yuta-hさんが「最大エントロピー法と対数線形モデルのときの最尤法は何が違うのか?」と言われていたが、先生に聞いた感じのところによると

  • 結局のところやることは同じである
  • ただ、いきなり対数線形モデルを仮定してもよいが、なんでそのパラメトリックフォームを選択するのかの理由が明確ではない
    • 最大エントロピー法では、エントロピー最大原理に基づいていて、それを(ラグランジュの未定乗数法で)解くと対数線形モデルが出てくる、という意味で対数線形モデルを仮定するのは妥当である根拠がある

というのが一番の違いかなと理解した。

ノルムと事前分布の直感的理解

で、やることとしては最尤法になってGISやら準ニュートン法やらで最適化をしていく。最尤法なのでoverfittingに陥いる可能性は常に考えておかないといけなくって

  • ベイズっぽく考える
  • 正則化項を入れてやる

のどっちか好きなほうを考えてやればよい。それはまあいいとして

  • L2ノルムはガウスの事前分布
  • L1ノルムはラブラシアンの事前分布

と呼ばれる理由が直感的に分かってなかったんだが、今日初めて直感的に理解できた。平均0のガウス分布を事前分布に考えておいて、事後分布を考えてやるときに、対数を取ればxの二乗のところが残ってくる。そいつが正則化項に対応していると考えるとL2がガウスな理由がすぐ分かる。あれ、これって常識じゃな(ry。

最大エントロピー法とSVM

それぞれ識別モデルであるところの最大エントロピー法とSVM。「違いはどういうところにあるのか?」というところを質問。最大エントロピー法は明示的に素性を書いてやらないといけないので、素性マイニングっぽいことが必要になってその付近で大変。SVMの場合、素性マイニングのところがカーネルの設計に置き変わる(多項式カーネルを使うときが多いらしいが)。そういうわけで最大エントロピー法をやっていた人がSVMに流れたとかなんとか。

追記

yuta-h(shirayu)さんが資料を公開してくださったとのことなのでリンクを追加。

*1:この前は知らずに書いてしまっていたorz