Task2~Task2.2《深度学习详解》知识点总结
3.3 自适应学习率
3.3.1 动量法 (Momentum)
- 动量法通过结合当前梯度和之前梯度的方向来更新参数,帮助模型在梯度较小的区域逃离局部最小值和鞍点。
3.3.2 AdaGrad
- AdaGrad 自适应调整每个参数的学习率,根据历史梯度的大小进行调整,使得大的梯度值减小学习率,小的梯度值增大学习率。
3.3.3 RMSProp
- RMSProp 是一种自适应学习率的方法,它通过指数加权移动平均来调整学习率,适用于非平稳目标。
3.3.4 Adam
- Adam 结合了动量法和自适应学习率的优点,它使用一阶矩估计(梯度的指数加权平均)和二阶矩估计(梯度平方的指数加权平均)来调整每个参数的学习率。
3.4 学习率调度
- 学习率调度根据训练的进度自动调整学习率,常见的策略包括学习率衰减和预热。
3.5 优化总结
- 现代优化策略通常包括动量、自适应学习率和学习率调度,以提高模型训练的效率和效果。
3.6 分类
3.6.1 分类与回归的关系
- 分类问题可以视为回归问题的一种,但分类问题通常使用独热编码来表示类别。
3.6.2 带有softmax的分类
- Softmax 函数用于将模型输出转换为概率分布,使得每个类别的概率在0到1之间,并且所有类别的概率和为1。
3.6.3 分类损失
- 分类问题常用的损失函数是交叉熵损失,它测量的是两个概率分布之间的差异。
3.7 批量归一化 (Batch Normalization)
- 批量归一化 通过规范化层的输入来稳定和加速深度网络的训练,减少所谓的“内部协变量偏移”。
3.8 优化策略的实际应用
- 优化策略的选择和调整对模型的训练效果有显著影响,合适的策略可以加快收敛速度,提高模型性能。
Task2.3(实践任务):HW3(CNN)卷积神经网络-图像分类知识点总结
15分钟速通Homework3
Step 1: 准备算力
- 利用提供的链接获取所需的计算资源。
Step 2: 一键运行Notebook
- 获取数据集和代码文件
- 使用
git lfs install
和git clone
命令下载数据集和代码文件。
- 使用
- 一键运行代码
- 打开
LeeDL-HW3-CNN
文件夹,运行HW3-ImageClassification.ipynb
。 - 等待约12分钟,查看模型训练准确率和生成的
submission.csv
文件。
- 打开
Step 3: 运行完成后停止实例
- 使用提供的链接停止计算实例。
代码详解
1. 导入必要的库
- 导入
numpy
,pandas
,torch
,torchvision
等库进行数据处理和模型构建。
2. 数据准备与预处理
- 使用
transforms
进行图像的预处理,如调整大小和转换为Tensor。 - 定义
FoodDataset
类,用于加载和预处理图像数据。
3. 定义模型
- 构建卷积神经网络(CNN),包括卷积层、批归一化层、ReLU激活函数、池化层和全连接层。
4. 定义损失函数和优化器
- 使用交叉熵损失函数和Adam优化器。
5. 训练模型
- 实现模型的训练循环,包括前向传播、计算损失、反向传播和参数更新。
6. 评估模型
- 在验证集上评估模型性能,记录损失和准确率。
7. 进行预测
- 使用训练好的模型对测试集进行预测,生成
submission.csv
文件。
优化方向
数据增强/图像增广
- 包括几何变换、颜色变换、噪声添加、裁剪和填充等技术。
高级数据增强技术
- 混合增强(MixUp)、随机擦除(Random Erasing)、对抗样本生成(Adversarial Augmentation)。
优化网络结构
- 增加网络深度、引入残差连接、应用现代卷积神经网络架构。
优化算法
- 使用正则化技术、优化激活函数、优化权重初始化、损失函数调整等。
硬件加速
- 利用GPU、TPU等硬件加速器提升训练和推理效率。