dede 网站内页标题修改,中铁十六局门户网,找外包做网站,河南郑州广城区来源#xff1a;产业智能官1909 年#xff0c;莱特兄弟通过纯粹的工程方法首次把飞机送上了天#xff0c;但彼时的他们并不了解其中的原理。如今#xff0c;经过几十年的发展#xff0c;飞机的性能较之当年已然不可同日而语。究其原因#xff0c;主要在于上世纪四五十年代… 来源产业智能官1909 年莱特兄弟通过纯粹的工程方法首次把飞机送上了天但彼时的他们并不了解其中的原理。如今经过几十年的发展飞机的性能较之当年已然不可同日而语。究其原因主要在于上世纪四五十年代人们在空气动力学方向取得了重大进展能够在理论上理解飞机飞行的原理从而更好地改进飞机设计。而机器学习理论的研究也与之类似目的都是希望能在未来设计出更好的机器学习方法使其性能更好效率更高。比之人工智能领域亦然倘若理论层面持续空白势头正劲的所谓风口行业又能走多远为了探寻当前人工智能算法存在的可解释性缺失、大数据依赖、模型场景化问题的答案寻找机器学习的更多可能“智源论坛第5期——机器学习”系列报告于 7 月 4 日如约而至。智源研究项目经理 程斌上午 9:30本次论坛在“机器学习”方向智源研究项目经理360 集团人工智能研究院技术总监程斌的主持下正式开始。北京大学信息学院智能科学系教授王立威、北京旷视科技首席科学家孙剑分别分享了其在这一领域的研究经验。1王立威从经验性的积累到理论空白的弥补国家自然科学基金优秀青年基金获得者“教育部新世纪优秀人才支持计划”获得者北京大学信息学院智能科学系的王立威针对深度学习的优化及神经网络带来了题为《Some recent advances in machine learning theory》的主题报告分享了机器学习理论方面的一些新进展。北京大学信息学院智能科学系教授 王立威事实上我们近年来讨论的机器学习乃至广义上的人工智能都多为深度学习是基于 Yoshua Bengio、Geoffrey Hinton 和 Yann LeCun 几位专家长期研究而取得的突破。然而若站在一个相对冷静客观的角度对近来的深度学习成果加以分析我们不难发现眼下我们所掌握的更多是经验性的积累而对于其理论和理解则可谓缺乏甚至是空白。深度学习的全局最优点在训练神经网络的过程中我们往往是从一个随机的初始点出发用一阶优化方法随机梯度下降即可找到一个近似全局最优的点——训练错误可以接近于零。关于这个问题最核心的一点就是过参数化下面将围绕一些有趣的过参数化理论性质展开分享。迄今为止机器学习已经发展了三四十年之前提出了很多模型比如线性模型、Boosting等但至少在图像、语音等方面神经网络更具优势。从理论层面来看神经网络可以表示丰富的函数具有很强的逼近能力。这其中包括Universal Approximation Theorem即任意给定一个符合一定条件的函数就一定可以找到一个神经网络能够非常精确地近似于这个函数。论简而言之神经网络可以表示任何函数。而早在1989年就已经有人通过对非常浅层的神经网络进行理解得到了这样一个结论。2017年我们认识到非常深的神经网络同样有这种逼近的能力。所以从表示上来看神经网络是一个具有很强大表示能力的模型。如上图所示右侧图像是我们在思考神经网络训练做类似优化问题时的自然反映。从Optimization角度来看神经网络的优化是一个高度非凸的问题图上有坑坑洼洼的结构每个坑里面都是一个局部的最优点。针对这样一个高度非凸的问题从一个随机点出发沿着梯度下降的方向很容易就走到一个局部最优点。这是过去经典的非凸优化理论所经常提及的除非问题本身具有很强的特殊性。以上是我们对该问题给出的“理所应当”的理解但实际却并非如此——在深度学习训练这个非凸优化问题里从一个随机的初始点出发用随机梯度下降经常可以找到全局最优点这不免令人困惑。回顾学者们过去曾得出的一些结论其中就包括对于线性神经网络的研究。众所周知神经网络具有逐层结构而且每层有一个非线性变换例如最早用 Sigmoid再到现在的 Relu但是如果把非线性变换去掉简化成一个线性网络即每层不存在非线性本质上就等价于一个单层网络。在这种情况下可以证明所有局部最优点即为全局最优点。但这样的结论与真实的神经网络差距很大不过也算是一个启发提示我们可以考虑神经网络的一些特殊性思考对于真正的非线性神经网络而言其局部最优点和全局最优点之间是否也存在某种等价关系。除此之外我们还可以通过某些特殊的假设比如只考虑单层网络同样也可以证明即使单层网络存在非线性也仍然可以用梯度下降法找到全局最优点。但此处指的是只有一层的网络而我们今天面对的是动辄几十、几百层的网络。简而言之对于一个很正常的非线性深度神经网络而言只要满足如下两个条件再利用一阶优化方法如梯度下降、随机梯度下降就一定能以极快的速度找到全局最优点。此处的收敛速度是所谓的线性收敛速度只消对数步的迭代就能找到全局最优点① 网络足够宽即每一层 Neural 的个数足够大详见下图公式② 网络权重的初始化是通过今天非常常用的高斯随机初始化Gaussian Random Initialization。总而言之一是网络足够宽二是用高斯随机初始化在这两个假设条件下只要从随机初始化点出发用一阶梯度下降的方法就可以在非常快的迭代步数之内找到全局最优点。这个结论能够使我们理解实验中观测到的很多现象其中我们关注的核心就是为什么能找到全局最优点——深度神经网络充分宽以后就相当于一个非常特殊的过参数化Over-Parameterization模型利用到了神经网络的一些特殊性质和过去的模型有很大差异。以上结论研究的是所谓的全连接网络若是研究如今更常用的 ResNet对于假设的限制就会弱一些例如网络不需要那么宽而网络的收敛速度也会更快。简言之理论上 ResNet 是一个更好的结构。值得一提的是几乎在同一时间包括微软研究院朱泽园与 CMU 李远志的合作团队以及 UCLA 的顾全全教授团队在内的另外几个机器学习研究组也得到了与王立威团队非常近似的结论。如今这一方向的研究工作在除却理论的整个机器学习界都得到了比较广泛的关注——希望通过比较宽的网络来探讨神经网络的部分性质。二阶优化方法——GGN随着理论研究的推进我们也迎来了新问题——这些研究可以为机器学习、深度学习的算法提供什么帮助又能否帮助我们设计出更好的算法着眼理论分析的细节我们会惊讶地发现网络从 input 到 output 是一个函数当网络充分宽时网络的输出其实还依赖于该网络的参数那么网络的输出对于网络的参数而言其在局部是近似线性的这一点与过去的认知有很大差异——过去认为网络的输出对于参数一定是高度非线性、高度非凸的。但此前的理论证明网络充分宽后网络的输出对于网络的参数在局部内是高度线性的且这个局部不仅包含了高斯随机初始的点还包含全局最优点。正是因为这样的性质用一阶优化方法可以在很短时间内找到全局最优的点从而利用这个观察设计新的算法。今天大家常用的算法是Stochastic Gradient DescentSGD其已然是今天深度学习的标准算法。我们用任何一个今天开源的代码或者从库里调用配备的都会是一阶优化方法。但根据上面的结论我们不难发现更好的方法是二阶优化方法。一阶优化方法只利用了函数的一阶导数信息而二阶优化方法则在一阶导数外还用到了一些二阶导数信息。以高斯牛顿法这一二阶方法为例其特点在于特别适用于函数特别接近于线性的情况这种情况下它的收敛速度也就是迭代的轮数会非常少。如前所述当深度神经网络充分宽时输出对参数是非常接近线性的这与高斯牛顿法非常吻合。而既然如此包括高斯牛顿法在内的所有二阶优化方法在今天的深度学习中为什么又无人选用究其原因在于实际应用中存在的困难——虽然其迭代数很少但每一步迭代时二阶方法所需的计算量却又远远大于一阶方法这也是该问题的核心原因。除此之外类似在过参数化时二阶信息矩阵不可逆等问题也不容忽视。因此我们在过去综合种种因素惯于将二阶优化方法排除至选项之外。在这样的背景下王立威及其团队对此展开研究在已知二阶方法迭代轮数优势的情况下特别在深度神经网络较宽时高斯牛顿法的迭代轮数较之一阶方法优势更甚面对上文提到的诸多问题证明存在一个定理。据该定理所述在矩阵不可逆时可以找到一个伪逆并且该伪逆可以通过极小的计算代价实现。从理论上可以证明其所提出的 Gram 高斯牛顿方法Gram-Gauss-Newton GGN)具有非常好的性质其一是该方法的二次收敛速度极快为双对数迭代轮数非常少其二是可以用求伪逆的办法证明每一步的迭代计算量相比于 SGD 只有非常小的 overlap。故而从理论上看用 GGN 比 SGD 明显具有更大优势。下图所呈现的为部分实验效果图中红线是新方法的收敛速度左图横轴代表时间右图横轴是 Epoch另外两条线都是 SGD 加相应的一些其他技术所以可以看到该方法在收敛速度方面占据了很大的优势。总结我们先是通过一个纯粹的理论分析证明了当网络充分宽的时候如果用现在的高斯初始化整个优化展现出一个和我们的过去所认知极为不同的场景——在局部近似线性且可以在局部找到一个全局最优点。从这一理论结果出发王立威及其团队设计了一个二阶优化方法——GGN。也许有一天大家再用深度学习去训练深度神经网络时SGD 将不再是一个标配的优化方法GGN 这样的二阶优化方法可能有机会取而代之。Transformer 结构在深度学习和机器学习中Transformer 结构可谓是又一个热门话题。Attention Transformer 这类结构在很多问题特别是机器翻译上取得了非常好的效果。事实上过去大家用的可能都是 LSTM 这样的一些结构但随着 Transformer 的出现也都逐渐成为历史了。研究 Transformer本质上还要理解深度神经网络深度神经网络为什么是一个好的结构从数学层面来看深度神经网络从某种程度上可以看作在解常微分方程其为常微分方程数值解的一个 solver。近一两年来这一观点已经成为机器学习理论里大家非常看重的一个方法。NIPS 2018 的 Best Paper 就花落这样一篇论文——从解常微分方程的角度去看深度神经网络。谈及常微分方程自然会想到 ResNet它是一个非常典型的常微分方程数值解的方法。换言之ResNet 和解常微分方程数值解法存在一个非常明确的对应关系。ResNet 比较简单但是 Transformer 却是一个较为复杂的网络结构其主要包含两个部分分别是 Multi-Head Self Attention 结构和 FFN 结构这两部分组成一个 block而这个 block 就是这种迭代衔接下去。所以我们要从解常微分方程数值解的角度去理解这样一种很复杂的网络结构从而帮助我们设计出更好的网络结构。Multi-Head Self Attention 实际上是一种不同 Neural 之间有互相连接、互相作用的结构而 FFN 这部分则是每一个 Neural 自己作用互相之间没有作用。既然要从解常微分方程的角度来看 Transformer首先要考虑多粒子的动态系统Multi-particle Dynamic System这是在物理中非常常见的一种动态系统。这种动态系统的常微分方程叫做对流扩散方程Convection-diffusion Equation对流扩散方程是微分方程中最最常见的一类方程。多粒子动态系统中的对流方程如图所示比如粒子的位置对时间的导数是两个函数的和第一个函数是 F第二个函数是 G F 函数是 N 个粒子共同作用的一个函数是 N 元函数而后面的 G 是对每个粒子的单独作用。这与 Transformer 结构中的 Multi-Head Self Attention 与 FFN 形成了一种很自然的契合因此我们可以用这种多粒子的对流扩散方程来解释 Transformer结构的含义。当然仅仅从这个角度去理解 Transformer 的含义并非我们的最终目的我们想要的是从这个理解角度出发探索设计出更好的网络结构。Transformer 的结构实际上对应着对流扩散方程的某一种数值解法——Lie-Trotter splitting scheme这是一种很常见的常微分方程数值解。众所周知微分方程要数值解就要将其离散化这就是一种离散化的方法。如果把 Lie-Trotter splitting scheme 对应到现在的 Transformer 结构上也会是一个很自然的对应。但在常微分方程数值解领域里对此早已有非常深入的研究且相关研究早已有上百年的历史而 Lie-Trotter splitting scheme 事实上是一种早已被淘汰掉的数值解法。相较而言Strang splitting 是一种比较好的数值解。Lie splitting 是一阶的近似方法而 Strang splitting 是一种二阶的近似方法。在实际中去解常微分方程的时候 比起无人问津的 Lie splitting用到的都是 Strang splitting。这些理论分析的意义就在于如果把 Strang splitting 这种常微分方程的数值解法对应回某一种神经网络的话这个网络应该如下图所示如前所述传统网络由两部分组成第一部分是 Multi-Head Self Attention第二部分是 FFN。但若用新的数值解则如右侧所示表示原本 FFN 的部分首先应该在最底层做半步半部接下来再放 Multi-Head Self Attention 模块而后再放半步 FFN 模块——一种三明治结构这样对应的是 Strang splitting 数值解的方程。这相当于从理论上启发我们设计新的结构而这种新的 Transformer 结构叫马卡龙它的效果比过去传统的两层 Transformer 能提高约 1 个百分点。而 Google 最近提出的新结构 BERT 则消耗了海量的数据、非常多的 GPU 以及训练时间才使原本的 Transformer 性能有所提高。如果在训练数据相同的情况下二者的性能更是基本相同但是 Google 的工作训练实验一次需要花费电费 25 万美元。而马卡龙则在“人力”思考的基础上用数学的方法设计出了一个更好的网络。总结上述工作也属于一种理论上的方法从纯粹的数学角度出发将 Deep Neural Networks 看作一种 Ordinary Differential Equation 的 Numerical solver。我们通过找常微分方程更好的数值解的方法将其对应回一种更好的网络结构。这种新的 Transformer 结构的性能较之传统有了显著提升。近一两年来特别是以谷歌为代表的一些企业在大力推动所谓的 AutoML倡导不再去设计网络即减少人在设计网络这个环节里面的比重希望用纯 Learning 的方法来找出一些网络的结构。但是我们在这里面给大家提供了一个新的途径——仍然是人设计的方法但不是纯粹凭经验设计而是将网络结构和一些数学问题等同起来例如此前谈到的把网络结构和微分方程数值解等同起来——我们通过利用过去几百年来积累的强大的数学工具去设计这种更好的网络。这也是一个我们很有必要去探讨的途径。PGD-based Adversarial training算法关于神经网络有一张我们常见的图左边猪的图像加一点非常小的noise noisy image,但将此处的noise乘以0.005后再进行叠加从而得到右图人眼无法判断出左右两张图的区别但是Neural network可以识别出左图为“猪”同时却又得出右图跟“猪”毫无关联的结论这是眼下深度学习遇到的一个很大的困难。对于这个问题今天大量的研究都是所谓的 attack 和 defense用到了诸如 Algorithm training 等各种方法试图增强深度学习网路的鲁棒性但是效果比较差。更有甚者虽然在这个方向已经有很多机器学习工作者开始展开理论研究但不幸的是直到今天大量的理论研究给出的都是负面的结果例如《Adversarially Robust Generalization Requires More Data》这是去年NIPS上发表的一篇很有代表性的论文它证明了如果想要使神经网络对于对抗样本是 robust那么必须要有非常多的 training data即如果想要达到正常的 accuracy所需要的训练数据量可能要有一个指数的增长。我们首先要从理论上分析诚如研究结论所示要想得到一个对对抗样本 robust 的 Classifier确实需要更多的 data但是我们证明了只需要更多的 unlabeled data不需要更多的 labled data。事实上今天数据之所以不容易获取主要是因为对数据做标注的代价很高。如果是不需要标注的数据那资源可谓极其丰富。所以如果能用少量的标注数据加上大量的无标注数据就可以做到对于对抗样本是 robust这项工作就是极具吸引力的。而所谓“对对抗样本 robust”指的是对于一张正常图片原始图片如果在其周围邻域里任意找一张图片的话这两张图片的 label 应该是相同的。关于这一点我们其实根本不需要知道此处的 label 是什么这就是我们核心的想法。基于这一想法我们可以建立一套完整的理论当目标是让 robust accuracy 达到最高就可以通过数学定义去定义 robust accuracy。同时还可以从理论上证明 test data 上的 robust accuracy 可以完全学习里面一些理论的分析。Robust error 可以分成两项一项和我们传统的正常 learning error 完全相同另一项是前面的第一项可视作一种 consistence即一张原始图片与其邻域内看起来非常像的图片它们的 label 应是相同的可以用大量的 unlabled data 来进行训练。基于上面的分析可以设计一个新的算法叫做 PGD-based Adversarial training。这个算法在正常的 training 基础上增加一些 unlabeled data而后在优化的时候不仅计算正常的分类 error还把 unlabeled data 周边邻域里的图像标签是否一致也记作另一组 error连同此前的 consistence error一起去做 training。总结如果想得到一个对对抗样本 robust 的分类器Classifier并不像很多之前的工作一样必须要很多 labeled data实际上我们可以凭借少量 labeled data再加上足够多的 unlabeled data 来解决——unlabel data 的获取当然要比 labeled data 容易很多。2孙剑几乎与人工智能相伴而生计算机视觉的应用场景广度不容小觑北京旷视科技首席科学家西安交通大学人工智能学院院长孙剑围绕《云、端、芯上的视觉计算》这一主题展开了分享在介绍其团队在该领域所做的工作之外还站在应用层面进行了简单的分析。北京旷视科技首席科学家 孙剑长期以来计算机视觉当属 AI 领域的一大支柱与之并立的还有 Speech 和 NLP,以及一些通用的人工智能研究。所谓计算机视觉其核心就是在回答一个问题——机器如何才能读懂照片或视频与此同时我们还一直在思考的是作为一个初创公司或企业基于当前的现状又能做些什么事实上人们对于计算机视觉的研究早在人工智能萌芽的约 5 至 8 年后遍开始了。其中的代表人物就包括人工智能的奠基者之一——Marvin Minsky。面对复杂的人工智能研究他在某个夏天决定先找一些简单的问题来着手切入于是便带上几个新招的暑期实习生开始动手了。他计划在一个机械臂上装入摄像头同时在另一边摆上几个积木任务是让机械臂将积木摆成其“看”到的人摆出样子。这项看似简单的研究在实操过程中却困难重重面对超出想象的难度等级Minsky 也在几年后放弃了这个方向。但作为几乎与人工智能相伴而生的研究课题计算机视觉于智能领域的意义自然非凡倘若再扩展到应用层面来看其用途更是不容小觑。现如今我们周边环绕着大量各种各样的 camera因此于计算机视觉的应用而言如何才能读懂所有摄像头的 input这些摄像头就相当于我们的眼睛而计算机视觉就是需要读懂这些眼睛的大脑。除此之外我们要求的输出内容不仅是简单的意思翻译可能还需要了解图像、文字等更多信息例如某样东西在哪里是什么样的场景场景里都有谁他们的动作又是什么……因此不光输入的场景多种多样对输出的信息也有诸多要求。如此一来需要应用到计算机视觉的场景也会很多这也就解释了今天国内外计算机视觉相关的公司不仅数量大而且体量还不小的原因。计算机视觉包含较多应用在研究方面一般会归结成几个核心的问题包括分类、检测、分割分别是对一张图的整体、一张图的不同区域和一张图的每个像素做语义识别。另外如果输入的是视频我们还需要利用时间顺序及密度等因素做出更高效的识别。其中最核心的是分类问题因为它是后面三个任务的核心和基础。而这些问题的最大难度就在于如何研究表示照片在图像中的存储形式以及存储之后又该如何操作这个图像的表示。David Marr 便是其间的研究代表人物之一。David Marr 在其 80 年代的著作《视觉》一书中提出了计算机视觉的几层构架描述了视觉的抽象过程提出对于输入图应该先检测边缘形成 2.5 D sketch然后再恢复 3D。但 MIT 教授 Marvin Minsky 在谈及他的这一构想时表示这个理论很好但是忽略了核心问题的研究——如何表述一张图像。计算机视觉的早期图像表示模型是 Part-based比如人体可以分解成头、胳膊、腿人脸可以分解成眉毛、眼睛、鼻子这样就可以通过 Part 这种组合式的方法表示物体。如果一个物体有结构这种组合式方法很合适但很多自然场景的物体没有这么强的结构就不合适了。此后流行的方法是 Feature-Based 方式这类表示的方法可能抽出几百上千的 Feature最后变成非常高的向量这个向量最后寻找其特征的表示。此方法是在深度学习之前统治图象识别领域的方法其不但可以用作图象对特殊的物体及人脸识别也较为有效。它最早用在 Surface 人脸的功能上其特性是可以对图象做一些不同的变化但是同时也有两大缺点第一这个方法整体上是从输入向量到另外高维向量的非线性变换这个向量的变换次数是有限的如果真正算它的非线性变换至多有三、四次性能不会提高第二其中大多数参数是人工设计的包括 Feature但人设计复杂系统的能力是有限的。今天的主流方法是深度神经网络这两个特性就被改变了整个非线性变换非常长可以做非常多次所以系统的表示能力非常强第二是所有的参数联合训练。这两点让深度神经网络真正能够取得非常好的效果也包括当时我们在微软提出的 152 层的残差网络 ResNet第一次在 ImageNet 上超过了人的性能。至于 ResNet 为什么能够工作的问题至今也没有一个明确答案这个过程中当然有过很多解释。其中最直观的解释是说当你的非线性变换层数非常多相邻两层变换的差别就非常小与其直接学习这个映射不如学习映射的变化这样的方式就让整个学习过程特别是训练优化过程变得更容易。除此之外还有一个解释来自《Deep Residual Learning For Image Recognition》这篇论文Kaiming HeXiangyu ZhangShaoqing RenJian Sun. Deep Residual Learning For Image Recognition. CVPR 2016.的第二作者张祥雨他认为 ResNet 的整个学习过程是一个由浅到深的动态过程在训练初期等效训练一个浅层网络在训练后期等效训练一个深层网络。论文第一作者何恺明有另外一个更“科学”的解释他认为整个训练过程相当于深度学习的梯度下降过程中最为困难的梯度消失问题被 ResNet 解决了该解释也发表在 ECCV 2016 的一篇论文Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Identity Mapping in Deep Residual Networks. ECCV 2016.中并在该论文中第一次训练了一个 1001 层的神经网络。还有一些同行提出的解释。一种是把 ResNet 和 RNN 关联起来认为如果有 Weight Share ResNet 可以看作是一种 RNN。还有一种解释把 ResNet 看成是指数多个不同深度网络的集成。用“集成”这个词其实有些问题因为一般我们做集成算法不联合训练但这里面整个 ResNet 里指数多个网络是联合训练的所以很难定义它是不是集成。孙剑博士在分享过程中还特别提到了其个人比较认同的一种解释——Iterative Refinement认为网络初期的层学习表示后期很多层不断迭代和 Refine 这个表示。这跟人理解看图识字很相似一个不容易理解的东西你要看一会基于当前一些已看内容的理解反复看才能看懂。还有从优化观点的解释如果不用 ResNet 这种构造系统的损失函数会非常坑坑洼洼和高低不平所以很难优化。我们知道整个网络训练是非凸的优化问题如果是这种不光滑的损失函数训练很难跳出局部极小如果使用 ResNet就可以比较容易抵达一个很好的局部极小。最近研究表明局部极小区域的面积和平坦性和一个方法的推广能力非常强相关。由是观之深度学习从完全不 work 或是不能呈现发展到今天所有人都可以非常高效、精确地呈现结果实际上经历了很多这样的过程。其间当然还涉及诸多计算、数据以及一些细节上的问题像是初始化方法的使用也不容忽视。因为对于一个非常复杂的边缘系统而言一个有效的初始化可谓不可或缺。此外还有非线性单元的问题我们之前惯用Sigmoid非线性单元但这个单元对收敛性是有障碍的因此在实际中常用的都是一种叫做分段线性的非线性化单元这种方式可以让整个收敛非常流畅——这些都是“细节”。我们都说网络结构让ResNet对优化更友好但它并没有解决一个真正的深度学习系统可能会撞上的其他问题例如网络的表示能力问题、推广能力问题等。因此正是因为有这些前人做了各种各样大大小小的详细改进才使得我们今天的深度学习一步步成长为一个相当强大的有监督的学习工具。多层 ResNet 学习高度非线性映射的能力非常强。2017年年底ResNet 成功应用于 DeepMind 的 AlphaGo Zero 系统中从而使整个系统得到了简化用一个40 或 80 层的网络就可以学到从棋盘图像到落子位置这样一个高度复杂的映射。在实际应用中随着网络与数据越来越大会逐渐呈现出这样一种特性在一定问题上以及特定领域中深度学习在很多场景下超过了人的能力例如一些图像识别、人脸识别任务。从学术上来说这也让研究员的工作实现了转变他们越来越多地从以前设计 Feature 直接转变到了设计网络的结构。2012 年开始有各种各样的神经网络结构出现。如果从计算平台的角度看这些工作大概可以分成三类第一类是在“云”上像 GoogleNet、ResNet其目标是向着最高精度方向走有 GPU、TPU 可以训练非常大的模型来探知我们的认知边界第二类平台是在“端”上特别是一些嵌入式设备这些设备上的计算能力内存访问都有限制但很多真实的场景就是如此那你怎么去做这上面的研究工作呢谷歌在去年提出 MobileNet 运行在移动端设备上旷视科技提出了 ShuffleNet其目标是在一个给定计算量的设备上得到最好的效果。一个网络的最基本结构是多个 3×3 的卷积ResNet 加了一个跳转连接我们在 ResNet 中还引入一个 Bottleneck 结构先做 1×1再做 3×3再回到 1×1这样可以提高卷积的效率。2017 年有一项工作叫 ResNeXt它在 3x3 的基础上引入分组卷积的方法可以很好地提高卷积的有效性谷歌的 MobileNet 是一个 3x3 分层卷积的方式每个层各卷各的这种方式非常有效特别是在低端设备上。ShuffleNet 结合分组卷积和分层卷积的思想对 1×1 Conv 分组但是如果只分组的话组间的信息不会交换这样会影响特征学习因此我们通过引入 Shuffle 操作让不同分组的信息更好地交换然后做 3×3 的分层卷积再回到 1×1 分组卷积这就是 ShuffleNet 的核心思想。和其它方法相比在相同的精度下ShuffleNet 在真实设备上的速度要比 AlexNet 快 20 倍左右。我们还需要将神经网络运行在芯片上这不光对网络结构设计有要求还要对网络内部精度的表示做限制现在最流行的方法是做低精度化比如 BNN 和 XNOR Net还有旷视科技提出的 DorefaNet。低精度方法是指神经网络的权重或激活值用低精度表示比如 1 位2 位4 位。如果可以用低精度表示两个向量那么卷积计算就可以通过芯片上非常简单的位运算完成计算。上述分类问题网络设计需要考虑不同的平台其它问题多是以分类为基础比如检测上图是检测最近几年的发展路程它们都是先应用基础分类网络然后构建不同的物体检测框架。今年旷视科技与北京智源研究院联合推出了 Objects365该数据集包含 365 类远超 COCO 的 80 多类并包含 60 余万张照片以及超 1000 万个物体框是目前最大的物体检测数据集。最后除了算法的演进也要关注如何利用今天快速增长的计算能力。眼下我们的计算力增速已远超波尔定律而计算能力快速增长的原因则在于计算结构的转变即可以将所有计算都换成神经网络向量和矩阵的计算这些计算最大的好处是能够突破带宽瓶颈把所有数据同时拉进来进行计算后再传回去远超现在的传统 CPU 体系结构构架所以增长非常快这也将会是一个快速发展的趋势。部分图片和内容来源于网络延展阅读基于小样本学习的计算机视觉应用BAAI 北京智源人工智能研究院众所周知深度学习离不开样本。如果要用深度学习去学习一个目标分类器就需要特别多的样本。以识别清华的“清”为例常规操作是要收集关于“清”这个字的不同字体、倾斜和旋转情况以及不同的噪声、背景、阴影——各种各样的字都要去学习才能得到很好的分类器。而样本多了问题也就简单了。我们早在 2013 年便做过类似的工作彼时深度学习刚在视觉研究领域得到认可不久又恰逢团队于 2012 年接到了国家自然科学基金委员会一个关于交通标识识别的项目其初衷是想支持一些团队的无人车研究工作。虽然车在机械层面的自动控制等问题的研究从 2008 年起的两三年内就陆续有了成果但基金委方面认为还需要打造一个交通标识识别系统让车辆在行进过程中“知道”道路前方有什么样的标识。当时用深度学习方法去研发交通标识识别系统的效果不错单张图像识别率约为 99.5%。如下图右侧所示我们在汽车的挡风玻璃上安装了摄像头类似于现在的行车记录仪。但从车的角度来说却完全不能满足要求因为这意味着一千张图像里就会有四五张分错。在一秒钟 24 张图像一小时 3600 秒的实际情况面前这样的误差显然不容忽视。前面说的是“单张图片”的情况但若是在视频流过来之时远处的标识就会随着走近逐渐变得很大很清晰所以连续的一张一个交通标识会在视频里出现很多次信息关联后错误率也不会太大所以在参与“智能车未来挑战赛”时候的效果就非常好。然而由于这部分工作实际上和一些地图应用的功能重合了所以基金委真正需要的是地图导航应用不能告诉我们的信息特别是红绿灯。因此我们改道研究针对路上标识的识别达到了 99.49% 的识别率。到这一步问题似乎已经解决了然事实并非如此——标注数据依旧是负担大压力重彼时没有公司支持的我们只能在基金委的资金支持下自己想办法获取数据并标注为此耗费了很长一段时间。近年来机器学习领域一直不乏数据标注方面的研究下图是在 12306 网站购买火车票的体验其进入页面后用户验证的过程就是在做图像标注这个方法叫 Crowdsourcing众包。而机器学习领域大约在九、十年就有类似的研究即在众包的形式下如何做机器学习。这也是一个大家长期以来持续关注的难题一方面是因为这个过程可能会有噪声另一方面是获取数据本身就很难。以交通标识的识别为例需要对每一张交通标识的各种表现进行收集但像是“连续急转弯标识”这样的图像在数据里出现的次数特别少数据获取也就相对比较困难——现实确乎给当前的我们提出了诸多难题。为了应对这些问题在机器学习方面还有一项较早的研究工作——半监督学习其大约在 1998 年走入研究人员的视野关注度也自此不断上涨并一直持续到 2010 年前后其间各种各样的半监督学习类工作迭出。何为半监督学习做机器学习时如果有大量监督样本无疑能学得很好但数据标注又很困难非监督学习用到了很多未标注数据我们学到的又不一定正确。而所谓半监督学习就是采此二者之长运用一部分标注好的样本和大量没有标注的样本一部分有监督一部无监督。如下所示左上角的图是由各个样本点构成的而该图即是他们之间的关系所有黑色的点之间是没有标注的。当给定一个蓝色样本和红色样本时凭借其标签沿着该图进行传播最后到右下角就可以给定所有样本标签这就是半监督学习的一个例子。运用这个方法时会有这样的情况构造一个目标函数并通过不断迭代的方法给出一个解最后这个解会收敛收敛结果是上图中的最底下一行。这是我们团队早期在 2009 年左右的一项工作借此我们了解到半监督学习一定会收敛同时还分析了它和已有的流形学习之间存在的关系。半监督学习方法可以用于任何地方与应用无关但在视觉领域里半监督学习有一个特别好的应用即交互式的图像分割。而图像分割工作又实属相当困难在计算机视觉领域历经 40 余载研究但仍突破不大。分割之难在于对同一个图像而言人与人之间的需求不尽相同根本不可能给出一个满足所有人要求的统一算法。当然从机器学习的角度来看这就是聚类问题但非监督学习永远无法保证其正确性所以用上监督学习就能做得非常完美。图像分割的工作可以用下图来进行说明假设需要将图中雕塑从图像分形里抠出来看似比较困难但在半监督情况下可以实现——在中间一排用鼠标左键划线告诉计算机这是想要的地方用右键划蓝线告诉计算机这是不想要的地方然后进行分割。从机器学习的角度看这属于半监督学习从视觉的角度看这是交互交互是图像分割。再如右图所示如果只需要保留前面的南瓜而不要背景的南瓜非监督学习就可以把这项工作做得非常完美。同理非监督学习进行图像分割也适用于困难颇多的医学图像领域。在此基础上图像分割在视觉领域中还有很多有趣的应用例如要把两朵玫瑰进行分割并且改变其中一朵玫瑰的颜色或是把草地上的动物抹掉进行背景填充这都属于半监督学习的范畴。下面一个问题是多示例学习其研究的问题如下图所示假如要进行人脸检测已知左边图像上有人脸右边那张图像没有人脸在这种情况下能否做好人脸检测呢我们通常的做法是画出人脸的框架并抠出来进行训练。但是这样做存在一定的难度因为至少不同人脸框架的大小位置是不一样的“人脸”本身就没有一个明确和清晰的唯一定义。对此我们有一个思路就是给机器一个很弱的标签即整张图像有人脸但不告知具体位置同时告知右边图像没有人脸。在这种情况下能不能做机器学习这是我们关心的问题。人们称之为“多示例学习”其含义是其中有很多例子已知有的是人脸有的不是同时还有很多图像中一个人脸都没有能否在这样的条件下做学习类似的假设我们有几个包每个包里面有一个样本现已知这里面每一个都含有我们要的样本但下面还有一个包不是我要的样本能不能根据已有信息把我要的样本找出来这有点像做游戏这样的问题有一个经典解法即默认当我们把所有样本收集起来时其在特征空间里会聚集在某些地方密度最高的那些区域通常是我们要学的概念在这个假设基础上就可以做学习。这个例子的本质是先建立一个目标函数然后再对它进行求解。我们也做过一些多事例学习的工作但现在很多人谈及深度学习就认为一定要把样本十分精准地标出来其实不必如此。我们前三年还有一项工作工作是对叶片上的病虫害进行监测只要一批数据有病虫害另一批没有病虫害就可以据此找到病虫害区域这就是用好多示例学习思想的一个实际案例而且有趣的是这一方法相当于成功跳过了最困难的数据标注环节。另一个与数据标注有关的问题叫 Active learning其思路类似于给学生上课时不要按部就班地从头至尾一点点讲解最好是先讲一个大概然后询问学生没有听懂的地方再就没听懂的地方细说。对应到 Active learning 中来看就是当我们只有少量样本的时候可以训练一个分类器那么为了得到更多的标注样本从而使得这个分类器性能更好我们应该标注哪些样本如上图所示毫无疑问在整个图像中再给更多左下角和右上角的样本其实意义不大都能猜到那个地方不是×就是⚪而且信息很充足。其实最容易出错的地方是在分界线附近这个方法告诉我们如果要标样本在分界线附近的那些地方是最有价值的只消标少量样本就可以达到很高的学习准确率。该办法经证明可以迅速缩小解空间继而很快集中到所要的那个解且在解空间上每标一个样本就相当于对整个解空间做划分。Active learning 实际上与学习范式有关其与学习模型和学习方法相结合是减少标注样本的一个高效方法。除此之外还有 Multi-Label Learning。以下图为例对于其中这张图像我们会有一个标注这张标注可能是关于城市的可能是汽车、楼房也可能是道路、人、树。这些标签之间彼此关联如下图右侧关系树所示一张图像会用不同的标签而我们则应充分利用这些标签之间的关系从而使我们的预测结果更为准确——这就是“多标签学习”。另一项值得一提的工作叫 Co-Training也颇有意义其来源于 1998 年发布的一篇论文。彼时一位 CMU 的老师发表提出要将教师网页和学生网页进行分类这确乎可行毕竟前者关心的是科研、经费、学生培养、上课等而后者关心的则是课题、选课游戏、电影等——二者的关注点不同。既然任务可行我们又该如何处理首先我们可以考虑设计一个分类器这个分类器仅根据内容进行分类例如课程介绍、基金申请介绍、项目介绍从中找出关键词做分类以内容为重另一个重要的分类指标是 link即老师和学生关心的网页不同——学生可能会指向一些游戏老师则可能会指向一些像是基金委、科技部这类的网站所以也可以根据 link 来分类。但是 link 和内容之间孰重孰轻也不易权衡因此很难放在一个空间里设计分类器。因此就需将其分为两部分先用内容设计一个分类器 C1再用 link 设计一个分类器 C2。设计好后标一些样本并用这些样本来训练第一个分类器得到结果后用同样的样本去训练第二个分类器就得到了两个分类器。此时还有很多没有标注的数据用第一个分类器试一下这些没有标的网页明确是“学生”还是“老师”再转而用这些确认的数据训练 C2。同样也可以交换次序先由 C2 确认然后再训练 C1——如此轮换操作得以提升整个分类器 C1 和 C2 的性能。这项工作获得了 ICML 2008 的十年最佳论文奖影响力不容小觑也因其思路简单颇受人们喜欢。此外机器学习里还有一些其他的方法和工作涉及到如何在有限样本的情况下提升学习的准确性例如稀疏学习Sparse Learning、Low Rank 以及 Transfer Learning。其中稀疏学习的思路是考虑到一些稀疏的特性把一些稀疏优化的技术用到学习里稀疏学习其实不只是用在机器学习里去减少标注量、提高准确率还可以用在别的地方。2010 年前后我们做了一项名为“图像分离”的工作即“混叠图像分离”。如下所示左边一列有三张图像现将这几张图像混叠成中间第二列的三张图像混叠的意思就是指两个图像的纯粹相加。当然混叠时这几张图像之间会有位置上的差异或者说混叠的系数不一样也可能会有位置的不同以及一些平移等变化。当初我们的设想是希望在只有中间这一列图像的情况下能够得到左边这一列图像。这个问题在图像里难度非常高人类能隐隐约约能感觉到一点不同图像的信息却解决不了分离任务于是我们就用到了稀疏性——考虑一个物体虽然在整个图像上到处都是但是其边缘是很稀疏的这是非常重要的信息我们通过边缘的稀疏性去计算物体之间的关系最后右边一列是我们反解出来的图像和左边一列达成了非常好的对应。当然混叠图像分离通常无法保证图像质量但正确分离后能看出图像的大概即可。这个问题还不止于此原则上一张图像混叠的图像要多否则可提供信息很少。换言之可以混叠四五张图像一般混叠图像越多恢复出来的可能性越大。除此之外我们还可以通过这个方法来做欠定即用四张图像混叠成两张图像只有中间两张图像就可以把这四张图像也恢复出来。当然中间图像越少恢复出来的质量就会越没那么好如下所示底层图像的质量和最上排仍存在一定差距。在利用了稀疏特性后会发现如果有类似下图树木花草这样的纹理图像很难看到如汽车、飞机等物体图像那样的清晰边缘还能否进行分离答案是肯定的——我们对稀疏性要求没有那么高如第一行两张图像混叠成第二行最后我们把它分离成底部一行仍然可以分离得很好。早前所有人做这个工作都是在合成问题上展开也就是指给定上面两张清晰的图像进行人为的混合混合以后再把它分离出来。其原因有二一是我们知道标准答案清楚两张原始图像是什么样的二是我们在混合时严格按照模型操作比如线性叠加而且难度已经足够了所以没有人做真实图像测试。那么真实图像的操作又当如何于是我们创造了这样的数据假设我们面对一面玻璃玻璃另一边有一个张贴画我们在这里拍那个张贴画所以拍的时候如上左图我们既可以看到张贴画的图案同时也可以看到拍摄人自己的反光所以这是一个很真实的图像我们得到两张图像之后可以做分离。中间那一列用经典的方法做就完全做不到用我们的方法就可以把这两张图像分离开这是我们第一次在真实图像上尝试。这个现象其实在另外一个情况下也有可能出现就是在电影电视中一个镜头的淡出另外一个镜头的淡入此二者也会混叠这样的一些图像也可以用稀疏的方式进行分离但这里并不是为了提高我们分类的准确性。以上就是在深度学习之前机器学习对小样本问题做的事。进入深入学习以后又出现了一些新办法。起初在 2013-2015 那几年大家都热血沸腾地去办数据标注公司结果发现难度很大因此该领域近年来以另外一种形式出现——叫做 Few-shot Learning。它提出了一个比较有意思的范式该范式告诉我们以下图为例前三行可以收集到大量的类别比如对各种各样的树木、植物进行分类但有时我们发现在某些类别我们只能得到有限的三五张图像比如左下角这三类。而一个非常实际的问题在于以后见到这三五类图像的时候我们能否识别好。针对这一问题近几年有一些典型的工作第一类是通过样本的生成完成工作其做法是一些图像经过卷积神经网络后到了特征空间同时在特征空间做一些扰动加一些噪声生成各种各样的图像使它的泛化性能更好另外一类工作是当只有左下角那几张图像时给每一张图像算一个圆心即做一个平均算完圆心以后如果新来一个样本 X可以计算 X 领域内这三个圆形样本之间的距离它与谁的距离近就分成哪一类通过求解对新的 query 进行分类。该方法的好处在于适用于只有一个样本的场景即所谓的 One-shot Learning。但是其效果也比较受限因为它利用的信息太少所以效果没那么好还有一类方法叫“元学习”其思路是将每一个分类项目当成不同的任务同时研究这些分类任务之间的共同点并希望通过这些学到的共同点在以后遇见新问题时能够根据少量的样本做调整从而实现对新的类别进行分类的目的——这便是眼下主流的三类思路以下为详解DualTriNet 实际上是对数据很少的类别做 feature-levelaugmentation它由 EncoderTriNet 和 DecoderTriNet 组成如上图所示。Encoder 的输入为 ResNet 关于一张输入图像的各层特征图输出为该图像对应的语义向量通过对该语义向量进行增广之后增广的手段包括对语义向量加随机高斯噪声等便形成了新的语义向量该语义向量被认为是属于同类的其他图像的语义向量。通过 Decoder 网络对增广的语义向量进行反解码形成各层的特征图最后用原特征图和增广得到的特征图对 ResNet 进行充分训练。由于可以无限增广所以可以达到增加训练数据量的效果。但是在语义空间的构造过程中这个算法需要用到额外的媒介信息比如类别层面的 word2vec 或 attributevector 信息以此来构建任务类别包括训练类和测试类之间新的语义关系从而来指导语义向量的解码过程。本质上来说基于数据增广的 few-shotlearning 方法并没有摆脱基于大量数据的学习框架且增广得到的特征或数据并不能完全拟合真实数据的分布。Prototypicalnets 的主要思路是为每一类生成一个原型表征这个表征可以通过对该类仅有的几个样本的 embedding 进行平均而得到如果每一类只有一个训练样本那该仅有的单样本的 embedding 自然就是该类的原型表征。对于测试样本会计算该测试样本的 embedding 与每类原型表征点的距离然后用 softmax 形式形成类别预测的概率分布进而进行训练或预测。embedding 的生成过程通过一个 CNN 实现整个网络的训练也借鉴了 matchingnetwork 提出的 episodictraining 策略。该方法的问题在于embeddings 之间距离度量的选择会很大程度地影响算法性能另外当任务类别数量增加或单类样本增加时不同类之间的 prototyperepresentation 区分度会有所降低这种在 embedding 空间的最近邻分类策略将难以应付。MAML 算法是一种经典的基于元学习思路去解决 few-shotlearning 任务的算法。将每个 few-shotlearning 任务视为一个 task那么 MAML 的思路是学一个兼顾众多独立 task 的模型参数初始值以期能在新的 task 的几个样本上只需经过数步的 fine-tune 操作就能使模型在该任务上达到较好的泛化性能如左上图三个方向代表三个不同的 few-shotlearningtasks。本质上MAML 是寻找到了一些对 task 化敏感的参数使得当梯度方向改变时小的参数变动能够带来较大的损失函数变化从这一点上增强模型对诸多小样本学习 tasks 的平均泛化能力。《崛起的超级智能》一书主要阐述当今天人类为人工智能的春天到来而兴奋为人工智能是否超越人类而恐慌的时候一个更为庞大、远超人类预期的智能形态正在崛起种种迹象表明50年来互联网正在从网状结构进化成为类脑模型数十亿人类智慧与数百亿机器智能通过互联网大脑结构正在形成自然界前所未有的超级智能形式。这个新的超级智能的崛起正在对人类的科技产业、经济军事国家竞争产生重要而深远的影响。作者刘锋 推荐专家张亚勤、刘慈欣、周鸿祎、王飞跃、约翰、翰兹未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括建立AI智能系统智商评测体系开展世界人工智能智商评测开展互联网城市云脑研究计划构建互联网城市云脑技术和企业图谱为提升企业行业与城市的智能水平服务。 如果您对实验室的研究感兴趣欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”