Document

第4章輪講
4,1:堀川
4,2伊東
4.3,4.4今野
4.5~仲山
4.1 思考実験:スパムフィルタの例から学ぶ
• スパムフィルタ・・・メールソフトやWebメールサービスの機能の一つ
で、受信したメールの中から迷惑な広告などのメール(スパムメール、
迷惑メール)を検出して、削除したり専用の保管場所に移したりする
こと。また、そのような機能を提供するソフトウェア。
• スパム・・・受信者の意向を無視して、無差別かつ大量に一括して送
信される、電子メールを主としたメッセージのこと
スパムかどうかの判断
• バイアグラという言葉を含む
• 件名の長さ
• 感嘆符やその他の句読点の過度な使用
続き
• 確率モデル・・・の各々の値に対して、その起こりやすさを記述するも
の
• K近傍法・・・特徴空間における最も近い訓練例に基づいた統計分類
の手法であり、パターン認識でよく使われる。最近傍探索問題の一
つ。k近傍法は、インスタンスに基づく学習の一種であり、怠惰学習
(lazy learning) の一種である。その関数は局所的な近似に過ぎず、
全ての計算は分類時まで後回しにされる。また、回帰分析にも使わ
れる。
4.1.1 なぜ線形回帰でスパムフィルタを構築
できないのか
• 線形回帰・・・統計学における回帰分析の一種である。
• 線形回帰モデルでスパムフィルムを作る
• →何が必要か?
データセット
|-電子メールのメッセージに対応しているもの
メールに含まれる単語を特徴として捉える
• 例 ー 単語「バイアグラ」
• その単語がでてきたかをチェックし、その回数をデータセットに記録
• 出てきた頻度や言葉の強さで分類し、スパムかどうかを判断
• コンピュータの世界では、2進数で0か1を入力すれば、その単語が
でてきたor出てこないが判断できる
線形回帰とスパムフィルタ
• 線形回帰を行うには、トレーニングデータとして判定結果がラベル付
けされたデータセットが必要
• 準備の方法
人が評価者となり、自らスパムかをラベル付けする
ー時間がかかるが妥当
線形回帰は適しているか?
• 問題に対して適切なモデルを使用しなくてはならない。
→各メールの文字数が多い為、その一つ一つの行に解析はうまくいかない。
そしてデータが巨大すぎてデータを保存できない。
・頻度の高い単語に限定して解析用に設定することもできる
→しかし、全然足りない
結論
線形回帰は2つの値の判定結果を予測するためには適切なモデルでは
ないという問題が残る
スパムフィルタの最先端
• ここ5年間でオーバーフィッティングの問題を回避するため、確率的
勾配法が使われ始めた
• 確率的勾配法・・・自乗平均誤差を最小にするもっとも常套的な等化
アルゴリズム
• 自乗平均誤差・・・測定値の誤差の2乗の和の平均値
• 単語間の相関を考慮することができるというメリットがある
4.1.2 k近傍法でスパムフィルタを構築でき
るか
• K近傍の場合も線形回帰と同様、特徴を選ぶ必要がある
• 次元の呪い・・・(数学的)空間の次元が増えるのに対応して問題の
算法が指数関数的に大きく(英語版)なることを表している。
→k近傍法を適用する際の障害
数字画像の認識
• 図4-2に示した数字画像を認識するアルゴリズムを作成
1.1つ1つの数字をピックアップし画素数を計算
2.画素同士の距離を計算し、平方根や平方和として差分を計算
3.K近傍法を用いる
K近傍法のアルゴリズム
• 1.パラメーター(基準)の値を決定
• 2.問い合わせデータを学習用(あらかじめある)データとの比較
• 3.比較しデータを類似度に基づき並べ替え
• 4.類似するデータを選択し、どのカテゴリに当てはまるかを推測
4.2 単純ベイズ
・線形回帰もK近傍法もスパムフィルタに向いていない
→単純ベイズ
4.2.1 ベイズの法則
確率の基本性質
・p(x) : 事象xが起こる確率(事前確率)
・p(x|y) : 事象yが起こった前提で事象Bが起こる確率x(条件付き確率)
・両イベントが起こる確率をp(x, y)とすると
・p(x,y) = p(y|x)p(x) = p(x|y)p(y)という関係が導ける ・・・①
そして①の式をp(y|x)について整理するとベイズの法則が導かれる。
・p(y|x) = p(x|y)p(y) / p(x)・・・[ベイズの法則]
4.2.2 一つの単語に対するスパムフィルタ
・ある単語が含まれているメールがスパムである条件付き確率
・p(スパム|単語) = (p(単語|スパム)p(スパム)) / p(単語)
・p108でmeetingという単語が含まれたら9%の確率でスパムメールで
あると結果が出たが、果たして本当だろうか?
※偏ったデータを使っているとオーバーフィッティングが起きるため、
信頼しすぎることは禁物
4.2.3 複数の単語に対するスパムフィルタ
・メールがスパムである時に任意の単語出現確率p(x|c)
p(x|c) = 𝑗 θjc ^xj (1 - θjc)^(1-xj)
・両辺の対数をとって和の計算
Log(p(x|c)) = 𝑗 𝑥𝑗 log(𝜃𝑗 / (1 - 𝜃j)) +
・単語だけに依存する項を文字で置く
Log(p(x|c)) = 𝑗 𝑥𝑗 𝑤𝑗 + 𝑤0
𝑗 log(1
− 𝜃𝑗)
4.3 ラプラススム-ジング
θ𝑗 = スパムメールにあるj番目の単語が出現する確率
=
𝑛𝑗𝑠
𝑛𝑗𝑐
(𝑛𝑗𝑠 = ある単語がスパムメールに出現する回数
𝑛𝑗𝑐 = ある単語がすべてのメールに出現する回数)
θ𝑗𝑐 =
𝑛𝑗𝑠 + α
𝑛𝑗𝑐+ β
(α, βをおくことでθ𝑗 の確率が0や1になることを防げる)
ラプラススム-ジングは事前分布を仮定して、最尤推定を行っているのと同じ
であると考えることができる
ML を最尤推定値、D をデータセットとすると θ𝑀𝐿 = 𝑎𝑟𝑔𝑚𝑎𝑥θ 𝑃(𝐷|θ)
θ𝑗 の値のベクトル → どのようなθの値でデータDが最尤になるかを求めた値
𝑛𝑗𝑠
について、log(θ𝑗 (1
単語の独立性を仮定し、各単語 j
の値を最大化するθ𝑗 を独立に求める
(1)式を微分して0とおくと θ𝑗 =
𝑛𝑗𝑠
𝑛𝑗𝑐
− θ𝑗 )𝑛𝑗𝑐 −𝑛𝑗𝑠 ) … (1)
→ 独立性を仮定すると最尤推定値
は先ほどの式と同じ
MAP → 最大事後確率(maximum a posteriori)
θ𝑀𝐴𝑃 = 𝑎𝑟𝑔𝑚𝑎𝑥 𝑝(θ|𝐷) → パラメータθがどのような値を取るときに
最尤となるかという問題
ベイズの定理を用いるとθ𝑀𝐴𝑃 = 𝑝 𝐷 θ ・ 𝑝(θ)
𝑝(θ) は事前分布でこれを計算に都合よく、
θ の確率分布を、αとβを使ってθα (1 − θ)β と仮定すると、
ラプラススムージングと同様の式を得られる
仮定の妥当性
θ → ある単語のスパムメールに出現する確率
→ この分布が0と1の値を取る確率は0となる
→ 決して出現しない単語や必ず出現する単語を考えるのは難しい
α , β が大きい → 分布の形は中央に集中し、ほとんどの単語がスパム
メールにもそれ以外のメールにも等しく出現するという事前確率
を仮定している
→ この仮定も正しくない
→妥協点としてα , β は正で小さい値とするのがよい
これにより極端な値を取ることを防げる
α > 0, β > 0
4.4 単純ベイズとk近傍法の比較
α、β → 疑似カウント(pseudocount)、ハイパーパラメータ
あなた自身が決められる。
θ𝑗𝑐
→ α、βの2つ調整できる
→ 決められるパラメータはkのみ、
次元の呪いや多すぎる特徴の数が問題となる
単純ベイズ → これらの問題は起きない
K近傍法
ウェブスクレイピングとは
• WebサイトからWebページのHTMLデータを収集して、特定のデータ
を抽出、整形し直すことである。
• Webスクレイピングを行うことで、Webページを対象として、あたかも
Web APIを利用しているかのようにデータを効率的に取得・収集する
ことが可能になる。
APIとは
• あるコンピュータプログラム(ソフトウェア)の機能や管理するデータ
などを、外部の他のプログラムから呼び出して利用するための手順
やデータ形式などを定めた規約のこと。
• APIに従って機能を呼び出す短いプログラムを記述するだけで、自分
でプログラミングすることなくその機能を利用したソフトウェアを作成
することができる。
• データ収集の一つがAPIを使うこと。
• APIを使ってウェブサイトから標準的な形式のデータを簡単にダウン
ロードできる。
• APIを利用するときに、取得できるデータはさまざま。
• Yahoo!デベロッパーネットワークを利用して、多くの一般的なサイト
のAPIとデータをやりとりすることができる。
• APIが利用できないウェブサイトのデータを利用したいとき
• →Firefoxの拡張機能であるFirebugを利用する
• Firebugを使って「要素を調査」するとHTMLの情報を取得できる。
• HTMLドキュメントすべてにアクセスでき、これを利用して編集するこ
とができる。