链接:https://www.zhihu.com/question/433274875

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

作者:匿名用户
https://www.zhihu.com/question/433274875/answer/1725421509

美国某非CS的工程专业top5在读博士来答一下

因为近些年AI、ML的兴起,我们专业的经费分配也大幅度往这相关研究方向转移了,为此组内老板就各种推荐、怂恿、强迫学生做相关课题,甚至课题方向毫不相关的博三学生都被要挟停止funding来做所谓的side project好让他拉funding,就是变相压榨学生让你多当一两年廉价劳动力。

扯远了,扯回来。

为什么我和其他同学非常抗拒做神经网络之类的课题呢?因为我们完全不懂原理,不知道哪种方法更适合我们专业领域内的研究问题。读文献也只能停留在哪一些方法可能可以产生所期待的结果,而根本讲不出来为什么这些方法可以应用于我们这一领域或者如何改进现有方法。因为原理层面上的知识缺失,我们专业在做这种课题的时候如果缺少前期积累,多半变成把机器学习等方法当成黑匣子使用。如此操作并非完全无研究价值,但你真的想以这样的课题当做你的博士课题吗?

作者:知乎用户
https://www.zhihu.com/question/433274875/answer/1872308662

先搞明白你说的“原理”指的是什么。

如果指的是典型入门课程(比如吴恩达Deep Learning或CS224N)中会讲到的基础知识,例如常见损失函数的性质和应用,反向传播的基本原理等,这些显然都是必须滚瓜烂熟的。一方面掌握这些知识本身并不困难,另一方面没有这些知识基础的话连调参侠都做不好,找工作100%会面试一面挂。

而如果指的是各种“为什么神经网络Work”之类的理论研究,那么显然没必要——目前学术界自己都没整明白这玩意呢……

作者:胡紫怡
https://www.zhihu.com/question/433274875/answer/1613600102

有几种程度的“弄懂神经网络的原理”:

  1. 知道loss function的作用,知道sgd minimize loss function的过程就是神经网络(包括传统机器学习)的学习过程。知道loss function,optimizer背后的优化原理

  2. 知道CNN的一些trick,怎么调结构,调超参数,背后的直觉是什么,这个直觉就是原理

  3. 研究overparameterized neural network的generalization原理

这些原理的重要性:

  1. 这是大二数学,学习人工智能必备的。如果这都不懂,建议回炉重造

  2. 这是成为一名工程师必备的技能。这个搞不懂不建议从业人工智能

  3. 这是优秀PhD研究的内容。这个搞不懂对找工作毫无影响。

作者:叶小飞
https://www.zhihu.com/question/433274875/answer/1866586190

我从工业界面试的角度来回答下这个问题。我在大厂工作期间面试了不少candidates, 自己也面试过不少岗位, 只会掉包,蒙着头拼积木==失业。过得了简历关你也绝过不了后面N轮面试。那么对于“神经网络的原理”(加引号是因为我觉得神经网络没啥真的原理可言)到底要掌握到什么程度才算合格?

  1. 能手撕 前向/反向传播

这应该是每一个做DL的最最最基本的要求。给一个两层的做regression/classification 的neural network,给一个简单的1D vector, 把它的forward propagation写出来,还要用chain rule把back propagation也给推导出来,最好除了公式之外,能现场给个实际的input vector把相应的矩阵运算给算出来。

2. 对常见的loss function和激活函数要如数家珍,并且知道大概的优势/劣势。举个简单的例子,softmax和sigmoid有什么联系, relu相对tanh优势是啥。

3.对非常经典的论文要有较好的了解,并且有自己的“insight”在里头。举个例子,ResNet很经典大家都知道,那么它到底为什么用简简单单的结构做出了惊人的效果?再比如,虽然你是做图像分割的,但如果我问道Yolo的巧妙构思之处在哪你却连Yolo里面是啥都不清楚,基本也要被我挂了。这说明你做东西钻地太窄,失去了应有的广度。

4.对你自己专精的领域要有很深的认知,知道近期sota的设计理念,能大概说一说它们本身可能存在的缺陷。

5. 加分项:如果你对matrix本身有些基础的理解,比如Gauss-Jordan求逆怎么做,SVD大致步骤之类的会加分不少。另外如果你对传统图像处理,像sift, hog这些还有了解也会大大加分。

上述这几点从我近来几年的观察来看,可以说是大厂偏research岗位的基本要求,其实用一句话概括就是:知其然,更要知其所以然。所以回到你的问题,硕士博士不懂神经网络原理是否能行,撇开你是否能发论文不说,搁到工业界面试这边等于凉凉凉

