1.卷积神经网络卷积神经网络(CNN)是一种前馈神经网络,其人工神经元可以对一部分覆盖范围内的周围单元做出响应,对于大尺度图像具有优异的性能处理,主要包括卷积层和池化层,主要应用于图像、视频、时间序列信号、音频信号、文本数据等。一般的卷积神经网络由多个卷积层组成,每个卷积层主要包括以下部分:1.图像会通过多个不同的卷积核进行滤波,并偏向提取图像的局部特征,每个卷积核会映射一个新的2D图像。2.前一个卷积核的filter输出结果使用非线性激活函数进行处理。最常用的激活函数是ReLU函数及其变体,以及tan函数。过去最常用的激活函数是sigmoid函数。3、对激活函数的结果进行池化操作(***pooling,averagepooling),目的是实现降采样,将2×2的图片缩小为1×1。最常用的是pooling,它可以保留图像的显着特征,提高模型的畸变容忍度,提高模型的鲁棒性。2.使用tensorflow搭建卷积神经网络。使用tensorflow构建一个卷积神经网络并将其应用于MNIST手写数据集。最终可以得到99%以上的准确率。该模型主要由四层组成:Layer1:卷积层,卷积核大小为5×5,共32个卷积核,步长为1,padding为SAME使得输出的大小图像与输入一致。第二层:卷积层,卷积核大小为5×5,共包含64个卷积核,stridekernel的填充方式与上一层卷积层相同。第三层:全连接层,输入7×7×64,输出一个1024维的向量,使用dropout去激活部分节点,防止过拟合。第四层:softmax层,输入为1024维向量,输出为10维向量。1、第一个卷积层第一个卷积层的输入是一张28×28×1的图片,图片的宽高都是28,图片通道是1,经过卷积层后的输出是28×28×32,再经过***池化,输出为14×14×32。2、第二个卷积层的输入为14×14×32,卷积后的输出为14×14×64,池化后的输出为7×7×64。3.第三个全连接层第三层的输入是一个7×7×64的向量,所以第二个卷积层的结果在计算之前需要reshape,全连接层在激活ReLU函数之后,对它执行dropout操作。4.第四层softmax层第四层的输入是1024维的向量,输出是10维的向量,表示属于0-9数的概率。5.权重初始化在卷积神经网络中,权重初始化非常重要。这里我们使用截断的正态分布函数来参数化权重,并保证参数的标准差为0.1。截断正态分布是指如果函数随机生成的值与均值相差标准差的两倍以上,那么将重新生成这个值,以保证初始权重的值不会相差太多.6.初始化截距截距的值初始化为0.17,卷积函数卷积的步长为1,padding方式为SAME,保证卷积的输入输出大小相同。8.***Poolingfunction***池化的水平步长和垂直步长都是2,使得输出图像的大小是输入图像大小的一半,达到降采样的目的。完整代码:https://github.com/steelOneself/tensorflow_learn/blob/88f614508081d8c3a926ea000966aa8d1ac35440/MNIST_examples/CNNMNIST.py
