2018年1月3日星期三

马里兰大学论文:可视化神经网络的损失函数


在这篇论文中,研究人员提出了「过滤器归一化」方法,用于可视化损失函数的曲率,并对损失函数进行了实验性的并行对比。他们进一步探索了多种因素(网络架构、超参数、优化器等)对损失函数形态的影响,以及损失函数形态对泛化能力的影响。


神经网络的训练需要最小化高维度非凸损失函数——这是一项理论上很难、有时却易于实践的任务。尽管训练一般性神经损失函数(Blum & Rivest, 1989)是 NP-hard,简单的梯度方法却经常能找到全局最小值(global minimizer,带有零或接近于零的训练损失的参数配置),甚至在训练之前当数据和标签已被随机化时(Zhang et al., 2017)也有效。但是,这有效却不通用;神经网络的可训练性高度依赖于网络架构设计、优化器和变量初始化方式的选择,以及大量其他考虑。不幸的是,这些选择的每一个对底层损失函数的几何结构的影响还不清楚。由于评估损失函数成本高昂(需要循环遍历训练集中的所有数据点),因此该领域的研究仍然主要是理论性的。


本文目标是使用高分辨率可视化来提供神经损失函数的经验性特征,并探索不同网络架构的选择对损失函数的影响。进而,本文探索了神经损失函数的非凸结构与其可训练性的关系,以及神经极小值(即它们的尖锐度/平坦度和周遭的形状)的几何如何影响其泛化能力。


为了以有意义的方式达到目的,本文提出了一种简单的「过滤器归一化」(filter normalization)方案,能够并行比较由不同方法发现的不同极小值。然后,本文通过可视化来探索由不同方法发现的极小值的尖锐度/平坦度,以及网络架构选择(跳过连接的使用、过滤器数量、网络深度)对损失函数的影响。本文目标是理解损失函数几何形状的不同是如何影响神经网络的泛化能力的。


图 1:ResNet-56 没有跳过连接和有跳过连接的损失函数曲面。垂直坐标是对数的,以展示动态范围。本文提出的过滤器归一化方案用于比较两个图的尖锐度/平坦度。


图 2:通过对 VGG-9 使用小批次和大批次方法得到的解的 1D 线性差值。蓝线是损失值,红线是准确率。实线是训练曲线,虚线是测试曲线。小批次在横坐标的 0,大批次在横坐标的 1。



表 1:VGG-9 使用不同的优化算法和超参数在 CIFAR-10 上的测试误差。

图 3:权重的直方图。权重衰变率为 0、批尺寸较小的时候得到的权重较大。权重衰变率不为 0、批尺寸较大的时候得到的权重较小。


图 4:使用不同的优化算法得到的极小值的形状,其中使用了不同的批尺寸和权重衰变率。每个子图的下方标出了优化器、批尺寸和测试误差。第一行使用的权重衰变率为 0,第二行使用的权重衰变率为 5e-4。


图 5:通过 SGD 和小批尺寸、大批尺寸得到的解的 2D 可视化。和图 4 类似,第一行使用的权重衰变率为 0,第二行使用的权重衰变率为 5e-4。


图 6:不同网络的解的 2D 可视化。


表 2:不同架构的损失值和误差。


图 7:Wide-ResNet-56(WRN-56)包含捷径连接(上半 4 张)和不包含捷径连接(下半 4 张)在 CIFAR-10 上的损失函数图像。k=2 表示每层有两倍的滤波器,k=4 表示每层有四倍的滤波器,等。测试误差在每个图下方标出。


图 8:优化器轨迹的无效可视化。这些可视化方法遭遇了高维空间的随机方向正交性带来的困难。


图 9:对 VGG-9 使用归一化的 PCA 方向的投影学习轨迹。每个子图中的左图使用的批尺寸为 128,右图使用的批尺寸为 8192。


结语


本文提出了一种新的、更精确的可视化技术,能够为神经网络实践者面对的众多选择的结果提供见解,包括网络架构、优化器选择和批大小。


近年来神经网络飞速发展。要在未来取得更多进展,需要对神经网络的结构有更全面的理解。本文希望通过有效的可视化技术以及理论的持续进步,可以带来更快的训练、更简单的模型以及更好的泛化。


研究表明,当神经网络很深或没有跳过连接的时候,损失函数的曲面会从凸面的、平滑的转变成杂乱的、尖锐的,进而大大降低泛化能力和可训练性。


论文:Visualizing the Loss Landscape of Neural Nets


论文链接:http://ift.tt/2Cjq2qE


神经网络的训练依赖于寻找高度非凸损失函数的(足够好的)极小值的能力。利用特定的网络架构设计(例如,跳过连接)生成的损失函数可以使训练过程变得更简单,利用精心调整的训练参数(批尺寸、学习率、优化器)可以达到使泛化能力更好的极小值。然而,对于这些规律,以及这些因素对损失函数形态的影响,并没有得到很好的理解。在这篇论文中,我们用多种可视化方法探索了神经网络损失函数结构,以及损失函数的形态对泛化能力的影响。首先,我们介绍了一种简单的「过滤器归一化」(filter normalization)方法帮助我们可视化损失函数的曲率,并对损失函数进行有意义的并排对比。然后我们使用多种可视化方法探索了网络架构对损失函数形态的影响,以及训练参数对极小值的形态的影响。


]]> 原文: http://ift.tt/2lNnqtd
RSS Feed

机器知心

IFTTT

全局自动优化:C++ 机器学习库dlib引入自动调参算法

dlib 是一个开源的 C++ 机器学习算法工具包,被广泛用于工业界和学术界,覆盖机器人、嵌入式设备、手机和大型高性能计算设备等环境。在最近一次更新(v19.8)中,其开发者引入了自动调优超参数的 LIPO 算法。据开发者称,这种方法超越了此前调整参数使用的各类方法。


Dlib:全局优化算法


所有机器学习开发者都会遇到同样一个问题:你有一些想要使用的机器学习算法,但其中填满了超参数——这些数字包括权重衰减率、高斯核函数宽度等等。算法本身并不会设置它们,你必须自己决定它们的数值。如果你调的参数不够「好」,那么算法是不会工作的。那么该如何是好?下面的列表是所有人都会做的事,按使用频率从高到低排列:


  • 依靠经验:聆听自己的直觉,设置感觉上应该对的参数然后看看它是否工作,不断尝试直到累趴。
  • 网格搜索:让计算机尝试一些在一定范围内均匀分布的数值。
  • 随机搜索:让计算机尝试一些随机值,看看它们是否好用。
  • 贝叶斯优化:使用类似 MATLAB bayesopt 的工具自动选取最佳参数——结果发现贝叶斯优化的超参数比你自己的机器学习算法还要多,累觉不爱,回到依靠经验和网格搜索方法上去


从一个好的初始猜测开始局部优化:这是 MITIE 的思路,它使用 BOBYQA 算法和一些较好的初始点开始工作。因为 BOBYQA 只能找到最近的局部最优解,所以该方法的效果严重依赖一个好的起始点。在 MITIE 方法上我们知道好的开始是成功的大部分,但问题在于我们经常难以找到一个好的起始点。另一方面,这种类型的方法非常适用于寻找局部最优解。稍后我们会再谈到这个问题。


在调参时,绝大多数人只会凭经验进行猜测。这不是个好现象,我们需要更合理的方法。所有人都希望一些黑箱优化策略如贝叶斯优化变得实用化,但在我看来,如果你不把贝叶斯优化的超参数调对,它就无法展现专家级的调参能力。事实上,我认识的每个使用贝叶斯优化的人都有着相同的经验。最终,如果我认为手调参数更加方便,我就会转回到传统方法上去,这也是所有使用类似工具的人都会遇到的事。所以结果就是我们一般不会使用自动超参数选择工具——令人沮丧的结论。我们都希望出现一个无参数的全局优化器,其中的超参数选择是我们可以信任的。


所以在我看到 Cédric Malherbe 和 Nicolas Vayatis 在今年 ICML 大会上的论文《Global optimization of Lipschitz functions》时,我感到非常兴奋。在这篇论文中,研究人员提出了一个非常简单的无参数且可证明正确的方法来寻找令函数 f(x) 最大化的 x∈R^d,即使 f(x) 存在很多局部极大值。论文的核心思想在于保持 f(x) 的分段线性上界,随后使用它在每一步优化中决定 x 的估计值。所以如果你已经估计出了 x_1,x_2,……,x_t,你可以轻松地这样定义 f(x) 的分段上界:


其中 k 是 f(x) 的 Lipschitz 常数。因此,根据 Lipschitz 常数的定义,显然对于所有 x 有 U(x)≥f(x)。论文作者随后提出了一个名为 LIPO 的简单算法,它可以随机选点,检查新点的上界是否比已有的最优点更好,如果是的话将更新改点为新的最优值。例如,下图展示了一个简单的红色 f(x),其上界 U(x) 为绿色。在这个例子中 U(x) 有四个点,由黑色方块表示。



我们不需要想象上界是如何帮助我们评估最优点的。例如,如果你选择最大上界作为下一次迭代,你就已经非常接近全局极大值了。论文作者随后继续证明了这种方法的一些不错的属性。值得一提的是,他们是用数学方法证明的,同时也实践展示了这种方法在很多非常规情形下要比随机搜索要好——考虑到随机超参数搜索(Random Search for Hyper-Parameter Optimization,James Bergstra & Yoshua Bengio)的效果非常强大,这是一个强有力的声明。在论文中,研究人员也对贝叶斯优化等算法进行了比较,并展示了 LIPO 的竞争力。


此时此刻你或许会说:「等一下,我们并不知道 Lipschitz 常数 k 的值!」这不是一个大问题,因为它非常容易估计,例如,可以将 k 设置为每次迭代前观察到的 f(x) 的最大斜率。这相当于解决如下问题:


  • Malherbe 等人测试了这种估算 k 的方法,并展示了它的优秀性能。
  • 他们提出的 LIPO 全局优化方法既没有参数,也被证明优于随机搜索,而且非常简单。阅读这篇论文会给你一种「Duang」的感觉,让你后悔为何自己没有早一点想到这种方法——这就是一篇好论文的标志。所以我显然希望在 dlib 中加入某种形式的 LIPO 算法,并实现到了最新的 dlib v19.8 版本中。


不过,如果想要在实践中用到 LIPO,你还需要解决一些问题。本文的下半部分将讨论这些问题并解释 dlib 是如何实现并解决它们的。首先,如果 f(x) 是嘈杂或不连续的(甚至只有一点点),k 就会变成无限大,这种情况在现实世界中经常出现。例如,在评估二元分类器中的 0-1 损失函数时,任何样本在预测不同的类别都会有一点点不连续性。你或许会无视它继续运行 LIPO,但有很大风险会遇到两个 x 样本横跨不连续点,并导致 k 值爆炸。第二,并不是所有的超参数都同等重要,一些几乎没有意义,而另一些则对于 f(x) 的输出影响很大。所以每个超参数都有特定的 k 值就更好了。你可以通过这样定义上界 U(x) 来解决这些问题:



现在,每个 f(x) 都有自己的噪声项σ_i,它在大部分时间里应该是 0,除非 x_i 真的接近于不连续或存在一些随机性。在这里,K 是一个对角矩阵,包含「每个超参数的 Lipschitz k 项」。通过这个公式,可将每个σ设为 0,K = (k^2)I 会给出与 Malherbe 等人所提出的相同的 U(x),如果我们让它们采用更加一般的值,则我们可以解决上面提到的问题。


和之前一样,我们可以通过求解一个最优化问题来寻找 U(x) 的参数:



σ^2 上的 10^6 罚项系数将导致大部分σ为零。整个算法对此处使用的特定罚项值并不敏感,只要罚项值足够大,σ 大部分情况下都会是 0,且 k 不会出现无穷大的情况,这正是我们希望看到的。我们还可以将其重写为大型二次规划问题,使用对偶坐标下降方法(dual coordinate descent method)解决。此处不详述过程,感兴趣的同学可以查看 dlib 代码。重点就是使用这个众所周知的方法可以很容易地解决问题,且解决了 k 的无穷大问题。


最后需要解决的问题是 LIPO 在局部极大值点区域中糟糕的收敛情况。尽管 LIPO 确实能够轻松到达 f(x) 最高峰,但到达之后它无法快速移动至最优位置(即峰值)。这是很多无导数优化算法的通病,包括 MATLAB 的贝叶斯优化工具。所幸,不是所有的方法都有这种局限性。Michael J. D. Powell 写了大量论文论述如何将经典的置信域方法应用到无导数优化算法中。这些方法拟合当前最优解的二次曲面,然后下一次迭代至与当前最优解有一定距离的二次曲面极大值点。因此,我们「相信」该局部二次模型在最优点的邻域内是准确的,所以该区域也叫「置信域」。上文提到的 BOBYQA 方法是这些方法其中之一,它可以很好地收敛至最近邻的局部最优解,在几步内轻松找到达到全浮点精度的局部最优解。


我们可以结合这两种方法来解决 LIPO 的收敛问题,LIPO 将探索 f(x),快速找到最高峰上的点。然后 Powell 的置信域方法可以有效找到该峰的最大值点。结合二者最简单的方式是交替使用,这就是 dlib 所做的。在偶数迭代时,我们根据上界选取下一个 x;在奇数迭代时,我们根据置信域模型选取下一个 x。我还使用了与 LIPO 稍微不同的版本,我称之为 MaxLIPO。Malherbe et al. 建议选取任意上界大于当前最优目标值的点。但是,我发现在每次迭代时选取最大上界点稍好一些。该交替版本 MaxLIPO 就是 dlib 使用的版本。下图展示了这种 MaxLIPO 和置信域方法的混合方法的运行:


上图中红线是待优化函数,我们试图寻找最大值点。我们注意到每一次算法从函数中采样一个点时都会出现一个小框。求解器的状态由全局上界 U(x) 和置信域方法使用的局部二次模型决定。因此,我们绘制出上界模型和当前的局部二次模型,这样你就可以看到它们随着优化过程所发生的进化。我们还用一条纵线表示目前见到的最佳点的位置。


你可以看到优化器根据二次模型在选取最大上界点和最大值点之间交替运行。随着优化的进展,上界逐渐变得更加准确,帮助我们找到最佳点,而二次模型不论处于什么位置都可以快速找到高精度极大值点。如视频结尾所示,二者使得优化器找到真正的全局高精度最大值点(在本示例中精度在±10^−9 范围内)。



现在我们来做一个实验,看看在默认设置下,MaxLIPO 和置信域方法(TR)相结合的混合方法与 MATLAB 的贝叶斯优化工具的对比结果。我在 Holder table 测试函数上将两个算法运行 100 次,并使用标准偏差误差带绘制平均误差。因此下图展示了 f(x*)−f(x_i),即真正的全局最优值和当前最优解的差。你可以看到 MATLAB 的贝叶斯优化在准确率±10^−3 时出现停滞,而我们的混合方法(MaxLIPO+TR)快速到达全浮点精度±10^−17。



我还对 LIPO 论文图 5 中的一些测试进行了重新测试,结果显示在下表中。在这些实验中,我比较了有或没有置信域求解器(LIPO+TR 和 LIPO)的 LIPO 性能。此外,为了验证 LIPO 优于纯随机搜索方法,我测试了在纯随机搜索方法和置信域求解器(PRS+TR)之间交替选择,而不是在 LIPO 方法与置信域求解器(LIPO+TR and MaxLIPO+TR)之间交替选择。我们将纯随机搜索(PRS)也包括在内以供参考。我在每次测试中运行 1000 次算法,并记录达到特定求解准确度的 f(x),及其调用次数的均值与标准差。例如,ϵ=0.01 意味着 f(x*)−f(x_i)≤0.01,而「target 99%」使用 Malherbe 论文中的「target」,对于大多数测试来说这对应于 ϵ>0.1。若测试的执行花费了太多时间,那么我将使用符号「-」。


这些结果的关键点是增加一个置信域以允许 LIPO 达到更高的求解准确率。因为 LIPO 通过使用 U(x) 的随机搜索,这会令算法运行得更快。因此,LIPO 对 U(x) 的调用数量至少与 PRS 在搜索 f(x) 时所需的一样多。此外,对于较小的 ϵ,执行 LIPO 将变得十分昂贵。例如,由于 LIPO 的执行时间太长,所以在任何测试问题上我们对 LIPO 的测试结果并不能达到 0.1 以上的准确度。但是,如果我们采用置信域的方法,那么组合的算法可以轻松实现高精度解。另一个重要的细节是,对于具有许多局部最优解的测试,结合 LIPO 与 TR 的所有方法都比 PRS+TR 的方法好。这在 ComplexHolder 上尤其突出,ComplexHolder 是 HolderTable 测试函数的一个版本,它具有额外的高频率正弦噪声,因此能显著增加局部最优解的数量。在 ComplexHolder 中,基于 LIPO 的方法要求 f(x) 的调用比 PRS + TR 少一个数量级,进一步证明了 Malherbe 等人的结论,即 LIPO 相对于纯随机搜索更有优势。



dlib 中的新方法 MaxLIPO+TR 在我所有的测试中是最好的,这种方法最引人注目的地方就是它的简单性。特别是 MaxLIPO+TR 不存在任何超参数,因此它非常易于使用。我已经使用 dlib 工具一段时间了,现在使用它进行超参数优化效果也非常好。这是第一个我非常有信心的黑箱超参数优化算法,它真的可用来解决实际问题。


最后,下面是一个简单的案例,展示如何在 Python 中使用这个新的优化器。


def holder_table(x0,x1):     return -abs(sin(x0)*cos(x1)*exp(abs(1-sqrt(x0*x0+x1*x1)/pi)))  x,y = dlib.find_min_global(holder_table,                             [-10,-10],  # Lower bound constraints on x0 and x1 respectively                            [10,10],    # Upper bound constraints on x0 and x1 respectively                            80)         # The number of times find_min_global() will call holder_table()  Or in C++11: auto holder_table = [](double x0, double x1) {return -abs(sin(x0)*cos(x1)*exp(abs(1-sqrt(x0*x0+x1*x1)/pi)));};  // obtain result.x and result.y auto result = find_min_global(holder_table,                               {-10,-10}, // lower bounds                              {10,10}, // upper bounds                              max_function_calls(80)); 


这些方法都可以在约 0.1 秒内找到 holder_table 的全局最优解,且精度能达到 12 digits。C++ API 已经公开了多种调用求解器的方法,包括一次优化多个函数和添加整型约束。若读者希望了解更多的细节,请查看该工具的文档。



]]> 原文: http://ift.tt/2CgAU7Q
RSS Feed

机器知心

IFTTT

先声教育 CTO 秦龙:有限的算法与无限的新意

