Py学习  »  机器学习算法

有哪些深度学习效果不如传统方法的经典案例?

AI有道 • 4 年前 • 459 次点击  

来自 | 知乎 

https://www.zhihu.com/question/451498156

编辑 | AI有道 

本文仅作学术分享,若侵权,请联系后台删文处理


深度学习作为目前最前沿的科技领域之一,一般都引导着科技进步,但是是否存在一些深度学习的效果反而不如传统方法的案例呢?本文汇总了一些该问题下的优质回答,回答均来自知乎。


作者:桔了个仔
链接:https://www.zhihu.com/question/451498156/answer/1802577845
来源:知乎


谢邀。


对于解释性有要求的领域,基本深度学习是没法和传统方法比的。我这几年都在做风控/反洗钱的产品,但监管要求我们的决策要可解释性,而我们曾经尝试深度学习,解释性很难搞,而且,效果也不咋地。对于风控场景,数据清洗是非常重要的事,否则只会是garbage in garge out。


在写上面内容时,我想起前两年看的一篇文章:《你不需要ML/AI,你需要SQL》。作者是尼日利亚的软件工程师Celestine Omin,在尼日利亚最大的电商网站之一Konga工作。我们都知道,对老用户精准营销和个性化推荐,都是AI最为常用的领域之一。当别人在用深度学习搞推荐时,他的方法显得异常简单。他只是跑了一遍数据库,筛选出所有3个月没有登录过的用户,给他们推优惠券。还跑了一遍用户购物车的商品清单,根据这些热门商品,决定推荐什么相关联的商品。


结果,他这种简单的而基于SQL的个性化推荐,大多数营销邮件的打开率在7-10%之间,做得好时打开率接近25-30%,是行业平均打开率的三倍。


当然,这个例子并不是告诉大家,推荐算法没用,大家都应该用SQL,而是说,深度学习应用时,需要考虑成本,应用场景等制约因素。我在之前的回答里(算法工程师的落地能力具体指的是什么?),说到过算法落地时需要考虑实际制约因素。



而尼日利亚的电商环境,依然出于非常落后的状态,物流也跟不上。即使使用深度学习方法,提升了效果,实际对公司整体利润并不会有太大影响。


所以,算法落地时必须「因地制宜」否则,又会出现「电风扇吹香皂盒」的情况。

某大企业引进了一条香皂包装生产线,结果发现这条生产线有个缺陷:常常会有盒子里没装入香皂。总不能把空盒子卖给顾客啊,他们只得请了一个学自动化的博士后设计一个方案来分拣空的香皂盒。
博士后拉起了一个十几人的科研攻关小组,综合采用了机械、微电子、自动化、X射线探测等技术,花了90万,成功解决了问题。每当生产线上有空香皂盒通过,两旁的探测器会检测到,并且驱动一只机械手把空皂盒推走。
中国南方有个乡镇企业也买了同样的生产线,老板发现这个问题后大为发火,找了个小工来说“你他妈给老子把这个搞定,不然你给老子爬走。”小工很快想出了办法他花了190块钱在生产线旁边放了一台大功率电风扇猛吹,于是空皂盒都被吹走了。


(虽然只是个段子)


深度学习是锤子,而世间万物不都是钉子。


作者:叶小飞
链接:https://www.zhihu.com/question/451498156/answer/1823786321
来源:知乎


在工业界,一般在三种情况下传统方法会胜过深度学习。当计算速度有实时要求但是计算资源很有限时,当可解释性是非常重要指标时,当可控性非常关键时,传统方法一般会优先被选择。下面我来举几个经典案例。


自动驾驶行为规划


尽管有很多论文讲述了如何使用深度强化学习来规划无人车的行为,在工业界落地时很多车企还是会以Rule-based方法为主来做行为规划。为什么?因为if else这种方法在安全性上更具有可解释性啊!举个例子,汽车在前方二十米忽然蹦出一个不要命的行人,这个时候你是希望用你带有黑匣子性质的深度强化学习来做具有未知性的决定呢,还是直接用rule-based方法判断出行人离得太近,立刻刹车呢


