日本語入力を支える技術がすごい分かり易い

p196, 5.5節あたりの話である。

何で条件付き確率を定義する時に指数関数を使っているのか?

PRMLの4章を読んでいた際に謎として残っていたのが、「何故、確率を定義する時に指数関数(softmax function)を使っているのか?」である。うろ覚えの人工知能論の授業では「微分可能にするため」として納得していたが、この本を読んでみてしっくりきた。

指数関数を使う理由:

  1. 確率を扱いたいため、出力値を0以上にする必要がある
  2. 確率を扱いたいため、全ての背反事象に対する確率の総和を1にする必要がある(参考:http://d.hatena.ne.jp/nowokay/20120214)
  3. (これは自分の推測かつ、あまり必要ない)微分可能にする必要がある

結局重みの更新式を算出する際に偏微分する必要があるから、「微分可能にするため」も理由の一つであると推測する。しかし、劣微分あたりの話で「微分不可能な項に対する対処」をする必要があるので、あまり必要ないかな。

以下雑記

  1. 連想配列の実装に対してトライ木を使う、という発想はなかった。言われてみれば、確かにそうなんだけど、言われなければ気が付かなかった。
  2. NLPベイズの定理が用いられる例として、機械翻訳の例がよくあるけど、かな漢字変換の例も取り入られた方がわかり易いと思う。例えば日本語から英語に翻訳する際に、英語から日本語に翻訳される確率を用いていると「あれ、それって同じ問題をあらかじめ解かれているってこと?」と疑問が湧いた(あれは、バイリンガルコーパスを使用しているからだけど)。かな漢字変換をする際に、「変換候補である漢字の読み方yが入力されたかな列xである確率 P(x|y)」と「変換された文字列が日本語らしい確率 P(y)」を考慮に入れることの方が理解しやすい(読み推定とかな漢字変換は違う、という私見に基づく)。
  3. p171あたりの劣微分、劣勾配に関する話は「L1正則化の際に、正則化項は微分不可能。どうやって偏微分するの?」という疑問を当然思うべきであったのに頭になかったので、目から鱗だった。

まだ読み終わってないので、多分続く。

日本語入力を支える技術 ?変わり続けるコンピュータと言葉の世界 (WEB+DB PRESS plus)

日本語入力を支える技術 ?変わり続けるコンピュータと言葉の世界 (WEB+DB PRESS plus)