社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【讨论】学习深度学习是否要先学习机器学习?

机器学习初学者 • 3 年前 • 363 次点击  

有同学问:最近做毕设要做一个神经网络的课题,想请教一下各位我需不需要把机器学习也都学习一遍?

看看过来人怎么回答?有同意也有反对的,都有一定道理。

欢迎大家留言讨论。

回答一

作者:莫笑傅立叶
链接:https://www.zhihu.com/question/382278216/answer/1117203012

写在最前面:强烈推荐邱锡鹏老师的神经网络与深度学习,阅读起来极其流畅,收获颇多。

  • 若做一个调包侠,只需要调包就完了,只需要知道输入输出就完了,那么一切从简,顺利完成毕设。

那么学习流程就是这样

  1. python

  2. keras

  3. 做图像 只会cnn就完了 from Keras.layers import Conv2D

  4. 做自然语言处理 只会LSTM 全连接就完了 from Keras.layers import LSTM, Dense。当然别忘了加个bert。bert是啥也不用太关注,只需要会keras_bert的模型建立就完事了

  5. 以上都不需要其他额外知识

  6. 判断模型好不好纯靠莽

  • 若是从原理级别进行调整,需要直接改模型源码的

那么,统计学习方法 西瓜书 深度学习圣经 各种paper %%¥#@&&%¥¥%&&**等等等等都这时候了,我看还是选择第一个吧..一点不妨碍做完毕设,只不过只能做些应用型的项目罢了
若选择第一种,你就是面试官眼中高赞回答的样子以上

回答二

作者:辛俊波
链接:https://www.zhihu.com/question/382278216/answer/1127012045

近几年面试了不少校招和实习生,深感深度学习之火,以至于很多学生只会各种nn网络,对基础的机器学习算法不屑于了解。在我看来,如果你真的想深入了解深度学习,就不可能不了解机器学习的很多算法基础,就说说过拟合

  1. 深度学习网络规模做大,免不了会遇到过拟合。说到过拟合欠拟合,都有什么手段解决?对于模型的方差和偏差分别怎么影响的?

  2. 正则化可以缓解过拟合,那我们来说说, l1正则和l2正则有什么区别?哦?除了了解网上经典的那张坐标解释,是否了解它们在贝叶斯先验上属于不同的分布?说到贝叶斯分布免不了要了解共轭先验,为什么要服从这种分布?还有哪些经典的共轭分布?

  3. dropout也能解决过拟合,请问为什么能work?本质上就是一种bagging的思想。说到bagging,免不了就要知道boosting,这两者在降低模型方差偏差影响怎样?

  4. 说到dropout,免不了和batch normalization对比,后者是为了解决什么问题提出来的?对比数据白化,pca等其他方法有什么区别?还有哪些数据的normalization手段?

你看,一个过拟合的问题在深度学习的表现,看似都是深度的方法,背后涉及的原理全都是更加底层的机器学习基础。

回答三

作者:取栗
链接:https://www.zhihu.com/question/382278216/answer/1384748071

作为一个在数学系学统计做过机器学习,工作后搞深度学习的人,我可以很负责任的告诉你,不需要
理论上来说,深度学习确实是机器学习的一部分。

十年前,深度学习其实还叫 ANN,是存活在机器学习里的一小部分(别喷,我知道现在主流是 CNN,跟ANN不同)。

但是实际上,深度学习是一个用计算机算力暴力求解问题的函数逼近器,跟从传统统计学习中脱胎而出的机器学习本质有很大区别,所以就算你从机器学习开始学起,然后再使用深度学习。很快你就会发现,两个东西完全不一样。

打个不恰当的比喻,前者是有严格数理推导的,比较nerd;后者则是暴力求解的代表,过后才试图用统计学知识和概念去解释,比较geek。所以如果只是使用深度学习完成一项工作的话,不要说掌握机器学习了,其实你只需要稍微了解一下深度学习就可以了,现在API调用十分无脑,配合pytorch这种pythonic的工具,可以说你只需要会点python,数据准备好,github找个项目拉下来一跑,齐活。

回答四

作者:周岩
链接:https://www.zhihu.com/question/382278216/answer/1192684168

最基础的东西还是要了解,机器学习本身就涉及到统计和优化的知识,是一门交叉学科。

不了解这些你不会明白那些模型是做什么的,也无法理解数据是如何用的。最起码要了解最基础的最小二乘,逻辑回归,贝叶斯,PCA这些。深度学习在机器学习的基础模型上又有了很多扩展,需要更强的编程知识。

回答五

作者:辛俊波
链接:https://www.zhihu.com/question/382278216/answer/1127012045

作者:周岩

近几年面试了不少校招和实习生,深感深度学习之火,以至于很多学生只会各种nn网络,对基础的机器学习算法不屑于了解。在我看来,如果你真的想深入了解深度学习,就不可能不了解机器学习的很多算法基础,就说说过拟合

  1. 深度学习网络规模做大,免不了会遇到过拟合。说到过拟合欠拟合,都有什么手段解决?对于模型的方差和偏差分别怎么影响的?

  2. 正则化可以缓解过拟合,那我们来说说, l1正则和l2正则有什么区别?哦?除了了解网上经典的那张坐标解释,是否了解它们在贝叶斯先验上属于不同的分布?说到贝叶斯分布免不了要了解共轭先验,为什么要服从这种分布?还有哪些经典的共轭分布?

  3. dropout也能解决过拟合,请问为什么能work?本质上就是一种bagging的思想。说到bagging,免不了就要知道boosting,这两者在降低模型方差偏差影响怎样?

  4. 说到dropout,免不了和batch normalization对比,后者是为了解决什么问题提出来的?对比数据白化,pca等其他方法有什么区别?还有哪些数据的normalization手段?

你看,一个过拟合的问题在深度学习的表现,看似都是深度的方法,背后涉及的原理全都是更加底层的机器学习基础。


编者回答

作者:黄海广

如果是单纯做本科生毕业设计的话,可以直接从深度学习入手,本科阶段对毕设的要求并不高,只要符合学术规范,不存在抄袭,模型能work即可。

作为老师,对本科阶段的毕设要求就是这些。

但是,如果想进一步提高的话,还是得学习下机器学习的基本原理。

最低要求掌握的机器学习知识是:

机器学习算法的类型:如监督学习(分类、回归)、无监督学习(聚类、降维等)等基础知识。

基础算法:线性回归、逻辑回归、PCA、K-means

机器学习技巧:模型拟合程度与正则,模型评估,特征工程等

编程技巧:先会Python的基本操作,然后看懂一些基本的机器学习算法的Numpy的实现,这时候才可以开始学PyTorch。

过了本科阶段,就不能做一个调包侠了,基础知识决定水平的上限。





    
往期精彩回顾




站qq群955171419,加入微信群请扫码:
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/124620
 
363 次点击