点击下方卡片,关注「AI计算机视觉CV深度学习DL」公众号
选择星标,最新技术干货每日准时送达
AI|图像处理|计算机视觉CV|机器学习ML|深度学习DL
一位CV领域的硕士问:一直弄不懂神经网络原理,看了很多教程博客还是弄不懂,我想是不是不需要弄懂啊?个人觉得:不懂原理能做些应用,但是想出成果就难了。可以参考下网友的讨论。
转载自丨机器学习初学者
链接丨https://www.zhihu.com/question/433274875/answer/1613600102
-
知道loss function的作用,知道sgd minimize loss function的过程就是神经网络(包括传统机器学习)的学习过程。知道loss function,optimizer背后的优化原理
-
知道CNN的一些trick,怎么调结构,调超参数,背后的直觉是什么,这个直觉就是原理
-
研究overparameterized neural network的generalization原理
-
这是大二数学,学习人工智能必备的。如果这都不懂,建议回炉重造
-
这是成为一名工程师必备的技能。这个搞不懂不建议从业人工智能
-
这是优秀PhD研究的内容。这个搞不懂对找工作毫无影响。
链接:https://www.zhihu.com/question/433274875/answer/1613600102
绝大部分所谓机器学习从业者,包括知乎上的,都对神经网络的原理一知半解。不指望所有从业者搞明白神经网络里面的数学,只希望能让大家不要觉得所谓的deep learning就是无脑调参。个人觉得即使不懂原理也可以找一个不错的工作,但在工作/科研中一定会受到局限。关于神经网络原理有很多工作,大范围的比如说Neural Tangent Kernel 的一系列工作。
https://arxiv.org/pdf/1806.07572.pdf
关心CNN的话对于residual connection也有很多理论解释https://arxiv.org/pdf/1909.04653.pdf
对于GAN,尤其是GAN的generalization bound也有不少人尝试
https://arxiv.org/pdf/1703.00573.pdf
以上都是冰山一角。还有很多关于神经网络的optimization的工作可以看Princeton的Jason Lee和UW的Simon Du 杜少雷。
不懂原理,我觉得跑demo。做应用。写毕业论文甚至发论文可能都可以。但我觉得你找工作就比较困难了。
以现在开源工具的发展水平来看,你即便是“只需要应用”也要搞懂一些原理,否则连应用都做不出来。你做应用至少还需要理解问题,根据问题选择合适的模型,并且调调超参数。针对特定问题,找到合适模型。这一步就需要你能看懂模型的适用范围与优缺点。想要做到这点,就需要你对其背后的原理有一定的了解。调超参数就更需要根据实验反馈结果定位哪个超参有问题了。这需要对模型和数据有更深刻的理解才行。所以,做应用就需要懂原理。但是,这是基于现有机器学习工具的发展水平来说的。也许有一天,会出现一个基于Keras的开源软件,自动帮你选模型调参呢。到时候你做应用可能就真的只会应用就行了,真的好期待这一天哦!
链接:https://www.zhihu.com/question/433274875/answer/1662351913
显然不是。即使只是应用神经网络的话,也需要理解常见的组件/模型结构的意义,它们为什么work/不work。例如batch normalization 的作用,skip-connection的作用,各种优化器的优缺点等知识点需要非常熟悉。不然你调参数的效率是会显著低于有经验的算法工程师的,而且当你遇到神经网络不收敛、loss降不下去、疯狂过拟合等各种各样的问题时你是没有办法知道怎么去解决的。上面举例的知识点掌握起来其实并不难,而且应用的话学到这种程度就足够了。至于背后深入的数学原理,神经网络可解释性的问题过于前沿了,现在不去了解也没有什么关系。
链接:https://www.zhihu.com/question/433274875/answer/1625527052
总结
绝大部分回答都是认为需要了解神经网络的原理,但是否深入,看你的需求了。
一个专注于开放知识分享的公众号,努力将分享变成一种习惯!
后台回复「加群」加入互助群,可在公众号【菜单】中获取完整关键词清单。
回复:图像处理丨计算机视觉丨机器学习丨深度学习丨Python丨C/C++丨PyTorch丨CVPR2024丨ECCV2024 获取相应资料(不定期更新)。
点这里👇关注我,记得标星哦~
文章仅做学术分享,如有侵权请联系删除,非常感谢!