bp神经网络图像特征提取,一文搞定bp神经网络

本人新手,在做BP神经网络的时候遇到了一个问题 5

不知你是不是用matlab的神经网络工具箱,因为一般神经网络都是成批处理的,每一次调整都会综合所有样本的误差进行调整,而不是一类一类图片的去调整,所以不会出现你说的现象。

目前我看过的很多C++或者其它语言自己写的神经网络,都会有这样或那样的理解错误,建议先使用现成的matlab的神经网络工具箱进行训练。另外是输入的问题,图象一般会先提取特征,再将特征作为输入。

你在贴吧也提问了吧,这个我在贴吧里也回答了。

输出的问题,一般模式识别会用 0 1向量来代表,例如你有三类,目标输出应该是[ 0 1 0]这样,来代表它是第2类, 训练的时候用 0 1 0,当然,预测到的可能是[ 0.1 0.9 0.1]这样。

这是我所想到的问题,楼主看看是不是这样一回事。下面是我的一些建议:改为用神经网络工具箱。借鉴《 MATLAB神经网络原理与实例精解 》里的 基于概率神经网络的手写体数字识别 ,对图象作预处理。

参考2012Bmatlab \R2012b\toolbox\nnet\nndemos下的classify_crab_demo例子。调用patternnet建立模式识别网络。

可以到 《神经网络之家》  学习神经网络。

谷歌人工智能写作项目:神经网络伪原创

如何通过人工神经网络实现图像识别

人工神经网络(Artificial Neural Networks)(简称ANN)系统从20 世纪40 年代末诞生至今仅短短半个多世纪,但由于他具有信息的分布存储、并行处理以及自学习能力等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用写作猫

尤其是基于误差反向传播(Error Back Propagation)算法的多层前馈网络(Multiple-Layer Feedforward Network)(简称BP 网络),可以以任意精度逼近任意的连续函数,所以广泛应用于非线性建模、函数逼近、模式分类等方面。

目标识别是模式识别领域的一项传统的课题,这是因为目标识别不是一个孤立的问题,而是模式识别领域中大多数课题都会遇到的基本问题,并且在不同的课题中,由于具体的条件不同,解决的方法也不尽相同,因而目标识别的研究仍具有理论和实践意义。

这里讨论的是将要识别的目标物体用成像头(红外或可见光等)摄入后形成的图像信号序列送入计算机,用神经网络识别图像的问题。

一、BP 神经网络BP 网络是采用Widrow-Hoff 学习算法和非线性可微转移函数的多层网络。一个典型的BP 网络采用的是梯度下降算法,也就是Widrow-Hoff 算法所规定的。

backpropagation 就是指的为非线性多层网络计算梯度的方法。一个典型的BP 网络结构如图所示。我们将它用向量图表示如下图所示。

其中:对于第k 个模式对,输出层单元的j 的加权输入为该单元的实际输出为而隐含层单元i 的加权输入为该单元的实际输出为函数f 为可微分递减函数其算法描述如下:(1)初始化网络及学习参数,如设置网络初始权矩阵、学习因子等。

(2)提供训练模式,训练网络,直到满足学习要求。(3)前向传播过程:对给定训练模式输入,计算网络的输出模式,并与期望模式比较,若有误差,则执行(4);否则,返回(2)。

(4)后向传播过程:a. 计算同一层单元的误差;b. 修正权值和阈值;c. 返回(2)二、 BP 网络隐层个数的选择对于含有一个隐层的三层BP 网络可以实现输入到输出的任何非线性映射。

增加网络隐层数可以降低误差,提高精度,但同时也使网络复杂化,增加网络的训练时间。误差精度的提高也可以通过增加隐层结点数来实现。一般情况下,应优先考虑增加隐含层的结点数。

三、隐含层神经元个数的选择当用神经网络实现网络映射时,隐含层神经元个数直接影响着神经网络的学习能力和归纳能力。

隐含层神经元数目较少时,网络每次学习的时间较短,但有可能因为学习不足导致网络无法记住全部学习内容;隐含层神经元数目较大时,学习能力增强,网络每次学习的时间较长,网络的存储容量随之变大,导致网络对未知输入的归纳能力下降,因为对隐含层神经元个数的选择尚无理论上的指导,一般凭经验确定。

四、神经网络图像识别系统人工神经网络方法实现模式识别,可处理一些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,允许样品有较大的缺损、畸变,神经网络方法的缺点是其模型在不断丰富完善中,目前能识别的模式类还不够多,神经网络方法允许样品有较大的缺损和畸变,其运行速度快,自适应性能好&#x

你可能感兴趣的:(神经网络,matlab,人工智能)