深度学习基础—卷积神经网络示例

1.卷积神经网络的结构


在之前的博客《深度学习---简单的卷积神经网络》,仅由卷积层构成网络的全部,这还不是标准的网络结构,本文将继续介绍标准的卷积神经网络结构有哪些?

深度学习基础---简单的卷积神经网络https://blog.csdn.net/sniper_fandc/article/details/141688769?fromshare=blogdetail&sharetype=blogdetail&sharerId=141688769&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

假设需要进行手写数字识别,输入图片是32*32*3大小的RGB图片,下面我们来构建一个卷积神经网络实现这个功能:

注:该网络和经典网络LeNet-5非常相似,灵感也来源于此。LeNet-5是多年前Yann LeCun创建的,但是我们所采用的模型并不是LeNet-5,但是受它启发,许多参数选择都与LeNet-5相似。

(1)卷积层

第一层使用过滤器f大小为5×5,步长s是1,padding是0,过滤器个数为6,那么输出为28×28×6。将这层标记为CONV1,它用了6个过滤器,增加了偏差,应用了非线性函数,可能是ReLU非线性函数,最后输出CONV1的结果。

(2)池化层

然后构建一个池化层,这里选择最大池化,参数f=2,步长s=2,padding为0(本网络的padding均为0,后续不再说明),过滤器的选择表示层的高度和宽度会减少一半。因此输出为14×14,通道数量保持不变,所以最终输出为14×14×6,将该输出标记为POOL1。

(3)关于层的划分

在卷积神经网络中关于卷积的划分主要有两类(即层的划分):一类是卷积层作为单独的一层,池化层作为单独的一层;另一类是把一个卷积层和一个池化层一并称为一层。由于池化层没有权重和参数(只有超参数),统计神经网络的层数时通常只统计有权重和参数的层,因此这里把CONV1和POOL1统称为Layer1。Layer2层结构类似,具体参数如上图,这里不再赘述。

(4)全连接层

将POOL2的输出转化为一个大小为400的向量,把平整化结果想象成某个包含神经元的层,然后利用这400个单元构建下一层。下一层含有120个单元,这就是第一个全连接层,标记为FC3。这400个单元与120个单元紧密相连,这就是全连接层,也是一个标准的神经网络层。它的权重矩阵W[3]的维度为120×400,偏差参数b[3]的维度为120×1。

把FC3层的输出作为FC4的输入,FC4层有84个神经元,因此输出的结果是长度84的向量。最后,用这84个单元填充一个softmax单元。如果我们想通过手写数字识别来识别手写0-9这10个数字,这个softmax就会有10个输出。

(5)激活值维度

这里提醒两点:第一,池化层没有参数;第二卷积层的参数相对较少。其实,许多参数都存在于神经网络的全连接层。观察可发现,随着神经网络的加深,激活值尺寸会逐渐变小,如果激活值尺寸下降太快,也会影响神经网络性能。示例中,激活值尺寸在第一层为6000,然后减少到1600,慢慢减少到84,最后输出softmax结果。我们发现,许多卷积网络都具有这些属性,模式上也相似。

一个卷积神经网络包括卷积层、池化层和全连接层,如何构建高效的神经网络,整合这些基本模块,需要对模块有深入的理解,最简单高效的方式就是大量阅读文献和案例,尤其是不同领域的融汇贯通。

2.为什么要使用卷积


假设有一张32×32×3维度的图片,使用卷积的情况下,比如示例的第一层有6个大小为5×5的过滤器,输出维度为28×28×6。32×32×3=3072,28×28×6=4704。而构建一个普通的神经网络,其中一层含有3072个单元,下一层含有4074个单元,两层中的每个神经元彼此相连,然后计算权重矩阵,它等于4074×3072≈1400万,所以要训练的参数很多。虽然以现在的技术,可以用1400多万个参数来训练网络,因为这张32×32×3的图片非常小,训练这么多参数没有问题。但是如果这是一张1000×1000的图片,权重矩阵会变得非常大。仅仅这个卷积层的参数数量,每个过滤器都是5×5,一个过滤器有25个参数,再加上偏差参数,那么每个过滤器就有26个参数,一共有6个过滤器,所以参数共计156个,参数数量还是很少。

卷积神经网络参数少的原因有如下两点:

(1)参数共享

如果特征检测过程中,比如垂直边缘检测如果适用于图片的某个区域,那么它也可能适用于图片的其他区域,那么使用一个过滤器就可以提取多个区域中的特征,这样就大大减少了参数的数量。

(2)稀疏连接

某一个输出值仅与输入图片的过滤器大小范围的像素值有关,比如上图中绿色的0,在3*3的过滤器大小下,仅和输入图片的左上角9个像素有关,其他像素值不影响其输出的大小。这就是稀疏连接,它和全连接概念有重大区别,全连接就是每层神经元的输出和下层神经元的输入均相连,因此参数量巨大。而稀疏连接中,下层和本层的连接关系只受到过滤器大小和位置影响,因此参数量很小。

神经网络可以通过这两种机制减少参数,以便我们用更小的训练集来训练它,从而预防过度拟合。卷积神经网络善于捕捉平移不变。即使移动少量像素,图片依然清晰可见,因为神经网络的卷积结构使得移动前后图片依然具有非常相似的特征,应该属于同样的输出标记。

相关推荐
DeepSeek-大模型系统教程5 分钟前
推荐 7 个本周 yyds 的 GitHub 项目。
人工智能·ai·语言模型·大模型·github·ai大模型·大模型学习
有Li8 分钟前
通过具有一致性嵌入的大语言模型实现端到端乳腺癌放射治疗计划制定|文献速递-最新论文分享
论文阅读·深度学习·分类·医学生
郭庆汝12 分钟前
pytorch、torchvision与python版本对应关系
人工智能·pytorch·python
小雷FansUnion2 小时前
深入理解MCP架构:智能服务编排、上下文管理与动态路由实战
人工智能·架构·大模型·mcp
资讯分享周2 小时前
扣子空间PPT生产力升级:AI智能生成与多模态创作新时代
人工智能·powerpoint
叶子爱分享3 小时前
计算机视觉与图像处理的关系
图像处理·人工智能·计算机视觉
鱼摆摆拜拜3 小时前
第 3 章:神经网络如何学习
人工智能·神经网络·学习
一只鹿鹿鹿3 小时前
信息化项目验收,软件工程评审和检查表单
大数据·人工智能·后端·智慧城市·软件工程
张较瘦_4 小时前
[论文阅读] 人工智能 | 深度学习系统崩溃恢复新方案:DaiFu框架的原位修复技术
论文阅读·人工智能·深度学习
cver1234 小时前
野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
人工智能·pytorch·深度学习·目标检测·计算机视觉·目标跟踪