神经网络与深度学习程序员深度学习-推荐系统-CV-NLP

《deep learning》学习笔记(7)——深度学习中的正则

2017-10-02  本文已影响140人  033a1d1f0c58

http://blog.csdn.net/u011239443/article/details/78152022
机器学习中的一个核心问题是设计不仅在训练集上误差小,而且在新样本上泛化能力好的算法。许多机器学习算法都需要采取相应的策略来减少测试误差,这些策略被统称为正则化。而神经网络由于其强大的表示能力经常遭遇过拟合,所以需要使用许多不同形式的正则化策略。

正则化通过对学习算法的修改,旨在减少泛化误差而不是训练误差。目前有很多正则化策略,有些是向机器学习模型中添加限制参数值的额外约束,有些是向目标函数添加额外项来对参数值进行软约束。在本章中我们将更详细地介绍正则化,重点介绍深度模型的正则化策略,包括参数范数惩罚、提前终止、Dropout等等。

7.1 参数范数惩罚

7.1.1 L 2 参数正则化

L2 参数正则化(也称为岭回归、Tikhonov正则)通常被称为权重衰减(weight decay),是通过向目标函数添加一个正则项



使权重更加接近原点。
目标函数

计算梯度

更新权重

7.1.2 L1 参数正则化

将 L2 由权重衰减项修改为各个参数的绝对值之和,即得到 L1 正则化:


梯度:

其中 sgn(w)为符号函数,取各个元素的正负号。与之前的分析一样,将目标函数作二次泰勒展开近似:



,于是L1 正则化目标函数二次近似为:

最小化这个近似函数,有如下形式的解析解:


7.2 作为约束的范数惩罚

考虑参数范数正则化的代价函数:

在上一节中考虑的是无约束问题,如果想约束

该约束问题的解是

7.3 正则化和欠约束问题

机器学习中许多线性模型,如线性回归和PCA,都依赖与矩阵 X^TX 求逆,如果 X^TX 不可逆,这些方法就会失效。这种情况下,正则化的许多形式对应求逆



,这个正则化矩阵是可逆的。大多数正则化方法能够保证应用于欠定问题的迭代方法收敛。

7.4 数据集增强

让机器学习模型泛化得更好的最好办法是使用更多的数据进行训练,因此需要在有限的数据中创建假数据并添加到训练集中。数据集增强在对象识别领域是特别有效的方法。

7.5 噪声鲁棒性

7.6 半监督学习

7. 多任务学习

7.8 提前终止

7.9 参数绑定和参数共享

参数范数惩罚或约束是相对于固定区域或点,如 L2 正则化是对参数偏离0 固定值进行惩罚。但有时我们需要对模型参数之间的相关型进行惩罚,使模型参数尽量接近或者相等。

7.9.1 卷积神经网络

7.10 稀疏表示

稀疏表示也是卷积神经网络经常用到的正则化方法。 L1 正则化会诱导稀疏的参数,使得许多参数为0;而稀疏表示是惩罚神经网络的激活单元,稀疏化激活单元。换言之,稀疏表示是使得每个神经元的输入单元变得稀疏,很多输入是0。
例如下图, h_3 只依赖于上一层的3个神经元输入 x_2 、 x_3 、 x_4 ,而其他神经元到 h_3的输入都是0。

7.11 Bagging 和其他集成方法

Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。这是机器学习中常规策略的一个例子,被称为模型平均(model averaging)。采用这种策略的技术被称为集成方法。
Bagging是一种允许重复多次使用同一种模型、训练算法和目标函数的方法。具体来说,Bagging涉及构造 k 个不同的数据集。每个数据集从原始数据集中重复采样构成,和原始数据集具有相同数量的样例。

模型平均是一个减少泛化误差的非常强大可靠的方法。例如我们假设有k个回归模型,每个模型误差是 epsilon_i,误差服从零均值、方差为 v、协方差为 c 的多维正态分布。则模型平均预测的误差为

在误差完全相关即 c=v 的情况下,均方误差为 v ,模型平均没有帮助。在误差完全不相关即 c=0 时,模型平均的均方误差的期望仅为 (1/k)*v 。这说明集成平方误差的期望随集成规模的增大而线性减少。


其他集成方法,如Boosting,通过向集成逐步添加神经网络,可以构建比单个模型容量更高的集成模型。

7.12 Dropout

参阅:
http://blog.csdn.net/u011239443/article/details/76360294#t42

Dropout与Bagging区别

Dropout优缺点

7.13 对抗训练

对抗样本主要用于计算机安全领域。在正则化背景下,通过对抗训练(adversarial training)可以减少原有独立同分布的测试集的错误率——在对抗扰动的训练集样本上训练网络。

主要原因之一是高度线性,神经网络主要是基于线性模块构建的。输入改变 epsilon ,则权重为 w 的线性函数将改变
上一篇 下一篇

猜你喜欢

热点阅读