学習アルゴリズムの評価#

損失関数#

損失関数を(y^,y)とする。

例えば、分類問題での代表的な損失関数は 0-1損失 (0-1 loss) (y^,y)=1[y^y] である。

また回帰問題で使われる代表的な損失関数は 二乗損失 (squared loss) (y^,y)=(y^y)2 である。

予測損失#

仮説h予測損失(predictive loss) R(h)を、予測値h(X)の損失のテストデータ(X,Y)の分布上の期待値

R(h):=E(X,Y)D[(h(X),Y)]

と定義する。

経験損失#

経験損失(empirical loss) を、観測値に基づく損失の平均値

R^(h):=1ni=1n(h(Xi),Yi)

と定義する。

経験損失は別の表現もできる。データ数がnのとき確率1/n(Xi,Yi)に値を取る確率変数を(X,Y)とし、これが従う分布(経験分布)をD^とする。このとき経験損失は

R^(h):=E(X,Y)D^[(h(X),Y)]

と表すことができる。

経験損失は予測損失の不偏推定量#

データ(Xi,Yi)が同一の分布Dに従うとき、経験損失の期待値は予測損失に一致する。 実際、n個の観測データの同時分布をDnとすると、

EDn[R^(h)]=1ni=1nEDn[(h(Xi),Yi)]=1ni=1nR(h)=R(h)

となる。したがって経験損失は予測損失の不偏推定量である。

経験損失は予測損失の一致推定量#

観測データが独立に同一の分布Dに従うとき、R^(h)R(h)に確率収束する。分布Dnのもとで任意のε>0に対して

limnPrDn(|R^(h)R(h)|>ε)=0

が成り立つ。ここでPrDnDnのもとでの確率。

標準的な問題設定ではテストデータと訓練データの分布は同一だが、実応用においては両者の分布が異なることもある。

例えば特徴量の分布が異なるという 共変量シフト(covariate shift) では、分布の違いを比として誤差関数に重みをつける推定方法がある。

またログデータを用いた推薦システムの学習(Off-Policy Learning)においても、ログデータ(訓練データ)が「従来の推薦モデルのもとでの観測データ」であり、実運用時のデータ(テストデータ)とは分布が異なるという似た問題がある。

参考:

ベイズ規則#

定義

損失関数 を定めたとき、任意の可測関数 h:XY のもとでの予測損失の下限

infh: 可測 R(h)

を損失関数 のもとでの ベイズ誤差(Bayes error) という。下限を達成する仮説が存在するとき、その仮説を ベイズ規則(Bayes rule) という。

ベイズ規則がh0:XYのとき、R(h0)=infh: 可測 R(h)が成り立つ。

条件付き期待値

EY[(h(x),Y)x]=Y(h(x),y) dP(yx)

を用いると

R(h)=EX[EY[(h(X),Y)X]]

であるため、EY[(h(x),Y)x]を最小にする仮説hを選べば予測誤差が最小になる

簡単のためy^=h(x)とし、Xを省略して、

EY[(y^,Y)]=(y^,y) dP(y)

を最小にするy^Yを求める問題を考える

0-1損失のベイズ規則#

損失関数として0-1損失 (y^,y)=1[y^y]を想定する。

予測損失R(h)は繰り返し期待値の法則により

R(h)=EX[EY[(y,h(X))X]]

と変形できるので、入力X=xにおける条件付き期待値EY[(y,h(x))X=x]で考える。 Yが離散型確率変数とすると

EY[(y,h(x))X=x]=yY(y,y^)P(Y=yx)

となる。 また、0-1損失の期待値は誤って予測した割合(誤答率)に相当するため、1-正答率 の形に整理できる。

EY[(y,h(x))X=x]=yY(y,y^)P(Y=yx)=1P(Y=h(x))

そのため、P(Y=h(x))を最大化するようなh(x)Y、つまり

h0(x)=arg maxyYP(Y=y|x)

が予測誤差を最小とする。これが0-1損失におけるベイズ規則になる。

# TODO: 確率の話も含める。PRML

二乗損失のベイズ規則#

損失関数として二乗損失 (y^,y)=(y^y)2を利用するとき、

EY[(y^,Y)]=E[(y^Y)2]=E[(y^E[Y]+E[Y]Y)2]()=E[(y^E[Y])2+2(y^E[Y])(E[Y]Y)+(E[Y]y)2]=E[(y^E[Y])2]=(y^E[Y])2+2E[(y^E[Y])(E[Y]Y)]=2E[y^E[Y]y^YE[Y]2+E[Y]Y]=2y^E[Y]2y^E[Y]2E[Y]2+2E[Y]2=0+E[(E[Y]Y)2]=(y^E[Y])2+Var[Y]

となる。よってy^=E[Y]とすれば予測誤差が最小になる。

条件付き期待値に戻って考えると、ベイズ規則は

h0(x)=E[Y|x]

によって与えられる。

別の導出
(Yy^)2= ((YE[YX])+(E[YX]y^))2= (YE[YX])2+2(E[YX]y^)(YE[YX])+(E[YX]y^)2

第1項はy^が含まれないため、最適化には関係がない。

第2項は最終的に(Yy^)2の期待値をとってE[(Yy^)2X]にしたとき、YE[YX]

E[YE[YX]X]=E[YX]E[YX]=0

となり0になる。

第3項のE[YX]y^y^=E[YX]のとき0になり予測誤差が最小化される。よって二乗損失のベイズ規則は条件付き期待値E[YX]となる。

ベイズ誤差R

R=R(h0)=EX[V[YX]]=EX[(yE[YX])2dP(yX)]

となる。条件付き分散V[Y|x]が入力によらず一定の値σ2をとるとき、ベイズ誤差はσ2となる。

絶対誤差のベイズ規則#

損失関数(y,y^)を絶対誤差|yy^|とするとき、ベイズ規則は条件付き中央値

h0(x)=median(Y|X=x)

になる

絶対誤差の最適解

誤差関数(y,y^)を絶対誤差|yy^|とする。予測損失(期待予測誤差)は

R(y^)=EY[(y,y^)]=|yy^|f(y)dy

絶対値の中身の符号で場合分けすると

R(y^)=|yy^|f(y)dy=y^(yy^)f(y)dy+y^(y^y)f(y)dy()=y^yf(y)dyy^y^f(y)dy+y^y^f(y)dyy^yf(y)dy()

予測損失を微分するとそれぞれの項は

ddy^y^yf(y)dy=y^f(y^)ddy^(y^y^f(y)dy)=ddy^(y^)y^f(y)dy+(y^)ddy^(y^f(y)dy)()=1y^f(y)dyy^f(y^)=y^f(y)dy+y^f(y^)ddy^(y^y^f(y)dy)=ddy^y^y^f(y)dy+y^ddy^y^f(y)dy()=y^f(y)dy+y^f(y^)ddy^(y^yf(y)dy)=y^f(y^)

よって

dR(y^)dy^=y^f(y^)y^f(y)dy+y^f(y^)+y^f(y)dy+y^f(y^)y^f(y^)=y^f(y)dy+y^f(y)dy

となる。dR(y^)dy^=0とおいて整理すれば

y^f(y)dy=y^f(y)dy

となる点が予測損失を極小化することがわかる。これはy^が中央値となるときである。

f(y)は確率密度関数なので、f(y)dy=1になる。からy^への積分とy^からへの積分が等しくなるのはその半分、すなわち

y^f(y)dy=12

である。これは累積分布関数P(y^)に等しい。よってy^は中央値である。

参考:定積分の微分

定積分の定義

axf(t)dt=F(x)F(a)

より、この導関数は

F(x)0=f(x)

アルゴリズムの評価#

観測したサンプルS={(X1,Y1),,(Xn,Yn)}から得られる仮説をhSとする。

期待予測損失#

学習された仮説hSの評価尺度の1つとして、観測データSの分布Dnに関する予測損失の期待値ESDn[R(hS)]が考えられる。これは 期待予測損失 と呼ばれる。

