卷积神经网络实践-猫狗分类

写在前面
本文主要参考的是飞桨上的一个模型https://aistudio.baidu.com/aistudio/projectdetail/78960?channelType=0&channel=0
这个模型里面,就是简单的三次卷积层加上全连接层,最后softmax分一下类,最后效果一般,后来在一篇博客上看到看到vgg网络对简单分类效果会比较好,就尝试更换vgg-13,没想到正确率提升了20%,当然不足也有很多,就比如为了偷懒没有多尝试几个模型实验,看情况以后会补上

1. 摘要
近年来,深度学习理论和技术都得到了迅速的发展,并且受到了越来越多的研究者的关注,深度学习技术在图像识别领域具有广泛的应用。尤其是在特征提取和建模上有着非常明显的优势浅层对比模型。现在已经有了非常多的经典成熟模型,如AlexNet、VGG13、VGG16、VGG19和ResNet等,但未必适用于所有的试验数据集。本文运用卷积神经网络(CNN)依靠PaddlePaddle深度学习框架结合CIFAR10数据集训练和建立猫狗识别模型,在较成熟的VGG13模型基础实现,采用的优化方法为Adam优化方法。

2. 卷积神经网络

传统CNN包含卷积层、全连接层等组件,并采用softmax多类别分类器和多类交叉熵损失函数,一个典型的卷积神经网络如图6所示,我们先介绍用来构造CNN的常见组件。

卷积神经网络实践-猫狗分类

卷积层(convolution layer): 执行卷积操作提取底层到高层的特征,发掘出图片局部关联性质和空间不变性质。

池化层(pooling layer): 执行降采样操作。通过取卷积输出特征图中局部区块的最大值(max-pooling)或者均值(avg-pooling)。降采样也是图像处理中常见的一种操作,可以过滤掉一些不重要的高频信息。

全连接层(fully-connected layer,或者fc layer): 输入层到隐藏层的神经元是全部连接的。

非线性变化: 卷积层、全连接层后面一般都会接非线性变化函数,例如Sigmoid、Tanh、ReLu等来增强网络的表达能力,在CNN里最常使用的为ReLu激活函数。

Dropout:在模型训练阶段随机让一些隐层节点权重不工作,提高网络的泛化能力,一定程度上防止过拟合。

另外,在训练过程中由于每层参数不断更新,会导致下一次输入分布发生变化,这样导致训练过程需要精心设计超参数。如2015年Sergey Ioffe和Christian Szegedy提出了Batch Normalization (BN)算法 中,每个batch对网络中的每一层特征都做归一化,使得每层分布相对稳定。BN算法不仅起到一定的正则作用,而且弱化了一些超参数的设计。经过实验证明,BN算法加速了模型收敛过程,在后来较深的模型中被广泛使用。

3. 实验及结果分析

3.1 实验环境与数据集
本实验是在基于Anaconda的环境管理工具、paddle深度学习框架和Pycharm的编译器上进行设计实现的。研究环境如下所示:
(1) 软件部分
操作系统:Windows10 64位系统;开发工具:Pycharm、Anaconda;CUDA:V11.7_win10;paddle-gpu:2.3.2 ;
(2) 硬件部分
内存:16G;CPU:AMD Ryzen 7 5800H 3.20 GHz;GPU:NVIDIA GeForce GTX 1650;硬盘:固态硬盘:512G。

(3) 数据集部分

我们使用CIFAR10数据集。CIFAR10数据集包含60,000张32×32的彩色图片,10个类别,每个类包含6,000张。其中50,000张图片作为训练集,10000张作为验证集。这次我们只对其中的猫和狗两类进行预测。

3.2 损失函数

本文采用的是交叉熵损失函数,该函数在分类任务上比较常用。

卷积神经网络实践-猫狗分类

3.3 网络模型

CNN 有着多种可供选择的网络结构,其中包括有LeNet、AlexNet、VGGNet 、ResNet 等。其中VGGNet 是由牛津大学的视觉几何组和谷歌的DeepMind 公司提出,通过VGGNet,研究人员证明了基于小尺寸卷积核,增加网络深度可以有效提升模型效果。VGGNet 引入”模块化”设计思想,将不同的层进行简单组合构成网络模块,再用模块来组装完整网络,而不再以”层”为单元组装网络。VGGNet 有着多种配置方案,本文采用VGG-13,也就是B型VGG结构。

卷积神经网络实践-猫狗分类

3.4 实验结果

卷积神经网络实践-猫狗分类

随着迭代次数增加损失逐渐减少,精确率逐渐提高

卷积神经网络实践-猫狗分类

实验精确率acc 最终稳定在0.83 左右,较为优越

卷积神经网络实践-猫狗分类

卷积神经网络实践-猫狗分类

对于6张图片的识别,5张识别正确

4. 总结

本文运用卷积神经网络在CIFAR10数据集的基础上,运用VGG13模型训练和建立猫狗识别模型,获得了较为优越的实验结果。

Original: https://blog.csdn.net/EnochChen_/article/details/127520275
Author: EnochChen_
Title: 卷积神经网络实践-猫狗分类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/661449/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球