小试牛刀:猫狗识别 Cat VS Dog

  • 小试牛刀:用猫狗识别来练练手(只用了 10% 数据来训练)
    ps: 猫狗识别拿来做新算/想法的尝试,也是一个挺不错的选择

  • 怎么能少了实现代码:https://github.com/Azure-Sky-L/Deep-Learning-with-Python/blob/master/CatVsDog.ipynb

  • 从一开始的只有 70% -> 使用数据增强,添加 Dropout 减少过拟合达到 82 %,比未正则化的模型提高了 12% -> 使用预训练网络 vgg16 快速特征提取,然后训练自己的分类器,验证精度达到了约 90% -> 使用预训练网络,端到端的训练,并冻结卷积基,只训练自己加入的 Decnce 层的权重,验证精度约为 91% -> 微调模型,验证精度达到了 94.7%
    小试牛刀:猫狗识别 Cat VS Dog_第1张图片
  • 通过进一步使用正则化方法以及调节网络参数(比如每个卷积层的过滤器个数或网络中的层数),你可以得到更高的精度,可以达到 86% 或 87%。但只靠从头开始训练自己的卷积神经网络,再想提高精度就十分困难,因为可用的数据太少。想要在这个问题上进一步提高精度,下一步需要使用预训练的模型
    小试牛刀:猫狗识别 Cat VS Dog_第2张图片

  • 使用预训练网络有两种方法:特征提取(feature extraction)和微调模型(fine-tuning)

  • 使用预训练网络,不使用数据增强的快速特征提取,验证精度达到了约 90%,比从头开始训练的小型模型效果要好得多。但从图中也可以看出,虽然 dropout 比率相当大,但模型几乎从一开始就过拟合。这是因为本方法没有使用数据增强,而数据增强对防止小型图像数据集的过拟合非常重要
    小试牛刀:猫狗识别 Cat VS Dog_第3张图片

  • 最终我们得到了 93.79% 的测试精度,注意我们只用一小部分训练数据(约 10%), 训练 20 000 个样本与训练 2000 个样本是有很大差别的

你可能感兴趣的:(Tensorflow,框架)