卷积神经网络概述

目录

人类视觉原理

1整体描述

2基本理论

2.1卷积(convolution)

2.2步长(stride)

2.3填充(padding)

Valid卷积

Same卷积

Full卷积

2.4三维卷积

2.5 1x1卷积

2.6偏置(bias)

2.7池化(pooling)

2.8全局池化 (Global Pooling)

2.9激活函数(activation functions)

3特性

3.1局部感知

3.2参数共享

3.3分层提取

3.4感受野(Receptive field)

3.5多核卷积

4局部卷积

5卷积层和池化层的实现

5.1卷积实现

5.2池化实现

6可视化

7神经网络的本质

参考文章


人类视觉原理

 

        深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。

        1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”,可视皮层是分级的。

        人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。下面是人脑进行人脸识别的一个示例:

人类视觉原理
图 人类视觉原理

        我们可以看到,在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。那么我们可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,让计算机来逐层提取图像中的特征,最终在顶层做出分类呢?答案是肯定的,这也是卷积神经网络的灵感来源。

1整体描述

        卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积运算且具有深度结构的前馈神经网络(Feedforward Neural Networks)。相比早期的BP神经网络,卷积神经网络最重要的特性在于“局部感知”与“参数共享”,自2012年的AlexNet开始,卷积神经网络就多次成为ImageNet大规模视觉识别竞赛(ImageNet Large Scale Visual Recognition Challenge, ILSVRC)的优胜算法,至此,卷积神经网络开始大放异彩,成为了众多科学领域的研究重点之一。

        如图1所示,一个完整的卷积神经网络可包含卷积层、池化层、全连接层等。其中卷积层用来进行特征提取,池化层用于降低维数,全连接层可用于结果预测(也可使用全卷积网络进行预测)。

卷积神经网络示例
图1.1 卷积神经网络示例(手写数字识别)

注:卷积运算也属于一种线性运算,故需要进行非线性处理,即添加激活函数(示例中为修正线性单元的函数,即 Relu 激活函数)。

        对于卷积层,其详细描述如图1.2所示

卷积层描述
图1.2 卷积层描述

