您好,刚刚看了您的bp神经网络算法步骤,讲的恨透彻 但是这里没有输入数据,您能否把那个输入文件一并发给我

深入探究递归神经网络:大牛级的训练和优化如何修成?
发表于 23:44|
来源nikhilbuduma|
作者Nikhil Buduma
摘要:不同于传统FNN,RNN无需在层面之间构建,同时引入定向循环,能够更好地处理高维度信息的整体逻辑顺序。本文中,MIT的Nikhil Buduma将带您深入探析RNN的原理、训练和优化等各方面的内容,以及RNN已经获取的一些成就。
在深度学习领域,传统的前馈神经网络(feed-forward neural net,简称FNN)具有出色的表现,取得了许多成功,它曾在许多不同的任务上——包括手写数字识别和目标分类上创造了记录。甚至到了今天,FNN在解决分类任务上始终都比其他方法要略胜一筹。尽管如此,大多数专家还是会达成共识:FNN可以实现的功能仍然相当有限。究其原因,人类的大脑有着惊人的计算功能,而“分类”任务仅仅是其中很小的一个组成部分。我们不仅能够识别个体案例,更能分析输入信息之间的整体逻辑序列。这些信息序列富含有大量的内容,信息彼此间有着复杂的时间关联性,并且信息长度各种各样。例如视觉、开车、演讲还有理解能力,这些都需要我们同时处理高维度的多种输入信息,因为它们时时都在变化,而这是FNN在建模时就极为匮乏的。现在的问题在于如何学习信息的逻辑顺序,解决这一问题有一个相当靠谱的途径,那就是递归神经网络(Recurrent Neural Net,简称RNN)。RNN是什么?RNN建立在与FNN相同的计算单元上,两者之间区别在于:组成这些神经元相互关联的架构有所不同。FNN是建立在层面之上,其中信息从输入单元向输出单元单向流动,在这些连通模式中并不存在不定向的循环。尽管大脑的神经元确实在层面之间的连接上包含有不定向循环,我们还是加入了这些限制条件,以牺牲计算的功能性为代价来简化这一训练过程。因此,为了创建更为强大的计算系统,我们允许RNN打破这些人为设定强加性质的规定:RNN无需在层面之间构建,同时定向循环也会出现。事实上,神经元在实际中是允许彼此相连的。RNN例图,包含直接循环和内部连通RNN包含输入单元(input units)群,我们将其标记为u1,u2直到uK,而输出单元(output units)群则被标记为y1,y2直到yL。RNN还包含隐藏单元(hidden units),我们将其标记为x1,x2直到xN,这些隐藏单元完成了最为有意思的工作。你会发现,在例图中:有一条单向流动的信息流是从输入单元到达隐藏单元的,与此同时另一条单向流动的信息流从隐藏单元到达输出单元。在某些情况下,RNN会打破后者的限制,引导信息从输出单元返回隐藏单元,这些被称为“backprojections”,不让RNN分析更加复杂。我们在这里讨论的技术同样适用于包含backprojections的RNN。训练RNN存在很多相当具有挑战性的难题,而这仍是一个非常活跃的研究领域。了解概念之后,本文将带您深入探析RNN的原理、训练和优化等各方面的内容,以及RNN已经获取的一些成就。模拟RNN现在我们了解到RNN的结构了,可以讨论一下RNN模拟一系列事件的方式。举个简单的例子,下文中的这个RNN的运作方式类似一个计时器模块,这是由Herbert Jaeger设计的一个经典案例(他的原稿请点击查看)。简单案例:一个完美的RNN如何模拟计时器在这个例子中,我们有两个输入单元,输入单元u1相当于一个二进制开关,峰值时数值为1(在RNN开始计时的时候);输入单元u2是一个离散变量,其取值范围在0.1到1.0之间变化,指的是计时器如果在那一瞬间开启,则输出值相应开启的长度。在RNN的规范中,要求它将输出结果持续在1000 u2的区间里开启。最终,训练案例中的输出结果会在0(关闭)与0.5(开启)之间来回拨动。但是,一个神经网络究竟是如何完成这个计算的呢?首先,RNN的所有隐藏层行为会被初始化成为一些预设的状态,然后在每个时间步长中(时间 t =1,2,……),所有的隐藏单元通过外部连接发送其当前的行为,再通过其他神经元(如果有自我连接则包括自身)的输入和当前值的输入,进行加权求和(logit)之后重新计算出新的行为,然后将其写入神经元的特定功能中(简单的复制操作,可调函数,soft-max等等)。因为之前的行为矢量被用在计算每个时间步长的行为矢量中,RNN可以保留之前的事件记忆并使用该记忆来做决定。显然一个神经网络不大可能完全根据规范而构建,但是可以想象一下,在RNN的训练进行过数百次或数千次之后,其输出结果(橙色)会非常接近客观数据(蓝色)。下文中我们会对RNN训练的方式进行更多讨论。经过良好的训练后,RNN在实验案例中接近输出测试用例此时此刻,你可能觉得这相当酷,但是有相当多的案例都很不自然。实践中运用RNN的策略是什么呢?我们调查了真实的系统以及随着时间流逝它们对于刺激物的回应行为。举例来说,你可以教会一个RNN通过建立一个数据组将声频转化为文字(在某种意义上,在训练组中观察人类的听觉系统对于输入内容的回应)。你还可以使用一个训练过的神经网络来模拟一个系统在异常刺激下的反映。RNN在实践中如何运用但是如果你富有创意的话,可以通过更为惊人方式来使用RNN,比如一种专门的RNN——LSTM(Long Short-Term Memory),就已经被用来实现规模巨大的数据压缩比率了,尽管目前基于RNN的压缩方法还需要花费大量的时间。(后文将有详细解释。)通过时间进行RNN-BP(BackPropagation)算法的训练我们一开始又是如何对RNN进行训练,让它来完成所有这些惊人的功能呢?尤其我们是如何确定每个连接的强度(或称权值)呢?我们又是如何从所有隐藏单元中选择初始行为的呢?我们的第一反应可能是直接使用BP算法,毕竟这种算法在FNN中使用过而且效果良好。这里使用BP算法的问题在于我们有着周期性的依赖关系。在FNN中,我们在针对一个层面中的权值来计算误差衍生时,可以根据上一层面中的误差衍生对其进行完全表达。RNN中并没有这种漂亮的分层,因为神经元并未组成有向非循环图。在RNN中使用BP算法可能会迫使我们根据它自身来进行误差衍生的表达,这样会使分析复杂化。因此,使用BP算法需要执行一个机智的转化:将RNN转化为一个新的架构,这个新架构在本质上来说就是一个FNN,我们将这个策略称为通过时间“展开”RNN。下面图表中有一个样例(为了简化起见,每个时间步长中只有一个输入/输出):通过时间将RNN“展开”以使用BP算法具体步骤非常简单,但对我们分析神经网络的能力有着深远的影响。我们将RNN输入、输出、隐藏单元和复制分别看作时间步长。在我们的新FNN中,这些分别对应着不同的层面,然后我们将隐藏单元按照下面的方式连接起来,在原始的RNN中,w表示从神经元i到神经元j的连接强度(即权值),而在新的FNN中,我们画出一个连接w的图,分别连接每个tk层中的神经元i和每个tk+1层中的神经元j。这样一来,为了训练RNN,我们取随机的初始化权值,将其“展开”到FNN中,然后通过BP算法以确定最佳权值。为了确定时间0时隐藏状态的赋初值,我们可以将初始行为视作注入FNN底层的参数,然后通过BP算法以确定其最佳值。但是这里我们遇到了一个问题:在使用过每一批训练案例之后,我们需要基于计算出的误差衍生来修正权值。在FNN中,我们有一套连接关系,全部与原始的RNN中同样的连接关系相对应。但是,根据权值计算出的误差衍生却无法保证是相同的,也就是说我们可能会用不同的数量来修正误差。我们当然不想变成这样!对于这一问题,我们的解决办法是:将同一组中所有连接的误差衍生求平均值(或者求和)。也就是说每一批训练之后,我们会用相同的数量来修正相应连接,因此如果它们的赋初值相同,则最终值也会相同,这很好地解决了我们的问题。深层BP算法的问题不同于传统的FNN,由展开RNN而产生的FNN可能会有非常多层。这就产生了一个严重的现实问题:通过时间手段使用BP算法来进行训练可能会变得非常困难。让我们退回一步,研究一下原因。我们试着训练RNN做一个非常简单的工作:先给RNN的一个隐藏单元赋予一个偏差值,然后把它与自身还有一个单一的输出接口相连接。我们希望这个神经网络在50步以后输出一个固定目标值,这个值我们设定为0.7。这样我们在将要在第50步的时候,使用输出的均方误差(squared error)作为误差函数,就能通过权值和偏差值画出一个曲面:一个简单的RNN的问题误差曲面(图片出自:)现在,假定我们从红色五角星处开始(使用一个随机的权值赋初值),你会注意到:在使用梯度下降(gradient descent)的时候,图线会越来越趋近于曲面的局部最小值。但是突然间,在稍微越过低谷并触及峭壁的时候,在相反方向出现一个巨大的梯度,这就使得我们向反方向反弹并远离局部最小值。一旦我们进入了虚空中,就会很快发现:梯度几近消失,想要再次接近则需要近乎无穷的时间。这个问题被称做“梯度的爆发与消失”(exploding and vanishing gradients),可以想象一下:我们可以通过改变梯度值,让它永远不要超过最大值来控制这个问题(请看撞到峭壁后点线的路径),但是这个方法仍然不是非常有效,尤其是在更复杂的RNN中。(想要查看这个问题的数学处理方法,请查看这篇。)长短时记忆为了解决这些问题,研究人员提出了RNN的修正架构,以协助在强制的输入、适当的回应与防止梯度爆发之间建立一个长期的时滞。这个架构强制其在特殊记忆单元中的内部状态保持一个常数误差流(constant error flow),这样一来图线既不会爆发也不会消失。这个长短时记忆(LSTM)架构利用了下面结构中显示的单元:基本的LSTM单元架构LSTM单元包含一个尝试将信息储存较久的存储单元。这个记忆单元的入口被一些特殊的门神经元(gate neurons)所保护,被保护的功能包括保存、写入和读取操作。这些门神经元都是logistic units,它们不会将自己的行为作为输入值发送给其他神经元,而是负责在神经网络的其它部分与记忆单元连接的边缘处设定权值。这个记忆单元是一个线型的神经元,有自体内部连接。当保存门被打开时(如1中的行为),自体连接权值为1,记忆单元将内容写入自身。当保存门输出为0时,记忆单元会清除之前的内容。写入门允许在输出值为1的时候,神经网络的其它部分将内容写入记忆单元,而读取门则允许在输出值为1的时候,神经网络的其它部分读取记忆单元。因此,这个操作究竟是如何保持一个时间的常数误差流,从而在局部防止爆发与消失梯度的产生呢?为了更加形象化,我们将LSTM单元按照时间展开:通过时间区域展开LSTM单元首先,保存门被设定为0,写入门被设定为1,并在记忆单元中存入4.2这个值。在随后保存值为1的时候,4.2这个值一直被保存在记忆单元中,拒绝值为0时的读取或写入,最终这个单元在被读取后清除。现在,让我们试着从4.2这个值被载入记忆单元的那一刻起进行BP算法,直到从记忆单元中读出4.2的那一刻并随之将其清除为止。我们发现,根据记忆神经的线型本质,我们从读取点到写入点接收到的BP误差派生的变化完全可以忽略,因为通过所有时间层连接记忆单元的连接权值加权后约等于1。因此,我们可以在几百步中对这个误差派生值进行局部保存,而无需担心梯度的爆发或消失。LSTM RNN非常有效,而且同样适用于很多其他领域。我们早些时候讨论过,LSTM RNN的深层架构被用于实现了相当惊人的数据压缩率。(如果对LSTM RNN的特定应用有兴趣,可以查看这篇做更深入的了解。)结论有效进行神经网络训练的相关方法仍旧是一个活跃的研究领域,并引出了大量置换手段,目前尚无哪一种表现出明显的优势。LSTM RNN架构就是这样一个提高RNN训练的方法。还有一个方法就是使用更好的最优化控制器来对付梯度的爆炸与消失。Hessian-free优化器尝试通过小型梯度探测方向,甚至带来了更小的曲度,这使得它比单纯的梯度下降表现更佳。三分之一的方法涉及到权值谨慎的赋初值,期望借此避免头一个梯度爆发和消失的问题(例如:反射状态网络,基于动量的方法)。原文链接:&(编译/孙薇 校对/周建丁)
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章基于遗传算法的BP神经网络气象预报建模_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
&&¥2.00
喜欢此文档的还喜欢
基于遗传算法的BP神经网络气象预报建模
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢ETFo无线充电技术与系统设计论坛
EAFo第三届 NFC/RFID技术应用论坛
上海·汽车电子与零组件技术论坛
第二届 无线通信技术论坛
第三届可穿戴产品设计技术研讨会
移入鼠标可放大二维码
传统BP算法的改进 - 模拟电路故障诊断的BP神经网络方法研究
来源:现代电子技术
作者:孙必伟,潘 强日 11:19
[导读] 3 传统BP算法的改进 基于上述传统BP算法的局限性,提出将弹性算法与BP神经网络相结合的方法,弹性算法只取偏导数的符号,而不考虑幅值,权值的更新方
3 传统BP算法的改进
  基于上述传统BP算法的局限性,提出将弹性算法与BP神经网络相结合的方法,弹性算法只取偏导数的符号,而不考虑幅值,权值的更新方向是由偏导数的符号来决定的。若在两次连续的迭代中,目标函数对某个权值的偏导数的符号保持不变,则增大相应的更新值,若变号,则减小相应的更新值,其过程可表示为:
  当目标函数与某个权值偏导数的符号与上一次不同时,则表明最近一次权值的更新值太大,算法已跳出一个局部最小值。通过这种方法调整权值参数,可以使变化步长在需要的时候增加,甚至在误差平面趋于平坦的时候也能增加。误差梯度一旦发生变化,相应的调整步长会减小,有效地防止了振荡。克服了BP网络误差下降缓慢,调整时间长,甚至容易陷入局部极小点等局限性,通过弹性算法与BP网络的结合来实现模拟电路的故障诊断。
  4 实例分析
  现以图2所示的某型雷达设备中的射频放大电路为例,选取5个测试点(out1~out5)的电压作为BP网络的输入信号,本文只考虑电阻和电容的硬故障,选择4种故障类型进行分析诊断,加上正常状态一共5种类型。输出状态使用n-1表示法,0为正常,1为故障。表1为测试数据。对故障样本数据进行归一化,将数据线性变换到0.1~0.9之间,即
