BP神经网络
手写数字识别mnist测试集(28*28)识别
mnist训练集60000个样本,测试集10000个样本,发现使用4层BP神经网络784,50,20,10没有3层神经网络784,100,10识别率高.只有88%左右
对自己手写的样本更差.先是处理了手写样本的背景色噪声,但是仍然很差,估计
1.mnist训练集中对数字图像位置进行了居中,大小进行了统一,自己手写的样本没有做相应处理.
2.查看mnist数据集,发现西方数字写法和东方写法差别很大,字迹也比较潦草,应该也有这个原因
3.由于去噪比较随意,自己手写的数字处理后的图像具有像mnist数据集中笔画像素的波峰特征不明显
CNN卷积神经网络
简介:https://www.sohu.com/a/126742834_473283
推导反向传播公式:全连接层的误差权重分配公式反向推导已经在<python神经网络编程>中学习过,CNN网络不同之处在于卷积-ReLU-POLLING层的反向传播公式,相关资料:
https://www.cnblogs.com/tornadomeet/p/3468450.html
https://blog.csdn.net/login_sonata/article/details/77488383
https://www.cnblogs.com/pinard/p/6494810.html#undefined
(待看)
简介:
以下转自:https://blog.csdn.net/ruiyiin/article/details/77113973
LeNet 是推进深度学习领域发展的最早的卷积神经网络之一。经过多次成功迭代,到 1988 年,Yann LeCun 把这一先驱工作命名为 LeNet5。当时,LeNet 架构主要用于字符识别任务,比如读取邮政编码、数字等等。
上图中的卷积神经网络和原始的 LeNet 的结构比较相似,可以把输入的图像分为四类:狗、猫、船或者鸟(原始的 LeNet 主要用于字符识别任务)。正如上图说示,当输入为一张船的图片时,网络可以正确的从四个类别中把最高的概率分配给船(0.94)。在输出层所有概率的和应该为一(本文稍后会解释)。
There are four main operations in the ConvNet shown in Figure 3 above:
在上图中的 ConvNet 有四个主要操作:
- 卷积
- 非线性处理(ReLU)
- 池化或者亚采样
- 分类(全连接层)
这些操作对于各个卷积神经网络来说都是基本组件,因此理解它们的工作原理有助于充分了解卷积神经网络。下面我们将会尝试理解各步操作背后的原理。
图像是像素值的矩阵
本质上来说,每张图像都可以表示为像素值的矩阵:
通道 常用于表示图像的某种组成。一个标准数字相机拍摄的图像会有三通道 - 红、绿和蓝;你可以把它们看作是互相堆叠在一起的二维矩阵(每一个通道代表一个颜色),每个通道的像素值在 0 到 255 的范围内。
灰度图像,仅仅只有一个通道。在本篇文章中,我们仅考虑灰度图像,这样我们就只有一个二维的矩阵来表示图像。矩阵中各个像素的值在 0 到 255 的范围内——零表示黑色,255 表示白色。
卷积
卷积神经网络的名字就来自于其中的卷积操作。卷积的主要目的是为了从输入图像中提取特征。卷积可以通过从输入的一小块数据中学到图像的特征,并可以保留像素间的空间关系。我们在这里并不会详细讲解卷积的数学细节,但我们会试着理解卷积是如何处理图像的。
每张图像都可以看作是像素值的矩阵。考虑一下一个 5 x 5 的图像,它的像素值仅为 0 或者 1(注意对于灰度图像而言,像素值的范围是 0 到 255,下面像素值为 0 和 1 的绿色矩阵仅为特例):
同时,考虑下另一个 3 x 3 的矩阵,如下所示:
接下来,5 x 5 的图像和 3 x 3 的矩阵的卷积可以按下图所示的动画一样计算:
现在停下来好好理解下上面的计算是怎么完成的。我们用橙色的矩阵在原始图像(绿色)上滑动,每次滑动一个像素(也叫做“步长”),在每个位置上,我们计算对应元素的乘积(两个矩阵间),并把乘积的和作为最后的结果,得到输出矩阵(粉色)中的每一个元素的值。注意,3 x 3 的矩阵每次步长中仅可以“看到”输入图像的一部分。
在 CNN 的术语中,3x3 的矩阵叫做“滤波器(filter)”或者“核(kernel)”或者“特征检测器(feature detector)”,
通过在图像上滑动滤波器并计算点乘得到矩阵叫做“