讲实话,我没想到还有些从业者觉得上述前四个算是面试造航母,现在大家的水准这么参差不齐了吗 ?搞我们这行的难道不应该对经典论文(一共也没多少篇,手指头都能数得过来)如数家珍,对自己深耕领域了如指掌?不然你自己闷着头写自己的算法吗 你可以完全不care我说的这几条,但等到你找大厂CV/DL工作的时候我觉得95%概率凉凉。

作者:cycloid
https://www.zhihu.com/question/433274875/answer/1867205336

我倒是很想问问在这个回答下冷嘲热讽的人,你们理解的原理是什么?

是像Arora,Simmon Du,Jason Lee和Taiji他们做的理论工作?那我觉得在座大部分人可以闭嘴了,大陆搞dl theory的组可能两只手数得过来。

还是像Kaiming He那样的开创性工作?那我觉得在座也没有多少人能够做到这样充满洞察力的工作呀?

如果你是说应该怎样更好地搭lego?那我觉得其实我们也没有多理解所谓的原理呀?你们嘲笑提问者这不是五十步笑百步嘛。

这个回答没有别的意思哈,只是昨晚转了一圈看到一大堆嘲讽的回答有点不爽。

平心而论,我也是所谓的调参侠(尽管应该以后不会做这个方向了),身边的朋友有做神经网络应用的有做可解释性的有做数学理论的,但是我们不会把这种从其他网络结构得来的灵感称为“原理”,我们会把它称为工程性的“直觉”。无论是用数学理论来刻画神经网络的性质的理论家,还是在大量工程中积累直觉的工程师,都是十分值得尊敬的。

在我看来,原理这种东西,起码要做到像是SVM或者是boosting这样比较完善的泛化理论,才能称之为原理吧?到时说不定真的能用类似的margin理论来刻画神经网络的泛化性。(没记错的话COLT2020已经有人做了一个用某种margin maximization来刻画神经网络的隐式偏向了)要是这些不同的模型都能用某一种“大一统”理论来刻画,那才是真正的原理吧?

作者:知乎用户
https://www.zhihu.com/question/433274875/answer/1646076545

你首先要搞清楚你是做什么的。

神经网络的原理,应该是指神经网络背后的数学原理以及不同构架的理论性证明,这些东西你如果不是做机器学习理论的工作,可以不了解,只要大概知道不同架构可以做什么就行了。

但是,你如果是应用机器学习到其他领域,那么你需要了解你所做的领域的原理,比如你做cv的,那么基本的信号处理,图像处理的理论你应该了解;做nlp的,你需要去了解语言学的理论。

不要简单地把cv,npl和机器学习画等号。

作者:金海峰
https://www.zhihu.com/question/433274875/answer/1662351913

以现在开源工具的发展水平来看,你即便是“只需要应用”也要搞懂一些原理,否则连应用都做不出来。

你做应用至少还需要理解问题,根据问题选择合适的模型,并且调调超参数。

针对特定问题,找到合适模型。这一步就需要你能看懂模型的适用范围与优缺点。想要做到这点,就需要你对其背后的原理有一定的了解。

调超参数就更需要根据实验反馈结果定位哪个超参有问题了。这需要对模型和数据有更深刻的理解才行。

所以,做应用就需要懂原理。


但是,这是基于现有机器学习工具的发展水平来说的。也许有一天,会出现一个基于Keras的开源软件,自动帮你选模型调参呢。

到时候你做应用可能就真的只会应用就行了,真的好期待这一天哦!

作者:匿名用户
https://www.zhihu.com/question/433274875/answer/1618395833

这个问题比较矛盾,首先不懂原理肯定是不行的(好歹把一些optimization, high dimension probability 之类学了吧),但目前关于深度学习的理论并没有决定性的进展,所以弄不明白也正常。。。。

楼上有人说了simon du和jason lee的工作,还有这几年icml的generalization workshop,dl theory and physics等等都是目前比较前沿的理论结果。但说实话我觉得这些还是过于“理论领域”了,目前只适合专门从事dl theory的人看,未必适合题主。

作者:知乎用户 https://www.zhihu.com/question/433274875/answer/1610287913

神经网络在图像分割领域应该算是应用非常广泛的基础技术,如果不弄明白的话,以后你很难更好地去理解更复杂的东西,所以打好基础非常重要,难的还在后面.....

看不懂的话就反复地看,总会理解的。

作者:捕梦网
https://www.zhihu.com/question/433274875/answer/1863416541

看你说的是啥原理了,如果是optimizer到底是基于啥设计的,为啥加weight decay这样的,你如果不知道,那就别做神经网络了。但是,如果你说,来给我分析一下非线性情况下,这个神经网络是不是有更小的generalization loss。那么,实际上你能想到的绝大多数理论模型基本都是胡扯不work的。

