# 深度学习笔记 **Repository Path**: lemonlen/deep-learning-notes ## Basic Information - **Project Name**: 深度学习笔记 - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-01 - **Last Updated**: 2025-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 课程安排 基于每天投入 **5-6 小时**的学习强度(兼顾理论+代码实践),结合深度学习核心挑战与李沐课程内容,制定以下 **14 周学习计划表**(每周 5 天,预留 2 天缓冲/复习)。重点遵循 **“上午学理论 → 下午写代码 → 晚上总结”** 的闭环节奏: --- ### **📅 每日学习模板(5.5小时高效分配)** | **时间段** | **内容** | **关键目标** | 时长 | |------------------|---------------------------|------------------------------------------|--------| | **上午 9:00-11:30** | 理论精讲+推导 | 理解数学原理、模型架构设计逻辑 | 2.5h | | **下午 14:00-17:00** | 代码实战+调试 | 独立完成项目,解决报错,可视化结果 | 3h | | **晚上 20:00-20:30** | 复盘笔记/Git提交 | 用Markdown记录核心公式、坑点,推送代码仓库 | 0.5h | > 💡 **效率技巧**: > - 上午用 **纸笔推导公式**(如反向传播矩阵计算) > - 下午用 **Jupyter分段执行**+**TensorBoard可视化** > - 晚上用 **Git提交带注释的代码**(强制输出倒逼理解) --- ### **📚 14 周详细计划表(按天拆解核心任务)** #### **阶段1:神经网络基础与CNN攻坚(Week 1-4)** | **周数** | **日期** | **上午理论重点** | **下午实战任务** | **挑战目标** | |----------|----------|------------------------------------------|----------------------------------------------------------------------------------|-------------------------------| | **Week1**| 周一 | 线性回归/Softmax数学推导 | 用NumPy实现梯度下降,对比SGD vs Batch GD速度 | 理解计算图本质 | | | 周二 | 多层感知机(MLP)反向传播手推 | PyTorch实现MLP,用Fashion-MNIST测试不同激活函数效果 | 绘制损失/准确率曲线 | | | 周三 | 过拟合解决方案:Dropout/L2正则 | 在MLP中添加Dropout层,观察验证集性能变化 | 找到最佳正则化强度 | | | 周四 | CNN卷积层/池化层计算过程 | 手动计算卷积输出尺寸,用PyTorch实现LeNet | 可视化卷积核学习到的边缘特征 | | | 周五 | 现代CNN架构:ResNet残差连接 | 复现ResNet-18,在CIFAR-10上训练 | **达到85%+测试准确率** | | **Week2**| 周一 | 数据增强原理(旋转/裁剪/Mixup) | 为CIFAR-10添加数据增强pipeline,对比增强前后模型泛化能力 | 设计自定义增强策略 | | | 周二 | 优化器进阶:Adam/Adagrad收敛性分析 | 在ResNet上对比SGD/Adam,绘制学习率衰减曲线 | 实现余弦退火学习率 | | | 周三 | 批归一化(BatchNorm)作用机制 | 在CNN中插入BN层,观察训练速度/梯度变化 | 解释BN为何允许更大学习率 | | | 周四 | 轻量化CNN:MobileNet深度可分离卷积 | 将ResNet替换为MobileNet,测试手机端推理延迟(用PyTorch Mobile) | **模型压缩到<5MB** | | | 周五 | 模型可解释性:CAM类激活图 | 用Grad-CAM可视化ResNet决策区域,分析错误样本原因 | 发现对抗样本脆弱性 | > ⚠️ **Week 3-4** 进入**项目实战**: > - 使用Kaggle「Dogs vs Cats」数据集,**从零构建完整CNN分类pipeline**(含数据加载/增强/训练/部署) > - 重点解决**数据不平衡问题**(过采样/代价敏感学习) > - **输出要求**:GitHub仓库包含Docker训练脚本 + ONNX模型 + 测试报告 --- #### **阶段2:序列建模与Transformer(Week 5-10)** | **周数** | **日期** | **上午理论重点** | **下午实战任务** | **挑战目标** | |----------|----------|------------------------------------------|----------------------------------------------------------------------------------|-------------------------------| | **Week5**| 周一 | RNN梯度消失问题与LSTM门控机制 | 用NumPy实现LSTM前向传播 | 理解细胞状态C_t的物理意义 | | | 周二 | Seq2Seq架构与Teacher Forcing训练策略 | PyTorch实现机器翻译(英→法),BLEU值评估 | 分析Exposure Bias现象 | | | 周三 | 注意力机制权重计算可视化 | 在Seq2Seq中添加Attention,比较加性/点积注意力效果 | 观察长句子对齐效果 | | | 周四 | Transformer的Self-Attention矩阵推导 | 手写Self-Attention计算代码(Q/K/V矩阵) | 解释多头注意力的优势 | | | 周五 | Transformer位置编码/层归一化 | 复现Transformer编码器,在IWSLT数据集训练 | **BLEU值 > 25** | | **Week6**| 周一 | BERT掩码语言建模(MLM)预训练原理 | 加载HuggingFace Bert,用probing任务分析词嵌入空间 | 探索[CLS]向量是否包含句信息 | | | 周二 | 微调策略:Adapter/Prefix-tuning | 用Adapter微调BERT完成情感分类(仅训练0.5%参数) | **200样本达到80%准确率** | | | 周三 | 模型蒸馏:知识迁移原理 | 将BERT蒸馏到BiLSTM,对比模型大小/预测延迟 | 精度损失控制在3%以内 | | | 周四 | 低资源NLP:半监督学习(UDA) | 用IMDB无标签数据提升分类效果,对比伪标签/一致性正则 | 减少50%标注数据需求 | | | 周五 | 因果语言模型(GPT架构) | 用HuggingFace GPT-2生成文本,控制temperature参数 | 避免生成重复文本 | > 🔥 **Week 7-10** 核心挑战: > - **任务1**:使用Transformer完成**中文古诗生成**(数据清洗是关键!) > - **任务2**:在医疗文本(如NCBI疾病数据集)实现**小样本实体识别** > - **输出要求**:技术报告(含错误分析/数据质量影响评估) --- #### **阶段3:缺陷攻克与工业部署(Week 11-14)** | **周数** | **日期** | **上午理论重点** | **下午实战任务** | **挑战目标** | |----------|----------|------------------------------------------|----------------------------------------------------------------------------------|-------------------------------| | **Week11**| 周一 | 对抗攻击:FGSM/PGD白盒攻击 | 用FoolBox库生成对抗样本攻击ImageNet模型,观察置信度变化 | 实现非定向攻击 | | | 周二 | 防御策略:对抗训练/输入预处理 | 在CIFAR-10上加入对抗样本重训练,测试鲁棒性提升 | 在PGD攻击下精度下降<10% | | | 周三 | 模型可解释性:SHAP/LIME原理 | 用SHAP分析贷款预测模型,识别关键特征 | 发现并修正特征泄露问题 | | | 周四 | 模型压缩:剪枝(Pruning)原理 | 对ResNet进行结构化剪枝(30%稀疏度),微调恢复精度 | 精度损失补偿到1%以内 | | | 周五 | 量化(Quantization)部署加速 | 将FP32模型转为INT8(PyTorch QAT),测试端上推理速度 | **延迟降低2倍+** | | **Week12**| 周一 | MLOps基础:数据版本控制(DVC) | 配置DVC跟踪数据集/模型版本 | 复现历史实验 | | | 周二 | 模型监控:漂移检测指标 | 部署API服务,用Prometheus监控预测分布变化 | 设计指标报警规则 | | | 周三 | 持续集成:模型单元测试 | 为图像分类器编写测试用例(旋转不变性/亮度鲁棒性) | 自动化测试pipeline | | | 周四 | 端到端项目:垃圾图片分类+移动端部署 | 开发Flask API + Android App(使用TorchScript) | **用户上传图片实时分类** | | | 周五 | 因果推断:反事实分析框架 | 在房价预测模型中添加反事实验证(如:“若卧室增加,房价是否合理增长?”) | 避免荒谬预测 | --- ### **🚀 关键资源与工具包** 1. **课程优先级**: - 李沐 B 站:[《动手学深度学习》](https://space.bilibili.com/1567748478)(重点看 **Pytorch 实现版**) - 补充理论:[斯坦福CS231n](https://cs231n.stanford.edu/)(CNN/优化)、[CS224n](https://web.stanford.edu/class/cs224n/)(NLP) 2. **效率工具**: - **代码调试**:PyTorch Lightning(减少模板代码)、Jupyter %debug 魔术命令 - **实验管理**:Weights & Biases(可视化超参数效果) - **部署利器**:Docker(环境隔离)、ONNX(跨平台模型格式) 3. **防崩策略**: - 每日备份代码到 **GitHub Private Repo** - 使用 **Colab Pro+** 避免本地GPU资源不足 - 每周日进行 **20分钟知识脑图整理**(推荐XMind) > 🌟 **终极检验**:在第14周完成一个**端到端应用**(如:医疗报告分类系统) > - 涵盖数据清洗(解决低质量文本)、模型轻量化(MobileBERT)、可解释性输出(SHAP可视化) > - 部署到云服务器(AWS EC2)并编写技术文档 **坚持按此计划执行,每天确保代码输出+理论闭环,14周后你将有实力解决80%的工业级深度学习问题!**