,xi为原始数据;xmax,xmini分别为变量的最大值和最小值,归一化处理后的数据如表2所示。
  对于BP网络,在闭区间内的任意一个连续函数都可以用单隐层的BP网络逼近,即一个3层的BP网络可以完成任意m维到n维的映射。由于有5个测试点,所以BP网络的输入层为5个神经元,以归一化之后的数据作为BP网络的输入样本,输出层为4个神经元。隐层神经元数目的选择是一个十分复杂的问题,往往需要根据经验或者多次的实验来判定,因而不存在一个确切的表达式来确定。它的数目与问题的要求、输入/输出单元的数目都有着直接关系。隐层单元数目太多会导致学习时间过长、误差不一定最佳,也会导致容错性差、不能识别以前没有看到的样本,因此一定存在一个最佳的隐单元数。此处参照美国科学家Hebb提出的以下经验公式选取:
。其中:n为输入单元数;m为输出单元数;a为[1,10]之间的常数。按照上式,
,即h的取值为4~13。通过Matlab创建一个BP神经网络,设定训练次数为5 000,训练目标net.trainParam.goal=0.01,改变隐层单元的数目,当隐层单元数不同时,达到目标所用的训练次数,如表3所示。
故障诊断相关文章
故障诊断相关下载
BP神经网络相关文章
BP神经网络相关下载
模拟电路相关文章
模拟电路相关下载
技术交流、积极发言! 发表评请遵守相关规定。
随着移动医疗火热不断上升,可穿戴医疗电子已然变成热门行业之一。...
成功地将室内位置与用户数据或用户感兴趣的信息相结合联系,室内定位必定有非常广阔的应用前景。特别是在现在O2O的风潮下,如果能把室内位置、用户...
创新实用技术专题
Copyright &
.All Rights Reserved在看了案例二中的BP神经网络训练及预测代码后,我开始不明白BP神经网络究竟能做什么了。。。 程序最后得到_百度知道
在看了案例二中的BP神经网络训练及预测代码后,我开始不明白BP神经网络究竟能做什么了。。。 程序最后得到
,我开始不明白BP神经网络究竟能做什么了。。谢谢。在以上分析的基础上,但是我无法找到问题出在哪里,BP神经网络的作用仅限于此吗,BP神经网络仅能得到一个控制器的预测输出值?我知道我上面的这些理解肯定在哪里出现了一点偏差,只有给控制器给定一个输入。程序最后得到的结果好像就是预测输出值与实际输出值之间的误差吧。。,这样就无法得到BP神经网络预测的误差了,实际输出值应该是没法作为已知条件出现的,往高手指教,但是在应用中,才能得到作为输出信号的实际输出值,而无法根据误差值的大小对其进行调整优化。也就是说在代码中的实际输出值应该是不可知的在看了BP神经网络训练及预测代码后
提问者采纳
并最终算出来预测输出(输出层的输出)网络的训练过程与使用过程了两码事;最后通过某种训练算法(最基本的是感知器算法)使得代价(预测输出与实际输出的某范数)函数关于权重最小。这里的训练过程就是先伪随机生成权值,同时告诉你这些样本属于哪一类,训练完成以后再拿一个未知类别的数据通过网络进行分类,这个就是反向传播过程,然后代入网络训练。比如BP应用在分类,然后把样本输入进去算出每一层的输出,网络的训练是指的给你一些样本。您所说的那种不需要预先知道样本类别的网络属于无监督类型的网络,使得这个网络具备一定的分类能力,这是正向学习过程,比如自组织竞争神经网络
能具体举个应用的例子么?比如我想用在股票走势预测上,应该怎么处理?
经济学的具体应用我不太了解,你说的这个例子叫做回归型神经网络。具体的应用例子很简单,比如你拿到一组特征x=[x1 x2 x3 x4 ...],然后有一组输出y,现在知道x和y满足某种函数关系y=f(x),假如知道这个函数是哪一类函数,那么通过数论(数值计算方法)就可以解决,这个就是典型的数学上的回归问题,但是假如你连f(x)长的什么样子都不知道,那么就可以使用神经网络。方法是采集到x和y的数据,比如x=x0的时候y=y0,x=x1的时候y=y1,依次类推,这个就是训练样本,通过训练样本训练网络,训练完成以后开始应用,这个应用解决的问题就是我们拿到一个未知的x,可以通过网络运算出来对应的y是多少。你要用在股票走势上,首先就是要确定特征,y肯定是你要知道的股票走势,这组x是你要确定的哪些经济学上的数据,然后采集过去的股票数据(x,y),产生样本,对网络进行训练。训练完成以后,这个网络就可以解答:当前的x出现的时候,股票走势y是什么样的数据。您下面提到的那个输出节点设置的问题,很简单,输出的数据就是你要预测的数据,比如上证指数。假如已知上证指数和某些经济学参数x有关,那么就采集过去的x和上证指数去训练网络,最后得到的网络目的就是当获取一组新的x而需要知道上证指数的时候,运算出来上证指数。
意思我明白了,但是具体操作还是有点迷糊。。。比如程序编写,在MATLAB中有现成的神经网络函数,训练我是会的,但是 怎样用一组新的x去推未知的上证指数,这一步我就不知道怎么处理了
训练完成以后把网络保存下来,然后使用命令a=sim(net,x),这里a是你的返回变量,它就等于你预测出来的数据,net是你训练好的网络名,x就是你那组新的x。
x不是程序开头设定的输入值么?怎么又变成新的了?
x是代表的输入,例如通过纽约股指推断上证的,这个x就是指代的纽约股指,你训练的时候用的是昨天的x,前天的x,大前天的x,依次类推,那么训练好以后拿来算的是今天的x,我在前面的说明当中不是给样本加了下标吗?“比如x=x0的时候y=y0,x=x1的时候y=y1,依次类推,这个就是训练样本”。我们算的时候用的就是x=今天的x这种情况。
我写的程序,训练过程是有的,但预测过程还是不清楚。想请你改一下,这里发不了,我发到你空间了,你帮我看看吧,谢谢了。
你做的这个必然不行。首先是数据量太小,甚至连小样本问题都算不上。其次是违背客观规律,昨天的股指和今天的股指怎么可能存在某一个确定性函数关系呢?今天的股指肯定和今天的经济学数据相关。就好比你用昨天的温度去预测今天的温度一样荒唐,因为今天的温度肯定是和今天的气象学参数有关,忽视客观规律是不可能成功的。神经网络不适合你的模型,你的这种情况需要使用数学方法解决。通过数论来拟合马尔科夫链模型,把问题转化为求昨天与今天股指的概率密度函数或者状态转移矩阵。或者是你通过经济学的有关成果研究一下特征提取,但是我的观点即使是这样,恐怕这个模型只能是用来做理论探讨,不太可能用到股指的预测。经济学的参数本来就不靠谱,有着非常大的误差和干扰信息,神经网络做预测也并不向数学回归那样能给出准确的误差估计,说白了你用非常不靠谱数据来进行不太靠谱的处理,想得到一个靠谱的数据那是不现实的。科学的力量固然强大,但是也要遵循客观情况,千万不要陷入神经网络万能的误区。
那请问有没有什么可以改进的办法?比如我用今晚的道指,以及其他因素比如投资者的情绪等做为因变量来预测明天的开盘价,这样可行么?至于样本假如我收集到近两百个样本,这样是否可行。还望指点迷津!
对不起,这一点我帮不到你。我只能就模型本身的特点帮你分析,你提到的问题是属于建模、特征提取、样本预处理、网络优化的内容,如果是到了这样一个层面的话必须一个专门的课题或者项目支持才能做。这种工作凭借个人的力量和经费是难以完成的,您如果铁了心要做的话我建议您先写一份项目要求,带着它到您当地的经济学科研机构,他们如果有兴趣会接下项目并申请国家社会科学基金或者教育部、科工委的基金,然后给您经费预算,如果成功这些基金会替您分担项目经费的40%左右,失败的话只能按照自筹经费的项目来做,这样需要您提供全额经费,项目完成后他们会按照项目要求给您需要的成果。
提问者评价
谢谢了。。。
其他类似问题
按默认排序
其他2条回答
分为训练过程,就算误差,然后更新认知直到匹配成功对神经网络进行训练后BP网络的作用类似于人脑的类推学习过程:已知条件+已知结果===神经网络和应用过程:待解答条件+神经网络===模拟结果比如我们在认知过程中,输入的是已知的条件和结果就像举例说明对于未知的输入进行变量匹配如果匹配不成功,看到[黑猫]我们会联想到[猫]看到[白猫]我们会联想到[猫]看到[黄猫]我们会联想到[猫]神经网络训练完毕在应用中我们看到一只[花猫]能够识别是[猫]这就是神经网络
还是有点不明白,感觉自己陷入一个误区。。。可不可以加你Q谈一下,其实我现在的主要问题是在输出节点的设定上。不知道该怎么处理!
通过输入/输出样本对产生一个网络,用这个网络来对新的输入值进行处理,这个就是神经网络样本中一个输入对应一个输出,需要输出几个属性就设计几个节点
不知道啊不知道
您可能关注的推广
bp神经网络的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&& 查看话题
关于BP神经网络的两个问题
第一个,hidden layer的神经元个数按照经验是设置为 1.2 - 1.5 * 输入层神经元的个数,还是输入层神经元的个数*输出层神经元的个数&&的积 的平方根, 貌似看到过两种说法,究竟哪种更可取呢,能注明出处更好。
第二个,当对数据集进行regression时,如果有输入属性和输出是完全无关的,将该属性定义为噪声属性,这种情况下是使用BPNN来训练高效呢,还是有其他更高效的学习方法呢?
例如:输入属性f1, f2, f3, f4, f5... 输出为 o1.&&f3, f4 是和o1完全不相关的,即噪声属性。
悬赏这么多分都没人来啊?来人啊,来了我就给分啊。。。 建议你看看这篇文章 基于BP神经网络的图像质量评价参数优化 文章对BP网络参数设置讲得挺细的,就是不知道结果是不是真滴,楼主可以自己根据应用去试。同情提问没人回答的,我前几天提的预测方面的问题也没人答:(:(:(:(:( 第一个,hidden layer的神经元个数最好根据测试精度与泛化性能综合决定 第二个,如果有输入属性和输出是完全无关的,最好不要作为输入,以免过学习 隐含层神经元数问题: 如果隐含层神经元的数目太少,则网络可能难以收敛;如果隐含层神经元数目刚刚够,则网络鲁棒性差,无法识别以前未见过的模式;如果隐含层神经元过多,则会出现过学习的问题,有许多文献提出了经验公式,除了楼主提出的公式以外,还有输入层神经元数*输出层神经元数的平方根+L(L为1-10之间的整数)。事实上如何最优地确定隐含层数目及隐含层神经元的数目,没有很多的理论指导,凭借的只是一些经验。 BP算法的原理:利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。当然BP算法的效果取决于很多方面:隐含层神经元的数目,学习速率的选取,网络的权值等等,所以很难说哪种算法高效不高效。噪声数据对于少数样本的影响大于普通类,可以影响被训练的子概念。其他常用的方法用SVM,多代表点子空间分类,Hippo等等,其中多代表点的子空间分类可以参考下。 : Originally posted by bigbirdsky at
建议你看看这篇文章 基于BP神经网络的图像质量评价参数优化 文章对BP网络参数设置讲得挺细的,就是不知道结果是不是真滴,楼主可以自己根据应用去试。同情提问没人回答的,我前几天提的预测方面的问题也没人答:(:(: 谢谢参与啊。 : Originally posted by nono2009 at
第一个,hidden layer的神经元个数最好根据测试精度与泛化性能综合决定 我晕,我把金币全给你了,纯属误操作啊。。。。。。唉,能否返我80个捏???? : Originally posted by typhoon111 at
我晕,我把金币全给你了,纯属误操作啊。。。。。。唉,能否返我80个捏???? 这个你通知本版版主处理吧。
情况还比较复杂:你给了我100,实际上我只收到80(20%是税)。而你的真实想法是给我20,那意味着我可以得16. 所以,版主应该扣我80-16=64,而返回你80. 我已经通知版主处理了 : Originally posted by nono2009 at
这个你通知本版版主处理吧。
情况还比较复杂:你给了我100,实际上我只收到80(20%是税)。而你的真实想法是给我20,那意味着我可以得16. 所以,版主应该扣我80-16=64,而返回你80. 另外,由于要扣我64金币,所以系统会自动计我违规一次。我很冤枉是不是?:D 所以下次操作金币还是要小心一些。 : Originally posted by nono2009 at
另外,由于要扣我64金币,所以系统会自动计我违规一次。我很冤枉是不是?:D 所以下次操作金币还是要小心一些。 谢谢,给你添麻烦啦。。。。。:tuzi6:
我一看回复的有点多,有点着急着去挨个进行回复啊。。。 : Originally posted by nono2009 at
第二个,如果有输入属性和输出是完全无关的,最好不要作为输入,以免过学习 就是很多时候,你也不确定这个属性是否和输出有关,我试过当训练集很大的时候,BPNN是能识别出来这种噪声属性的,但有没更好的解决办法呢? : Originally posted by qkqjxdtq at
隐含层神经元数问题: 如果隐含层神经元的数目太少,则网络可能难以收敛;如果隐含层神经元数目刚刚够,则网络鲁棒性差,无法识别以前未见过的模式;如果隐含层神经元过多,则会出现过学习的问题,有许多文献提出了 很详细啊。。。。可惜我没金币啦。。。。 第一个问题,我可以很负责任的告诉你,哪个都对,也都不对!
因为按照最近神经网络的思想,神经网络的作用是函数逼近,神经网络隐含层的选取也就没有一个很理想的选取方式,你给出的那两个公式是上个世纪人们通过实验给出的经验公式,实验得出的结果,实际上是和实验数据是有特殊性的,所以你在选取的时候随便选吧!
第二个问题,神经网络是万能的,所以万能之所以万能也就是在一定程度上不是一把钥匙一把锁。所以如果你有别的很好的方法,那么不要用神经网络,如果没有,那么你就选神经网络,神经网络肯定可以实现你的功能!
var cpro_id = 'u1216994';
欢迎监督和反馈:本帖内容由
提供,小木虫仅提供交流平台,不对该内容负责。欢迎协助我们监督管理,共同维护互联网健康,如果您对该内容有异议,请立即发邮件到
联系通知管理员,也可以通过QQ周知,我们的QQ号为:8835100
我们保证在1个工作日内给予处理和答复,谢谢您的监督。
小木虫,学术科研第一站,为中国学术科研研究提供免费动力
广告投放请联系QQ: &
违规贴举报删除请联系邮箱: 或者 QQ:8835100
Copyright &
eMuch.net, All Rights Reserved. 小木虫 版权所有

我要回帖

更多关于 bp神经网络算法步骤 的文章

 

随机推荐