SLAM 特征提取与匹配


虽然现在学术界搞了很多端到端的深度学习来找到连续两张连续照片之间的位姿,但是室内机器人/AR用的最多的还是传统的ORB+RANSAC/FLANN 来抽取特征、进行匹配,进而计算位姿。为啥呢?因为ORB是Binary关键点特征描述子,用起来特别快,消耗资源小,而且室内landmark比较多,最后匹配的效果也比较鲁棒。相反,用深度学习算法会占用更多计算资源,提高成本,效果还不见得能提高多少。


相机ISP


相机的ISP里的大多模块到今天为止还是以传统算法居多,原因有两个。第一,如果整个ISP都被端到端的深度学习代替,进入的是bayer raw image, 输出的是成品RGB,那么可控性会非常差。比如我想根据场景不同,让照片出现不同的色调或者锐化程度,深度学习就很难控制,但是传统算法改几个参数就好。第二,如果是把ISP的每个小模块都改成深度学习算法,那肯定消耗资源特别大,你的手机拍个照片能热到可以煎鸡蛋。所以现在相机ISP的常规做法是用深度学习去噪,剩下的用传统方法,两者相结合。


小结

其实类似的例子还有很多,比如搞推荐算法特征工程的很少有用深度学习自动产生feature, 都是手动调feature 加传统的机器学习。传统vs深度各具优势,需要根据场景需求来使用。



作者:林小平
链接:https://www.zhihu.com/question/451498156/answer/1802446753
来源:知乎


2020年阿里云天池举办的辱骂攻防比赛。



由于数据集基本要自己构建,选手后期大都直接使用官方提供的fasttext做检测,用规则作为攻击方法。黑盒攻击的场景下,使用bert或者别的深度学习技术几乎毫无意义。


这个时候使用bert的缺陷主要有:

  • 训练数据难以搜集。比赛前10天我们小组搜遍全网+github,稍微整理一下也就100+比较典型的辱骂文本。其他选手掌握的脏话数据基本也大同小异。如此少量的数据集训练bert,闭着眼睛想也能知道是什么结果。

  • 远远不够经济。不少选手早期部署好模型后向后台反馈无法运行或者接连报错。这是因为选手需要把模型打包成docker上传至比赛后台运行,是否能够使用GPU资源等问题早期会群里不断有人提问。此外比赛也要求1000条句子的攻击要在30min内完成。

  • 比赛重点在于“攻击”而不是“识别”。这个比赛除了要把骂人的词汇精准识别,更重要的是要把他们改成机器看不懂,但依然“恶意满满”的攻击文本。


这里省略很多个脏字


图片攻防场景下,确实有很多基于深度学习的扰动方式,其中最经典的例子就是我们的大熊猫:



通过施加噪声,大熊猫被深度学习模型错误的识别为gibbon(长臂猿)。对抗学习也是一个非常有挑战的研究领域


但是问题在于防守方也不傻呀,首先人家就没告诉你他们用的防守策略是什么(黑盒攻击),只是开放了一个参考模型fasttext,在实际的生产环境中也必然会有词典和匹配的方式进行防守;最关键的在于,图片是连续的,而文本是离散的。天知道沿着梯度反方向改词汇,会改出什么;即便能骗过防守分类器,你也无法确保新的句子是否还有“骂人”的潜在语义。如果一点骂人的意思都没有,最后评测的时候会被人工标记为0分的哦。


当然对抗学习也是很有挑战和前景的研究方向,感兴趣的朋友可以跳转至这篇博客进一步了解:


https://zhuanlan.zhihu.com/p/84174278



最后这个比赛我们组的做法以及前10名的方案整理如下(我们组整理了2万个汉字的形似,音似,拆字,拼音等扰动方式,欢迎下载和使用):


https://zhuanlan.zhihu.com/p/114225642




作者:机智的叉烧
链接:https://www.zhihu.com/question/451498156/answer/1849923507
来源:知乎


谢邀!我感觉我挺适合这个问题的额,地铁路上码字,太难了。