做神经网络没有足够的试错是不行的。因为你试错了之后,你才会发现人类对神经网络的了解有多么少。见过一些搞统计的教授,半途搞deep learning,他们组里的学生可痛苦了。因为教授自以为自己很懂(不就是我们统计玩剩下的么),实际上并没有一手经验,很多预判都不太对。

欢迎添加群助手微信,邀请您加入大佬云集-计算机视觉交流群!

???? 长按识别添加,邀请您进群!

对于神经网络,硕博士不需要弄明白原理,只需要应用,是这样吗?相关推荐

  1. 讨论:对于神经网络,不需要弄明白原理,只需要应用,是这样吗?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器学习初学者 转自丨极市平台 导读 一位CV领域的硕士问: ...

  2. PID算法终于弄明白原理了,原来就这么简单

    看起来PID高大尚,实则我们都是被他的外表所震撼住了.先被别人唬住,后被公式唬住,由于大多数人高数一点都不会或者遗忘,所以再一看公式,简直吓死.了解了很浅的原理后,结果公式看不懂,不懂含义,所以最终没 ...

  3. 关于硕博士开题报告编写的思考

    在读硕士期间,当开始写开题报告的时候,我清晰记得自己的几个困惑,**1.这个写了有啥意义,都没实现和实验基础,都是自己意淫的:2.这个写了之后,要是做不出来怎么办?3.我不写开题报告,也照样可以写论文 ...

  4. 想做程序员?弄明白这些问题,你会少走很多弯路

    前言 几乎每一个新手程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人. 有的人自学很快 ...

  5. 炒股,你必须弄明白这9个问题

    原文链接:http://blog.sina.com.cn/s/blog_46904e310102vf3b.html 炒股,你必须弄明白这9个问题 作者:刘植荣 中国股市上证指数从 2014年7月18日 ...

  6. 哈工大计算机系女生的宿舍,哈工大的硕博士们,这次被学校折腾惨了!

    每年毕业季,也意味着大学的新生开学季到了! 不管是新生开始选报专业,还是毕业生在忙着找工作,紧锣密鼓地收拾行李.但有一个场景肯定是各位比较容易疏忽的,那就是宿舍了. 北师大某女生宿舍楼 北师大某女生宿 ...

  7. 你真的弄明白了吗?Java并发之AQS详解

    你真的弄明白了吗?Java并发之AQS详解 带着问题阅读 1.什么是AQS,它有什么作用,核心思想是什么 2.AQS中的独占锁和共享锁原理是什么,AQS提供的锁机制是公平锁还是非公平锁 3.AQS在J ...

  8. 3分钟弄明白JAVA三大修饰符

    3分钟弄明白JAVA三大修饰符 JAVA的三个修饰:static,final,abstract,在JAVA语言里无处不在,但是它们都能修饰什么组件,修饰组件的含义又有什么限制,总是混淆.所以来总结对比 ...

  9. 弄明白HASH,你就弄明白区块链的一大半

    "人类历史上第一次,全世界各地的人,花费巨额的成本,争前恐后地寻找美学意义上的数学运算结果." -卫sir Beeple加密艺术作品<区块链> 说起区块链,似乎大家都懂 ...

最新文章

  1. UGUI的优点新UI系统三效率高效果好
  2. android edittext 不可编辑
  3. BZOJ 1053 [HAOI2007]反素数ant
  4. java 获取随机数字的三种方法
  5. 为什么 30 岁的工程师容易跳槽?
  6. 关于金山词霸2009牛津版在windows2003下无法对PDF文件取词的问题
  7. Ubuntu20.04下安装nvidia驱动
  8. python 读取网页源码_python获取整个网页源码的方法
  9. https://是什么?HTTPS和HTTP有什么不一样?如何申请SSL(HTTPS)证书?
  10. hadoop,spark,Zookeeper,,, 这些名字都是怎么来的呢?
  11. Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv
  12. 跟我一起从零学习安卓逆向分析
  13. 手机199开头的号码的正则验证
  14. 如何阅读一份上市公司财报 - 财报阅读入门
  15. GetSystemInfo系统信息
  16. erp系统软件到底是干嘛用的?
  17. redis设置密码并修改查看的几种方式
  18. 【结构体】 结构体引用、结构体数组指针、包含结构的结构体
  19. Wireshark的作用
  20. 微小宝公众号排行榜_公众号榜单 | 2020·5月公众号地区排行榜重磅发布

热门文章

  1. SQL CONVERT在日期转换中的使用示例
  2. FreeBSD 8.0 终于发布正式版了
  3. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...
  4. redchat怎么编写shell脚本_shell脚本编写思路
  5. 如何实现更换Jupyter Notebook内核Python版本
  6. ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed.
  7. pycharm打开报错python已经停止工作
  8. IoC容器总结与简单模拟
  9. gvim 二进制_vim/gvim学习
  10. Windows下RabbitMQ安装及注意事项