「在教育领域做好,不是说要把某一个特定算法做到极致,而是如何把相对成熟的技术与教育的结合做好。」

 

 

《连线》杂志在总结 2017 年人工智能领域学术研究现状时,提到了一个担忧,即当前大多数人工智能技术的发展都极度依赖极少数核心创新算法的支持,换句话说,算法这事,也会有「僧多粥少」的问题。的确,神经网络不是卷积神经网络就是循环神经网络,处理的对象总逃不过语音、图像、文本,而顺理成章的应用思路也就智能音箱、人脸识别这么几个。因此尚未完全成规模的浅滩市场里已经挤进了太多的重磅鲨鱼型选手,蓝海好像只是一个幻觉,海水一直是深红色。

 

我带着对这一观点的认同接触到了秦龙,先声教育 CTO,然后感受到了这家名字里面甚至没出现「智能」或者「科技」字样的公司带来的惊喜:工程师们堪称「鬼斧神工」地把我们如数家珍的算法变出了花样,然后给出了一个既充分利用了现阶段的技术发展水平,同时具有不错的可扩展性的发展路径。

 

换句话说,他们的算法既能够顺利落地,在当下解决实打实的需求,手握日均千万次的服务请求,同时一旦那些个 AI 算法今天画过的饼明天真的能充饥了,也能用同样的思路再提高一个台阶挑战更复杂的问题。

 

这就是「算法的新意」的重要性。

 

第一个新意来自对语音识别的逆向思维。


我们印象里的语音识别任务,是存在「用户就是上帝」的准则的:用户说话会带着天南地北的口音,所以开发语音输入法的团队要收集大量方言数据让模型「见多识广」;用户总是离着麦克风很远就开始发号施令,所以开发智能音箱的团队要布置麦克风阵列来解决「鸡尾酒会问题」。就算在标准数据集上,算法早就追上然后碾压了人类,我们一样会以「不会变通」,「不解决实际问题」为理由淡化它们的成就。

 

那么,有没有可能换一种思路,找一个不是「算法迁就善变的人类」,而是「人类模仿标准的算法」的情景,把不会出错、不搞特殊化的算法放在正确答案的位置,不知疲倦地给人类「找茬」?

 

先声告诉我们:有,这个答案叫做口语测评。


 

我带着雅思口语 8 分的自信试用了「句子跟读」功能,被算法轻松抓出了三处心服口服的错误:

  • 开头的升降调错误,来自我「词汇量不足情绪来凑」的习惯性夸张语调。
  • 中间的标红来自吞音连读,就像写惯了行书的人被强迫写正楷总是偷漏笔划。
  • 特别扎心的是结尾那个「bad」:原来我发开元音不张嘴这个当年雅思主考官指出过的坏习惯,至今也没改掉!


是的,你可以批评 AI 不能「灵活应变」,却需要承认它永远「尽职尽责」,它或许做起小工「宛如智障」,但变身为老师却「有模有样」。

 

口语测评背后的神经网络和机器听写、智能音箱无异,都是基于 lstm RNN 的语音识别模型。评测过程里,系统会把声音切割到音素(phoneme)级别,首先判断「有没有」,即语音片段中是否含有所有音素,给出完整度得分;然后判断「对不对」,逐个对发音、重音(stress)位置以及语音语调的正确性进行软分类,给出准确度打分;最后在句子层面,对照单词时长的分布信息、词之间的停顿、总体的语速,给出流利度得分。经过这一整个流程,因此,这个音素级别的模型能够给你详细到音素水平的修改意见,字斟句酌地和你推敲发音。



这里展示的仅仅是一个有确定性答案的客观题,再难一些的非确定性答案半开放性题目也可以类似处理。先声的业务针对 K12(Kindergarten to Grade 12,学龄前到高中)展开,其中非常典型的问题是中考的口头作文:


 

相比于跟读,口头作文还要在语音识别后加上自然语言处理程序,判断考生是否覆盖题目所要求的要点:除了在考生的答案里寻找标准答案关键词之外,也要用词嵌入(word embedding)寻找近义词和词组,比如标准答案是「Basketball is good for health.」,考生用了「Playing basketball is a healthy habit.」也一样应该得分。

 

第二个新意来自对机器翻译的另类利用。


其实「平行语料」并不一定局限于两种语言,只要是有对应关系的语句对,都可以用「编码器-解码器」的机器翻译思路来解。在学界,这个思路被扩展到了问答系统的设计,而先声选择了另一个奇妙的语言对:「有语法错误的句子」和「改掉了语法错误的正确句子」。于是,作文批改就这样变成了一个简化版的机器翻译问题。

 

之所以说是简化版,是因为作文批改中通常涉及的改动范围都比较小,没有机器翻译中由于不同语言的语法结构差异而产生的长句校准问题。所以,批改不需要注意力机制、甚至不需要非常消耗计算资源的深度神经网络,哪怕是传统的统计机器翻译(SMT),也能取得不错的效果。



类比机器翻译系统的作文批改并不是唯一一种方式,类似自然语言处理,作文批改也有基于规则的做法和基于统计的 n-gram 做法。

 

基于规则的做法逻辑简单:看到名词就检查冠词情况,看到动词就检查时态情况,但是需要手写定义海量的规则,既不优雅也不高效,已经渐渐被摒弃。而基于统计的 n-gram 方法,是神经网络出现之前自然语言处理领域毋庸置疑的统治者,它的一种基本逻辑和完形填空很相似:挖掉由 n 个单词组成的子句中的一个,给定周围的语境,根据语料库,此处出现概率最高的单词是哪些?在写作批改里,这个逻辑变成了看看每一个词周围的语境,如果一个词出现的概率极低,低过了一定的阈值,那么系统就判定这个词错了,并将可能出现概率较高的词作为修改意见给出。


 

类比机器翻译的模型在可扩展性上可以碾压基于规则的模型,在可控性上也优于 n-gram 模型:如果发现了一处没有改过来的错误,只需要把它和正确的句子一起做成数据对,在下一次迭代过程里补充进训练集即可,神经网络可解释性的弱点就这样被完美地避开了。

 

不过,可解释性并不会成为秦龙的困扰,他坦言,做产品就是「简单粗暴」:「只要效果提升了,我不需要解释。无论是线性模型还是 lstm,哪种方法结果漂亮,我就认同哪个结果。我们不会因为 lstm 听起来高大上就要用这个,做产品的团队没有这种考虑。」

 

当然,基于翻译的模型的优点还有很多,可用数据多、语料库获取难度低,批改范围从语法是否正确扩展到用词是否地道,种种不一而足。

 

即使汇集如此多优点,在写作批改的路上,工程师们仍然有很长的路要走。语法并不是一篇作文的全部,比语法更重要的是逻辑与表达。考生陈述的观点是否扣题,论点是否得到了充分的论据支持,论据是否有足够清晰明确的表达,都是写作批改系统应该做到,而现有自然语言处理技术尚不能支持的地方。「现在我们还没办法通过一个简单的神经网络判断一个文章是否跑题,更别说分析逻辑性了。」

 

但是工程师永远不会被「研究尚不支持」这种理由捆住手脚。先声的团队尝试了多种方案之后,最后做了单独的模型类比阅读理解中的「话题模型」给作文的内容性打分,加权平均得到总评分。

 

除了引入更多的模型,业界的常见做法自然还有引入更多的数据。

 

「传统机器学习方法,例如线性回归和 SVM,饱受诟病的一点是数据量达到一定程度之后,模型复杂度继续提升已经没有用了。而相比之下,深度学习虽然在短期内需要大量数据,但是最终仍然会走向收敛。」秦龙说。

 

对于写作批改来说,「大数据」除了「大量文章」之外,还有另一个维度的指标需要满足,就是「大量话题」。每个话题下的大量文章好满足,而大量话题非常难实现。

 

采访前,秦龙分享给我一篇论文,是用一层卷积层(convolutional layer)、一层 lstm 、一层全连接时序均值(mean over time)的神经网络模型做写作批改。这是当前非常常见的一类论文批改实现方法,然而文中的模型每换一个话题就要重新训练一次、改一组参数。泛化能力之低,甚至无法跨过业界「可用」的门槛。「我们做了一些实验,把卷积层替换成词嵌入(word embedding),然后取多个词而不是一个词的词嵌入,lstm 变成双向等等,效果会好一点。」秦龙如是说,然而「好一点」距离理想中的模型还很遥远。

 

「假如有足够的数据,我们甚至能做出好的无参数(nonparamatric)算法。可以像 K 临近算法一样,把所有的训练数据归为 1-5 分 5 个类别,每个分数段都有在高维空间里有自己的中心。推理阶段只要计算每篇论文和每个分数段中心之间的距离,加权平均,就能得到很准确的判分。然而真实世界里的作文分数也是呈钟型分布的,5 分和 1 分的样本都很少,收集数据太难了。」

 

但是再难似乎也没对工程师造成什么消极的影响。他们仍然在有条不紊地迭代着已经成熟的语音测评系统,升级着日渐成熟的写作批改系统,然后计划着更多:

 

「除了测评类,我们也关注深度知识追踪(deep knowledge tracing)在自适应学习(adaptive learning)方面的应用,以及其他自然语言处理的方法在新题库构建方面的能力。」

 

最后,秦龙以这样一句话总结了先声的工作,「在教育领域做好,不是说要把某一个特定算法做到极致,而是如何把相对成熟的技术与教育的结合做好。」


]]> 原文: http://ift.tt/2CIy1xP
RSS Feed

机器知心

