惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
美团技术团队
博客园 - 聂微东
博客园 - 叶小钗
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园_首页
Spread Privacy
Spread Privacy
J
Java Code Geeks
雷峰网
雷峰网
宝玉的分享
宝玉的分享
C
Cyber Attacks, Cyber Crime and Cyber Security
P
Privacy International News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threat Research - Cisco Blogs
The Hacker News
The Hacker News
量子位
L
LINUX DO - 热门话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
GRAHAM CLULEY
D
Darknet – Hacking Tools, Hacker News & Cyber Security
月光博客
月光博客
腾讯CDC
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tor Project blog
罗磊的独立博客
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tenable Blog
MyScale Blog
MyScale Blog
T
The Exploit Database - CXSecurity.com
GbyAI
GbyAI
博客园 - 【当耐特】
O
OpenAI News
Schneier on Security
Schneier on Security
S
Secure Thoughts
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Securelist
博客园 - 司徒正美

Posts on Changkun's Blog

Why High-Output Systems Are Often the First to Stop Growing Dark Forest Theory: A Formal Derivation Agents (or Humans) in Goal-Directed and Goalless Environments: On Pipelines, Priors, and the Rhythm Between Exploration and Exploitation At the Boundary of Self-Reference: From Stable Structures in Artificial Intelligence to the Self as a Recursive Model in an Open Dissipative System 2023 Reading List 2022 Reading List 2021 Reading List Are PSS/USS and RSS Actually the Same Thing? Performance Differences from Page Faults vs. Prefetching 2020 Year-End Review Migration with Zero Downtime 2020 Reading List The All in Go Stack Pointers Might Not Be Ideal for Parameters Eliminating A Source of Measurement Errors in Benchmarks Setup Wordpress in 10 Minutes 我为什么不再写博客了? 2019 年终总结 2018-2019 读书清单 Ten years of blogging Rethinking the Reflections on Communications and Trusts 2018 年终总结 Go source code study is open source Go source study: unsafe Pattern Go source study: sync.Pool Go runtime programming A Million WebSocket and Go Designing Asynchronous RESTful APIs 分布式杂谈01:CAP 理论的误解 Issues of Human-Bot Interaction 压缩法与深度网络的泛化性 Go in 1 Hour UMSLT04: The Past and Present of SGD UMSLT03: A Gentle Start of Learning Theory UMSLT02: A Breif History of Neural Networks UMSLT01: A Breif History of Regularization 不笑不足以为道 论文笔记:Generalization in Deep Learning 2017 年终总结 2017 读书清单 删除 GitHub 上已经提交的敏感信息 硕士生涯的第一年就这样告一段落了 人肉计算(10): 系统参与激励 人肉计算(9): 陷阱的解法 别聊,一聊你就暴露 人肉计算(8): 人肉计算与数据科学中的陷阱 人肉计算(7): 社会行为分析 Hexo + GitHub + Travis CI + VPS 自动部署 人肉计算(6): 预测市场 人肉计算(5): 信用风险评级模型 读书与回报 瞎扯: 对现代企业理论与当下IT企业的商业模式和信息产业链的规律性的思考 人肉计算(4): 输入数据聚合与PageRank 又一次打整了一下博客 人肉计算(3): 输入数据聚合与链路预测 人肉计算(2): 意图博弈 GWAPs 人肉计算(1): 众包与群众智慧 对后辈同学在计算机专业上的答疑与解惑 在德国的医疗及住院体验 这可能不是一个技术博客了 实验楼楼赛第3期-Python-题解 迅速更换了 DISQUS Electron 深度实践总结 良好的编码体验的三个方面 2016 年终总结 2016 读书清单 最近在着手写的文章 微信小程序文档极致总结 谈谈过去三个月在实验楼的实习经历 Built a Desktop Client for My Blog Guacamole 源码分析与 VNC 中 RFB 协议的坑 《高速上手 C++11/14》正式发布 Docker 极速入门教程02 - 镜像与容器管理 Docker 极速入门教程01 - 基本概念和操作 阶段性沉默 ELK+Redis 最佳实践 终于全面启用了 HTTPS 苹果开源了LZFSE无损压缩 Hash 碰撞的一种思路 记一次完整的 Kaldi-TIMIT 示例运行 Kaldi 上的 TIMIT 例子 Kaldi 安装与部署 从科研写作谈起 Swift API 设计指南 有趣的人类 所以其实论文并没有什么鬼用 Githug 通关记录及指南 小结一下这学期的收获 2015 读书清单 2015 年终总结 负能量爆表 转眼就快两个月了 博客迁移记录 大三总结 这个世界,终究不会是我们的。 Linux 内核分析 之六:Linux 内核创建进程的过程 小说「泽缘」 Linux 内核分析 之五:system_call中断处理过程的简要分析 大创项目的标题真是每年都在考验同学们的想象力啊 Linux 内核分析 之四:使用库函数API和嵌入汇编两种方式使用同一个系统调用
深度学习的泛化理论简介
Changkun Ou · 2017-12-17 · via Posts on Changkun's Blog

