いまさら聞けない
機械学習のキホン
∼ 初歩から事例、はじめ方 ∼
2016年1月
AITCオープンラボ
第1回 機械学習勉強会
@dsuket
About me
高岡 大介
スタートアップCTO、技術顧問、技術相談など
• オープンウェブ・テクノロジー株式会社
• ピースミール・テクノロジー株式会社
• エディプレックス株式会社
AITC運営委員/オープンラボ リーダー
その他色々 dsuket
TechFeed
https://techfeed.io
ITテクノロジー専門のキュレーションサービス
What’s TechFeed ?
興味のあるトピックを選択すると、毎日そのトピック
に関連するニュースをハイライトでお届けします。
もちろん、

機械学習トピックもあります!
techfeed.io
Register now!!
諸注意
• このセッションは初心者による初心者のための

セッションです。
• 安心して下さい。数式は出てきませんよ。
• ガチな人は生暖かくコメント頂けると幸いです
• なるべく多くの文献をあたるようにしていますが、
専門では無いため、誤っている可能性があります。
ぜひ突っ込んで下さい。
Agenda
機械学習のキホン
• 機械学習の定義
• 事例・人工知能との関係
機械学習のはじめ方
• 基本的なフロー
• データ/アルゴリズム/評価
機械学習のキホン
機械学習の定義など
–Wikipedia
機械学習(machine learning)とは、人工知
能における研究課題の一つで、人間が自然に行っ
ている学習能力と同様の機能をコンピュータで
実現しようとする技術・手法のことである。 [1]
機械学習とは?
プログラム
機械学習の定義
コンピュータプログラムが経験によって自動的に改善していくには
どうしたらいいかという問題
コンピュータプログラムが、タスクTとパフォーマンス測定Pにおい
て経験Eから学習するとは、タスクTにおけるその性能をPによって
評価した際に、経験Eによってそれが改善されている場合である [2]
タスクT
経験E
学習
↑改善
パフォーマンス測定Pによる評価
@tommmitchell
- Tom M Mitchell, 1998
つまり、機械学習とは
パフォーマンス測定Pに対する

判断(タスクT)を一般化するため

データ(経験E)からモデルを訓練すること [3]
モデル
判断
データ
学習
↑改善
パフォーマンス測定Pによる評価
何が嬉しいの?
過去のデータ(経験E)から、パフォーマンス性能P
を高めたタスクTを実行することにより、未知のデー
タの結果を予測する。
過去のデータから

未来が予測できる!!
身近な事例
日常でいろいろな場面で使われている [4]
• SPAMメール判定
• クレジットカードの不正検知
• ローン審査
• デジカメの顔検出
• 商品レコメンデーション
• 株式取引
• 広告配信
• 人材マッチング
• etc…
今ブームなの?
第3次AI(人工知能)ブーム真っ最中
それに伴って機械学習の分野も注目を浴びている
Machine

Learning

(英語)
機械学習

(日本語)
2012年頃から増加Google trends
2015年に急増
なぜ今またブームなのか
• ビッグデータ + クラウド化
• データが大量増えた
• コンピューターの能力が大幅に向上し、安価に
• エコシステムの成長
• 環境が整う、ライブラリが充実する、事例が増える、資料が
増える、の好循環でエコシステムが成長
• 第3次AIブーム
• Deep Learningによるインパクト
人工知能との関係
• 機械学習はもともとは人工知能の一分野として始まる[5]
• ニューラル・ネットワーク(NN)
• 論理推論(エキスパートシステム)
• 現在では、「統計的」機械学習が主流
• Deep Learningの登場でまたNNに
• データマイニングとの違い
• データマイニングは、未知のパターンや未知の知識を見つけ出す。[6]
• 機械学習は、既知のパターンや知識を再生成した上で自動的に他のデータに適用し、
その結果を自動的に意思決定や行動に役立てるために使われる。
• 現在はデータ解析技術一般を含むことも多い
パターン認識は工学を起源とするが、機械学習は計算機科学の分野から生じている。
しかし、これらは同じ分野を2つの側面から見たものと見なせる。 [7]
data mining Venn diagram [8]
機械学習のキホン: まとめ
• 機械学習とは、過去のデータからモデルを訓練し、
未来を予測する。
• 日常でも使われ、応用が広がっている。
• 機械学習は総合格闘技 [9]
機械学習のはじめ方
基本的なフロー
アルゴリズム/手法の種類と評価
基本的なフロー
1. データの準備
• 特徴選択/正規化/欠損値/次元削除
2. アルゴリズムの選択
• 種類については後述
3. モデルの構築
• 訓練データ/検証データの用意
• ハイパーパラメータの最適化
4. 評価
• 正答率/適合率(精度)/再現率/F値
一般的な教師あり学習の手順
コレを繰り返す
データの準備
• 特徴(属性/素性)選択
• 何を対象とするかを決める
• 醜いアヒルの子の定理 / 次元の呪い
• 数値データに変換
• カテゴリを数値に
• 欠損値の削除、置換、補完
• 正規化(値を える)
• 次元削除
[10]
機械学習アルゴリズム
教師あり学習
事前に与えられたデータを「例題(=先生からの助言)」と
みなして、それをガイドに学習を行う。
予測を行うときに使う。機械学習というと大体これ。
教師なし学習
「出力すべきもの」があらかじめ決まっていない。
データの背後に存在する本質的な構造を抽出するために用い
られる
教師あり学習
分類
黒か白か?どのカテゴリか?など、どれかに分類する [11]
出力がラベル(予測対象が離散[12])
回帰
明日の気温、予想株価、など数値を予測する
出力が数値(予測対象が連続)
教師あり学習: 分類
線形分類機
• フィッシャーの線形判別分析
• ロジスティック回帰
• ナイーブベイズ
• 単純パーセプトロン
• 線形サポートベクターマシン
教師あり学習: 分類
非線形
• k近傍点
• 決定木
• ニューラルネットワーク
• ベイジアンネットワーク
• サポートベクターマシン
※識別関数、生成モデル、識別モデルという
分類もあるが割愛。参考資料[7][13][14]を参照
教師あり学習: 回帰
線形回帰
• 最小二乗法
• ベイズ線形回帰
非線形
• k近傍点
• ランダムフォレスト
• ニューラルネットワーク
• サポートベクター回帰
教師なし学習
• クラスタリング
• k-means
• 階層的クラスタリング
• 頻出パターンマイニング
• アソシエーション分析(相関ルール)
閑話
分類(Classification)とクラスタリングの違い [15]
• 分類(Classification)
• 有用な分類法を再現すること
• クラスタリング(Clustering)
• 既知の分類法では見えて来ないことを発見しよう
とすること
アルゴリズム選択時の注意
データ特性などに適したアルゴリズムを選択すること
データの分布を前提に置いているものもある。
[10]
ノーフリーランチ定理
コスト関数の極値を探索するあらゆるアルゴリズムは、全ての
可能なコスト関数に適用した結果を平均すると同じ性能となる
あらゆる問題で性能の良い万能な学習アルゴリズム
は存在しない
— Wolpert and Macready、1995年
モデルの構築
ここまでくれば、モデル構築はライブラリ使えば簡単
が、検証データを準備しておく必要がある[10][16]
• ホールドアウト法(8:2とかで分ける)
• クロスバリデーション(交差検証)
過学習(Over fitting)を避ける
過学習
over fittingunder fitting
[17]
訓練データに過剰に適合してしまい、汎化性能が低く
ならないようにする。
ハイパーパラメータの最適化
ハイパーパラメータ
• 事前確率を決めるパラメータやモデル全体に影響を与えるパラ
メータ[18] 確率モデルの分布に影響
• 学習したモデルのパラメータと区別するため使われる
ハイパーパラメータの最適化
• 結果に大きな影響があるため、最適な値を求める
• 指定した探索範囲の値から最も適切なものを選ぶことが多い。
• グリッドサーチなど
評価
分類
• 精度(正解率/データ数)
• 適合率/再現率/F値
• 真陽性率と偽陽性率は

トレードオフ
回帰
• 平均二乗誤差
予測値
陽性 陰性
正解
陽性 真陽性 偽陰性
陰性 偽陽性 真陰性
[10][16]
機械学習のはじめ方: まとめ
• まずは教師あり学習の分類からはじめてみよう
• 特徴選択が重要
• 検証データを忘れずに
• 評価もちゃんとやりましょう
理論を完全に理解することは難しいですが、

勉強しやすい環境が整ってきました。
ライブラリを使うだけなら簡単です。
機械学習で遊んでみましょう!
全体のまとめ
参考書籍1
入門向けの概要 Pythonサンプルコード付
参考書籍2
Rによる入門 Pythonによる実装
参考書籍3
輪読やってます
いわゆるビショップ本

またはPRML
参考資料
[1] 機械学習 - Wikipedia
[2] 機械学習とは何か? ‒ 機械学習の定義と使える言い回し
[3] R & Machine Leaning
[4] 日常にある機械学習の応用例
[5] 機械学習小史
[6] 機械学習とは? ¦ SAS
[7] パターン認識と機械学習 上
[8] Looking backwards, looking forwards: SAS, data mining, and machine learning
[9] 機械学習の理論と実践
[10] 機械学習によるデータ分析まわりのお話
[11] 教師あり学習
[12] 機械学習 分類
[13] 「機械学習とは何ぞや」をゆるーく説明してみる
[14] テキストマイニングのための機械学習超入門 二夜目 パーセプトロン
[15] クラスタリングとクラス分類
[16] 機械学習を用いた予測モデル構築・評価
[17] General regression and over fitting
[18] Hyperparameter
Images
• http://www.thebluediamondgallery.com/tablet/a/artificial-
intelligence.html
• https://www.flickr.com/photos/manoftaste-de/9483602817
• https://www.flickr.com/photos/unavoidablegrain/8012918279
• https://en.wikipedia.org/wiki/Support_vector_machine

いまさら聞けない機械学習のキホン