機械学習とは何か?
機械学習とは何か? 一言で言うと「今までと少し違うコンピューターの使い方」です。
- 面積 = 底辺 x 高さ ÷ 2
- カードの履歴データから不正使用データを見つけたい
- たくさんくるメールの中から迷惑メールを判別して削除したい
- カードの履歴データから不正使用データを見つけたい
- たくさんくるメールの中から迷惑メールを判別して削除したい
ベイズ的な考え方
ベイズ的な考え方をクイズ番組の最終問題にありそうな設定でお話します。
『さて最終問題です。客席に座っている100名の観客から1名を選んでください。選んだ方が広島出身ならあなたに100万円を差し上げます。選ぶ前に観客のみなさんに一つだけ質問することができます。質問を考える手がかりとして観客の皆様に事前に行ったアンケート結果をお渡しします。さあ強運と頭脳でチャンスをつかんでください。』
質問しないで運に任せると (事前確率)
アンケート情報によれば100名のうち10名が広島出身者、質問しないで運に任せて選ぶと当たる確率は10パーセント、くじ運わるいから厳しいか。。。
どんな質問をする? (尤度と事後確率)
質問を考えるためにアンケート情報をみているとこんなのを発見しました
- 広島出身者の90パーセントが和食派
おー!広島出身者の90パーセントが和食派、ということは「あなたは和食派ですか?」と聞いて手を上げた人から選べば当たる確率あがる! ん、、、、なんか違うか。。
これは『広島出身者が和食派である』確率と『和食派が広島出身者である』確率を混同している例ですね。
「広島出身者の90パーセントが和食派」からわかるのは『広島出身者が和食派である』確率が高いということ。
「あなたは和食派ですか?」という質問で当選確率があがるのは『和食派が広島出身者である』確率が高い場合です。
「あなたは和食派ですか?」と質問すると当選確率はあがるのか?
「あなたは和食派ですか?」の質問が有効かを判断するためには追加で情報が必要です。アンケートを読んでいるとその情報を発見。
- 他県出身者の90パーセントが和食派
広島県出身者も他県出身者も90パーセントが和食派、ということはこの質問をして挙手した人から選んでも確率は変わりません。図示するとこうなります。
*この質問に挙手する人は広島出身者の9名と他県出身者の81名で合計90名、ここから選んで広島出身者があたる確率は質問前と変わらず10パーセントです。
「あなたはカープファンですか?」で当選確率はあがるのか?
アンケートを調べているともうひとつ情報を発見しました。
カープファンの確率は広島出身者の方が高い、ということはこの質問は有効です。図示するとこうなります。
*この質問に挙手する人は広島出身者の7名と他県出身者の9名で合計16名、ここから選んで広島出身者があたる確率は約 44パーセント、この質問は正解率あげるのに有効です。
ベイズ的な考え方
事前確率
質問する前の正解確率10パーセント (100名中10名が広島県人)を事前確率といい、式ではこう表します。
- P(広島県人) = 10%
事後確率
質問した後の正解確率を事後確率といい、式ではこう表します。
尤度
広島出身者が和食派である確率、他県出身者が和食派である確率、広島県人がカープファンである確率、他県人がカープファンである確率を尤度といい、式ではこう表します。
- P(和食派|広島県人) = 90% 広島出身者の90パーセントが和食派
- P(和食派|他県人) = 90% 他県出身者の90パーセントが和食派
質問によって事後確率があがるのは1の確率が2の確率より高い場合です。
越境するITというタイトルについて
このブログのタイトルは「越境するIT」です。このタイトルにしたのは、ITの適用範囲がここ数年でどんどん拡大してこれまでカバーしていなかった場所に "越境して" 進出している印象を持ったからです。越境後の世界で必要となる新しいITリテラシーをこれから記す3つのエリアで語ってみたい、という思いを込めて「越境するIT」を選びました。
"越境の様子" を3つのエリアで表したのがこちらの図です。
それぞれ簡単に説明すると
データ ~構造化データから非構造化データへ~
これまでコンピューターは主に「構造化データ」を扱ってきました。ざっくりいうと "Excelのシートでまとめることができる、きちんと形式の決まったデータ" です。
しかし世の中見渡してみると「構造化データ」は全体の20%にすぎません。残りの80%は「非構造化データ」といわれるもの。ざっくりいうと つぶやき,メール内容、 画像、声など形式の決まっていないデータです。これを活用しない手はない、ということで非構造化データをコンピューターが処理できる形式にして活用しようというのが最近の流行です。
処理方法 ~演繹から帰納へ~
コンピューターはこれまで「論理的にやり方を説明できる」ものを実行することが得意でした。足し算、掛け算、会計の決算処理、その他色々。これらはそのやり方をプログラムとして作成し、それをコンピューターに実行させればOKです。この場合同じ入力に対して必ず同じ答えを出します。これを演繹的とか確定的とかいいます。
一方世の中を見渡すと私たちがやってる行動には「論理的にやり方を説明できない」けど無難にこなしているものが多くあります。人の顔を見て喜怒哀楽を判断したりするのも"判別の仕方を教えて"といわれても難しいですよね、もっと身近な例でいうと椅子っていろんな形のものがあるのにぱっと見て「あ、これは椅子だ」って判別できるのも"椅子を判別する論理的なロジックを教えて"といわれると言葉につまるのではないでしょうか?人間は「人の喜怒哀楽」、「これは椅子?」を過去の経験から学習して判断していると思われています。同じことをコンピューターにやらせようというのが『機械学習』といわれる分野です。機械学習では判断のロジックを埋め込むのではなく、判断の精度をあげる学習方法をロジックとして組み込んでいます。この方法だと常に正しい一定の答えを得るわけでは無く、人間と同じく間違えることもあります。経験から一般法則を導き出しておおよそ正しい結果を高い確率で出すことができるので帰納的といわれています。
目的 ~生産性から創造性へ~
コンピューターはこれまで主に生産性を上げるために使われてきました。
家計簿つけるのにそろばんと家計簿用のノートでやってると計算に時間かかるし間違いもする、検算してノートに書いて、でもやっぱり間違ってた!となると取消線でノート修正したり。これエクセルでやると段違いに効率が良くなり生産性が上がります。企業の決算にコンピューター使うのも基本的には同じ理由。
二つの確率
一言で確率と言いますが実は確率には2種類あります。
- サイコロで偶数が出る確率 50パーセント
- 太郎さんが大学に合格する確率 50パーセント
色んな判断力
判断力といってもいろんなのがあるので、独断で区分けしてみました
- スポーツの判断力
- ビジネスの判断力
- 経済の判断力
- 自然科学の判断力
スポーツの判断力
一瞬で次のアクションを決める判断力、意識で考えるのでなく自然に体が動く判断力。
古い話ですが「プロ野球日本シリーズ最終戦で満塁一打逆転のピンチ、マウンドには江夏豊、投球に入ってからバッターがスクイズをしてくる気配を感じカーブの握りのままボールをウェストしてスクイズを防いだ」江夏の21球として語り継がれるこのお話。この意思決定は論理的に考えるのではなく気配を察知して瞬時の対応している、スポースの意思決定の代表的な例。
ビジネスの判断力
ビジネスでは限られた時間で入手できる情報と担当者の過去の経験を元に意思決定が行われる。
ビジネスの世界では適切なタイミングで適切な判断を下すことが最も重要。「さーてこの新製品投入しようか、どうしようか?」と1年も考えていたらまわりの環境が変わってしまってその製品自体の魅力がなくなってしまう可能性もある、迅速な判断ってのがビジネスに求められること。データという客観的な情報と担当者の経験という主観的な情報をミックスして意思決定がなされます。
経済の判断
経済も限られた時間で入手できる情報と担当者の過去の経験を元に施作が選択されるのはビジネスと一緒。大きく異なるのは、ビジネスが自分の組織、会社が幸せになることを考えるのに対して、経済は経済というシステム全体の最適化を考えるものであること。
自然科学
自然科学の分野ではどんなに時間がかかろうと客観的な情報で論理的に証明できる真理を見つけるのがお作法。
コンピューターは因数分解が苦手
猫を見分けるコンピューター
【コンピューターが100桁の掛け算してもニュースにならないが、幼稚園児が100桁の掛け算したらニュースになる。幼稚園児が猫と犬をを見分けてもニュースにならないが、猫と犬を見分けるコンピューターは結構すごい】
なんででしょうか?
「100桁の掛け算」はやり方を説明できますね。
「犬とと猫の見分け方」やり方説明しろと言われると困ってしまいますね。
コンピューターは「100桁の掛け算」のようにやり方を説明できるものを実行するのは得意です。そのやり方をプログラムにしてコンピューターに実行させればOKです。
一方「犬とと猫の見分け方」をコンピューターにやらせようとしてもやり方がうまく説明できないのででプログラムにすることが難しいです。ためしに犬と猫の見分けを文書で説明しようとして下さい。難しいですよね。
でも最近「コンピューターが猫を認識した」って話題になってました。これはどうやってるんでしょう?
すごく大雑把に言うと、猫を認識するやり方をプログラムにするのでなく、コンピューターに猫の写真をすっごい枚数見せて「猫か? 猫じゃないか?」 をコンピューターに学ばせているんです。
コンピューターに猫の写真を何枚も見せて1枚ごとに「正解」、「不正解」をコンピューターに教えてやるとコンピューターがその結果を元に学習して「この特徴なら前回正解だったものと近いから猫」ってかんじでだんだん賢くなっていくんです。
これが最近はやりの機械学習といわれてるものです。
学習させるためにたくさんの写真の一枚一枚を猫、猫じゃない、とラベル付けしておいてコンピューターに教えてあげる、これが『教師有り学習』といわれるもの。でもすーごくたくさんの写真に一枚一枚、猫、猫じゃない、とラベル付けしてたら大変ですよね。正解を教えずにコンピューターにパターンを認識させるのが『教師無し学習』といわれてるものです。
この場合も学習の方法は人間がプログラムとして作る必要があります。
最近コンピューターの適用範囲が拡大して、この例のような使い方をされるケースも増えてきています。こんな時代だから今一度コンピューターに出来ることを見直していきたいなと思ってます。
書きながら勉強しているので未熟な部分もあると思いますが何卒ご容赦を。