深度学习的泛化理论简介

Published at发布于:   |   PV/UV: /   |   Reading阅读: 2 min

本文译自:http://www.offconvex.org/2018/02/17/generalization2/

译者:欧长坤

正如我们在博客上之前讨论的那样,深度学习有着太多秘密没有被理论解释。最近,许多 ML 理论学者开始对泛化之谜感兴趣:尽管这些网络拥有这比样本的数量更多的参数(经典的过拟合机制)但是为什么训练好的深度网络依然在新数据集上的表现如此优秀?Zhang 等人的《理解深度学习必须重新思考泛化性》一文成功将人们的注意力吸引到了这一富有挑战的问题上。他们的主要实验发现是,如果采用经典的卷积网络体系结构,比如 Alexnet,并在带有随机标签的图像上对其进行训练,那么仍然可以在训练数据上获得非常高的精度(此外,通常的 Regularization 策略则被认为能够提升泛化能力,但没有非常明显的帮助)。显然,训练过的网络是没有办法一直对新图片持续预测随机标签的,也就是说泛化能力不好。而这篇论文表明,在传统机器学习中, Rademacher 复杂度作为描述将分类器与带有随机标签的数据相匹配的工具,但其对样本复杂度并没有任何有意义的限制。我发现这篇论文写得很有意思,尽管这里已经介绍了这篇论文的核心部分,但我还是推荐阅读一下原文,并同时祝贺作者在 ICLR2017 上获得最佳论文奖。

但是,如果我没有在 Simons Institute 2017 年春季学期 做关于 ML 理论的报告,那就是我就太大意了。泛化理论的专家们对这篇论文——尤其是这篇论文的标题感到不满。他们认为,类似的问题已经在更简单的模型(例如 Kernel SVMs)的背景下做过广泛的研究了(说句公道话,那篇论文其实提到了这点),设计具有高 Rademacher 复杂度并在实际数据上训练后的结果表示泛化能力很好的 SVM 架构非常简单。更有甚者还发展了一些理论来解释这种泛化行为(以及类似于 boosting 的相关模型)。于此相关的是,一些 Behnam Neyshabur 及其合著者的几篇早期论文(这篇论文详细介绍了 Behnam 的论文)提出了与 Zhang 等人非常相似的关于深度网络的观点。

无论如何,我们都应该为 Zhang 等人的这篇论文来带的对核心理论关注度感到高兴。确实,Simons 学期学者们非常有激情的讨论自己的小组如何对付这一挑战:这些结果由 [Dzigaite, Roy](Dzigaite and Roy)、Bartlett, Foster 和 TelgarskyNeyshabur, Bhojapalli, MacAallester, Srebro 近期公布。

在详细分析这些结果之前,我先介绍一些由 Zhang 等人论文产生的争议,这些争议是由于目前繁华理论是否是规范性或仅仅是描述性的基础性误解。这些误解来自于课堂里或者课本里关于泛化理论的标准处理手段,正如我在我毕业讨论班上发现的那样。

描述型理论 vs 规范型理论

为了展示他们的不同之处,考虑一个患者对他的主治医生说:『医生,我晚上经常很亢奋,但白天却困得不行』。

医生1(没有任何物理诊断):『哦,你失眠了』

我将这样的诊断称之为描述型(descriptive),因为它仅仅只是把标签对应到了患者的问题上,而没有给出任何关于如何解决这个问题的看法。相反:

