pattern recognition and machine learning (1.1)

73
PATTERN RECOGNITION AND MACHINE LEARNING 2ES-12 吉元 裕真

Upload: yuma-yoshimoto

Post on 02-Aug-2015

49 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

PATTERN RECOGNITION AND MACHINE LEARNING

2ES-12 吉元 裕真

Page 2: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

第1章 序論

Page 3: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

3パターン認識とは

データの中の規則性を 自動的に見つけ出す

分類・予測に応用する = 機械学習

Page 4: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

4機械学習の種類

教師あり学習 教師なし学習

強化学習

Page 5: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

5教師あり学習

訓練データが 入力ベクトルとそれに対応する 目標ベクトルの事例で 構成される問題

Page 6: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

6教師あり学習

手書き文字の判別事例

クラス分類問題

Page 7: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

7教師あり学習

訓練データ: “0” “1” “3”

入力データ:

出力結果: “0” “1” “3”

クラス分類問題

Page 8: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

8教師あり学習

化学プラントにおける 生成物の量の予想

回帰問題

Page 9: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

9教師あり学習

回帰問題

訓練データ:濃度:x 温度:y 圧力:z

の時の変化

入力データ:濃度:x’ 温度:y’ 圧力:z’

新しい条件

Page 10: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

10教師あり学習

回帰問題

時間

生成量

出力結果

訓練データ

訓練データ

Page 11: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

11教師なし学習

訓練データが 入力ベクトル x のみで

対応する目標値が存在しない パターン認識の問題

Page 12: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

12教師なし学習

など

クラスタリング :類似した事例のグループを  見つける密度推定 :入力空間におけるデータの  分布を求める

Page 13: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

13強化学習

ある与えられた状況下で 報酬を最大にするような 適当な行動を見つける問題

Page 14: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

14強化学習探査 :新しい種類の行動がどれだけ  有効か調べる(知識)利用 :高い報酬が得られることが  分かっている行動を取る

2つのバランスを取りながら、 よりよい行動を探す

Page 15: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

フィッテイング1.1 例:多項式曲線

Page 16: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

16この節の目的

例題を用いて パターン認識と機械学習における

重要な概念を学習する

Page 17: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

17やりたいこと

実数値の入力変数 x を観測し x から実数値の目標変数 t を予測

今回はsin関数から データを生成する

Page 18: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

18手順

1. 訓練集合を作る2. 訓練集合を基に学習する3. 100個のテストデータを入力する3.1 次数を変える3.2 訓練集合の点数を変える

4.誤差関数の正則化と罰金項

Page 19: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

19訓練集合

訓練集合は(今回は)人工的に作る

sin関数にランダムなノイズを 付加する

Page 20: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

20訓練集合

x ⌘ (x1, . . . , xN )T t ⌘ (t1, . . . , tN )T

データ

Page 21: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

21この問題のポイント

訓練集合を利用して、 新たな入力変数の値を予測する

sin関数を見つける

目標

Page 22: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

22この問題のポイント

難しさ

有限個のデータ集合からの汎化

観測データはノイズが乗っている不確実性を持つ

Page 23: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

23曲線フィッテイング

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

:多項式の次数Mx

j :x の j 乗

w = w0, . . . , wM:多項式の係数(パラメータ)

モデル関数

Page 24: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

24曲線フィッテイング

1. 次数を変更した時の   パターン認識の変化を見る

2. 訓練集合の数を変更した時の   パターン認識の変化を見る

Page 25: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

25曲線フィッテイング

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj

M = 1

M = 0 M = 3

M = 9

Page 26: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

26誤差関数

E(w) =1

2

NX

n=1

{y(xn,w)� tn}2

Page 27: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

27誤差関数

誤差関数を小さくするような 係数を探す

E(w) =1

2

NX

n=1

{y(xn,w)� tn}2

Page 28: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

M = 0 M = 3

M = 9M = 1

Page 29: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

M = 0 M = 3

M = 9M = 1

M=0,1は データに合わない

sin(2πx)が表現 出来ていない

不適切

Page 30: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

M = 0 M = 3

M = 9M = 1

M=3は よく当てはまっているように見える

適切

Page 31: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

M = 0 M = 3

M = 9M = 1

不適切

M=9は、訓練データ(青丸)には よく当てはまっている

しかし、sin(2πx)に対して無茶苦茶

過学習という

Page 32: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

32100個のテストデータの入力

テスト集合を入力し、 訓練集合の誤差関数と比較する

Page 33: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

33平均二乗平方根誤差

ERMS =p

2E(w⇤)/N

