Tensorflow学习笔记----卷积神经网络(Convolutional Neural Network,CNN)

对于很多数据,一般的全连接层网络很难解决复杂的图片数据问题,存在着很多内存占用和计算能力的问题无法解决。

  • 而卷积神经网络是一种具有局部连接权重共享等特性的深层前馈神经网络,卷积过程就是kernel 所有权重与其在输入图像上对应元素亮度之和。
    一般是由卷积层,汇聚层,全连接层交叉堆叠而成,使用反向传播算法进行训练。其有三个结构上的特征:局部连接,权重共享以及汇聚。这些特征使得卷积神经网络具有一定程度上的平移,缩放和旋转不变性。较前馈神经网络而言,其参数更少。

  • 这里的局部连接是相对于全连接来说的,全连接层里的相邻层中每一个结点都连接,这样会导致大量的存储和计算;
    但局部连接中,相邻层中结点间连接是根据当前结点所需要的信息来连接的,而且里面结点间的权值是共享的。
    以下为一个卷积神经网络的卷积过程:
    Tensorflow学习笔记----卷积神经网络(Convolutional Neural Network,CNN)

图中,输入的是彩色RGB图像,那么输入的maps volume由红,黄,蓝三通道/三种map构成。我们之所以用input map volume这个词来形容,是因为对于多通道图像输入图像实际上是由高度,宽度,深度三种信息构成,可以被形象理解为一种"体积"。这里的“深度”,在RGB中就是3,红,黄,蓝三种颜色构成的图像,在灰度图像中,就是1。

多通道输入&多通道输出(最常用)的例子:
Tensorflow学习笔记----卷积神经网络(Convolutional Neural Network,CNN)

卷积函数:layer = layers.Conv2D(4,kernel_size=5,strides=1,padding=‘vslid’)
解释: 4:输入的图像;kernel_size:滤波器的大小,即(方形)卷积窗口的高和宽的数字;strides:纵向和横向的步长;padding:元素边框与元素内容之间的空间

卷积后求梯度例子:
Tensorflow学习笔记----卷积神经网络(Convolutional Neural Network,CNN)