【文献阅读】understanding deep learning requires rethinking generalization 理解深度学习需要重新思考一下“泛化”
2017-07-09 17:02
447 查看
文章来自Google brain团队,2016年10月在arxiv.org上发表第一版本,百度学术显示,截止2017年7月,引用量为28。论文第二版投稿ICLR(学习表示国际会议),并赢得了best paper award. [论文全文], [slides]
Q:模型选择/模型泛化能力只针对监督式学习?
传统的机器学习方法中,通常通过对最优解的范数进行限制,相当于限制了模型空间,进而提高泛化能力。概率解释,相当于给模型参数某种先验假设。
有Rademacher复杂度、VC维、fat-shattering维等一些方法来度量模型的复杂度。
算法层面用一致稳定性描述模型对数据的变化的敏感度。
现实世界往往是简单的,太复杂的模型往往泛化能力不好(当然其实模型复杂与否,也是一定程度上相对于泛化能力来说的),多用剃须刀。
Q:最小化参数的范数-而不是最大化或者其他什么限制,相对于是通往简单吗?
当最小化到0的时候稀疏了参数更少了,确实是更简单了。也可以把参数限制到某个常数比如1,也相当于砍掉了这个参数吧。(这和限制到常数0是等价的吧)
然而这些模型的泛化能力是不一样的,测试误差不是都好的,该怎么选择模型呢?考虑使用机器学习方法中的正则项方法。在深度神经网络上的显示的正则方法常见的有:
数据增强:通过特定域的转换增强训练集。对图片数据,常用的转换包括随机的剪裁,对亮度、饱和度、色度、对比度的随机扰动。
权重衰减:相当于在权重上加l2正则项,也相当于将权重严格的限制在euclidean球里。
dropout:以一定的概率随机地遮掩输出层的一些元素。
一些隐式的正则方法,和一些实验观察据说可以减小过拟合提高测试数据集上性能的方法技巧常见的有:
early stopping 是一些凸学习问题中的隐式的正则方法。
batch normalization在每个小批中标准化层响应,可以提高泛化性能。
作者通过实验表明,这些方法技巧,对模型泛化能力的提高都不是关键性的,不用没有影响,或者提高很小,或者通过微小地调整模型泛化能力提高的更多。
最后,在最简单的线性模型上min loss(wx,y)说明,采用SGD算法从0的初始值开始更新,相当于对最优解做了最新l2范数的隐式正则约束。
n个数据点 {(xi,yi)}, xi是d维向量,yi
1951a
是实数标签。考虑最简单的线性模型,d维参数w ,不加入正则项,
minw1n∑iloss(wTxi,yi)
假设d>n,对于最优解有wTxi=yi n个方程式都成立。且有无数组解。
Xw=y
其中X∈Rn×d, y维n维向量。
SGD算法,初始化w=0
wt+1=wt−ηtetxit=wt−1−ηt−1et−1xit−1−ηtetxit
wn+1=∑iαixi=XTα 其中α∈Rn .
求解w向量的问题转换为求α向量:
XXTα=y
可以先计算K=XXT 这样一个n×n 的超大矩阵(kernel矩阵),再解线性方程得α.
Q1
并没定义loss(y^,y) 的形式, 如何保证求导前面不是就是e 预测误差损失?对二次函数loss才是吧?
dloss(wx,y)dw=dloss(z,y)dzx
即使是e=wTxi−y与x有关呢,即α 是一个与X有关的向量。没有关系,所以无论求导的前面部分是什么,总能用某个αi 除于步长表示。
Q2
为什么说kernel解 等价于Xw=y 的 最小l2 范数解?
本文主要提出现象,呼吁思考和进一步研究。
在实践中深度神经网络模型的泛化能力那么好,是为什么?
如何定义深度神经网络的模型复杂度/模型表达能力/泛化能力?
第一次用markdown,使用还算方便。不过
没有文本框,只会使用引用来突出块了。
latex特殊符号记不住,有工具栏就更好了。
只能保留一篇草稿,差点要重写一遍。
背景:机器学习,模型选择
当训练数据少,模型假设的参数多时,可能可以有多个模型(不同的参数取值)都能很好的拟合训练数据。我们说此时假设空间太大,模型复杂度太高。在实际应用中的监督式模型中,我们的最终目的往往不是学习模型使得对训练数据拟合好(即在训练集上的准确性高,训练误差小),而是对新的,未标注的数据能很好的拟合(即在测试集上的准确性高,测试误差小),此时称模型的泛化能力好。Q:模型选择/模型泛化能力只针对监督式学习?
传统的机器学习方法中,通常通过对最优解的范数进行限制,相当于限制了模型空间,进而提高泛化能力。概率解释,相当于给模型参数某种先验假设。
有Rademacher复杂度、VC维、fat-shattering维等一些方法来度量模型的复杂度。
算法层面用一致稳定性描述模型对数据的变化的敏感度。
现实世界往往是简单的,太复杂的模型往往泛化能力不好(当然其实模型复杂与否,也是一定程度上相对于泛化能力来说的),多用剃须刀。
Q:最小化参数的范数-而不是最大化或者其他什么限制,相对于是通往简单吗?
当最小化到0的时候稀疏了参数更少了,确实是更简单了。也可以把参数限制到某个常数比如1,也相当于砍掉了这个参数吧。(这和限制到常数0是等价的吧)
深度神经网络的泛化能力
作者在图片分类等任务上做了一些实验发现,当深度神经网络(卷积网络)的参数个数多于训练样本的时候,无论训练的标签是什么样的(随机的),模型都能很好的拟合训练数据(这个深度神经网络的模型假设空间真是太大了)。并且理论分析了有限样本上两层神经网络模型表达能力,即从d维实数数据空间,选择任意大小为n的样本集合,对其做任意实数的标签,激活函数ReLU,有2n+d个权重(模型参数)的两层神经网络模型都能完全拟合训练数据。然而这些模型的泛化能力是不一样的,测试误差不是都好的,该怎么选择模型呢?考虑使用机器学习方法中的正则项方法。在深度神经网络上的显示的正则方法常见的有:
数据增强:通过特定域的转换增强训练集。对图片数据,常用的转换包括随机的剪裁,对亮度、饱和度、色度、对比度的随机扰动。
权重衰减:相当于在权重上加l2正则项,也相当于将权重严格的限制在euclidean球里。
dropout:以一定的概率随机地遮掩输出层的一些元素。
一些隐式的正则方法,和一些实验观察据说可以减小过拟合提高测试数据集上性能的方法技巧常见的有:
early stopping 是一些凸学习问题中的隐式的正则方法。
batch normalization在每个小批中标准化层响应,可以提高泛化性能。
作者通过实验表明,这些方法技巧,对模型泛化能力的提高都不是关键性的,不用没有影响,或者提高很小,或者通过微小地调整模型泛化能力提高的更多。
最后,在最简单的线性模型上min loss(wx,y)说明,采用SGD算法从0的初始值开始更新,相当于对最优解做了最新l2范数的隐式正则约束。
n个数据点 {(xi,yi)}, xi是d维向量,yi
1951a
是实数标签。考虑最简单的线性模型,d维参数w ,不加入正则项,
minw1n∑iloss(wTxi,yi)
假设d>n,对于最优解有wTxi=yi n个方程式都成立。且有无数组解。
Xw=y
其中X∈Rn×d, y维n维向量。
SGD算法,初始化w=0
wt+1=wt−ηtetxit=wt−1−ηt−1et−1xit−1−ηtetxit
wn+1=∑iαixi=XTα 其中α∈Rn .
求解w向量的问题转换为求α向量:
XXTα=y
可以先计算K=XXT 这样一个n×n 的超大矩阵(kernel矩阵),再解线性方程得α.
Q1
并没定义loss(y^,y) 的形式, 如何保证求导前面不是就是e 预测误差损失?对二次函数loss才是吧?
dloss(wx,y)dw=dloss(z,y)dzx
即使是e=wTxi−y与x有关呢,即α 是一个与X有关的向量。没有关系,所以无论求导的前面部分是什么,总能用某个αi 除于步长表示。
Q2
为什么说kernel解 等价于Xw=y 的 最小l2 范数解?
本文主要提出现象,呼吁思考和进一步研究。
在实践中深度神经网络模型的泛化能力那么好,是为什么?
如何定义深度神经网络的模型复杂度/模型表达能力/泛化能力?
第一篇博客之后记
自己写过的微博过多久再看都还有印象。看论文记不住可能是因为思考太少,没有变成自己的东西。写笔记是一个整理的过程,尤其是要发布的博客,比本地笔记需要更多的整理。虽然很花时间,希望能有帮助。第一次用markdown,使用还算方便。不过
没有文本框,只会使用引用来突出块了。
latex特殊符号记不住,有工具栏就更好了。
只能保留一篇草稿,差点要重写一遍。
相关文章推荐
- 论文学习1----理解深度学习需要重新思考泛化Understanding deep learning requires rethinking generalization
- 『 论文阅读』Understanding deep learning requires rethinking generalization
- 理解深度学习需要重新思考泛化
- 论文笔记 understanding deep learning requires rethinking generalization
- 【深度学习】ICLR-17 最佳论文详解:理解深度学习要重新思考泛化
- Understanding Deep Learning required Rethinking Generalization 笔记
- 【文献阅读/翻译...】bayesian compression for deep learning深度学习中的贝叶斯压缩
- 深度学习阅读列表 Deep Learning Reading List
- 深度学习论文阅读笔记--Deep Learning Face Representation from Predicting 10,000 Classes
- 深度学习研究理解8:Understanding Deep Architectures using a Recursive Convolutional Network
- [深度学习]Deep Residual Learning for Image Recognition(ResNet,残差网络)阅读笔记
- 深度学习Tracking(1)——Learning to Track at 100 FPS with Deep Regression Networks(代码理解)
- 深度学习阅读列表 Deep Learning Reading List
- Attention and Memory in Deep Learning and NLP(深度学习和NLP中的注意和记忆机制) 阅读笔记
- 深度学习论文理解2:on random weights and unsupervised feature learning
- Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.2
- Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3
- [原]Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.3
- Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.1
- 深度学习研究理解10:Very Deep Convolutional Networks for Large-Scale Image Recognition