・比較には上式を使う

・統計値等の散らばり具合を表す(0に近いと高精度)

・Nで割る  →サイズの異なるデータの比較

・平方根を取る  →目的変数 t と同じ尺度(単位)であると保証される

Page 34: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

34示してみた

テスト集合

訓練集合

Page 35: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

35Mが小さい時

M = 1

・テスト集合の誤差がかなり大きい ・対応する多項式は柔軟性に欠ける ・関数 sin(2πx) の振動を捉えられない

Page 36: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

M = 3

36      のとき

・テスト集合の誤差は小さい ・関数 sin(2πx) の振動を捉えた   sin(2πx)を生成する妥当な表現

3 M 8

Page 37: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

M = 9

37Mが大きい時

・訓練集合の誤差は”0” ・テスト集合の誤差がかなり大きい ・無茶苦茶に発振している

Page 38: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

38なんでそうなるの?

M = 9

 ・訓練集合の数は”9”  ・M=9 とは 自由度10 → w0,…,w9に丁度当てはまった為

Page 39: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

39なんでそうならないの?

sin(2πx) の級数展開は 全ての次元を含むのになんでそうならない…?

感覚的:   次元を上げる(M→大)ほど   結果が良くなりそう…?

Page 40: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

40次数を変えた時の係数の値

Page 41: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

41次数を変えた時の係数の値

次数を大きくすると、 多項式が各データ点に 合わせるため、 係数の値が大きくなる

Page 42: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

42なんでそうならないの?

感覚的:   次元を上げる(M→大)ほど   結果が良くなりそう…?実際:   次元を上げるほど目的値の   ランダムノイズに引き摺られる

Page 43: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

43ここで…

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

:多項式の次数 (order)Mx

j :x の j 乗

w = w0, . . . , wM:多項式の係数

次数とは係数(=パラメータ)の数次数を減らす = パラメータを減らす

Page 44: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

44訓練集合のデータ点数

経験集合のデータ点数を変える

Page 45: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

45変えてみた

N = 15 N = 100

訓練集合を増やすほど、 過学習の問題は深刻ではなくなる

M = 9

Page 46: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

46つまり…

訓練集合のデータ数を増やすほど、 複雑で柔軟なモデルを表現できる

Page 47: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

47でも…

訓練集合のデータ数で モデルが変化するっておかしくね?

モデルは、 解くべき問題に合わせて 変化するべきやろ。

Page 48: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

48そこで

訓練集合のデータ数や ランダムノイズの影響を受けず、 複雑で柔軟なモデルを表現したい!

Page 49: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

49そこで

次数が大きくても、 パラメータの値が 小さければ 問題ない…?

Page 50: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

50誤差関数

パラメータは誤差関数を 小さくするように決める

誤差関数を弄ればいいのか…?

E(w) =1

2

NX

n=1

{y(xn,w)� tn}2

Page 51: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

E(w) =1

2

NX

n=1

y(xn,w)� tn2 +

2|| w ||2

51正則化した誤差関数

|| w ||2⌘ wTw = w20 + w2

1 + · · ·+ w2M

Page 52: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

E(w) =1

2

NX

n=1

y(xn,w)� tn2 +

2|| w ||2

52正則化した誤差関数

誤差関数を小さくするため罰金項を 小さくしないといけない

|| w ||2⌘ wTw = w20 + w2

1 + · · ·+ w2M

パラメータが小さくなる!!

Page 53: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

53縮小推定

推定に関係ない特徴に対応する パラメータを小さくする手法

縮小推定(荷重減衰)

特に2次の正則化は「リッジ回帰」

Page 54: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

54罰金項を操作する

E(w) =1

2

NX

n=1

y(xn,w)� tn2 +

2|| w ||2

λを操作してみる!!

Page 55: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

55罰金項を操作してみた

E(w) =1

2

NX

n=1

y(xn,w)� tn2 +

2|| w ||2

ln(�) = 0 ! � = e0 = 1ln(�) = �18 !� = e�18 = 1.52⇥ 10�8

Page 56: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

56罰金項を操作してみた

ln(λ)の値によりwが調節されている

Page 57: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

57罰金項を操作してみた

ln(λ)の値によりwが調節されている

Page 58: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

58確認用集合

得られたデータを、 係数wを決めるために使う訓練集合と それとは別の (今回のテスト集合のような) 確認用集合に分ける手法

Page 59: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

59確認用集合

確認用集合はホールドアウト集合とも呼ばれ、モデルの複雑さを最適化するために使われる。

Page 60: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

演習問題

Page 61: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

