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
+ · · · + wM xM
=
MX
j=0
wjx
x, w) = w0 + w1x + w2x2
+ · · · + wM xM
=
MX
j=0
wjxj
.
:多項式の次数Mxj :x の j 乗
w = w0, . . . , wM
:多項式の係数(パラメータ)
モデル関数
24曲線フィッテイング
1. 次数を変更した時の
  パターン認識の変化を見る
2. 訓練集合の数を変更した時の
  パターン認識の変化を見る
25曲線フィッテイング
y(x, w) = w0 + w1x + w2x2
+ · · · + wM xM
=
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
+ · · · + wM xM
=
w0 + w1x + w2x2
+ · · · + wM xM
=
MX
j=0
wjxj
.
:多項式の次数 (order)M
xj :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) tn
2
+
2
|| w ||2
51正則化した誤差関数
|| w ||2
⌘ wT
w = w2
0 + w2
1 + · · · + w2
M
E(w) =
1
2
NX
n=1
y(xn, w) tn
2
+
2
|| w ||2
52正則化した誤差関数
誤差関数を小さくするため罰金項を
小さくしないといけない
|| w ||2
⌘ wT
w = w2
0 + w2
1 + · · · + w2
M
パラメータが小さくなる!!
53縮小推定
推定に関係ない特徴に対応する
パラメータを小さくする手法
縮小推定(荷重減衰)
特に2次の正則化は「リッジ回帰」
54罰金項を操作する
E(w) =
1
2
NX
n=1
y(xn, w) tn
2
+
2
|| w ||2
λを操作してみる!!
55罰金項を操作してみた
E(w) =
1
2
NX
n=1
y(xn, w) tn
2
+
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)i
tn
621.1 解答
y(x, w) = w0 + w1x + w2x2
+ · · · + wM xM
=
MX
j=0
wjx
+ w1x + w2x2
+ · · · + wM xM
=
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
wjxj
n tn}2
(1.1),(1.2)より
ここで xn =
2
6
6
4
x0
n
x1
n
:
xM
n
3
7
7
5w =
2
6
6
4
w0
w1
:
wM
3
7
7
5 なので、
E(w) =
1
2
NX
n=1
{wT
xn tn}2
次式になる
上式を微分して、y(xn,w)が最小となる係数wを求める
641.1 解答
dE
dw
=
2
2
NX
n=1
(wT
xn tn)
d(wT
xn tn)
dw
=
NX
n=1
(wT
xn tn)xn
↑これが (=0) になれば良い
NX
n=1
0
@
MX
j=0
wjxj
n tn
1
A xi
n = 0
表記を元に戻して
651.1 解答
NX
n=1
0
@
MX
j=0
wjxj
n tn
1
A xi
n = 0
(前ページより)
NX
n=1
0
@
MX
j=0
wj(xn)(i+j)
(xn)i
tn
1
A = 0
MX
j=0
NX
n=1
wj(xn)i+j
=
NX
n=1
(xn)i
tn
移項して
661.1 解答
MX
j=0
NX
n=1
wj(xn)i+j
=
NX
n=1
(xn)i
tn
(前ページより)
Aij =
NX
n=1
(xn)i+j
Ti =
NX
n=1
(xn)i
tn
問題文より
が使えるので、
、
MX
j=0
Aijwj = Ti
(終わり)
671.2 問題
 正則化された二乗和誤差関数 (1.4) を最小にする
係数 wi が満たす、(1.122) に類似した線形方程式系を
書き下せ。
E(w) =
1
2
NX
n=1
y(xn, w) tn
2
+
2
|| w ||2
…(1.4)
MX
j=0
Aijwj = Ti …(1.122)
Aij =
NX
n=1
(xn)i+j
Ti =
NX
n=1
(xn)i
tn、
なお
681.2 解答
y(x, w) = w0 + w1x + w2x2
+ · · · + wM xM
=
MX
j=0
wjx
+ w1x + w2x2
+ · · · + wM xM
=
MX
j=0
wjxj
.
モデル関数
…(1.1)
691.2 解答
(1.1),(1.2)より
E(w) =
1
2
NX
n=1
{
MX
j=0
wjxj
n tn}2
+
2
MX
j=0
w2
j
dE(w)
dwi
=
1
2
⇥ 2
NX
n=1
(
MX
j=0
wjxj
n tn)
d
dwi
(
MX
j=0
wjxj
n tn) + 2 ⇥
2
wi
↑これが (=0) になれば良い
701.2 解答
ここで、w = wi = {w0, w1, . . . , wM } だから
はwi wj の要素の1つである。よって、
y(x, w) = w0 + w1x + w2x2
+ · · · + wM xM
=
MX
j=0
wjxj
より次が成り立つ
y(xn, w) = w0 + w1x1
n + w2x2
n + · · · + wM xM
n =
MX
j=0
wjxj
n
これを wi で微分すると
dy(xn, w)
dwi
= xi
n
となる
711.2 解答
dE(w)
dwi
=
1
2
⇥ 2
NX
n=1
(
MX
j=0
wjxj
n tn)
d
dwi
(
MX
j=0
wjxj
n tn) + 2 ⇥
2
wi
(前々ページより)
dy(xn, w)
dwi
= xi
n (前ページより)
=
NX
n=1
(
MX
j=0
wjxj
n tn)xi
n + wi = 0
NX
n=1
(
MX
j=0
wjxj
n tn)xi
n = wi
NX
n=1
MX
j=0
wjxi+j
n =
NX
n=1
tnxi
n wi
721.2 解答
NX
n=1
MX
j=0
wjxi+j
n =
NX
n=1
tnxi
n 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)i
tn
問題文より
が使えるので、
、
MX
j=0
Aijwj = Ti wi
(終わり)
END...
THANK YOU FOR YOUR ATTENTION.
寝たい…

PATTERN RECOGNITION AND MACHINE LEARNING (1.1)