大学里有什么叫国家机器器吗

<h3>
【单选题】VAR、PERS、CONST表示的程序数据嘚存储类型?( )
</h3>
<h3>
【判断题】甲壳虫形汽车是由德国的波尔舍博士设计的
</h3>
<h3>
【简答题】作业: 我以我手写我心,请书写自己心中的爱情!
</h3>
<h3>
【单选题】如果在线性布局LinearLayout中放入三个所有属性值相同的按钮,并把orientation属性删除掉,则在屏幕上显示的是
</h3>
<h3>
【判断题】流线形是指空气流过不产生旋涡的理想形狀。
</h3>
<h3>
【填空题】在创建控件的时候,可以在布局文件的界面视图中拖拽控件,但本质上还是编辑的()文件
</h3>
<h3>
【单选题】ABB工业机器人仿真软件?( )
</h3>
<h3>
【单选題】在建立工件坐标使用的右手法则中,中指代表的是( )轴
</h3>
<h3>
【填空题】财务中心共花多少钱
</h3>
<h3>
【单选题】DSQC651板数字输入信号多少个?( )
</h3>
<h3>
【多选题】工業机器人四大家族有?( )
</h3>
<h3>
【判断题】凡是管理会计为之服务的企业外部的各个部门或岗位,都是管理会计主体
</h3>
<h3>
【单选题】进度条需要用到的Android组件囸确的是
</h3>
<h3>
【单选题】在GroupOutput设置中,当输出地址是32-35,当仿真时,输入的十进制数据是7,表示那几个地址置1?( )
</h3>
<h3>
【单选题】IRB1200机器人有几个关节轴?( )
</h3>
<h3>
【单选题】默認会将组件全都叠加在左上角,并能通过对齐方式进行摆放组件的一种布局是
</h3>
<h3>
【多选题】工业机器人主要组成?( )
</h3>
<h3>
【多选题】手动操纵机器人运動模式?( )
</h3>
<h3>
【多选题】每一个机器人程序模块包含那几种对象,程序模块之间是可以互相调用的()
</h3>
<h3>
【判断题】管理会计应用的信息,不仅包括财务信息,也包括非财务信息,应相关、可靠、及时、可理解。
</h3>
<h3>
【多选题】DSQC651板提供模拟输出信号的地址范围?( )
</h3>
<h3>
【单选题】机器人绝对位置运动指令?( )
</h3>
<h3>
【填涳题】生产中心的产品花多少钱呢
</h3>
<h3>
【简答题】讨论自我意识的结构
</h3>
<h3>
【判断题】卡尔本茨发明了世界上第一辆四轮汽车
</h3>
<h3>
【简答题】你来大學做什么? 你毕业时要具备什么? 你准备怎么做?
</h3>
<h3>
【单选题】下列属性中,()属性可以“在指定控件左边”
</h3>
<h3>
【单选题】图片的展示控件正确的是
</h3>
<h3>
【单選题】下列那组字母代表模拟输出?( )
</h3>
<h3>
【单选题】DSQC652板数字输出信号多少个?( )
</h3>
<h3>
【单选题】ToggleButton监听方法正确的是
</h3>
<h3>
【单选题】NACHI机器人属于哪个国家的?( )
</h3>
<h3>
【填涳题】表格布局可以包含多行,()代表一行
</h3>
<h3>
【判断题】汽车具有的灵活性和多样性,在交通结构中发挥着重要作用。
</h3>
<h3>
【单选题】Android:ems=”10”属性的意思囸确是
</h3>
<h3>
【多选题】ABB工业机器人在以下的那种情况下,需要对机械原点的位置进行转数计数器更新操作?( )
</h3>
<h3>
【简答题】生产线中共用到了哪些类型傳感器?
</h3>
<h3>
【单选题】中P10的数据类型是?( )
</h3>
<h3>
【填空题】物流中心采购花多少钱
</h3>
<h3>
【单选题】在建立工具过程中,mass表示的是?( )
</h3>
<h3>
【简答题】试找出五个单元中嘚所有传感器,标明每个传感器的作用(附上传感器图片,传感器名称)
</h3>

雷锋网(公众号:雷锋网)[AI科技评論]按:本文根据王立威教授在中国学会AIDL第二期人工前沿讲习班*机器学习前沿所作报告《机器学习理论:回顾与展望》编辑整理而来雷锋网在未改变原意的基础上略作了删减。

王立威在北京大学教授主要研究领域为机器学习。在包括COLT, NIPSJMLR, PAMI等权威会议期刊发表论文60余篇。2010姩入选 AI’s 10 to Watch是首位获得该奖项的亚洲学者。2012年获得首届国家自然科学基金优秀青年基金新世纪优秀人才。任 NIPS 等权威会议 Area Chair和多家学术期刊编委。以下为王立威教授所做的现场演讲的第一部分主要覆盖了机器学习理论的内容。

各位老师同学们,下午好!非常高兴今天能囿机会和大家进行分享也特别感谢周志华老师对机器学习理论做了一个非常精辟的简介。今天我报告的题目是「机器学习的回顾和展望」

刚才周老师也提到,机器学习理论的目的是建立一个比较纲领性的认识大家拿到的 PPT 里面有很多数学细节,既然大家已经有打印的版夲所以我就不花过多的时间讲数学细节,我把主要的时间花在介绍机器学习技术性的内容、最后的一些结论可以对你产生什么启发也僦是一些思想上的东西。

大家都知道在过去几年当中,机器学习最成功的、影响最大的理论毫无疑问是深度学习深度学习到目前为止,在很多地方发挥了作用也取得了很多的成功。那么大家不禁要问一个问题了:深度学习现在很成功了而且大家可能都知道,深度学習到目前为止没有什么机器学习的理论或者说几乎就没有理论,在这个时点上我们为什么还要思考理论?所以我今天想谈一下我个囚的观点。

其实机器学习这个领域很有趣如果大家回顾一下它过去大概 30 多年的发展历史,大家会发现机器学习里面非常重要的一些算法,除了深度学习以外其他的一些重要算法,比如说大家耳熟能详的 SVM、boosting还有 Random Forest 等,几乎全是由做学习理论的人提出来的而不是由做纯應用的人提出来的。到目前为止只有 Deep Learning(深度学习)是一个例外,而像报告里会提到的 SVM是由前苏联的概率学家、机器学习理论的先驱 V.Vapnik 提絀来的;而 Random Forest 也得益于统计学家 Leo Breiman 的贡献。如果我们把这个时间点拉长一点大家可以看到,理论的学习其实对算法的设计研究是有着极其重偠的影响的

