
简介本资源是李宏毅教授2021年春季《机器学习与深度学习》课程的配套学习材料合集面向高校学生、AI初学者及自学者系统支撑理论理解、代码实践与作业复现。压缩包共122个文件涵盖40份PPT课件含Domain Adaptation、强化学习等前沿章节、31个Jupyter Notebook作业代码含GAN、对抗攻击、Colab训练等典型实验、23份PDF笔记与说明文档以及CSV数据集、模型权重.pth、Markdown指南等辅助内容整体大小273.51MB结构清晰按ppt/homework/video分目录组织。已有2737人下载学习内容持续同步官网更新至第九章覆盖从基础回归分类到生成模型、鲁棒性训练等进阶主题提供可直接运行的TensorFlow/PyTorch实现、完整数据集如covid.train.csv及本地化HTML作业模板显著降低入门门槛与复现成本。 第一次完整刷完李宏毅老师的《Machine Learning》(2021春) 是在一个很普通的周末。当时我已经零散看过不少机器学习和深度学习的文章也照着教程跑过几个模型但总觉得知识是散的今天看到一个概念明天看到一个损失函数很难把它们串成一条线。直到把这一整门课从绪论到最后的终身学习完整过了一遍配合PPT精读和作业实战才算是把机器学习和深度学习的主干脉络捋顺了。这门课的视频、PPT、作业和代码都在GitHub上能直接找到仓库名就叫 machineLearningDeepLearning里面把李宏毅2021机器学习深度学习课程的笔记、PPT和作业都整理好了特别适合想系统入门又不想啃英文教材的人。这篇文章我就以“过来人”的身份聊聊这门课到底应该怎么刷、笔记怎么整理、PPT里哪些章节最值得反复读、HW1到HW14每个作业到底在练什么以及本地环境配置时踩过的一些坑。如果你正准备开始学机器学习和深度学习或者已经到了期末复习阶段想找一份够系统的中文讲义这份内容应该能帮你省下不少时间。1. 为什么是李宏毅2021课程定位和真实学习收益先说说这门课的位置。国内提到机器学习入门绕不开三座大山吴恩达的Coursera课程、周志华的《机器学习》也就是大家常说的西瓜书、还有李宏毅的《机器学习》。吴恩达的课胜在数学推导温和、由浅入深但偏传统机器学习方法深度学习的部分占比不高。西瓜书理论严谨但如果你不是计算机科班出身读起来会有一定门槛尤其是有监督学习那一堆公式的符号体系光适应就需要时间。相比之下李宏毅2021这门课最大的特点是讲深度学习讲得极其清楚而且每讲完一个技术原理立刻配一个非常生动的生活化例子让你觉得“神经网络”并不是什么神秘的黑盒。从课程内容上看2021年春季这门课覆盖的面很广从回归、分类这类基础监督学习任务出发一路讲到反向传播、CNN、RNN、Self-Attention、Transformer、BERT、GAN、自编码器、异常检测、可解释性AI、模型压缩、元学习、强化学习、终身学习。基本把当前深度学习最主干的技术方向都扫了一遍。很多人学机器学习最大的困惑是“不知道学了之后能做什么”这门课的好处在于它每一章节都给你一个看得见摸得着的场景——比如HW1让你预测新冠确诊人数HW6让你生成动漫头像这些作业做完之后你是真的有东西可以拿去和朋友展示的。另一个很现实的好处是它是全中文授课PPT排版也非常干净公式和示意图都做得足够清晰。对国内学生来说不用一边看视频一边查术语翻译学习效率会高很多。如果你是准备期末复习的话这套课程的PPT和笔记基本可以当一份“深度学习知识地图”来用配合西瓜书查漏补缺效果相当不错。2. 笔记怎么记面向复习的课程骨架整理法刷课和刷剧不一样光看视频很容易陷入“眼睛会了脑子不会”的状态。我的经验是每一节课都要边听边整理出自己的笔记不是抄PPT而是把PPT上的推导用自己的话重新写一遍。这门课信息量很大如果不及时整理两周后再回头看视频等于从头再来。2.1 笔记结构按技术主题而不是按课时建议不要一节一节地记笔记而是把课程内容按主题拆成几个大的模块。我自己的笔记目录大致是这样的监督学习基础线性回归、逻辑回归、分类、梯度下降、损失函数选择深度学习核心神经网络结构、反向传播、优化器、正则化、Batch Normalization卷积神经网络CNN原理、感受野、池化、经典网络结构序列模型RNN、LSTM、Seq2SeqAttention机制与TransformerSelf-Attention、Multi-Head Attention、位置编码BERT与NLP预训练BERT原理、微调、问答任务生成模型GAN原理、训练技巧、自编码器、异常检测可解释性、模型压缩、元学习、强化学习、终身学习每个主题下再拆成几个固定板块“核心概念”、“关键公式”、“我的理解”、“常见误区”、“对应PPT页码”、“对应作业”。这个结构的好处是复习的时候你可以直接按主题索引而不是翻视频。期末复习阶段我自己就是靠这份笔记把每个章节的核心考点重新过一遍效率非常高。2.2 哪些内容值得重点记录有一段我印象很深李宏毅在讲梯度下降的时候花了很大篇幅讲“学习率太小/太大”的影响还放了一张Loss与参数关系的等高线图非常直观。这种图是必须自己动手截下来存进笔记的因为考试时很可能就会出“学习率过大导致Loss爆炸”这类选择题。Transformer这一章也值得花大力气记录。李宏毅讲Self-Attention时把Query、Key、Value的运算过程一步步画出来还特意解释了为什么要除以根号d_k——这一步对新手来说比较费解如果只是看PPT很容易忽略但如果你自己推导一遍会发现这其实是为了防止点积结果过大导致softmax进入饱和区。我在笔记里专门写了一行“除以√d_k不是因为好看而是为了梯度稳定”后来复习时这一句话帮了大忙。Transformer是当期深度学习最重要的考点之一这一部分笔记做得越细越好。另外像“池化”这种概念很多人以为CNN必须配池化。实际上李宏毅在PPT里提到池化只是用来降低分辨率的手段并非CNN的必要组件你完全可以只用带stride的卷积来降采样。这类“打破直觉”的细节考试特别喜欢考记录下来非常划算。2.3 用什么工具记我个人推荐Markdown图片引用的方式。因为课程涉及大量公式和图解纯文字很难表达清楚。我喜欢用Typora或VS Code写Markdown公式用LaTeX语法截图直接放到本地一个figures目录里统一管理。如果你还想把笔记发布到个人博客或GitHub上这一套方案会非常顺手。不建议单纯用Word公式排版太痛苦了。3. PPT精读哪些章节值得反复嚼李宏毅的PPT本身就很有营养很多细节只听视频是感受不到的必须静下来精读。以下是我认为最值得反复翻的几个章节每一章都值得花至少两三天去消化。3.1 Self-Attention与Transformer整个现代深度学习的地基如果说这门课只看三章那么我强烈推荐看Self-Attention、Transformer和Bert这三章。原因很简单现在无论是NLP还是CV都逃不开Transformer结构甚至推荐系统、强化学习领域也在大量借鉴Attention机制。李宏毅2021的PPT里把这部分讲得非常“手把手”从“为什么要Attention”开始到“Attention怎么计算”再到“Multi-Head Attention到底在干什么”层次非常清楚。我当时精读时做了一件事把Transformer的Encoder部分结构图单独截图然后用箭头标注每个子模块的输入输出形状。这样做完之后你就能清晰地知道“从词向量到最终输出”之间每一层张量是怎么变化的。面试或考试时如果遇到“请简述Transformer结构”你甚至可以凭这张图完整口述出来。3.2 GAN那章理解生成模型的起点GAN是很多初学者觉得玄学的部分。李宏毅的PPT里用了“伪造钞票”和“警察抓假币”这种例子来解释生成器与判别器的对抗关系当时看的时候觉得很有趣但后来才发现这个例子比很多教材里“分布匹配”这类说法好懂太多。PPT里还讲了训练GAN的常见问题比如模式崩溃、判别器太强导致生成器梯度消失等这些知识点都是我后来做实际生成任务时反复踩坑后才有更深理解的。建议精读时特别留意“WGAN”那一小节。李宏毅会讲为什么原始GAN的损失函数在判别器训练得太好时会导致生成器学不到东西而WGAN通过Wasserstein距离来缓解这个问题。这部分推导虽然有一点数学门槛但非常值得啃下来因为生成模型面试基本必考。3.3 可解释性AI与模型压缩容易被忽视但很有用这两部分在很多人看来像“选修课”于是直接跳过了。但恰恰是这些章节后来我在实际工作中用得最多。可解释性AI章节讲的Grad-CAM、LIME等方法的思路能够帮你理解模型到底在“看什么”这在做图像分类、医疗影像分析等场景时特别重要。模型压缩章节讲的剪枝、量化、知识蒸馏则是把模型部署到边缘设备时的利器。李宏毅2021年的PPT里模型压缩部分专门讲了Distillation蒸馏的思路用一个大的Teacher模型去教一个小Student模型。以前我不太理解为什么蒸馏会有效直到自己做了实验才发现Teacher模型的软标签确实包含了类别之间的相似性信息这比单纯用真实标签训练小模型效果要好很多。3.4 强化学习概念多但核心逻辑就一条强化学习章节对新手来说是最容易“听不懂”的。李宏毅的处理方式是从Policy Gradient讲起再引出Actor-Critic和PPO。PPT里放了大量动画和示例来展示智能体在环境中的交互过程这种“先看效果再讲公式”的顺序对建立直觉非常有帮助。但只要理解了“最大化期望回报”这条主线后面的各个算法都是在这个框架下做优化技巧的变体。4. 作业实战从回归到强化学习的十四道关卡这门课的作业设置是它最强的部分之一。每一个作业都对应一个非常具体的任务让你在代码层面真正跑通一个项目。从Kaggle上也有对应的Public Baseline你可以对比自己的成绩。4.1 HW1到HW7从回归到Transformer的爬坡过程HW1是一个典型的回归问题使用COVID-19确诊数据来预测未来某个地区的病例数。这个作业的难点不在于模型而在于特征工程和数据预处理。我当时第一次做完Public Score大概是0.9左右后来通过做特征标准化、去掉异常值、加入时间窗口特征之后分数明显下降。这个作业最大的价值是让你体会“特征工程的收益往往大于模型调参”。HW3是图像分类任务用CNN对食物图片进行分类。这个作业我开始意识到PyTorch的DataLoader、Transform、模型保存与加载这些工程化操作的重要性。HW5是英译中任务使用了Transformer架构数据集也比较大是整门课第一个真正吃显存的作业。如果你用Colab免费版做训练时间会很长建议学会使用早期的Early Stopping和梯度累积策略。HW6是GAN生成动漫头像这个作业特别好玩也特别容易让人绝望——因为你会遇到生成器Loss已经很低了但生成出来的还是模糊的一团的情况。后来我在代码里加入了一些技巧比如使用BCEWithLogitsLoss来保证数值稳定性把生成器的学习率调低一点训练总步数拉长才慢慢看到清晰的人脸轮廓。HW7是一个BERT问答任务具体目标是给定一篇文章和一个问题从文章中提取答案片段。这个作业因为已经提供了预训练模型主要是“如何微调”的问题。做完这个作业你会发现所谓“大模型”并没有那么神秘本质上就是加载预训练权重在特定数据集上继续训练。下表是我整理的作业核心要点作业任务核心模型/技术我踩过的最大一个坑HW1COVID-19病例数预测线性回归/MLP、特征工程忘记标准化了模型收敛特别慢HW2音高分类逻辑回归、概率输出分类别权重不平衡F1分数很低HW3图像分类食物CNN未做数据增强严重过拟合HW4说话者分类Self-Attention序列长度差距大没有统一Padding策略HW5英译中TransformerLearning Rate设置过低训练几乎不收敛HW6动漫头像生成GAN判别器训太快生成器梯度消失HW7问答抽取BERT微调输出位置Softmax维度搞错导致Acc为0HW8异常检测自编码器重建误差阈值选得不合适误报率很高HW9解释性AIGrad-CAM可视化时张量需要detach否则画图报错HW10模型攻击FGSM攻击强度太大图片人眼都看不清了HW11模型压缩剪枝、蒸馏蒸馏时温度系数设置过高软标签过于平滑HW12元学习MAML对多任务batch的处理理解不到位HW13强化学习PPOReward归一化处理不当训练特别不稳定HW14终身学习EWC忘记了旧任务的buffer灾难性遗忘严重4.2 作业代码组织经验别把Notebook当草稿纸很多初学者喜欢直接在Colab Notebook里写代码写完就跑跑完就关结果代码烂在笔记本里。我的建议是每个作业都建立一个独立的项目文件夹包含data、models、src、checkpoints、logs这几个子目录把训练和评估逻辑分到不同的.py文件里而Notebook只用来做数据可视化和快速实验。这样到期末复习时想重新看某个作业的代码你只需要打开src/main.py就可以了不必在一堆Cell里翻找。另外如果你用的是Colab一定要学会挂载Google Drive并在代码里定期保存checkpoint。我有一次跑了三个小时GAN训练因为忘记保存模型最后Colab连接断开全部白费。从那之后我每个epoch都会保存一组权重后面如果发现生成效果变差了还能回到之前某个状态重新训练。5. 本地环境配置Ubuntu系下的一个完整避坑参考虽然用Colab很方便但如果你和我一样本地有一张显卡还是想在自己机器上跑。这里就涉及机器学习和深度学习最让人头疼的环境配置问题。搜索热度里有很多人查“ubuntu22安装深度学习”“ubuntu24.04配置深度学习环境”说明踩坑的人不在少数。我以Ubuntu 22.04/24.04为例梳理一套稳定流程。5.1 驱动、CUDA、PyTorch的安装顺序首先驱动和CUDA的安装顺序是有讲究的。正确流程是先装NVIDIA驱动再确认驱动正常然后装CUDA Toolkit最后再装PyTorch。不要上来就复制网上的命令装CUDA因为驱动版本和CUDA版本是有对应关系的。第一步确认显卡型号lspci | grep -i nvidia第二步安装驱动。最简单的方式是在“软件和更新”里添加NVIDIA显卡驱动PPA或者用ubuntu-drivers工具自动安装推荐版本sudo ubuntu-drivers autoinstall sudo reboot重启后运行nvidia-smi如果能看到显卡信息说明显卡驱动已经装好了。注意如果你在“ubuntu22安装深度学习驱动安装了没反应”这种搜索结果里看到类似的描述基本上都是因为没有重启或者安全启动Secure Boot没有关闭导致驱动模块没有被加载。检查这两项就能解决大半问题。第三步安装CUDA Toolkit。这里有个常见的误区其实PyTorch在安装时会自带对应版本的CUDA runtime并不需要你单独安装完整的CUDA Toolkit。如果你只是用PyTorch跑模型只需要装驱动然后直接装PyTorch即可。只有当你要自己编译CUDA扩展时才需要额外安装完整版Toolkit。所以最终极简流程是# 确认驱动OK nvidia-smi # 创建虚拟环境 conda create -n ml python3.10 -y conda activate ml # 安装PyTorch以CUDA 12.1为例按官网实际命令为准 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121安装完成后在Python里验证一下import torch print(torch.__version__) print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))如果输出显示True和你的显卡名称环境就配置成功了。5.2 环境不一致导致的奇怪Bug我遇到过最奇怪的一个Bug是在本地训练HW5 Transformer时损失函数在某个step之后突然变成NaN。检查了很久发现不是代码逻辑问题而是PyTorch版本太老导致某些算子对Turing架构显卡的兼容性有问题。解决办法很简单升级到最新稳定版本即可。像这种“代码没变换个环境就好了”的问题一般来说就是因为CUDA和PyTorch版本组合不匹配。另一个常见问题是显存不足。李宏毅的HW5、HW7这类任务如果你的显卡只有6GB显存可能需要调整Batch Size到8甚至4然后使用梯度累积来模拟大Batch的训练效果。梯度累积的思路是先把多个Batch的梯度累积起来再统一做一次优化器更新这在代码里实现起来也简单accumulation_steps 4 optimizer.zero_grad() for i, (inputs, labels) in enumerate(train_loader): outputs model(inputs) loss criterion(outputs, labels) loss loss / accumulation_steps loss.backward() if (i 1) % accumulation_steps 0: optimizer.step() optimizer.zero_grad()5.3 深度学习开发常用的辅助工具除了PyTorch本身我还会安装几个能大幅提升效率的库比如tensorboard用于可视化训练曲线tqdm用于显示训练进度opencv-python用于图像处理pandas和numpy用于数据处理。如果你的作业涉及可视化还可以装matplotlib和seaborn。在Windows和macOS上的配置思路也类似只是驱动安装方式不同。Windows上装驱动后直接在NVIDIA官网下载对应的CUDA安装包即可macOS没有NVIDIA显卡跑深度学习主要靠CPU或者M系列芯片的Metal加速处理HW5这种Transformer任务会比较吃力适合跑一些较小的模型做实验。6. 学习节奏和一点额外建议最后聊聊实操层面的学习规划这是很多自学者最容易失焦的地方。我的建议是“三遍法”。第一遍以1.5倍速快速过一遍视频不做笔记只求知道这门课大概讲什么第二遍逐章节精读PPT并整理笔记这里不要追求速度一个章节花三四天很常见第三遍做作业每一个作业做完之后回到对应章节再读一遍PPT这时你会发现很多之前没看懂的细节突然变得合理了。如果你是为了期末复习时间不够的时候可以优先看HW1、HW3、HW5、HW7这四块对应的内容因为它们分别覆盖了回归、CNN、Transformer和BERT基本就是深度学习主干的“四大名著”。其他章节可以等到复习完主干内容后再去补。我在这个仓库里除了整理笔记和作业之外还专门维护了一个“考点速查表”把每一章出现过的重要概念、对应PPT页码、对应作业编号、常见考试形式都放在一起。这个东西在考前冲刺时帮助非常大。我的实际操作体会是机器学习和深度学习并不是一门靠天赋才能学会的课它的知识体系非常庞大但只要你能把一条主线完整走通——从基础损失函数到神经网络到Transformer到生成模型到强化学习——你就已经超过了绝大多数初学者。最后再分享一个小技巧无论你用什么工具记笔记一定要把每一张重要的结构图、流程图、公式图都截下来存档。这些图片在复习时能帮你节省大量重新理解的时间。我在期末复习时基本就是靠翻笔记里的图片来“过电影”一个晚上就可以把整门课的框架过一遍效果比重新刷视频好太多。本文还有配套的精品资源点击获取