文章目录
Week 4: 深度学习补遗:分类任务
摘要
本周将继续学习李宏毅老师的课程。主要深入探讨模型训练中的两个核心议题:过拟合与分类任务。在本周的学习过程中,理解过拟合问题以及了解其解决方案。同时,对分类任务的数学原理,包括概率模型、极大似然估计以及后验概率等的数学原理进行了了解、阐述与推导。
Abstract
This week, I continued to study Professor Li Hongyi’s course. I mainly explored two core issues in model training: overfitting and classification tasks. In this week’s learning process, I understood the overfitting problem and its solution. At the same time, I understood, explained and deduced the mathematical principles of classification tasks, including probability models, maximum likelihood estimation and posterior probability.
1. 过拟合
跟随着李宏毅老师的课程,在课程ML讲座1:回归 - 案例研究中,利用十个宝可梦进化后的CP值与进化前的CP值作为训练集,设定五个简单的函数模型进行训练,分别带有1到
n
n
n次项。
{
y
=
b
+
w
⋅
x
c
p
y
=
b
+
w
1
⋅
x
c
p
+
w
2
⋅
x
c
p
2
y
=
b
+
w
1
⋅
x
c
p
+
w
2
⋅
x
c
p
2
+
w
3
⋅
x
c
p
3
y
=
b
+
w
1
⋅
x
c
p
+
w
2
⋅
x
c
p
2
+
w
3
⋅
x
c
p
3
+
w
4
⋅
x
c
p
4
y
=
b
+
w
1
⋅
x
c
p
+
w
2
⋅
x
c
p
2
+
w
3
⋅
x
c
p
3
+
w
4
⋅
x
c
p
4
+
w
5
⋅
x
c
p
5
\begin{cases} y=b + w\cdot x_{cp} \\ y=b + w_1\cdot x_{cp} + w_2\cdot x_{cp}^2 \\ y=b + w_1\cdot x_{cp} + w_2\cdot x_{cp}^2 + w_3\cdot x_{cp}^3 \\ y=b + w_1\cdot x_{cp} + w_2\cdot x_{cp}^2 + w_3\cdot x_{cp}^3 + w_4\cdot x_{cp}^4 \\ y=b + w_1\cdot x_{cp} + w_2\cdot x_{cp}^2 + w_3\cdot x_{cp}^3 + w_4\cdot x_{cp}^4 + w_5\cdot x_{cp}^5 \end{cases}
⎩
⎨
⎧y=b+w⋅xcpy=b+w1⋅xcp+w2⋅xcp2y=b+w1⋅xcp+w2⋅xcp2+w3⋅xcp3y=b+w1⋅xcp+w2⋅xcp2+w3⋅xcp3+w4⋅xcp4y=b+w1⋅xcp+w2⋅xcp2+w3⋅xcp3+w4⋅xcp4+w5⋅xcp5
训练结果如下:
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| Training | 31.9 | 15.4 | 15.3 | 14.9 | 12.8 |
| Testing | 35.0 | 18.4 | 18.1 | 28.2 | 232.1 |
可见随着模型复杂度提升,训练集上的 L o s s Loss Loss逐渐降低,但是测试集的 L o s s Loss Loss在模型加入四次项以后开始暴增,但训练集上的 L o s s Loss Loss仍在降低,这就是出现了过拟合。
在过拟合出现后,有多种思路可以考虑用于减低过拟合程度。
1.1 数据集优化
首先,可以增加数据量,提高数据集的多样化程度,从而提高模型的泛化能力。
1.2 模型结构优化
其次,可以考虑重新设计模型结构,使其能够更加恰当的适应应用场景。例如,对于宝可梦的CP值进化后数值预测,CP值的变化幅度会根据宝可梦的属性变化,于是可以考虑在模型函数中对宝可梦类别进行区分,比如:
y
=
(
b
1
+
w
1
⋅
x
c
p
)
⋅
δ
(
X
s
=
P
i
d
g
e
y
)
+
(
b
2
+
w
2
⋅
x
c
p
)
⋅
δ
(
X
s
=
W
e
e
d
l
e
)
+
…
y= (b_1+ w_1 \cdot x_{cp}) \cdot \delta(X_s=Pidgey) + (b_2+ w_2 \cdot x_{cp}) \cdot \delta(X_s=Weedle) + \dots
y=(b1+w1⋅xcp)⋅δ(Xs=Pidgey)+(b2+w2⋅xcp)⋅δ(Xs=Weedle)+…
即相当于:
y
=
b
+
∑
w
i
x
i
y=b+\sum w_ix_i
y=b+∑wixi
这样就把各个类别的模型区分开了,经过了模型的重新设计,将模型的Training Error降低到了1.9。
1.3 正则化
通过引入L2正则化,即权重衰减,对损失函数进行惩罚,也可以削弱过拟合。
L
=
∑
n
(
y
^
n
−
(
b
+
∑
w
i
x
i
)
)
2
+
λ
∑
(
w
i
)
2
L=\sum_n(\hat y_n-(b+\sum w_ix_i))^2 + \lambda\sum(w_i)^2
L=n∑(y^n−(b+∑wixi))2+λ∑(wi)2
通过引入平方惩罚项
λ
∑
(
w
i
)
2
\lambda\sum(w_i)^2
λ∑(wi)2,可以让损失函数加上权重的平方,随着权重的增加按其平方增加损失,模型训练过程中便会倾向于将
w
i
w_i
wi减小,宏观上会表现为分散权重,避免过于依赖某一个特征,从而避免过拟合。
对于原函数,形式变化为:
y
=
b
+
∑
w
i
x
i
+
Δ
x
i
y=b+\sum w_ix_i+\Delta x_i
y=b+∑wixi+Δxi
也会变得更加平滑,即倾向于对数据集中的噪声更加鲁棒。
在正则化后,训练结果优化如下:
| λ \lambda λ | 0 | 1 | 10 | 100 | 1000 | 10000 | 100000 |
|---|---|---|---|---|---|---|---|
| Training | 1.9 | 2.3 | 3.5 | 4.1 | 5.6 | 6.3 | 8.5 |
| Testing | 102.3 | 68.7 | 25.7 | 11.1 | 12.8 | 18.7 | 26.8 |
可以看到,在引入正则化后,过拟合现象得到了显著改善,但在惩罚项的 λ \lambda λ过大时同样会降低模型的收敛能力,因此 λ \lambda λ也是一个需要指定的超参数。
参考视频节点:ML讲座1:回归 - 案例研究
2.分类任务
对于一个多分类任务而言,定义损失函数为:
L
(
f
)
=
∑
n
δ
(
f
(
x
n
)
≠
y
n
^
)
L(f)=\sum_n{\delta(f(x^n)\neq{\hat{y^n}})}
L(f)=n∑δ(f(xn)=yn^)
即将损失函数定义为训练集中预测结果与真实类别不同的数量。
利用贝叶斯公式,对于两个种类
C
1
C_1
C1、
C
2
C_2
C2,
x
x
x是有可能出现在
C
1
C_1
C1、
C
2
C_2
C2中的特征。
P
(
C
1
∣
x
)
P(\left.C_1\right|x)
P(C1∣x)代表了特征
x
x
x出现在
C
1
C_1
C1中的概率,
P
(
x
∣
C
1
)
P(\left.x\right|C_1)
P(x∣C1)是代表了
C
1
C_1
C1中出现特征
x
x
x的概率,
P
(
C
1
)
P(C_1)
P(C1)代表
C
1
C_1
C1出现的概率,有:
P
(
C
1
∣
x
)
=
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
P(\left.C_1\right|x)=\frac{P(\left.x\right|C_1)P(C_1)}{P(\left.x\right|C_1)P(C_1)+P(\left.x\right|C_2)P(C_2)}
P(C1∣x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C1)P(C1)
其中,
P
(
C
1
∣
x
)
P(\left.C1\right|x)
P(C1∣x)、
P
(
C
2
∣
x
)
P(\left.C2\right|x)
P(C2∣x)、
P
(
C
1
)
P(C1)
P(C1)、
P
(
C
2
)
P(C2)
P(C2)为先验概率(Prior Probability),即根据以往经验和分析得到的概率,需要在训练集中估算出来。利用这个模型进行预测方法是:
P
(
x
)
=
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
P(x)=P(\left.x\right|C_1)P(C_1)+P(\left.x\right|C_2)P(C_2)
P(x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)
2.1 高斯分布
在计算先验概率时,需要对训练集中特征的分布进行拟合,这时候就可以使用高斯分布(即正态分布)作为一种拟合方式。高斯分布函数的输入为特征向量
x
x
x,输出为
x
x
x从这个分布中抽出的概率。
f
μ
,
Σ
(
x
)
=
1
(
2
π
)
D
2
Σ
1
2
⋅
e
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
f_{\mu,\Sigma}(x)=\frac{1}{(2\pi)^{\frac{D}{2}}\Sigma^{\frac{1}{2}}}\cdot e^{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)}
fμ,Σ(x)=(2π)2DΣ211⋅e−21(x−μ)TΣ−1(x−μ)
其中, D D D表示维度, μ \mu μ是 D D D维期望向量, Σ \Sigma Σ是 D × D D\times D D×D维协方差矩阵。从几何上来看,可以理解为 μ \mu μ为一个点, Σ \Sigma Σ为一个范围,如果 x x x离 Σ \Sigma Σ越远,则概率值越小。
2.2 极大似然估计
不同的高斯分布对原分布的似然效果不同,而需要找到对原分布似然效果最好的一对参数
(
μ
,
Σ
)
(\mu,\Sigma)
(μ,Σ),似然值即高斯分布函数采样出原分布点的可能性,定义为
L
(
μ
,
Σ
)
L(\mu,\Sigma)
L(μ,Σ)。
L
(
μ
,
Σ
)
=
f
μ
,
Σ
(
x
1
)
f
μ
,
Σ
(
x
2
)
…
f
μ
,
Σ
(
x
n
)
L(\mu,\Sigma)=f_{\mu,\Sigma}(x^1)f_{\mu,\Sigma}(x^2)\dots f_{\mu,\Sigma}(x^n)
L(μ,Σ)=fμ,Σ(x1)fμ,Σ(x2)…fμ,Σ(xn)
令 μ ∗ , Σ ∗ = a r g max μ , Σ L ( μ , Σ ) \mu^*,\Sigma^*=arg\underset{\mu,\Sigma}{\max}L(\mu,\Sigma) μ∗,Σ∗=argμ,ΣmaxL(μ,Σ)。
在课程中宝可梦分类任务中, μ ∗ = 1 n ∑ i = 1 n x i \mu^*=\frac{1}{n}\sum_{i=1}^n x^i μ∗=n1∑i=1nxi,即均值,也可以将 L ( μ , Σ ) L(\mu,\Sigma) L(μ,Σ)对 μ \mu μ求偏导取零点,即取 L μ ′ ( μ , Σ ) = 0 L^{'}_{\mu}(\mu,\Sigma)=0 Lμ′(μ,Σ)=0; Σ ∗ = 1 n ∑ i = 1 n ( x i − μ ∗ ) ( x i − μ ∗ ) T \Sigma^*=\frac{1}{n}\sum^n_{i=1}(x^i-\mu^*)(x^i-\mu^*)^T Σ∗=n1∑i=1n(xi−μ∗)(xi−μ∗)T,用这种方法就能计算出 μ ∗ , Σ ∗ \mu^*,\Sigma^* μ∗,Σ∗。
得出 μ ∗ , Σ ∗ \mu^*,\Sigma^* μ∗,Σ∗后,就可以对样本进行预测,计算出的 P ( C 1 ) P(C_1) P(C1)就是样本 x x x属于类目 C 1 C_1 C1的概率,取最大的概率的类为其预测结果。
在这种情况下,每个类别会存在不同的
μ
∗
,
Σ
∗
\mu^*,\Sigma^*
μ∗,Σ∗,为了提高模型分类效率,尝试将
Σ
∗
\Sigma^*
Σ∗变为公共的,遵循以下的方法:
Σ
=
Class 1 Num
Total
Σ
1
+
Class 2 Num
Total
Σ
2
+
…
\Sigma=\frac{\text{Class 1 Num}}{\text{Total}}\Sigma^1+\frac{\text{Class 2 Num}}{\text{Total}}\Sigma^2+\dots
Σ=TotalClass 1 NumΣ1+TotalClass 2 NumΣ2+…
共用
Σ
\Sigma
Σ可以增加泛化能力,减少过拟合,从而增强模型预测能力。
2.3 概率分布
也可以不使用高斯分布进行先验概率的估计,还可以考虑使用概率分布来进行估计,例如在二元分类问题上,可以考虑使用伯努利分布来进行估计,而在各特征独立的情况下,还可以考虑使用朴素贝叶斯分类器。
2.4 后验概率
后验概率(Posterior Probability),即大量试验中随机事件出现的频率逐渐稳定于其附近的某常数。
对
P
(
C
1
∣
x
)
P(\left.C_1\right|x)
P(C1∣x)的概率分布进行展开、推导:
P
(
C
1
∣
x
)
=
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
=
1
1
+
P
(
x
∣
C
2
)
P
(
C
2
)
P
(
x
∣
C
1
)
P
(
C
1
)
=
1
1
+
e
−
z
=
σ
(
z
)
z
=
ln
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
2
)
P
(
C
2
)
\begin{aligned} P(\left.C_1\right|x) &=\frac{P(\left.x\right|C_1)P(C_1)}{P(\left.x\right|C_1)P(C_1)+P(\left.x\right|C_2)P(C_2)} \\ &=\frac{1}{1+\frac{P(\left.x\right|C_2)P(C_2)}{P(\left.x\right|C_1)P(C_1)}} = \frac{1}{1+e^{-z}} = \sigma(z) \\ z &= \ln\frac{P(\left.x\right|C_1)P(C_1)}{P(\left.x\right|C_2)P(C_2)} \end{aligned}
P(C1∣x)z=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C1)P(C1)=1+P(x∣C1)P(C1)P(x∣C2)P(C2)1=1+e−z1=σ(z)=lnP(x∣C2)P(C2)P(x∣C1)P(C1)
可以把
P
(
C
1
∣
x
)
P(\left.C_1\right|x)
P(C1∣x)拆解为关于
z
z
z的
S
i
g
m
o
i
d
Sigmoid
Sigmoid函数表达式。
z
=
ln
P
(
x
∣
C
1
)
P
(
x
∣
C
2
)
⋅
ln
P
(
C
1
)
P
(
C
2
)
∵
P
(
C
1
)
=
C
1
C
1
+
C
2
P
(
C
2
)
=
C
2
C
1
+
C
2
∴
P
(
C
1
)
P
(
C
2
)
=
C
1
C
2
同理可得,
ln
P
(
x
∣
C
1
)
P
(
x
∣
C
2
)
=
ln
∣
Σ
2
∣
1
2
∣
Σ
1
∣
1
2
−
1
2
(
(
x
−
μ
1
)
T
⋅
(
Σ
1
)
⋅
(
x
−
μ
1
)
−
(
x
−
μ
2
)
T
⋅
(
Σ
2
)
⋅
(
x
−
μ
2
)
)
当
Σ
1
=
Σ
2
=
Σ
时,
z
=
(
μ
1
−
μ
2
)
T
⋅
(
Σ
)
−
1
‾
w
⋅
x
+
1
2
(
(
μ
1
)
T
⋅
Σ
1
⋅
μ
1
−
(
μ
2
)
T
⋅
Σ
2
⋅
μ
2
)
+
ln
C
1
C
2
‾
b
\begin{aligned} z &= \ln\frac{P(\left.x\right|C_1)}{P(\left.x\right|C_2)} \cdot\ln\frac{P(C_1)}{P(C_2)}\\ \because P(C_1) &= \frac{C_1}{C_1 + C_2} \\ P(C_2) &= \frac{C_2}{C_1 + C_2} \\ \therefore \frac{P(C_1)}{P(C_2)}&= \frac {C_1}{C_2} \\ 同理可得,\ln\frac{P(\left.x\right|C_1)}{P(\left.x\right|C_2)}&=\ln\frac{|\Sigma^2|^{\frac{1}{2}}}{|\Sigma^1|^{\frac{1}{2}}}-\frac{1}{2}((x-\mu^1)^T\cdot(\Sigma^1)\cdot(x-\mu^1)-(x-\mu^2)^T\cdot(\Sigma^2)\cdot(x-\mu^2)) \\ 当\Sigma^1=\Sigma^2=\Sigma时,z&=\underset{w}{\underline{(\mu^1-\mu^2)^T\cdot(\Sigma)^{-1}}}\cdot x + \underset{b}{\underline{\frac{1}{2}((\mu^1)^T\cdot\Sigma^1\cdot\mu^1-(\mu^2)^T\cdot\Sigma^2\cdot\mu^2) + \ln\frac{C_1}{C_2}}} \\ \end{aligned}
z∵P(C1)P(C2)∴P(C2)P(C1)同理可得,lnP(x∣C2)P(x∣C1)当Σ1=Σ2=Σ时,z=lnP(x∣C2)P(x∣C1)⋅lnP(C2)P(C1)=C1+C2C1=C1+C2C2=C2C1=ln∣Σ1∣21∣Σ2∣21−21((x−μ1)T⋅(Σ1)⋅(x−μ1)−(x−μ2)T⋅(Σ2)⋅(x−μ2))=w(μ1−μ2)T⋅(Σ)−1⋅x+b21((μ1)T⋅Σ1⋅μ1−(μ2)T⋅Σ2⋅μ2)+lnC2C1
模型最终被简化为了 z = w x + b z=wx+b z=wx+b的形式,可见在共用 Σ \Sigma Σ后类别的分界会变为一个线性的函数。
总结
在本周的学习中,对过拟合现象的出现以及解决方案进行了了解和理解,主要对L2正则化的实现方式及其效果进行了认识。同时,对于另一大类问题——分类问题的数学本质进行了推导和理解,回忆和联系了贝叶斯公式等知识, 对分类问题进行了初步了解,下周将进入逻辑回归章节的学习。
504

被折叠的 条评论
为什么被折叠?



