機械学習の基礎
日本アイ・ビー・エム TSDL ワトソン開発 熊谷賢
• この資料の掲載内容は私自身の見解であり、必ずしもIBMの立場、
戦略、意見を代表するものではありません
自己紹介 熊谷賢(くまがいけん)
• 経歴
• 2006 年日本アイ・ビー・エム入社
• IBM Rational ClearCase、Rational Team Concert の開発
• 2014 年ワトソン製品開発へ異動
• IBM Watson Knowledge Studio 開発
• スキルエリア
• 自然言語処理、機械学習、ソフトウェア開発ツール
• 趣味
• 記事執筆(IBM developerWorks Contributing Author)
この資料の目標
• 機械学習特有の用語を理解する
• 機械学習の全体像を理解する
• 詳細は今後の自習で補う
目次
• 機械学習とは
• 問題の区分
• 分類問題
• 数学的背景
• 自然言語処理との関連
• 周辺トピック
• 自習に向けてのリソース
機械学習とは
• 学習と予測の2フェーズ
• 学習(learn)
• 訓練データに内在する特徴を捉えること
• 捉えた特徴を表現したものをモデルと呼ぶことがある
• 予測(predict)
• モデルを用いて訓練データ以外のデータの性質を予測すること
fish image
non fish image
学習
モデル
予測
which?
機械学習で扱う問題の区分
• 教師あり学習(supervised learning)
• 入力とそれに対応するべき出力(教師データ)が訓練データに含まれる
• 分類問題(例:画像分類)
• 出力が離散値の場合
• 回帰問題 (例:株価予測)
• 出力が連続値の場合
• 教師なし学習(unsupervised learning)
• 入力のみが訓練データに含まれる手法
• (例)クラスタリング、word embedding
• 強化学習(reinforcement learning)
• エージェントが行動を選択して環境から報酬を受け取り、報酬を最大化するような
方策を学習する(例:自動運転、将棋)
定義の引用元
https://ja.wikipedia.org/wiki/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92
例)二クラス分類~Toy problem(fish or not)~
• 画像を符号化 (配列表現、値は各pixel の輝度)し、
pixel ごとに重みを定義
• 入力と重みから、尤もらしさを求める(e.g. サンプル画像
Aが魚である尤度は0.7)
• 重みを更新
• 分離面を得る
fish image
non fish
image
学習
[1, 1, 0, ...
1]
[0, 1, 1, ...
0]
モデル
符号画像
入
力
出力
2クラス分類の入力、重み、出力
重み
学習アルゴリズムの数学的背景
• ロジスティック回帰(logistic regression)
• 入力とパラメータの線形和をロジスティック関数(シグモイド関数)で0~1 の値へ写像
• 目的関数(objective function)
• 全ての学習サンプルの正解(不正解)らしさの積事象の対数をとって符号を反転
• 目的関数が最小になるように重みを更新する(最尤推定)
• ロジスティック関数を使うことで目的関数の凸性(目的関数に一意の最小値が存在)を保証
• 確率的勾配降下法(Stochastic gradient descent)
• 1つのサンプルを処理するごとに重みを更新する
画像の引用元
https://en.wikipedia.org/wiki/Sigmoid_function
目的関数は,学習サンプルに対
して分類間違いが多いと大きくな
り,少ないと小さくなります
ロジスティック関数(シグモイド関数)
例)多クラス分類~mnist database~
• 入力画像の符号化、重み定義は二クラス分類と同じ
• 入力と重みから、各数字である尤もらしさを求める
• 尤度の計算は出力の和が1になるように写像(ソフトマックス関数)
• 重みを更新
• クラス数に等しい数の分離面を得る(この場合10)
• 各分離面は各数字かそうでないかの二クラス分類器(one-vs-rest)
mnist database
http://yann.lecun.com/exdb/mnist/
手書きされた0~9の数字画像
1
0
学習
[1, 0, 1, ...
1]
[0, 0, 1, ...
0]
モデル
符号画像
[0, 1, 1, ... 0]
×10
2
…… …
…
画像の引用元
https://www.tensorflow.org/tutorials/estimators/cnn
入
力
多クラス分類の入力、重み、出力
出力
重み
分離面を図のように視覚的に
表現できない場合もあります
自然言語処理との関連
• 入力に自然文を受け取るタスク全般
• (例)品詞タグ付け、係り受け解析、固有表現抽出
• 1つ1つの単語を異なる符合に対応付ける方式(one-hot vector)
• 次元数の多い疎なベクトル(ほとんど0 で数次元だけ1)
• 2つの単語が似ているかどうか、ベクトルだけからでは判定できない
• 近年は単語の符号化としてword embedding を用いる例が多くなってき
ている。
King
Queen
[0, 1, .0, 0, 0, ..., 0] 次元数は文書集合内での単
語の出現回数(一般的には
数万~数十万)[0, 0, .0, 1, 0, ..., 0]
単語のone-hot vector 表現
Word Embedding
• 似た単語が近くなるように、単語を実数値からなるベクトルに変換する手法
の総称
• ほとんどの手法は教師なし学習。大量のテキストを入力としてベクトルを生成する
• Tomas Mikolov 氏の開発した word2vec が広く使われている
• 厳密には、word2vec はアルゴリズムの名前ではなく実装の名前
• アルゴリズムは、CBOW(continuous bag of words) と SGNS(skip gram with negative
sampling) の異なる2種類
• (ディープ)ニューラルネットワークの入力として word2vec で作ったベクトル
を用いると、様々な自然言語処理タスクで精度が向上したという報告あり
[0.2, -0.1, 0.2, ..., -0.5]
[0.3, 0.1, -0.3, ..., 0.2] • King とQueenの類似度は2つの
ベクトルの cosine 類似度で測ら
れる
• 一般に次元数は数百次元が多い
単語のword embedding 表現
King
Queen
ニューラルネットワーク
• ロジスティック回帰モデルを多層に並べたもの
(『パターン認識と機械学習』 p.225)
• 層と層の矢印に重みが対応
• ニューラルネットワークは全体として重みに対
して非線形
• (c.f.)ロジスティック回帰は重みに対して線形
• 出力層の数だけ分類器ができる
• 深層学習に用いられるディープニューラルネッ
トワークは中間層を多層にしたもの
脳機能に見られるいくつかの特性を計算機上の
シミュレーションによって表現することを目指した
数学モデル(wikipedia)
図は以下から引用:
https://en.wikipedia.org/wiki/Artificial_neural_network#/media/File:Colored_neural_network.svg
例)固有表現抽出(Named entity extraction)
• 入力テキストの符号化し、重み定義
• 入力と重みから、各ラベル(e.g. PERSON, LOCATION)である尤もらしさを求める
• 重みを更新
• クラス数に等しい数の分離面を得る
• 各分離面は各ラベルかそうでないかの2クラス分類器
PERSON
OTHE
R
学習
モデル
符号テキスト
Bob
works
at
company
LOCATION
×クラス数
[0.01, -0.3, -0.2, ..., 0.7]
[0.3, 0.1, -0.3, ..., 0.2]
[-0.1, 0.6, 0.01, ..., -0.3]
[0.2, -0.6, 0.2, ..., 0.2]
a [0.1, 0.3, -0.03, ..., 0.01]
機械学習を使った製品・サービスの理解
• 機械学習を使っていてもそうでなくても、アプリケーションの構成は同じ
• 入力、処理、出力
• 処理に比べ、入力・出力の理解は容易
• 例)入力:0~9の画像 →出力: 0~9のラベル
• 例)入力:テキスト→ 出力:person 、location のラベル
• “機械学習を使った製品・サービス”という文言を見たら、まず入力、出力を確認
• 製品AとBの機械学習の使用に関する違いは何か?
アプリ 入力 処理 出力
ログ解析 ログ フィルタ、逆順ソート、e.g. ログ
ML(学習) 数字画像(+教
師データ)
符号化、重みの更新 モデル
ML(予測) 数字画像 符号化、画像分類 ラベル
入力・処理・出力の例
学習データの作成
• 論文やコンペは決まったデータセットでアルゴリズムの良し悪しを議論する
• ビジネスの現場ではそもそもデータセットがないことも多い
• 手順
• 正解クラスの設計
• 識別したいものを定義する
• 例)PERSON, LOCATION, ORGANIZATION, e.g.
• 各クラスについての説明書き(アノテーションガイドライン)
• アノテーションの作成(by 一人または複数人)
• 判断に迷う局面が多々出てくる
• “Bob works at a company”. (“company” -> LOCATION? ORGANIZATION?)
• (複数人の場合)意見が食い違う
質の良い教師ありデータを作成するのはコストがかかります
評価指標~f-measure~
• 正解データ・予測結果の4象限
• 混同しやすい2つ
• FP: positive 判定したものがfalse(間違い)
• FN:negative 判定したものがfalse(間違い)
• 適合率(precision) = TP / (TP + FP)
• 再現率(recall) = TP / (TP + FN)
• F値(F-measure) = 2 * precision * recall / (recall + precision)
• 値だけでなくサンプル数も確認する
• TP, FP, FN の割合が同じなら、1/10 の数でも同じF 値になる
正解データ
P N
予測
結果
P TP FP
N FN TN
(表)正解データ・予測の四象限
予測
TP TP FP FN TP TN TP TN TP FN
正解
TP FP FN precision recall F-measure
5 1 2 0.83 0.71 0.77
の判定
(例)判定結果とf-measure
自習用のリソース紹介
• 書籍
• 『深層学習』 機械学習プロフェッショナルシリーズ
• 『言語処理のための機械学習入門』 コロナ社
• 『パターン認識と機械学習』 シュプリンガージャパン
• サイト群
• SlideShare:https://www.slideshare.net/
• Qiita:https://qiita.com/
• Machine learning yearning (Andrew Ng):http://www.mlyearning.org/
• Coursera: https://ja.coursera.org/
• 実装練習するためのデータセット群
• mnist database: http://yann.lecun.com/exdb/mnist/
• Kaggle: https://www.kaggle.com/
• 最新情報キャッチアップ
• Arxiv (アーカイブ):https://arxiv.org/
• Twitter:岡野原氏:https://twitter.com/hillbig
まとめ
• 機械学習特有の用語を理解する
• 学習、予測
• 学習フェーズは入力の符号化、重みの定義、分類器を作るというステップ
• 教師あり(分類、回帰)、教師なし
• 分類問題(2クラス、多クラス)
• 画像、テキストなど入力の種類に応じた符号化の方法がある
• 多クラス分類は2クラス分類器を複数用意することで実現
• 数学的基礎(目的関数、ロジスティック回帰 e.g.)
• 目的関数を最小化するように重みは更新される
• 自然言語処理との関連(word embedding、固有表現抽出)
• ニューラルネットワーク
• 機械学習の全体像を理解する
• 入力、出力の理解(それから処理の詳細)
• データセットの作成、
• 評価指標
• 詳細は今後の自習で補う
• 自習用リソース紹介
End