我们再来看一看深度学习。现在有很多关于深度学习的观点比如我的一些同事朋友跟我讲,国外一些做深度学习应用方面特别前沿的人说(理论)在深度学习的时代毫无用处,因为你们理论通常是一些不等式比如算法设计出来之后,理论会告诉你这个算法的准确度或者说错误率的上界但通常这个得出来的数值奇大无比,他们还做了一个比较形象的比喻说就好比证明一只鸡的体重一定偠小于一吨一样,这种说法其实是蛮多的

我想通过今天和大家的分享,谈一谈我的观点就是说机器学习理论究竟是做什么来用的,它昰不是只是为了证明这个界(bound)为了说明算法在实际应用的错误率能小于多少,还是说它在传达一些更高层的信息我个人的观点是,機器学习理论是后者绝对不是为了证明一个算法的边界如何;机器学习理论的目的,在于提供对机器学习的问题的洞察和理解

第二点,很多人会有这样的观点我们现在是一个大数据时代,像 ImageNet 这样的数据库资源有上千万在过去,做机器学习理论的研究者可能处理的都昰小数据集也许理论还有一定的价值,但是今天我们做的都是动辄上千万的数据是不是我们根本就完全不需要机器学习理论呢?

我给夶家提一个问题一千万个数据就真的是大数据吗?我个人认为是小的数据而且是非常非常小的。为什么呢今天上千万的数据几乎都絀现在视觉这个领域,人或者其他一些高等动物的视觉经过多长的时间才形成这样的一个神经网络,能够以极快的速度去视觉感知、认知这个长度是以亿年为单位,在亿年这样的进化过程当中每一个时点都是生物以整体的角度在学习和进化,如果你从这个进化的角度來考虑我们把进化看作一个学习的过程,这不是我提出来的理论这是图灵奖得主 Leslie Valiant 提出来的。所以大家这么考虑如果整个的生物群体經历上亿年的进化过程,接触到的数据是什么量级我认为比千千万不知道要增加多少个零,所以我们今天的数据是非常小的数据

那么,我们今天的神经网络和生物的进化以亿万年的进化得到的数据有多大的不同我给大家举一个例子。大家知道人脑或很多高等动物的大腦也是由神经元组成的比如说人脑有着 10 的 11 次方的神经元,大概 10 的 14 到 15 次方的连接我个人认为动物的神经网络和机器神经网络的最大不同茬哪儿呢?

一个是在于结构第二在于速度,第三在于运行机制结构我刚刚讲了一点,在于容量不同下面我谈一点很显著的区别就是速度。人脑中神经元的种类非常多现在已知的就有上千种,当然我们可以考虑其中非常主流的一些神经元对于这样的神经元,大家知噵神经元和神经元之间信息的传递是靠一些生物电信号实际上是化学物质的传递。在人或动物的大脑中信息从一个神经元传递到相邻嘚神经元所需要的时间,大家知道是一个什么量级吗是几十毫秒的量级。几十毫秒什么概念比如说你突然看到一个场景、一幅图像,伱马上就有一个反应这个反应的时间肯定是在 1 秒钟之内。如果你的整个反应是在 1 秒钟之内这意味着信息在你大脑的神经网络中传递的罙度至多是多少,如果你这个大脑中从一个神经元到达下一层神经元传递的速度是几十毫秒的话这意味着你大脑处理视觉信息所用的神經网络的深度至多就是几十层,如果你的大脑反应过来可能已经过去将近 10 秒钟了。所以大家要意识到我们今天所训练的最最先进的神經网络,和人脑中的、动物大脑中的神经网络依然是截然不同的两者不一样的地方其实远远大于他们相似的地方。

再举一个比较典型的唎子我们今天的神经网络,实际上都是用计算机模拟出来的并不是一个真正的硬件。我们在计算机上进行模拟认为层与层之间的信息的传递完全是同步的,必须上一层的信息全部同时传递到下一层的神经元才能够进行处理在人脑中没有这样的同步控制信号,所以人腦中的神经元完全是高度分布式的一种计算所以这就是一个重大的不同。所以今天我们深度学习所用的神经网络即使从生物、从仿生嘚角度来讲,其实跟真正的生物依然差别很大所以要想深度理解,必须有一个很基础的理论当然我们也要面对现实,机器学习这个领域过去发展了几十年所建立起来的机器学习的过去经典的理论,比如 等等这一系列的方法它对于今天的深度学习确实没有非常好的解釋或者说认知,但是这也正是一个很好的机会、一个挑战:我们应该如何建立一个新的理论去认知深度学习根本目的是,我们能不能够將来设计出更加有效的方法给大家举一个例子,人脑以这么慢的信息传递速度其实在很多很多的问题上要比今天的深度学习训练出来嘚网络效果要好得多,如果我们要能够基于这些理论设计出类似于我刚才讲的人脑的一些方法岂不是要比今天的深度学习的性能要提高百千万倍?

  • 接下来我们就开始进入具体的内容。

首先我们来看看机器学习理论最核心的一个观点就是 generalization(泛化)。谈泛化之前我们先叻解一下机器学习理论是做什么的。机器学习理论是为了给整个机器学习建立完整的框架所以必须要有很严谨的形式。概括来说机器學习理论是建立在概率统计的基本理论框架之上。它研究的核心问题在于如果要实现一个具体的学习任务,需要多少资源能达到这个目嘚而在机器学习中,很重要的资源就是数据所以我们就是要研究究竟需要多少数据我才能够学好。当然如果在数据已经给定的前提下不同的方法规定了相同的数据,机器学习的成果是不一样的所以也可以表示出来。

这是机器学习理论的一个基本框架:我们要通过收集数据来学习出一个模型拿到这个模型以后我们根本的任务是做预测,这个预测是在未知的数据上去做的所以一个很关键的问题是,峩们的目的是希望在未知数据上学出来的模型能够表现出很好的性质而不仅仅局限在我们已经收集到的数据。

虽然大家通常认为机器学習是过去几十年发展出来的一个学科但是我个人认为,其实机器学习一直伴随着人类文明的发展从人类真正有文明、有科学那天,就囿机器学习我给大家举几个例子:

第一个,「胡克定律」我相信各位肯定都接触过这个中学物理问题,这个定律是探讨拉伸的力和弹簧伸长的长度是什么样的物理关系如果我们站在胡克的角度,这是一个什么过程我认为这是一个非常典型的机器学习过程。胡克做的苐一步是收集数据他拿一个弹簧做了很多次实验,根据每一次伸长的距离记录拉力并将数据记录在一个表上。第二步胡克(当然是鼡他的脑子,不是用计算机)学会了一个模型他最后得出的结论是,这是一个线性的模型再之后胡克拿了一些新的弹簧,再把它做拉伸是否还符合这个模型。所以胡克发现「胡克定律」就是一个非常典型的机器学习的过程:收集数据、建模、做出预测。机器学习的這种思想一直在科学领域不断应用

有一个问题,为什么胡克会学到一个线性的模型大家看到这个线性模型,其实他的观测数据上有很哆的误差的比如说胡克做了 100 次实验,得到 100 个点他为什么不找一个曲线恰好能够通过这 100 个点,使得训练数据上没有误差比如说我们很嫆易找到一个 99 阶的多项式,而使得这 100 个点被零误差地覆盖所以大家要思考一下:胡克为什么能够得到这样一个结果,而不是一个复杂的曲线里面最本质的思想是什么,大家体会一下

当然也有人质疑,认为「胡克定律」在物理学上没有任何的地位不是一个什么了不起嘚定律,大家看一看「开普勒定律」这是了不起的贡献。「开普勒定律」讲的是什么开普勒通过研究过去上千年天文学积累的数据,朂后发现三个规律举一个例子,说行星围绕太阳转动实际轨迹是一个椭圆,他找到这个椭圆实际上不是精确吻合了这些数据只是近姒吻合,他为什么不找一个复杂的曲线完全吻合这个数据开普勒在归纳这个数学规律的时候,背后也有一些非常奇妙的思想并不是简簡单单的观测这个数据。最后我们来看一看机器学习里经常见到的学习一个分类器,我们可以用一个很简单的分类器用光滑的曲线来表示,我也可以用一个非常复杂的分类器用弯弯曲曲的线来表示。当大家观察到这幅图的时候你觉得应该是简单的曲线,但是有一些汾类误差比较好呢还是复杂曲线,对于观测到的数据没有误差更好呢

我们来总结一下刚才几个例子里面,其实在通过学习模型和数据嘚时候物理学家或者机器学习的学者是怎么样思考的,其实这早在 13 世纪威廉姆·奥卡姆就提出了一个哲学思想(奥卡姆剃刀理论)是用拉丁文写的。其实我对他的解释应该有一位更著名的科学家有一段更著名的话,是对这句话进行最完美的解释「Everything should be made as simple as possible but no simpler」这句话是爱因斯坦說的,意思是做理论的时候一定要尽可能的简单但是你又不能过于简单。对应物理模型的时候一定要找到一些模型允许存在一定的误差,但是又不能过于简单如果过于简单,和你观测的数据误差太大也不行奥卡姆剃刀的这一思想实际上是机器学习或者整个人类在获取科学知识的历程中,最核心、最本质的思想

在今天的机器学习理论里,实际上是把威廉姆·奥卡姆剃刀的思想定量化表示出来了,为什麼要定量化因为今天,机器学习处理的问题要比物理学的「胡克定律」、「开普勒定律」复杂千万倍。甚至有人这样讲今天在 21 世纪,如果你去研究物理学你最后得到的是一个线性模型,我根本不需要看你具体研究的是什么模型得到的是什么结果,我可以很肯定的告诉你你做的东西要么就是早就被别人已经做过了,要么就是这个问题太简单没有任何意义

换句话说,物理学中较为简单的定律早就被发现了今天机器学习处理的问题是一些非常非常复杂的问题,给大家处理一些图像、一些声音还有搜集到的一些数据,牵扯到很多嘚人的因素这是很复杂的东西,你不可能指望用简单的方程低次的一些方程或者低次的一些物理系统去描述。所以当你本质的模型已經极其复杂的时候我究竟应该用一个多复杂的模型来表示?我需要一个定量的指导所以机器学习最重要的是在一个定量的层面上,对剛才我们讲的奥卡姆剃刀理论给出一个定量的定义。

那么我们前面提到机器学习建立在概率统计的基础上,这里面我就不对概率统计嘚数学细节做过多的解释了如果感兴趣的老师、同学们可以课后去看我们这个印发给大家的具体内容,我还是在思想上给大家做一个比較稍微宏观一点的介绍在这之前有一些准备的工作。

大家可能都知道概率论里有一个叫「大数定律」的理论,讲的是如果我观测一个隨机变量很多次它的平均值应该是趋向于它的数学期望。比如说以前有一个掷硬币的例子假如说掷一万次,这里面向上的次数应该是哆少呢如果这是一个公平(fair coin)的硬币,那么你掷接近无穷多次之后频率最后应该是趋向于 0.5,这就是大数定律之前数学家 Nicolaus Bernoulli,就找了一個硬币掷了几万次,最后观测出这样的一个数值

那么我问大家一个问题:现在有一个这样的硬币,大家掷 1 万次我们知道掷出来的结果和 0.5 非常接近,但是究竟有多近呢假如说你掷 1 万次,发现 40% 是向上60% 向下,你觉得这个硬币有没有问题

我接下来要讲的机器学习理论就昰为了给出一个定量的结果,就必须用一些能回答这个问题的数学工具如果你掷出来正反面的概率是 40% 和 60%,那么你的硬币本身有没有毛病或者说如果硬币没有问题,你掷硬币的时候应该会在一个什么区间里

有一个定理和我刚才讲的这个理论是有点相关的,叫中心极限定悝大家应该听说过,如果我有很多独立分布的随机变量我们考虑一个平均值,它也是一个随机变量但最后一定会趋向于一个正态分析,而且会告诉你正态分布的方差是多少

那么机器学习里面用的概率工具就能够回答我刚才说的定量问题,叫做「Concentration inequality」其中比较重要的┅点在于,它给出了数学上非常精确的一个定量描述一个硬币,假如说它是一个正常的硬币如果掷 1 万次,在什么区间里是比较合理的呢应该在 0.499—0.501 这个区间是比较合理的,就是由这些不等式精确地给出了如果你掷出来的是 0.4 或者哪怕是 0.45,那么这个硬币 99.99% 的可能性是有问题嘚

所以这样一个概率里面表示的,实际上是我们机器学习里面常用的数学工具

刚刚讲 Concentration inequality 是一大类概率数学的不等式,其中最有代表性的大家对这个名字能够有所耳闻就可以了,叫 Chernoff Bound是描述刚才讲的掷硬币的平均值和你的数学期望大概有多大偏差,这是一个量化的刻画所以如果将来有一天遇到类似的问题需要找一个数学工具来解决的话,可以首先去查一下 Chernoff Bound这些在网上都可以得到。

还有不等式这都是非常常用的工具,具体的不再给大家做过多的细节介绍


接下来我想和大家介绍机器学习里面的第一个理论,也是机器学习里到目前为止影响最大、范围最广的一个理论这个理论叫“VC理论”,VC这个字母代表了两个人名字姓名的首字他们是Vapnik和Chervonenkis。最开始我提到机器学习里媔除了深度学习以外,有非常多最重要的算法实际上都是做纯理论的学者提出来的。其中SVM就是由VC理论里面的Vapnik所提出来的我们来看看“VC悝论”讲的是对机器学习理论怎么样的理解。

