让深度学习歇一会吧
Posted 3A是个坏同志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让深度学习歇一会吧相关的知识,希望对你有一定的参考价值。
本来想写长文,但是这几天休息不好,就简单写了。
几个月前我看到一篇“用深度学习解微分方程”的文章,号称“AI攻破高数,吊打Mathematica”,各大“AI媒体”大概都推送了,很多人应该也都知道。其实速度上吊打没什么稀奇的,毕竟神经网络的推断相当于是O(1)的,如果愿意,可以吊打任何算法(当然准确度就……)。关键是解微分方程的过程其实是一种形式推理,神经网络作为一个通过数据来拟合函数的方法,是如何能保证推理步骤的准确性的呢?于是下载看了一下那个文章,惊奇的发现它居然有一个表在拿自己和Mathematica、Matlab比较正确率。我就迷惑了,形式推理的方法能解出来就是能解出来,解不出来就是解不出来,怎么还能解错呢?只有你神经网络才会解错吧。瞟了一下上下文,发现作者规定的是30s(大概是,记不准了)解不出来的就视为解错。好家伙,那只要在测试集里掺上形式方法规定时间内解不完的大方程,模型只要能蒙对几个,立刻就能把相对正确率拉上去。这么好的实验我之前怎么没想出来。
其实这种把戏在AI界被用过不止一次,前几年传的沸沸扬扬的深度学习图像识别(目标检测)能力超越人类,实际使用的是top5准确率,也就是模型给出的概率最高的五个识别结果中有一个正确就算对。这对于人类而言完全没有意义,因为图上那个东西你认识就是认识,如果没见过,即使给五次机会还是猜不出来。“AI”就是这样“超越人类”的,如果只给一次机会,依然会被人类吊锤,因为对于自己见过的东西,人类是100%识别的。另一个“超越人类”的领域是医学图像检测,这个听起来更吊,毕竟对于人类来说,看CT片子是专业人士才能做的工作。但有一次和UCLA医学院做该方向的博后聊天,他告诉我这个方向,由于隐私等等一干原因,实际能用的数据集就那么大点。单纯比较正确率的模型其实已经把验证集都拟合进去了,纯粹进入了过拟合大比拼。所以现在大家都尽量使用可解释性强的小模型。由于疫情,阿里通过医学图像诊断新冠肺炎的模型也在媒体上刷了屏,不过新闻里也说了,它也只是“辅助”。最终还是要医生来决断。
可以看出,在上面说的这些领域,“深度学习超越人类”实际还并没有实现,至于取代人类,更是还没影的事。但是媒体总喜欢做这种喜大好功的宣传,一些领域内的科研人员知道这些宣传的不切实际之处,但依然选择沉默,另外还有一些业内人士居然反向被骗了,真的觉得深度学习万能,于是开始不顾一切的套模型。比如最开始说的形式推理问题,神经网络真的可以用于end to end的形式推理吗?但凡你对这个问题有所了解,就会觉得类似于“神经网络解微分方程”以及其它的一些符号推理问题,从原理上就是在闹着玩。因为大部分情况下,符号推理需要的首要保证就是结果的正确性,如果生成的一百条证明里有一个错的,那这个结果就毫无意义可言,但如果用神经网络(端到端)直接输出结果,这个正确性是不可能保证的。就算速度再快,也只是相当对形式化过程的一个model compression,但大部分符号推理问题生成的每一个符号都蕴含独立信息,只要有一点错了整个就错,压根就不是一个连续性问题,根本就算不能做compressive sensing,所以这个思路从根上就是错的。对于符号推理,神经网络只能生成推理过程里可回溯的状态,比如用神经网络做启发式搜索组件,MSRA之前做过相关工作(类似的工作应该有很多,只是这几年我不太关注符号推理,没办法依次举例)。但是通过一种单纯概率建模的方法来生成结果,从原理上是说不通的。
大家在群里讨论这个问题时,有人认为一些端到端神经网络+符号推理的工作只是为了验证神经网络的拟合能力在这些问题分布上的可用性,并不是真的要做一个有价值的算法。但现在早就不是几十年前多层感知机能不能描述xor还要讨论一下的时代了,9012年,大家都知道处理序列用Transformer,表示expression用AST,基于Transformer的各种花里胡哨的应用早就满地开花,一定有一种类似模型能cover微分方程、不定积分的AST to AST分布,即使不做实验,大家心里也基本有数。况且文章里和Mathematica比时间的做法,真的很难让人不怀疑他们发文的动机。
但不管怎么说,“神经网络解微分方程”起码做出了结果,有实打实的工作量在。那些号称超越人类的目标检测模型,也是实打实的在榜单上打出了成绩,虽然没有宣传的那么强,但也是个真的可用的东西。但在一些深度学习+xxx的大杂烩交叉领域,就完全是另一种情况了。比如最近闹的沸沸扬扬的“中国大陆唯一Caltech phd offer收割者”黄同学的大作,控制部分我看不懂,不过这个……
看了文章的知道是在整DQN,不知道的还以为训练minst呢。
其实看一类算法到底是不是真的有用,这些年我总结出一个规律,一看医疗领域实际用没用,二看金融领域实际用没用。这两个,一个是命,一个是钱,当然你可以认为钱就是命,反正都不会随便拿一些扯淡方法过去瞎玩。医疗的前面已经说过了,下面随便谈谈金融,之前我在金融公司高频交易部门工作的时候,大家用的还都是很简单的模型(比金融本科搞的很多计量模型还要简单),现在几年过去了,但在高频领域,神经网络依然没什么应用,虽然高频对准确率要求没那么高,但是速度要求很高,神经网络还是太“重”了。而低频领域,根据我平时聊天得到的情报,也没有一股脑搞个深度学习模型就用的情况,因为动不动经手近千万的事还是要严谨一点,成功的量化算法,就是那些在回测里始终盈利,放到out of sample的环境里依然盈利,拿到真实世界里交易后依然盈利的策略。所以遵循的都是mining-modeling-using的原则,深度学习端到端显然不太适合这个。当然在一些“自动化”程度比较高的量化对冲基金里,比如对高维序列的分析、对舆情的挖掘,还是有神经网络的用武之地的,但这些结果依然要经过分析师的眼睛,最终交易动作的决策依然是使用一些更加简洁透明的模型,而不是像很多人想象的那样搞个花里胡哨的强化学习。
本来想随便写个短文,结果又说了这么一大堆,又晚睡了。不过最后还得澄清两点,首先我不是对深度学习有什么成见,只是它现在太火了,火到劝退领域都搞了一大堆"Deep learning for xxx"水一水,导致了好多大水车、大水牛、DL航母的出现。但如果可以的话,我觉得大家还是稳一点比较好,给后辈多留下一点有价值的东西。另外一个就是,如果你水一水就能发一堆顶会顶刊的话,请务必带我一个。
我也想当黄同学。
以上是关于让深度学习歇一会吧的主要内容,如果未能解决你的问题,请参考以下文章
独家 | 利用OpenCV和深度学习来实现人类活动识别(附链接)