正则化、dropout、roc与F1度量

第一节 正则化

1. 基本概念

在机器学习与深度学习中,经常会遇到“正则化”这个词,但是却不知道这个词具体所代表的含义与应用途径,接下来我将简单说一下正则化这个看起来很难理解的名词究竟包含哪些内容。
先说一下两个概念:过拟合与欠拟合。
过拟合其实就是训练性能太好,导致泛化性能反而不好。与之相对的则是欠拟合。
模型过拟合是由于过分考虑了数据关联及噪声数据,过分追求“小偏差”使模型过于复杂,导致拟合的数据分布与真实分布偏差很小但方差过大;与之相反的欠拟合则是二者方差小偏差大。而正则项在这里用来平衡”方差”和“偏差“,起到了一个“平衡”的作用。
正则化的概念
对原始损失函数引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称,也就是目标函数变成了原始损失函数+额外项。

由于正则化的主要对象是模型的代价函数(损失函数),所以在这里先将这个函数的基本形式给出:
在这里插入图片描述
上式中的θ即模型参数,在很多损失函数里也用w来表示。
在正则化这个方法内,一共有三种不同的正则化方式:

  • L0正则化:使用L0范数来规则化参数矩阵W,即希望W的大部分元素都是0(让W是稀疏的)。L0范数指向量中非0元素的个数。
  • L1正则化:使用L1范数来规则化参数矩阵W,也是让W稀疏。L1范数指向量中各个元素的绝对值之和,又称“稀疏规则算子”。
  • L2正则化:对损失函数增加惩罚项(正则化项)以使得模型参数值下降来缓解过拟合现象。L2范数指向量各元素的平方和然后求平方根。
    这三种正则化的方法涉及到了范数概念,故这里给出一些常用范数:
    在这里插入图片描述

从以上三个正则化方法可以看出,L0与L1正则化是想让参数矩阵W更稀疏,而L2则是让参数值更小,接下来探讨这两个问题。

  1. 实现参数的稀疏有什么好处:
    实现参数的稀疏可以简化模型,防止过拟合,因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,那么可以对训练数据可以预测的很好,但是对测试数据表现性能极差。另一个好处是参数变少可以使整个模型获得更好的可解释性。
  2. 参数值下降对模型有什么好处:
    参数越小模型越简单。因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。还有另一种基于线性模型来说明的方法,这种方法在下文讲到L2时会做详细说明。

2. L0正则化与L1正则化

L0正则化与L1正则化都是使矩阵W稀疏的方法,但是在日常使用时,我们大多数情况使用的都是L1正则化。从上面的范数定义可以看出,L0范数是不连续的,不可求导的,并且L0范数相比于L1范数很难优化求解。所以现在基本都只使用L1正则化。
可知带L1正则化的损失函数为:在这里插入图片描述
L1的几何图示如图:在这里插入图片描述
图中等值线为J0,黑色矩形是正则化项的图形。可见两图线相交处就是最优解,由于L1正则化图形是由突出的方形,故在最小化损失函数的时候,损失函数的曲线最有可能与L1矩形相交于突出部分,而这些突出部分恰好是某一些参数w为0的点,这样就实现了使矩阵W稀疏的方法,同时由于部分参数w消失,也可以在一定程度上让模型曲线更加的平滑,缓解过拟合(这一点在下文L2的讲解中提及)。

3. L2正则化

现在机器学习的任务中,最常用的正则化方法是L2正则化。此处我主要参考来源是吴恩达机器学习课程,链接如下:https://www.bilibili.com/video/BV164411b7dx?from=search&seid=8924213076067658113&spm_id_from=333.337.0.0

给出线性回归的三种情况示意图:在这里插入图片描述
可见,随着特征的增加,训练数据上的损失函数最终几乎为0,此时已经到了过拟合的情况,因为这种时候这个曲线的泛化性能不一定好。
在逻辑回归中也类似,图如下:在这里插入图片描述
此时介绍如何通过L2正则化的方法来缓解过拟合,我们以线性回归的损失函数为例。
在这里插入图片描述
我们想尽可能的使右边的曲线弯曲程度更像左边的曲线,以缓解过拟合。于是考虑加入惩罚项(正则化项)使得θ3和θ4足够小。
而后我们的损失函数可以变为:在这里插入图片描述
由于θ3和θ4的系数很大,而要最小化这个损失函数,就要尽可能使得θ3和θ4小,所以θ3和θ4会接近于0,类似我们几乎忽略了两个值,这个时候我们将得到一个更平滑的曲线:在这里插入图片描述
很明显这个时候模型的过拟合情况已经被极大地改善了。
更一般的情况下,我们给出了过拟合背后的思路。在这里插入图片描述这种思路就是,如果我们的参数值对应一个较小值的话(参数值比较小),那么往往我们会得到一个形式更简单的假设。
在损失函数之后的添加的那一项我们称为正则化项:在这里插入图片描述
这里的λ称为正则化参数。正则化参数越大,就意味着惩罚措施越大,那么θj就越接近0,明显是不可取的,所以λ的取值是一个关键。
而正则化体现在梯度下降的过程中时,有如下:在这里插入图片描述
可见在更新权值时,因为正则化项的加入,所以每一次更新的权值都更小了,所以这也被称为权重衰减,λ也被称为权重衰减系数
那么为什么权重变小了,会缓解过拟合呢?

  1. 从模型的复杂度上解释:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合更好(这个法则也叫做奥卡姆剃刀),而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果。
  2. 从数学方面的解释:过拟合的时候,拟合函数的系数往往非常大,因为过拟合就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

