当你的深度学习模型走进死胡同,问问自己这5个问题

安妮 编译自 Semantics3官方博客 量子位 出品 | 公众号 QbitAI

深度学习是一项庞大又复杂的工程,在建立深度学习模型时,走进死胡同被迫从头再来似乎是常事。

近日,Semantics3网站的联合创始人Govind Chandrasekhar在官方博客上发表了一篇文章,讲述了程序员在解决深度学习问题时的应该自问的五个问题。

Semantics3是一家2012年成立的数据科学初创公司,它创建了一个数据库,跟踪产品在网上的销售过程,为零售商提供数据。对于Govind Chandrasekhar写的这篇文章,量子位全文翻译如下:

研究数据科学是一件悲喜交加的事情。喜在当你偶然的发现提高了算法的性能,可能让你拥有持久的兴奋感;悲在你会经常发现自己站在一条单行道的尽头,苦苦探索到底哪里出了问题。

在这篇文章里,我将详述走过无数条深度学习死路后,得到的五个教训。在处理新问题或新方法前,我都会用想想下面这五个问题。

问题一:

先不管神经网络,一个没有先验知识、只受过你的数据集训练的人能解决这个问题吗?

这个问题对解决监督学习的困境尤为受用——这些问题的典型前提是,一个小的高质量数据集(比如N个实体)可以帮助你的模型近似得到一个潜在的功能,之后泛化到包含1000N个实体的整个数据集。

这些方法的好处在于,人类只需要研究很小部分数据就可以了,机器会学会把它运用到大范围的示例中。

但是在现实世界中,问题不总是含有可以被优先识别的模式。人们利用外部常识来解决的认知挑战比我们意识到的还要多,这经常导致我们错误地期望我们的算法在没有常识的情况下能够解决同样的挑战。

举个例子吧,看下面这三种描述:

  1. Pets First Arkansas Dog Jersey, X-Small, Pink
  2. Pets First Arizona Dog Jersey, X-Small, Pink
  3. Pets First AR Dog Jersey, X-Small, Pink

这三组描述中,有两个表示的含义相同,你能找出那个含义不同的吗?

大多数美国人都不难解决这个问题,因为AR=Arkansas,AR!=Arizona是个常识。但是,一个对美国并不熟悉的人,可能就不知道答案是什么了。

你会发现,你创建的神经网络也没有能力解决这个问题,因为在语言应用这方面,没有特定的缩写规则可以供神经网络去模仿。当然指定了Arkansas等同于AR的情况除外。

类似这样的问题还有很多(可能在一开始你并不理解这些问题),并且它们在实际工作中还经常出现。回头审视之前建造的神经网络,并且明确需要补充的新知识是非常困难的。所以,在构建神经网络时,要及时跳出自己的思维定式。

问题二:

你构建的神经网络能通过正确的视角理解你的数据吗?

假设地区的缩写始终是名字的前两个字母,同时这个缩写不会重复。那么,我们再来用不同的示例回看刚刚的匹配问题:

  1. “Pets First Arkansas Dog Jersey, X-Small”
  2. “Pets First Arkansas Dog Jersey, Extra-Small”
  3. “Pets First AR Dog Jersey, X-Small”
  4. “Pets First Arkansas Dog Jersey, Large”
  5. “Pets First MA Dog Jersey, Large”

你的目标是建立一个神经网络用于识别1、2、3等价而4、5不同。这个任务是在考验神经网络对“大小”这个概念理解——它们是否知道X-Small=Extra-Small ?也是在考验它对缩写的理解能力,比如Arkansas=ARkansas=AR因为前两个字母相同,而Arkansas不等于MA,等等。

你可能会通过Word2Vec来构建一个嵌入空间,将 X-Small映射为Extra-Small来解决这个问题。

尽管这种方法是一个标准解法,但可能你会妨碍神经网络找到你想让它学习的内容。如果把AR换成小写的ar,对人类来说就比较难识别了,我们会纠结ar到底指的的Arizona还是are。

同样,如果你选择建立词汇的嵌入空间,有效地将每一个单词映射到唯一的标记,那么你就掐断了神经网络理解组成字符“ARkansans”的机会。

这种模糊网络问题在你构建网络时经常出现,尤其是在建立考虑不同类型的输入信号的模型时。

问题三:

你的网络是在钻你训练集里的牛角尖,还是帮你解决手头的问题?

假设你正在构建一个二分的图像分类器,来检查文档中的文本是计算机打印的还是手写的。为了构建计算机打印文本的训练数据集,你用电脑上的软件直接生成了带文字的jpeg图片;为了获取手写文本的样本,你把这些jpeg图片发送到做数据标注的公司,让他们把这些图片转录成文字,并将扫描成jpeg文件。

之后,就可以运行你的分类器了。不要高兴得太早,虽然目前它的训练准确率已经超过了99%,但当我们用实际场景来测试时,分类器表现并不好。这是为什么呢?

