读书笔记:Deep Learning [Ada-Computation&ML series]--chapter7.Regularization

来源:互联网 发布:火车头采集软件 编辑:程序博客网 时间:2024/06/07 14:01

part0.概述
1.正则化的作用:降低泛化误差而不是训练误差。
2.形式:
1)约束或者惩罚,被设计用来编码某些先验知识。
2)对简单模型表达一种通用的选择
3)其他形式的,比如ensemble,结合对于数据的多种解释。
3.一般来说,大多数是针对estimator做正则。通过增加偏差来降低方差。

part1.参数范式惩罚
1.一般只对放射变换的weight做惩罚,而不去惩罚偏置(bias)
1)这样不会带来太大的方差
2)正则化bias通常会导致欠拟合。
2.形式:J’ = J + alpha * Om(theta).一般将每层的alpha设置为一样。
3.L2,也被称为weight decay,或者ridge regression.
如果目标函数是二次的,如用MSE拟合一个线性回归.此时:
J’(theta) = J(w*) + 1/2 * (w - w*)’H(w-w*).

1)weight decay的结果是,沿着H的特征向量的方向重新缩放w*.
wi被缩放:lamda(i)/(lamda(i) + alpha ).lamda(i)是H的第i个特征向量。
2)沿着H的特征值比较大的方向,比如lamda(i) >> alpha,正则化的作用很小。沿着H的特征值比较小的方向,比如lamda(i) << alpha,正则化的作用很大。
3)也就是说,weight decay把那些所权重向量不重要的方向对应的成分decay掉。因为那些方向不会贡献目标方程,小的特征值意味着沿着该方向不会明显增加梯度。
4.L1.
1)形式:Om(theta) = ||W||1 = sum(wi) for all i
2)简化的目标函数




因此,wi* <= alpha/Hi,i时,wi =0;否则wi沿着该方向位移alpha/Hi,i的距离。

3)对比L2,L1在alpha较大时具有稀疏性,通常用来做特征选择。

part2.范式惩罚的有约束优化
1.可以将参数范式惩罚看做对于权重的约束。
2.也可以应用显示约束。比起惩罚的好处是:
1)惩罚会导致优化陷入局部最优
2)约束会使得优化过程稳定。
3.一般来说,可以针对权重的每一列进行约束。这样可以防止任何隐单元对应的权重太大。

part3.数据增强
1.对称的时候注意,不要把b变成d
2.引入噪声也是一种数据增强。而且可以在隐层引入。但是对噪声强度的选择很敏感。
3.噪声加在权重上。也是一种正则化,使得待学习的函数更稳定。因为可以把参数带入对小扰动不敏感的局部队友区域。

part4.Eatly Stopping
1.当验证集错误率不在降低时停止训练。所以一般需要额外的消耗去监控验证集的误差。
2.与weight decay相比,可以自动的决定适度的正则化,而weight decay需要反复尝试找到最优超参数。
part5.Ensemble
1.bagging是boostrap aggregating的简称。即有放回的抽样。样本会重复,不会包含全部样本。(约2/3)
2.ensemble会有效是因为不同的模型通常不会在测试集上犯同样的错误。

part6.Dropout
1.dropout使得bagging可以变得实用。是一种近似的ensemble。
2.异同:
bagging training:每个模型独立,每个模型在自己的样本上训练收敛
dropout training:共享模型参数,网络太大的话,不可能覆盖所有的子网络情况,许多网络都没有被训练。
其他情况下,dropout都遵循bagging的框架。比如每个网络的样本都是全部样本的子集。
3.dropout在网络太窄时会遇到输入无法连接输出的问题。对于2-2-1的网络,一共有2^4 = 16中可能。而其中有6种是不连接输入到输出的。但是如果网络变宽的话,这种问题将得到解决。
4.inference
1)对每个输入分支都添加一个系数u,令其为1的概率,对于输入层是0.8,对于隐层为0.5。做forward的时候每个输入节点都要乘以系数u。然后forward。等价于从dropout训练时所有可能的网络中随机选择一个来做forward。如果u~N(1, I)的话比二值化更好,因为刚好契合了inference的需求。
2)weight scaling inference rule:目标是确保测试的时候每个节点的期望输入大致等于该节点在训练时的期望输入。因此以0.5dropout的节点,在训练时候可以将节点状态乘以2.或者训练结束将weight除以2.而且这种inference对于线性网络是完全等价的。
5.优点:
1)计算消耗低。
2)对于模型类型没有限制
缺点:数据太小,少于5000,没有贝叶斯方法有效。
6.dropout boosting同时训练所有ensemble的网络,与将所有网络作为一个网络训练相比没有体现正则化。因此应该将dropout看做bagging,而不是只对噪声鲁邦。
7.因为共享隐层节点,因此每个节点都会别交换。迫使每个节点去学习独立的不依赖其他节点的信息。这也是dropout的会work的很重要的原因。
另一问题是噪声是可乘的而非可加的,因此不能通过提高weight的比例使得噪声与其相比不明显。

part7.Adversarial Training
1.motivation:机器学得好,但是有没有像人一样理解所学的东西
2.adversarial training:对抗式的从训练集生成扰动的样本中训练
3.局部稳定:如果每个输入改变epsilon,那么最终的输出改变epsilon*||w||,如果w很高维度,那么这个变化很大。adversarial training会让模型对于训练样本附近的区域同样有效。
4.实用性:对于逻辑回归没有作用,但是对于NN有效。因为NN可以学习介于非线性和线性之间的网络,因此可以在学习对抗局部扰动的同时在训练集去捕获线性趋势?
5.用于半监督学习:通过有监督学习得到的模型,然后用该模型去对样本x预测y’,很大可能性是真的label,然后找到跟这个label对应的样本x'。用这个label来做半监督学习。且将y’同时作为x,x’的label。这样可以让模型学习对于流形内部的小扰动。

part8.tangent prop
1.定义:训练一个分类器,并给模型的输出f(x)加上额外的惩罚,使得d f(x)/dx在流形的tangent 向量的方向正交,或者等价的,在x的方向上变化很小。
2.可以看做是数据增强。但是不太一样。
相同:都是用数据来覆盖变化
不同:tangent prop不需要显示地生成新数据,而是正则化模型,使其具备对抗一些方向的扰动。这些扰动的方向是特定的转换对应的方向。
缺点:只能小扰动有效;无法缩放梯度? 
0 0