ベイジアンフィルターについて
http://d.hatena.ne.jp/nazoking/20031123#1069519372
nazokingさんから。
解説ありがとうございます。
>単語のスパム率=スパム内での確率/(ノンスパム内での確率/スパム内での確率)
ここが引っかかるんですよね。理論のキモだと思う。
自分なんか素直に普通に考えると、
単語のスパム率=スパム内での確率-定数*ノンスパム内での確率
ってつい線形の合計で考えてしまうんですが、(判りやすいので)
(余談になりますが、オセロとか将棋の局面の評価関数も普通は線形合計になってると思うんですが、非線形にすると凄い強力になると思う。計算時間増加ともう意味判らない全然わからない状態になりかねないけど)
>単語のスパム率=スパム内での確率/(ノンスパム内での確率+スパム内での確率)
実際に仮定して調べてみる。
スパム率
madam 0.99
very 0.14
madamとperlを含むメールは
スパム率=0.99/(0.99+0.99)=0.5
ノンスパム率=0.99/(0.99+0.99)=0.5
確率が同率だから妖しさ50%
madamとpop3を含むメールは
スパム率=0.99/(0.1+0.99)≒1
ノンスパム率=0.1/(0.99+0.1)≒0.1
一方、madamで妖しいのにpop3が弱いので妖しさ10倍
ほぼスパム決定
(後日修正
>単語のスパム率=スパム内での確率/(ノンスパム内での確率+スパム内での
でした)
線形の足し算だと、ここまで「強調した結果」は得られないので、非線形のベイズ理論はたしかに強力なんだろうなあ。
>かつてスパムであったもの、が、状況が変化してスパムでなくなる、ということはない
これ重要だよね。未来は判らないけど、過去は確定している。それはこの理論の基礎だと思う。
>はたして、単純に当てはめて有効な結果が出続けるのか?
なんで、イタチごっこだけど、入力に応じてフィルターを随時変化させて、直前の過去の経験が生かせるようにしていく連続になるんでしょうね。
ただ、すでにあるフィルターを用いて「これはスパムじゃよ」って判定は機械が自分でできるけど、
新しいものの変化は「自分ではわからない」
やはり人間の判断で「スパムかどうか?」の教師信号がいる。
現在の自分のフィルターと新しい情報源との比較によって逆伝播誤差(バックプロバゲーション)で学習させようとってのは、
id:mittyさんに紹介してもらった研究所の人の考え方になるというわけで。
普通は「結局は人間の道具なんだから」という視点でよく結論を結ぶけど、人間の手間をとらせないように「自立的に学習して、社会の変化に対応してくれる機械」ってのは、
まわりまわって人間の役に立つわけで。そのへんの警戒心とかのすれ違いが、コンピューターチェスを巡る報道でもよくあると思います。