本文是邱锡鹏教授撰写的《神经网络与深度学习》一书中 第一部分:机器学习基础 的读书笔记,由于该部分比较基础,只记录一些本人觉得比较值得记录的内容,中间也会包括一些拓展和思考。
Note:平方损失函数一般不适用于分类问题
假设真实值
y
y
y 与 预测值
f
(
x
;
θ
)
f(x;\theta)
f(x;θ)的关系如下:
y
=
f
(
x
;
Θ
)
+
ϵ
\boldsymbol y = f(\boldsymbol x;\Theta) + \boldsymbol \epsilon
y=f(x;Θ)+ϵ
其中
ϵ
\epsilon
ϵ是误差函数,不失一般性,我们认为其服从正态分布
N
(
0
→
,
σ
2
I
)
\mathcal{N}(\mathop{0} \limits ^{\rightarrow},\sigma^2 I)
N(0→,σ2I),那么
y
\boldsymbol y
y应该服从分布
N
(
f
(
x
;
Θ
)
,
σ
2
I
)
\mathcal{N}(f(\boldsymbol x;\Theta),\sigma^2 I)
N(f(x;Θ),σ2I)
⇒
argmin
−
l
o
g
P
(
y
∣
x
;
Θ
)
=
argmin
−
l
o
g
∏
i
=
1
n
1
2
π
σ
e
x
p
(
−
(
y
−
f
(
x
i
;
θ
)
)
2
2
σ
2
)
=
argmin
−
∑
i
=
1
n
−
(
y
−
f
(
x
i
;
θ
)
)
2
2
σ
2
=
argmin
∑
i
=
1
n
(
y
−
f
(
x
i
;
θ
)
)
2
\begin{aligned} \Rightarrow \text{argmin} - logP(\boldsymbol y|\boldsymbol x;\Theta) &= \text{argmin} -log\prod_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma} exp(-\frac{(y-f(x_i;\theta))^2}{2\sigma^2})\\ &= \text{argmin} -\sum_{i=1}^n -\frac{(y-f(x_i;\theta))^2}{2\sigma^2}\\ &= \text{argmin} \sum_{i=1}^n (y-f(x_i;\theta))^2 \end{aligned}
⇒argmin−logP(y∣x;Θ)=argmin−logi=1∏n2π
σ1exp(−2σ2(y−f(xi;θ))2)=argmin−i=1∑n−2σ2(y−f(xi;θ))2=argmini=1∑n(y−f(xi;θ))2
因此,当误差函数满足高斯分布时,最大似然估计等价于平方损失函数
参见 最大似然估计与交叉熵
综上,最大后验估计是在最大似然估计的基础上加上了参数 Θ \Theta Θ 的先验信息。
1. 如果认为 Θ \Theta Θ 是常值,那么最大后验估计等价于最大似然估计
2. 如果认为 Θ \Theta Θ 服从正态分布 N ( 0 → , 1 λ I ) \mathcal{N}(\mathop{0} \limits ^{\rightarrow},\frac{1}{\lambda}I) N(0→,λ1I),则 − l o g P ( Θ ) = l o g 1 2 π λ − 1 2 λ Θ T Θ - log P(\Theta) = log\frac{1}{\sqrt{2\pi \lambda}} - \frac{1}{2}\lambda \Theta^T \Theta −logP(Θ)=log2πλ 1−21λΘTΘ, 与 λ ∣ ∣ Θ ∣ ∣ 2 \lambda||\Theta||_2 λ∣∣Θ∣∣2 成正比,也就是说 最大后验估计 = 最大似然估计 + L 2 L_2 L2正则化
1. 如果认为 Θ \Theta Θ 服从Laplace分布 L a p l a c e ( 0 → , 1 λ I ) \mathcal{Laplace}(\mathop{0} \limits ^{\rightarrow},\frac{1}{\lambda}I) Laplace(0→,λ1I),则 − l o g P ( Θ ) = − l o g λ 2 e x p ( − λ ∣ Θ ∣ ) -log P(\Theta) = -log \frac{\lambda}{2} exp(-\lambda|\Theta|) −logP(Θ)=−log2λexp(−λ∣Θ∣),与 λ ∣ ∣ Θ ∣ ∣ 1 \lambda||\Theta||_1 λ∣∣Θ∣∣1成正比,也就是说 最大后验估计 = 最大似然估计 + L 1 L_1 L1正则化
#########################################################################
对于线性回归 f ( x ; w ) = w T x f(\boldsymbol x;\boldsymbol w) = \boldsymbol w^T \boldsymbol x f(x;w)=wTx,其平方损失: L ( w ) = 1 2 ∣ ∣ y − X T w ∣ ∣ 2 L(\boldsymbol w)= \frac{1}{2} || \boldsymbol y - \boldsymbol X^T \boldsymbol w ||^2 L(w)=21∣∣y−XTw∣∣2,用最小二乘法可得 w \boldsymbol w w的解析解为: w = ( X T X ) − 1 X y \boldsymbol w = (\boldsymbol X^T \boldsymbol X)^{-1} \boldsymbol X \boldsymbol y w=(XTX)−1Xy。
但这个要求
X
T
X
\boldsymbol X^T \boldsymbol X
XTX 可逆阵,而实际使用中,仅仅可逆还不够,如果
X
T
X
\boldsymbol X^T \boldsymbol X
XTX可逆,但有接近于0的特征值,仍会使得数据集
X
\boldsymbol X
X一点点小的扰动就让
(
X
T
X
)
−
1
(\boldsymbol X^T \boldsymbol X)^{-1}
(XTX)−1 的值变化很大,为了解决这个问题,有人提出了岭回归,给
X
T
X
\boldsymbol X^T \boldsymbol X
XTX的对角线元素都加上一个常数
α
\alpha
α,使得
X
T
X
+
α
I
\boldsymbol X^T \boldsymbol X + \alpha \boldsymbol I
XTX+αI 求逆稳定:
w
=
(
X
T
X
+
α
I
)
−
1
X
y
\boldsymbol w = (\boldsymbol X^T \boldsymbol X + \alpha \boldsymbol I)^{-1} \boldsymbol X \boldsymbol y
w=(XTX+αI)−1Xy
而上式恰好等价于给平方损失加上L2正则化:
L
(
w
)
=
1
2
∣
∣
y
−
X
T
w
∣
∣
2
+
1
2
α
∣
∣
w
∣
∣
2
L(\boldsymbol w) = \frac{1}{2} || \boldsymbol y - \boldsymbol X^T \boldsymbol w ||^2 + \frac{1}{2} \alpha ||\boldsymbol w||^2
L(w)=21∣∣y−XTw∣∣2+21α∣∣w∣∣2
那么我们就知道了L2正则化的第一个作用:L2正则化可以使得求解更稳定!
继续观察
w
=
(
X
T
X
+
α
I
)
−
1
X
y
\boldsymbol w = (\boldsymbol X^T \boldsymbol X + \alpha \boldsymbol I)^{-1} \boldsymbol X \boldsymbol y
w=(XTX+αI)−1Xy,它可以分解成:
w
=
(
X
T
X
+
α
I
)
−
1
X
T
X
⋅
w
^
=
(
Q
T
Γ
Q
+
α
Q
T
Q
)
−
1
Q
T
Γ
Q
⋅
w
^
=
(
Γ
Q
+
α
Q
)
−
1
Γ
Q
⋅
w
^
=
Q
−
1
(
Γ
+
α
I
)
−
1
Γ
Q
⋅
w
^
=
Q
T
(
Γ
+
α
I
)
−
1
Γ
Q
⋅
w
^
\begin{aligned} \boldsymbol w &= (\boldsymbol X^T \boldsymbol X + \alpha \boldsymbol I)^{-1} \boldsymbol X^T \boldsymbol X \cdot \hat{\boldsymbol w}\\ &= (\boldsymbol Q^T \Gamma \boldsymbol Q + \alpha \boldsymbol Q^T \boldsymbol Q) ^{-1} \boldsymbol Q^T \Gamma \boldsymbol Q \cdot \hat{\boldsymbol w}\\ &= (\Gamma \boldsymbol Q+ \alpha \boldsymbol Q) ^{-1} \Gamma \boldsymbol Q \cdot \hat{\boldsymbol w}\\ &= \boldsymbol Q^{-1} (\Gamma + \alpha \boldsymbol I)^{-1} \Gamma \boldsymbol Q \cdot \hat{\boldsymbol w}\\ &= \boldsymbol Q^T (\Gamma + \alpha \boldsymbol I)^{-1} \Gamma \boldsymbol Q \cdot \hat{\boldsymbol w} \end{aligned}
w=(XTX+αI)−1XTX⋅w^=(QTΓQ+αQTQ)−1QTΓQ⋅w^=(ΓQ+αQ)−1ΓQ⋅w^=Q−1(Γ+αI)−1ΓQ⋅w^=QT(Γ+αI)−1ΓQ⋅w^
其中
w
^
=
(
X
T
X
)
−
1
X
y
\hat{\boldsymbol w} = (\boldsymbol X^T \boldsymbol X)^{-1} \boldsymbol X \boldsymbol y
w^=(XTX)−1Xy 是原始没有加L2正则化时的解。
假如
λ
i
\lambda_i
λi是
X
T
X
=
Q
T
Γ
Q
\boldsymbol X^T \boldsymbol X = \boldsymbol Q^T \Gamma \boldsymbol Q
XTX=QTΓQ的特征值,那么
λ
i
λ
i
+
α
\frac{\lambda_i}{\lambda_i + \alpha}
λi+αλi就是
Q
T
(
Γ
+
α
I
)
−
1
Γ
Q
\boldsymbol Q^T (\Gamma + \alpha \boldsymbol I)^{-1} \Gamma \boldsymbol Q
QT(Γ+αI)−1ΓQ的特征值。
⇒
(
Q
w
)
i
=
λ
i
λ
i
+
α
(
Q
w
^
)
i
\Rightarrow (\boldsymbol Q \boldsymbol w)_i = \frac{\lambda_i}{\lambda_i + \alpha} (\boldsymbol Q \hat{\boldsymbol w})_i
⇒(Qw)i=λi+αλi(Qw^)i
也就是说:在变换 Q \boldsymbol Q Q 下, w i \boldsymbol w_i wi 相对于 w i ^ \hat{\boldsymbol w_i} wi^都变小了,而且变小的强度跟 λ i \lambda_i λi成反比。
由于这里 L ( w ^ ) ∂ 2 w ^ = X T X \frac{L(\hat{\boldsymbol w})}{\partial^2 \hat{\boldsymbol w}} = \boldsymbol X^T \boldsymbol X ∂2w^L(w^)=XTX,因此 X T X \boldsymbol X^T \boldsymbol X XTX 是损失函数 L ( w ) L(\boldsymbol w) L(w) 的海森阵,反映的是损失函数 L ( w ^ ) L(\hat{\boldsymbol w}) L(w^) 的凸性, λ i \lambda_i λi 越大,表示凸性越强。再结合上面的结果,我们可以得到L2正则化的第二个作用:
在正交变换 Q \boldsymbol Q Q 下,削减 w ^ \hat{\boldsymbol w} w^ 各方向上的权值,削减比例由损失函数 L ( w ^ ) L(\hat{\boldsymbol w}) L(w^) 在这个方向的凸性决定:
凸性越强, λ i \lambda_i λi越大,说明这个方向上 w ^ \hat{\boldsymbol w} w^的变化对 L ( w ^ ) L(\hat{\boldsymbol w}) L(w^)影响大, 那么这个方向上对 w ^ \hat{\boldsymbol w} w^ 的削减就小
反之凸性越弱, λ i \lambda_i λi越小,说明这个方向上 w ^ \hat{\boldsymbol w} w^的变化对 L ( w ^ ) L(\hat{\boldsymbol w}) L(w^)影响小, 那么这个方向上对 w ^ \hat{\boldsymbol w} w^ 的削减就大
#########################################################################
对于分类模型,假如有 C C C 个类别,那么对于任意类别 c c c,有:
精确率,也叫查准率,类别
c
c
c 的查准率是所有预测为类别
c
c
c 的样本中预测正确的比例:
P
c
=
T
P
c
T
P
c
+
F
P
c
\mathcal{P_c} = \frac{TP_c}{TP_c+FP_c}
Pc=TPc+FPcTPc
召回率,也叫查全率,类别
c
c
c 的查全率是所有真实标签为类别
c
c
c 的样本中预测正确的比例:
R
c
=
T
P
c
T
P
c
+
F
N
c
\mathcal{R_c} = \frac{TP_c}{TP_c+FN_c}
Rc=TPc+FNcTPc
F1 score,是一个综合指标,为精确率和召回率的调和平均:
F
c
=
2
∗
P
c
R
c
P
c
+
R
c
\mathcal{F_c} = \frac{2*\mathcal{P_c}\mathcal{R_c}}{\mathcal{P_c}+\mathcal{R_c}}
Fc=Pc+Rc2∗PcRc
计算分类算法在所有类别上的总体精确率,召回率和F1 score:
P
=
1
C
∑
c
=
1
C
P
c
R
=
1
C
∑
c
=
1
C
R
c
F
=
2
∗
P
R
P
+
R
\begin{aligned} \mathcal{P} &= \frac{1}{C}\sum_{c=1}^C \mathcal{P_c}\\ \mathcal{R} &= \frac{1}{C}\sum_{c=1}^C \mathcal{R_c}\\ \mathcal{F} &= \frac{2*\mathcal{P}\mathcal{R}}{\mathcal{P}+\mathcal{R}} \end{aligned}
PRF=C1c=1∑CPc=C1c=1∑CRc=P+R2∗PR
交叉验证(Cross-Validation)是一种比较好的衡量机器学习模型的统计分析方法,可以有效避免划分训练集和测试集时的随机性对评价结果造成的影响.我们可以把原始数据集平均分为 K K K 组不重复的子集,每次选 K − 1 K-1 K−1 组子集作为训练集,剩下的一组子集作为验证集.这样可以进行 K K K 次试验并得到 K K K 个模型,将这 K K K 个模型在各自验证集上的错误率的平均作为分类器的评价.
Reference: