1. 传统神经网络VS卷积神经网络

传统的神经网络一般只由输入层、躲藏层以及输出层构成。其中的躲藏层能够有多层,需求根据具体问题来确定其层数。卷积神经网络在原有的传统神经网络基础上,加入了更加有用的特征学习部分-卷积层和池化层(具体位置在全衔接层前)。卷积神经网络的出现,使得神经网络层数更多更深(深度学习)。

简要开展进程:

LeNetLeNet(LeCun1989卷积神经网络之父)→ AlexNetAlexNet(2012, Dropout, ReLU)→ VGGVGG(2014,网络加深)GoogLeNetGoogLeNet(2014,卷积模块功能加强)→ ResNetResNet(2015,深度残差网络)

卷积神经网络结构:

  • 卷积层:有一个小窗口在原始图画上平移来提取特征
    • 卷积神经网络中每层卷积层由若干卷积核组成
    • 通过卷积层输出的巨细由卷积核(filter)、步长和零填充巨细决议
  • 激活层:增加非线性分割能力
  • 池化层:下降网络模型复杂度,削减学习的参数
  • 全衔接层:帮助进行终究的分类

2. 卷积层

下面将对TensorFLow中卷积层的界说语法进行解说,卷积层内部参数需求按照要求进行传入,一般需求传入尺寸或者形状参数等等,需求额定留意。

卷积网络API:

tf.nn.conv2d(input, filter, strides= ,padding=, name=None)

  • 在Tensorflow中运用卷积层
  • input:给定的输入张量,一般为4阶张量[batch, height, width, channel],类型要求为float32,float64,不然会报错。
  • filter:指定卷积核的权重数量,形状要求:[filter_height, filter_width, in_channels, out_channels],卷积核宽,卷积核高,输入图片的通道数,卷积核个数
  • strides:步长,[1, strides, strides, 1]
  • padding:表明零填充,能够选“SAME”(越过边际取样,填充)和“VALID”(不越过边际取样,多出来的特征不要了)

3. 卷积神经网络规划

下面咱们将对Mnist手写数字辨认进行卷积神经网络规划,Mnist数据集包括10类图画,每张图片都是单通道,28*28像素巨细,需求运用神经网络处理该多分类问题,咱们将主要对通过两个卷积层的张量形状变换进行剖析。

输入原始图画形状:2828

第一层卷积层参数规划:

  • input:[None, 28, 28, 1]
  • 32个卷积核(filter),卷积核巨细:55,步长:1,padding:SAME
    • filter形状:shape[5, 5, 1, 32]
    • bias:32
    • 输出形状:[None, 28, 28, 32]
  • 激活函数:ReLU
  • 池化巨细:22,步长:2
    • 池化后输出形状:[None, 14, 14, 32]

第二层卷积层参数规划:

  • input:[None, 14, 14, 32]
  • 64个卷积核(filter),卷积核巨细:55,步长:1,padding:SAME
    • filter形状:shape[5, 5, 32, 64]
    • bias:64
    • 输出的形状:[None, 14, 14, 64]
  • 激活函数:ReLU
  • 池化巨细:22,步长:2
    • 池化后输出形状:[None, 7, 7, 64]

全衔接:

  • [None, 7, 7, 64] → [None, 7764]
  • [None, 7764] * [7764, 10] = [None, 10]
  • 由于最后是分红十类,所以形状是10列

4. 小结:

首要介绍了卷积神经网络的开展情况,基本构造和功能,侧重介绍了卷积神经网络中的卷积层,对Tensorflow中卷积层界说的API进行详细解释,为后续搭建神经网络做衬托。卷积核涉及到的相关参数总结如下:

  • 卷积核巨细一般根据经验进行挑选:常用11,33,55。
  • 每个卷积核会带若干权重,并且还会带1个偏执,这就相当于需求练习的参数
  • 关于卷积核的步长,一般挑选1
  • 卷积核个数是根据具体情况去挑选的

本文正在参与「金石计划 . 瓜分6万现金大奖」