594 lines
22 KiB
Markdown
594 lines
22 KiB
Markdown
# CIFAR-10图像分类模型横向测评 - 演讲稿
|
||
|
||
**演讲者**: 李博睿 (55230422)
|
||
**时长**: 约15-20分钟
|
||
**场合**: 计算智能课程技术报告
|
||
|
||
---
|
||
|
||
## 【第1页 - 封面】
|
||
|
||
大家好!我是李博睿,学号55230422。
|
||
|
||
今天我要向大家汇报的题目是《CIFAR-10图像分类模型横向测评》。
|
||
|
||
在这次研究中,我对比了四种不同的深度学习模型在图像分类任务上的表现,包括经典的CNN、现代的ResNet-18,以及两种加入了注意力机制的ResNet变体。
|
||
|
||
那么,让我们开始今天的汇报。
|
||
|
||
---
|
||
|
||
## 【第2页 - 目录】
|
||
|
||
今天的汇报主要分为五个部分:
|
||
|
||
首先,我会介绍**研究背景与动机**,说明为什么要做这个对比实验;
|
||
|
||
第二部分,我会详细讲解**四个模型的架构**,包括它们的设计原理和关键特点;
|
||
|
||
第三部分,我会**展示实验结果**,这是我们最关心的部分;
|
||
|
||
第四部分,我会**深入分析这些结果**,解释为什么会出现这样的现象;
|
||
|
||
最后,我会进行**反思**,指出实验中存在的问题,并提出改进方向。
|
||
|
||
---
|
||
|
||
## 【第3页 - 研究背景】
|
||
|
||
### CIFAR-10数据集
|
||
|
||
首先来看研究背景。
|
||
|
||
我选择的数据集是**CIFAR-10**,这是计算机视觉领域一个非常经典的基准数据集。
|
||
|
||
它包含**6万张32×32的彩色图像**,分为10个类别:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。
|
||
|
||
其中5万张用于训练,1万张用于测试。
|
||
|
||
虽然图像分辨率不高,只有32×32像素,但正是因为这个"小",CIFAR-10成为了快速验证和对比不同模型架构的理想选择。
|
||
|
||
### 研究意义
|
||
|
||
那么,做这个对比研究有什么意义呢?
|
||
|
||
**第一**,我想系统地评估不同深度学习架构的性能差异;
|
||
|
||
**第二**,我特别关注注意力机制在图像分类中的作用——理论上它应该能提升性能,但实际效果如何?
|
||
|
||
**第三**,这个研究可以为实际应用中的模型选择提供参考依据。
|
||
|
||
---
|
||
|
||
## 【第4页 - 研究动机与目标】
|
||
|
||
### 核心研究问题
|
||
|
||
具体来说,我想回答四个核心问题:
|
||
|
||
**第一个问题**:经典的CNN和现代的ResNet,它们的性能差异到底有多大?这个差距值得我们花10倍的参数量吗?
|
||
|
||
**第二个问题**:ResNet的核心创新——残差连接,它对训练深度网络的帮助是否真的如论文所说那么显著?
|
||
|
||
**第三个问题**:注意力机制近年来非常火热,CBAM和SE这两种注意力模块能否真正提升ResNet的性能?
|
||
|
||
**第四个问题**:性能提升和参数增加之间的权衡如何把握?我们是否应该一味追求更复杂的模型?
|
||
|
||
### 实验模型
|
||
|
||
为了回答这些问题,我选择了四个模型:
|
||
|
||
**CNN**:一个3层的卷积神经网络,参数量约1.2M,代表经典的浅层架构;
|
||
|
||
**ResNet-18**:18层的残差网络,参数量约11M,代表现代深度架构;
|
||
|
||
**ResNet-18+CBAM**:在ResNet-18基础上加入了通道和空间双重注意力机制;
|
||
|
||
**ResNet-18+SE**:在ResNet-18基础上加入了轻量级的通道注意力机制。
|
||
|
||
---
|
||
|
||
## 【第5页 - 模型1: CNN架构】
|
||
|
||
现在进入第二部分,模型架构讲解。
|
||
|
||
### CNN架构
|
||
|
||
首先看最简单的CNN模型。
|
||
|
||
它的结构非常直观:输入是3×32×32的RGB图像,经过三个卷积块,最后接两个全连接层,输出10个类别的概率。
|
||
|
||
**卷积层设计**:三层卷积分别将通道数从3增加到64、128、256。每层后面都接BatchNorm做归一化、ReLU做激活、MaxPool做降维。
|
||
|
||
**全连接层**:最后将特征图展平成4096维向量,通过一个512维的隐藏层,加了50%的Dropout防止过拟合,最终输出10维。
|
||
|
||
**特点**:这个模型的优点是**结构简单、参数少、训练快**。但缺点也很明显:**深度受限,表达能力有限**。如果我们简单地增加卷积层的数量,不仅难以训练,性能反而会下降,这就是所谓的"退化问题"。
|
||
|
||
---
|
||
|
||
## 【第6页 - 模型2: ResNet-18架构】
|
||
|
||
### 残差连接原理
|
||
|
||
ResNet正是为了解决这个"退化问题"而提出的。
|
||
|
||
它的核心思想是**残差学习**。看这个公式:y = F(x) + x
|
||
|
||
传统网络学习的是从输入x到输出y的直接映射,而ResNet学习的是**残差**——也就是输入和输出的差值F(x)。
|
||
|
||
为什么这样设计?因为学习一个**"微小的变化"**,比学习一个**"完整的映射"**要容易得多。
|
||
|
||
### BasicBlock结构
|
||
|
||
ResNet-18由多个这样的BasicBlock堆叠而成。每个Block包含两个3×3卷积,关键是这条**红色的shortcut连接**——它直接把输入加到输出上。
|
||
|
||
整个网络分为4个Layer,每个Layer包含2个BasicBlock,总共18层。
|
||
|
||
### 核心优势
|
||
|
||
ResNet的核心优势就是**解决了梯度消失问题**。
|
||
|
||
因为有shortcut的存在,梯度可以直接从输出反向传播到输入,不会在深层网络中"消失"。这使得训练几百层的深度网络成为可能。
|
||
|
||
---
|
||
|
||
## 【第7页 - 模型3: ResNet-18+CBAM】
|
||
|
||
### CBAM注意力机制
|
||
|
||
第三个模型在ResNet-18基础上加入了CBAM——Convolutional Block Attention Module。
|
||
|
||
CBAM的核心理念是让模型学会两件事:**"关注什么"**和**"关注哪里"**。
|
||
|
||
### 通道注意力
|
||
|
||
**通道注意力**回答"关注什么"。
|
||
|
||
它通过全局平均池化和最大池化,把每个通道压缩成一个数值,然后用一个共享的MLP学习每个通道的重要性权重。
|
||
|
||
比如,对于识别"猫"这个任务,纹理特征的通道可能更重要,而对于识别"飞机",形状特征的通道更重要。
|
||
|
||
### 空间注意力
|
||
|
||
**空间注意力**回答"关注哪里"。
|
||
|
||
它在特征图的每个空间位置生成一个权重,告诉模型应该关注图像的哪个区域。
|
||
|
||
比如识别猫的时候,应该更关注脸部和耳朵,而不是背景。
|
||
|
||
### 参数代价
|
||
|
||
CBAM的一个优点是**非常轻量**。它只增加了约0.2M参数,相对于ResNet-18的11M,仅增加了1.8%。
|
||
|
||
理论上,这么小的代价应该能带来可观的性能提升。但实际效果如何呢?我们等会看结果。
|
||
|
||
---
|
||
|
||
## 【第8页 - 模型4: ResNet-18+SE】
|
||
|
||
### SE注意力机制
|
||
|
||
第四个模型加入的是SE模块——Squeeze-and-Excitation。
|
||
|
||
SE比CBAM更简单,它只做通道注意力,不做空间注意力。
|
||
|
||
### 三步操作
|
||
|
||
SE的工作流程分为三步:
|
||
|
||
**第一步,Squeeze(压缩)**:用全局平均池化把每个通道压缩成一个标量。这个操作捕获了整个通道的全局信息。
|
||
|
||
**第二步,Excitation(激励)**:通过两层全连接网络学习通道间的依赖关系。第一层降维,第二层升维,最后用Sigmoid激活得到0到1之间的权重。
|
||
|
||
**第三步,Scale(缩放)**:把学到的权重乘回原来的特征图,实现通道级的重标定。
|
||
|
||
### 效率优势
|
||
|
||
SE的参数更少,只增加约0.1M,相对ResNet-18仅增加0.9%。
|
||
|
||
所以,从参数效率角度看,SE比CBAM更轻量。
|
||
|
||
---
|
||
|
||
## 【第9页 - 实验结果展示】
|
||
|
||
好,现在我们进入最关键的部分——实验结果。
|
||
|
||
### 图表说明
|
||
|
||
大家看这张图,它包含三个子图:
|
||
|
||
**左图**是**训练准确率曲线**。横轴是训练轮数(epoch),纵轴是准确率。我们可以看到四条不同颜色的曲线代表四个模型。
|
||
|
||
橙色的ResNet-18上升最快,最终达到约85%;绿色和红色的CBAM和SE在75-78%左右;蓝色的CNN最慢,只有约68%。
|
||
|
||
**中图**是**训练损失曲线**。同样是四条曲线,但这次是越低越好。ResNet-18(橙色)下降到约0.5,表现最好;其他模型在0.7-0.95之间。
|
||
|
||
**右图**是**测试准确率的柱状图**。这是最终的性能指标,也是我们最关心的。
|
||
|
||
ResNet-18最高,达到80.68%;ResNet-18+SE是74.06%;ResNet-18+CBAM是73.56%;CNN最低,71.95%。
|
||
|
||
红色虚线是平均值75.06%。
|
||
|
||
### 初步观察
|
||
|
||
从这张图,我们可以得出几个初步观察:
|
||
|
||
**第一**,ResNet-18在所有指标上都表现最好;
|
||
|
||
**第二**,令人意外的是,加了注意力机制的模型反而不如基础的ResNet-18;
|
||
|
||
**第三**,所有模型的准确率都不算太高,最好的也只有80%多一点。
|
||
|
||
为什么会这样?我们接下来详细分析。
|
||
|
||
---
|
||
|
||
## 【第10页 - 测试准确率对比分析】
|
||
|
||
### 数据对比
|
||
|
||
首先看这个详细的对比表格。
|
||
|
||
**CNN**:1.2M参数,测试准确率71.95%,作为基线;
|
||
|
||
**ResNet-18**:11M参数,80.68%,相比CNN提升了8.73个百分点;
|
||
|
||
**ResNet-18+CBAM**:11.2M参数,73.56%,只比CNN高1.61个百分点;
|
||
|
||
**ResNet-18+SE**:11.1M参数,74.06%,提升2.11个百分点。
|
||
|
||
平均准确率是75.06%。
|
||
|
||
### 关键发现
|
||
|
||
这里有三个关键发现:
|
||
|
||
**第一个发现**:ResNet-18显著优于CNN。8.73个百分点的提升非常可观,证明了残差连接和深度网络的价值。
|
||
|
||
**第二个发现**,也是最意外的:**注意力机制的提升远不如预期**。
|
||
|
||
理论上,CBAM和SE应该进一步提升ResNet的性能,但实际上它们不仅没有提升,反而表现更差。CBAM甚至比基础的CNN都低!
|
||
|
||
**第三个发现**:所有模型的绝对准确率都不高。即使是最好的ResNet-18,也只有80.68%,离CIFAR-10的sota(95%+)还有很大差距。
|
||
|
||
### 原因分析
|
||
|
||
为什么会这样?我分析有几个可能的原因:
|
||
|
||
**第一**,训练不充分。我只训练了50个epoch,从曲线看,准确率还在上升,损失还在下降,说明没有收敛。
|
||
|
||
**第二**,学习率可能设置不当。注意力机制可能需要不同的学习率策略。
|
||
|
||
**第三**,数据增强不足。标准的RandomCrop和RandomFlip可能不够。
|
||
|
||
**第四**,对于CIFAR-10这种32×32的小图像,空间注意力可能难以发挥作用。
|
||
|
||
---
|
||
|
||
## 【第11页 - 训练过程分析】
|
||
|
||
让我们更细致地分析训练过程。
|
||
|
||
### 训练准确率特征
|
||
|
||
左边这个block看训练准确率的特征:
|
||
|
||
**CNN**收敛最慢,50个epoch后才到68%左右;
|
||
|
||
**ResNet-18**收敛最快,而且最稳定,达到了85%;
|
||
|
||
**加了注意力的两个模型**介于两者之间,75-78%。
|
||
|
||
但这里有个**异常现象**需要注意:ResNet-18的训练准确率是85%,但测试准确率只有80.68%,差了4个多百分点。这个gap比其他模型都大,说明**ResNet-18可能存在过拟合**。
|
||
|
||
### 训练损失特征
|
||
|
||
右边看训练损失:
|
||
|
||
所有模型在初期都快速下降,这是正常的;
|
||
|
||
ResNet-18下降到约0.5就稳定了;
|
||
|
||
其他模型在0.7-0.95之间波动。
|
||
|
||
损失曲线都比较平滑,说明训练过程是稳定的。
|
||
|
||
### 收敛性分析
|
||
|
||
总体来说,**ResNet架构的梯度流动确实更好**,这从它更快的收敛速度就能看出来。
|
||
|
||
但是,快速收敛不等于最终性能一定最好,还要看是否过拟合。
|
||
|
||
---
|
||
|
||
## 【第12页 - 性能-复杂度权衡】
|
||
|
||
接下来我们从另一个角度看问题:性能和复杂度的权衡。
|
||
|
||
### 参数效率
|
||
|
||
我定义了一个简单的指标:**参数效率 = 准确率 / 参数量**。
|
||
|
||
这个指标越高,说明每个参数的"性价比"越高。
|
||
|
||
### 数据对比
|
||
|
||
看这个表格:
|
||
|
||
CNN的效率是59.96,最高,因为它参数最少;
|
||
|
||
ResNet-18是7.33;
|
||
|
||
加了注意力的两个模型是6.57和6.67。
|
||
|
||
虽然CNN的效率最高,但它的绝对准确率太低了,只有72%,实用价值有限。
|
||
|
||
### 权衡建议
|
||
|
||
如果让我给出建议:
|
||
|
||
**如果资源充足,追求最高准确率**,选ResNet-18。虽然它有11M参数,但80.68%的准确率在这四个模型中是最高的。
|
||
|
||
**如果资源非常受限**,比如要部署到嵌入式设备,那可能不得不选CNN,虽然准确率低一些。
|
||
|
||
**如果想要平衡**,ResNet-18+SE可能是个折中选择——它比基础ResNet只多了0.1M参数,准确率虽然低了一些,但参数效率还不错。
|
||
|
||
但说实话,在当前的训练设置下,这些结论都是初步的,需要更充分的训练来验证。
|
||
|
||
---
|
||
|
||
## 【第13页 - 实验中的问题】
|
||
|
||
现在进入第五部分:反思与改进。
|
||
|
||
作为一个严谨的研究,我必须承认,这次实验存在一些问题。
|
||
|
||
### 训练不充分
|
||
|
||
**最大的问题就是训练不充分**。
|
||
|
||
我只训练了50个epoch,这对于CIFAR-10来说远远不够。标准做法是训练200个epoch甚至更多。
|
||
|
||
从曲线可以看出,准确率还在稳步上升,损失还在下降,说明模型还有学习空间。
|
||
|
||
如果继续训练,我相信准确率还能进一步提升,可能会达到90%甚至更高。
|
||
|
||
### 注意力机制未发挥作用
|
||
|
||
**第二个问题是注意力机制没有发挥预期作用**。
|
||
|
||
CBAM和SE不仅没有提升性能,反而比基础ResNet表现更差。这绝对不正常。
|
||
|
||
我分析有几个可能的原因:
|
||
|
||
**原因一**:训练不充分。注意力模块的参数需要更多的迭代才能学到有效的权重;
|
||
|
||
**原因二**:学习率设置可能不合适。注意力模块可能需要不同的学习率或者warmup策略;
|
||
|
||
**原因三**:初始化方法可能有问题。注意力权重的初始化很关键;
|
||
|
||
**原因四**:CIFAR-10的图像太小了,只有32×32像素。对于这么小的图像,空间注意力可能没有太多发挥空间。如果换成ImageNet那种224×224的图像,效果可能会好很多。
|
||
|
||
### 测试准确率偏低
|
||
|
||
**第三个问题是整体准确率偏低**。
|
||
|
||
即使是最好的ResNet-18,80.68%的准确率也远低于文献中报告的95%+。
|
||
|
||
这再次说明我的训练策略需要大幅优化。
|
||
|
||
---
|
||
|
||
## 【第14页 - 改进方向】
|
||
|
||
既然发现了这些问题,那么改进方向就很明确了。
|
||
|
||
### 1. 训练策略优化
|
||
|
||
**第一组改进是关于训练策略的**:
|
||
|
||
最重要的是**把epochs增加到200**,这是标准做法;
|
||
|
||
使用**学习率调度**,比如MultiStepLR,在第60、120、160个epoch降低学习率;
|
||
|
||
添加**学习率预热**,在前5个epoch让学习率逐步增加到设定值;
|
||
|
||
使用**更强的数据增强**,比如RandomCrop、CutMix、MixUp等。这些技术已经被证明能显著提升性能。
|
||
|
||
### 2. 超参数调整
|
||
|
||
**第二组改进是超参数调整**:
|
||
|
||
当前的初始学习率是0.1,可能偏大了,我会尝试降低到0.05;
|
||
|
||
Batch Size 128是合理的,可以保持;
|
||
|
||
但我会增加Weight Decay来加强正则化,防止过拟合。
|
||
|
||
### 3. 模型架构改进
|
||
|
||
**第三组改进是模型架构方面**:
|
||
|
||
可以尝试更深的ResNet,比如ResNet-34或ResNet-50;
|
||
|
||
调整CBAM的位置——也许不应该在每个Block后都加,而是只在关键位置加;
|
||
|
||
尝试其他注意力机制,比如最近很火的ECA-Net;
|
||
|
||
增加Dropout或者DropBlock来防止过拟合。
|
||
|
||
---
|
||
|
||
## 【第15页 - 未来工作展望】
|
||
|
||
### 短期改进
|
||
|
||
在**1-2周内**,我计划:
|
||
|
||
**首先**,重新训练所有模型,把epochs增加到200;
|
||
|
||
**其次**,优化学习率调度和数据增强策略;
|
||
|
||
**第三**,详细记录训练过程中的每一个指标,包括训练loss、验证loss、学习率变化等;
|
||
|
||
**最后**,绘制更完整的可视化,包括训练曲线、混淆矩阵、每个类别的准确率等。
|
||
|
||
### 中期探索
|
||
|
||
在**1个月的时间范围内**,我会:
|
||
|
||
**第一**,实现更多注意力机制的变体,做更系统的对比;
|
||
|
||
**第二**,尝试Transformer架构,比如Vision Transformer,看看它在CIFAR-10上的表现;
|
||
|
||
**第三**,做详细的消融实验,分析每个组件的贡献;
|
||
|
||
**第四**,把实验扩展到CIFAR-100或者其他数据集,验证结论的普适性。
|
||
|
||
### 长期目标
|
||
|
||
从长期来看,我对一些前沿方向很感兴趣:
|
||
|
||
比如**神经架构搜索**,让算法自动找最优的网络结构;
|
||
|
||
比如**知识蒸馏**,把大模型的知识迁移到小模型;
|
||
|
||
比如**半监督学习**,利用未标注的数据提升性能。
|
||
|
||
---
|
||
|
||
## 【第16页 - 核心结论】
|
||
|
||
现在让我总结一下本次研究的核心结论。
|
||
|
||
### 主要发现
|
||
|
||
**第一个发现**:ResNet-18在测试集上表现最优,达到80.68%,显著优于CNN的71.95%。这验证了残差连接和深度网络的价值。
|
||
|
||
**第二个发现**:残差连接确实至关重要。它不仅让深层网络能够训练,而且收敛速度更快,性能更好。
|
||
|
||
**第三个发现**:在当前的训练设置下,注意力机制没有充分发挥作用。CBAM和SE的表现甚至不如基础ResNet。但这不代表注意力机制无效,更可能是训练策略需要优化。
|
||
|
||
**第四个发现**:50个epoch的训练远远不够。从曲线可以看出,模型还有很大的提升空间。
|
||
|
||
### 经验总结
|
||
|
||
从这次实验中,我总结了几条重要经验:
|
||
|
||
**第一**,深度学习需要**充分的训练时间**。50个epoch可能在某些任务上够了,但对于从零开始训练的CIFAR-10,200个epoch才是起点。
|
||
|
||
**第二**,**超参数调优和数据增强至关重要**。同样的模型,不同的训练策略可能差距很大。
|
||
|
||
**第三**,注意力机制不是万能的,它需要**合适的训练策略**才能发挥作用。盲目加上去不一定有效。
|
||
|
||
**第四**,**实验设计要系统化、可重复**。要详细记录每个细节,这样才能从失败中学到东西。
|
||
|
||
### 下一步
|
||
|
||
基于这些发现,我的下一步计划是:**增加训练轮数到200,优化超参数,然后重新评估各模型的性能**。
|
||
|
||
我相信,经过这些改进,注意力机制应该能展现出它应有的价值。
|
||
|
||
---
|
||
|
||
## 【第17页 - 致谢页】
|
||
|
||
好,我的汇报到这里就结束了。
|
||
|
||
最后这一页列出了我的项目代码和相关文档:
|
||
|
||
所有代码都在**run_all.py**这个脚本里,可以一键运行所有实验;
|
||
|
||
实验结果就是刚才展示的**100.png**;
|
||
|
||
详细的分析和讨论写在了**REPORT.md**这个报告文件里。
|
||
|
||
现在,
|
||
|
||
# 谢谢大家的聆听!
|
||
|
||
# 欢迎提问!
|
||
|
||
---
|
||
|
||
## 【Q&A环节 - 可能的问题及回答】
|
||
|
||
### Q1: 为什么只训练50个epoch?
|
||
|
||
**A**: 这其实是我这次实验的一个失误。一开始我以为50个epoch足够了,但实际运行后发现,曲线还在上升,显然没有收敛。正常的CIFAR-10实验应该训练200个epoch以上。这也是为什么我在"反思与改进"部分专门指出了这个问题。下一步我会重新训练更多轮次。
|
||
|
||
### Q2: 为什么ResNet-18比加了注意力的模型还要好?
|
||
|
||
**A**: 这确实是个意外的结果。我分析有几个原因:首先,训练不充分,注意力模块的参数还没有学到有效的权重;其次,可能学习率或初始化设置不适合注意力机制;第三,CIFAR-10图像太小(32×32),空间注意力可能没有足够的发挥空间。在更大的图像上,比如ImageNet,CBAM通常能带来1-2%的提升。
|
||
|
||
### Q3: 你觉得哪个模型最实用?
|
||
|
||
**A**: 这要看应用场景。如果是在服务器端,GPU资源充足,我会选ResNet-18,因为它准确率最高。如果是在移动端或嵌入式设备上,资源受限,可能不得不选CNN或者更轻量的MobileNet。ResNet-18+SE是个折中选择——只增加0.1M参数,在优化训练后应该能有不错的性能。
|
||
|
||
### Q4: 下一步打算做什么改进?
|
||
|
||
**A**: 最紧迫的是重新训练,把epochs增加到200,并优化学习率调度和数据增强。我还想尝试更多的注意力机制变体,比如ECA-Net、Coordinate Attention等。长远来看,我对Transformer架构很感兴趣,想看看ViT在CIFAR-10上能达到什么水平。
|
||
|
||
### Q5: 为什么用SGD而不是Adam?
|
||
|
||
**A**: 这是个很好的问题。在图像分类任务中,SGD+Momentum通常比Adam有更好的泛化性能。虽然Adam收敛更快,但往往会陷入"尖锐的局部最优",导致测试集表现不如训练集。SGD虽然慢,但能找到"平坦的局部最优",泛化性更好。很多SOTA的图像分类工作都用SGD。当然,也有人尝试用AdamW(Adam的改进版),效果介于两者之间。
|
||
|
||
### Q6: 数据增强用了哪些方法?
|
||
|
||
**A**: 目前只用了最基础的RandomCrop和RandomHorizontalFlip。这显然不够。下一步我打算加入更强的增强方法,比如:
|
||
- CutMix: 把两张图像裁剪后混合
|
||
- MixUp: 把两张图像按比例混合
|
||
- AutoAugment: 自动搜索最优的增强策略
|
||
- RandomErasing: 随机遮挡一部分区域
|
||
|
||
这些方法已经被证明能显著提升CIFAR-10的性能。
|
||
|
||
### Q7: 能达到95%以上的准确率吗?
|
||
|
||
**A**: 理论上可以。CIFAR-10的SOTA(State-of-the-art)准确率已经超过99%了。但要达到95%,需要:
|
||
1. 充分的训练(200+ epochs)
|
||
2. 更深的网络(ResNet-50/101)或更先进的架构(EfficientNet, Transformer)
|
||
3. 强大的数据增强
|
||
4. 精心调优的超参数
|
||
5. 可能还需要一些技巧,比如模型集成、知识蒸馏等
|
||
|
||
我目前的设置比较基础,所以80%是合理的。通过系统优化,90-95%是可以达到的目标。
|
||
|
||
### Q8: 这个项目花了多长时间?
|
||
|
||
**A**: 从代码实现到实验运行,大概花了一周时间。其中:
|
||
- 模型实现:2天
|
||
- 训练脚本和可视化:2天
|
||
- 运行实验:1天(50 epochs还是很快的)
|
||
- 分析结果和准备汇报:2天
|
||
|
||
如果重新训练200 epochs,可能还需要2-3天。
|
||
|
||
### Q9: 有遇到什么技术难点吗?
|
||
|
||
**A**: 主要有两个:
|
||
1. **CBAM的实现**:通道注意力和空间注意力怎么正确地集成到ResNet的BasicBlock中,我参考了原论文和一些开源实现才搞清楚。
|
||
2. **可视化**:怎么把训练过程中的数据保存下来,然后生成漂亮的对比图,这花了不少时间调matplotlib的参数。
|
||
|
||
整体来说,得益于PyTorch强大的生态,大部分实现都比较顺利。
|
||
|
||
### Q10: 有什么想对后来者说的?
|
||
|
||
**A**: 几点建议:
|
||
1. **从小实验开始**:先在小数据集(如CIFAR-10)上验证想法,不要一上来就跑ImageNet。
|
||
2. **重视基础**:把经典模型(CNN、ResNet)吃透,再去追新方法。
|
||
3. **做好记录**:每次实验都要详细记录超参数、结果、遇到的问题。
|
||
4. **勇于试错**:我的注意力机制实验"失败"了,但这本身就是一个重要发现。
|
||
5. **多看论文**:理解为什么这样设计,而不只是调参。
|
||
|
||
最重要的是:**享受学习的过程**!深度学习既是科学也是艺术。
|
||
|
||
---
|
||
|
||
**【演讲结束】**
|
||
|
||
再次感谢大家的聆听!如果还有问题,欢迎随时交流。
|
||
|
||
**谢谢!**
|