python神经网络图像识别note

本文介绍了Python中用于图像识别的神经网络技术,包括BP神经网络和CNN卷积神经网络。通过实例展示了如何使用BP神经网络进行手写数字识别,并对比了不同层结构的效果。接着,详细解释了CNN的工作原理,如卷积、ReLU、池化操作及其作用。通过LeNet架构,阐述了卷积神经网络在图像识别中的应用,并提供了可视化示例,展示了网络如何从图像中提取特征并进行分类。最后,文章提到了其他一些经典的卷积神经网络架构,如AlexNet、VGGNet和ResNets,并总结了CNN的主要概念。
摘要由CSDN通过智能技术生成

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 架构主要用于字符识别任务,比如读取邮政编码、数字等等。

å¾ 3

上图中的卷积神经网络和原始的 LeNet 的结构比较相似,可以把输入的图像分为四类:狗、猫、船或者鸟(原始的 LeNet 主要用于字符识别任务)。正如上图说示,当输入为一张船的图片时,网络可以正确的从四个类别中把最高的概率分配给船(0.94)。在输出层所有概率的和应该为一(本文稍后会解释)。

There are four main operations in the ConvNet shown in Figure 3 above:
在上图中的 ConvNet 有四个主要操作:

  1. 卷积
  2. 非线性处理(ReLU)
  3. 池化或者亚采样
  4. 分类(全连接层)

这些操作对于各个卷积神经网络来说都是基本组件,因此理解它们的工作原理有助于充分了解卷积神经网络。下面我们将会尝试理解各步操作背后的原理。

图像是像素值的矩阵

本质上来说,每张图像都可以表示为像素值的矩阵:

图4

通道 常用于表示图像的某种组成。一个标准数字相机拍摄的图像会有三通道 - 红、绿和蓝;你可以把它们看作是互相堆叠在一起的二维矩阵(每一个通道代表一个颜色),每个通道的像素值在 0 到 255 的范围内。

灰度图像,仅仅只有一个通道。在本篇文章中,我们仅考虑灰度图像,这样我们就只有一个二维的矩阵来表示图像。矩阵中各个像素的值在 0 到 255 的范围内——零表示黑色,255 表示白色。

卷积

卷积神经网络的名字就来自于其中的卷积操作。卷积的主要目的是为了从输入图像中提取特征。卷积可以通过从输入的一小块数据中学到图像的特征,并可以保留像素间的空间关系。我们在这里并不会详细讲解卷积的数学细节,但我们会试着理解卷积是如何处理图像的。

每张图像都可以看作是像素值的矩阵。考虑一下一个 5 x 5 的图像,它的像素值仅为 0 或者 1(注意对于灰度图像而言,像素值的范围是 0 到 255,下面像素值为 0 和 1 的绿色矩阵仅为特例):

图 5

同时,考虑下另一个 3 x 3 的矩阵,如下所示:

图 6

接下来,5 x 5 的图像和 3 x 3 的矩阵的卷积可以按下图所示的动画一样计算:

图 7

现在停下来好好理解下上面的计算是怎么完成的。我们用橙色的矩阵在原始图像(绿色)上滑动,每次滑动一个像素(也叫做“步长”),在每个位置上,我们计算对应元素的乘积(两个矩阵间),并把乘积的和作为最后的结果,得到输出矩阵(粉色)中的每一个元素的值。注意,3 x 3 的矩阵每次步长中仅可以“看到”输入图像的一部分。

在 CNN 的术语中,3x3 的矩阵叫做“滤波器(filter)”或者“核(kernel)”或者“特征检测器(feature detector)”,

通过在图像上滑动滤波器并计算点乘得到矩阵叫做“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值