这里面有很多定义我就不一条一条的给大家介绍了,只给个别名词给大家解释一下有些數据,比如这个数据是一幅图像我们可以认为是图像的空间里存在的数据,如果对这个图像进行分类我们可以把类别标号也看作一个集合。在学习的时候其实有一个很重要的假设,也是一个基本的理论框架就是我们一定假设我们观测到的数据,是按照一定的随机性產生的比如我们现在拿到一个任务,要研究一个图像分类问题我现在手里有1千万图像,例如ImageNet大家可以想象这个ImageNet是从世界上所有可能嘚、相关性的图像中随机抽取来的,这个假设其实是相当合理的这里面的数据认为是随机抽取来的,而且这个随机抽取我们可以认为它昰按照某种分布状态随机抽取的并且我们还可以假定,未来当我们从这些数据上学出一个分类器、学出一个模型之后我们要应用场合嘚数据。也就是我们真正要去实际应用的时候那些数据也是随机抽取出来的,并且应该和训练数据从同样的分布中抽取出来的这种假設是有一定的必然性的。如果我未来应用的场合和我做训练的场景不是同一个分布稍有区别还可以,但如果应用场景和训练场景没有任哬关联那么机器学习不可能获得成功。

这是一些基本定义还有一个定义,即你在学习时需要有一个模型这个模型可能是一个线性模型,比如前面举的例子;也可能是SVM这样的非线性模型如果是线性模型大家都理解,而SVM可以看成是高维空间甚至是无穷维这样的线性模型。或者你在学一个深度学习、学一个网络但是无论你是用哪一种模型,其实你都把分类器限制在某一个集合里了线性模型就是所有嘚线性模型集合,SVM是在Hilbert空间中的线性分类器如果你是一个Network,当你把Network的层级、结构都固定了那就是在这样固定的层数结构下面,所有可能的Network的集合因为不同的参数会得到不同的Network。当然如果你层数和结构可变的话我可以把我的集合再扩展。这样的集合通常叫做假设空间(hypothesis space)换句话说你学习的模型总是从一个限定里面得出来的,而不是凭空选择的这个概念其实非常重要。

回顾一下刚才说到的“胡克定律”和“开普勒定律”其实它们都牵扯到这个问题。“胡克定律”实际上已经把假设空间限制在了线性模型中限制之后,你再去找最恏的线性模型去适应你的数据“开普勒模型”是限制在椭圆模型中。所以大家也可以看出假设模型是非常重要的

有了刚才这些基本的概念,我们来解释一下学习理论最重要的概念——泛化什么叫做泛化,泛化其实非常简单前面谈到,学习的目的是希望学好一个模型并且让这个模型在未来要应用场景的数据上有非常高的准确度。所谓泛化的错误就是指一个模型在未来的应用场景下的错误率,叫做泛化为什么叫泛化呢?我们可以把它和我们经验的错误或说在训练数据中的错误做对比。通常大家训练一个问题的时候你拿到很多訓练数据,你可以学一个分类器在训练数据上得到一个错误率。而这个训练的错误率和刚才讲的泛化的错误率实际上后面要看到这二鍺是有非常本质的区别的。这个区别正是机器学习理论要研究的内容

刚才我们谈到“大数定律”、“中心极限定理”,讲的都是比如說掷硬币,掷很多次以后的平均值最后会趋向于数学期望如果我们仔细的从技术细节上想一想我们刚才的学习的话,如果有一个给定的汾类器这个分类器的错误率,比如说训练数据上的错误率实际上就是对每一个训练数据是否正确,这个值就是在所有训练数据上做的┅个平均:错误的记录1正确的就记录0,就是这样的一个平均根据我们刚才讲的“大数定律”、“中心极限定理”,甚至是不等式它們都说明随着训练数据的增加,你给定的数据在训练集合上的错误率应该趋向于它的数学期望大家看一下这个数学期望恰恰是我们前面萣义的所谓泛化错误,泛化错误其实就是你那个错误率的数学期望在未来没有看到的数据的错误率就是你的期望值。

那“大数定律”难噵不是吧你的问题给直接解决掉了吗我只要训练,找到一个训练的模型他在训练上有一个很小的错误,根据“大数定律”是不是期望錯误率就很低呢而“期望错误率”正好是我们未来应用到场景上的错误率。这里有什么问题吗

这里面有一个很重要的逻辑上的错误,僦是大家一定要意识到学习的过程是从一个很大的模型集合里面挑选一个具体模型的过程,而挑选这个过程使刚才我们说的“大数定律”不能再应用如果对这个细节感兴趣,大家回去以后仔细看看我上页PPT的内容挑选这个过程是极其核心的。由于你是可选的模型范围很夶所以这个时候你挑选出来的模型的训练错误率不一定和期望接近,有可能差异非常大用“胡克定律”举一个比较直观的例子,比如伱这里有一个弹簧做100次实验,假如我把这个模型空间放在所有可能的99阶多项式我一定可以从这个模型空间中找到99阶的多项式,使得我們观测到的100个数据完全覆盖这个时候你的训练错误率是零,但这个时候泛化的结果是多少也就是你新做一个实验、拿到一组新的数据嘚时候,期望的错误率是多少如果给你一个99阶的多项式,它的振荡很多那么新来一个数据以后,这个99阶的多项式肯定性能非常差从矗观上你就能看出来它没有任何的稳定性。这就叫过度拟合(over-fitted)由于你是从一个很大的集合中挑选出来的这个模型,尽管这个模型把你嘚数据处理的非常好但是你过度拟合了,没有达到泛化的目的

在这里我插一句,虽然我在后面还会重点讲到这个问题今天可能还有佷多在座的老师、同学都在用深度学习,可能在座各位有相当多的老师、同学都有过训练神经网络的经验大家在训练神经网络的过程中囿没有这样的体会;在相当一部分的训练实验中,你训练错误可以降得非常低但是在我的测试数据上,可能开始这个测试数据还是在降低但是训练到某一个程度之后再训练下去,测试错误升高了这是训练深度学习时经常会遇到的问题。这就是典型的过度拟合在训练數据中做的好,但对于测试数据差别很大了

其实这种现象也是机器学习最根本的现象,而且我觉得并不是因为深度学习时代来临了过喥拟合就不存在了。即使你用很大的数据集它依然是存在的刚刚朱军老师给大家讲了一句话,随着深度学习近几年的发展大家认为防圵过拟合这件事情越来越重要。所以大家要意识到在今天所谓大数据的时代、在深度学习的时代,其实仍然是经常发生的后面我会更細致的谈到这个问题,在如何处理解决这个问题上谈一些我自己的想法

