国内 Top2 高校研一在读,为什么感觉深度学习越学越懵?
共 5489字,需浏览 11分钟
·
2020-12-23 02:48
极市导读
本文总结了来自于知乎问题:“为什么感觉深度学习越学越懵?”下的精华回答,优秀的作者们对学习的方式,书籍的选择以及该问题本质下透露的目前领域的发展困境都提出了自己的看法。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
01
02
尽管你是top2研一,但是你还是会发现周围的全是调参侠和启发式带师。
如果真想做下去,而不是研究生毕业去找工作,看完一遍花书(第九章之前),然后就可以把花书当工具去查了。(花书,即goodfellow写的deep learning一书,中文名是深度学习)
花书的问题是它有些机器学习的基础(被绝大部分顶会论文所忽略的东西)略过不谈,但是在描述深度学习的时候又不由自主的用了这些东西,所以初学者读起来云里雾里的。
而这些基础,从西瓜书里可以看到,从统计学习方法里可以看到,但你不会去注意,因为你并不认为它关键,一掠而过。这是现在很多深度学习者所面临的致命问题。
我的方法是兴趣广泛的读论文,读那些试图去解释神经网络的论文,包括NTK这些企图用线性代数和动力学的,用特征和矩阵分解的,用优化理论的,用编码的,等等。然后去做实验,思考你该怎么在不断波动的测试结果中选择填进论文里的数据,你很快就会意识到偏差,方差,过拟合,欠拟合,early stop等等词语和你最开始理解的东西完全不一样。思考那些看似合理的曲线在各种各样的理论里扮演着怎么样的角色,深度学习背后的幽灵会在那些曲线里露出马脚。
格物而致知。
这世界上的科学莫过于此。
03
建议选一本为主进行学习,如李航老师《统计学习方法》,其他参照即可,因为大部分教材的核心内容都大同小异。以我对李航老师教材内容的了解,在掌握微积分、线性代数、概率论、编程等基础知识后,还比较容易读。如果经常卡壳,建议从这些基础知识补起。
另外结合高赞回答(刚发现该回答已删除,不是现在的高赞回答)说几句,现在AI是很火,吸引很多学生,论文成倍增加,也出现很多质量参差不齐的工作。我觉得主要原因是,行之已久的基于“信任”的学术会议同行评审机制,无法应对背后功利暗涌的海量投稿。从论文价值上讲,只要一份工作实验结果和结论是真实的,无论作用大小,对整个领域总是正面的,而且这些科研过程训练学生解决开放能力也是非常有意义的;而从最底线上讲,以我参与的相关学术会议服务的经历,很多学术会议已经开始利用数据挖掘算法检测和打击互bid论文行为,开始探讨如何解决当下的可复现性(reproducibility)问题。
当然这也是因为现在国内还处在数顶会论文的阶段。等后面大家都有顶会论文了,相信又会有人开始刷引用刷其他影响力。只要有一个评价标准,就总会有人走捷径,除非这个领域不火了。但无论怎样,有人也许能通过不合适的手段获益,也不应当成为你这么做的理由。学术研究应当做的是不断追求卓越,而不是反复试探底线。
04
那么,问题就在于你的数学太差了,你疑惑的哪些问题全是数学问题,但是这个时间点,你应该还在学习基础课,其实机器学习是比较高深的课程,学这个之前,数值计算,各种计算机系统课程,优化,统计概率应该先学完再来学机器学习,这时候才能很好的理解那些概念,再实战强化。但是现在很多整ai的,直接跳过了这个过程,我经常碰到做深度学习计算机视觉的,问数学优化算法不会,跟系统相关的东西你让他改点东西不会。太浮躁了。
建议抓紧补数学基础,你数学越硬,后面做研究才能做的更扎实,而不是一个大神整出来什么算法然后喊666在拷贝过来改吧改吧用。
补完数学基础,有空一些写一些机器学习算法,光李航那本书,如果你想用cpp从底层一路打上去实现也要用到很多基础计算机算法和系统知识的。别光用python调包,你都不知道他怎么实现的,你说你理解的有多深刻,自己都不信的。用c++写,不用所有算法都写,但是要写一些,然后改并行分布式。练两个之后再去看一些算法实现的源码,这时候你入门了。再去跑数据集,然后就会有很多idea,你才逐步进入科研。
05
本来就是炼丹,你这么觉得完全没错。
深度学习搞了这么久,还是个黑盒子,最多就是隐层截几张图片出来搞个“可视化”,搞了一堆没什么用的“万能”逼近理论,结果理论中的结果和现实中的样本量、参数量根本不在一个数量级上。最核心的问题,也就是样本空间的数学结构,因为太过复杂根本没人能讲清楚,也没人想到要去研究。譬如说,手写数字MNIST数据集服从什么分布?
应用上除了CV和NLP也没搞出什么东西。
CV搞出的东西被对抗样本克得死死的。对抗的手段要多少有多少,一个一个去堵是堵不完的。现在已经只要在标识牌上贴个便签条就能把自动驾驶算法给忽悠了,或者戴个纸糊的眼镜就能把基于深度学习的人脸识别算法给骗了,相关的论文你都可以自己去找。
NLP搞出的东西的可解释性就是差,也没有很紧密地和逻辑体系、知识体系相融合,一融合就是贝叶斯,实际上只不过是用贝叶斯公式强行解释神经网络罢了,至于融合上没有不知道。
我读过的每篇论文里都会用贝叶斯公式,仿佛深度学习能和数理统计挂上钩似的。如果真能挂上钩,那么神经网络对应的概率论模型是什么?样本服从什么分布?为什么服从这样的分布?能不能用假设检验来验证这一模型是合理的?等到哪天学术界能够不玩文字游戏地解释清楚这些问题,深度学习才能被解释清楚。如果总是说什么隐变量(隐层神经元)、嵌入(见VAE等)等服从高维正态分布,那也太含混不清了。
VAE那篇开山作品,将MNIST嵌入到二维流形上,生成了一张图片,上面按照不同的嵌入表示不同的数字。依我看来基本逻辑都说不通。应该是每个数字和字母处在一个低维的流形,例如二维或者三维,1就是1,2就是2,每个类所处的流形之间应该存在一个比较清晰的边界。将所有的数字混到一个流形上去是要干什么,而且这个流形居然还是一个二维的正方形,意义不明啊,合着1就是7,3就是5,两两之间傻傻分不清啊。我个人在这个问题上还做过一点科研,用简单的LadderNetwork将MNIST嵌入到二维空间上并且使每个类聚在一起,类与类之间有一定间距。效果一般般,只能说确实能把MNIST嵌入到二维流形上。训练集每个类都聚得很好,测试集就乌七八糟了,过拟合极为明显。
还有什么卷积神经网络的平移不变性、缩放不变性什么的,如果你找一张图片往上边补个黑边,左右平移平移10%、20%、30%,缩放1.1倍、1.2倍、1.3倍,找个state of art的网络喂进去,分类结果绝对精彩。
我看还是搞搞强化学习运用到机器人控制上比较靠谱,毕竟任务简单些。参数超过一万个的网络我是觉得都信不过。机械臂、机械狗的动作轨迹都有比较简单的模型,参数不多,这些模型应该是能做好的,实际上我们也看到包括波士顿动力等一些公司造出了实际的产品。
或者多搞搞对抗样本恶心一下学术界和工业界也不错。
实在不行也可以将深度学习运用到艺术创作上。生成游戏场景贴图、创作音乐、创作抽象艺术,反正是在虚拟的世界里,不会有什么实质的危害,最多也就是恶搞恶搞特朗普罢了。或者用来生成语音,不过这方面科大讯飞已经有比较成熟的产品了。
工业化的应用,例如自动车,我看还是别搞的好,特斯拉已经霍霍死不少人了,不需要再多一家。
事实上工业界里机器学习是很吃香的,应用极为广泛,只不过那些都是模型的内涵被分析得非常清楚的传统的机器学习。
如果没有理想的话,深度学习灌水是很简单的。东拼西凑就能整一篇,但有什么用呢?
顺带说一句,Goodfellow那本Deep Learning的英文版我看过,也就是那样的东西,别搞得跟圣经似的。
原文链接:
【1】https://www.zhihu.com/question/429256719/answer/1639011591
【2】https://www.zhihu.com/question/429256719/answer/1607900416
【3】https://www.zhihu.com/question/429256719/answer/1636624831
【4】https://www.zhihu.com/question/429256719/answer/1565236651
【5】https://www.zhihu.com/question/429256719/answer/1571752656
推荐阅读