求解下面BP求股票价格的程序BP误差函数选取太大了,降不下来,求大神

      遗传算法优化BP神经网络分为BP神经網络结构确定、遗传算法优化和 BP神经网络预测3个部分其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定 BP神经网络结构,这样僦可以确定遗传算法的优化参数个数,进而确定遗传算法个体的编码长度因为遗传算法优化的参数是 BP神经网络的初始权值和阈值,只要网絡的结构已知,权值和阈值的个数就已知了种群中的每个个体都包含了一个网络所有权值和阈值,个体通过适应度函数计算个体适应度值,遺传算法通过选择、交叉和变异操作找到最优适应度值对应的个体。BP神经网络预测用遗传算法得到最优个体对网络进行初始权值和阈值的賦值,网络经训练后预测样本输出神经网络的权值和阈值一般是通过初始化为【-0.5,0.5】区间的随机数,这个初始化参数对网络训练的影响很大但是又无法准确获得,对于相同的初始权重值和阈值网络的训练结果是一样的,引入遗传算法就是为了优化出最优的初始权值和阈值 遗传算法优化BP神经网络的算法流程如下: 
      遗传算法的基本要素包括染色体编码方法、适应度函数、遗传操作和运行参数。其中染色体编碼方法是指个体的编码方法,目前包括二进制法、实数法等二进制法是指把个体编码成为一个二进制串,实数法是指把个体编码成为一个实數串。适应度函数是指根据进化目标编写的计算个体适应度值的函数,通过适应度函数计算每个个体的适应度值,提供给选择算子进行选择遺传操作是指选择操作、交叉操作和变异操作。运行参数是遗传算法在初始化时确定的参数,主要包括群体大小 M,遗传代数G,交叉概率Pc和变异概率Pm(下面都是引用的MATLAB智能算法30个案例里面的内容,太多了偷了个懒) 


}

有这么一段程序不知道如何显礻BP误差函数选取曲线,像BP网络显示的那种请教高手指点

}

版权声明:本文为博主原创文章未经博主允许不得转载。 /sinat_/article/details/

  人工神经网络(Artificial Neural NetworksANN)系统是 20 世纪 40 年代后出现的。它是由众多的神经元可调的连接权值连接而成具有大规模并行处理、分布式信 息存储、良好的自组织自学习能力等特点。BP(Back Propagation)算法又称为BP误差函数选取反向传播算法是人工神经网络中的一种監督式的学习算法。BP 神经网络算法在理 论上可以逼近任意函数基本的结构由非线性变化单元组成,具有很强的非线性映射能力而且网絡的中间层数、各层的处理单元数及网络的学习系数等参数可根据具体情况设定,灵活性很大在优化、信号处理与模式识别、智能控制、故障诊断等许 多领域都有着广泛的应用前景。


神经网络中最基本的成分是神经元模型在这个模型中,神经元接收到来自n个其他神经元傳递过来的输入信号这些输入信号通过带权重的连接进行传递,神经元接收到的总数入值将与神经元的阈值进行比较然后通过激活函數处理以产生神经元的输出。
理想中的激活函数是下图中(a)所表示的阶跃函数它将输入值映射为输出值0或者1,然而阶跃函数具有不連续性、不光滑等不太好的性质,因此实际常用Sigrnoid函数作为激活函数典型的Sigrnoid函数是下图中(b)所示,它把可能在较大范围内变化的输入值擠压到(0,1)输出值范围内


常见的神经网络层级结构是多层前向神经网络

多层前向神经网络由三部分组成:输出层、隐藏层、输出层烸层由单元组成;

输入层由训练集的实例特征向量传入,经过连接结点的权重传入下一层前一层的输出是下一层的输入;隐藏层的个数昰任意的,输入层只有一层输出层也只有一层;

除去输入层之外,隐藏层和输出层的层数和为n则该神经网络称为n层神经网络,如下图為2层的神经网络;

一层中加权求和根据非线性方程进行转化输出;理论上,如果有足够多的隐藏层和足够大的训练集可以模拟出任何方程;

使用神经网络之前,必须要确定神经网络的层数以及每层单元的个数;

为了加速学习过程,特征向量在传入输入层前通常需要標准化到0和1之间;

离散型变量可以被编码成每一个输入单元对应一个特征值可能赋的值,比如:特征值A可能去三个值(a0,a1,a2),那么可以使用3个輸入单元来代表A

0 0 a0?的单元值取1其余取0;
a1?的单元值取1,其余取0;
a2?的单元值取1其余取0;

神经网络既解决分类(classification)问题,也可以解决回歸(regression)问题对于分类问题,如果是两类则可以用一个输出单元(0和1)分别表示两类;如果多余两类,则每一个类别用一个输出单元表礻所以输出层的单元数量通常等一类别的数量。

没有明确的规则来设计最佳个数的隐藏层一般根据实验测试BP误差函数选取和准确率来妀进实验。


BP误差函数选取逆传播算法(BP算法)

通过迭代来处理训练集中的实例;

对比经过神经网络后预测值与真实值之间的差;

反方向(從输出层=>隐藏层=>输入层)来最小化BP误差函数选取来更新每个连接的权重;

输入:数据集、学习率、一个多层神经网络构架;

输出:一个訓练好的神经网络;

初始化权重和偏向:随机初始化在-1到1之间(或者其他),每个单元有一个偏向;对于每一个训练实例X执行以下步骤:

1、由输入层向前传送:

结合神经网络示意图进行分析:

Oj?=i?wij?xi?+θj?由隐藏层到输出层:

Ok?=j?wjk?Oj?+θk?两个公式进行总结,可以得箌:

Ij?为当前层单元值 Oi?为上一层的单元值, wij?为两层之间连接两个单元值的权重值, θj?为每一层的偏向值我们要对每一层的输絀进行非线性的转换,示意图如下:

Ij?f为非线性转化函数,又称为激活函数定义如下:

f(x)=1+e?x1?即每一层的输出为:

这样就可以通过输入徝正向得到每一层的输出值。

① 偏重的更新低于某个阈值;


}

我要回帖

更多关于 BP误差函数选取 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信