IFTTT

打响新年第一炮,Gary Marcus提出对深度学习的系统性批判

在人们对于 AI 技术的应用逐步走向正轨的同时,人工智能的先驱者们却早已将目光投向远方。2018 年伊始,纽约大学教授、前 Uber AI Lab 主管 Gary Marcus 就发表了一篇长文对深度学习的现状及局限性进行了批判性探讨。在文中,Marcus 表示:我们必须走出深度学习,这样才能迎来真正的通用人工智能。


文章地址:http://ift.tt/2CymIL4



Gary Marcus 在机器之心 GMIS 2017 大会上


尽管深度学习历史可追溯到几十年前,但这种方法,甚至深度学习一词都只是在 5 年前才刚刚流行,也就是该领域被类似于 Krizhevsky、Sutskever 和 Hinton 等人合作的论文这样的研究成果重新点燃的时候。他们的论文如今是 ImageNet 上经典的深度网络模型。


在随后 5 年中,该领域都发现了什么?在语音识别、图像识别、游戏等领域有可观进步,主流媒体热情高涨的背景下,我提出了对深度学习的十点担忧,且如果我们想要达到通用人工智能,我建议要有其他技术补充深度学习。


在深度学习衍生出更好解决方案的众多问题上(视觉、语音),在 2016 -2017 期间而变得收效衰减。——François Chollet, Google, Keras 作者,2017.12.18

「科学是踩着葬礼前行的」,未来由极其质疑我所说的一切的那批学生所决定。——Geoffrey Hinton,深度学习教父,谷歌大脑负责人,2017.9.15


1. 深度学习撞墙了?


尽管,深度学习的根源可追溯到几十年前(Schmidhuber,2015),但直到 5 年之前,人们对于它的关注还极其有限。2012 年,Krizhevsky、Sutskever 和 Hinton 发布论文《ImageNet Classification with Deep Convolutional Neural Networks》(Krizhevsky, Sutskever, & Hinton, 2012),在 ImageNet 目标识别挑战赛上取得了顶尖结果(Deng et al.)。随着这样的一批高影响力论文的发表,一切都发生了本质上的变化。当时,其他实验室已经在做类似的工作(Cireşan, Meier, Masci, & Schmidhuber, 2012)。在 2012 年将尽之时,深度学习上了纽约时报的头版。然后,迅速蹿红成为人工智能中最知名的技术。训练多层神经网络的思路并不新颖(确实如此),但因为计算力与数据的增加,深度学习第一次变得实际可用。


自此之后,深度学习在语音识别、图像识别、语言翻译这样的领域产生了众多顶尖成果,且在目前众多的 AI 应用中扮演着重要的角色。大公司也开始投资数亿美元挖深度学习人才。深度学习的一位重要拥护者,吴恩达,想的更远并说到,「如果一个人完成一项脑力任务需要少于一秒的考虑时间,我们就有可能在现在或者不久的未来使用 AI 使其自动化。」(A,2016)。最近纽约时报星期天杂志的一篇关于深度学习的文章,暗示深度学习技术「做好准备重新发明计算本身」。


如今,深度学习可能临近墙角,大部分如同前面我在深度学习崛起之时(Marcus 2012)预期到的,也如同 Hinton(Sabour, Frosst, & Hinton, 2017)、Chollet(2017)这样的重要人物近几月来暗示的那样。


深度学习到底是什么?它展示了智能的什么特性?我们能期待它做什么?预计什么时候它会不行?我们离「通用人工智能」还有多远?多近?在解决不熟悉的问题上,什么时候机器能够像人类一样灵活?该文章的目的既是为了缓和非理性的膨胀,也是为了考虑需要前进的方向。


该论文同时也是写给该领域的研究人员,写给缺乏技术背景又可能想要理解该领域的 AI 消费者。如此一来,在第二部分我将简要地、非技术性地介绍深度学习系统能做什么,为什么做得好。然后在第三部分介绍深度学习的弱点,第四部分介绍对深度学习能力的误解,最后介绍我们可以前进的方向。


深度学习不太可能会消亡,也不该消亡。但在深度学习崛起的 5 年后,看起来是时候对深度学习的能力与不足做出批判性反思了。


2. 深度学习是什么?深度学习能做好什么?


深度学习本质上是一种基于样本数据、使用多层神经网络对模式进行分类的统计学技术。深度学习文献中的神经网络包括一系列代表像素或单词的输入单元、包含隐藏单元(又叫节点或神经元)的多个隐藏层(层越多,网络就越深),以及一系列输出单元,节点之间存在连接。在典型应用中,这样的网络可以在大型手写数字(输入,表示为图像)和标签(输出,表示为图像)集上进行训练,标签代表输入所属的类别。

随着时间的进展,一种叫作反向传播的算法出现了,它允许通过梯度下降过程调整单元之间的连接,以使任意给定输入可以有对应的输出。


大体上,我们可以把神经网络所学习的输入与输出之间的关系理解为映射。神经网络,尤其是具备多个隐藏层的神经网络尤其擅长学习输入-输出映射。


此类系统通常被描述为神经网络,因为输入节点、隐藏节点和输出节点类似生物神经元,不过已经大大简化。节点之间的连接类似神经元之间的连接。


大部分深度学习网络大量使用卷积技术(LeCun, 1989),该技术约束网络中的神经连接,使它们本能地捕捉平移不变性(translational invariance)。这本质上就是物体可以围绕图像滑动,同时又保持自己的特征;正如上图中,假设它是左上角的圆,即使缺少直接经验,也可以最终过渡到右下角。


深度学习还有一个著名的能力——自生成中间表示,如可以响应横线或图结构中更复杂元素的内部单元。


原则上,对于给定的无限多数据,深度学习系统能够展示给定输入集和对应输出集之间的有限确定性「映射」,但实践中系统是否能够学习此类映射需要依赖于很多因素。一个常见的担忧是局部极小值陷阱,即系统陷入次最优解,附近求解空间内没有更好的解。(专家使用多种技术避免此类问题,达到了比较好的效果。)在实践中,大型数据集的结果通常比较好,因其具备大量可能的映射。


例如,语音识别中,神经网络学习语音集和标签(如单词或音素)集之间的映射。目标识别中,神经网络学习图像集和标签集之间的映射。在 DeepMind 的 Atari 游戏系统(Mnih et al., 2015)中,神经网络学习像素和游戏杆位置之间的映射。


深度学习系统最常用作分类系统,因其使命是决定给定输入所属的类别(由神经网络的输出单元定义)。只要有足够的想象力,那么分类的能力是巨大的;输出可以表示单词、围棋棋盘上的位置等几乎所有事物。


在拥有无限数据和计算资源的世界,可能就不需要其他技术了。


3. 深度学习的局限性


深度学习的局限性首先是这个逆否命题:我们居住的世界具备的数据并不是无穷多的。依赖于深度学习的系统经常要泛化至未见过的数据,这些数据并不是无穷大的,确保高质量性能的能力更是有限。


我们可以把泛化当作已知样本之间的内插和超出已知训练样本空间的数据所需的外插(Marcus, 1998a)。


对于泛化性能良好的神经网络,通常必须有大量数据,测试数据必须与训练数据类似,使新答案内插在旧的数据之中。在 Krizhevsky 等人的论文(Krizhevsky, Sutskever, & Hinton, 2012)中,一个具备 6000 万参数和 65 万节点的 9 层卷积神经网络在来自大概 1000 个类别的约 100 万不同样本上进行训练。


这种暴力方法在 ImageNet 这种有限数据集上效果不错,所有外部刺激都可以被分类为较小的类别。它在稳定的领域效果也不错,如在语音识别中,数据可以一种常规方式映射到有限的语音类别集中,但是出于很多原因,深度学习不是人工智能的通用解决方案。


以下是当前深度学习系统所面临的十个挑战:


3.1 目前深度学习需要大量数据


人类只需要少量的尝试就可以学习抽象的关系。如果我告诉你 schmister 是年龄在 10 岁到 21 岁之间的姐妹。可能只需要一个例子,你就可以立刻推出你有没有 schmister,你的好朋友有没有 schmister,你的孩子或父母有没有 schmister 等等。


你不需要成百上千甚至上百万的训练样本,只需要用少量类代数的变量之间的抽象关系,就可以给 schmister 下一个准确的定义。


人类可以学习这样的抽象概念,无论是通过准确的定义还是更隐式的手段(Marcus,2001)。实际上即使是 7 月大的婴儿也可以仅在两分钟内从少量的无标签样本中学习抽象的类语言规则(Marcus, Vijayan, Bandi Rao, & Vishton, 1999)。随后由 Gervain 与其同事做出的研究(2012)表明新生儿也能进行类似的学习。


深度学习目前缺少通过准确的、语词的定义学习抽象概念的机制。当有数百万甚至数十亿的训练样本的时候,深度学习能达到最好的性能,例如 DeepMind 在棋牌游戏和 Atari 上的研究。正如 Brenden Lake 和他的同事最近在一系列论文中所强调的,人类在学习复杂规则的效率远高于深度学习系统(Lake, Salakhutdinov, & Tenenbaum, 2015; Lake, Ullman, Tenenbaum, & Gershman, 2016)(也可以参见 George 等人的相关研究工作,2017)。我和 Steven Pinker 在儿童与神经网络的过度规则化误差的对比研究也证明了这一点。


