泛统计理论初探——常见正则化技巧简介

数据挖掘-正则化方法简介

常见正则化方法介绍
   正则化方法是数据挖掘或者神经网络应用里常见的一种方法,该类方法其实是一种对于过拟合进行优化的思路,即当模型在训练集和测试集的预测准确率差距非常大的时候,比如模型在训练集预测准确率有98%,而在测试集预测的准确率只有70%,那么这个时候就可能是模型训练的过拟合了,需要使用多种方式加强模型的泛化能力,本文主要是介绍正则化方法来加强这种泛化能力。
   那么正则化方法其实常见的就是L1正则化、L2正则化、DropOut方法,值得注意的是,前两种方法的思路是在目标函数的基础上增加一个惩罚项,使得原始目标函数不会收敛到局部最优解,而是另一个更好的最优解,这样就可以防止原始的模型过拟合。第三种方法是一种策略,在神经网络中使用的较多,处理思路是随机丢掉一些神经元,即让某些神经元“失活”,不参与整个神经网络的训练和学习,这种丢弃的思路也可以作为模型增加泛化能力的一种方法。从某种程度来说,两者也有相似性,因为L1正则化和L2正则化其实也是一种参数丢弃,通过参数的模长来对目标函数进行约束,使得一些不重要的参数压缩变为0,从而达到正则化的效果。下面我们先对前两种方法进行介绍,其中公式如下:
在这里插入图片描述
   上面的公式分别是L1正则化和L2正则化,我们发现其实L1正则化方法是参数的绝对值之和,而L2正则化方法是参数的平方之和,而lamda则是一个超参数,通过控制这个超参数的大小可以决定惩罚项的重要性,lamda设置的越大那么惩罚项就越重要,但也有可能导致原本模型的欠拟合。下图是对L1正则化和L2正则化的含义解释,其中左边是L2正则化、右边是L1正则化。
在这里插入图片描述
   由于高维的参数向量不好展示,所以我们以二维的参数向量为例,显然如果只有参数w1和w2,那么L2正则化必然是这两个参数张成的一个圆,而L1正则化则是一个正方形或者说菱形。图中的蓝色圆环就是原始目标函数,而新的目标函数不仅需要原始目标函数最小,也需要惩罚项最小。同时我们根据上图还可以发现,L1正则化方法是比较彻底的,把参数向量的其中一个参数压缩成0,但是L2正则化方法是比较保守的,只是把其中一个参数的值变小了。
   在实际的问题上,其实一般常用的是L2正则化方法,因为该方法是可导的并且不会使得参数直接失活,但是L1正则化方法这种让参数失活的结果,经常被使用在特征选择的情况下,即在特征工程中可以被使用到,它可以保留一些重要的特征、抛弃不重要的特征。在后续的研究中,有研究者也提出了L1正则化和L2正则化结合的弹性正则化方法,因为L2正则化方法虽然比较优秀,但是它会受到参数波动的影响,因为参数平方会放大那些较大的参数对于整体损失函数的影响,所以使用了弹性正则化的方法可以规避这个缺点。
   经过上述对L1和L2正则化方法的介绍,我们继续简单介绍一下dropout方法,这种方法其实是在神经网络中使用的比较多,而且是针对全连接神经网络使用的较多,一般在神经网络中的隐藏层使用,其实现目标就是设定一个“失活概率p”,对于每一层的每一个神经元都用这个概率去判断要不要使得这个神经元失活,最后达到如下图的效果。
在这里插入图片描述
   其实这种dropout在某些特定类型的神经网络中效果还是不错的,因为dropout不仅仅是一种正则化方法,还用到了集成学习的思路。由于每一次训练过程中丢弃都是随机的,所以每次都是一个不同的神经网络,可以看作是原始神经网络的一个子集,那么通过多次的dropout就相当于构建了多个子神经网络,那么最终的神经网络就是多个子神经网络的一个集成,所以这种方法不仅可以降低模型的过拟合,还可以进一步提高准确率,但其缺点就是训练起来较复杂。
   总的来说,正则化是提高模型泛化能力的一个很好的解决思路,当然还有其他的提高模型泛化能力的方法,我们在后面的文章会进行讨论。对于初学者来说,弄清楚L1正则化和L2正则化的原理就可以更好地理解参数和目标函数的关系;而对于dropout方法的理解则是要结合实际,当使用神经网络的过程中应用dropout方法会使得整体模型的稳健性和准确性要更好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章