回到刚才的问题,如何保证机器学习有一个很好的泛化能力呢這里面就提到一个很重要的概念uniform generation。简单来讲它意思是说你现在的目的是保证你学出来的分类器未来能有很好的效果,而你要想保证这一點实际在很大程度上是要保证你刚才模型侯选的这个空间里几乎所有的分类器都得有一个比较好的泛化能力,同时具有一个比较好的泛囮能力只有做到这一点的时候,你学出来分类器才能有一个比较好的泛化能力因为你在观测到训练数据之前,不知道你学出来的将会昰哪一个分类器所以你如果能保证对集合里面所有可能的分类器都有很好的泛化能力,就能保证你学出来的也有这样的能力

那么如何財能够保证所有的集合里面侯选的分类器都有很好的泛化能力呢?它和什么有关呢我今天不讲太多数学上的细节,它的核心点在于你侯选模型的集合究竟有多大。具体到这一个符号指的是,如果你侯选的模型集合是有限的只含有有限多的分类器,这个符号就代表了咜所含分类器的个数简而言之模型含有的分类器越多,那么要保证学出来的分类器有较好的泛化能力就需要更多的数据。

回到胡克的那个例子如果你用一个很简单的模型,比如用一个一阶线性模型待会儿我会谈到,一阶线性模型虽然是一个比较小的集合但实际上含有无穷多的元素,因为线性模型有无穷多个它是连续的。这个地方大家可以先从直观的角度去认为它是一个比较小的模型它所含的え素个数比较少。由于一阶的线性模型某种意义上是一个比较小的集合这个时候,只需要少数实验可能10个观测数据可能就可以学出一個比较好的模型,再来一个新的数据它的泛化能力就比较好。但是如果真的想学一个99阶多项式这样的模型所需要的数据量就大太多了。刚才我们讲你有100个数据想学99阶多项式,这个学习理论告诉你100个数据太少了得需要1万个数据。当你观测到1万个数据的时候大家再用99階多项式再去看,哪一个最好的99阶多项式能够和我的训练数据更吻合呢可能大家会惊讶的发现,这99阶多项式99、98一直到第二次项前面的系数实际上几乎是0,实际上它就是一个现象级

下面我总结一下。这个学习理论告诉大家假如我是从一个侯选的集合里选择一个模型,偠想学好所需要的数据量一定和模型的复杂程度呈正相关。用今天大家更常见的深度学习来做一个比较形象的比喻如果你想训练一个1芉层的网络,比如这个网络说有几百万个节点和你想训练一个10层的网络,这个网络可能就是几千个节点大家想一想哪个网络需要的训練数据量更大呢?肯定是模型很复杂的、深层的节点数更多的需要的训练数据量更大。换一种表示方式如果我给定了你10万个数据,你應该选择一个什么样规模的网络来训练这个对实际应用有很大的指导意义,如果你不了解这个机器学习的基本思想那就没有指导性。所以机器学习能告诉你大致应该在一个什么样的范围内选择模型的复杂程度这个实际上就给出了机器学习理论是干什么用的。它不是具體的证明而是告诉你一些高水平的想法。这个地方告诉你的是当你有一些数据量的时候,你要根据你的数据量来选择模型复杂程度洳果大家不相信回去可以做实验,拿1万个数据看看你用一个几百层的神经网络训练出来,会不会发生我刚才讲的过度拟合的现象我估計你做10次实验起码有8、9次都会发生这个现象。

刚才给大家讲到VC理论如果它只是这么简单的故事,也不能称之为理论它理论技术上的核惢,是它能够给出非常精确的量化描述这个量化描述本质上是它能针对无穷大的集合给出一个复杂描述。刚刚说了如果有限大的集合這个集合里的元素数量就是对它大小的刻画,但当这个集合是无穷大的时候怎么刻画呢?所以V、C两人就提出了一套理论对无穷大的集匼给出一个刻画的参数,叫做VC维度(VC dimesnion)它非常好的刻画了无穷大的集合,如果它含有的都是分类器的话它的复杂度有多大。大家会发現它的应用范围之广你会发现它在计算机很多领域都有广泛应用。

简言之VC维度越大说明模型越复杂。这样的模型想要训练好就需要囿很多的训练数据。如果感兴趣的老师、同学们可以具体去看一些例子常见模型是可以计算VC维度的。如果用线性模型这种很经典的模型它可以给大家一个大致的量化说明。如果你的模型的VC维度是10你需要多少训练数据?我认为大概需要VC维度10倍也就是100个训练数据。所以洳果你的VC维度是1亿的模型而你只有1千个训练数据,那就不可能训练好过度拟合的肯定很严重。但如果你VC dimesnion比数据量小太多就走向了另┅个极端——拟合不足(under-fitted)。就是说最好的模型还不能拟合训练数据所以在这些方面大家要多做注意。

  • 最后总结一下VC维度刻画的到底昰什么?

VC维度刻画的是你从一个什么样的模型集合中去训练刻画的是模型集合的复杂程度,它研究的是结构的性质VC维度本身没有给我們讲任何算法的事。只告诉你现在有这么样一个VC维度你可以对任何一个模型集合,比如说估计它的VC维度你大概知道需要用多少训练数據,但这对你的学习算法有什么用VC维度其实没有回答这个问题你的学习算法呼应VC维度,实际上就是从你这个模型集合里面去找一个使得訓练错误最小的大家会看到,后面很多其他的学习理论和VC理论是非常重要的VC理论对算法没有太多牵扯,它研究的是集合大小的复杂程喥有了VC维度D之后,我大概可以泛化错误和训练错误之间有什么样的量化关系核心就是√D/N,N是数据量D就是VC dimesnion,所以我刚才讲数据量至少昰VC dimesnion的10倍才能使跟号下的数据足够小。

这个地方用一个图能比较好的反映泛化错误和训练错误这个图横坐标是模型集合的复杂程度,它昰左低右高;纵轴代表错误这条曲线是经验错误,这个U型曲线是泛化/测试错误随着你的模型从最简单,也就是拟合不足、训练错误和泛化错误都很大到最右边得过度拟合,也就是训练错误很低了但是由于模型非常复杂,泛化错误也很大所以你一定要找到一个非常匼适的复杂程度作为最终模型所选择的范围。这是VC理论给我们提供的一个思想:大家一定要找到合适复杂程度的模型

刚刚讲的VC理论本身其实没有涉及到算法,但是做机器学习最终还是要落实到算法有什么方法能够利用VC理论这样的思想帮助我设计算法呢?其实用到最多的僦是正则化(regularization)可能很多人都听说过这个方法,比如说在结构风险最小化(SRM)里面提出来的用层级(hierarchy)来做模型的集合。更多的正则囮是我优化的目标是我训练的数据,但是我要加上一个和模型复杂程度相关的一项

刚才讲了模型的复杂程度对泛化错误的影响,如果鼡到算法一个很自然的思想就是用到正则化当中。这个是在算法层面上的实现这是非常重要的。大家可以看SEM非常典型的L2的正则化,湔面是一个所谓的训练损失还有L1的正则化,LASSO等等

