pattern recognition and machine learning (1.1)
TRANSCRIPT
PATTERN RECOGNITION AND MACHINE LEARNING
2ES-12 吉元 裕真
第1章 序論
3パターン認識とは
データの中の規則性を 自動的に見つけ出す
分類・予測に応用する = 機械学習
4機械学習の種類
教師あり学習 教師なし学習
強化学習
5教師あり学習
訓練データが 入力ベクトルとそれに対応する 目標ベクトルの事例で 構成される問題
6教師あり学習
手書き文字の判別事例
クラス分類問題
7教師あり学習
訓練データ: “0” “1” “3”
入力データ:
出力結果: “0” “1” “3”
クラス分類問題
8教師あり学習
化学プラントにおける 生成物の量の予想
回帰問題
9教師あり学習
回帰問題
訓練データ:濃度:x 温度:y 圧力:z
の時の変化
入力データ:濃度:x’ 温度:y’ 圧力:z’
新しい条件
10教師あり学習
回帰問題
時間
生成量
出力結果
訓練データ
訓練データ
11教師なし学習
訓練データが 入力ベクトル x のみで
対応する目標値が存在しない パターン認識の問題
12教師なし学習
など
クラスタリング :類似した事例のグループを 見つける密度推定 :入力空間におけるデータの 分布を求める
13強化学習
ある与えられた状況下で 報酬を最大にするような 適当な行動を見つける問題
14強化学習探査 :新しい種類の行動がどれだけ 有効か調べる(知識)利用 :高い報酬が得られることが 分かっている行動を取る
2つのバランスを取りながら、 よりよい行動を探す
フィッテイング1.1 例:多項式曲線
16この節の目的
例題を用いて パターン認識と機械学習における
重要な概念を学習する
17やりたいこと
実数値の入力変数 x を観測し x から実数値の目標変数 t を予測
今回はsin関数から データを生成する
18手順
1. 訓練集合を作る2. 訓練集合を基に学習する3. 100個のテストデータを入力する3.1 次数を変える3.2 訓練集合の点数を変える
4.誤差関数の正則化と罰金項
19訓練集合
訓練集合は(今回は)人工的に作る
sin関数にランダムなノイズを 付加する
20訓練集合
x ⌘ (x1, . . . , xN )T t ⌘ (t1, . . . , tN )T
データ
21この問題のポイント
訓練集合を利用して、 新たな入力変数の値を予測する
sin関数を見つける
目標
22この問題のポイント
難しさ
有限個のデータ集合からの汎化
観測データはノイズが乗っている不確実性を持つ
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:多項式の係数(パラメータ)
モデル関数
24曲線フィッテイング
1. 次数を変更した時の パターン認識の変化を見る
2. 訓練集合の数を変更した時の パターン認識の変化を見る
25曲線フィッテイング
y(x,w) = w0 + w1x+ w2x2 + · · ·+ wMx
M =MX
j=0
wjxj
M = 1
M = 0 M = 3
M = 9
26誤差関数
E(w) =1
2
NX
n=1
{y(xn,w)� tn}2
27誤差関数
誤差関数を小さくするような 係数を探す
E(w) =1
2
NX
n=1
{y(xn,w)� tn}2
M = 0 M = 3
M = 9M = 1
M = 0 M = 3
M = 9M = 1
M=0,1は データに合わない
sin(2πx)が表現 出来ていない
不適切
M = 0 M = 3
M = 9M = 1
M=3は よく当てはまっているように見える
適切
M = 0 M = 3
M = 9M = 1
不適切
M=9は、訓練データ(青丸)には よく当てはまっている
しかし、sin(2πx)に対して無茶苦茶
過学習という
32100個のテストデータの入力
テスト集合を入力し、 訓練集合の誤差関数と比較する
33平均二乗平方根誤差
ERMS =p
2E(w⇤)/N
・比較には上式を使う
・統計値等の散らばり具合を表す(0に近いと高精度)
・Nで割る →サイズの異なるデータの比較
・平方根を取る →目的変数 t と同じ尺度(単位)であると保証される
34示してみた
テスト集合
訓練集合
35Mが小さい時
M = 1
・テスト集合の誤差がかなり大きい ・対応する多項式は柔軟性に欠ける ・関数 sin(2πx) の振動を捉えられない
M = 3
36 のとき
・テスト集合の誤差は小さい ・関数 sin(2πx) の振動を捉えた sin(2πx)を生成する妥当な表現
3 M 8
M = 9
37Mが大きい時
・訓練集合の誤差は”0” ・テスト集合の誤差がかなり大きい ・無茶苦茶に発振している
38なんでそうなるの?
M = 9
・訓練集合の数は”9” ・M=9 とは 自由度10 → w0,…,w9に丁度当てはまった為
39なんでそうならないの?
sin(2πx) の級数展開は 全ての次元を含むのになんでそうならない…?
感覚的: 次元を上げる(M→大)ほど 結果が良くなりそう…?
40次数を変えた時の係数の値
41次数を変えた時の係数の値
次数を大きくすると、 多項式が各データ点に 合わせるため、 係数の値が大きくなる
42なんでそうならないの?
感覚的: 次元を上げる(M→大)ほど 結果が良くなりそう…?実際: 次元を上げるほど目的値の ランダムノイズに引き摺られる
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:多項式の係数
次数とは係数(=パラメータ)の数次数を減らす = パラメータを減らす
44訓練集合のデータ点数
経験集合のデータ点数を変える
45変えてみた
N = 15 N = 100
訓練集合を増やすほど、 過学習の問題は深刻ではなくなる
M = 9
46つまり…
訓練集合のデータ数を増やすほど、 複雑で柔軟なモデルを表現できる
47でも…
訓練集合のデータ数で モデルが変化するっておかしくね?
モデルは、 解くべき問題に合わせて 変化するべきやろ。
48そこで
訓練集合のデータ数や ランダムノイズの影響を受けず、 複雑で柔軟なモデルを表現したい!
49そこで
次数が大きくても、 パラメータの値が 小さければ 問題ない…?
50誤差関数
パラメータは誤差関数を 小さくするように決める
誤差関数を弄ればいいのか…?
E(w) =1
2
NX
n=1
{y(xn,w)� tn}2
E(w) =1
2
NX
n=1
y(xn,w)� tn2 +
�
2|| w ||2
51正則化した誤差関数
|| w ||2⌘ wTw = w20 + w2
1 + · · ·+ w2M
E(w) =1
2
NX
n=1
y(xn,w)� tn2 +
�
2|| w ||2
52正則化した誤差関数
誤差関数を小さくするため罰金項を 小さくしないといけない
|| w ||2⌘ wTw = w20 + w2
1 + · · ·+ w2M
パラメータが小さくなる!!
53縮小推定
推定に関係ない特徴に対応する パラメータを小さくする手法
縮小推定(荷重減衰)
特に2次の正則化は「リッジ回帰」
54罰金項を操作する
E(w) =1
2
NX
n=1
y(xn,w)� tn2 +
�
2|| w ||2
λを操作してみる!!
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
56罰金項を操作してみた
ln(λ)の値によりwが調節されている
57罰金項を操作してみた
ln(λ)の値によりwが調節されている
58確認用集合
得られたデータを、 係数wを決めるために使う訓練集合と それとは別の (今回のテスト集合のような) 確認用集合に分ける手法
59確認用集合
確認用集合はホールドアウト集合とも呼ばれ、モデルの複雑さを最適化するために使われる。
演習問題
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
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)
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を求める
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
表記を元に戻して
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
移項して
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
(終わり)
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、
なお
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)
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) になれば良い
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となる
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
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
(終わり)
END...THANK YOU FOR YOUR ATTENTION.
寝たい…