Upload
shuyo-nakatani
View
19
Download
1
Embed Size (px)
DESCRIPTION
How do the engineers learn machine-learning?
Citation preview
機械の代わりに人間が学習入門
~エンジニアが機械学習を学ぶには~
2011/1/16
中谷 秀洋 (@shuyo / id:n_shuyo)
サイボウズ・ラボ株式会社
専門外のエンジニアが 機械学習を学ぶとき 気をつけておきたいこと
専門外のエンジニアが 機械学習を学んで 何が嬉しいの?
機械学習講座には3コース!
• ウハウハコース - ライブラリを使って即製します - 難しい機械学習の知識はOJTで!
• しっかりコース - あなたの分野にぴったりの本を読みます
• 自然言語処理、データマイニング、画像処理、……
- 即戦力を目指します!
• ガチンココース - PRML読みます - 論文を読める基礎力を身につけます!
詳しくは明日の朝刊の折り込みチラシにて
コース選びについて よくある質問
Q1. ガチンココースで 読む本は PRML なの?
年表で見る機械学習
• フルサイズの年表は http://d.hatena.ne.jp/n_shuyo/20110111/ml
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
Mahout と かぶってない orz
PRML いらない?
• フルサイズの年表は http://d.hatena.ne.jp/n_shuyo/20110111/ml
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
書籍
論文
このへんの論文 読めるようになるには
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大コア技術」にて「機械学習編」を書かせてもらいました - 機械学習とは?
- どうしてそうなっているのか?
• 数式ゼロ、プログラムコード ゼロ - 高校生にもわかるように
ありがとうございました