分布式杂谈01:CAP 理论的误解
最近在实践分布式和微服务系统,总算是能够把课本上学到的知识学以致用了。于是打算开一个系列来随机聊一聊分布式系统的一些知识。
Science and art, life in between.科学与艺术,生活在其间。
Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。
最近在实践分布式和微服务系统,总算是能够把课本上学到的知识学以致用了。于是打算开一个系列来随机聊一聊分布式系统的一些知识。
Here lists some issues when I was exploring Human-bot interaction.
本文译自:http://www.offconvex.org/2018/02/17/generalization2/ 译者:欧长坤 本文是关于我最新的论文并提供了一些之于我之前一篇文章新的关于「泛化谜题」的观点。 这篇新论文引入了一个基于压缩的基本框架来证明泛化界。并表明深度网络的是高度噪音稳定并可进行压缩。这个框架同时还未去年的一些论文提供了简单的证据(下面会讨论)。 回忆关于泛化理论的基本定理:具有 $m$ 个样本的训练集则泛化误差(定义为训练数据和测试数据之差)是 $\sqrt{\frac{N}{m}}$ 的高阶项,其中 $N$ 是网络的有效参数(或复杂度度量);它最多可能是实际参数数,但实际上可能会少得多(为了便于说明,这篇文章将忽略 $\log N$等这些在计算中产生的干扰因素)。泛化之谜在于:当网络参数量高达百万级时即便当 $m=50K$,网络同样具有相当低的泛化误差(比如 CIFAR10)。反过来想,从某种意义上来说这似乎在告诉我们,网络的实际的参数量是远低于 $50K$ 的。 这里N是网络的有效参数(或复杂性度量)的数量; 它至多是可训练参数的实际数量,但可能会少得多。 (为了便于说明,这篇文章将忽略\ logN等这些也出现在这些计算中的讨厌因素)。神秘的是,即使当m = 50K时,具有数百万参数的网络也具有低泛化误差(如在CIFAR10数据集中) ,这表明真实参数的数量实际上远低于50K。 Bartlett et al. NIPS'17 与 Neyshabur et al. ICLR'18 尝试类似于 PAC-Bayes 和 Margin 的有趣想法对复杂度度量进行量化(同时也影响了我们的论文)。但终究这种量化是不切实际的——量级比实际参数量还要多。相比之下,我们的新估计值要好几个数量级,并且更加有意义。下面的条形统计图进行了说明(所有的 bound 都忽略了干扰因素,可训练参数的数量仅用于表示比例):
几个初步的 Go 语言特点: 类型安全 简洁的面向对象 语言级并发 垃圾回收 一共 25 个关键字: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 package 包引入 import 包引入 const 常量 var 变量 type 类型 goto 流程控制 if 流程控制 else 流程控制 break 流程控制 continue 流程控制 default 流程控制 switch 流程控制 case 流程控制 fallthrough 流程控制 for 流程控制 func 函数相关 return 函数相关 defer 函数相关 struct 面向对象 interface 面向对象 map 数据结构 range 数据结构 go 并发相关 chan 并发相关 select 并发相关
我们终于在上一篇文章中形式化的定义了学习问题,并给出了能够统一描述回归问题、最小二乘法、最大似然估计等方法的一般形式:ERM 原则。实践过 SGD 的我们可能非常熟悉,在 SGD 族的优化下,我们并非一次性使用全部的观测样本,而是使用一个小批量的数据样本甚至一个单一的数据样本来计算网络的损失函数,再利用反向传播和梯度下降来进行非凸优化,实际上这是一种随机逼近的方法,并早在上个世纪五十年代就已经被 Robbins 和 Monroe 提出了。
在前面两篇文章中,我们快速的聊完了深度学习的相关历史知识,从第一个学习机器感知器的诞生、到反向传播的首次再发明、理论派和实践派对 ERM 原则的不同看法以及为学习理论能够真正学到智能从而解决 ill-posed 问题的正则化手段。在理论学派看来,自然语言性质的描述永远是不够的,我们需要发展一套理论来严密的从最一般性的原理出发,彻彻底底的解决机器学习的基础,我们常说的学习到底是什么?我们提过很多次的 ERM 到底有什么特殊之处能在起基础之上产生两个方向完全不同的学派?这篇文章就正儿八经的从符号定义出发,对「学习理论」进行形式化。
上一篇文章中我们从第一个学习模型感知器的提出聊到了人们在研究学习机器的过程中发现因果问题的反演是一个 ill-posed 的问题,正则化方法在解决 ill-posed 问题的过程中扮演了重要的角色。ERM 作为应用学派归纳推理原理的一种不证自明的方法,这篇文章我们就这个话题继续聊下去。 值得一提的是,从一个范围很宽的密度集合中估计密度函数就是一个 ill-posed 的问题。早期的统计学发展了一种叫做参数统计的方法,其最大似然估计,作为一种不证自明的方法来对有限个参数决定的密度集合进行估计。但如果我们连数据的分布假设都不敢假设,换句话说——对一种未知(参数未知)的分布进行估计,最大似然估计就无能为力了。这时候人们发展了很多非参数方法,从而建立了现代庞大且意义非凡的非参数统计学。值得一提的是,这些方法的基本假设是使用大量样本来估计密度,他们可以克服 ill-posed 的问题。
前言 ICLR 2017 的 Best Paper [Zhang et al. 2017] 的作者张驰远做出了相当强的批判,指出机器学习中泛化理论并不能一致的迁移到深度学习中。论文首先通过 Randomization Test 过强的 empirical claim 认为深度学习的模型之所以能够起作用是因为其粗暴的记住了全部的样本,并非真正达到了泛化。但这一结论事实上犯了推理的逻辑错误 [Kawaguchi et al. 2017]。 然而,论文中关于正则化理论的评注「explicit regularization is unneccesary」和「SGD has implicit regularization property」却似乎显得很有分量。确实,我们在实际的调参过程中应该有注意到我们常说的「overfitting」现象并不总会在深度学习模型中表现,我们经常观察到 generalization gap 随着训练时间的增加,会短暂的上升并进而继续降低或者保持不变,并不符合我们理论上对 overfitting 的理解。就这一点问题,我围绕着 overfitting 的定义以及 regularization 提出的始末进行了相关研究,发现机器学习理论基础并没有想象中的那么简单。 于是,我准备新开一个系列,来整理我阅读相关论文的心得以及个人思考。从统计学的基本原理出发,理解统计学习理论的本质。这个系列的名字叫做《理解现代统计学习理论(Understanding Modern Statistical Learning Theory)》,为了方便起见,我们缩写为 UMSLT。 阅读本系列要求读者具有较高水平的机器学习实践经验,同时对形式化数学理论有较强功底,例如对 Banach 空间观点下的概率理论有相当了解,对参数统计学相关知识非常熟悉,对其他通用领域的数学知识也有一定程度的了解。 若读者在阅读本系列的过程中发现有原则性的错误,请务必指出,谢谢。
记得曾经有这么一个小故事,说是欧几里德上完课有个学生发问:『我学这有什么好处?能得到什么呢?』 欧几里德马上叫来仆人:『给这小子一块金币,让他
Generalization in Deep Learning, Kenji Kawaguchi arXiv: https://arxiv.org/abs/1710.05468 ReLU 网络的路径展开 Section 5、6 是全文最有趣的地方了,可惜这个地方作者表达得不是特别好。一个比较主要问题就是作者没有说明 $w_\sigma$ 的定义,这导致了很多人往后就开始懵逼。我问了一下 Kenji ,确认了一下我的理解,他也承认这个地方写得不是很好,因为 $w_\sigma = \bar{w}$,他使用不同记号的原因在于在 5.3 里面要解释 two-phase training。