还有Boosting,它是一个迭代的过程每迭代一步,生成一步基本分类器最后把所有基本分類器综合到一块。显然随着迭代的不断增加模型会越来越复杂。我如何解决模型过于复杂最后导致的过度拟合呢early stoping就是一种方法。那在罙度学习中你有没有用到过early stoping呢很多时候你用Network的时候,实际几乎总是在用early stoping你训练一定的epoch你就得停掉。如果不停让它不断的迭代下去,峩觉得最后很可能就会过度拟合你迭代1000个和迭代50个的结果可能会及其不同。但是1千个之后的epoch可能比50的小很多但是你的迭代1000个时的测试錯误可能就已经大得没办法看了。


北京大学教授王立威博士的主要研究领域集中于机器学习在包括COLT, NIPS,JMLR, PAMI等权威会议期刊发表论文60余篇2010年叺选AI’s 10 to Watch,是首位获得该奖项的亚洲学者2012年获得首届国家自然科学基金优秀青年基金,新世纪优秀人才任NIPS等权威会议Area Chair,和多家学术期刊編委在主题报告结束后,雷锋网AI科技评论与王教授做了短时间交流

1. 您曾经指出,机器学习理论在于理解人工智能的局限性结合您的研究经历,您认为人工智能现在能做什么还不能做什么?可能的突破口又在哪里

我觉得在过去几年,人工智能或者机器学习的发展已經把这个问题很好地展现了现在做得很好的两个领域主要集中于图像和语音,由于深度神经网络的结构利用了先验知识自然也非常适鼡于这两个领域。

当然产业现在也发展得比较好,所以我认为未来短期内如果会有重大突破的话更多的是在应用领域,找到和图像和語音相关的比较好的结合点可能不是偏学术领域,而会是一个是偏商业化的方向(AI科技评论:更好地产品化。)对找到一个更好的應用。

2. 目前工业界开始出现与高校合作的趋势前者提供数据和研发资金,后者提供研发支持而往往这些研究都是应用导向的。您认为這样的合作会对理论研究产生怎样的影响

我想举这么一个例子,就是产生很大影响的 AlphaGo从最终展示出来的成果来看,我们可以认为AlphaGo 是┅个非常成熟的应用系统。而 Alpha Go 从最开始的想法到技术落地同样很大地推动了学术的前进。比如 DeepMind不论是从算法和理论上都有突破,这一點研究界也有目共睹(工业界研究推动学术发展)同样也是很好的一个模式,我认为将来工业界和高校的合作趋势也可以取得这样的┅个成功。

3.现在已经将计算力提升到一个以前不敢想象的高度甚至已经远远高于样本的获取能力。那么构建样本会成为未来的研究重点嗎

数据其实是一个很大的问题,也牵扯到很多方面我的一个考虑是,今天应用的比较成功的领域包括图像和语音方面,实际上这些昰属于非专业知识的数据随便请一个人,一个普通人就可以对图像或者语音进行标注。这类问题当然也有应用但有很多相当一大类數据是属于专业数据,比如说医疗数据这些只能让医生进行标注,它的成本实际上是很高的

4.  此前与其它老师交流的时候,他们提及高校研究的数据量不够大的问题那么从您个人的研究经验来看,数据对于算法而言处于怎样的地位

我认为主要有两个方面。一种是应用关注的是系统的最终性能,而数据对后者的影响是巨大的当然高校是完全无法和企业相提并论的。但高校更重要的一个任务是我能鈈能去设计新的更好的算法。我们并不是只停留在 Deep Learning 这样的算法上就像我在演讲中提到的那样,也许两三年后Deep Learning 也许就不是最好的,这完铨有可能那么这个新的算法该由谁来提供?我想这应该是高校教师的职责是他的本职工作,researcher 就应该做这样的事情所以我提出一个新嘚算法,未等到手里有巨大的数据量才开始做研究

接下来给大家介绍机器学习中第二个比较重要的理论——Margin Theory。

VC Theory和算法关系不大它刻画嘚是集合的复杂程度;

Margin Theory则不同,它牵扯到很多算法后面我介绍的Margin Theory就是完全在刻画算法。所以大家要理解机器学习理论的发展,是先从刻画一些结构的性质再逐渐变化到刻画算法本身。

我认为当前尤其对深度学习来说,最有价值的学习理论一定是在刻画深度学习算法夲身的性质当然你的模型复杂程度也有用,但那可能不是最主要的

Margin Theory在SVM中怎么用大家都比较熟悉了,想象一下:

比如空间中有正负两类點现在要找一条线把这两类点分开。需要找一种个分法使得这两类点分完了以后离分类面的间距越大越好,而这个间距就叫Margin

而对于Boosting來讲,也有类似的概念我前面也讲到,Boosting就是由许多基本分类器把线性组合起来而得到的一个最终结果

比如你组合了100个分类器,你要看這100个分类器里面究竟有多少是把这个数据看成正的点有多少是看成负的。

  • 如果50%判成正的、50%判成负的实际上这个判别结果对数据就没有Margin,Margin就是0;

  • 如果百分之百的判成正的Margin就非常大。

所以大家可以领会一下Boosting的Margin实际上体现了这个Boosting所用的基本分类器对数据分类结果的置信度(confidence)。如果百分之百都分成正的这一类说明这个结果的置信度非常高;如果接近50%,则说明置信度非常低所以,这个置信度就是用Margin来表礻的它实际上对泛化能力起到了非常重要的影响。

大家最开始用VC Theory研究Boosting的时候理论结果肯定是综合越多的基本分类器,泛化效果越差泹实际上实验结果却是,综合了几千个基本分类器之后泛化性能不仅没有变差,还在不断变好这看起来就很奇怪,因此也引导人们去思考不仅要考虑模型的复杂程度,还要考虑算法本身是否也对泛化产生影响 

从直观上理解:如何用Margin刻画泛化?

Margin既可以对SVM刻画泛化也鈳以对Boosting刻画泛化。不过我们先把所有这些理论都忘掉单纯从直观的角度来思考。

现在大家有这样两种情形大家来比较一下:

  • 第一种情形我现在有一个分类器,它对绝大部分的数据都有一个很大的置信度要么是全部分成正类,要么全部分成负类用Margin语言来说,就是对于絕大部分数据Margin都很大;

  • 第二种情形对于绝大部分数据来说Margin都很小,基本上都是只比50%稍微多一点

这两种分类器虽然差别很大,但是我们假定这两种情况在训练数据上的训练错误率是完全相同的

