7-卷积神经网络-读书笔记

2. 自己动手搭CNN

2.1 CNN网络结构

  • CNN基本结构:输入层、卷积层、激活层、池化层、全连接层

2.1.1 输入层:

2.1.2 卷积层:

  • 卷积的直觉:卷积计算=特征提取
  • 灰度图像上使用单卷积核:单个特征的抽取
  • 术语:feature map(特征映射)、activation map(激活映射)、convolved feature(卷积特征)、receptive field(感受野)
  • RGB图像上使用单卷积核:单个特征的抽取
  • 卷积核的深度=上一层数据输入的深度(channel数)
  • RGB图像上使用多卷积核:多个不同特征的抽取
  • 一个卷积核提取一种局部模式,多个卷积核提取多种不同局部模式
  • 卷积隐层的堆叠
  • 卷积核的个数=下一层数据的深度=下一卷积层卷积核的深度
  • 卷积核的个数=提取特征的数量,超参数,可以调节
  • 隐层的卷积:特征组合
  • 多层卷积:一层卷积得到的特征只是局部的,层数越高,学到的特征越全局化
  • 需要注意的参数:stride
  • 一次滑动的步长,有height上的和width上的stride
  • stride>1时,相当于在stride=1的卷积结果中做了下采样
  • 需要注意的参数:padding
  • padding=valid:不进行补零操作,s=1时,每卷积一次,宽和高数据维度下降F-1,F为卷积核大小
  • padding=same:在输入的周围进行0或复制补充;卷积前后宽高不变
  • 小结
  • 输入:W1*H1*D1
  • 超参数:①the number of filters:K②the dimension of filters:F③stride步长:S④padding:P
  • 输出:W2*H2*D2  W=(W1+2P-F)/S+1  H2=(H1+2P-F)/S+1  D2=K
  • 参数:(F*F*D1+1)*K

2.1.3 激活层

  • 激活函数:sigmoid(x)、tanh(x)、relu(x)

2.1.4 池化层

  • 在宽高维度进行下采样,不改变深度的维度
  • 能成倍减少计算量
  • 相比stride,池化层可以选择进行下采样的方式
  • 最大池化(max-pooling):对邻域内特征点取最大作为最后的特征值
  • 平均池化(mean-pooling):对邻域内特征点取平均作为最后的特征值
  • 小结
  • 输入:W1*H1*D1
  • 超参数:the dimension offilters:F
  • 输出:W2*H2*D2  W2=(W1-F)/S+1  H2=(H1-F)/S+1  D2=D1
  • 参数:max-pooling和mean-pooling没参数

2.1.5 全连接层

  • 将多层的特征映射伸直成一个一维的向量
  • 采用全连接的方式将向量连接向输出层
  • 输出层就是对应每个类别的得分

2.1.6 网络搭建小结

  • 卷积神经网络的一般结构:
  • CONV+ReLU和POOL的组合多次出现:提取特征
  • 多个FC或特殊的CNN结构作为输出层:作分类器/检测器/分割器

2.2 CNN网络训练

2.3 如何用Paddle实现CNN

猜你喜欢

转载自www.cnblogs.com/Kobaayyy/p/11207648.html