加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

给人工智能降点温:深度学习不是万能良药

发布时间:2018-04-06 18:47:36 所属栏目:大数据 来源:站长网
导读:副标题#e# 近几年,深度学习已经进入一定程度的狂热状态,人们正试图用这个技术解决每一个问题。然而,深度学习真是万能的吗?阅读此文后,你便能够从深层理解为什么深度学习并不是想象的那般神话了。 近日,在深度学习领域出现了一场热烈的争论。这一切都

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

2

随机梯度下降根据学习速率或批尺寸来选择较大或狭义最小值

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

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

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

低预算或低投资问题

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

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

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

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

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

建立因果机制

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

学习“非结构化”特征

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

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

深度学习是未来

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

3

Edward 通过将概率规划与 tensorflow 结合,将深度学习和贝叶斯的模型考虑在内。

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读