Geoff Hinton 也对深度学习依赖大量的标注样本表示担忧,在他最新的 Capsule 网络研究中表达了这个观点,其中指出卷积神经网络可能会遭遇「指数低效」,从而导致网络的失效。还有一个问题是卷积网络在泛化到新的视角上有困难。处理转换(不变性)的能力是网络的内在性质,而对于其他常见类型的转换不变性,我们不得不在网格上的重复特征检测器之间进行选择,该过程的计算量是指数式增长的,或者增加标记训练集的规模,其计算量也是指数式增长的。


对于没有大量数据的问题,深度学习通常不是理想的解决方案。


3.2 深度学习目前还是太表浅,没有足够的能力进行迁移


这里很重要的一点是,需要认识到「深」在深度学习中是一个技术的、架构的性质(即在现代神经网络中使用大量的隐藏层),而不是概念上的意义(即这样的网络获取的表征可以自然地应用到诸如「公正、「民主」或「干预」等概念)。


即使是像「球」或「对手」这样的具体概念也是很难被深度学习学到的。考虑 DeepMind 利用深度强化学习对 Atari 游戏的研究,他们将深度学习和强化学习结合了起来。其成果表面上看起来很棒:该系统使用单个「超参数」集合(控制网络的性质,如学习率)在大量的游戏样本中达到或打败了人类专家,其中系统并没有关于具体游戏的知识,甚至连规则都不知道。但人们很容易对这个结果进行过度解读。例如,根据一个广泛流传的关于该系统学习玩打砖块 Atari 游戏 Breakout 的视频,「经过 240 分钟的训练,系统意识到把砖墙打通一个通道是获得高分的最高效的技术。」


但实际上系统并没有学到这样的思维:它并不理解通道是什么,或者砖墙是什么;它仅仅是学到了特定场景下的特定策略。迁移测试(其中深度强化学习系统需要面对和训练过程中稍有不同的场景)表明深度强化学习方法通常学到很表明的东西。例如,Vicarious 的研究团队表明 DeepMind 的更高效的进阶技术——Atari 系统「Asynchronous Advantage Actor-Critic」(也叫 A3C)在玩多种 Breakout 的微改动版本(例如改变球拍的 Y 坐标,或在屏幕中央加上一堵墙)时遭遇了失败。这些反例证明了深度强化学习并不能学习归纳类似砖墙或球拍这样的概念;更准确地说,这样的评论就是生物心理学中的过度归因所造成的。Atari 系统并没有真正地学习到关于砖墙的鲁棒的概念,而只是在高度训练的情景的狭隘集合中表面地打破了砖墙。


我在初创公司 Geometric Intelligence 的研究团队(后来被 Uber 收购)的滑雪游戏情景中发现了类似的结果。2017 年,伯克利和 OpenAI 的一个研究团队发现可以轻易地在多种游戏中构造对抗样本,使得 DQN(原始的 DeepMind 算法)、A3C 和其它的相关技术(Huang, Papernot, Goodfellow, Duan, & Abbeel, 2017)都失效。


最近由 Robin Jia 和 Percy Liang(2017)做的实验在不同的领域(语言)表明了类似的观点。他们训练了多种用于问答系统任务(被称为 SQuAD,Stanford Question Answering Database)的神经网络,其中任务的目标是在特定的段落中标出和给定问题相关的单词。例如,有一个已训练系统可以基于一段短文准确地识别出超级碗 XXXIII 的胜利者是 John Elway。但 jia 和 Liang 表明仅仅插入干扰句(例如宣称谷歌的 Jeff Dean 在另一个杯赛中获得了胜利)就可以让准确率大幅下降。在 16 个模型中,平均准确率从 75% 下降了到了 36%。


通常情况下,深度学习提取的模式,相比给人的第一印象,其实更加的表面化。


3.3 迄今深度学习没有自然方式来处理层级架构


