機械学習が注目された理由って、「データが増えたから」だけなん?
ルールを人が書くやり方と何が違うんかもはっきりしない
【疑問】ルールを書くAIから機械学習へ、なんで切り替わったん?スパムフィルタ・レコメンド・次元の呪い【G検定】
前提のおさらい。エキスパートシステムは専門家の知識を if-then のルールとして人が書いた。でも知識を聞き出して書くのが大変で(知識獲得のボトルネック)、行き詰まった
>>1
機械学習は、ルールを人が書く代わりに、データからコンピュータがパターンを学ぶ
ルールベース:説明しやすい。でも想定外のケースに弱く、ルールを増やすほど手直しが大変
機械学習:たくさんの例から学べる。でもデータが要るし、なぜその答えになったか説明しにくいことがある
>>3
注目されるようになったのは?
>>4
インターネットで大量のデータ(ビッグデータ)が集まるようになって、計算機も速くなった
学ぶための例が手に入るようになったのが大きい
分かりやすい例がスパムフィルタ
「スパムに出やすい単語」を人がリストにしても、送る側はすぐ言い回しを変える。実際に届いたメールとその判定から学ぶほうが追いつける
>>6
単語からどうやってスパムかどうか決めるん?
>>7
よく使われたのが、ベイズの定理を使うナイーブベイズ
数字の例。メールの20%がスパム、「当選」という単語がスパムの40%、ふつうのメールの1%に出てくるとすると
この割合をデータから数えるだけで、ルールを書かなくても判定できる
>>8
「ナイーブ」って何がナイーブなん?
>>9
単語どうしが互いに関係なく出てくる、と大胆に仮定するところ。本当はそうじゃないけど、計算が簡単で、スパムの判定ではそこそこうまくいく
レコメンデーションエンジンも同じ流れ
「この商品を買った人はこんな商品も買っています」は、人がルールを書くんじゃなくて、購入履歴のデータから見つける
>>1
翻訳も、文法のルールを人が書くルールベース機械翻訳から、大量の対訳の文から学ぶ統計的機械翻訳に移った
文章のデータから言葉の使われ方を統計的に学ぶのを、まとめて統計的自然言語処理と言う
>>3
データを増やせばいくらでもうまくいくん?
>>13
そうでもない。特徴(変数)の数が増えると、必要なデータが急に増える。これが次元の呪い
1つの変数を10区間に分けると、 個の変数では区間の組み合わせが
2変数なら100、10変数なら (100億)。全部のマスにデータを1件ずつ入れるだけでも100億件要る
>>14
変数を増やせば増やすほど、データがすかすかになるってことか
>>15
だから、どの特徴を使うかを選んだり、減らしたりするのが大事になる
管理人のひとこと
- 機械学習はルールを人が書く代わりにデータからパターンを学ぶ。ビッグデータと計算機の性能向上で注目された。ルールベースは説明しやすいが想定外に弱く、機械学習はデータが要り説明しにくいことがある。
- スパムフィルタはナイーブベイズで、スパム20%・単語の出現率40%と1%なら 。単語どうしが関係なく出ると仮定するのが「ナイーブ」。
- レコメンデーションエンジンは購入履歴から学ぶ。翻訳はルールベース機械翻訳から、対訳の文から学ぶ統計的機械翻訳へ(統計的自然言語処理)。
- 次元の呪い:変数を10区間ずつに分けると 個のマスができ、10変数で100億になる。