其运算过程主要由以下4步组成:

  • 原图像(尺寸为 32\times 32 \times 3)分别与 n 个 5\times 5 \times 3 的卷积核(又名滤波器,fliter)进行卷积运算,得到 n 个 28\times 28 \times 1 的特征图(feature map)
  • 每个特征图分别添加不同的偏置(bias),具体为特征图中的每个元素 +\ b_n
  • 对每个特征图添加激活函数 g(x),进行非线性运算
  • 将这 n 个特征图依次叠加,得到最终的特征图(尺寸为 28\times 28 \times n

注:对于某一个卷积层,其不同特征图所使用的激活函数相同,但不同卷积层所使用的激活函数可以不同,该步骤在整体描述中为突出与神经网络的相似性而单独提出,但实际上其仍属于卷积层的一部分。

        对于池化层,其详细描述如图1.3所示:

池化层描述
图1.3 池化层描述

        承接上例,对于 28\times 28 \times n 的特征图,其池化过程仅需通过池化核对该特征图进行池化运算即可得到输出。

        然后将得到的特征图经过全连接层进行处理并由softmax算法进行回归即可得到最终的输出结果。

注:全连接层即为机器学习中常见的由神经元构成的神经网络。

(关于神经网络及softmax回归可参考:神经网络的前向及反向传播深度学习笔记

2基本理论

 

2.1卷积(convolution)

        卷积神经网络中的核心即为卷积运算,其相当于图像处理中的“滤波器运算”。

        对于一个 m \times n 大小的卷积核 W = \begin{bmatrix} w_{11} \ \ w_{12} \ ... \ w_{1n} \\ w_{21} \ \ w_{22} \ ... \ w_{2n} \\ ... ... ... ... \\ w_{m1}\ w_{m2} \ ... \ w_{mn} \end{bmatrix}_{(m\times n)},其对某一原图像 X 进行卷积运算的过程为:卷积核 W 中的每一个权值 w 分别和覆盖的原图像 X 中所对应的像素 x 相乘,然后再求和。计算公式为:

                                                      z=w_1x_1+w_2x_2+...+w_{mn}x_{mn}=\sum_{k=1}^{mn}w_kx_k=W^TX

        如图2.1所示,对一幅图像的一个完整的卷积运算过程为:卷积核以一定的间隔滑动,并对所覆盖的区域进行卷积运算得到值 z,直至遍历完整幅图像。

卷积运算
图2.1 卷积运算

        一个标准的卷积运算以图2.2为例,其卷积核每次覆盖原图像的9个像素,共滑动4次,得到了一个 2\times 2 的二维数据。对于一个大小为 n 的原图像,经过大小为 f 的卷积运算后,其输出图像的尺寸为 n-f+1

标准的二维卷积运算
图2.2 标准的二维卷积运算

2.2步长(stride)

        滑动一定的间距,但这个间距该如何定义呢? 这个概念就是卷积的 “步长”(stride),设置卷积的步长可使卷积过程跳过原图像中的某些像素。结合步长 s 操作后,其输出图像的尺寸为 \left \lfloor \frac{n-f}{s} \right \rfloor +1。stride = 1 表示卷积核滑过每一个相距是 1 的像素,是最基本的单步滑动,作为标准卷积模式。Stride 是 2 表示卷积核的移动步长是 2,跳过相邻像素,输出图像缩小为原来的 1/2。Stride 是 3 表示卷积核的移动步长是 3,跳过 2 个相邻像素,图像缩小为原来的 1/3,以此类推。

一个步长为2的卷积运算
图2.3 一个步长为2的卷积运算

2.3填充(padding)

        在标准的卷积过程中,存在两个问题:

  • 每次卷积运算后,图像就会缩小,在经历多次运算后,图像终会失去其形状,变为 1\times 1 的 “柱状”。
  • 对于图像边缘的像素,其只被一个输出所触碰或者使用,但对于图像中间的像素,则会有多个卷积核与之重叠。所以那些在角落或者边缘区域的像素点在输出中采用较少,意味着卷积过程丢掉了图像边缘位置的许多信息。

        对于这个问题,可以采用额外的 “假” 像素(通常值为 0, 因此经常使用的术语 ”零填充“ )填充边缘。这样,在滑动时的卷积核可以允许原始边缘像素位于其中心,

  • 76
    点赞
  • 411
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
CNN,即卷神经网络(Convolutional Neural Networks),是一种深度学习模型,广泛应用于图像识别、处理和分类任务。它是深度学习领域的一个重要分支,与传统的神经网络相比,CNN通过引入卷层,可以更好地处理局部和上下文信息,并且具有很好的空间适应性。 CNN的主要特点包括: 1. 卷层:CNN的核心在于卷层,该层利用滑动窗口在输入数据上滑动,同时对窗口附近的像素进行加权平均得到该位置的卷结果。这种操作能够有效地捕捉输入数据中的局部和上下文信息。 2. 池化(Pooling)技术:卷神经网络通常结合池化技术以减少特征地图的大小,并保持某些区域的权重比其他区域更高,这在神经网络中引入了空间下的“稀疏性”。 3. 深度:CNN通常具有多层的卷层和池化层,这使得CNN具有很强的特征学习和分类能力。随着网络深度的增加,CNN能够学习到越来越复杂的特征表示。 4. 适应性:CNN对输入数据的形状具有适应性,这意味着它可以轻松处理不同形状和大小的输入数据。 卷神经网络在计算机视觉、自然语言处理、机器人视觉等领域有广泛应用,尤其是在图像分类、目标检测、图像生成等领域表现出了强大的性能。虽然CNN已经取得了许多成功,但它仍在不断发展和改进,如使用自注意力机制、跨通道信息融合等新技术,以进一步提高性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值