611.1 問題 関数 y(x,w) が多項式(1,1)で与えられた時の、 (1,2) の二乗和誤差関数を考える。  この誤差関数を最小にする係数 w={wi}は 以下の線形方程式の解として与えられることを示せ。

MX

j=0

= Ti

ただし

Aij =NX

n=1

(xn)i+j

Ti =NX

n=1

(xn)itn

Page 62: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

621.1 解答

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

モデル関数

E(w) =1

2

NX

n=1

{y(xn,w)� tn}2

誤差関数…(1.1)

…(1.2)

Page 63: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

631.1 解答

E(w) =1

2

NX

n=1

{MX

j=0

wjxjn � tn}2

(1.1),(1.2)より

ここで xn =

2

664

x

0n

x

1n

:x

Mn

3

775w =

2

664

w0

w1

:wM

3

775 なので、

E(w) =1

2

NX

n=1

{wTxn � tn}2次式になる

上式を微分して、y(xn,w)が最小となる係数wを求める

Page 64: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

641.1 解答dE

dw=

2

2

NX

n=1

(wTxn � tn)

d(wTxn � tn)

dw

=NX

n=1

(wTxn � tn)xn

↑これが (=0) になれば良い

NX

n=1

0

@MX

j=0

wjxjn � tn

1

Ax

in = 0

表記を元に戻して

Page 65: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

651.1 解答

NX

n=1

0

@MX

j=0

wjxjn � tn

1

Ax

in = 0

(前ページより)NX

n=1

0

@MX

j=0

wj(xn)(i+j) � (xn)

itn

1

A = 0

MX

j=0

NX

n=1

wj(xn)i+j =

NX

n=1

(xn)itn

移項して

Page 66: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

661.1 解答MX

j=0

NX

n=1

wj(xn)i+j =

NX

n=1

(xn)itn

(前ページより)

Aij =NX

n=1

(xn)i+j

Ti =NX

n=1

(xn)itn

問題文より

が使えるので、

MX

j=0

Aijwj = Ti

(終わり)

Page 67: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

671.2 問題 正則化された二乗和誤差関数 (1.4) を最小にする 係数 wi が満たす、(1.122) に類似した線形方程式系を 書き下せ。

E(w) =1

2

NX

n=1

y(xn,w)� tn2 +

2|| w ||2

…(1.4)MX

j=0

Aijwj = Ti …(1.122)

Aij =NX

n=1

(xn)i+j

Ti =NX

n=1

(xn)itn、

なお

Page 68: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

681.2 解答

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj.

モデル関数

…(1.1)

Page 69: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

691.2 解答

(1.1),(1.2)より

E(w) =1

2

NX

n=1

{MX

j=0

wjxjn � tn}2 +

2

MX

j=0

w

2j

dE(w)

dwi=

1

2⇥ 2

NX

n=1

(MX

j=0

wjxjn � tn)

d

dwi(MX

j=0

wjxjn � tn) + 2⇥ �

2wi

↑これが (=0) になれば良い

Page 70: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

701.2 解答

ここで、w = wi = {w0, w1, . . . , wM}だからはwi wj の要素の1つである。よって、

y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx

M =MX

j=0

wjxj

より次が成り立つy(xn,w) = w0 + w1x

1n + w2x

2n + · · ·+ wMx

Mn =

MX

j=0

wjxjn

これをwiで微分するとdy(xn,w)

dwi= x

inとなる

Page 71: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

711.2 解答dE(w)

dwi=

1

2⇥ 2

NX

n=1

(MX

j=0

wjxjn � tn)

d

dwi(MX

j=0

wjxjn � tn) + 2⇥ �

2wi

(前々ページより)dy(xn,w)

dwi= x

in(前ページより)

=NX

n=1

(MX

j=0

wjxjn � tn)x

in + �wi = 0

NX

n=1

(MX

j=0

wjxjn � tn)x

in = ��wi

NX

n=1

MX

j=0

wjxi+jn =

NX

n=1

tnxin � �wi

Page 72: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

721.2 解答NX

n=1

MX

j=0

wjxi+jn =

NX

n=1

tnxin � �wi

(前ページより)MX

j=1

wj

NX

n=0

(xn)i+j =

NX

n=1

tn(xn)i � �wi

Aij =NX

n=1

(xn)i+j

Ti =NX

n=1

(xn)itn

問題文より

が使えるので、、

MX

j=0

Aijwj = Ti � �wi

(終わり)

Page 73: PATTERN RECOGNITION AND MACHINE LEARNING (1.1)

END...THANK YOU FOR YOUR ATTENTION.

寝たい…