オンライン学習
普段私たちが使っているオンラインショッピングですが、よりサービスを向上するために私たちユーザの行動をもとに機械学習が使われています。
例えば、特徴変数としては荷物の送り先、オファーした価格、選んだ品…などなど。
一方で目的変数はユーザがサービスを利用して買ったかどうかです。
これらの特徴変数と目的変数があれば例えばロジスティック回帰を用いて最急降下法でアップデートをしていくことでパラメータθを学習させていきます。
オンライン学習の場合、ある程度名の知れたWebサイトであればトレーニングセットを連続的なストリームのように入手することができるため、データを使い捨て感覚で用いることができ、オンライン学習アルゴリズムが非常に有効となります。
どうして機械学習を使う必要があるのか?と考えられるかたもいらっしゃると思います。その理由の一つとしては経済状況の変化です。
世の経済状況は常に変わっています。それに伴ってユーザの価格感応性も変化し、時には商品の購入を渋るといったこともあります。
また、ユーザの嗜好が変わり、求めている商品が変わってしまうといったこともあるかと思います。
そのような場合、オンライン学習のアルゴリズムはユーザの嗜好の変化や商品を買ってくれるユーザ層の変化に合わせて学習し続けることができます。
実際に機械学習を用いてやることは与えられた複数の特徴変数(ユーザの行動)\(x\)とパラメータ\(\theta\)を用いて商品を買ってくれるかどうかの条件付確率\(p(y=1|x;\theta)\)を求めたいということになります。
後はこの条件付確率\(p(y=1|x;\theta)\)に対してロジスティック回帰等を用いて学習してやればいいということですね。
これらのオンライン学習はユーザの行動をもとに買うかどうかの予測を立てるだけではなく、以前に学んだ協調フィルタリングシステムやリコメンデーションシステムにうまくつなげることができ、非常に応用力の高い分野となります。
データがたくさんあると様々な手法で機械学習を用いることができますね。
マップリデュース
さて、ここではまた大規模なデータを扱う場合の異なるアプローチ方法による機械学習を見ていきます。
言葉よりも図で見るほうが早いですね。大規模なトレーニングセットに対して複数台のパソコンを用いて計算を行っていきます。ここで行う計算は例えば最急降下法の和の計算です。
計算が終わると、”結果”のところにそれぞれの計算結果が集約されパラメータθのアップデータを行います。
これにより、パソコン3台を計算用として用いた場合、並列して計算させることで3倍のスピードアップにつながる可能性があります。
この手法はなんとGoogleの伝説的なエンジニアを含む二人が考案したアイデアだそうです。
実はパソコン一台でも複数のプロセッサを持つような場合であればそれらのコアに別々に計算をさせて並列化させることもできちゃうようです。
以上!
次へ:week11 OCR パイプランシステム(final)
- 投稿が見つかりません。
コメント