首在此之前想聊的一点是对比好坏是要定义标注的,好坏是要看方面的,深度学习远远没有吊打传统方法,传统方法也有先进经典的东西值得我们学习。


ok开始。


简单问题


能简单到一个规则就能处理的问题,你会用深度学习吗?最简单的道理,用户都输入了天气了,大概率就是天气意图了,还深度学习吗?不合适吧。(说天气之子的滚一边去。。。。。。)


这里留言谈深度学习的几个核心缺点了:

  • 需要大量样本才能解决问题。

  • 训练需要时间。

  • 推理阶段,深度学习远远比不上规则的快。


因此,对于简单的问题,不需要轻易使用深度学习这把牛刀啦。


准确率要求超高的问题


规则是明确可解释可控的,随之而来的是准确超高,比模型更容易达到高准确,因此一些方案的设计会是规则优先,典型的,对于准招要求都高的项目,甚至会用规则加模型的方法,规则保准确模型保召回。


于是规则成为方案准确的守门员。


名词性质明显的问题


众所周知,oov是一个历史难题,无论是人还是模型,一个没见过的词都很难推断他的意思,同样是天气之子,没听说过的,那他很可能就是不认识。这是其一。


其二,这些名词是有时间性质的,例如新冠,耗子尾汁,10年前大家肯定没听说过,数据里也很难有,模型也学不到,现在有了,那我们是重训模型吗,肯定不合理,学是学不完的,会持续有新词出来。


第三,名词是有严格文本意义的,少年的你是电影,年轻的你就不是那一部了,甚至都不是了,深度学习能轻易对词汇进行泛化,但这种名词不合适。


因此,深度学习对这种问题往往非常头疼,词典干预是非常可靠,稳定,敏捷的方法。


人工特征强的问题


虽然很不想说,但是机器学习很多方法已经被认为是传统了。但实际上有些场景深度学习的确不适合。


用户特征强的问题,只要构造好特征,模型将不会是效果的瓶颈。


我说的就是推荐系统。


但是我想说的是推荐系统项目初期。


推荐系统现在的确是很火,各种深度学习模型满天飞,问题是,对初期,数据不足,大部分用户还在探索阶段,这时候深度学习还合适吗?当然不合适。


再说一个关键点,现在的推荐模型很多时候会考虑各种因素,公平性,时效性,长期兴趣啥的,这对于还在初期的推荐系统统统不合适,因为现在的系统就不存在这个问题,片面的看方法厉害而忽略问题本身,一定会栽跟头的,到时候可别说是方法不靠谱了。


这时候,用简单的机器学习模型做一个泛化,可能更好,lr,xgboost,足矣,关注点放在特征上,表征好用户和物料,就可以让系统跑起来。


难标注问题


监督学习是深度学习的核心主力,虽然半监督无监督也在进行,但是还有很多场景落不了地。


我举个例子,关键词抽取,至今我手上的基线还是tfidf,原因很简单,tfidf强且不需要训练,有一批语料就能统计了,而且效果不差。


小结


原来我们需要勇气去接受新事物,现在我们需要勇气来接纳老方法,挺有意思的。


吊打是正常的,尺有所短寸有所长,在现实应用中,解决问题是根本,方法只要不违法不违反仁义道德,都能用,不问出处,不问高端低端,所谓前沿,不是特意去制造名词门槛,而且解决的问题难了多了,自然就会有所谓前沿的东西出来,走在人类知识的边缘,才可能触达人类未知的边缘。


所以,我们在方案选择上,应该以结果为导向,选择合适的方案来处理,谁能吊打其他方法,就用那个。




推荐阅读

(点击标题可跳转阅读)

干货 | 公众号历史文章精选

我的深度学习入门路线

我的机器学习入门路线图


重磅

AI有道年度技术文章电子版PDF来啦!



扫描下方二维码,添加 AI有道小助手微信,可申请入群,并获得2020完整技术文章合集PDF(一定要备注:入群 + 地点 + 学校/公司。例如:入群+上海+复旦。 


长按扫码,申请入群

(添加人数较多,请耐心等待)



感谢你的分享,点赞,在看三  

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133735