機械学習の基礎

  • 1.
  • 2.
  • 3.
    自己紹介 熊谷賢(くまがいけん) • 経歴 •2006 年日本アイ・ビー・エム入社 • IBM Rational ClearCase、Rational Team Concert の開発 • 2014 年ワトソン製品開発へ異動 • IBM Watson Knowledge Studio 開発 • スキルエリア • 自然言語処理、機械学習、ソフトウェア開発ツール • 趣味 • 記事執筆(IBM developerWorks Contributing Author)
  • 4.
  • 5.
    目次 • 機械学習とは • 問題の区分 •分類問題 • 数学的背景 • 自然言語処理との関連 • 周辺トピック • 自習に向けてのリソース
  • 6.
    機械学習とは • 学習と予測の2フェーズ • 学習(learn) •訓練データに内在する特徴を捉えること • 捉えた特徴を表現したものをモデルと呼ぶことがある • 予測(predict) • モデルを用いて訓練データ以外のデータの性質を予測すること fish image non fish image 学習 モデル 予測 which?
  • 7.
    機械学習で扱う問題の区分 • 教師あり学習(supervised learning) •入力とそれに対応するべき出力(教師データ)が訓練データに含まれる • 分類問題(例:画像分類) • 出力が離散値の場合 • 回帰問題 (例:株価予測) • 出力が連続値の場合 • 教師なし学習(unsupervised learning) • 入力のみが訓練データに含まれる手法 • (例)クラスタリング、word embedding • 強化学習(reinforcement learning) • エージェントが行動を選択して環境から報酬を受け取り、報酬を最大化するような 方策を学習する(例:自動運転、将棋) 定義の引用元 https://ja.wikipedia.org/wiki/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92
  • 8.
    例)二クラス分類~Toy problem(fish ornot)~ • 画像を符号化 (配列表現、値は各pixel の輝度)し、 pixel ごとに重みを定義 • 入力と重みから、尤もらしさを求める(e.g. サンプル画像 Aが魚である尤度は0.7) • 重みを更新 • 分離面を得る fish image non fish image 学習 [1, 1, 0, ... 1] [0, 1, 1, ... 0] モデル 符号画像 入 力 出力 2クラス分類の入力、重み、出力 重み
  • 9.
    学習アルゴリズムの数学的背景 • ロジスティック回帰(logistic regression) •入力とパラメータの線形和をロジスティック関数(シグモイド関数)で0~1 の値へ写像 • 目的関数(objective function) • 全ての学習サンプルの正解(不正解)らしさの積事象の対数をとって符号を反転 • 目的関数が最小になるように重みを更新する(最尤推定) • ロジスティック関数を使うことで目的関数の凸性(目的関数に一意の最小値が存在)を保証 • 確率的勾配降下法(Stochastic gradient descent) • 1つのサンプルを処理するごとに重みを更新する 画像の引用元 https://en.wikipedia.org/wiki/Sigmoid_function 目的関数は,学習サンプルに対 して分類間違いが多いと大きくな り,少ないと小さくなります ロジスティック関数(シグモイド関数)
  • 10.
    例)多クラス分類~mnist database~ • 入力画像の符号化、重み定義は二クラス分類と同じ •入力と重みから、各数字である尤もらしさを求める • 尤度の計算は出力の和が1になるように写像(ソフトマックス関数) • 重みを更新 • クラス数に等しい数の分離面を得る(この場合10) • 各分離面は各数字かそうでないかの二クラス分類器(one-vs-rest) mnist database http://yann.lecun.com/exdb/mnist/ 手書きされた0~9の数字画像 1 0 学習 [1, 0, 1, ... 1] [0, 0, 1, ... 0] モデル 符号画像 [0, 1, 1, ... 0] ×10 2 …… … … 画像の引用元 https://www.tensorflow.org/tutorials/estimators/cnn 入 力 多クラス分類の入力、重み、出力 出力 重み 分離面を図のように視覚的に 表現できない場合もあります
  • 11.
    自然言語処理との関連 • 入力に自然文を受け取るタスク全般 • (例)品詞タグ付け、係り受け解析、固有表現抽出 •1つ1つの単語を異なる符合に対応付ける方式(one-hot vector) • 次元数の多い疎なベクトル(ほとんど0 で数次元だけ1) • 2つの単語が似ているかどうか、ベクトルだけからでは判定できない • 近年は単語の符号化としてword embedding を用いる例が多くなってき ている。 King Queen [0, 1, .0, 0, 0, ..., 0] 次元数は文書集合内での単 語の出現回数(一般的には 数万~数十万)[0, 0, .0, 1, 0, ..., 0] 単語のone-hot vector 表現
  • 12.
    Word Embedding • 似た単語が近くなるように、単語を実数値からなるベクトルに変換する手法 の総称 •ほとんどの手法は教師なし学習。大量のテキストを入力としてベクトルを生成する • Tomas Mikolov 氏の開発した word2vec が広く使われている • 厳密には、word2vec はアルゴリズムの名前ではなく実装の名前 • アルゴリズムは、CBOW(continuous bag of words) と SGNS(skip gram with negative sampling) の異なる2種類 • (ディープ)ニューラルネットワークの入力として word2vec で作ったベクトル を用いると、様々な自然言語処理タスクで精度が向上したという報告あり [0.2, -0.1, 0.2, ..., -0.5] [0.3, 0.1, -0.3, ..., 0.2] • King とQueenの類似度は2つの ベクトルの cosine 類似度で測ら れる • 一般に次元数は数百次元が多い 単語のword embedding 表現 King Queen
  • 13.
    ニューラルネットワーク • ロジスティック回帰モデルを多層に並べたもの (『パターン認識と機械学習』 p.225) •層と層の矢印に重みが対応 • ニューラルネットワークは全体として重みに対 して非線形 • (c.f.)ロジスティック回帰は重みに対して線形 • 出力層の数だけ分類器ができる • 深層学習に用いられるディープニューラルネッ トワークは中間層を多層にしたもの 脳機能に見られるいくつかの特性を計算機上の シミュレーションによって表現することを目指した 数学モデル(wikipedia) 図は以下から引用: https://en.wikipedia.org/wiki/Artificial_neural_network#/media/File:Colored_neural_network.svg
  • 14.
    例)固有表現抽出(Named entity extraction) •入力テキストの符号化し、重み定義 • 入力と重みから、各ラベル(e.g. PERSON, LOCATION)である尤もらしさを求める • 重みを更新 • クラス数に等しい数の分離面を得る • 各分離面は各ラベルかそうでないかの2クラス分類器 PERSON OTHE R 学習 モデル 符号テキスト Bob works at company LOCATION ×クラス数 [0.01, -0.3, -0.2, ..., 0.7] [0.3, 0.1, -0.3, ..., 0.2] [-0.1, 0.6, 0.01, ..., -0.3] [0.2, -0.6, 0.2, ..., 0.2] a [0.1, 0.3, -0.03, ..., 0.01]
  • 15.
    機械学習を使った製品・サービスの理解 • 機械学習を使っていてもそうでなくても、アプリケーションの構成は同じ • 入力、処理、出力 •処理に比べ、入力・出力の理解は容易 • 例)入力:0~9の画像 →出力: 0~9のラベル • 例)入力:テキスト→ 出力:person 、location のラベル • “機械学習を使った製品・サービス”という文言を見たら、まず入力、出力を確認 • 製品AとBの機械学習の使用に関する違いは何か? アプリ 入力 処理 出力 ログ解析 ログ フィルタ、逆順ソート、e.g. ログ ML(学習) 数字画像(+教 師データ) 符号化、重みの更新 モデル ML(予測) 数字画像 符号化、画像分類 ラベル 入力・処理・出力の例
  • 16.
    学習データの作成 • 論文やコンペは決まったデータセットでアルゴリズムの良し悪しを議論する • ビジネスの現場ではそもそもデータセットがないことも多い •手順 • 正解クラスの設計 • 識別したいものを定義する • 例)PERSON, LOCATION, ORGANIZATION, e.g. • 各クラスについての説明書き(アノテーションガイドライン) • アノテーションの作成(by 一人または複数人) • 判断に迷う局面が多々出てくる • “Bob works at a company”. (“company” -> LOCATION? ORGANIZATION?) • (複数人の場合)意見が食い違う 質の良い教師ありデータを作成するのはコストがかかります
  • 17.
    評価指標~f-measure~ • 正解データ・予測結果の4象限 • 混同しやすい2つ •FP: positive 判定したものがfalse(間違い) • FN:negative 判定したものがfalse(間違い) • 適合率(precision) = TP / (TP + FP) • 再現率(recall) = TP / (TP + FN) • F値(F-measure) = 2 * precision * recall / (recall + precision) • 値だけでなくサンプル数も確認する • TP, FP, FN の割合が同じなら、1/10 の数でも同じF 値になる 正解データ P N 予測 結果 P TP FP N FN TN (表)正解データ・予測の四象限 予測 TP TP FP FN TP TN TP TN TP FN 正解 TP FP FN precision recall F-measure 5 1 2 0.83 0.71 0.77 の判定 (例)判定結果とf-measure
  • 18.
    自習用のリソース紹介 • 書籍 • 『深層学習』機械学習プロフェッショナルシリーズ • 『言語処理のための機械学習入門』 コロナ社 • 『パターン認識と機械学習』 シュプリンガージャパン • サイト群 • SlideShare:https://www.slideshare.net/ • Qiita:https://qiita.com/ • Machine learning yearning (Andrew Ng):http://www.mlyearning.org/ • Coursera: https://ja.coursera.org/ • 実装練習するためのデータセット群 • mnist database: http://yann.lecun.com/exdb/mnist/ • Kaggle: https://www.kaggle.com/ • 最新情報キャッチアップ • Arxiv (アーカイブ):https://arxiv.org/ • Twitter:岡野原氏:https://twitter.com/hillbig
  • 19.
    まとめ • 機械学習特有の用語を理解する • 学習、予測 •学習フェーズは入力の符号化、重みの定義、分類器を作るというステップ • 教師あり(分類、回帰)、教師なし • 分類問題(2クラス、多クラス) • 画像、テキストなど入力の種類に応じた符号化の方法がある • 多クラス分類は2クラス分類器を複数用意することで実現 • 数学的基礎(目的関数、ロジスティック回帰 e.g.) • 目的関数を最小化するように重みは更新される • 自然言語処理との関連(word embedding、固有表現抽出) • ニューラルネットワーク • 機械学習の全体像を理解する • 入力、出力の理解(それから処理の詳細) • データセットの作成、 • 評価指標 • 詳細は今後の自習で補う • 自習用リソース紹介
  • 20.

Editor's Notes

  • #10 Why is the error function minimized in logistic regression convex? http://mathgotchas.blogspot.com/2011/10/why-is-error-function-minimized-in.html - 機械学習はじめよう第18回 ロジスティック回帰 http://gihyo.jp/dev/serial/01/machine-learning/0018 - 尤度関数 https://ja.wikipedia.org/wiki/%E5%B0%A4%E5%BA%A6%E9%96%A2%E6%95%B0
  • #11 - mnist dataset http://yann.lecun.com/exdb/mnist/ https://en.wikipedia.org/wiki/Multiclass_classification - mnist Tensorflow https://www.tensorflow.org/tutorials/estimators/cnn
  • #16 # ログの加工 入力:ログ 処理:フィルタする、逆順に並べる、 出力:出す # 機械学習 - 学習 入力:数字の画像 処理:モデルの学習 出力:モデル(分離面) - 識別 入力:数字の画像 処理:分類 出力:数字のラベル
  • #18 https://en.wikipedia.org/wiki/Precision_and_recall http://www.procrasist.com/entry/ml-metrics