医生2(进行物理诊断之后):『你的鼻窦导致睡眠时呼吸停止,移除它就可以解决问题。』

这样的诊断就是规范型(prescriptive)的。

描述型还是规范型?

VC 维、Rademacher 复杂性 和 PAC-Bayes 界这些泛化理论的概念都是对泛化能力较差的基本现象给与了规范型的标签。对于当下复杂的 ML 模型而言,它们都难以计算,更不用说作为设计学习系统的指导方针了。

回顾一下一个假设/分类器 $h$ 泛化能力较差的实际意义是什么。假设具有 $m$ 个样本的训练集 $S={(x_1, x_2), …, (x_m, y_m)}$ 服从分布 $D$. 考损失函 $\ell$ 则描述假设 $h$ 对一个数据点的分类好坏程度:$\ell(h, (x,y))$ 较大时,表明假设没有正确的在 $x$ 上产生 $y$,反之则表明有(举个例子,回归问题的损失是 $(h(x)-y)^2$)。现在,令$\Delta_s(h)$ 表示$S$ 上的平均损失,而 $\Delta_D(h)$ 表示分布 $D$ 中样本的期望损失。如果假设 $h$ 在 $S$ 的随机样本下最小化 $\Delta_s(h)$ ,同时在完整分布下获得了非常相似且较低的损失 $\Delta_D(h)$,我们就称训练过程完成了泛化。当泛化失败时,我们有:

泛化不足:$\Delta_S(h) \ll \Delta_{D}(h) $ ………… (1)

在实践中,泛化不足由 $D$ 中大小为 $m$ 的第二类样本进行检查(验证集)$S_2$。而在第二类样本上,$h$ 的期望损失接近于 $\Delta_D(h)$,于是:

$\Delta_S(h) - \Delta_{S_2}(h) \ll 0 $ ………… (2)

描述型泛化理论

我们来简单谈谈 Rademacher 复杂度(或参见我的讲稿)。为了方便起见,我们假设标签和损失为 0 或 1,并且假设泛化能力较差的假设 $h$ 在训练样本 $S$ 上的预测性能很好,同时在测试集 $S_2$ 上的预测完全错误,即:

$\Delta_S(h)-\Delta_{S_2}(h)\approx-1$ …………(3)

Rademacher 复杂度则考虑了如下想法的实验:从 $D$ 中取大小为 $2m$ 的单一样本,并分割为相等的两部分,其中第一部分称为 $S$,第二部分称为 $S_2$。然后翻转$S_2$中的标签(比如-1变成1,1变成-1)并尝试寻找描述新样本最好的分类器 $C$,即意味着最小化 $\Delta_S(h)+1-\Delta_{S_2}(h)$。

翻转一个样本的标签就意味着将最好的分类情况转换为了最坏的情况,反之亦然。正是由于这样, $S_2$ 的损失函数为 1 减之原先损失 $\Delta_{S_2}(h)$,如果这个值很小(比如接近于 0)的概率很大,我们就说分类器具有很高的 Rademacher 复杂度。

但是,公式(3)就暗含了 Rademacher 复杂度很高的情况:这是因为 $D$ 中大小为 $m$ 的随机样本 $S, S_2$ 总大小为 $2m$,当泛化不足时,我成功找到了假设 $h$ 使得 $\Delta_S(h)+1-\Delta_{S_2}(h)$ 非常小。

沿用刚才医疗的例子,换句话说,医生只需了解到『泛化还没发生』就能得出『Rademacher 复杂度很高』的结论。这也就是我称这个结果为描述型的原因。

VC 维的界也是描述型的。VC 维定义为:对于大小为 $k$ 的集合,考虑假设空间中所有可能的分类器,如果标签的序列中每一个标签都给出了样本中的 $k$ 个数据点,那么我们可以找到 0 和 1 构成的所有可能的 $2^k$ 个序列,则 VC 维至少为 $k+1$。

如果泛化如同(2)(3)那样不足,则对于给定的 $\epsilon >0$, VC 维约为 $\epsilon m$。因为对于 $2m$ 个数据点随机分隔为 $S$ 和 $S_2$ 时,存在 $2^{2m}$ 中分隔方法。当泛化误差为 $\Omega(1)$ 时,说明我们可以使用所有可能的分类器得到 $2m$ 个数据点的 $2^{\Omega(m)}$ 个标签。根据 Sauer 引理(见这个主题的讲稿),我们有对于给定的 $\epsilon > 0$,VC 维至少为 $\frac{\epsilon m}{\log{m}}$。