对乔姆斯基这样的语言学家来说,对 Robin Jia 和 Percy Liang 记录的难题并不惊讶。基本上,目前大部分深度学习方法基于语言模型来将句子表达为纯粹的词序列。然而,乔姆斯基一直以来都认为语言具有层级架构,也就是小的部件循环构建成更大的结构。(例如,在句子「the teenager who previously crossed the Atlantic set a record for flying around the world」中,主句是「the teenager set a record for flying around the world」,「who previously crossed the Atlantic」是指明青年身份的一个字句。


在上世纪 80 年代,Fodor 和 Pylyshyn(1988)也表达了同样的担忧,这是关于神经网络的一个早期分支。我在 2001 年的文章中也同样揣测到,单个循环神经网络(SRN;是今天基于循环神经网络(也就是 RNN)的更复杂的深度学习方法的前身;Elman,1990) 难以系统表达、扩展各种不熟悉语句的递归结构(从引用论文查看具体是哪种类型)。


2017 早些时候,Brenden Lake 和 Marco Baroni 测试了这样的悲观揣测是否依然正确。就像他们文章标题中写的,当代神经网络「这么多年来依然不体系」。RNN 可能「在训练与测试差别... 很小的时候泛化很好,但当需要系统地组合技能做泛化时,RNN 极其失败。」


类似的问题在其他领域也可能会暴露出来,例如规划与电机控制,这些领域都需要复杂的层级结构,特别是遇到全新的环境时。从上面提到的 Atari 游戏 AI 难以迁移问题上,我们可以间接看到这一点。更普遍的是在机器人领域,系统一般不能在全新环境中概括抽象规划。


至少,目前深度学习显现的核心问题是它学习特征集相对平滑或者说非层级的关联关系,犹如简单的、非结构化列表,每个特征都平等。层级结构(例如,句子中区分主句和从句的语法树)在这样的系统中并不是固有的,或者直接表达的,结果导致深度学习系统被迫使用各种根本不合适的代理,例如句子中单词的序列位置。


像 Word2Vec(Mikolov, Chen, Corrado, & Dean, 2013) 这样的系统将单个单词表达为向量,有适当的成功。也有一批系统使用小技巧试图在深度学习可兼容的向量空间中表达完整语句 (Socher, Huval, Manning, & Ng, 2012)。但是,就像 Lake 和 Baroni 的实验表明的,循环网络能力依然有限,不足以准确可靠地表达和概括丰富的结构信息。


3.4 迄今为止的深度学习无法进行开放推理


如果你无法搞清「John promised Mary to leave」和「John promised to leave Mary」之间的区别,你就不能分清是谁离开了谁,以及接下来会发生什么。目前的机器阅读系统已经在一些任务,如 SQuAD 上取得了某种程度的成功,其中对于给定问题的答案被明确地包含在文本中,或者整合在多个句子中(被称为多级推理)或整合在背景知识的几个明确的句子中,但并没有标注特定的文本。对于人类来说,我们在阅读文本时经常可以进行广泛的推理,形成全新的、隐含的思考,例如仅仅通过对话就能确定角色的意图。


尽管 Bowman 等人(Bowman,Angeli,Potts & Manning,2015;Williams,Nangia & Bowman,2017)在这一方向上已经采取了一些重要步骤,但目前来看,没有深度学习系统可以基于真实世界的知识进行开放式推理,并达到人类级别的准确性。


3.5 迄今为止的深度学习不够透明


神经网络「黑箱」的特性一直是过去几年人们讨论的重点(Samek、Wiegand & Müller,2017;Ribeiro、Singh & Guestrin,2016)。在目前的典型状态里,深度学习系统有数百万甚至数十亿参数,其开发者可识别形式并不是常规程序员使用的(「last_character_typed」)人类可识别标签,而是仅在一个复杂网络中适用的地理形式(如网络模块 k 中第 j 层第 i 个节点的活动值)。尽管通过可视化工具,我们可以在复杂网络中看到节点个体的贡献(Nguyen、Clune、Bengio、Dosovitskiy & Yosinski,2016),但大多数观察者都认为,神经网络整体看来仍然是一个黑箱。


从长远看来,目前这种情况的重要性仍不明确(Lipton,2016)。如果系统足够健壮且自成体系,则没有问题;如果神经网络在更大的系统中占据重要的位置,则其可调试性至关重要。


为解决透明度问题,对于深度学习在一些领域如金融或医疗诊断上的潜力是致命的,其中人类必须了解系统是如何做出决策的。正如 Catherine O』Neill(2016)指出的,这种不透明也会导致严重的偏见问题。


3.6 迄今为止,深度学习并没有很好地与先验知识相结合


深度学习的一个重要方向是解释学,就是将自身与其他潜在的、有用的知识隔离开来。深度学习的工作方式通常包含寻找一个训练数据集,与输入相关联的各个输出,通过任何精巧的架构或变体,以及数据清理和/或增强技术,随后通过学习输入和输出的关系来学会解决问题的方法。这其中只有少数几个例外,如 LeCun 对神经网络连接卷积约束的研究(LeCun,1989)中,先验知识被有意最小化了。


因此,例如 Lerer 等人(2016)提出的系统学习从塔上掉落物体的物理性质,在此之上并没有物理学的先验知识(除卷积中所隐含的内容之外)。在这里,牛顿定律并没有被编码,系统通过(在一些有限的层面上)通过原始像素级数据学习了这一定律,并近似它们。正如在我即将发表的论文中所指出的那样,深度学习研究者似乎对于先验知识有着很强的偏见,即使(如在物理上)这些先验知识是众所周知的。


一般来说,将先验知识整合到深度学习系统中并不简单:一部分是因为深度学习系统中的知识表征主要是特征之间的关系(大部分还是不透明的),而非抽象的量化陈述(如凡人终有一死),参见普遍量化一对一映射的讨论(Marcus,2001),或 generics(可违反的声明,如狗有四条腿或蚊子携带尼罗河病毒(Gelman、Leslie、Was & Koch,2015))。


这个问题根植于机器学习文化中,强调系统需要自成一体并具有竞争力——不需要哪怕是一点先验的通用知识。Kaggle 机器学习竞赛平台正是这一现象的注解,参赛者争取在给定数据集上获取特定任务的最佳结果。任意给定问题所需的信息都被整齐地封装好,其中包含相关的输入和输出文件。在这种范式下我们已经有了很大的进步(主要在图像识别和语音识别领域中)。


问题在于,当然,生活并不是一场 Kaggle 竞赛;孩子们并不会把所有数据整齐地打包进一个目录里。真实世界中我们需要学习更为零散的数据,问题并没有如此整齐地封装起来。深度学习在诸如语音识别这种有很多标记的问题上非常有效,但却几乎没有人知道如何将其应用于更开放的问题。如何把卡在自行车链条上的绳子挑出来?我专业该选数学还是神经科学?训练集不会告诉我们。


与分类离得越远,与常识离得越近的问题就越不能被深度学习来解决。在近期对于常识的研究中,我和 Ernie Davis(2015)开始,从一系列易于得出的推论开始进行研究,如威廉王子和他的孩子乔治王子谁更高?你可以用聚酯衬衫来做沙拉吗?如果你在胡萝卜上插一根针,是胡萝卜上有洞还是针上有洞?


据我所知,目前还没有人常识让深度学习回答这样的问题。


这些对于人类而言非常简单的问题需要整合大量不同来源的知识,因此距离深度学习受用风格的分类还有很长一段距离。相反,这或许意味着若想要达到人类级别的灵活认知能力,我们需要与深度学习完全不同的工具。


3.7 到目前为止,深度学习还不能从根本上区分因果关系和相关关系


如果因果关系确实不等同于相关关系,那么这两者之间的区别对深度学习而言也是一个严重的问题。粗略而言,深度学习学习的是输入特征与输出特征之间的复杂相关关系,而不是固有的因果关系表征。深度学习系统可以将人群看作是一个整体而轻松学习到身高与词汇量是相关的,但却更难表征成长与发育之间相互关联的方式(孩子在学会更多词的同时也越长越大,但这并不意味着长高会导致他们学会更多词,学会更多词也不会导致他们长高)。因果关系在其它一些用于人工智能的方法中一直是核心因素(Pearl, 2000),但也许是因为深度学习的目标并非这些难题,所以深度学习领域传统上在解决这一难题上的研究工作相对较少。[9]


3.8 深度学习假设世界是大体稳定的,采用的方式可能是概率的


深度学习的逻辑是:在高度稳定的世界(比如规则不变的围棋)中效果很可能最佳,而在政治和经济等不断变化的领域的效果则没有那么好。就算把深度学习应用于股票预测等任务,它很有可能也会遭遇谷歌流感趋势(Google Flu Trends)那样的命运;谷歌流感趋势一开始根据搜索趋势能很好地预测流行病学数据,但却完全错过了 2013 年流感季等事件(Lazer, Kennedy, King, & Vespignani, 2014)。


3.9 到目前为止,深度学习只是一种良好的近似,其答案并不完全可信


这个问题部分是本节中提及的其它问题所造成的结果,深度学习在一个给定领域中相当大一部分都效果良好,但仍然很容易被欺骗愚弄。


越来越多的论文都表明了这一缺陷,从前文提及的 Jia 和 Liang 给出的语言学案例到视觉领域的大量示例,比如有深度学习的图像描述系统将黄黑相间的条纹图案误认为校车(Nguyen, Yosinski, & Clune, 2014),将贴了贴纸的停车标志误认为装满东西的冰箱(Vinyals, Toshev, Bengio, & Erhan, 2014),而其它情况则看起来表现良好。


最近还有真实世界的停止标志在稍微修饰之后被误认为限速标志的案例(Evtimov et al., 2017),还有 3D 打印的乌龟被误认为步枪的情况(Athalye, Engstrom, Ilyas, & Kwok, 2017)。最近还有一条新闻说英国警方的一个系统难以分辨裸体和沙丘。[10]


最早提出深度学习系统的「可欺骗性(spoofability)」的论文可能是 Szegedy et al(2013)。四年过去了,尽管研究活动很活跃,但目前仍未找到稳健的解决方法。


3.10 到目前为止,深度学习还难以在工程中使用


有了上面提到的那些问题,另一个事实是现在还难以使用深度学习进行工程开发。正如谷歌一个研究团队在 2014 年一篇重要但仍未得到解答的论文(Sculley, Phillips, Ebner, Chaudhary, & Young, 2014)的标题中说的那样:机器学习是「高利息的技术债务信用卡」,意思是说机器学习在打造可在某些有限环境中工作的系统方面相对容易(短期效益),但要确保它们也能在具有可能不同于之前训练数据的全新数据的其它环境中工作却相当困难(长期债务,尤其是当一个系统被用作另一个更大型的系统组成部分时)。


Leon Bottou (2015) 在 ICML 的一个重要演讲中将机器学习与飞机引擎开发进行了比较。他指出尽管飞机设计依靠的是使用更简单的系统构建复杂系统,但仍有可能确保得到可靠的结果,机器学习则缺乏得到这种保证的能力。正如谷歌的 Peter Norvig 在 2016 年指出的那样,目前机器学习还缺乏传统编程的渐进性、透明性和可调试性,要实现深度学习的稳健,需要在简洁性方面做一些权衡。


Henderson 及其同事最近围绕深度强化学习对这些观点进行了延展,他们指出这一领域面临着一些与稳健性和可复现性相关的严重问题(Henderson et al., 2017)。


尽管在机器学习系统的开发过程的自动化方面存在一些进展(Zoph, Vasudevan, Shlens, & Le, 2017),但还仍有很长的路要走。


3.11 讨论


当然,深度学习本身只是数学;上面给出的所有问题中没有任何一个是因为深度学习的底层数学存在某种漏洞。一般而言,在有足够的大数据集时,深度学习是一种用于优化表征输入与输出之间的映射的复杂系统的完美方法。


真正的问题在于误解深度学习擅长做什么以及不擅长做什么。这项技术擅长解决封闭式的分类问题,即在具备足够多的可用数据以及测试集与训练集接近相似时,将大量潜在的信号映射到有限数量的分类上。


偏离这些假设可能会导致问题出现;深度学习只是一种统计技术,而所有的统计技术在偏离假设时都会出问题。


当可用训练数据的量有限或测试集与训练集有重大差异或样本空间很广且有很多全新数据时,深度学习系统的效果就没那么好了。而且在真实世界的限制下,有些问题根本不能被看作是分类问题。比如说,开放式的自然语言理解不应该被视为不同的大型有限句子集合之间的映射,而应该被视为可能无限范围的输入句子与同等规模的含义阵列之间的映射,其中很多内容在之前都没遇到过。在这样的问题中使用深度学习就像是方枘圆凿,只能算是粗略的近似,其它地方肯定有解决方案。


通过考虑我在多年前(1997)做过的一系列实验,可以获得对当前存在错误的直观理解,当时我在一类神经网络(之后在认知科学中变得很流行)上测试了语言开发的一些简单层面。这种网络比现今的模型要更简单,他们使用的层不大于三个(1 个输入层、1 个隐藏层、1 个输出层),并且没有使用卷积技术。他们也使用了反向传播技术。


在语言中,这个问题被称为泛化(generalization)。当我听到了一个句子「John pilked a football to Mary」,我可以从语法上推断「John pilked Mary the football」,如果我知道了 pilk 是什么意思,我就可以推断一个新句子「Eliza pilked the ball to Alec」的含义,即使是第一次听到。


我相信将语言的大量问题提取为简单的例子在目前仍然受到关注,我在恒等函数 f(x) = x 上运行了一系列训练三层感知机(全连接、无卷积)的实验。


训练样本被表征二进制数字的输入节点(以及相关的输出节点)进行表征。例如数字 7,在输入节点上被表示为 4、2 和 1。为了测试泛化能力,我用多种偶数集训练了网络,并用奇数和偶数输入进行了测试。


我使用了多种参数进行了实验,结果输出都是一样的:网络可以准确地应用恒等函数到训练过的偶数上(除非只达到局部最优),以及一些其它的偶数,但应用到所有的奇数上都遭遇了失败,例如 f(15)=14。


大体上,我测试过的神经网络都可以从训练样本中学习,并可以在 n 维空间(即训练空间)中泛化到这些样本近邻的点集,但它们不能推断出超越该训练空间的结果。


奇数位于该训练空间之外,网络无法将恒等函数泛化到该空间之外。即使添加更多的隐藏单元或者更多的隐藏层也没用。简单的多层感知机不能泛化到训练空间之外(Marcus, 1998a; Marcus, 1998b; Marcus, 2001)。


上述就是当前深度学习网络中的泛化挑战,可能会存在二十年。本文提到的很多问题——数据饥饿(data hungriness)、应对愚弄的脆弱性、处理开放式推断和迁移的问题,都可以看作是这个基本问题的扩展。当代神经网络在与核心训练数据接近的数据上泛化效果较好,但是在与训练样本差别较大的数据上的泛化效果就开始崩塌。


广泛应用的卷积确保特定类别的问题(与我的身份问题类似)的解决:所谓的平移不变性,物体在位置转换后仍然保持自己的身份。但是该解决方案并不适用于所有问题,比如 Lake 近期的展示。(数据增强通过扩展训练样本的空间,提供另一种解决深度学习外插挑战的方式,但是此类技术在 2d 版本中比在语言中更加有效。)


目前深度学习中没有针对泛化问题的通用解决方案。出于该原因,如果我们想实现通用人工智能,就需要依赖不同的解决方案。


4. 过度炒作的潜在风险


当前 AI 过度炒作的一个最大风险是再一次经历 AI 寒冬,就像 1970 年代那样。尽管现在的 AI 应用比 1970 年代多得多,但炒作仍然是主要担忧。当吴恩达这样的高知名度人物在《哈佛商业评论》上撰文称自动化即将到来(与现实情况有很大出入),过度预期就带来了风险。机器实际上无法做很多普通人一秒内就可以完成的事情,从理解世界到理解句子。健康的人类不会把乌龟错认成步枪或把停车牌认成冰箱。


大量投资 AI 的人最后可能会失望,尤其是自然语言处理领域。一些大型项目已经被放弃,如 Facebook 的 M 计划,该项目于 2015 年 8 月启动,宣称要打造通用个人虚拟助手,后来其定位下降为帮助用户执行少数定义明确的人物,如日历记录。


可以公平地说,聊天机器人还没有达到数年前炒作中的预期。举例来说,如果无人驾驶汽车在大规模推广后被证明不安全,或者仅仅是没有达到很多承诺中所说的全自动化,让大家失望(与早期炒作相比),那么整个 AI 领域可能会迎来大滑坡,不管是热度还是资金方面。我们或许已经看到苗头,正如 Wired 最近发布的文章《After peak hype, self-driving cars 14 enter the trough of disillusionment》中所说的那样(http://ift.tt/2Cxgtbj


还有很多其他严重的担忧,不只是末日般的场景(现在看来这似乎还是科幻小说中的场景)。我自己最大的担忧是 AI 领域可能会陷入局部极小值陷阱,过分沉迷于智能空间的错误部分,过于专注于探索可用但存在局限的模型,热衷于摘取易于获取的果实,而忽略更有风险的「小路」,它们或许最终可以带来更稳健的发展路径。


我想起了 Peter Thiel 的著名言论:「我们想要一辆会飞的汽车,得到的却是 140 个字符。」我仍然梦想着 Rosie the Robost 这种提供全方位服务的家用机器人,但是现在,AI 六十年历史中,我们的机器人还是只能玩音乐、扫地和广告竞价。


没有进步就是耻辱。AI 有风险,也有巨大的潜力。我认为 AI 对社会的最大贡献最终应该出现在自动科学发现等领域。但是要想获得成功,首先必须确保该领域不会陷于局部极小值。


5. 什么会更好?


尽管我勾画了这么多的问题,但我不认为我们需要放弃深度学习。相反,我们需要对其进行重新概念化:它不是一个普遍的解决办法,而仅仅只是众多工具中的一个。我们有电动螺丝刀,但我们还需要锤子、扳手和钳子,因此我们不能只提到钻头、电压表、逻辑探头和示波器。


在感知分类方面,如果有大量的数据,那么深度学习就是一个有价值的工具。但在其它更官方的认知领域,深度学习通常并不是那么符合要求。那么问题是,我们的方向应该是哪?下面有四个可能的方向。


5.1 无监督学习


最近深度学习先驱 Geoffrey Hinton 和 Yann LeCun 都表明无监督学习是超越有监督、少数据深度学习的关键方法。但是我们要清楚,深度学习和无监督学习并不是逻辑对立的。深度学习主要用于带标注数据的有监督学习,但是也有一些方法可以在无监督环境下使用深度学习。但是,许多领域都有理由摆脱监督式深度学习所要求大量标注数据。


无监督学习是一个常用术语,往往指的是几种不需要标注数据的系统。一种常见的类型是将共享属性的输入「聚类」在一起,即使没有明确标记它们为一类也能聚为一类。Google 的猫检测模型(Le et al., 2012)也许是这种方法最突出的案例。


Yann LeCun 等人提倡的另一种方法(Luc, Neverova, Couprie, Verbeek, & LeCun, 2017)起初并不会相互排斥,它使用像电影那样随时间变化的数据而替代标注数据集。直观上来说,使用视频训练的系统可以利用每一对连续帧替代训练信号,并用来预测下一帧。因此这种用第 t 帧预测第 t+1 帧的方法就不需要任何人类标注信息。


我的观点是,这两种方法都是有用的(其它一些方法本文并不讨论),但是它们本身并不能解决第 3 节中提到的问题。这些系统还有一些问题,例如缺少了显式的变量。而且我也没看到那些系统有开放式推理、解释或可调式性。


也就是说,有一种不同的无监督学习概念,它虽然很少有人讨论,但是仍然非常有意思:即儿童所进行的无监督学习。孩子们通常会为自己设置一个新的任务,比如搭建一个乐高积木塔,或者攀爬通过椅子的窗口。通常情况下,这种探索性的问题涉及(或至少似乎涉及)解决大量自主设定的目标(我该怎么办?)和高层次的问题求解(我怎么把我的胳膊穿过椅子,现在我身体的其他部分是不是已经通过了?),以及抽象知识的整合(身体是如何工作的,各种物体有哪些窗口和是否可以钻过去等等)。如果我们建立了能设定自身目标的系统,并在更抽象的层面上进行推理和解决问题,那么人工智能领域将会有重大的进展。


5.2 符号处理和混合模型的必要性


另一个我们需要关注的地方是经典的符号 AI,有时候也称为 GOFAI(Good Old-Fashioned AI)。符号 AI 的名字来源于抽象对象可直接用符号表示这一个观点,是数学、逻辑学和计算机科学的核心思想。像 f = ma 这样的方程允许我们计算广泛输入的输出,而不管我们以前是否观察过任何特定的值。计算机程序也做着同样的事情(如果变量 x 的值大于变量 y 的值,则执行操作 a)。


符号表征系统本身经常被证明是脆弱的,但是它们在很大程度上是在数据和计算能力比现在少得多的时代发展起来的。如今的正确之举可能是将善于感知分类的深度学习与优秀的推理和抽象符号系统结合起来。人们可能会认为这种潜在的合并可以类比于大脑;如初级感知皮层那样的感知输入系统好像和深度学习做的是一样的,但还有一些如 Broca 区域和前额叶皮质等领域似乎执行更高层次的抽象。大脑的能力和灵活性部分来自其动态整合许多不同计算法的能力。例如,场景感知的过程将直接的感知信息与关于对象及其属性、光源等复杂抽象的信息无缝地结合在一起。


现已有一些尝试性的研究探讨如何整合已存的方法,包括神经符号建模(Besold et al., 2017)和最近的可微神经计算机(Graves et al., 2016)、通过可微解释器规划(Bošnjak, Rocktäschel, Naradowsky, & Riedel, 2016)和基于离散运算的神经编程(Neelakantan, Le, Abadi, McCallum, & Amodei, 2016)。虽然该项研究还没有完全扩展到如像 full-service 通用人工智能那样的探讨,但我一直主张(Marcus, 2001)将更多的类微处理器运算集成到神经网络中是非常有价值的。


对于扩展来说,大脑可能被视为由「一系列可重复使用的计算基元组成 - 基本单元的处理类似于微处理器中的一组基本指令。这种方式在可重新配置的集成电路中被称为现场可编程逻辑门阵列」,正如我在其它地方(Marcus,Marblestone,&Dean,2014)所论述的那样,逐步丰富我们的计算系统所建立的指令集会有很大的好处。


5.3 来自认知和发展心理学的更多洞见


另一个有潜在价值的领域是人类认知(Davis & Marcus, 2015; Lake et al., 2016; Marcus, 2001; Pinker & Prince, 1988)。机器没有必要真正取代人类,而且这极易出错,远谈不上完美。但是在很多领域,从自然语言理解到常识推理,人类依然具有明显优势。借鉴这些潜在机制可以推动人工智能的发展,尽管目标不是、也不应该是精确地复制人类大脑。


对很多人来讲,从人脑的学习意味着神经科学;我认为这可能为时尚早。我们还不具备足够的神经科学知识以真正利用反向工程模拟人脑。人工智能可以帮助我们破译大脑,而不是相反。


不管怎样,它同时应该有来自认知和发展心理学的技术与见解以构建更加鲁棒和全面的人工智能,构建不仅仅由数学驱动,也由人类心理学的线索驱动的模型。


理解人类心智中的先天机制可能是一个不错的开始,因为人类心智能作为假设的来源,从而有望助力人工智能的开发;在本论文的姊妹篇中(Marcus,尚在准备中),我总结了一些可能性,有些来自于我自己的早期研究(Marcus, 2001),另一些则来自于 Elizabeth Spelke 的研究(Spelke & Kinzler, 2007)。来自于我自己的研究的那些重点关注的是表示和操作信息的可能方式,比如用于表示一个类别中不同类型和个体之间不同变量和差异的符号机制;Spelke 的研究则关注的是婴儿表示空间、时间和物体等概念的方式。


另一个关注重点可能是常识知识,研究方向包括常识的发展方式(有些可能是因为我们的天生能力,但大部分是后天学习到的)、常识的表示方式以及我们如何将常识用于我们与真实世界的交互过程(Davis & Marcus, 2015)。Lerer 等人(2016)、Watters 及其同事(2017)、Tenenbaum 及其同事(Wu, Lu, Kohli, Freeman, & Tenenbaum, 2017)、Davis 和我(Davis, Marcus, & Frazier-Logue, 2017)最近的研究提出了一些在日常的实际推理领域内思考这一问题的不同方法。


第三个关注重点可能是人类对叙事(narrative)的理解,这是一个历史悠久的概念,Roger Schank 和 Abelson 在 1977 年就已提出,并且也得到了更新(Marcus, 2014; Kočiský et al., 2017)。


5.4. 更大的挑战


不管深度学习是保持当前形式,还是变成新的东西,抑或被替代,人们也许认为大量的挑战问题会将系统推进到有监督学习无法通过大型数据集学习到知识。以下是一些建议,它们部分摘自最近一期的《AI Magazine》特刊(Marcus, Rossi, Veloso - AI Magazine, & 2016, 2016),该杂志致力于超越我和 Francesca Rossi、Manuelo Veloso 一起编辑的杂志《Turing Test》:


  • 理解力挑战(Paritosh & Marcus, 2016; Kočiský et al., 2017)需要系统观看一个任意的视频(或者阅读文本、听广播),并就内容回答开放问题(谁是主角?其动机是什么?如果对手成功完成任务,会发生什么?)。没有专门的监督训练集可以涵盖所有可能的意外事件;推理和现实世界的知识整合是必需的。
  • 科学推理与理解,比如艾伦人工智能研究所的第 8 级的科学挑战(Schoenick, Clark, Tafjord, P, & Etzioni, 2017; Davis, 2016)。尽管很多基本科学问题的答案可轻易从网络搜索中找到,其他问题则需要清晰陈述之外的推理以及常识的整合。
  • 一般性的游戏玩法(Genesereth, Love, & Pell, 2005),游戏之间可迁移(Kansky et al., 2017),这样一来,比如学习一个第一人称的射击游戏可以提高带有完全不同图像、装备等的另一个游戏的表现。(一个系统可以分别学习很多游戏,如果它们之间不可迁移,比如 DeepMind 的 Atari 游戏系统,则不具备资格;关键是要获取累加的、可迁移的知识。)
  • 物理具化地测试一个人工智能驱动的机器人,它能够基于指示和真实世界中与物体部件的交互而不是大量试错,来搭建诸如从帐篷到宜家货架这样的系统(Ortiz Jr, 2016)。


没有一个挑战可能是充足的。自然智能是多维度的(Gardner, 2011),并且在世界复杂度给定的情况下,通用人工智能也必须是多维度的。


通过超越感知分类,并进入到推理与知识的更全面整合之中,人工智能将会获得巨大进步。


6.结语


为了衡量进步,有必要回顾一下 5 年前我写给《纽约客》的一篇有些悲观的文章,推测「深度学习只是构建智能机器面临的 15 个更大挑战的一部分」,因为「这些技术缺乏表征因果关系(比如疾病与症状)的方法」,并在获取「兄弟姐妹」或「相同」等抽象概念时面临挑战。它们没有执行逻辑推理的显式方法,整合抽象知识还有很长的路要走,比如对象信息是什么、目标是什么,以及它们通常如何使用。


正如我们所见,尽管特定领域如语音识别、机器翻译、棋盘游戏等方面出现重大进展,尽管在基础设施、数据量和算力方面的进展同样令人印象深刻,但这些担忧中的很多依然存在。


有趣的是,去年开始不断有其他学者从不同方面开始强调类似的局限,这其中有 Brenden Lake 和 Marco Baroni (2017)、François Chollet (2017)、Robin Jia 和 Percy Liang (2017)、Dileep George 及其他 Vicarious 同事 (Kansky et al., 2017)、 Pieter Abbeel 及其 Berkeley 同僚 (Stoica et al., 2017)。


也许这当中最著名的要数 Geoffrey Hinton,他勇于做自我颠覆。上年 8 月接受 Axios 采访时他说自己「深深怀疑」反向传播,因为他对反向传播对已标注数据集的依赖性表示担忧。

相反,他建议「开发一种全新的方法」。与 Hinton 一样,我对未来的下一步走向深感兴奋。


]]> 原文: http://ift.tt/2AbXWeq
RSS Feed

