图像识别算法之卷积神经网络(CNN)原理

卷积神经网络

  • 由一个或多个卷积层、池化层以及全连接层等组成。
  • 与其他深度学习结构相比,卷积神经网络在图像等方面能够给出更好的结果。
  • 这一模型也可以使用反向传播算法进行训练。
  • 相比较其他浅层或深度神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。

文章目录


图像识别算法之卷积神经网络(CNN)原理

1 卷积层(Convolutions)

  • 卷积运算的目的是提取输入的不同特征,某些卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。
  • 计算公式
    图像识别算法之卷积神经网络(CNN)原理
  • 假设我们有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 的鲁棒性,防止过拟合
    图像识别算法之卷积神经网络(CNN)原理
    图像识别算法之卷积神经网络(CNN)原理
    对于一个输入的图片,我们使用一个过滤器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 向量)
  • 再接一个或多个全连接层,进行模型学习
    图像识别算法之卷积神经网络(CNN)原理
上一篇:Java Servlet池


下一篇:java – Spring连接池问题