软件工程本科生宝典
数据与AI · 大三下

深度学习

Deep Learning

数据与AI
课程类别
大三下
建议学期
重要性
重要程度
难度
学习难度

📖这门课到底讲什么

深度学习研究多层神经网络的学习方法与应用:从感知机与多层网络讲到反向传播与自动求导、激活函数与初始化、优化器(SGD 家族、Adam)与学习率调度、正则化(Dropout、权重衰减、批归一化)、卷积神经网络(卷积、池化、经典网络结构与残差连接)、循环网络与序列建模(RNN、LSTM、注意力机制与 Transformer)、生成模型(自编码器、GAN、扩散模型初步)以及训练工程(数据增广、迁移学习、分布式训练与混合精度)。学完你应能搭建并训练常见网络完成图像分类与文本任务、诊断训练不收敛或不稳定问题、读懂主流论文的网络设计,并能独立完成一个小型深度学习项目。

🎯为什么必须学好

当今 AI 岗位(算法、大模型、多模态、自动驾驶、推荐)几乎都要求深度学习能力,面试会问反向传播推导、梯度消失的成因与解决、BN 的作用与训练推理差异、注意力机制与 Transformer 的结构细节、为什么要用残差连接。读研做 AI 方向必须能复现论文实验,本课是唯一系统训练。工程落地侧,模型量化与部署、迁移学习与数据增广直接决定项目成败,这些能力都以本课为起点。

📌核心知识清单

  • 深度学习基础:感知机与多层前馈网络、通用近似定理、损失函数设计、计算图与自动求导与反向传播推导
  • 训练技巧:激活函数(ReLU 族与 GELU)、权重初始化(Xavier 与 He)、学习率调度与 warmup、梯度消失与梯度爆炸及其缓解
  • 优化算法:随机梯度下降与动量、AdaGrad 与 RMSProp 与 Adam 的原理与比较、二阶方法简介、批量大小的影响
  • 正则化与归一化:L2 权重衰减、Dropout、批归一化与层归一化的作用与差异、数据增强、早停与模型平均
  • 卷积神经网络:卷积与感受野与参数共享、池化与步幅与填充、经典结构(LeNet、AlexNet、VGG、GoogLeNet、ResNet)与残差连接、1x1 卷积与深度可分离卷积
  • 序列建模与注意力:RNN 与梯度问题、LSTM 与 GRU、序列到序列与编码解码、注意力机制、Transformer 的自注意力与多头与位置编码
  • 生成与无监督表示:自编码器与去噪自编码、变分自编码器、生成对抗网络、扩散模型基本思想、对比学习与自监督初步
  • 训练与部署工程:数据管道与增广、迁移学习与微调策略、混合精度与分布式训练基础、模型压缩与推理加速、实验管理与可复现性

✍️怎么学(可执行步骤)

  1. 主线用《动手学深度学习》(李沐,d2l-zh)逐章跑代码,第3至11章是核心,务必自己改参数并观察曲线变化,不要只运行不改
  2. 配《深度学习》(花书)第6至10章理解理论(反向传播、正则化、优化、卷积与循环网络),遇到推导卡住时读英文公开翻译与笔记
  3. 用 PyTorch 从零复现三个模型:手写多层感知机与反向传播、实现并训练一个小型 CNN 做手写数字识别、实现一个简单 Transformer 做情感分类
  4. 用 TensorBoard 或 wandb 管理实验:记录损失与准确率曲线、学习率与梯度范数,学会通过曲线诊断过拟合与学习率不当;再做一次完整的迁移学习微调实验

📚推荐教材与书籍

动手学深度学习(PyTorch版)李沐等 · 经典

代码与理论并重的最佳入门实践书,第3至11章随学随跑,是中文首选

深度学习Ian Goodfellow 等(花书) · 经典

理论权威,第5至10章是重点,适合作为理论支撑反复查阅而非一次通读

深度学习框架PyTorch:入门与实践陈云 · 入门

讲解 PyTorch 使用与项目实践,帮助快速上手框架而不被 API 卡住

神经网络与深度学习邱锡鹏 · 进阶

中文原创教材,理论推导与中文表达都很出色,适合系统提升理论素养

🎬视频课程 / 公开课

李沐逐章讲解并现场写代码,配合 d2l 教材是最好的学习组合

吴恩达深度学习专项,五门课覆盖从神经网络到序列模型与结构化项目

视觉与自然语言处理方向的两门经典课,作业需手写反向传播,极其扎实

🌐网站与文档

官方教程覆盖从张量到分布式训练,示例代码质量高

动手学深度学习在线阅读版,支持多框架代码切换

模型与数据集与推理接口平台,做大模型与微调实验的入口

🐙GitHub 开源资料

动手学深度学习中文版源码,配套 notebook 可直接运行与修改

花书中文翻译,理论部分的中文对照,读起来省力

主流深度学习框架源码,理解张量运算与自动求导的实现方式

预训练模型库,做 Transformer 微调与下游任务的工业标准工具

🧪动手实践任务

🧪

实践 1

手写多层感知机与反向传播(仅用 numpy)在 MNIST 上训练到九成以上准确率,并与 PyTorch 版本对比训练时间

🧪

实践 2

用 PyTorch 实现并训练一个小型 CNN:加入批归一化、Dropout 与数据增广,记录有无这些技巧时验证集准确率的差异并写出分析

🧪

实践 3

完成一次迁移学习实验:在预训练 ResNet 上微调一个自建的四分类图像数据集,对比冻结与全量微调的效果与耗时

🧪

实践 4

实现一个最小 Transformer 编码器完成文本情感分类,并用注意力权重可视化说明模型关注了哪些词

🧾考试与面试

💼 面试会怎么考

高频:反向传播的推导与计算图思想;梯度消失与梯度爆炸的原因与解决方法;ReLU 相比 Sigmoid 的优势;批归一化的作用原理以及训练与推理时的差异;Dropout 为什么有效、推理时如何处理;优化器 Adam 与 SGD 的差异与选择;卷积的计算量与参数量估计(给输入与卷积核算输出尺寸);残差连接解决了什么问题;Transformer 的自注意力公式推导、多头的作用、位置编码的必要性;过拟合的常见表现与处理手段;如何调试一个不收敛的模型。

📝 期末与考研怎么过

期末多为推导与设计题:网络参数量与输出尺寸计算、反向传播的步骤推导、损失函数选择理由、给定任务设计网络结构并说明理由、比较不同优化器与正则化方法、简答经典网络的关键创新。备考方式是把卷积尺寸与参数量计算、反向传播推导练熟,把常用技巧的动机与效果整理成表。目标八十分以上;这门课的分数往往由实验报告与课程项目决定,务必做出可展示的结果。

⚠️ 常见坑

  • 只会调库换模型,不理解反向传播与梯度,训练失败时无从诊断
  • 不管理实验与超参,随机种子与数据划分每次都变,结果不可复现也不可信
  • 在小数据集上直接训练大模型并抱怨过拟合,忽略迁移学习与数据增广这些更有效的手段
  • 只看训练损失下降就认为模型好,不看验证集与测试集表现,也不分析误差类型
  • 盲目堆叠网络与增加层数,忽略学习率与初始化,导致不收敛或梯度问题
→ 查看 大三下学期 的完整学期安排