1、大数据机器学习第十九讲:深度学习正则化方法目录 框架设计 计算图形式的 BP算法 正 则化方法 参数范数惩罚 正则化和欠约束问题 作为约束的范数 数据 集增强 噪声鲁棒性 半 监督学习 多任务学习 提前终止 参数 绑定和参数共享 Bagging 和其它集成方法 Dropout Maxout 对抗训练深度学习架构设计深度学习架构设计:神经网络的深度,或者说层数,以及每一层的宽度或单元数;网络层数越多: 更少的单元数,更少的参数,更好的泛化性, 但也更难以优化;万能近似定理: 只要给予网络足够数量的隐藏单元,它可以以任意的精度来近似任何从一个有限维空间到另一个有限维空间的 Borel可测函数。问题
2、: 不能保证训练算法能够学得到这个函数; 训练的优化算法可能找不到用于期望函数的参数值; 训练算法可能由于过拟合而选择了错误的函数。深度学习架构设计 Montufar et al. (2014) 指出:具有 d 个输入、深度为 l、每个隐藏层具有n 个单元的深度网络可以描述的线性区域的数量是: 卷积神经网络架构设计 Xudong Cao et al.2016: 优化问题: k是滤波器核的大小,假设图像大小: I = 2 m1K/t 第一个块内的卷积层的数量: n1 = K/(K-1)t,后面块卷积层数量 n1/2深度学习架构设计深度学习架构设计计算图( computational graph)
3、计算图:反向传播算法梯度计算的重要工具Tensorflow graph计算图( computational graph)( xw) 2计算图代价函数:向量的梯度计算设 x Rm, y Rn, g是 Rm到 Rn的映射, f 是从 Rn到 R 的映射。如果 y = g(x) 并且 z = f(y),那么使用向量记法,可以等价地写成向量的梯度计算概念上,对张量的与使用向量的反向传播完全相同,唯一的区别是如何将数字排列成网格以形成张量。为了表示值 z 关于张量 X 的梯度,我们记为 ,对所有可能的变量 i:使用这种记法,可以写出适用于张量的链式法则如果 Y = g(X) 并且 z = f(Y),计算
4、图的 BP算法 将正则化后的目标函数记为 : Vector W表示所有应受范数惩罚影响的权 重,而向量 vector 表示所有参数 (包括 w 和无需正则化的参数 ) L2 parameter regularization L1 parameter regularization、参数范数惩罚 L2 参数正则化 参数的梯度 参数更新:L2 参数正则化先缩小再更新 训练过程发生了什么? 令 w*为不含正则化项目标函数训练误差极值时参数值 在 w*近邻做二次近似,如果目标函数是二次的,该近似完美 该函数取极值时: 为 0 整体函数极值:L2 参数正则化 训练过程发生了什么? W* 对应第 i个特征值
5、的部分,尺度变化:L2 参数正则化 训练过程发生了什么? 沿着 H 特征值较大的方向,正则化的影响较小 沿着 H 特征值较小的方向,正则化的影响较大L2 参数正则化 结论 : L2参数正则化主要针对损失函数特征向量不重要的方向: 对应 Hessian矩阵较小的特征值, 改变参数不会显著增加梯度, 不重要方向对应的分量会在训练过程中因正则而衰减;L2 参数正则化 L2最常用,但是有时也用 L1 和 L2 有什么区别呢?采用同样方法分析: 正则化对梯度的影响不再是线性地缩放每个 wi 添加了一项与 sign(wi) 同号的常数; 使用这种形式的梯度之后,不一定能得到 J(X; y; w) 二次近似
6、的直接算术解;L2 参数正则化怎么解决? 逼近更复杂模型的代价函数的截断泰勒级数 重要: 简化假设 Hessian 是对角的,即 H = diag(H1,1.Hn,n), PCA预处理 Hi,i 0。 将 L1正则化目标函数的二次近似分解成关于参数的求和近似:L2 参数正则化 分析 wi*的情况: 贡献小, L1正则化将 wi推向 0 贡献大, L1正则化将 wi移动 的距离 L1 惩罚项使 wi更接近 0 (增加 ) 或者为 0L2 参数正则化 L1和 L2正则化的稀疏分析: L1正则化会产生稀疏( sparse)的解 ,最优值中的一些参数为 0; 如果使用 Hessian 矩阵 H 为对角
7、正定矩阵的假设 ; 如果 wi 不是零,那么 也会保持非零,即 L2正则化不会使参数变得稀疏,而 L1正则化有可能通过足够大的 实现稀疏 ; 由 L1正则化导出的稀疏性质可被用于特征选择 ,化简机器学习问题;L1 Parameter Regularization作为约束的范数惩罚 在原始目标函数上添加惩罚项, KKT乘子 广义 lagrange函数 解: 如果固定 ,只跟 有关: 和 L2正则化一致正则化和欠约束问题有些机器学习方法依赖于求 xTx的逆矩阵;当输入的数据或特征在一些方向上没有差异时,即方差很小,如数据量过小 , 这个 矩阵就是 奇异的;正则化: xTx + I,保证可逆;伪逆:
8、 图像平移 图像旋转 输入层加入噪声 问题: b 和 d 6 和 9数据集增强 输入加入噪声:等价于对权重施加范数惩罚 隐藏单元加入噪声:比收缩参数强大 Dropout 噪声加到权重上: rNN上使用,解释为关于权重的贝叶斯推断的随机实现 网络权重的随机扰动: 扰动的 MLP:噪声鲁棒性 对于小的 ,最小化带权重噪声(方差为 I)的 J等同于附加正则化项的 J, 推动模型进入权重小,变化不敏感的区域,即极小点周围比较平坦。噪声鲁棒性 输出加入噪声: 数据集的标签一般有错,错误的 y不利于最大化 log p(y |x) 小常数 , y是正确的概率 1- , 标签平滑: 分类目标 0, 1,变成
9、正则化具有 k个输出的 softmax函数的模型噪声鲁棒性 半监督学习: 无标签的 P(x) 和有标签的 P(x, y)共同预测 P (y | x) 生成模型 P(x) 或 P(x, y) 与判别模型 P (y | x) 共享参数半监督学习 多任务学习通过合并几个任务的样例来提高泛化性; 额外的样本用于训练; 具体任务的参数 所有任务共享的通用参数 多种形式多任务学习无监督学习的独立性提前终止 提前终止相当于 L2正则化Early Stopping 强迫某些参数 相等,由于将 各种模型或模型组件解释为共享唯一的一 组参数 ,这种正则化方法通常被称为参数共享( parameter sharing
10、) 假设两个模型执行相同的分类任务,但输入的分布稍有不同 参数应彼此靠近:参数绑定和参数共享卷积神经网络( CNN):最 流行和广泛使用的参数共享出现在应用于计算机视觉 的中。自然 图像有许多统计属性是对转换不变 的, CNN通过在图像多个位置共享参数来 考虑这个 特性 。相同 的特征(具有相同权重的隐藏单元)在输入的不同位置上计算获得。参数 共享显著降低了 CNN模型的参数数量,并显著提高了网络的大小而不 需要相应 地增加训练数据 。参数绑定和参数共享 L1 penalization induces a sparse parametrization 权重衰减直接惩罚模型参数 惩罚神经网络中的
11、激活单元:稀疏激活单元:稀疏表示 Bagging (short for bootstrap aggregating) 设: k 个回归模型;模型错误 , 误差服从 0均值方差 协方差: 评价误差: 期望方差:Bagging 和其他集成方法 结论: 误差完全相关: 均方误差减小到 v,模型平均没帮助 误差不相关: c=0 集成平方误差 ,规模增大线性减小Bagging 和其他集成方法Bagging 和其他集成方法 hinton, Improving neural networks by preventing co-adaptation of feature detectors2012 Dropo
12、ut提供了一种廉价的 Bagging集成近似,能够训练 和评估 指数级数量的神经网络。Dropout 可看作集成大量神经网络的实用 bagging 方法 一般 5-10个DropoutDropout隐层 0.5输入层 0.8 2013, ICML Maxout Networks Maxout隐藏层每个神经元的计算公式 : Z: W为 (d,m,k)三维矩阵, b为 (m,k)的二维矩阵: k=5Maxout z1=w1*x+b1 z2=w2*x+b2 z3=w3*x+b3 z4=w4*x+b4 z5=w5*x+b5 out=max(z1,z2,z3,z4,z5)Maxout 激活函数是可学习函数: maxout是一个函数逼近器 , 对于一个标准的 MLP网络来说,如果隐藏层的神经元足够多,那么理论上可以逼近任意函数Maxout 对抗样本 adversarial example对抗训练ENDQ&R