Week 4: 深度学习补遗:分类任务

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+wxcpy=b+w1xcp+w2xcp2y=b+w1xcp+w2xcp2+w3xcp3y=b+w1xcp+w2xcp2+w3xcp3+w4xcp4y=b+w1xcp+w2xcp2+w3xcp3+w4xcp4+w5xcp5

训练结果如下:

12345
Training31.915.415.314.912.8
Testing35.018.418.128.2232.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+w1xcp)δ(Xs=Pidgey)+(b2+w2xcp)δ(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 λ0110100100010000100000
Training1.92.33.54.15.66.38.5
Testing102.368.725.711.112.818.726.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(C1x)代表了特征 x x x出现在 C 1 C_1 C1中的概率, P ( x ∣ C 1 ) P(\left.x\right|C_1) P(xC1)是代表了 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(C1x)=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)

其中, P ( C 1 ∣ x ) P(\left.C1\right|x) P(C1x) P ( C 2 ∣ x ) P(\left.C2\right|x) P(C2x) 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(xC1)P(C1)+P(xC2)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Σ211e21(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 μ=n1i=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 Σ=n1i=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(C1x)的概率分布进行展开、推导:
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(C1x)z=P(xC1)P(C1)+P(xC2)P(C2)P(xC1)P(C1)=1+P(xC1)P(C1)P(xC2)P(C2)1=1+ez1=σ(z)=lnP(xC2)P(C2)P(xC1)P(C1)
可以把 P ( C 1 ∣ x ) P(\left.C_1\right|x) P(C1x)拆解为关于 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} zP(C1)P(C2)P(C2)P(C1)同理可得,lnP(xC2)P(xC1)Σ1=Σ2=Σ时,z=lnP(xC2)P(xC1)lnP(C2)P(C1)=C1+C2C1=C1+C2C2=C2C1=lnΣ121Σ22121((xμ1)T(Σ1)(xμ1)(xμ2)T(Σ2)(xμ2))=w(μ1μ2)T(Σ)1x+b21((μ1)TΣ1μ1(μ2)TΣ2μ2)+lnC2C1

模型最终被简化为了 z = w x + b z=wx+b z=wx+b的形式,可见在共用 Σ \Sigma Σ后类别的分界会变为一个线性的函数。

总结

在本周的学习中,对过拟合现象的出现以及解决方案进行了了解和理解,主要对L2正则化的实现方式及其效果进行了认识。同时,对于另一大类问题——分类问题的数学本质进行了推导和理解,回忆和联系了贝叶斯公式等知识, 对分类问题进行了初步了解,下周将进入逻辑回归章节的学习。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值