統計的一致性#

別の評価尺度として、R(hS)の分布に着目する方法もある。ベイズ誤差R=infhR(h)δ(0,1)ε>0に対して

PrSDn(R(hS)R<ε)>1δ

が成り立つとし、1δに対してεがどのような値になるかを調べることで学習アルゴリズムの性能を評価する。

ベイズ誤差に近い予測損失を達成する仮説が得られる場合、統計的一致性をもつ学習アルゴリズムと呼ばれる

定義(統計的一致性)

任意の分布 D と任意の ε>0 に対して

limnPrSDn(R(hS)R+ε)=0

が成り立つとき、学習アルゴリズム ShS統計的一致性 (statistical consistency) をもつという。

有限な仮説集合を用いた学習#

仮説集合が有限集合の場合の予測損失の評価について。2値判別問題で考え、入力空間Xから2値ラベル{+1,1}への関数hの有限な仮説集合

H={h1,,hT}

を用いて学習を行う(なお、ベイズ規則がHに含まれるとは限らない)。ある分布Pに独立に従う学習データS={(X1,Y1),,(Xn,Yn)}が与えられたとき、経験判別誤差を最小にする仮説

hS=argminhHR^(h)

を出力する学習アルゴリズムを考える。また、Hの中で予測誤差を最小にする仮説をhHとする。

仮説

  • h0:ベイズ規則h0=infR(h)

  • hHHの中で予測誤差を最小にする仮説hH=argminhHR(h)

  • hS:仮説集合とサンプルのもとで経験損失を最小化する仮説 hS=argminhHR^(h)

の関係は、定義より

R(h0)R(hH)R(hS),R^(hS)R^(hH)

となる。

R(hS)R(h0) の上界を次のように評価する。

R(hS)R(h0)=R(hS)R^(hS)+R^(hS)R(hH)+R(hH)R(h0)R(hS)R^(hS)+R^(hH)R(hH)+R(hH)R(h0)2maxhH|R^(h)R(h)|+R(hH)R(h0)

補題(ヘフディングの不等式 Hoeffding’s inequality)

確率変数 Z は有界区間 [0,1] に値をとり、 また確率変数 Z1,,Zn は独立に Z と同じ分布にしたがうとする。 このとき、 任意の ε>0 に対して

Pr(|1ni=1nZiE[Z]|ε)2e2nε2

が成り立つ。

Z=1[h(X)Y]として、2maxhH|R^(h)R(h)| にヘフディングの不等式を用いると

Pr(2maxhH|R^(h)R(h)|ε)hHPr(|R^(h)R(h)|ε/2)hH2e2n(ε/2)2=2|H|enε2/2

となり、δ=2|H|enε2/2とおくと、学習データの分布のもとで確率1δ以上で

2maxhH|R(h)R^(h)|2nlog2|H|δ

が成り立つ。よって

R(hS)R(h0)2maxhH|R^(h)R(h)|+R(hH)R(h0)2nlog2|H|δ+R(hH)R(h0)

となる。

仮説集合Hにベイズ規則h0が含まれる場合、

R(hH)R(h0)=0

となるため、

R(hS)R(h0)2nlog2|H|δR(hS)R(h0)+2nlog2|H|δ

となり、データ数nが十分大きければ仮説hSの誤差はベイズ誤差に収束し、その確率オーダーは

R(hS)=R(h0)+OP(log|H|n)

となる。このオーダーは最悪評価であり、問題設定によってはより速い収束レートが達成できる場合もある。

近似誤差と推定誤差のトレードオフ#

一般には仮説集合Hにベイズ規則h0が含まれるとは仮定できず、

R(hH)R(h0)>0

となる。近似誤差(approximation error)と推定誤差(estimation error)を次のように定義する

  • 近似誤差 : biasH=Rerr(hH)Rerr(h0)

  • 推定誤差 : varH=2nlog2|H|δ

このとき、

R(hS)R(h0)biasH+varH