机器知心

IFTTT

2018年1月2日星期二

Visual Informatics文章推荐


迎元旦,贺新年,Visual Informatics 推出元旦特辑,今天小编为您推荐2017年VI引用次数最多的4篇文章。(数据来源:Google scholar)


1、机器学习模型的可视分析


Shixia Liu, Xiting Wang, Mengchen Liu, Jun Zhu


【摘要】背景:交互式模型分析是一个借助交互可视化技术来理解、诊断和改进机器学习模型的过程,它可以帮助用户有效地解决现实世界中的人工智能和数据挖掘问题。大数据分析技术的迅速发展引发了各种各样的交互式模型分析任务。


贡献:我们对这一迅速发展的领域进行了全面的分析,将相关工作划分为三类:理解、诊断和改进。每一类都以最近有影响力的工作为例,同时探讨了今后潜在的研究方向。


【关键词】交互模型分析、交互式可视化、机器学习、理解、诊断、精炼




【引用文本】 Shixia Liu, Xiting Wang, Mengchen Liu, Jun Zhu. Towards better analysis of machine learning models: A visual analytics perspective[J]. Vis Infor, 2017, 1(1): 48-56.


【DOI】10.1016/j.visinf.2017.01.006



2、3D打印中的无支撑内部镂空


Yue Xie, Xiang Chen


