卷积神经网络(CNN)基础概念

卷积神经网络与一般全连接层神经网络的区别在于:全连接层(Dense层)学到的是全局模式,而卷积网络通过对局部的卷积运算,学习到的实际是局部模式。这样通过多次卷积,就能学习到越来越复杂和抽象的视觉概念。

常规步骤:

1)数据输入层( Input layer

2)卷积计算层(conv layer

3)池化层 (pooling layer

4)全连接层 (Dense

定义一个卷积层:

  tensorflow:

  conv=tf.nn.conv2d(input, (3,3,3,16), strides=[1, 1 , 1 , 1],padding=’SAME’

  keras:

  x=layers.Conv2D(16, (3, 3), activation='relu')x

  可以看出卷积运算由两个关键参数组成:(1)从输入中提取的图块尺寸(本例中3×3);(2)输出特征图的深度(即是卷积核的数目,也等于输出的维度,本例16

 

1. 卷积运算(conv)

  原理:在输入的特征图上滑动你设置的小方块(通常为3×3或者5×5,又称为卷积核),每一次输入图与卷积核对应部分做乘积(注:不是矩阵相乘,而是对应元素相乘,然后求和),然后根据步幅(即所设置的每次卷积块滑动的距离)滑动到下一位置,做相同运算。直至遍历完整个输入。这样就完成了一次卷积操作。如下图:(图中虚线部分是采用了填充,以确保输出和输入同维度)

                                  

2. 激活函数(activiation)

  作用是把卷积层输出结果做非线性映射。

  RELU激活函数:f(x)=max(0,x)。特点是:收敛快,容易求导计算。

3.池化(pooling)

  也是下采样的一种,与步进卷积类似。又分为最大池化、平均池化等等。以最大池化为例:是从输入特征图中提取窗口,并输出每个通道的最大值。直至完成对整个特征图的操作。最大池化与卷积的最大不同之处在于,最大池化通常使用 2×2 的窗口和步幅 2,其目的是将特征图下采样 2 倍。与此相对的是,卷积通常使用 3×3 窗口和步幅 1

通过池化操作,能够减少输入层的参数,以避免造成过拟合。

                                                   

 

posted @ 2020-08-26 12:26  prehua  阅读(335)  评论(0编辑  收藏  举报