一个单层神经网络的例子(卷积层)
上图是一个单层卷积网络的图像,输入三维数据的大小为6×6×3,两个滤波器的大小为3×3×3。
通过滤波器对输入数据进行遍历,会得到两个4×4大小的输出图像,如下图所示:
通过将两个4×4的输出数据进行叠加,我们则得到最终4×4×2的输出数据。
以上的卷积是在视图层面进行的,从上图可以看出,滤波器的层数须与RGB图像的通道数相同(皆为3),若将这个过程表示在神经网络中,则每一个部分所代表的参数如下图所示:
上图所示,输入部分,即
a
[
0
]
a^{[0]}
a[0]大小为6×6×3,图中有两个滤波器,不同滤波器的作用是提取原始数据中不同的特征,两个滤波器即为权值系数
w
[
1
]
w^{[1]}
w[1],将滤波器遍历输入数据所得到的4×4数据加上偏置系数
b
[
l
]
b^{[l]}
b[l](这个过程可以看作为
z
[
1
]
=
w
[
1
]
a
[
0
]
+
b
[
1
]
z^{[1]}=w^{[1]}a^{[0]}+b^{[1]}
z[1]=w[1]a[0]+b[1]),在经激励函数得到最终输出数据(这个过程可以看作为
a
[
1
]
=
g
(
z
[
1
]
)
a^{[1]}=g(z^{[1]})
a[1]=g(z[1]))。
对于一个
n
×
n
×
n
c
n×n×n_c
n×n×nc的一个输入数据,在卷积神经网络中第L层的各项参数大小为多少呢?
其中,
f
[
l
]
f^{[l]}
f[l]为滤波器大小;
p
[
l
]
p^{[l]}
p[l]为扩展边缘的大小,
p
[
l
]
=
1
p^{[l]}=1
p[l]=1说明在第
l
l
l层的输入图像周围加入了一圈边缘;
s
[
l
]
s^{[l]}
s[l]为步长,即滤波器遍历原图像时,窗口模板每次运动的像素数;
n
c
[
l
]
n^{[l]}_c
nc[l]为滤波器个数,滤波器的个数决定了输出图像的层数。
池化层(pooling layer)
作用:缩减模型大小,提高计算速度,同时提高所提取特征的鲁棒性。
池化层(最大池化层和平均池化层)中的超级参数:滤波器大小
f
f
f、步长
s
s
s,运用频率最高的超级参数数值为
f
=
2
,
s
=
2
f=2,s=2
f=2,s=2,效果相当于将原始图像的高度和宽度缩减了一半。
池化层中很少使用步长
p
p
p这个超级参数,并且池化层是一个静态属性,在逆向过程中没有参数需要学习,超级参数都是初始人为赋予的。
上图中的
n
H
×
n
w
×
n
c
n_H×n_w×n_c
nH×nw×nc指的是池化后输出图像的大小。
卷积网络示例(包含卷积层、池化层、全连接层)
先上图:
上图是一个简单卷积神经网络的示例,从上图的构建我们可以得出结论如下:
1、一般在统计网络层数时,只计算有权重的层,池化层没有权重,所以通常将池化层和它前面的卷积层算作一层。
2、卷积层的作用是提取重要特征,池化层的作用的改变图像结构,使计算快捷。
3、图中在第二层的池化层处理后,将数据平整为大小为400的一维向量,然后利用这400个单元构建下一层的全连接层,其中,这400个单元与全连接层中120个单元中的每一个单元相连接,则它所具有的权重矩阵
w
[
3
]
w^{[3]}
w[3]维度为(120,400),因为最后有120个输出,所以偏置
b
[
3
]
b^{[3]}
b[3]为120。
4、超级参数的选择要点在于大量阅读别人的文献数据,借鉴他人数据。
5、随着神经网络的深度增加,宽度和高度都会随之减小,而信道数量会增加。
6、在卷积神经网络中一个常见的模式是,一个或多个卷积层后跟随一个池化层,然后是几个全连接层,最后是一个softmax。
下表是关于上图过程中激活值大小和参数数量的统计:
为什么使用卷积?
比起全部使用全连接层,卷积层的优势在于参数共享和稀疏连接。
关于参数共享和稀疏连接的具体解释如上图所示,目前还无法深入了解,只能先意会。