爱吧机器人网 » 专题 > 观点 > 正文

给人工智能降降温:深度学习并非万能良药

  近几年,深度学习已经进入一定程度的狂热状态,人们正试图用这个技术解决每一个问题。似乎谈人工智能就是在谈深度学习,然而,深度学习真是万能的吗,深度学习就可以代表人工智能了吗?阅读此文后,你便能够从深层理解为什么深度学习并不是想象的那般“神话”了。

  写在前面

  近日,在深度学习领域出现了一场热烈的争论。这一切都要从JeffLeek在SimplyStats上发表了一篇题为《数据量不够大,别玩深度学习》(Don'tusedeeplearningyourdataisn'tthatbig)的博文开始。作者JeffLeek在这篇博文中指出,当样本数据集很小时(这种情况在生物信息领域很常见),即使有一些层和隐藏单元,具有较少参数的线性模型的表现是优于深度网络的。为了证明自己的论点,Leek举了一个基于MNIST数据库进行图像识别的例子,分辨0或者1。他还表示,当在一个使用仅仅80个样本的MNIST数据集中进行0和1的分类时,一个简单的线性预测器(逻辑回归)要比深度神经网络的预测准确度更高。

  这篇博文的发表引起了领域内的争论,哈佛大学药学院的生物医药信息学专业博士后AndrewBeam写了篇文章来反驳:《就算数据不够大,也能玩深度学习》(Youcanprobablyusedeeplearningevenifyourdataisn'tthatbig)。AndrewBeam指出,即使数据集很小,一个适当训练的深度网络也能击败简单的线性模型。

  如今,越来越多的生物信息学研究人员正在使用深度学习来解决各种各样的问题,这样的争论愈演愈烈。这种炒作是真的吗?还是说线性模型就足够满足我们的所有需求呢?结论一如既往——要视情况而定。在这篇文章中,作者探索了一些机器学习的使用实例,在这些实例中使用深度学习并不明智。并且解释了一些对深度学习的误解,作者认为正是这些错误的认识导致深度学习没有得到有效地使用,这种情况对于新手来说尤其容易出现。

  打破深度学习偏见

  首先,我们来看看许多外行者容易产生的偏见,其实是一些半真半假的片面认识。主要有两点,其中的一点更具技术性,我将详细解释。

  深度学习在小样本集上也可以取得很好的效果

  深度学习是在大数据的背景下火起来的(第一个谷歌大脑项目向深度神经网络提供了大量的Youtube视频),自从那以后,绝大部分的深度学习内容都是基于大数据量中的复杂算法。

  然而,这种大数据+深度学习的配对不知为何被人误解为:深度学习不能应用于小样本。如果只有几个样例,将其输入具有高参数样本比例的神经网络似乎一定会走上过拟合的道路。然而,仅仅考虑给定问题的样本容量和维度,无论有监督还是无监督,几乎都是在真空中对数据进行建模,没有任何的上下文。

  可能的数据情况是:你拥有与问题相关的数据源,或者该领域的专家可以提供的强大的先验知识,或者数据可以以非常特殊的方式进行构建(例如,以图形或图像编码的形式)。所有的这些情况中,深度学习有机会成为一种可供选择的方法——例如,你可以编码较大的相关数据集的有效表示,并将该表示应用到你的问题中。

  这种典型的示例常见于自然语言处理,你可以学习大型语料库中的词语嵌入,例如维基百科,然后将他们作为一个较小的、较窄的语料库嵌入到一个有监督任务中。极端情况下,你可以用一套神经网络进行联合学习特征表示,这是在小样本集中重用该表示的一种有效方式。这种方法被称作“一次性学习”(one-shotlearning),并且已经成功应用到包括计算机视觉和药物研发在内的具有高维数据的领域。
药物研发中的一次性学习网络
  药物研发中的一次性学习网络

  深度学习不是一切的答案

  我听过最多的第二个偏见就是过度宣传。许多尚未入门该领域的人,仅仅因为深度神经网络在其它领域的出色表现,就期待它也能为他们带来神话般的表现提升。其他人则从深度学习在图像、音乐和语言(与人类关系密切的三种数据类型)处理领域的令人印象深刻的表现中受到启发,于是就头脑发热地钻入该领域,迫不及待地尝试训练最新的GAN结构。

  当然,这种大肆吹捧在很多方面是真实存在的。深度学习在机器学习中的地位不可小觑,也是数据建模方法库的重要工具。它的普及带动了诸如tensorflow和pytorch等许多重要框架的发展,它们即使是在深度学习之外也是十分有用的。失败者崛起成为超级巨星的故事激励了许多研究员重新审视以前的模糊算法,如进化算法和增强学习。

  但任何情况下也不能认为深度学习是万能良药。除了“天下没有免费的午餐”这点之外,深度学习模型是非常微妙的,并且需要仔细甚至非常耗时耗力的超参数搜索、调整,以及测试(文章后续有更多讲解)。除此之外,在很多情况下,从实践的角度来看,使用深度学习是没有意义的,更简单的模型反而能获得更好的效果。

  深度学习不仅仅是.fit()

  深度学习模型从机器学习的其他领域传来时,我认为还有另外一个方面经常被忽略。大多数深度学习的教程和介绍材料都将模型描述为通过层次方式进行连接的节点层组成,其中第一层是输入,最后一层是输出,并且你可以用某种形式的随机梯度下降(SGD)方法来训练网络。有些材料会简单介绍随机梯度下降是如何工作的,以及什么是反向传播,但大部分介绍主要关注的是丰富的神经网络类型(卷积神经网络,循环神经网络等等)。

  而优化方法本身却很少受到关注,这是很不幸的,因为深度学习为什么能够起到很大的作用,绝大部分原因就是这些特殊的优化方法(具体论述可以参考FerencHuszár的博客以及博客中引用的论文)。了解如何优化参数,以及如何划分数据,从而更有效地使用它们以便在合理时间内使网络获得良好的收敛,是至关重要的。

  不过,为什么随机梯度下降如此关键还是未知的,但是现在线索也正零星出现。我倾向于将该方法看成是贝叶斯推理的一部分。实质上,在你进行某种形式的数值优化时,你都会用特定的假设和先验来执行一些贝叶斯推理。其实有一个被称做概率数值计算(probabilisticnumerics)的完整研究领域,就是从这个观点开始的。随机梯度下降也是如此,最新的研究成果表明,该过程实际上是一个马尔科夫链,在特定假设下,可以看作是后向变分近似的稳态分布。

  所以当你停止随机梯度下降,并采用最终的参数时,基本上是从这个近似分布中抽样得到的。我认为这个想法很有启发性,因为这样一来,优化器的参数(这里是指学习率)就更有意义了。例如,当你增加随机梯度下降的学习参数时,马尔可夫链就会变得不稳定,直到它找到大面积采样的局部最小值,这样一来,就增加了程序的方差。

  另一方面,如果减少学习参数,马尔科夫链可以慢慢的近似到狭义极小值,直到它收敛,这样就增加了某个特定区域的偏置。而另一个参数,随机梯度下降的批次大小,也可以控制算法收敛的区域是什么类型,小的批次收敛到较大区域,大的批次收敛到较小区域。
随机梯度下降根据学习速率或批尺寸来选择较大或狭义最小值
  随机梯度下降根据学习速率或批尺寸来选择较大或狭义最小值

  这样的复杂性意味着深度网络的优化器非常重要:它们是模型的核心部分,与层架构一样重要。这一点在机器学习的许多其他模型中并不常见。线性模型(甚至是正则化的,像LASSO算法)以及支持向量机(SVM)都是凸优化问题,没有太多细微差别,并且只有一个最优解。这也就是为什么来自其它领域的研究人员在使用诸如scikit-learn这样的工具时会感到困惑,因为他们发现找不到简单地提供。fit()函数的API(尽管现在有些工具,例如skflow,试图将简单的网络置入。fit()中,我认为这有点误导,因为深度学习的全部重点就是其灵活性)。

  什么时候不需要深度学习?

  在什么情况下深度学习不是最理想的呢?在我看来,以下情况中,深度学习更多是一种阻碍,而不是福音。

  低预算或低投资问题

  深度网络是十分灵活的模型,有多种多样的结构和节点模型、优化器以及正则化方法。根据应用场景,你的模型或许要有卷积层(层尺寸多宽?有没有池化操作?),或者循环结构(有没有门控单元?);网络可能真的很深(hourglass,siamese,或其他结构?)还是只是具有很少的几个隐藏层(有多少单元?);它可能使用整流线性单元或其他激活函数;它可能会或可能不会有随机丢弃(在哪一层中?用什么比例?),并且权重应该是正则化的(L1、L2,或者是某些更奇怪的正则化方法?)。这只是一部分列表,还有很多其他类型的节点、连接,甚至损失函数可以去尝试。

  即便只是训练大型网络的一个实例,调整许多超参数以及探索框架的过程也是非常耗时的。谷歌最近宣称自己的AutoML方法可以自动找到最好的架构,令人印象深刻,但仍然需要超过800个GPU全天候运行数周,这对于任何人来说几乎都是遥不可及的。关键在于训练深度网络时,在计算和调试部分都会花费巨大的代价。这种消耗对于许多日常预测问题并没有意义,并且调整深度网络的投资回报率太低,即使是调整小型网络。即使有足够的预算和投资,也没有理由不尝试替代方法,哪怕作为基准测试。你可能会惊喜地发现,线性SVM就够用了。

  解释和传达模型参数或特征对一般受众的重要性

  深度网络也是很有名的黑匣子,它具有高预测能力但可解释性不足。尽管最近有很多工具,诸如显著图(saliencymaps)和激活差异(activationdifference),它们对某些领域而言是非常有用的,但它们不会完全被应用到所有的应用中。主要是,当你想要确保网络不会通过记住数据集或专注于特定的虚假特征来欺骗你时,这些工具就能很好地工作,但仍然难以从每个特征的重要性解读出深度网络的整体决策。在这个领域,没有什么能够真正地打败线性模型,因为学习得到的系数与响应有着直接的关系。当将这些解释传达给一般受众,并且他们需要基于此做出决策时,这就显得尤为重要。

  例如,医生需要结合各种不同的数据来确认诊断结果。变量和结果之间的关系越简单、越直接,医生就能更好地利用,而不是低估或高估实际值。此外,有些情况下,模型(尤其是深度网络)的精度并不像可解释性那样重要。例如,政策制定者可能想知道一些人口统计变量对于死亡率的影响,并且相较于预测的准确性来说,可能对这种关系的直接近似更有兴趣。在这两种情况下,与更简单、更易渗透的方法相比,深度学习处于不利地位。

  建立因果机制

  模型可解释性的极端情况是当我们试图建立一个机械模型,即实际捕捉数据背后现象的模型。一个好的例子包括试图猜测两个分子(例如药物、蛋白质、核酸等)是否在特定的细胞环境中相互产生影响,或者假设特定的营销策略是否对销售产生实际的影响。在这个领域,根据专家意见,没有什么可以击败老式的贝叶斯方法,它们是我们表示并推断因果关系的最好方式。Vicarious有一些很好的最新研究成果,说明为什么这个更有原则性的方法在视频游戏任务中比深度学习表现得更好。

  学习“非结构化”特征

  这可能是具有争议性的。我发现深度学习擅长的一个领域是为特定任务找到有用的数据表示。一个很好的例子就是上述的词语嵌入。自然语言具有丰富而复杂的结构,与“上下文感知”(context-aware)网络相近似:每个单词都可以通过向量来表示,而这个向量可以编码其经常出现的文本。在NLP任务中使用在大型语料库中学习的单词嵌入,有时可以在另一个语料库的特定任务中提升效果。然而,如果所讨论的语料库是完全非结构化的,它可能不会起到任何作用。

  例如,假设你正在通过查看关键字的非结构化列表来对对象进行分类,由于关键字不是在任何特定结构中都会使用的(比如在一个句子中),所以单词嵌入不会对这些情况有太大帮助。在这种情况下,数据是一个真正的“词袋”(bagofwords),这种表示很有可能足以满足任务所需。与此相反的是,如果你使用预训练的话,单词嵌入并不是那么耗费时力,而且可以更好地捕获关键字的相似度。不过,我还是宁愿从“词袋”表示开始,看看能否得到很好的预测结果。毕竟,这个“词袋”的每个维度都比对应的词嵌入槽更容易解读。

  深度学习是未来

  深度学习目前非常火爆,资金充足,并且发展异常迅速。当你还在阅读会议上发表的论文时,有可能已经有两、三种新版本可以超越它了。这给我上述列出的几点提出了很大的挑战:深度学习在不久的将来可能在这些情景中是非常有用的。用于解释图像和离散序列的深度学习模型的工具越来越好。最近推出的软件,如Edward将贝叶斯建模和深度网络框架结合,能够量化神经网络参数的不确定性,以及通过概率编程和自动变分推理进行简易贝叶斯推理。从长远来看,可能会有一个简化的建模库,能够给出深度网络具有的显著属性,从而减少需要尝试的参数空间。所以要不断更新你的arXiv阅读内容,这篇博文的内容或许一两个月内也会过时。
Edward 通过将概率规划与 tensorflow 结合,将深度学习和贝叶斯的模型考虑在内
  Edward通过将概率规划与tensorflow结合,将深度学习和贝叶斯的模型考虑在内。

上一篇:浅析AI落地于安防的契机与作用点
下一篇:AI也能作曲?谁来定义AI的Freestyle?
精选推荐
全自动膝关节置换手术机器人被美国FDA批准上市
全自动膝关节置换手术机器人被美国FDA批准上市

[2019-10-14]  美国Think Surgical公司已获得美国食品和药物管理局(FDA)的批准,在美国销售用于全膝关节置换(TKA)的TSolution One®全膝关节应用 ...

CES 2018:英特尔推出49量子位芯片争夺量子霸权
CES 2018:英特尔推出49量子位芯片争夺量子霸权

[2018-01-10]  在与Google、IBM的一场关于建立量子计算系统的马拉松比赛中,英特尔通过了一个关键的里程碑。近日,这个科技巨头已经推出了一个49个量子位 ...

研究人员融合人类与AI的创造力 显著提高了深度学习的表现
研究人员融合人类与AI的创造力 显著提高了深度学习的表现

[2019-10-12]  由加拿大人工智能领域研究主席、滑铁卢大学系统设计工程教授Alexander Wong领导的一个团队开发了一种新型紧凑型神经网络家族,可以在智能 ...

美国喷气推进实验室的AI驱动无人机挑战人类飞行员
美国喷气推进实验室的AI驱动无人机挑战人类飞行员

[2017-12-08]  随着无人机及其组件越来越小,效率越来越高,功能越来越强大,我们已经看到越来越多的研究开始让无人机自主飞行在半结构化的环境中,而不依赖于外部定位。 宾夕法尼亚大学在......

机器人工程师具体都做什么?
机器人工程师具体都做什么?

[2017-12-08]  机器人工程师是幕后设计师,负责创建机器人和机器人系统,能够执行人类无法完成或不愿意完成的任务。 通过他们的创造,机器人工程师帮助工作更安全,更轻松,更高效,特别是......

比利时研发出可以自我愈合伤口的软体机器人
比利时研发出可以自我愈合伤口的软体机器人

[2017-09-03]  软体机器人是机器人技术的新兴领域; 他们“可以与人类相互作用,而不会杀死他们,并拿起像西红柿这样柔软的物体。” 从长远来看,布鲁塞尔大学队伍正在努力创建一个类似的材......

科学家从蟑螂获得启发 教机器人更好地走路
科学家从蟑螂获得启发 教机器人更好地走路

[2017-12-11]  Weihmann指出:“我特别感到惊讶的是,动物运动稳定机制的变化与腿部协调的变化是一致的。昆虫的慢运行非常稳定,因为它的重心很低,三条腿总是以协调的方式运动。...

谷歌《Nature》发论文称实现量子霸权 18亿倍速碾压世界最强超算
谷歌《Nature》发论文称实现量子霸权 18亿倍速碾压世界最强超算

[2019-10-23]  谷歌坚称自己已经取得了量子霸权——这标志着计算研究领域的一个重要里程碑。谷歌首次发布声明是在今年9月,虽然遭到竞争对手的质疑,但就 ...

本周栏目热点

李开复:关于人工智能在中国异军突起的六大主要原因

[2017-11-07]  虽然世界各个国家都已经开始加速对人工智能行业进行布局,虽然世界各国都已经出台了各种政策表示对人工智能的支持,但是就目前的发展形势来看,中美两国在人工智能领域的发展......

[2018-02-05]  “人工智能国际主流学界所持的目标是弱人工智能,也少有人致力于强人工智能。那么,这是不是因为强人工智能‘太难’,所以大家‘退而求其次’呢?不然。事实上,绝大多数人工......

阿里研究院:关于互联网+制造业的10个观点(组图)

[2015-12-29]     互联网对商业环节的渗透和改造是逆向的,从与消费者最近的广告营销端开始, ...

2020年中国AI基础数据服务行业发展报告

[2020-04-03]  核心摘要:目前人工智能商业化在算力、算法和技术方面基本达到阶段性成熟,想要更加落地,解决行业具体痛点, 需要大量经过标注处理的相关 ...

【业界观点】2016年工业机器人需求增速将放缓

[2016-01-19]     2015年中国工业机器人需求规模达到109亿元,同比增长16%,而2016年机器人需 ...