图像分类算法篇——LeNet-5

        LeNet-5为卷积神经网络架构的鼻祖,它是由Yann Lecun于1998年创建,已经被广泛应用于手写体数字识别

一、网络架构

LeNet-5架构
类型 特征图 大小 内核大小 步幅 激活函数
OUT 全连接 —— 10 —— —— RBF
F6 全连接 —— 84 —— —— tanh
C4 卷积 120 1*1 5*5 1 tanh
S3 平均池化 16 5*5 2*2 2 tanh
C3 卷积 16 10*10 5*5 1 tanh
S2 平均池化 6 14*14 2*2 2 tanh
C1 卷积 6 28*28 5*5 1 tanh
In 输入 1 32*32 —— —— ——

        MNIST图像为28×28像素,但是将其零填充为32×32像素并在送入网络之前进行了归一化 网络的其余部分不使用任何填充,这就是图像随着网络延展而尺寸不断缩小的原因。


        平均池化层比一般的池化层要复杂一些:每个神经元计算其输入的平均值,然后将结果乘以可学习的系数(每个特征图一个) 并添加一个可学习的偏置项(同样每个特征图一个),最后应用激活函数。


        C3特征图中的大多数神经元仅连接到了在S2特征图中的三个或四个神经元(而不是S2特征图中的所有6个)。有关详细信息,请参见原始论文中的表1(第8页)注10。

        F6层全连接层为84,主要因为标准数字图像尺寸为12*7=84

        输出层有点特殊:每个神经元输出的是输入向量和权重向量之间的欧几里得距离的平方,而不是计算输入向是和权重向量的矩阵乘法。每个输出测量图像属于特定数字类别的程度。交叉嫡成本函数现在是首选。因为它对不良预测的惩罚更大,产生更大的梯度并收敛更快。

二、激活函数

        LeNet-5在卷积层和池化层使用tanh激活函数,其中:

tanh(z) = 2\sigma (2z)-1

其图像为:

图像分类算法篇——LeNet-5_第1张图片

        全连接层激活函数为RBF,每个神经元输出的是输入向量和权重向量之间的欧几里得距离的平方,而不是计算输入向是和权重向量的矩阵乘法。其中:

径向基神经网络的激活函数可表示为:
在这里插入图片描述

其中xp为第p个输入样本,ci为第i个中心点,h为隐含层的结点数,n是输出的样本数或分类数。径向基神经网络的结构可得到网络的输出为:

  当然,采用最小二乘的损失函数表示:

 三、构建LeNet-5网络

from tensorflow import keras
model=keras.models.Sequential([
    keras.layers.Conv2D(filters=6,kernel_size=[5,5],strides=1,padding="SAME",input_shape=(28,28,1),activation="tanh"),
    keras.layers.MaxPooling2D(pool_size=2),
    keras.layers.Conv2D(filters=16,kernel_size=[5,5],strides=1,padding="SAME",activation="tanh"),
    keras.layers.MaxPooling2D(pool_size=2),
    keras.layers.Conv2D(filters=120,kernel_size=[5,5],strides=1,padding="SAME",activation="tanh"),
    keras.layers.Flatten(),
    keras.layers.Dense(84,activation="tanh"),
    keras.layers.Dense(10,activation="softmax")
])

你可能感兴趣的:(图像分类,计算机视觉,目标检测,tensorflow,分类,图像处理)