卷积神经网络基础

本文详细介绍了卷积神经网络(CNN)的构成,包括卷积层、池化层和全连接层。卷积层通过卷积核提取图像局部特征,池化层用于降维,全连接层输出结果。CNN的独特特性在于局部感知和权值共享,这降低了参数量并保持了空间信息。卷积操作和maxpooling在特征提取和信息保留方面起关键作用。此外,讨论了CNN与全连接网络的区别,并提出了maxpooling优于average-pooling的原因。
摘要由CSDN通过智能技术生成

CNN的构成

卷积层

卷积层负责提取图像中的局部特征

卷积层主要有很多个卷积核组成,这些卷积核也叫过滤器,每一个卷积核都代表一种模式或特征,卷积核是有深度的

卷积操作

一个公式

暂时不用看,一会儿回来对照一下
D o u t p u t = D i n p u t − D k e r n e l + 2 ∗ p a d d i n g s t r i d e + 1 D_{output} = \frac{D_{input}-D_{kernel}+2*padding}{stride}+1 Doutput=strideDinputDkernel+2padding+1

两个操作

局部关联、滑动窗口

卷积层运算过程
( 黄 色 区 域 代 表 滑 动 窗 口 ) (黄色区域代表滑动窗口)
假如图片channel维度为3,卷积核的个数为10,那么卷积核的深度亦为3,最终输出的channel维度为卷积核的个数

图片和第一个卷积核在每一个维度都进行上述的运算,得到3个特征图,然后将3张特征图对应位置相加得到最终的特征图。

剩下的每个卷积核与图片进行这样的操作都会得到一张特征图,最终组合到一起得到3x3x10的输出

即5x5x3 卷积 10个3x3x3 = 3x3x10

三种卷积

valid卷积指定padding为0对原图进行下采样,经过valid卷积后图片尺寸减小

full卷积指定padding=kernel_size-1对原图进行上采样,经过full卷积后图片尺寸增大

same卷积保持特征图尺寸不变。padding,stride需要满足这个公式
n = n − D k e r n e l + 2 ∗ p a d d i n g s t r i d e + 1 n = \frac{n-D_{kernel}+2*padding}{stride}+1 n=stridenDkernel+2padding+1

池化层

池化层用来大幅降低参数量级(降维)

池化操作

池化操作指定一个大小的区域,区域中的所有像素值加起来取平均或者直接返回最大的值

卷积神经网络中降维一般使用maxpooling,后面会讲为什么可以降维,以及为什么使用maxpooling降维

池化层过程

全连接层

全连接层类似传统神经网络的部分,用来输出想要的结果。

结构图

img
( 李 宏 毅 深 度 学 习 教 程 课 件 ) (李宏毅深度学习教程课件)

CNN和DNN的区别

卷积神经网络和全连接网络的本质区别就是下面两个特性

  • 局部感知
  • 权值共享

这两个特点是由于输入的特性决定的,但同时这两个特点极大降低了整个网络的参数量

对于一张图片而言,我们常常不需要看整张图片来判断图片上有什么物体,我们只需要一块小的可以代表这个物体的特征区域即可,这是卷积神经网络适用的前提。

我们另外引入一个概念,叫做感受野

对于DNN来说没有感受野的概念,或者说对于DNN的每个神经元,它的感受野都是全图

对于CNN来说,每个神经元由哪块原图中的区域决定,这块区域就是它的感受野

如下图,对于第一个神经元3来说,image左上角的3x3区域就是它的感受野

img

另外,一张图片上不同位置的相同特征,对于这张图片传递的信息来说,大多跟位置无关。我们当然希望使用同一组权重可以提取不同位置的相同特征。这就是权值共享。

img

总的来说,全连接网络前向传播的过程中永远考虑到整张图片的信息,而卷积神经网络每次采样都只考虑局部特征。理论上说,全连接网络保留了所有信息,但是层中每一个神经元都要考虑全部的信息,导致不堪重负,训练不起来。

而卷积神经网络主动对信息进行了区域划分,每一个神经元只负责一个小区域的信息,逐步抽象,直到最后才把高度精炼的信息整合起来。

几个问题

  • 全连接网络丢失了空间信息吗
  • 为什么卷积可以提取特征
  • 为什么池化层使用max pooling而不是average-pooling

第一个问题。我以为是没有丢失的,只是难以训练罢了

第二个问题。我在深度学习与目标检测这本书中看到有这么一段话

“在深度神经网络的具体应用中,往往有多个卷积核,我们可以认为,每一个卷积核代表了一种图像模式,如果某个图像块与此卷积核进行卷积后输出的值很大,则认为此图像块十分接近此卷积核”

关于为什么现在还不太明白,我姑且认为这是对的,并以此做一些推断。即当图片经过一个卷积层之后,较大的值就认为是特征区域抽象出来的特征值。

第三个问题。使用什么池化方式是视情况而定的,对于分类任务,我们通常只需要最显著的特征即可达到好的分类,但是对于一些图像生成等注重细节的任务,采用max pooling则容易丢失细节信息,此时可以使用平均池化,甚至不进行池化,而是采用下采样卷积

参考文献

一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)- 产品经理的人工智能学习库 (easyai.tech)

李宏毅2020机器学习深度学习(完整版)国语_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳成荫~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值