内容时间:9月18日
实验结果
使用Kaggle猫狗分类的代码,即使用三个深度学习网络ResNet50, InceptionV3, Xception提取图片特征,然后使用神经网络DNN分类,验证集显示过拟合。本地精度0.93~0.95,在线精度0.8845
。
precision recall f1-score support
0 1.00 0.83 0.91 6
1 0.72 0.84 0.78 25
2 0.88 1.00 0.93 7
3 0.74 0.77 0.75 26
4 0.92 0.92 0.92 13
5 1.00 1.00 1.00 8
6 0.99 0.99 0.99 205
7 1.00 1.00 1.00 5
8 0.98 1.00 0.99 65
9 1.00 0.68 0.81 19
10 0.92 0.95 0.93 37
11 1.00 1.00 1.00 12
avg / total 0.95 0.95 0.95 428
分析与设计
样本是不平衡的,(其他类所有的140张图片)
其中,其他文件夹所含类别数目如下:
本basemodel 关于不平衡使用的是调整损失函数的权重(class_weight)。关于kears flow如何处理文件夹.子文件夹.图片,调试可得:
整理后的sample文件夹如下,除train_gen外的子文件夹下均是相应图片:
后续操作
不一定可行
- 生成样本,数据扩充,并使其平衡;
- 其他类子类和11基本类一起处理,然后合并其他类子类;
- 选择合适阈值,低于均判为其他类;
- 特征选择或降维
- 使用单模型,fine-tune
代码位置
内容时间:9月19日
对于其他文件夹,划伤、打白点、气泡、碰凹、纹粗、铝屑大于等于10个样本,将其移出参与分类(位于代码tools中),
包括正常类,一共17类。数量分布如下。
数据增强(如何合理的增强)到每类100。
分类结果在训练集上过拟合,阈值设置的为0.4(似乎太大),本地验证集上不稳定在0.88,线上精度较差,0.7867。使用lightgbm本地精度0.80。(下图验证比0.2)
总结
好像没啥要说的,实验是在个人笔记本上跑的,之所以没用微调等是因为曾经对一个实验用Inception V3微调,跑到一般显存(应该是)不足崩了?,所有没有良好的实验设备不建议做数据驱动的DL,现实还是很重要的。实验2是有问题的,因为我是先增强后分成训练集和验证集的;应该改为先分成训练集和验证集再增强,代码位于上述链接tools.py中,近来LOL上分,不再修正。对于实验2,建议读者运行时全部核查重构。好好学习,天天向上?