看不懂李沐,不是你笨,是路线走反了。
搞深度学习也有几年了见过太多人踩同一个坑看完吴恩达、学完小土堆PyTorch兴冲冲打开李沐的《动手学深度学习》结果第三章就开始怀疑人生。昨天有个大一的本科生找我说他已经把吴恩达的机器学习刷完了小土堆的PyTorch入门也看了一遍刘二大人的PyTorch深度学习实践学了大半但李沐的课就是啃不动问我能不能直接跳过去上实战。我问他你写过一个完整的训练循环吗他愣住了。这就是问题所在。你看了半天视频代码都是跟着敲的从来没有从零开始搭建过一个能跑的模型。这不是学习这是看戏。一、为什么李沐的课会劝退李沐的《动手学深度学习》好是真的好。它涵盖从深度学习基础到前沿技术的完整内容结合数学公式、图解和PyTorch代码实现。但正因为它太全面了反而成了新手的地雷。这里有三个根本原因。第一跳跃度过大。吴恩达的机器学习课程偏重理论推导小土堆PyTorch偏重API使用刘二大人讲原理比较细。这三者之间本就存在断层。吴恩达告诉你梯度下降是怎么回事小土堆告诉optimizer.step()怎么用但中间那个为什么梯度能更新参数的思维鸿沟很多人是靠死记硬背跨过去的。等你打开李沐的书第一章就在讲数值计算、自动求导第二章直接上多层感知机。如果你没有手动写过一次反向传播这些内容就像是天书。第二数学密度高。李沐的课程每一节都包含大量数学推导卷积运算的数学表达、注意力机制的矩阵变换、Batch Normalization的求导过程。这些内容在吴恩达的课里被简化成了动画在李沐的书中却是实打实的公式。我见过有人拿着计算器在草稿纸上演算Attention的维度变换算到最后发现自己连矩阵乘法的维度都对不上。这种挫败感会让大部分人放弃。为方便大家学习 这里给大家整理了一份学习资料包 需要的同学 根据下图自取即可第三代码要求高。小土堆的视频是调包派的天堂nn.CrossEntropyLoss()一贴optimizer.step()一调损失函数就往下掉了。但李沐会让你从零实现一个卷积层、自己写一个Adam优化器、手动搭建一个Transformer块。如果你只是会用API从未理解过这些组件内部的运作机制那每一步都是卡点。二、你的基础到底够不够先来个自测。如果下面这五条你做不到三条以上别碰李沐先去实战。一、能不看文档手写一个简单的训练循环for epoch in range(epochs): for x, y in dataloader: optimizer.zero_grad() loss criterion(model(x), y) loss.backward() optimizer.step()这五行代码是深度学习的Hello World如果你需要查文档才能写出来说明你还没有形成肌肉记忆。二、能解释清楚Tensor的维度变化给你一个卷积层输入是(batch_size32, channels3, height224, width224)卷积核是(out_channels64, in_channels3, kernel_size7, stride2, padding3)。你能立刻说出输出形状是(32, 64, 112, 112)吗如果这需要你拿笔算半天那就别碰李沐。三、知道什么时候该用view()、permute()、transpose()这三者是PyTorch新手最容易被折腾的三个函数。如果你每次都靠试错来决定用哪个说明你对Tensor的操作还不够直觉化。四、能读懂简单的数学公式并翻译成代码比如看到这个公式yσ(Wxb)y \sigma(Wx b)你能立刻写成y torch.sigmoid(torch.mm(W, x) b)吗五、独立完成过至少一个完整项目不管是MNIST分类还是房价预测只要是从数据处理到模型评估全流程自己完成的都算。如果所有项目都是跟着教程敲的那不算。三、两种学习路线选对就是天壤之别我见过两种典型的学习者。第一种是横向铺陈派。他们坚信万丈高楼平地起一定要把地基打牢。先学半年线性代数再啃完统计学习理论然后刷完吴恩达全套课程接着是李沐最后才敢碰实战。结果呢学到一半就崩了。因为深度学习是一个实践性极强的领域你花半年打的基础可能三个月就忘了。更糟糕的是你根本不知道这些抽象的理论在解决什么具体问题。这类人最后的结局是理论讲得头头是道但连个图像分类都训练不明白。第二种是纵向深潜派。他们的方法是遇到什么学什么。想做一个猫狗分类器好先学PyTorch基础API遇到卷积层不懂就去查遇到激活函数不懂就去补遇到过拟合就去学正则化。这种方法看起来零散但每学一个知识点都能立刻解决当下的困惑反馈感极强。而且你在解决问题的过程中自然就知道哪些理论是重要的哪些是可以先放放的。那个入职OpenAI的瑞典高中生用的就是这种方法。为方便大家学习 这里给大家整理了一份学习资料包 需要的同学 根据下图自取即可四、我的建议两条路二选一根据你的现状我给你两个明确的方案。方案A李沐必须要看但不是现在适合人群目标是科研、想深入理解算法原理、准备读研或从事算法岗。具体路径先用一到两个月做实战项目选一个你感兴趣的方向CV、NLP、推荐系统都可以从GitHub上找一个star多的项目把它跑通然后逐行理解代码。等你至少独立完成了三个完整项目再回头去看李沐。那时候你会发现李沐书里的那些公式和代码都是你已经在实战中用过的东西学习曲线会平滑很多。方案B直接上实战李沐当工具书适合人群目标是工程落地、想快速上手做项目、对理论要求不高。具体路径找一个实战项目开始做。可以是Kaggle比赛可以是公司实际业务也可以是自己感兴趣的应用。遇到不懂的理论就去李沐的书里查相关章节。这本书本质上是一本深度学习的百科全书不是一本需要从头读到尾的教材。你用到哪个模型就去翻哪一章。五、一张表帮你决定下一步当前状态建议行动能独立写训练循环做过至少3个完整项目直接啃李沐配合论文复现能写基本代码但项目都是跟着教程做的先独立做1-2个项目再决定是否看李沐只会调API项目经验为零别碰李沐去Kaggle找入门项目数学基础薄弱看公式就头疼先补线性代数和微积分再来学深度学习六、一个被忽视的真相深度学习的核心能力不是看懂多少理论而是解决实际问题的能力。很多简历上写着精通深度学习的候选人问他们一个简单的工程问题你的模型训练了三天发现损失函数不降你怎么办大部分人支支吾吾答不上来。他们知道什么是梯度消失知道什么是注意力机制但不知道如何排查一个训练不起来的模型。这比看不懂李沐更可怕。李沐的课是好课但它解决的是知其所以然的问题。如果你连知其然都做不到那所以然学了也记不住。⭕️ 最后一句实在话深度学习的入门门槛已经被这些优秀的课程拉得很低了。吴恩达给了你理论框架小土堆给了你API入门刘二大人给了你原理解析李沐给了你深度剖析。但没有人能替你走完最后一公里那就是自己动手做一个完整的项目。你问要不要看李沐我的回答是要看的但别现在看。先去Kaggle上找个入门比赛或者去GitHub上找个开源项目把它跑通改超参数调模型看它从准确率70%提升到85%的过程。那种成就感比听懂一百节课都管用。以上是我对深度学习入门路线的建议。你呢在学习深度学习的过程中有没有遇到过视频都看懂了但自己写代码就废了的情况欢迎在评论区分享你的故事。为方便大家学习 这里给大家整理了一份学习资料包 需要的同学 根据下图自取即可
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2590524.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!