SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
機械   の代わりに人間が 学習入門
~エンジニアが機械学習を学ぶには~

     2011/1/16
中谷 秀洋 (@shuyo / id:n_shuyo)
  サイボウズ・ラボ株式会社
専門外のエンジニアが
 機械学習を学ぶとき
気をつけておきたいこと
専門外のエンジニアが
 機械学習を学んで
  何が嬉しいの?
機械学習講座には3コース!
• ウハウハコース
 - ライブラリを使って即製します
 - 難しい機械学習の知識はOJTで!
• しっかりコース
 - あなたの分野にぴったりの本を読みます
   • 自然言語処理、データマイニング、画像処理、……
 - 即戦力を目指します!
• ガチンココース
 - PRML読みます
 - 論文を読める基礎力を身につけます!

詳しくは明日の朝刊の折り込みチラシにて
コース選びについて
  よくある質問
Q1. ガチンココースで
読む本は PRML なの?
年表で見る機械学習
     1946             モンテカルロ法                     PRML
     1958           カルマン・フィルター                    PRML
    1960s           隠れマルコフモデル                     PRML
    -1961         ニューラルネットワーク                     PRML
     1977            EM アルゴリズム                    PRML
     1982         SOM (自己組織マップ)                   PRML
     1984        CART (決定木の一手法)                   PRML
     1994          ICA (独立成分分析)                   PRML
     1995         サポートベクトルマシン                     PRML    Mahout
     1995              粒子フィルタ                     PRML
     2000              FP-Growth                          Mahout
     2001     アイテムベース協調フィルタリング                            Mahout
     2001            Random Forest                        Mahout
     2003     LDA (Latent Dirichlet Allocation)           Mahout
•   フルサイズの年表は http://d.hatena.ne.jp/n_shuyo/20110111/ml
Mahout と
かぶってない orz
PRML いらない?
1946             モンテカルロ法                     PRML
     1958           カルマン・フィルター                    PRML
    1960s           隠れマルコフモデル                     PRML
    -1961         ニューラルネットワーク                     PRML
     1977         書籍 EM アルゴリズム                    PRML
     1982         SOM (自己組織マップ)                   PRML
     1984        CART (決定木の一手法)                   PRML
     1994          ICA (独立成分分析)                   PRML
     1995         サポートベクトルマシン                     PRML    Mahout
     1995              粒子フィルタ                     PRML
     2000              FP-Growth                          Mahout
     2001     アイテムベース協調フィルタリング                            Mahout
     2001            Random Forest  論文                    Mahout
     2003     LDA (Latent Dirichlet Allocation)           Mahout
•   フルサイズの年表は http://d.hatena.ne.jp/n_shuyo/20110111/ml
このへんの論文
読めるようになるには
PRML 読むのが
  一番速い
Q2. 機械学習をマスター
 してないとライブラリも
   使いこなせない?
Mahout を使って
アプリを作ったとして
性能をあげたい!
• 機械学習はモデルとデータで決まる
 - よい結果には「よいモデル」と「よいデータ」
• モデルはあんまり選べない
 - ライブラリのサポート範囲から選ぶしか
 - 幅広く選びたかったらガチンココースへ!
「よいデータ」が必要
「よいデータ」って何?
「よいデータ」を用意するには?
• モデルに対する知識
 - このモデルにあうのはこういうデータ……とい
   う傾向がある
 - 機械学習の知識があると有利
• データ・問題(ドメイン)に対する知識
 - つまり業務知識
 - エンジニアの勝負しどころ!!
  • 機械学習の知識があってもなくても!
(例)言語判定
• テキストが何語で書かれたものかを判定
 - モデルは3-gram+ナイーブベイズ(シンプル♪)
 - http://code.google.com/p/language-detection/
• 当初、ペルシャ語の判定が全滅
 - 高頻度で使われる ‫¥( ی‬u06cc, Farsi yeh)がアラビア
   語の文字コード CP-1256 にないため、 ‫¥(ي‬u064a,
   Arabic yeh)で代用する対処法が広まっている
• 対策:データ内の ¥u06cc を ¥u064a に正規化

          こんにちは →            日本語
           Hello →            英語
つまり
勝負のポイントは
データのことを
どれだけ深く知っているか
機械学習の
知識が少ないなら
 なおさら!
Q3. 機械学習ってなんか
とっても勉強しにくい気が
するんだけど、自分だけ?
機械学習は若い
• 1950年頃、人工知能の要素技術として
 - 統計、確率、熱力学などなどなど
• 特に、ホットな技術のほとんどはここ 20年以
  内の成果




     Google Ngram Viewer にて “machine learning” を検索
(参考)数学の場合
• ユークリッドの「原論」から数えて 2600年
• 高校までに習うことの大半は 17世紀までに
  成立
 - 17世紀ヨーロッパでは、「小数」は大学の科目
 - 300年以上かけ、数学は「教科」として洗練

    17世紀   確率、微積分、指数対数、小数
    18世紀   統計、正規分布
    19世紀   ベクトル、行列
機械学習は用語もカオス
• (略)
  - 話しだすと、めっちゃ長くなるので。
中には使いやすいのもあるけど
• ロジスティック回帰
• SOM(自己組織化マップ)
 - 使いやすい=学習コスト低め
 - 実用性をあげるための努力
 - 全てを理解していなくてもある程度使えるよ
   う道具立てが揃っている
基本的には
機械学習は
勉強しにくくて当然
だから
ちょっとわかんなかったくらいで
   あきらめないでね♪
まとめ
機械学習を学習したいエンジニアへ
• 学習コースを正しく選びましょう
 - 目的目標とかけられるコストをてんびんに
• 機械学習がわかりにくいのは、そういうもん
 - 裏返せば「参入障壁が高い」と言うこと
 - 勉強してみてわかんないことがあったら、こうい
   う場でガンガン聞きましょう
• 「業務知識+機械学習」はマジ最強
 - エンジニアが機械学習を学ぶ値打ちはここに!
ところで
そもそも
機械学習って何?
機械学習って何なの?
• 日経ソフトウエア3月号(1/24発売)の特
  集「クラウド&スマートフォン時代の3大コア
  技術」にて「機械学習編」を書かせてもら
  いました
 - 機械学習とは?
 - どうしてそうなっているのか?
• 数式ゼロ、プログラムコード ゼロ
 - 高校生にもわかるように
ありがとうございました

Mais conteúdo relacionado

Destaque (6)

MCMCによる回帰分析@ベイズセミナー
MCMCによる回帰分析@ベイズセミナーMCMCによる回帰分析@ベイズセミナー
MCMCによる回帰分析@ベイズセミナー
 
Ml ch7
Ml ch7Ml ch7
Ml ch7
 
カルマンフィルタについて
カルマンフィルタについてカルマンフィルタについて
カルマンフィルタについて
 
状態空間モデルの実行方法と実行環境の比較
状態空間モデルの実行方法と実行環境の比較状態空間モデルの実行方法と実行環境の比較
状態空間モデルの実行方法と実行環境の比較
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 

Mais de Shuyo Nakatani

言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
Shuyo Nakatani
 
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
Shuyo Nakatani
 
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測
Shuyo Nakatani
 
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
Shuyo Nakatani
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
 

Mais de Shuyo Nakatani (20)

画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
 
Generative adversarial networks
Generative adversarial networksGenerative adversarial networks
Generative adversarial networks
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
 
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?
 
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRRとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPZipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLP
 
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
 
ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014
 
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測
 
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
 
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 

機械の代わりに人間が学習入門