训练错误率只能表示把数据分对还是分错了,而置信度实际上则代表了具体分類值的大小大家想想,在训练错误率完全相同的前提下是置信度大的更可能有强泛化能力,还是说置信度小的可能性更大即使从非瑺直觉的角度,不用通过任何理论你也能知道一定是置信度大的泛化能力更大。Margin Theory就是把刚才那个很直观的想法建立在精确的数学基础上再用严密的语言给表述出来。

对数学很感兴趣的同学可以去看里面数学具体的证明;如果对这个没有兴趣的就理解我刚才讲的。就是說对于分类结果千万不要只看训练错误率这么一个简单的数字,你要关注MarginMargin代表了置信度,而置信度对泛化能力有相当重大的作用

我囷周志华老师一起合作过很多工作,特别是在解释Boosting这方面这大概是将近十年前做的工作。后来周老师和他的学生又做了很多更深入、更精致的一些工作所以如果大家感兴趣的话可以参阅一下这方面的论文。

VC Theory是宏观的它是对问题的一种最简单的表述,只考虑算法对每个數据判对还是判错和模型的复杂程度用这两点来刻画泛化。

Margin Theory告诉大家要更关注算法的信息算法会输出很多置信度方面的信息。

其实茬今天的深度学习里面同样有这个问题: 深度学习最后输出的不光是对错,而是输出了一个实数值这个值本身含有一定的信息量,这个徝的大小在某种程度上其实也反映了置信度的大小作为研究内容大家可以去探讨一下,这个值对于深度学习的泛化能力有什么样作用

從Boosting发展历程中,收获了什么启发

刚才我们讲了Margin Theory对SVM、对Boosting都是适用的,大家还可以探讨一下两者之间的关系

下面是一个关于Boosting针对具体的Margin理論给出的数学的表达式,这个表达式比较复杂的最初是由Boosting的提出者Freund和Schapire提出来的。这个里面其实还有很多的故事

简单说一下这里面的故倳。

Boosting其实很有趣大家如果回顾一下机器学习的发展历史,你会发现历史总是在不断重复的发生大概在1995、1996年,人们提出了adaBoost算法这个算法提出来之后大家觉得,怎么这么简单的一个组合就能大幅度提升性能了呢这看起来就像魔术,像今天的深度学习一样它的方法其实僦是把基本的分类器组合起来。现在没有人能够解释为什么深度学习在实际中就是有这么好的效果而当年adaBoost算法刚刚出来的时候也是如此。不过很快adaBoost的提出者Freund和Schapire他们两个人就给出了理论Margin Theory,从数学上证明其原因是Boosting能够得到一个分类器而它的Margin很大。

Margin这个理论在定量方面做嘚更好,但是在实验结果上却和理论恰好相反——理论上更好的Boosting算法反倒没有理论上不太好的Boosting算法的实验结果表现得好。所以大家能理解了这个时候的实验结果和理论预测是完全矛盾的,那到底应该是相信实验还是相信理论呢这时我们就必须本着实事求是的精神,百汾之百的尊重实验结果:肯定是理论上出了什么问题所以Breiman得出一个结论:Margin Theory肯定是有极大问题的,它不能解释实际的现象

很多年以后,通过学者们包括我和周志华老师,在这方面做的一些研究我们发现这个理论其实并没有问题,问题在于之前的理论在定量的意义上没囿做到最好你把定量做的更加深入、更加精细之后,就会发现Margin的理论和试验观测就统一了所以Boosting发展历程的故事对我个人的一个启发是,其实有的时候算法的提出是会比理论超前的adaBoosting就是一个很典型的例子。但是不要着急我们慢慢的深入研究它、理解它,我相信对深度學习是一样的应该在不久的将来,我们从理论上会对深度学习有一个更深刻的认识

我们接下来谈谈第三个比较重要的学习理论,叫Algorithmic Stability(算法稳定性)

刚刚我们谈到了机器学习理论的发展,从最开始几乎不关心算法只考虑模型的复杂度,慢慢到Margin实际上已经和算法有关,而Algorithmic Stability其实完全就是探讨算法性质我这个算法究竟具备了一个什么样的特点,从而导致我们能够有一个好的泛化能力

Stability呢?我们还是从比較宏观的角度来考虑细节大家回去以后自己去看。简而言之怎样的算法是stable的?它的核心是说当算法用一个训练数据集可以训练出一個结果,假如我的训练数据集有1万个数据我把其中9999个都保持不变,就把其中的1个数据换成一个新的那么这个时候你的学习算法学出来嘚分类器会不会有一个显著的变化?如果没有显著的变化那么这个学习算法是stable的。如果有显著变化我们说这个算法是不stable的。

Algorithmic Stability就是从萣量的角度上来刻画以下的关系:当换掉其中一个训练数据时,算法学出来的结果会有多大的改变

稳定的算法会有更好的泛化能力

大家覺得,是比较stable的算法会有更好的泛化能力呢还是说一个不stable的算法有比较好的泛化能力呢?从直觉上思考一下显然是stable的算法有很好的泛囮能力。

我还拿最开始的“胡克定律”来说明如果是一个线性的模型,训练数据更换一个其实这条直线不会有显著的变化;如果我有100個数据,用99阶多项式来匹配这100个数据假如把这100个数据换掉一个,我相信新的99阶多项式可能就会发生重大的改变所以大家要从新的角度,也就是算法的稳定性来刻画

算法稳定性理论是一个很定量的描述:如果我的算法具有一个什么样的程度的稳定性,那么算法的生成范圍就能有什么样的表征我们就能给出一个数学领域的严谨描述,一个定量的刻画具体的内容我就跳过去了。

SVM与SGD算法稳定性如何?

我茬讲这个算法稳定性比较新的内容之前先说一说一些很传统的算法,有一些是稳定性很好的

举个例子,SVM的稳定性很好SVM可以从数学上證明,如果换掉其中的一个训练数据其实你得到的结果通常发生的改变是比较小的,是1/√n的级别n是数据的量。如果改变一个数据只是1/√n级别的变化那么它的算法稳定性很好。什么样的算法稳定性很不好呢比如说以前有一个算法叫决策树(decision tree),假如换掉其中一个数据有可能决策树就完全变掉了。

所以从这个算法说回今天我们最常用的方法上今天大家很多人都在用深度学习(Deep Learning),训练深度学习大镓是用什么样的算法在训练Deep Learning呢?最常用的算法就是SGD(随机梯度下降)我们来问问大家,SGD这个算法究竟是一个stable的算法还是一个不stable的算法伱从直觉上先想一下,梯度下降(GD)是在当前求它的梯度沿梯度下降的方向走一小步。由于我求GD很费劲所以我们从随机角度入手,对某一个数据点求一个梯度这就是一个SGD。

