37
機械の代わりに人間が学習入門 ~エンジニアが機械学習を学ぶには~ 2011/1/16 中谷 秀洋 (@shuyo / id:n_shuyo) サイボウズ・ラボ株式会社

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

Embed Size (px)

DESCRIPTION

How do the engineers learn machine-learning?

Citation preview

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

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

~エンジニアが機械学習を学ぶには~

2011/1/16

中谷 秀洋 (@shuyo / id:n_shuyo)

サイボウズ・ラボ株式会社

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

専門外のエンジニアが 機械学習を学ぶとき 気をつけておきたいこと

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

専門外のエンジニアが 機械学習を学んで 何が嬉しいの?

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

機械学習講座には3コース!

• ウハウハコース - ライブラリを使って即製します - 難しい機械学習の知識はOJTで!

• しっかりコース - あなたの分野にぴったりの本を読みます

• 自然言語処理、データマイニング、画像処理、……

- 即戦力を目指します!

• ガチンココース - PRML読みます - 論文を読める基礎力を身につけます!

詳しくは明日の朝刊の折り込みチラシにて

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

コース選びについて よくある質問

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

Q1. ガチンココースで 読む本は PRML なの?

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

年表で見る機械学習

• フルサイズの年表は 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

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

Mahout と かぶってない orz

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

PRML いらない?

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

• フルサイズの年表は 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

書籍

論文

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

このへんの論文 読めるようになるには

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

PRML 読むのが 一番速い

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

Q2. 機械学習をマスターしてないとライブラリも 使いこなせない?

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

Mahout を使って アプリを作ったとして

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

性能をあげたい!

• 機械学習はモデルとデータで決まる

- よい結果には「よいモデル」と「よいデータ」

• モデルはあんまり選べない

- ライブラリのサポート範囲から選ぶしか

- 幅広く選びたかったらガチンココースへ!

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

「よいデータ」が必要

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

「よいデータ」って何?

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

「よいデータ」を用意するには?

• モデルに対する知識 - このモデルにあうのはこういうデータ……という傾向がある

- 機械学習の知識があると有利

• データ・問題(ドメイン)に対する知識 - つまり業務知識

- エンジニアの勝負しどころ!! • 機械学習の知識があってもなくても!

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

(例)言語判定

• テキストが何語で書かれたものかを判定 - モデルは3-gram+ナイーブベイズ(シンプル♪)

- http://code.google.com/p/language-detection/

• 当初、ペルシャ語の判定が全滅 - 高頻度で使われる ی (¥u06cc, Farsi yeh)がアラビア語の文字コード CP-1256 にないため、 ي(¥u064a, Arabic yeh)で代用する対処法が広まっている

• 対策:データ内の ¥u06cc を ¥u064a に正規化

こんにちは Hello

→ →

日本語 英語

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

つまり 勝負のポイントは

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

データのことを どれだけ深く知っているか

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

機械学習の 知識が少ないなら なおさら!

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

Q3. 機械学習ってなんかとっても勉強しにくい気がするんだけど、自分だけ?

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

機械学習は若い

• 1950年頃、人工知能の要素技術として - 統計、確率、熱力学などなどなど

• 特に、ホットな技術のほとんどはここ 20年以内の成果

Google Ngram Viewer にて “machine learning” を検索

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

(参考)数学の場合

• ユークリッドの「原論」から数えて 2600年

• 高校までに習うことの大半は 17世紀までに成立

- 17世紀ヨーロッパでは、「小数」は大学の科目

- 300年以上かけ、数学は「教科」として洗練

17世紀 確率、微積分、指数対数、小数

18世紀 統計、正規分布

19世紀 ベクトル、行列

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

機械学習は用語もカオス

• (略)

- 話しだすと、めっちゃ長くなるので。

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

中には使いやすいのもあるけど

• ロジスティック回帰

• SOM(自己組織化マップ)

- 使いやすい=学習コスト低め

- 実用性をあげるための努力

- 全てを理解していなくてもある程度使えるよう道具立てが揃っている

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

基本的には

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

機械学習は 勉強しにくくて当然

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

だから

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

ちょっとわかんなかったくらいで あきらめないでね♪

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

まとめ

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

機械学習を学習したいエンジニアへ

• 学習コースを正しく選びましょう

- 目的目標とかけられるコストをてんびんに

• 機械学習がわかりにくいのは、そういうもん

- 裏返せば「参入障壁が高い」と言うこと

- 勉強してみてわかんないことがあったら、こういう場でガンガン聞きましょう

• 「業務知識+機械学習」はマジ最強

- エンジニアが機械学習を学ぶ値打ちはここに!

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

ところで

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

そもそも 機械学習って何?

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

機械学習って何なの?

• 日経ソフトウエア3月号(1/24発売)の特集「クラウド&スマートフォン時代の3大コア技術」にて「機械学習編」を書かせてもらいました - 機械学習とは?

- どうしてそうなっているのか?

• 数式ゼロ、プログラムコード ゼロ - 高校生にもわかるように

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

ありがとうございました