作业 1: 经验风险最小化 vs. 结构风险最小化
[1] 解释:期望风险最小,经验风险最小化和结构风险最小化;
经验风险:对所有训练样本都求一次损失函数,再累加求平均。即,模型f(x)对训练样本中所有样本的预测能力,是局部概念。
R
e
m
p
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
R_{emp}(f)=\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))
Remp(f)=N1i=1∑NL(yi,f(xi))
期望风险:对所有样本(包含未知样本和已知的训练样本)的预测能力,是全局概念。
R
e
x
p
(
f
)
=
E
p
[
L
(
Y
,
f
(
X
)
)
]
=
∫
x
×
y
L
(
y
,
f
(
x
)
)
P
(
x
,
y
)
d
x
d
y
R_{exp}(f)=E_p[L(Y,f(X))]=\int_{x\times y}L(y,f(x))P(x,y)dxdy
Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy
结构风险:对经验风险和期望风险的折中,在经验风险函数后面加一个正则化项(惩罚项),是一个大于0的系数
λ
\lambda
λ。J(f)表示的是模型的复杂度。
R
s
r
m
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
R_{srm}(f)=\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))+\lambda J(f)
Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
[2] 当模型是条件概率分布(比如 y | x ~ N ( w T x , 1 ) y|x ~ N(w^Tx, 1) y|x~N(wTx,1)),当损失函数是对数损失函数时,
(2.1) 经验风险最小化等价于极大似然估计;
经验风险损失函数为
R
e
m
p
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
=
−
1
N
∑
i
=
1
N
log
P
(
y
i
∣
x
i
)
R_{emp}(f)=\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))\\ =-\frac{1}{N}\sum^N_{i=1}\log P(y_i|x_i)
Remp(f)=N1i=1∑NL(yi,f(xi))=−N1i=1∑NlogP(yi∣xi)
极大似然估计为
P
(
y
)
=
∏
i
=
1
n
P
(
y
i
∣
x
i
)
log
P
(
y
)
=
log
∏
i
=
1
n
P
(
y
i
∣
x
i
)
=
∑
i
=
1
N
log
P
(
y
i
∣
x
i
)
−
1
N
log
P
(
y
)
=
−
1
N
∑
i
=
1
N
log
P
(
y
i
∣
x
i
)
=
R
e
m
p
(
f
)
P(y)=\prod_{i=1}^nP(y_i|x_i)\\ \log P(y)=\log\prod_{i=1}^nP(y_i|x_i)=\sum^N_{i=1}\log P(y_i|x_i)\\ -\frac{1}{N}\log P(y)=-\frac{1}{N}\sum^N_{i=1}\log P(y_i|x_i) =R_{emp}(f)
P(y)=i=1∏nP(yi∣xi)logP(y)=logi=1∏nP(yi∣xi)=i=1∑NlogP(yi∣xi)−N1logP(y)=−N1i=1∑NlogP(yi∣xi)=Remp(f)
因此经验风险最小化等价于极大似然估计。
(2.2) 结构风险最小化等价于最大后验概率估计
结构风险误差函数为
R
s
r
m
(
f
)
=
1
N
∑
i
=
1
N
L
(
y
i
,
f
(
x
i
)
)
+
λ
J
(
f
)
R_{srm}(f)=\frac{1}{N}\sum^N_{i=1}L(y_i,f(x_i))+\lambda J(f)
Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
最大后验概率估计为
p
(
w
∣
D
)
≈
p
(
D
∣
w
)
p
(
w
)
m
a
x
w
1
n
log
p
(
w
∣
D
)
≈
m
a
x
w
1
n
p
(
D
∣
w
)
p
(
w
)
=
m
a
x
w
1
n
log
∏
i
=
1
n
p
(
y
i
∣
x
i
)
+
log
p
(
w
)
=
m
i
n
w
1
n
∑
i
=
1
n
log
p
(
y
i
∣
x
i
)
−
log
p
(
w
)
p(w|D)\approx p(D|w)p(w)\\ max_w \frac{1}{n}\log p(w|D)\approx max_w \frac{1}{n}p(D|w)p(w)\\ = max_w\frac{1}{n}\log \prod^n_{i=1}p(y_i|x_i)+\log p(w)\\ =min_w\frac{1}{n}\sum^n_{i=1}\log p(y_i|x_i)-\log p(w)
p(w∣D)≈p(D∣w)p(w)maxwn1logp(w∣D)≈maxwn1p(D∣w)p(w)=maxwn1logi=1∏np(yi∣xi)+logp(w)=minwn1i=1∑nlogp(yi∣xi)−logp(w)
得证。
作业 2:关于曲线拟合
[1] 对 y = sin ( 2 π x ) y=\sin(2\pi x) y=sin(2πx)进行在 x = 0.5 x=0.5 x=0.5进行泰勒展开,展开至 O ( x 3 ) O(x^3) O(x3)即可;
sin ( 2 π x ) = − 2 π ( x − 0.5 ) + 4 π 3 3 ( x − 0.5 ) 3 + O ( x 3 ) ≃ 41.34 x 3 − 62.01 x 2 + 24.72 x − 2.03 \sin(2\pi x)=-2\pi(x-0.5)+\frac{4\pi^3}{3}(x-0.5)^3+O(x^3)\\ \simeq 41.34x^3-62.01x^2+24.72x-2.03 sin(2πx)=−2π(x−0.5)+34π3(x−0.5)3+O(x3)≃41.34x3−62.01x2+24.72x−2.03
[2] 在 M=0,1,3,9 的情况下,求解出系数 。在 M=3 的情况下,比较第[1]小题和第[2]小题求出来的系数。
L ( w ) = ∑ i = 1 N ( f M ( x i , w ) − y i ) 2 = ( Xw − y ) T ( Xw − y ) = w T X T Xw − 2 w T X T t + t T t L(w)=\sum^N_{i=1}(f_M(x_i,w)-y_i)^2\\ =(\textbf X\textbf w-\textbf y)^T(\textbf X\textbf w-\textbf y)\\ =\textbf{w}^T\textbf{X}^T\textbf{Xw}-2\textbf{w}^T\textbf{X}^T\textbf{t}+\textbf{t}^T\textbf{t} L(w)=i=1∑N(fM(xi,w)−yi)2=(Xw−y)T(Xw−y)=wTXTXw−2wTXTt+tTt
ϑ L ϑ w = 2 n X T Xw − 2 n X T t = 0 w = ( X T X ) − 1 X T t \frac{\vartheta L}{\vartheta \textbf{w}}=\frac{2}{n}\textbf{X}^T\textbf{X}\textbf{w}-\frac{2}{n}\textbf{X}^T\textbf{t}=0\\ \textbf{w}=(\textbf{X}^T\textbf{X})^{-1}\textbf{X}^T\textbf{t} ϑwϑL=n2XTXw−n2XTt=0w=(XTX)−1XTt
其中 X \textbf X X是范德蒙矩阵,当M=0,1,3,9时,用python计算:
from numpy import *
x = [0.0, 0.1111, 0.2222, 0.3333, 0.4444,
0.5556, 0.6667, 0.7778, 0.8999, 1.0]
y = [0.0008, 0.6419, 0.9849, 0.8655,
0.3423, -0.3426, -0.8655, -0.9841, -0.6411, -0.0002]
def calc_w(n):
# 先求范德蒙矩阵
X = ones((10,1))
m_t = mat(x).T
m_diagonal = diag(x)
while n>0:
X=hstack((X,m_t))
m_t = m_diagonal*m_t
n-=1
t = mat(y).T
return (X.T*X).I*X.T*t
print('M=0:')
#print(calc_w(0))
print('M=1:')
print(calc_w(1))
print('M=3:')
print(calc_w(3))
print('M=9:')
print(calc_w(9))
结果为
M=0:
不可逆,手算出[[0.00018]]
M=1:
[[ 0.67342714]
[-1.34351854]]
M=3:
[[ -0.05776011]
[ 10.72400336]
[-31.83268864]
[ 21.20829113]]
M=9:
[[ 3.56381361e-04]
[ 6.34779809e+00]
[-2.77218971e+00]
[-5.85761912e+00]
[-2.17733512e+02]
[ 8.21288106e+02]
[-1.45968949e+03]
[ 1.57393264e+03]
[-9.71232120e+02]
[ 2.55715737e+02]]
可以看到,在
M
=
3
M=3
M=3的情况下,与泰勒级数相比,大约是2倍的关系,实际上的曲线也差不多。
[3] 证明《PRML》第一章第一个题目。
当误差函数取最小值时,根据题目[2],必然有
w
=
(
X
T
X
)
−
1
X
T
t
X
T
Xw
=
X
T
t
(
X
T
Xw
)
T
=
(
X
T
t
)
T
w
T
X
T
X
=
t
T
X
w
(
X
T
X
)
i
=
t
T
X
i
\textbf{w}=(\textbf{X}^T\textbf{X})^{-1}\textbf{X}^T\textbf{t}\\ \textbf{X}^T\textbf{X}\textbf{w}=\textbf{X}^T\textbf{t}\\ (\textbf{X}^T\textbf{X}\textbf{w})^T=(\textbf{X}^T\textbf{t})^T\\ \textbf w^T\textbf X^T\textbf X=\textbf t^T\textbf X\\ \textbf w(\textbf X^T\textbf X)_{i}=\textbf t^T\textbf X_{i}
w=(XTX)−1XTtXTXw=XTt(XTXw)T=(XTt)TwTXTX=tTXw(XTX)i=tTXi
T
i
=
∑
n
=
1
N
(
x
n
)
i
t
n
=
∑
n
=
1
N
X
n
,
i
+
1
t
n
=
t
T
X
i
T_i=\sum^N_{n=1}(x_n)^it_n\\ =\sum^N_{n=1}\textbf X_{n,i+1}t_n=\textbf t^T\textbf X_{i}
Ti=∑n=1N(xn)itn=∑n=1NXn,i+1tn=tTXi
其中
X
i
\textbf X_{i}
Xi表示矩阵
X
\textbf X
X的第
i
i
i列。
X
n
,
i
\textbf X_{n,i}
Xn,i表示范德蒙矩阵的第
n
n
n行,第
i
i
i列的元素。
A
i
j
=
∑
n
=
1
N
(
x
n
)
i
+
j
=
(
X
T
X
)
i
A_{ij}=\sum^N_{n=1}(x_n)^{i+j}=(\textbf X^T\textbf X)_{i}
Aij=∑n=1N(xn)i+j=(XTX)i
其中,
(
X
T
X
)
i
(\textbf X^T\textbf X)_{i}
(XTX)i表示矩阵
X
T
X
\textbf X^T\textbf X
XTX的第
i
i
i列。
根据原式
∑
j
=
0
N
A
i
j
w
j
=
T
i
∑
j
=
0
M
(
∑
n
=
1
N
(
x
n
)
i
+
j
w
j
)
=
∑
n
=
1
N
(
x
n
)
i
t
n
∑
j
=
0
M
(
(
X
T
X
)
i
w
j
)
=
∑
n
=
1
N
X
n
,
i
t
n
w
(
X
T
X
)
i
=
t
T
X
i
\sum^N_{j=0}A_{ij}w_j=T_i\\ \sum^M_{j=0}(\sum^N_{n=1}(x_n)^{i+j}w_j)=\sum^N_{n=1}(x_n)^it_n\\ \sum^M_{j=0}((\textbf X^T\textbf X)_{i}w_j)=\sum^N_{n=1}\textbf X_{n,i}t_n\\ \textbf w(\textbf X^T\textbf X)_{i}=\textbf t^T\textbf X_{i}
j=0∑NAijwj=Tij=0∑M(n=1∑N(xn)i+jwj)=n=1∑N(xn)itnj=0∑M((XTX)iwj)=n=1∑NXn,itnw(XTX)i=tTXi
从而得证。
作业 3:最小二乘与正则化问题
当正则化项是
λ
∑
j
=
2
d
θ
j
2
\lambda\sum^d_{j=2}\theta^2_j
λ∑j=2dθj2时,必然有
θ
^
=
(
A
T
A
+
λ
F
)
−
1
A
T
y
\widehat{\theta}=(\textbf{A}^T\textbf{A}+\lambda\textbf{F})^{-1}\textbf{A}^T\textbf{y}
θ
=(ATA+λF)−1ATy
其中
F
F
F为
d
×
d
d\times d
d×d的矩阵,
F
i
,
i
=
1
,
(
1
<
i
≤
d
)
F_{i,i}=1,(1<i\le d)
Fi,i=1,(1<i≤d),其他元素都是
0
0
0
(
A
T
A
+
λ
F
)
θ
^
=
A
T
y
(
A
1
T
A
+
λ
F
)
θ
^
=
A
1
T
y
(\textbf{A}^T\textbf{A}+\lambda\textbf{F})\widehat{\theta}=\textbf{A}^T\textbf{y}\\ (\textbf{A}^T_1\textbf{A}+\lambda\textbf{F})\widehat{\theta}=\textbf{A}^T_1\textbf{y}
(ATA+λF)θ
=ATy(A1TA+λF)θ
=A1Ty
其中
A
1
T
A^T_1
A1T表示
A
T
A^T
AT的第一行,为
I
T
I^T
IT,
I
I
I为
n
×
1
n\times 1
n×1的全1列向量,则变为
(
I
T
A
+
λ
F
)
θ
^
=
I
T
y
[
n
,
0
,
0
,
.
.
.
,
0
]
1
×
d
T
θ
^
=
I
T
y
n
θ
^
1
=
I
T
y
θ
^
1
=
I
T
y
n
(I^T\textbf{A}+\lambda\textbf{F})\widehat{\theta}=I^T\textbf{y}\\ [n,0,0,...,0]^T_{1\times d}\widehat{\theta}=I^T\textbf{y}\\ n\widehat{\theta}_1=I^T\textbf{y}\\ \widehat{\theta}_1=\frac{I^T\textbf{y}}{n}
(ITA+λF)θ
=ITy[n,0,0,...,0]1×dTθ
=ITynθ
1=ITyθ
1=nITy
当正则化项是
λ
∑
j
=
1
d
θ
j
2
\lambda\sum^d_{j=1}\theta^2_j
λ∑j=1dθj2时,必然有
θ
~
=
(
A
T
A
+
λ
E
)
−
1
A
T
y
\widetilde{\theta}=(\textbf{A}^T\textbf{A}+\lambda\textbf{E})^{-1}\textbf{A}^T\textbf{y}
θ
=(ATA+λE)−1ATy
其中
E
E
E为
d
×
d
d\times d
d×d的单位矩阵
(
A
T
A
+
λ
E
)
θ
~
=
A
T
y
(
A
1
T
A
+
λ
E
)
θ
~
=
A
1
T
y
(
I
T
A
+
λ
E
)
θ
~
=
I
T
y
[
n
+
λ
,
0
,
0
,
.
.
.
,
0
]
1
×
d
T
θ
~
=
I
T
y
(
n
+
λ
)
θ
~
1
=
I
T
y
θ
~
1
=
I
T
y
n
+
λ
(\textbf{A}^T\textbf{A}+\lambda\textbf{E})\widetilde{\theta}=\textbf{A}^T\textbf{y}\\ (\textbf{A}^T_1\textbf{A}+\lambda\textbf{E})\widetilde{\theta}=\textbf{A}^T_1\textbf{y}\\ (I^T\textbf{A}+\lambda\textbf{E})\widetilde{\theta}=I^T\textbf{y}\\ [n+\lambda,0,0,...,0]^T_{1\times d}\widetilde{\theta}=I^T\textbf{y}\\ (n+\lambda)\widetilde{\theta}_1=I^T\textbf{y}\\ \widetilde{\theta}_1=\frac{I^T\textbf{y}}{n+\lambda}
(ATA+λE)θ
=ATy(A1TA+λE)θ
=A1Ty(ITA+λE)θ
=ITy[n+λ,0,0,...,0]1×dTθ
=ITy(n+λ)θ
1=ITyθ
1=n+λITy
因为有
(
A
1
T
A
+
λ
F
)
θ
^
=
(
A
1
T
A
+
λ
E
)
θ
~
=
A
1
T
y
=
I
T
y
(\textbf{A}^T_1\textbf{A}+\lambda\textbf{F})\widehat{\theta}= (\textbf{A}^T_1\textbf{A}+\lambda\textbf{E})\widetilde{\theta}=\textbf{A}^T_1\textbf{y}=I^T\textbf{y}
(A1TA+λF)θ
=(A1TA+λE)θ
=A1Ty=ITy
则有
(
A
T
A
+
λ
F
)
θ
^
=
(
A
T
A
+
λ
E
)
θ
~
=
A
T
y
=
[
I
T
y
,
a
2
,
1
×
θ
2
+
(
a
2
,
2
+
1
)
×
θ
3
+
.
.
.
+
a
2
,
d
×
θ
d
,
.
.
.
a
d
,
1
×
θ
2
+
a
d
,
2
×
θ
3
+
.
.
.
+
(
a
d
,
d
+
1
)
×
θ
d
]
]
(\textbf{A}^T\textbf{A}+\lambda\textbf{F})\widehat{\theta}= (\textbf{A}^T\textbf{A}+\lambda\textbf{E})\widetilde{\theta}=\textbf{A}^T\textbf{y}\\ =\left[\begin{array}{l} I^T\textbf{y},\\ a_{2,1}\times \theta_2+(a_{2,2}+1)\times \theta_3+...+a_{2,d}\times\theta_d,\\ ...\\ a_{d,1}\times \theta_2+a_{d,2}\times \theta_3+...+(a_{d,d}+1)\times\theta_d] \end{array}\right]
(ATA+λF)θ
=(ATA+λE)θ
=ATy=⎣⎢⎢⎡ITy,a2,1×θ2+(a2,2+1)×θ3+...+a2,d×θd,...ad,1×θ2+ad,2×θ3+...+(ad,d+1)×θd]⎦⎥⎥⎤
最后的结果矩阵相同,证明 θ ^ \widehat{\theta} θ 与 θ ~ \widetilde{\theta} θ 的第 2 ∼ d 2\sim d 2∼d位是相同的。