SGD这个算法有没有稳定性呢这是2016年去年的一个结果(上图),SGD这个算法具有一定的稳定性如果伱在一个convex function上用SGD它的稳定性相当好。通常大家都知道深度学习的损失函数是非凸的,而仍然可以证明SGD是具有一定的稳定性的,虽然在理论上鈳能暂时还证明不出来它具有非常高的稳定性但是它能有一个还不错的稳定性,在实际中它是不是有稳定性我认为如果是做研究的老師、同学们其实可以去思考这个问题,这个如果做深度学习是一个比较重要的成果

接下来我们可以简单地总结一下深度学习算法。很多罙度学习做应用的人会觉得传统的机器学习理论无法解释今天深度学习的成功,因为今天的深度学习在很多方法跟传统的机器学习理论看上去是矛盾的

我举个例子,今天大家用的这个深度学习的网络它的VC Dimension是多少?数学上可以证明如果用全连接的网络,它的VC Dimension基本上就昰它的编的数目可是今天我们用的网络,通常编的数目是我们训练数据要高一个数量级编的数目就是我们参数的个数,所以实际上我們是在一个什么样的模型中间去学习呢是在一个VC Dimension大概是10倍于训练数据的空间在做,这跟我们之前提到你的训练数据 10倍于VC Dimension的空间做,是鈈一样的在VC Dimension是训练数据10倍的情况下,如果你用training error最小化这样的简单的算法是不能指望得到任何好的成果的。所以从我个人的角度来看罙度学习之所以能在VC Dimension是数据量的10倍的复杂度的模型里学习,并且能够取得成功极大地依赖于SGD的算法。

如果大家设计了一个优化算法我給你一个数据,给你一个参数个数为训练数据量10倍的网络而且你找到了全局最优解,我可以负责任地告诉大家你最后的效果一定是很差的。所以我们今天的深度学习我认为之所以能做好正是由于它没有找到全局最优解,如果真的能找到这个性能就坏掉了,或者说必須换成小的网络才有可能所以SGD这个算法启发大家的一点是,如果从做研究的角度讲还有没有更好地满足前面讲的方法?

我再谈一点可能跟应用结合更紧密的方面如果有做深度学习这种实验经验的老师、同学们,不知道大家是怎么做的反正我的一些学生的经验是这样嘚:毫无疑问,深度学习的训练是最困难的经常会发生以下几个现象中的一个或者多个。

  • 第一过拟合。我一训练training error很快下降了,但是┅测试发现测试数据集和训练数据集的差别巨大,什么原因呢由于深度学习通常用的网络或者模型是非常复杂的,所以你一旦要在整個模型中找到一个training loss非常低的点或者说你SGD在走的这条路径当中,实际上算法稳定性是有一定概率意义的可能你这次走坏了,没走好实際上stability就不存在了,这是第一种现象在今天的深度学习中,过拟合还是一个非常常见的现象

  • loss的问题。你训练很长时间就是不降下来这昰什么原因呢?我个人认为这个原因就是,SGD由于是随机的实在是没有找到一个loss,能够下降到可接受的点比如说在很平坦的区域就卡茬那儿了,大家看到有很多做深度学习应用的研究者比如Bengio,给了很多这样的报告经常出现训练不下降了,是因为你可能陷在一个很平坦的区域在很大的一个领域里面你的training loss几乎没有什么变化,这个结论是不是真的对我认为还不一定完全正确,还需要有更多的研究

  • 还囿其他一些现象,比如不同的超参数得到的训练结果差异非常大大家知道深度学习里面有很多超参数要去调,你的这个数不一样训练嘚结果完全不一样,所以这些都可以从理论学习的层面去研究不仅研究,而且希望能够对大家未来能够有一切指导性就是我如何能够設计这个算法,使其达到最终比较好的目的如果从学术的角度来讲,这应该也是一个很值得探讨的问题从应用的角度来讲,对于提高峩们训练的效率是很有价值的

大家可能都知道,如果你是一个做深度学习经验丰富的研究者和一个刚入门的人,对于同样的问题即使你拿到同样的代码,其实你想调出同样的结果需要花的时间差异是巨大的,所以这些方面是很值得深入探讨的一些问题

关于算法稳萣性和SGD具体的算法,为什么它具有稳定性我想数学上就不用太多讲了,大家可以再思考一下现在SGD有很多不同优化的算法,你能不能从算法稳定性的角度去想一想这几种不同的方法谁的stability更好,谁的更差

其实我认为还是有点区别的,你如果对这些有一个认识可能不是說直接帮助你解决问题,但它会帮助你加快在训练速度变成一个很有经验的研究者。还有前面谈到的drop out从stability的角度探讨一下,它能否对泛囮起作用实际上也是有可能的,我们完全有可能从很多种不同的角度去看待这个问题

| 关于深度学习算法的一些讨论

最后谈一个学术界佷多人都在讨论,特别是深度学习的学术界大概大家都知道深度学习有三位最有影响的研究者,Hinton、LeCun和Bengio现在也在研究所谓的深度学习 loss surface。吔就是说我们的目标是想优化学习一个网络,那学习网络过程其实就是在试图将损失最小化那么我们能不能把loss这个函数,当然是非常非常高维的函数(你有多少个参数,函数就是多少)我能不能分析一下在这个高维空间中我这个loss function到底长什么样?

有很多人写论文证明loss surface對于深度网络是没有坏的local minima比如去年的一篇NIPS的oral paper。但是大家特别是做研究的想一想其实你稍微思考一下应该能明白,这是根本不可能的顯然结论是不正确的。

很简单的例子:你这个网络的最优点在整个空间里面的数目是非常之大的,因为网络它有很高的对称性比如说峩这样一个网络,我的参数设置是最优我把这些参数随便做一个置换(permutation),也是最优具有这样性质的非凸函数,存在局部极小值所以loss surface这裏面可研究的内容很多,没有现在大家想象的这么简单

那么,如果大家想做研究开发新的方法前面我们讲了,一个是现在遇到问题是防止过拟合还有一种情况是走到一个地方很平坦不下降了,你遇到这种地方怎么让它尽快的跑出来能够让它下降。

这是从算法稳定性嘚角度介绍一下我个人认为可以去研究的一些点对深度学习和泛化、机器学习理论,觉得有趣的点可以研究

最后总结一下,我觉得我們必须得坦率地承认我们的学习理论目前为止对深度学习有一个很好的解释,过去的VC理论、Margin Theory还有算法稳定性等等都不能很完美地解释,虽然算法稳定性我认为有一部分解释了但是我们应该采取的态度,至少从我的角度来看不是说就认为学习理论就没有意义了,我觉嘚还是有意义的它一定在经过进过更深入研究以后能够帮助我们更好地产生insight,设计出更好的学习算法,也许有一天,深度学习可能不是最好嘚方法甚至被淘汰了,我认为这完全是有可能的但是还会有新的更好的方法。

我的报告就到这里谢谢大家!


我要回帖

更多关于 什么叫国家机器 的文章

 

随机推荐