美文网首页深度学习机器学习与数据挖掘深度学习-推荐系统-CV-NLP
被捧上天的深度学习,遇到这些问题根本干不过简单模型

被捧上天的深度学习,遇到这些问题根本干不过简单模型

作者: AI科技大本营 | 来源:发表于2017-07-11 14:55 被阅读484次

    今天我们来唱唱反调,推荐一篇Hacker News和Reddit的双料热文《什么时候不能用深度学习》。

    作者 | Pablo Cordero

    翻译 | reason_W

    前段时间,AI科技大本营讨论过一场关于深度学习应用的争论——【撕起来了!谁说数据少就不能用深度学习?】,某教授认定“没有大数据就不要用深度学习”,这让一位正在辛苦做研究的博士后立时炸了,“只要你能搞懂模型,小数据同样可以用深度学习”。

    对此,另一位博士后实在看不下去了,他认为这些大牛不能瞎忽悠:你们这样争吵,让初学者到底去听谁的?你们还让不让初学者来学深度学习了?

    这个博士后就是加州大学圣克鲁兹分校系统生物组的Pablo Cordero,他正在用机器学习来研究单细胞测量的问题。他认为,当此深度学习越来越多地被用到生物信息学研究之际,大家一定要实事求是向前看,不能让错误的风向吹倒深度学习的大旗。

    毕竟,深度学习不是万能的,更不是万达的。除了“没有免费的午餐”定理,深度学习模型的差别还相当微妙,使用的过程需要非常细心,有时还需要做非常昂贵的超参数搜索、调整与测试。

    因而,从实用的角度看,深度学习在许多情况下并不好用,反而是简单的模型效果更好。在这里,清醒地认识深度学习所不适用的场景,便成为避免争论的关键。Pablo Corder对这类场景的分析如下:

    低预算或低投入问题

    深度神经网络是非常灵活的模型,有着大量的架构和节点类型、优化器与正则化策略。

    根据不同的应用场景:

    你的模型可能会有卷积层(多大?使用什么池化操作?)或循环结构(有或没有门控?);

    它可能真的很深(hourglass、siamese或其他架构?)也可能只有几个隐藏的层(有多少单位?);

    它可能使用整流线性单元或其他激活函数;

    它可能会有或不会有dropout (在什么层次中?用什么分数?),权重很有可能被正则化(L1范数,L2范数,还是其他某种方式?)。

    这只是一部分列表,还需要尝试很多其他类型的节点,连接,甚至损失函数。

    这些都是在训练时需要去调整的超参数,需要去探索的架构,这使得即便只训练一个大型网络都会相当耗时。

    最近Google在吹嘘它的AutoML管道可以自动找出最好的架构,虽说其结果让人印象极深,但该成果是超过800个GPU全天候运行数周才得到的,这种资源可不是每一个人都触手可及的。

    这里的问题不在于深度学习,而在于训练深度网络的计算和调试,它们的开销太大了。对于许多日常问题的预测,这样的开销没有任何意义,因为即便是调整小型网络,它的性价比也实在太低。

    所以,就算你足够的预算和投入,也没有理由不优先尝试替代方法。你很有可能会惊喜地发现,线性SVM才是真正的需求。

    向公众解释模型参数/特征的重要性

    深度神经网络还是一个臭名昭著的黑箱,尽管预测能力很强,但可解释性不足。

    虽说最近有不少工具在某些领域很见效果,如显著图与激活差异性,但它们还不能完全迁移到所有的应用场景中。这主要是在于,当你想确保神经网络不是通过记诵数据集或是专注于特定的虚假特征来欺骗你时,此类工具就能做出效果;但如何把每个特征的重要性解释为深层网络的整体决策,仍旧很难实现

    在这方面,没有什么曾真正的打败过线性模型,因为线性模型的学习系数与响应有直接的关系。当你需要把这些解释传达给需要据此来做决定的普通人时,这尤其重要。

    例如,医生需要结合多种不同的数据来做出诊断。变量和结果之间的关系越简单和越直接,医生利用的效果就越好,而不是低估/高估实际结果。

    此外,有些情况下,模型的准确性(通常这恰恰是深度学习所擅长的)并不像解释性那样重要。

    例如,策略制定者可能想知道一些人口统计变量(比如对死亡率)的影响,并且可能对这种关系的直接近似比对预测的准确性更有兴趣。

    在这两种情况下,与更简单,更易理解的方法相比,深度学习就会处于不利地位。

    建立因果机制

    模型解释的极端情况是当我们试图建立一个物理模型,即一个实际捕获数据背后的现象的模型。 好的例子包括试图猜测两个分子(例如药物,蛋白质,核酸等)是否在特定的细胞环境中相互作用,或者假设特定的营销策略如何对销售产生实际的影响。

    在这个领域,专家们的意见是,没有什么可以超越老式的贝叶斯方法,这是我们最好的(即使不完美的)表示和推断因果关系的方式。

    Vicarious最近做了一个很好的研究,说明了为什么该方法在电子游戏任务的表现上比深度学习效果更好-https://www.vicarious.com/img/icml2017-schemas.pdf

    从“非结构化”特征中学习

    这一点可能还在争论。我发现深度学习擅长的一个领域是为特定任务找到有用的数据表示

    一个很好的例子是刚刚说的词嵌入。自然语言具有丰富而复杂的结构,可以用“上下文感知”网络近似:每个单词都可以在编码了使用频率较高的上下文的向量中进行表示。在大型语料库中学习的NLP任务中使用词嵌入有时可以在另一个语料库的特定任务中提升效果。

    然而,如果所讨论的语料库是完全非结构化的,则可能没有任何用处。例如,假设您正在通过查看关键字的非结构化列表来对对象进行分类。由于关键字没有在任何特定的结构中使用(如在一个句子中),所以词嵌入不太可能对此有所帮助。在这种情况下,数据就是一个词袋,这种表示可能就足以满足任务。

    与此相反的是,如果您使用预训练的话,并且能更好地捕获关键字相似度,那么词嵌入就并不是那么昂贵。不过,我还是宁愿从一个单词的表示开始,看看能否得到很好的预测。毕竟,这个词袋的每个维度都比对应的词嵌入槽更容易解读。

    未来还很深

    深度学习领域炙手可热,资金充足,发展迅猛。当你读到在会议上发表的论文的时候,它已经经过两三次迭代,并且已经不值得推荐了。

    这给我提出的以上几点提了一个很大的醒:在不久的将来,深度学习可能对这些情景来说是非常有用的

    毕竟,用于解释图像和离散序列的深度学习模型的工具正变的越来越好。

    Edward与tensorflow结合进行概率规划,可以使用深度和贝叶斯模型。 摘自Tran et al. ICLR 2017

    像Edward(Google提出的一种深度概率编程语言)这样的新软件,已经在综合使用贝叶斯建模和深度网络框架,以通过概率编程和自动变分推理来量化神经网络参数和简单贝叶斯推断的不确定性。

    从长远来看,可能会出现一个简化的建模词汇表,以揭示深度网络的显著属性,从而缩小你所需要尝试的参数空间。

    所以,请继续刷arXiv吧,本文所谈的内容,可能一两个月后就完全没用了。

    原文地址


    相关文章

      网友评论

        本文标题:被捧上天的深度学习,遇到这些问题根本干不过简单模型

        本文链接:https://www.haomeiwen.com/subject/ivhmhxtx.html