第二节 Dropout

参考:https://blog.csdn.net/program_developer/article/details/80737724

1. 什么是dropout

Dropout可以作为训练深度神经网络的一种trick供选择。在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少特征检测器(隐层节点)间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥作用。
简单说就是:我们在前向传播的时候,让某个神经元的激活值以一定的概率p(常取0.5)停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。
在这里插入图片描述

2. dropout工作过程

正常的网络流程是,把输入通过网络前向传播,然后把误差反向传播以决定如何更新参数让网络学习,然而使用dropout后,过程变为如下:

  1. 首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变
  2. 然后把输入通过修改后的网络前向传播,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数。
  3. 然后重复如下过程:
    • 恢复被删掉的神经元(此时被删除的神经元保持原样,而没有被删除的神经元已经有所更新);
    • 从隐藏层神经元中随机选择一个一半大小的子集临时删除掉(备份被删除神经元的参数);
    • 对一小批训练样本,先前向传播然后反向传播损失并根据随机梯度下降法更新参数(没有被删除的那一部分参数得到更新,删除的神经元参数保持被删除前的结果)。

3. dropout在神经网络里的使用

本节具体讲述dropout如何让某些神经元以一定的概率停止工作。
在训练模型的时候,训练网络的每个单元都要添加一道概率流程。
在这里插入图片描述
对应的公式变化如下:

  • 没有dropout的网络计算公式:在这里插入图片描述
  • 采用dropout的网络计算公式:在这里插入图片描述
    上式中的伯努利函数是为了生成概率r向量,即0/1向量。
    代码层面实现让某个神经元以概率p停止工作,其实就是让它的激活函数值以概率p变为0。假设一共有1000个输出yi,p=0.2,那么这层神经元经过dropout后,1000个输出中大概有200个会被置为0。
    在这里插入图片描述

需要注意的是,训练时候会以p的概率保存每个神经元,但是测试的时候,所有的神经元都是要存在的,只是缩放一下权重。

4. dropout如何解决过拟合

  • 取平均的作用:dropout掉不同的隐藏神经元类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。
  • 减少神经元之间复杂的共适应关系:因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 。迫使网络去学习更加鲁棒的特征 ,这些特征在其它的神经元的随机子集中也存在。从这个角度看dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高。

第三节 ROC曲线

1. ROC曲线基本概念

定义:ROC全称为Receiver Operating Characteristic Curve,中文名字叫“受试者工作特征曲线”,起源于二战。
典型ROC曲线图:在这里插入图片描述
可见ROC曲线的横坐标为假阳性率(FPR,又叫敏感性),纵坐标为真阳性率(TPR,又叫精确性),计算公式如下:在这里插入图片描述
具体计算参数概念如下:在这里插入图片描述
当绘制完成曲线后,就会对模型有一个定性的分析,如果要对模型进行量化的分析,此时需要引入一个新的概念,就是AUC(Area under roc Curve)面积,这个概念其实很简单,就是指ROC曲线下的面积大小,而计算AUC值只需要沿着ROC横轴做积分就可以了。真实场景中ROC曲线一般都会在对角线的上方,所以AUC的取值一般在0.5~1之间。AUC的值越大,说明该模型的性能越好。

ROC应用场景很多,其最直观的应用就是能反映模型在选取不同阈值的时候其敏感性(sensitivity, FPR)和其精确性(specificity, TPR)的趋势走向。相比于P-R曲线,ROC曲线的巨大优势在于正负样本的分布发生变化时,其形状可以基本保持不变,故该评估指标能降低不同测试集带来的干扰。

2. ROC曲线的绘制

ROC曲线的绘制是通过不断移动分类器的阈值来生成曲线上的一组关键点的。即每一次在分类的时候,都使用不同的阈值,那么分类出的正例数量与反例数量自然也不同,就可以根据这些数量来计算出FPR与TPR,进而在ROC曲线上找到对应的点,多次重复然后连接所有的点,就绘制出了ROC曲线。

第四节 F1度量

在P-R曲线中,常使用BEP来进行学习器性能的度量,但有时候BEP过于简化,故此处引入F1度量:在这里插入图片描述
F1度量是基于查准率与查全率的调和平均而定义的:在这里插入图片描述
但有时候对查准率与查全率的重视程度可能不同,会导致F1的不准确,故在这里引入F1度量的一般形式——Fβ,能让我们表达出对查准率和查全率的不同偏好,定义为:在这里插入图片描述
其中β>0,β = 1时即为F1,β>1时查全率影响更大,β<1时查准率影响更大。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值