携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情
在上一篇文章中,我们介绍了经典卷积神经网络结构,优化器,学习率和卷积神经网络添加正则化的方法。
今天,我们来进行图像分类网络模型框架解读,了解分类网络的基本结构,数据加载,数据增强,网络结构,类别概率分布,LOSS,分类问题常用评价指标,优化器选择。
-
1.1 分类网络的基本结构
训练的过程就是求解参数的过程
推理的过程就是已知网络结构,通过训练的过程已经拿到的参数构建出要进行前向推理的函数,利用这个函数,给定输入x,计算出想要的结果
-
1.2 数据加载
-
RGB数据 OR BGR数据
-
JPEG编码后的数据
-
torchvisioin.datasets中的数据集
-
torch.utils.data下的Dataset,DataLoader自定义数据集
-
1.3 数据增强
就是对已有的数据进行数据扩充的手段
-
为什么需要数据增强?
- 在神经网络中,参数的数量是非常庞大的,但是通常样本的数量是非常有限的,
- 对于这样有限的集合,在训练模型的时候,就可能存在样本量不够而导致过拟合的问题,
- 甚至存在训练集中不存在的现象,不存在的噪声,
- 这些不存在的噪声可能会导致模型在训练集上的效果非常好,但是测试集的效果没有训练集那么好,也就是模型的泛化能力没那么强
-
1.4 网络结构
-
1.5 类别概率分布
- N维度向量对应N个类别
- 如何将卷积输出的tensor转换成N维度向量
- 采用FC层,将CxVxW拉成一个向量,利用这个输出作为FC层的输入,在将特征映射到N维的向量中
- 直接将特征图H和W进行下采样到1x1,N就对应channel的大小,经过一个HxW的卷积核处理之后将特征图转化为NxCx1x1的一维的tensor
- 采用pooling层,pooling层无参数
- softmax
-
1.6 LOSS
- nn.CrossEntropyLoss
- label smoothing
-
-
1.7 分类问题常用评价指标
混淆矩阵:
-
正确率(accuracy):(TP+TN)/(P+N)
-
错误率(error rate):(FP+FN)/(P+N)
-
灵敏度(sensitive):sensitive = TP/P
-
特效度(specificity):TN/N
-
精度(precision):TP/(TP+FP)
-
召回率(recall):TP/(TP+FN)=TP/P=sensitive
-
PR曲线、ROC曲线、AUC面积
-
1.8 PR曲线、ROC曲线
定义不同的阈值
-
1.9 优化器选择
-
推荐使用:torch.optim.Adam
-
学习率初始值:lr=0.001
-
学习率指数衰减:torch.optim.lr_scheduler.ExponentialLR