となり、仮説集合を適切に設定することでhSの予測誤差を小さくできる。

近似誤差 biasHと推定誤差varHの間にはトレードオフの関係がある。複数の有限の仮説集合H1,H2,,HMの関係が

H1H2HM

を満たすとする。定義より近似誤差と推定誤差は

biasH1biasH2biasHMvarH1varH2varHM

となる。仮説集合が大きいほど近似誤差は小さくなるが、推定誤差は大きくなる。 なので最適な仮説集合を選ぶには、これらの和を小さくする仮説集合、すなわち

m^=argminmbiasHm+varHm

とするときのHm^を選べばよい。

適切な仮説集合はデータの分布やデータ数などによって変わる。推定誤差は1nが含まれるためデータ数nが大きくなれば小さくなる。データ数が少ないときは近似誤差と推定誤差のバランスを考えて仮説集合のサイズを決める必要がある。 実用的な方法として正則化法がある。

二乗損失のバイアス・バリアンス分解#

入力変数Xと出力変数Yの関係が、関数f(X)と説明しきれなかった誤差εに分かれる、つまり

Y=f(X)+ε

から成るとする。

データ点X=x0における予測損失

E[{Yf^(X)}2X=x0]

を考える。二乗損失は

{Yf^(X)}2={f(X)+εE[f^(X)]+E[f^(X)]f^(X)}2={f(X)E[f^(X)]}2+ε2+{E[f^(X)]f^(X)}2+2ε{f(X)E[f^(X)]}+2ε{E[f^(X)]f^(X)}+2{f(X)E[f^(X)]}{E[f^(X)]f^(X)}

と展開できる。

これに対してX=x0における条件付き期待値をとると

第1項 {f(X)E[f^(X)]}2 は確率変数ではないため期待値の外に出せて {f(x0)E[f^(x0)]}2 となる

第2項 ε2E[ε]=0 であるので E[ε2]=E[ε2]E[ε]2=V[ε]=σ2

第3項 は E[{E[f^(X)]f^(X)}2X=x0]=V[f^(X)X=x0]=V[f^(x0)]

第4項は f(X)E[f^(X)] が確率変数ではないため期待値の外にでて

E[2ε{f(X)E[f^(X)]}X=x0]=2{f(x0)E[f^(x0)]}E[ε]=0

第5項は f^(X)εが独立であるため

E[2ε{E[f^(X)]f^(X)}X=x0]=2E[ε]E[{E[f^(X)]f^(X)}X=x0]=0

最後の項は

2E[{f(X)E[f^(X)]}{E[f^(X)]f^(X)}X=x0]=2{f(x0)E[f^(x0)]}{E[f^(x0)]f^(x0)}=0

となる。よって期待二乗損失は以下のように分解される

E[{Yf^(X)}2X=x0]={f(x0)E[f^(x0)]}2+V[f^(x0)]+σ2=Bias2+Variance+irreducible error

参考:

正則化#

正則化 (regularization) は適切な大きさの仮説集合を学習するための代表的な方法。小さな仮説集合で対応できるデータに対して、大きな仮説集合から仮説を選ぶことに対してペナルティを掛ける。

複数の仮説集合 H1HM を用いて学習を行うとする。仮説 h に対するペナルティ Φ:HMR0 として、 m1<m2 に対して

hHm1,hHm2Hm1Φ(h)Φ(h)

を満たすような関数 Φ を考えると、 大きな仮説集合に含まれるほうがより大きなペナルティが課されることになる。

仮説の探索範囲は経験損失R^(h)を小さくするように学習する

minhHMR^(h)+λΦ(h)

正則化パラメータλ0を求める方法は様々なものが提案されている。

「データ数が十分大きいときは、大きな仮説集合を用いても予測誤差があまり大きくならない」という性質があるため、正則化パラメータをデータ数に依存するように定義して適切なオーダーでλ0 (n) とする方法が提案されている。この方法は予測誤差を理論的に評価しやすいという利点がある。

しかし実用上は交差検証法(Cross-Validation)を用いて決める方法が有用である。