CNN中的卷积操作与参数共享 |
您所在的位置:网站首页 › 卷积层的参数 › CNN中的卷积操作与参数共享 |
文章目录
(一)局部连接与卷积1.1图像的局部相关什么是卷积?1.3 不同的卷积核(filter)
(二)CNN中的参数共享2.1 图像底层特征的位置无关性2.2 示例(一维向量)
(三)参考博客
卷积神经网络(Convolutional Neural Networl, CNN)的两大核心思想:
局部连接(Local Connectivity)参数共享(Parameter Sharing)
两者共同的一个关键作用就是减少模型的参数量,使运算更加’简洁、高效’,能够运行在超大规模数据集上。 (一)局部连接与卷积 1.1图像的局部相关 对于一张输入图片,大小为
W
×
H
W \times H
W×H, 如果使用全连接网络,生成一张
X
×
Y
X \times Y
X×Y的特征图,需要
W
、
t
i
m
e
s
H
×
X
×
Y
W、times H \times X \times Y
W、timesH×X×Y个参数,如果原图长宽分别是$10^2$102 级别的,而且XY大小和WH差不多的话,那么这样一层网络需要的参数个数是
1
0
8
10^8
108~
1
0
1
2
10^12
1012级别。 下图展示了全连接网络中一个神经元的参数量。不进行局部连接,每个神经元和每一个输入像素连接,参数量动辄千万级别,网络很难训练: 卷积运算的本质是卷积核(也可称为滤波器,filter)和输入数据(图像)的局部区域间的点积运算,可以用相应的矩阵乘法来实现。 下图很好地演示了CNN中一个卷积核在单张图像数据上的卷积操作,可以简要地概括为:一个
3
×
6
3 \times 6
3×6大小的卷积核在一张
6
×
6
6 \times 6
6×6大小的输入图像上从左到右、从上到下依次扫描,进行矩阵的点积运算,得到相应位置的运算结果并输出(图中的
x
x
x为输入像素值,
a
a
a为卷积核参数,
F
F
F为输出的运算结果)。 为什么要设置不同的filter呢?因为不同的filter会得到不同的输出数据,对应图像的不同特征信息,比如颜色深浅、轮廓等等。如下图,中间是图像输入,四角分别对应四个filter(带着一组固定权重的神经元)的输出: 权值共享 : 卷积核的参数实际上也可以叫做权重,它描述了局部连接中该位置的输入对于相应输出的影响力(重要性)。 2.1 图像底层特征的位置无关性通过卷积操作,我们实现了输入图像的局部连接,从而大大减少了网络模型中的参数量。但这还不够,利用图像的另一特性,参数量可以进一步降低。 卷积中不做参数共享,则每一个输出对应一组参数值,参数量仍然庞大: 那么,对于主要用于提取底层特征的前几层网络,把上述局部全连接层中每一个 F × F F \times F F×F方形区域对应的参数(权值)共享,就可以进一步减少网络中的参数个数了。也就是说,输出层的每一个像素,是由输入层对应位置的 F × F F \times F F×F局部图片,与相同的一组 F × F F \times F F×F的参数(权值)做内积(点积),再经过非线性单元计算而来的。这样的话,无论图片原大小如何,只用 F × F F \times F F×F个参数就够了,也就是几个几十个的样子。当然,一组 F × F F \times F F×F的参数只能得到一张输出特征图,一般会有多组参数,分别经过卷积后可以有好几层特征图。 需要注意的是,高层特征一般是与位置有关的(全局特征),比如 一张人脸图片,眼睛和嘴的位置不同,那么处理到高层,不同位置就需要不同的神经网络权重(参数),这时候卷积层就不能胜任了,就需要用局部全连接层和全连接层。 2.2 示例(一维向量)
输入层: x = [ x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 ] x = [x_1, x_2, x_3, x_4, x_5, x_6, x_7] x=[x1,x2,x3,x4,x5,x6,x7] 隐藏层: h = [ h 1 , h 2 , h 3 ] h = [h_1, h_2, h_3] h=[h1,h2,h3] 权重向量: w = [ w 1 , w 2 , w 3 ] = [ 1 , 0 , − 1 ] w = [w_1, w_2, w_3] = [1, 0, -1] w=[w1,w2,w3]=[1,0,−1] 权重值 w w w被 h 1 , h 2 , h 3 h_1, h_2, h_3 h1,h2,h3: { h 1 = w ⋅ x [ 1 : 3 ] h 2 = w ⋅ x [ 3 : 5 ] h 3 = w ⋅ x [ 5 : 7 ] \begin{cases} h_1 = w \cdot x[1:3]\\ h_2 = w \cdot x[3:5]\\ h_3 = w \cdot x[5:7]\\ \end{cases} ⎩⎪⎨⎪⎧h1=w⋅x[1:3]h2=w⋅x[3:5]h3=w⋅x[5:7] 关于卷积神经网络的发展史等更全面介绍推荐这篇:CNN(卷积神经网络)入门简洁清晰。 (三)参考博客CNN卷积神经网络 CNN中的卷积操作与参数共享 图像底层特征:轮廓与边缘 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |