9.27 深度学习9
1. 深度学习
数据准备:项目使用的数据集通常以N-D数组(NumPy数组)的形式保存。数据需要被转换为Tensor(张量)格式以便在GPU上高效运行。
模型训练:通过定义18层卷积层和2个全连接层的网络结构,对模型进行训练。训练过程中使用交叉熵损失函数和SGD(随机梯度下降)优化器。通过反向传播寻找损失函数的最小值,并利用测试集上的损失值来筛选出最优模型。
推理过程:输入图像,模型进行前向传播输出各类别对应的置信度值。通过选取置信度最高的那个值及其对应的类别索引,来确定模型对该图像的最终分类。
准确率计算:通过遍历测试集,对每一张图像进行预测;再统计所有预测正确的数量,除以样本总数,得出模型在测试集上的准确率。
2. 关键技术细节探讨
版本还原:提到将仅满足语义注意力需求的图像统一变换为[0,1]范围,需要进行反规范化处理。
内存优化:提出了使用with语句(上下文管理器)和in-place操作来避免不必要的数据保存,这有助于释放内存并提升计算速度,特别是其内部隐含着boolean类型的求和技巧,无需额外创建中间变量。
3. 模型各类别准确率评估与提升策略
介绍了如何计算模型在不同类别上的具体准确率,以判断其好坏平衡性,初步发现猫类准确率为45%,最高为车类的82%。
讨论了准确率偏低的原因可能在于特定类别数据不足或数据增强不佳。
明确了针对此案例的优化方向主要在于调整网络结构,而非大规模修改已有数据集。
4. 全局平均池化技术详解
概念:全局平均池化(GlobalAverage Pooling)是指池化核的大小与输入特征图的大小完全相同,从而在整个特征图上取一次平均值。
核心作用:该技术可以大幅减少模型的参数量,有效缓解过拟合风险。在案例中,它被用来替代传统的全连接层,以简化网络结构。
关键注意事项:全局平均池化应在网络中后期使用,即在网络提取了足够层次的特征(包括底层和高层特征)之后,才能进行。过早使用会导致重要特征信息丢失。
5. 卷积层原理回顾
基础认知:一个卷积操作会产生一组(N组)输出通道,每组通道对应一个独立的卷积核。在处理彩色图像时,一个标准的卷积核默认是深度为3的(如5x5x3),因为它需要分别与红色、绿色、蓝色三个通道的像素值进行运算和累加。
“两个卷积核”误解澄清:并非对一次卷积结果应用第二个卷积核;而是基于原始输入,一次性使用多个(如6个)独立的卷积核进行平行的卷积运算,最后将所有结果叠加形成新通道。
学习全局平均池化技术后,尝试将其应用于自己的网络架构中,以评估是否能够减少参数量并获得更好的模型表现。
探索仅在最后一层使用一个合适的卷积核个数来直接输出目标类别数,从而完全移除后续全连接层的可能性,以简化模型。