それっぽく感じる機械学習

94
5 サトヤ勉強会 それっぽく 感じる 機械学習 五十嵐 祐貴(いがらし ゆうき) @bonprosoft Microsoft MVP サトヤ仙台

Transcript of それっぽく感じる機械学習

Page 1: それっぽく感じる機械学習

~第5回サトヤ勉強会~

それっぽく感じる機械学習

五十嵐祐貴(いがらしゆうき) @bonprosoft

Microsoft MVPサトヤ仙台

Page 2: それっぽく感じる機械学習

自己紹介

• 五十嵐祐貴( @bonprosoft )

• Microsoft MVP for Visual Studio and Development Technologies

• Microsoft Student Partners Fellow

• サトヤ仙台代表

• 他o 東北大学工学部電気情報工学科 4年(4月から)

Page 3: それっぽく感じる機械学習

近況

• 本を書きましたo .NET開発テクノロジ入門2016年版Visual Studio 2015対応版

Page 4: それっぽく感じる機械学習

近況

• この本を読むと…

o NEETが理解できてNEET生活が楽しくなる

o 便秘に効く

…らしい

恐縮です

(#^ω^)ピキピキ

Page 5: それっぽく感じる機械学習

5

本日のお題

機械学習

Page 6: それっぽく感じる機械学習

6

3月22日時点での状況

Page 7: それっぽく感じる機械学習

7

このセッションの目的

「機械学習がやってることをそれっぽく感じてほしい」

• 以下のことをなるべく分かりやすく説明しますo 機械学習全般に関する超基本的な知識o 各分野でよく使われている機械学習手法の基本

• このセッションのゴール

「Azure MLなどの便利なプラットフォームが

それっぽく使えるようになること」

Page 8: それっぽく感じる機械学習

第1章

それっぽくわかる機械学習

Page 9: それっぽく感じる機械学習

9

この章では…

• 各分野で用いられている機械学習手法をよりすっきり理解するために説明します

• 雰囲気を半分くらい押さえておけば十分です!

• なるべく分かりやすいように具体的に説明します

分かりにくかったり、早口だったり、再度説明が欲しい場合は、お気軽に挙手してください!

Page 10: それっぽく感じる機械学習

そもそも機械学習 is 何

“コンピュータプログラムが、ある種のタスクTと評価尺度𝑃において、経験𝐸から学習するとは、タスク𝑇におけるその性能を𝑃によって評価した際に、経験𝐸によってそれが改善されている場合である”

Machine Learning, Tom Mitchell, McGraw Hill, 1997.

10

Page 11: それっぽく感じる機械学習

そもそも機械学習 is 何(意訳)

“コンピュータプログラムが学習するとは、ある評価尺度によって性能評価した際に、経験によって改善されている場合である”

11

Page 12: それっぽく感じる機械学習

そもそも機械学習 is 何(超意訳)

“学習とは経験により改善する行為”

12

Page 13: それっぽく感じる機械学習

そもそも機械学習 is 何(超意訳)

“学習とは経験により改善する行為”事例既知のデータ

反省一般化

13

Page 14: それっぽく感じる機械学習

そもそも機械学習 is 何(超意訳)

既知データから一般化することで…

未知のデータに対する有用な予測を行う機械学習の目的

Wikipediaからの受け売りなのは内緒です14

Page 15: それっぽく感じる機械学習

シシトウ分類問題

• 例:分類問題

「シシトウが辛いか辛くないか」

15画像は http://www.kochi-marugoto.pref.kochi.lg.jp/kensanpin/shishito/より

Page 16: それっぽく感じる機械学習

シシトウ分類問題

事例から「辛い」「辛くない」を判別したい…

• 種:110個 匂い:中 正解:辛くない

• 種:120個 匂い:弱 正解:辛くない

• 種: 70個 匂い:弱 正解:辛くない

• 種: 90個 匂い:強 正解:辛い

• 種: 20個 匂い:弱 正解:辛い

• 種: 40個 匂い:中 正解:辛い

16

Page 17: それっぽく感じる機械学習

シシトウ分類問題

事例から「辛い」「辛くない」を判別したい…

• 種:120個 匂い:強 正解:???

• 種: 60個 匂い:中 正解:???

17

Page 18: それっぽく感じる機械学習

シシトウ分類問題

0 40 80 120 160

辛さ

種の数

分離平面

18

Page 19: それっぽく感じる機械学習

シシトウ分類問題

0 40 80 120 160

辛さ

種の数

分離平面

19

Page 20: それっぽく感じる機械学習

シシトウ分類問題

0 40 80 120 160

辛さ

種の数

分離平面

20

Page 21: それっぽく感じる機械学習

シシトウ分類問題

事例から「辛い」「辛くない」を判別したい…

• 種:120個 匂い:強 正解:???

• 種: 60個 匂い:中 正解:???

21

Page 22: それっぽく感じる機械学習

シシトウ分類問題

事例から「辛い」「辛くない」を判別したい…

• 種:120個 匂い:強 予測:辛くない

• 種: 60個 匂い:中 予測:辛い

22ちなみにデータは根拠のない値なので注意

Page 23: それっぽく感じる機械学習

23

ちょっとまって!

「それ、ルールで分類出来るよね?」

Page 24: それっぽく感じる機械学習

24

頑張ればルールで書ける

• 単純な現象であれば人手で書いたほうが早い・正確

• 機械学習はしばしば意図しない学習も多い

しかし、機械学習を用いると…

• 再学習を行うことで入力に適応したモデルを再構築

• 人手では捉えきれない特徴や相関も自動で獲得

Page 25: それっぽく感じる機械学習

25

シシトウ分類問題

例えばこんな問題

Page 26: それっぽく感じる機械学習

シシトウ分類問題

実際のデータは…

• 種:120個 匂い:強 予測:辛くない 不正解

• 種: 60個 匂い:中 予測:辛い 正解

再度学習を行う

26

Page 27: それっぽく感じる機械学習

シシトウ分類問題

0 40 80 120 160

辛さ

種の数

(90, 3)

(40, 2) (60, 2)

(20, 1) (70, 1)

(100, 2)

(120, 1)

(120, 3)

27

右側は修正方法が気になる人向け

分離平面の修正方法①

・問題定義線形識別関数の一般系を定義・入力 𝑥 = (𝑥1, 𝑥2, … , 𝑥𝑛)・関数

・出力 y = +1 (𝐹 𝑥 > 0)

−1 (𝐹 𝑥 < 0)

重みベクトル𝒘 = (𝒘𝟎, 𝒘𝟏, … , 𝒘𝒏)

を求めたい!

𝐹 𝑥 = 𝑤0 + 𝒘 ⋅ 𝒙

= 𝑤0 + 𝑤1𝑥1 +⋯+ 𝑤𝑛𝑥𝑛

Page 28: それっぽく感じる機械学習

シシトウ分類問題

0 40 80 120 160

辛さ

種の数

(90, 3)

(40, 2) (60, 2)

(20, 1) (70, 1)

(100, 2)

(120, 1)

(120, 3)

28

右側は修正方法が気になる人向け

分離平面の修正方法②

・方針すべての訓練データについて出力と正解が一致するようにする

・アルゴリズム

ランダムに訓練データ𝑥𝑖を取得正解が正、予測が負の場合:

𝑤 ≔ 𝑤 + 𝑥𝑖 で更新正解が負、予測が正の場合:

𝑤 ≔ 𝑤 − 𝑥𝑖 で更新𝑤の値が収束するまで繰り返す

Page 29: それっぽく感じる機械学習

シシトウ分類問題

0 40 80 120 160

辛さ

種の数

(90, 3)

(40, 2) (60, 2)

(20, 1) (70, 1)

(100, 2)

(120, 1)

(120, 3)

29

右側は修正方法が気になる人向け

分離平面の修正方法③

・なぜ学習可能か例えば正例の場合は

のように重みを更新できるため。

単純パーセプトロン[ローゼンブラッド, 1957]

𝑤′ ⋅ 𝑥𝑖 = 𝑤 + 𝑥𝑖 ⋅ 𝑥𝑖

= 𝑤 ⋅ 𝑥𝑖 + 𝑥𝑖 ⋅ 𝑥𝑖 > 𝑤 ⋅ 𝑥𝑖

Page 30: それっぽく感じる機械学習

シシトウ分類問題

実際のデータは…

• 種:120個 匂い:強 予測:辛い 正解

• 種: 60個 匂い:中 予測:辛い 正解

分類できるように改善された!

30

Page 31: それっぽく感じる機械学習

そもそも機械学習 is 何(超意訳)

“学習とは経験により改善する行為”

(再掲)

31

Page 32: それっぽく感じる機械学習

32

さまざまな機械学習

• データセットとやりたいことによって選択o 教師あり学習

与えられるもの:入力と対応する出力の組

入力から出力を導くためのモデル(パターン)を学習する

o 教師なし学習 与えられるもの:入力のみ

入力からパターンを見つける

o 強化学習など…

Page 33: それっぽく感じる機械学習

33

さまざまな機械学習

• 教師あり学習o 分類問題: 入力から対応するラベルを求める

o 回帰問題: 入力から対応する値を求める

など…

• 教師なし学習o クラスタリング:入力から共通の特徴を持つような部分集合を出力する

o 異常検出: データ中の特徴的な点を検出する

など…

Page 34: それっぽく感じる機械学習

34

教師あり学習

Page 35: それっぽく感じる機械学習

35

線形分類

「入力ベクトルに対応する出力ラベルを学習」o シシトウ問題:(種の数, 匂い)⇒(辛いか否か)

例: (90, 3)→ +1, (110, 2)→ -1

• 評価尺度:損失関数(小さいほうが良い)

o しきい値関数 r 𝑥𝑖 , 𝑦𝑖 = 0 𝑦𝑖𝑥𝑖 > 01 𝑦𝑖𝑥𝑖 < 0

単純パーセプトロン

o ヒンジ関数 r 𝑥𝑖 , 𝑦𝑖 = max(0, 1 − 𝑦𝑖𝑥𝑖) SVM

など、様々な関数を用いて損失関数を構築

Page 36: それっぽく感じる機械学習

36

SVMのメリットと評価尺度のイメージ

• 評価尺度のイメージo しきい値関数: 不正解の数

o ヒンジ関数: 不正解・正解の信頼度

SVMと とは何も関係がないです

0 40 80 120 160

しきい値関数:分類できればおk0 40 80 120 160

ヒンジ関数:なるべく安定して分類できるよう分離平面を調整

マージン最大化

SVM

検出器がミス

画像は https://en.wikipedia.org/wiki/Hinge_loss より

Page 37: それっぽく感じる機械学習

37

線形回帰

「入力ベクトルに対応する出力(連続値)を学習」o シシトウ問題:(種の数, 匂い)⇒(辛さ値)

例: (90, 3)→ 8.2, (110, 2)→ 0.5

• 評価尺度:損失関数(小さいほうが良い)o 最小二乗法 r 𝑥𝑖 , 𝑦𝑖 = 𝑦𝑖 − 𝑓(𝑥𝑖)

2 線形回帰

o 対数損失 r 𝑥𝑖 , 𝑦𝑖 = log(1 + exp(−𝑚))ロジスティック回帰

など、様々な関数を用いて損失関数を構築

Page 38: それっぽく感じる機械学習

38

線形回帰とロジスティック回帰

• 線形回帰o 値は無制限 ⇒数量予測などに利用

• ロジスティック回帰o 値が0~1に収束 ⇒確率予測などに利用

最小二乗法 ロジスティック回帰(sigmoid関数)

ロジスティック回帰の出力にしきい値を設定して、しきい値関数を適用すれば分類問題とも言えるね!

画像は http://www2.my-pharm.ac.jp/~info1/info_p07/kadai4/kadaix/exe_x_leastsq.htmより 画像は http://tikalon.com/blog/blog.php?article=2011/sigmoidより

Page 39: それっぽく感じる機械学習

39

線形分類・線形回帰

• この問題は学習可能か?

0

1

0 1

Page 40: それっぽく感じる機械学習

40

線形分離可能

n次元空間上のふたつの点の集合をn-1次元の超平面で分離できることを線形分離可能と呼ぶ

定義

Page 41: それっぽく感じる機械学習

ちなみにこれはたぶん別の意味

41

線形分離可能(わかりやすく)

ふたつの点の集合をある面から見たときに、直線で分離できることを線形分離可能と呼ぶ

定義

Page 42: それっぽく感じる機械学習

42

線形分類・線形回帰

• この問題は学習可能か?

0

1

0 1

実は線形モデルでは線形分離可能な問題しか解けない!

Page 43: それっぽく感じる機械学習

43

非線形分離問題の解決策

• 学習に向けたアプローチ

o カーネルを使う

o 非線形なモデルを使う

Page 44: それっぽく感じる機械学習

44

非線形分離問題の解決策

• 学習に向けたアプローチ

o カーネルを使う

既存の値と相関のある新しい次元を作り出す

例:多変数関数の適用、組み合わせなど

𝑧 = 𝑥 ⋅ 𝑦を導入すると…

o 非線形なモデルを使う画像出典: https://github.com/levelfour/machine-learning-2014/wiki/%E7%AC%AC3%E5%9B%9E---%E5%A4%9A%E5%B1%A4%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3

Page 45: それっぽく感じる機械学習

45

非線形分離問題の解決策

• 学習に向けたアプローチ

o カーネルを使う

既存の値と相関のある新しい次元を作り出す

例:多変数関数の適用、組み合わせなど

𝑧 = 𝑥 ⋅ 𝑦を導入すると…

o 非線形なモデルを使う画像出典: https://github.com/levelfour/machine-learning-2014/wiki/%E7%AC%AC3%E5%9B%9E---%E5%A4%9A%E5%B1%A4%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3

Page 46: それっぽく感じる機械学習

46

非線形分離問題の解決策

• 学習に向けたアプローチ

o カーネルを使う

既存の値と相関のある新しい次元を作り出す

例:多変数関数の適用、組み合わせなど

𝑧 = 𝑥 ⋅ 𝑦を導入すると…

o 非線形なモデルを使う画像出典: https://github.com/levelfour/machine-learning-2014/wiki/%E7%AC%AC3%E5%9B%9E---%E5%A4%9A%E5%B1%A4%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3

Page 47: それっぽく感じる機械学習

47

非線形分離問題の解決策

• 学習に向けたアプローチ

o カーネルを使う

o 非線形なモデルを使う

Page 48: それっぽく感じる機械学習

48

非線形分離問題の解決策

• 学習に向けたアプローチ

o カーネルを使う

o 非線形なモデルを使う

ニューラルネットワーク

決定木

ランダムフォレスト

など…

最近特にとてもアツいやつ

Page 49: それっぽく感じる機械学習

49

ニューラルネットワーク

• フィードフォワードニューラルネットo 特に有名なニューラルネットワークモデル

o 単純パーセプトロンと多層パーセプトロンの2種類

𝑋𝑖+1 = 𝑓 𝐴𝑖𝑋𝑖 + 𝐵𝑖

活性化関数

重みパラメータ

バイアスパラメータ

多層パーセプトロンの学習に用いる誤差逆伝播法はニューラルネット第1次氷河期のブレイクスルーです

Page 50: それっぽく感じる機械学習

50

(余談)Deep Learningとは

• 最近すごく話題のやつ

• 定義o 「3層以上の多層なニューラルネットワーク」

https://ja.wikipedia.org/wiki/ディープラーニング

個人的には「”多層”になっていくことで、より機械の学習に対する負担が増える。そして”Deep”に(深く)学習ができる」的なニュアンスで捉えています

Page 51: それっぽく感じる機械学習

51

教師なし学習

Page 52: それっぽく感じる機械学習

52

クラスタリング

「入力ベクトルを外部基準なしに自動で分類」o 例

入力: {7, 75, 3, 90, 68, 5, 92}, K=3

出力: {{3, 5, 7}, {68, 75}, {90, 92}}

• 主な手法o 階層的クラスタリング

クラスタ間の類似度をもってマージ

結果が階層構造(トーナメントグラフのような感じ)

o 非階層的クラスタリング

割と大ざっぱに指定された個数に分割

結果は階層構造にはならない

Page 53: それっぽく感じる機械学習

53

k平均法(k-means clustering)

• 非階層的クラスタリングアルゴリズムの一種

• 例えば、次のデータをクラスタ数 k=3で処理する例

Page 54: それっぽく感じる機械学習

54

k平均法(k-means clustering)

1.まず入力データをランダムにk個の色に塗る

Page 55: それっぽく感じる機械学習

55

k平均法(k-means clustering)

2.同じ色ごとに各クラスタの中心を計算

Page 56: それっぽく感じる機械学習

56

k平均法(k-means clustering)

3.各点について最も近い中心のクラスタに割り当てなおす

Page 57: それっぽく感じる機械学習

57

k平均法(k-means clustering)

3.各点について最も近い中心のクラスタに割り当てなおす

Page 58: それっぽく感じる機械学習

58

k平均法(k-means clustering)

(2に戻る)再度クラスタの中心を計算しなおす

Page 59: それっぽく感じる機械学習

59

k平均法(k-means clustering)

4.変更がなければ or 変化量が一定以下となれば終了

Page 60: それっぽく感じる機械学習

第2章

それっぽく知っとくML事情

60

Page 61: それっぽく感じる機械学習

61

この章では…

• 各分野でよく用いられている機械学習手法を紹介o 自分が3年間のラボ活で得た知見も合わせてご紹介

o 最先端な手法ではないが、ここ数年の成果を支えている重要で有用な技術

o 各プラットフォームでも比較的簡単に実装できます

• ここから先のスライドは、アップロードできない内容も含まれているので、一部削除されています

Page 62: それっぽく感じる機械学習

62

自然言語処理Natural Language Processing

1

Page 63: それっぽく感じる機械学習

63

Twitter ProfilingDemo

Page 64: それっぽく感じる機械学習

• ユーザーのツイートから性別・職業を分析

64

職業分析・性別分析

Page 65: それっぽく感じる機械学習

65

職業分析・性別分析

• 入力: ユーザーのツイート素性(BoW)

• 出力: 性別・各職業である確率値

• モデル:ロジスティック回帰

C# デスマ コンサート ラボ バイト … 夫 子育て 正解ラベル

10 20 0 1 2 … 0 1 ???

5 5 0 20 20 … 0 0 ???

0 0 3 0 2 … 10 9 ???

Page 66: それっぽく感じる機械学習

66

職業分析・性別分析における入力

• 入力に用いる素性(特徴)は非常に重要o Bag of Words 単語をそのまま入れる

o Polarity classifier ポジティブ・ネガティブなどの分析結果

など…

• その重み(特徴量)も重要o 含まれていた数(各要素の値は1)

o Tf-Idf(トピック依存度)やPMI(共起頻度)を考慮したスコア

• ↑を自動で獲得する仕組みとしてword2vecが提案o 業界全体がかなり注目

Page 67: それっぽく感じる機械学習

67

word2vecDemo

Page 68: それっぽく感じる機械学習

68

word2vec

• 何ができるのかo 単語をベクトル化して表現

o ベクトル化によって単語の加算・減算なども可能 言葉の”意味”って、いったい…?

• 何をうれしいかo 単語の潜在的意味のようなものを捉えた、かなり強力な素性として機械学習に使える

Page 69: それっぽく感じる機械学習

69

(おまけ)word2vecが何をやっているのか

• 大前提(仮説)

「同じ文脈で利用される単語は、同じ意味を持つ」

• やってることo ある[単語|単語集合]が与えられたとき、その[前後に出る単語|中に最も出現しそうな単語]を学習する

中間層において「より少ない次元で単語を表そう」と学習するので、いい感じに文脈を考慮したベクトルが学習される感じです

画像は http://www.fisproject.jp/2014/10/word2vec/より

Page 70: それっぽく感じる機械学習

70

音声信号処理Audio Signal Processing

2

Page 71: それっぽく感じる機械学習

71

声質変換Demo

Page 72: それっぽく感じる機械学習

72

画像情報処理Image Processing

3

Page 73: それっぽく感じる機械学習

CNN (Convolutional Neural Network)

73

重み(フィルタ)𝑤を学習 特徴のあるものだけを残す

画像は http://systemdesign.altera.com/can-you-see-using-convolutional-neural-networks/より

Page 74: それっぽく感じる機械学習

74

特徴抽出

• 自然言語処理o 形態素解析:「笑う」「ご飯」など意味を持つ最小単位

• 画像処理o 1画素は0~255を取りうる離散値

o 画素ごとではなく一定領域をまとめて考える

ヒストグラム– SIFT、LBPなど

フィルタ– 微分フィルタ、ラプラシアンフィルタなど

Page 75: それっぽく感じる機械学習

75

フィルタ

• この行列、何をするものかわかりますか?

−1 0 1−1 0 1−1 0 1

Page 76: それっぽく感じる機械学習

• [0,2]で40km進んだ

• [0,1]で20km進んだ

• [0, 0.5]で10km進んだ

76

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2

距離

[km

]

時間 [h]

20km/h

20km/h

20km/h

• [0,2]で40km進んだ

• [0,1]で30km進んだ

• [0, 0.5]で20km進んだ

0

10

20

30

40

0 0.5 1 1.5 2

距離

[km

]

時間 [h]

20km/h

30km/h

40km/h

Page 77: それっぽく感じる機械学習

• [0,2]で40km進んだ

• [0,1]で20km進んだ

• [0, 0.5]で10km進んだ

77

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2

距離

[km

]

時間 [h]

20km/h

20km/h

20km/h

• [0,2]で40km進んだ

• [0,1]で30km進んだ

• [0, 0.5]で20km進んだ

0

10

20

30

40

0 0.5 1 1.5 2

距離

[km

]

時間 [h]

20km/h

30km/h

40km/h

𝑣 =𝑓 𝑥 + ℎ − 𝑓(𝑥)

Page 78: それっぽく感じる機械学習

• [0,2]で40km進んだ

• [0,1]で20km進んだ

• [0, 0.5]で10km進んだ

78

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2

距離

[km

]

時間 [h]

20km/h

20km/h

20km/h

• [0,2]で40km進んだ

• [0,1]で30km進んだ

• [0, 0.5]で20km進んだ

0

10

20

30

40

0 0.5 1 1.5 2

距離

[km

]

時間 [h]

20km/h

30km/h

40km/h

𝑣 = limℎ→0

𝑓 𝑥 + ℎ − 𝑓(𝑥)

Page 79: それっぽく感じる機械学習

79

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2

速度

[km

/h]

時間 [h]

0

10

20

30

40

0 0.5 1 1.5 2

速度

[km

/h]

時間 [h]

𝑣 = limℎ→0

𝑓 𝑥 + ℎ − 𝑓(𝑥)

Page 80: それっぽく感じる機械学習

80

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2

速度

[km

/h]

時間 [h]

0

10

20

30

40

0 0.5 1 1.5 2

速度

[km

/h]

時間 [h]

𝑓′(𝑥) = limℎ→0

𝑓 𝑥 + ℎ − 𝑓(𝑥)

変化量(直線の傾き)の推移を求める

Page 81: それっぽく感じる機械学習

81

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2輝度の変化

[km

/h]

時間 [h]

0

10

20

30

40

0 0.5 1 1.5 2輝度の変化

[km

/h]

時間 [h]

𝑓′ 𝑥 =𝑓 𝑥 + 1 − 𝑓 𝑥

1

変化量(直線の傾き)の推移を求める

20 40 60 80 20 60 60 80

Page 82: それっぽく感じる機械学習

82

微分の直感的説明

0

10

20

30

40

0 0.5 1 1.5 2輝度の変化

[km

/h]

時間 [h]

0

10

20

30

40

0 0.5 1 1.5 2輝度の変化

[km

/h]

時間 [h]

𝑟 𝑥 =𝑓 𝑥 + 1 − 𝑓 𝑥

1+𝑓 𝑥 − 𝑓(𝑥 − 1)

1= 𝑓 𝑥 + 1 − 𝑓(𝑥 − 1)

変化量(直線の傾き)の推移を求める

20 40 60 80 20 60 60 80-1 0 1

Page 83: それっぽく感じる機械学習

83

微分の直感的説明

𝑟 𝑥 =𝑓 𝑥 + 1 − 𝑓 𝑥

1+𝑓 𝑥 − 𝑓(𝑥 − 1)

1= 𝑓 𝑥 + 1 − 𝑓(𝑥 − 1)

変化量(直線の傾き)の推移を求める

0 20 40 60 80 0 20 60 60 80

20 40 40 40 20 20 60 40 20 20

-1 0 1

Page 84: それっぽく感じる機械学習

84

微分の直感的説明

𝑟 𝑥, 𝑦 = 𝑓 𝑥 + 1, 𝑦 + 1 + 𝑓 𝑥 + 1, 𝑦 + 𝑓 𝑥 + 1, 𝑦 − 1−𝑓 𝑥 − 1, 𝑦 + 1 − 𝑓 𝑥 − 1, 𝑦 − 𝑓(𝑥 − 1, 𝑦 − 1)

変化量(直線の傾き)の推移を求める

0 20 40 60 80 0 20 60 60 80

-1 0 1

-1 0 1

-1 0 120 40 40 40 20 20 60 40 20 20

Page 85: それっぽく感じる機械学習

85

Prewittフィルタ

• この行列、何をするものかわかりますか?

(再掲)

−1 0 1−1 0 1−1 0 1

Page 86: それっぽく感じる機械学習

• 元画像 • 処理後

86

Prewittフィルタ

画像は http://www.mis.med.akita-u.ac.jp/~kata/image/sobelprew.htmlより

Page 87: それっぽく感じる機械学習

CNN (Convolutional Neural Network)

87

重み(フィルタ)𝑤を学習

分類を学習特徴抽出を学習

特徴のあるものだけを残す

画像は http://systemdesign.altera.com/can-you-see-using-convolutional-neural-networks/より

Page 88: それっぽく感じる機械学習

88

重みを可視化した例

画像は https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/より

Page 89: それっぽく感じる機械学習

89

絵師判定Demo

Page 90: それっぽく感じる機械学習

おわりに

90

Page 91: それっぽく感じる機械学習

91

機械学習分野にかける期待

• (現状では)機械学習は、人間が機械にとって学習しやすいような環境(入力や学習モデルなど)がなければ学習できない

• つまり人間自身がある程度解決できる問題でないと、機械にとっても学習は難しい

まずは人手で問題を解こうとして見ることが

機械学習への第一歩

Page 92: それっぽく感じる機械学習

92

機械学習分野にかける期待

• (そのうえで)機械学習はしばしば人間の思考を凌駕するo データマイニングなどはそこが重要

• 頭のいい人たちによって日々優れた枠組みが提案

• 学習がDeepになるにつれて、人間が負担すべきタスクが少なくなっていくo CNNなどは特徴抽出までも機械に任せている

Page 93: それっぽく感じる機械学習

93

おわりに

「よくわからないけど、機械学習なら

できるでしょ」(思考放棄)

「お、そうか(?)」

Page 94: それっぽく感じる機械学習

94

おわりに

「機械学習ならどうやって解けるかな?」

「そうだね、どこを学習してもらおうか」