hda 发表于 2023-10-4 20:05:46

学习深度学习是否要先学习机器学习?

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

lxi4509 发表于 2023-10-4 20:06:19

题主这是典型的学生思维了。上学的时候,老师都灌输给我们一个思想,就是先学好基础知识再学习高级知识。
但是!
我到了博士高年级才知道,我们需要的基础知识不是要完全掌握和理解,而是建立一个全面的目录。这个目录帮助你在遇到不懂的问题时,能够精准地定位是哪一类问题,并在哪里找到最好的学习资料。当你知道哪些知识在学习深度学习的过程中需要用到,你再去针对性地去学就可以了。如果你花了大量的时间学习机器学习,比如Boosting一类的算法,然后你发现深度学习根本用不上。这不白白浪费时间。所以,花有限的时间查询下深度学习需要哪些基础知识的储备,比如图神经网络需要有限的谱图论知识才可以通透地理解,那就去花有限的时间学习。然后把大量的时间花在你要学习的深度学习方向。
像有些书,比如深度学习花书就可以直接去看,门槛不高。如果遇到不懂的知识再去进行针对性地学习就可以了。

紫色梦烙印 发表于 2023-10-4 20:07:11

题主是要做毕设,那么完全没必须学传统的机器学习。
除非数学基础非常好,否则学完一遍机器学习基本算法就得毕业答辩了。
我之前带过做毕设的本科生,写毕设基本的思路是:

[*]深度学习发展、卷积、池化、激活、全连接、BN等操作,占一章
[*]数据增强、网络设计、损失函数,占一章
[*]指标统计、损失收敛、结果分析,占一章
总体来说,代码是开源的,数据是公开的、损失函数是别人设计的、网络结构是通用的。
自己要做的:把图画的漂亮,多选几个数据集验证、网络结构图画的好看、多写公式。

maojianmi 发表于 2023-10-4 20:07:17

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

[*]深度学习网络规模做大,免不了会遇到过拟合。说到过拟合欠拟合,都有什么手段解决?对于模型的方差和偏差分别怎么影响的?
[*]正则化可以缓解过拟合,那我们来说说, l1正则和l2正则有什么区别?哦?除了了解网上经典的那张坐标解释,是否了解它们在贝叶斯先验上属于不同的分布?说到贝叶斯分布免不了要了解共轭先验,为什么要服从这种分布?还有哪些经典的共轭分布?
[*]dropout也能解决过拟合,请问为什么能work?本质上就是一种bagging的思想。说到bagging,免不了就要知道boosting,这两者在降低模型方差偏差影响怎样?
[*]说到dropout,免不了和batch normalization对比,后者是为了解决什么问题提出来的?对比数据白化,pca等其他方法有什么区别?还有哪些数据的normalization手段?
你看,一个过拟合的问题在深度学习的表现,看似都是深度的方法,背后涉及的原理全都是更加底层的机器学习基础。

gurucn 发表于 2023-10-4 20:07:39

做一名调包侠,根本不用先学机器学习,github上找个star多的repo,下载下来改一改跑起来完事了。
下面的回答我主要写段子(如有雷同,纯属巧合):

[*]某位小朋友觉得学习率1e-3, 1e-4模型收敛太慢了,决定设成10;然后问我,为什么这个loss越来越大啊?
[*]某位小朋友说我有一个绝妙的想法:把LSTM末层输出与词向量求差值平方和,然后互相更新,这样就可以得到词向量了!
如何在训练LSTM的同时训练词向量?3. 某位小朋友觉得自编码器怎么都是两边输入输出的维度高,中间的维度低;自己有一个图灵奖级别的idea,设计一个两边输入输出的维度低,中间的维度高的模型。

http://picx.zhimg.com/v2-33df6d0107ff737f7a3cd8c4c4848601_r.jpg?source=1940ef5c
小朋友,你是不是有很多问号?
<hr/>万万没想到第3点,引发了巨大讨论。大家的建议和评论都非常有意思。我这里只是提供一下我的看法,在自编码器的框架下:
自编码器的隐藏层的维度https://www.zhihu.com/equation?tex=m要小于输入层的维度https://www.zhihu.com/equation?tex=n,才有意义。

[*]如果隐藏层的维度 https://www.zhihu.com/equation?tex=m 和输入层的维度 https://www.zhihu.com/equation?tex=n 相等的时候,只要令全连接层的权重为单位矩阵,偏置为0,就可以得到一个自编码器,这个自编码器没有提取任何特征。
[*]当隐藏层的维度https://www.zhihu.com/equation?tex=m大于输入层的维度https://www.zhihu.com/equation?tex=n,存在无数个权重矩阵相乘可以得到单位矩阵,这就意味着提取不到信息。
[*]只有隐藏层的维度https://www.zhihu.com/equation?tex=m要小于输入层的维度https://www.zhihu.com/equation?tex=n的时候,权重矩阵相乘无法可以得到单位矩阵,此时学习到的权重才是非平凡的。

萤火虫儿 发表于 2023-10-4 20:07:55

直接看《神经网络与深度学习》,基本覆盖需要的知识了。
实验推荐Pytorch 和《动手学深度学习》。

针对题主本科毕设:机器学习要学,但现在学会影响毕设进度,时间充裕可以瞄一眼。
要读研的话,请进一步学习,如相关的数学,请参阅相关问题。
其他点赞的童鞋,硕博入门不适用,需要套餐,请参阅相关问题。

意外的一直有人点赞,还是补充几句:

[*]本回答是针对题主做本科毕设的回答,不适用广泛的情况。
[*]不同的背景适用的书不同,比如数学专业的童鞋就不适合这两本,请参阅相关问题。
[*]机器学习是深度学习的重要基础。你永远可以先看一眼二楼,但之后必须打地基。
[*]之前的推荐是Keras和《Python深度学习》,现在Pytorch更流行,更容易复现前沿。

私信的问题我会尽力回答,如果害羞私信可以走咨询:
页: [1]
查看完整版本: 学习深度学习是否要先学习机器学习?