卷积神经网络
- 由一个或多个卷积层、池化层以及全连接层等组成。
- 与其他深度学习结构相比,卷积神经网络在图像等方面能够给出更好的结果。
- 这一模型也可以使用反向传播算法进行训练。
- 相比较其他浅层或深度神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。
文章目录
1 卷积层(Convolutions)
- 卷积运算的目的是提取输入的不同特征,某些卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。
- 计算公式
- 假设我们有10 个Filter,每个Filter3 X 3 X 3(计算RGB图片),并且只有一层卷积,那么参数有多少?
- 计算:每个Filter参数个数为:3 X 3 X 3 + 1 bias = 28个权重参数,总共28 * 10 = 280个参数,即使图片任意大小,我们这层的参数也就这么多。
卷积层充当特征提取的角色,但是并没有减少图片的特征数量,在最后的全连接层依然面临大量的参数,所以需要池化层进行特征数量的减少
2 池化层(Pooling、Subsampling)
池化层主要对卷积层学习到的特征图进行亚采样(subsampling)处理,主要由两种
- 最大池化:Max Pooling,取窗口内的最大值作为输出
- 平均池化:Avg Pooling,取窗口内的所有值的均值作为输出
- 意义在于:
(1)降低了后续网络层的输入维度,缩减模型大小,提高计算速度
(2)提高了Feature Map 的鲁棒性,防止过拟合
对于一个输入的图片,我们使用一个过滤器filter大小为2 x 2,步长stride为2的参数进行求最大池化操作。同样池化也有一组参数 f,s,得到2 * 2的大小。当然如果我们调整这个超参数,比如说3 * 3,那么结果就不一样了,通常选择默认都是 f = 2 * 2, s = 2
池化超参数特点:不需要进行学习,不像卷积通过梯度下降进行更新。
3 全连接层
卷积层
+激活层
+池化层
可以看成是CNN的特征学习/特征提取层
,而学习到的特征(Feature Map)最终应用于模型任务(分类、回归):
- 先对所有 Feature Map 进行扁平化(flatten, 即 reshape 成 1 x N 向量)
- 再接一个或多个全连接层,进行模型学习