你构建的神经网络可能带有简单的指示性偏差,扫描手写的图片可能带有灰白的背景色,而软件生成的JPEG是纯白色的背景。你的神经网络为了解决你交给它的问题,可能并没有去分析内容、上下文、形状和颜色等要素,而是只抓住了背景色的这一点微小差别。

需要记住的是,你的神经网络永远都不会明白你的大方向,它所做的就是基于手头的目标和数据,以最简单的方式尽快给出一个答案。

彻底审查你的数据集,消除可供神经网络钻牛角尖的特征,可以节约成本和时间。

问题四:

你的网络有兄弟问题可以为它提供支持吗?

在特定领域的问题上,诸如GloVe和Inception之类的预先训练模型可能并不好用。这将迫使你开始随机初始化神经网络,也就意味着可能经过好几天的训练,你还不知道自己的模型效果如何。

你的模型可能还面临着一个问题:数据集太小了或者质量太差了,即使通过旋转、变形等手段扩充之后,也还是达不到训练的要求。

在这种情况下,寻找它的兄弟问题可能是个解决办法。但要注意,这些问题需要符合两个标准:

  • 它们不能和你手头的数据集有同质量和数量的问题。
  • 它们的神经网络需要有一组层,能捕捉到你的模型所需的概念。

问题五:

你的网络是做不到还是懒?如果它懒,如何逼迫它学习?

假如你是一个绘画外行,让你猜测三幅昂贵的绘画作品价格。有三个可用信息可供你查看——作品的年限、作品十年前的价格和这幅画的高分辨率图像。

在没有经过前期训练的情况下,让你完成这个任务,给出尽可能正确的答案,你会怎么办?

你是会报名参加一个为期两月的绘画课程,来学习复杂的绘画技艺,还是会考虑用作品的年限和十年前的价格做一个方程来猜测价格?

即使你能意识到理想的价格方程式包含这三种信息的组合,但你还是很愿意接受一个懒惰的选项:、用两种信息来进行预测。虽然这个选项不是最优解,但也是在能接受范围的。你会更倾向只依赖容易理解和表达的信息。

在用机器学习解决真实问题时,如果你的模型有多个输入信息,它们的复杂度差异很大时,也会遇到这个问题。对这样的模型进行训练,几个周期之后,你可能会发现你的模型好像已经接近完成,并且拒绝进一步学习。

在这种情况下,最好的解决方法是去掉一个输入项,看整体指标的变化。如果一个输入项和结果相关,去掉了之后却对结果毫无影响,你就应该考虑单独用这个输入项来训练模型,当模型学会了依据这个输入项做判断之后,再逐渐将其余的信息也加入进来。

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-06-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

业界 | 对比了六家计算机视觉API,发现最好的竟然是...

选自free Code Camp 作者:Mariya Yao 机器之心编译 参与:蒋思源、刘晓坤 本文通过吉娃娃与松饼的图像对比了流行的六大计算机视觉API,...

38660
来自专栏人人都是极客

语音识别之回声消除及调试经验

本文讲的回声(Echo)是指语音通信时产生的回声,即打电话时自己讲的话又从对方传回来被自己听到。回声在固话和手机上都有,小时还可以忍受,大时严重影响沟通交流,它...

64130
来自专栏AI科技大本营的专栏

硬货 | 分析完2017ACL论文和演讲,我发现了深度学习在NLP中的四个发展趋势

向AI转型的程序员都关注了这个号☝☝☝ ? 作者通过分析2017年ACL的论文,以及演讲内容,得出了四个NLP深度学习趋势: Linguistic Struct...

32540
来自专栏原创

Python与R的争锋:大数据初学者该怎样选?

在当下,人工智能的浪潮席卷而来。从AlphaGo、无人驾驶技术、人脸识别、语音对话,到商城推荐系统,金融业的风控,量化运营、用户洞察、企业征信、智能投顾等,人工...

47990
来自专栏AI研习社

从理论到实践,一文详解 AI 推荐系统的三大算法

介绍 背景 随着互联网行业的井喷式发展,获取信息的方式越来越多,人们从主动获取信息逐渐变成了被动接受信息,信息量也在以几何倍数式爆发增长。举一个例子,PC时...

46670
来自专栏翻译

那些流行的深度学习库

现在深度学习非常热门,而深度学习的库也如雨后春笋般涌现出来。

230100
来自专栏钱塘大数据

一文看懂数据可视化:从编程工具到可视化表现方式

新媒体管家 说到可视化,就不得不说一下大数据,毕竟可视化是解决大数据的一种高效的手段,而如今人人都在谈论大数据,大数据 ≠ 有数据 ≠ 数据量大, 离谱的是,如...

460100
来自专栏小樱的经验随笔

Collaborative Filtering(协同过滤)算法详解

基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户...

66480
来自专栏机器之心

资源 | 《深度学习》中译版读书笔记:GitHub项目等你来Fork&Commit

39550

流行的深度学习库

哪些是值得学习的、好的专业库,而哪些又是应该避免的边缘项目,我们应该如何区分。

19170

扫码关注云+社区

领取腾讯云代金券