この記法では,「⁠確率分布の種類は確率変数によって表される」ということに注意する必要があります。ような記法とは異なります。確率分布であるための重要な条件が2つあります。確率の値は0以上1以下すべての取り得る値の確率の合計は1厳密には,事象や集合演算なども説明したほうがよいのですが,ここでは省略します。おなじみのサイコロの例に当てはめて確認してみましょう。その「確率分布」とします。取り得る値は1から6までの6通りです。言うけど,サイコロを振っても1の目がちょうど6回に1回出るとは限らないよなあ」と思ったことはありませんか?そのもっともな疑問に対し,「⁠無限回繰り返して平均すると,6回に1回出るんだよ」と説明され,一応納得しつつも「いやいや,サイコロを無限回とか振れないから!」と心の中で言い返したことはありませんか?実は統計的機械学習の最終目的は,まさにそういった「有限回しか試行できない中で,すべての目が同じ確率で出ると言ってもよいか」という問題を工学的に(つまり現実的に)解くことなのです。高校で確率をやったときにそのあたりの疑問で悩んだことのある人は,機械学習をとても楽しめると思います。同時確率と条件付き確率ここまで確率変数は1個でしたが,確率変数は複数個になる場合もあります。機械学習では,よほど簡単な例題でも複数の確率変数を持っていますので,複数個の確率変数を扱えるようになっておくことは必須です。先ほどと同じように,用語をさらっておきます。確率変数の個数は2個で説明しますが,3個以上でも同様です。書き,XとYの「同時分布」または「同時確率」と言います。書き,Yが与えられているときのXの「条件付き確率」と言います。確率を考える場合もあります。具体例を見ながら,この3つの分布がどういうものか説明します。いうモデルのミニミニ版を使いましょう。単語の並び方などは考慮せず,文章に単語が含まれているかどうかのみを考えて数値化します(含まれる=1,含まれない=0⁠)⁠。使用回数をカウントするモデル(term-frequency)もありますが,今回は「含まれるか,含まれないか」のみを考えています。このモデルで表現できる範囲は明らかに限られます。実現したいことが達成可能ならば,必要以上に複雑なモデルを考えないのは機械学習の鉄則です。このあたりのことは,前回のモデルの話も参照してください。それでは,モデルの構築は確率変数の設定から始めます。Xは「文章に“⁠プログラム⁠”という単語が含まれる⁠」⁠,Yは「文章に“⁠アプリケーション⁠”という単語が含まれる」を表す確率変数とします。本物の数字の方が説得力あるでしょうから,gihyo.jpのデベロッパステージの1560記事から各単語の出現確率を調べてみました。0.475上から「両方の単語が含まれる確率」「⁠“⁠プログラム⁠”のみ含まれる確率⁠」⁠,「⁠“⁠アプリケーション⁠”のみ含まれる確率」「⁠両方とも含まれない確率」となります。扱っている範囲はとても狭いですが,これも立派な「モデル」です。確率を考えてみましょう。p(X=1),つまり「文章に“⁠プログラム⁠”という単語が含まれる」確率を求めるには,“⁠アプリケーション⁠”も含む場合と含まない場合の両方を考えればいいので,次の式で求まります。p(X=0),つまり「文章に“⁠プログラム⁠”という単語が含まれない」確率も,“⁠アプリケーション⁠”を含む場合と含まない場合を加えて,次のように計算できます。足したら1になるはずなので,次の方法で求めることもできます。確率変数Xの「周辺確率」です。周辺確率も同様に求めることができます。演習問題にしますので,ぜひ確認してみてください。確率を求めてみましょう。「⁠“⁠プログラム⁠”という単語が含まれている文章に,“⁠アプリケーション⁠”が含まれる確率」です。満たしている確率のみ抜き出します。0.271上は「⁠“⁠プログラム⁠”が含まれ,かつ“⁠アプリケーション⁠”も含まれる確率⁠」⁠,下は「⁠“⁠プログラム⁠”が含まれるが,“⁠アプリケーション⁠”は含まれない確率」です。となり,「⁠すべての取り得る値の確率の合計は1」という大切な条件を満たしていません。割れば,足して1になる確率が得られます。場合の条件付き確率も求めておきましょう。0.734条件付き確率を用いると,「⁠“⁠プログラム⁠”を使っている文章より使っていない文章のほうが,“⁠アプリケーション⁠”が使われる可能性が高い」といった情報を確率で表現することができます。同様に求めることができます。こちらも演習問題としておきますので,試してみてください。ベイジアンフィルタ著者プロフィール中谷秀洋(なかたにしゅうよう)サイボウズ・ラボ(株)にてWebアプリの連携や自然言語処理を中心に研究開発を行いながら,英単語タイピングゲームiVocaをサービス提供している。参加した懇親会はいつもなぜかRESTとExcelの話になる。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。