【摘要】背景:为满足功能设计的需要,一些产品内部需要镂空,其制造过程常涉及麻烦的切割和粘合处理。


创新:本文提出了一种生成内部空腔的方法,不仅可满足功能设计的要求,而且在3D打印过程中无需支撑。具体而言,我们引入了一种无需支撑的单元结构来进行体素化,并提出了一种壁厚参数化方法以支持连续优化。此外还设计了一个离散抖动算法来打印鬼影体素(ghost voxel),通过交替优化和抖动来迭代地实现产品内部镂空。我们运用该方法优化了产品的静态和旋转稳定性,并打印了各种结果来检验算法的功效。


【关键词】内部镂空;无支撑;体素抖动;形状优化;3D打印



【引用文本】 Yue Xie, Xiang Chen. Support-free interior carving for 3D printing[J]. Vis Infor, 2017, 1(1): 9-15


【DOI】10.1016/j.visinf.2017.01.002.


3、计算机图形学和计算机视觉中瞬态成像的研究进展


Adrian Jarabo, Belen Masia, Julio Marco, Diego Gutierrez


【摘要】背景:瞬态成像技术对计算机图形学和计算机视觉领域产生了巨大的影响。通过以极高的时间分辨率捕捉、重建或模拟光的传输过程,研究人员提出了若干新的技术来显示运动中的光影、查看周边的角落、检测位于高散射介质中的对象或远程推断材料特性等等。其关键思想是开发和利用时间域在皮秒或纳秒分辨率下的大量信息,而这些信息通常在捕获时的信息整合过程中丢失。

贡献:本文从图形和计算机视觉的角度介绍了瞬态成像技术的最新进展,包括捕获技术、分析、应用和仿真。


【关键词】瞬态成像,超快成像,飞行时间



【引用文本】 Adrian Jarabo, Belen Masia, Julio Marco, Diego Gutierrez. Recent advances in transient imaging: A computer graphics and vision perspective[J]. Vis Infor, 2017, 1(1): 65-79.


【DOI】10.1016/j.visinf.2017.01.008



4、采用交互式时间掩码探索运动和事件数据


Natalia Andrienko, Gennady Andrienko, Elena Camossi, Christophe Claramunt, Jose Manuel Cordero Garcia, Georg Fuchs, Melita Hadzagic, Anne-Laure Jousselme, Cyril Ray, David Scarlatti, George Vouros


【摘要】创新:本文提出了时间掩码的概念,可用来选取符合某些查询条件的多个不相交的时间区段。这种基于时间掩码的过滤器适用于以时间为基准的对象,例如事件和轨迹。所选取的对象或区段可以按不同的方式动态地进行概括,并以可视化的方式呈现在图和/或其它显示器上,供进一步研究。时间掩码过滤器对分析多源异构数据(例如,事件记录、移动对象的位置和测量的时间序列)尤为有用。为了检测这些数据之间的关系,分析师可以基于其中一个数据集设置一定的查询条件,然后查找与这些条件同时发生的其它数据集中的那些对象和数据值。


案例证明:通过对航空和海上交通相关的两个真实数据集的分析,证明了时间掩码过滤器的实用性。


【关键词】数据可视化 交互可视化 交互技术




【引用文本】 Natalia Andrienko, Gennady Andrienko, Elena Camossi, Christophe Claramunt, Jose Manuel Cordero Garcia, Georg Fuchs, Melita Hadzagic, Anne-Laure Jousselme, Cyril Ray, David Scarlatti, George Vouros. Visual exploration of movement and event data with interactive time masks[J]. Vis Infor, 2017, 1(1): 25-39.


【DOI】10.1016/j.visinf.2017.01.004


]]> 原文: http://ift.tt/2lHWrQI
RSS Feed

机器知心

IFTTT

LangChain 彻底重写:从开源副业到独角兽,一次“核心迁移”干到 12.5 亿估值 -InfoQ 每周精要No.899期

「每周精要」 NO. 899 2025/10/25 头条 HEADLINE LangChain 彻底重写:从开源副业到独角兽,一次"核心迁移"干到 12.5 亿估值 精选 SELECTED 1000 行代码手搓 OpenAI gpt-oss 推理引...