同样的,我们有医生只需了解到『泛化在大小为 $m$ 的样本时尚未开始』,则能够得出结论『VC 维大于 $\Omega(m)$』。

类似的,我们还可以证明 PAC-Bayes 给出的界也是描述型的,细节请看我的课堂讲稿。

为什么学生们会糊涂地认为泛化理论中的这种工具能够提供某种强有力的技术来指导他们设计机器学习算法呢?

答案是,可能是因为讲稿和书本里面的标准展示总是假设我们具有很强的计算能力,并能够计算 VC 维和 Rademacher 复杂度,从而能够得出训练所泛化样本的有意义界。然而这对于以前那些简单的分类器来说是可能的,但对现在我们这种具有百万级变量的分类器(以及反向传播之类的非凸优化技术的组合)来说,太复杂了。

真正的降低复杂学习架构下的 Radmacher 复杂度所提供界的唯一方法是通过训练分类器并通过检验测试集的泛化能力的下降来完成。世界上所有的从业者都这么做了,并且 Zhang 等人获得荣誉也进一步强调了目前的理论在这方面没有任何帮助。

迈向规范型泛化理论

类比现代医学来说,我们可以看到医生至少需要做一次身体检查才能有一个较为规范的诊断。新论文的作者也只管的掌握了这一点,并师徒确定现实生活中深度网络的属性,这能获得更好的泛化能力。这种分析(与『间隔』相关)在十几年前对简单的两层网络进行过,而难点在于寻找类似的多层网络。Bartlett et al. 和 Neyshabur et al. 深入研究了深度网络权重矩阵的稳定秩。这些可以看作是在神经网络文献中被讨论了多年的『flat minimum』的实例。我将介绍我对于这些成果的一些看法和之后的文章中谈到的一些改进。注意,这些方法还没有给出训练有问题的网络所需数据的数量的任何非平凡界。

Dziugaite 和 Roy 走了稍稍不同的路。他们从 McAllester 在 1999年 PAC-Bayes 界出发,得出如果算法在假设集的先验分布为 $P$ 那么在假设集上的每个后验分布 $Q$ (取决于数据),根据 $Q$ 选取的分类器的平均泛化误差上界为:

$E_{h\sim Q}[L_D(h)] - E_{h\sim Q}[L_S(h)] \leq \sqrt{\frac{D(Q||P)+\ln{m/\delta}}{2(m-1)}}$

其中 $D()$ 为 KL 散度。这使得泛化误差的上界(明确的说,在一定数量样本保证下的上界)能够像 Langford 和 Caruana’s 之前的论文所描述的那样进行处理,其中 $P$ 是均匀高斯分布,而 $Q$ 是训练后具有噪声的深度网络(也就是我们想要解释的泛化)。具体来说,如果 $w_{ij}$ 是 ${i,j}$ 的训练后和网络的边权,那么 $Q$ 则由加权高斯噪声 $\eta_{ij}$ 与权 $w_{ij}$ 之和组成。因此,由 $Q$ 产生的随机分类器就是训练好的网络的噪声版本。关键想法是:使用非凸优化来选择 $\eta_{ij}$ 的方差,以平衡两个竞争条件:(1)从 $Q$ 中得出的平均分类器的训练误差不比原始网络多得多(同样,这是最小界的『flatness』的优化后的结果)(2)上述表达式右侧竟可能的小。假设(1)和(2)可以适当的有界,那么来自 $Q$ 的平均分类器对于新数据的泛化能力会非常好。(注意,这种方法只能证明已经训练的分类器的噪声版本的泛化能力)。

将该方法在 MNIST 上使用简单的全连接神经网络,可以证明该方法在 MNIST 数据集上的错误率为 27%(而实际错误率比这个错误率小了 两到三个百分点)。即论文标题所保证的非空泛化界(non-vacuous generalization bounds)。我觉得最有意思的是,他利用非凸优化的方法(利用上面找到的合适的噪声分布 $Q$)来解释关于非凸优化的一个元问题,即深度学习不会过拟合的原因!