有两组大数据盈利,聚聚点距离,盈利,怎么用BP神经网络模型编写程序。

BP神经网络算法学习---处理流程(伪代码)
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
一个神经网络的结构示意图如下所示。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。
输入层神经元的个数由样本属性的维度决定,输出层神经元的个数由样本分类个数决定。隐藏层的层数和每层的神经元个数由用户指定。
每一层包含若干个神经元,每个神经元包含一个而阈值,用来改变神经元的活性。网络中的连线表示前一层神经元和后一层神经元之间的权值。每个神经元都有输入和输出。输入层的输入和输出都是训练样本的属性值。
对于隐藏层和输出层的输入 其中,是由上一层的单元i到单元j的连接的权;Oi是上一层的单元i的输出;而是单元j的阈值。
神经网络中神经元的输出是经由激活函数计算得到的。该函数用符号表现单元代表的神经元活性。激活函数一般使用simoid函数(或者logistic函数,目前RELU应用较为广泛)。神经元的输出为:
除此之外,神经网络中有一个学习率(l)的概念,通常取0和1之间的值,并有助于找到全局最小。如果学习率太小,学习将进行得很慢。如果学习率太大,可能出现在不适当的解之间摆动。
交代清楚了神经网络中基本要素,我们来看一下BP算法的学习过程:
BPTrain(){
初始化network的权和阈值。
while 终止条件不满足 {
for samples中的每个训练样本X {
// 向前传播输入
for 隐藏或输出层每个单元j {
;// 相对于前一层i,计算单元j的净输入
;// 计算单元j的输出
//反向传播误差
for 输出层每个单元j {
;// 计算误差,选择Sigmoid函数作为激活函数
for 由最后一个到第一个隐藏层,对于隐藏层每个单元j {
;// k是j的下一层中的神经元
for network中每个权 {
; // 权增值
; // 权更新
for network中每个偏差 {
; // 偏差增值
;// 偏差更新
算法基本流程就是:
1、初始化网络权值和神经元的阈值(最简单的办法就是随机初始化)
2、前向传播:按照公式一层一层的计算隐层神经元和输出层神经元的输入和输出。
3、后向传播:根据公式修正权值和阈值
直到满足终止条件。
算法中还有几点是需要说明的:
1、关于,是神经元的误差。
对于输出层神经元,其中,是单元j的实际输 出,而是j基于给定训练样本的已知类标号的真正输出。
对于隐藏层神经元,其中,是由下一较高层中单元k到单元j的连接权,而是单元k的误差。
权值增量是,阈值增量是,其中是学习率。
对于的推导采用了梯度下降的算法。推导的前提是保证输出单元的均方差最小。,其中P是样本总数,m是输出层神经元个数是样本实际输出,是神经网络输出。
梯度下降思路就是对求的导数。
(如果觉得以下公式看上去很复杂,头大,推荐看我另一篇博客的解释BP神经网络算法学习---基础理论1 )
对于输出层:
其中的就是。
对于隐藏层:
其中=就是隐藏层的误差计算公式。
2、关于终止条件,可以有多种形式:
& 前一周期所有的都太小,小于某个指定的阈值。
& 前一周期未正确分类的样本百分比小于某个阈值。
& 超过预先指定的周期数。
& 神经网络的输出值和实际输出值的均方误差小于某一阈值。
一般地,最后一种终止条件的准确率更高一些。
在实际使用BP神经网络的过程中,还会有一些实际的问题:
1、 样本处理。对于输出,如果只有两类那么输出为0和1,只有当趋于正负无穷大的时候才会输出0,1。因此条件可适当放宽,输出&0.9时就认为是1,输出&0.1时认为是0。对于输入,样本也需要做归一化处理。
2、 网络结构的选择。主要是指隐藏层层数和神经元数决定了网络规模,网络规模和性能学习效果密切相关。规模大,计算量大,而且可能导致过度拟合;但是规模小,也可能导致欠拟合。
3、 初始权值、阈值的选择,初始值对学习结果是有影响的,选择一个合适初始值也非常重要。
4、 增量学习和批量学习。上面的算法和数学推导都是基于批量学习的,批量学习适用于离线学习,学习效果稳定性好;增量学习使用于在线学习,它对输入样本的噪声是比较敏感的,不适合剧烈变化的输入模式。
5、 对于激励函数和误差函数也有其他的选择。
总的来说BP算法的可选项比较多,针对特定的训练数据往往有比较大的优化空间。502 Bad Gateway
502 Bad Gateway
openresty/1.11.2.2matlab编写BP神经网络,二维输入,一维输出_百度知道
matlab编写BP神经网络,二维输入,一维输出
如何用matlab编写BP神经网络?在train函数那儿总是报错。
我想要一个二维输入,一维输出,用循环编写的神经网络程序。
多维输入的最好啦!
另外想问一下出了循环 还有其他的编写方法吗?二维用循环还好,如果是多维用循环岂不是很麻烦?
邮箱:reavnc...
我有更好的答案
这个是我前几年编写的bpnn程序,我已经使用过,里面也有详细的解释说明,可供参考
请问有更简单的一点吗?用trainff的
额,上面那个是我根据原理编写出来的,你要那种使用matlab自带函数编写的啊,下面的
采纳率:53%
参考这一份 你改改图片 就可以了
为您推荐:
其他类似问题
您可能关注的内容
bp神经网络的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求助:如何运用MATLAB编写一个BP神经网络程序,要求是二维输入,一维输出(输出值只能是0或者1),多谢!_百度知道
求助:如何运用MATLAB编写一个BP神经网络程序,要求是二维输入,一维输出(输出值只能是0或者1),多谢!
输入0.45 42;0.32 42;0.47 51;0.52 50;0.88 6;0.92 3;0.01 21;0.06 4;0.58 48;0.78 44
对应输出1 0 1 1 0 0 0 0 1 1
要求能够得到相关的权值矩阵、阈值矩阵~
万分感谢!急用!望不吝赐教
程序中的输入值可以不是提到的,但是输出值只能对应1或0,能够...
我有更好的答案
06 4;0.58 48;0.78 44];[net,tr] = train(net,y=[1;0;1;1;0;0;0;0;1;1]inputs = x&#39.valRatio = 15&#47.47 51;0;
% Mean squared errornet,'plottrainstate&#39.plotFcns = {'plotperform'.52 50.45 42;
% Levenberg-Marquardtnet.performFcn = 'mse'.inputs{1};plotregression', '100.divideMode = 'net.88 6;0.92 3;removeconstantrows'.* tr.valMask{1};0.processFcns = {'0;hiddenLayerSize = 8;removeconstantrows'.32 42;ploterrhist'100.trainRatio = 70/;targets = y';
% Divide up every samplenet.dividePnet = patternnet(hiddenLayerSize);dividerand';sample';0;,', .,trainTargets,outputs)valPerformance = perform(net.processFcns = {&#39,outputs);performance = perform(net,targets,outputs)trainTargets = targets .*plotfit'
% Divide data randomly0x=[0.testRatio = 15/100;net.trainFcn = 'trainlm','mapminmax'};net.outputs{2}.trainMask{1};valTargets = targets
.01 21,'mapminmax'};net.divideFcn = &#39,valTargets,outputs)testPerformance = perform(net,testTargets,outputs)view(net)训练的模型保存在net这个结构体中;};net.divideParam,targets);outputs = net(inputs);errors = gsubtract(targets.dividePtestTargets = targets
.* tr.testMask{1};trainPerformance = perform(0..
麻烦再问一下,在MATLAB7.0中运行时总说[net,tr] = train(net,inputs,targets);有问题,提示是The expression to the left of the equals sign is not a valid target for an assignment. 是为什么啊?
你是全部把代码复制过去的吗,因为我对你的y变量进行了一个装置,变成了列向量,才符合神经网络的训练要求,你全部复制过去再训练看看,我的运行没有问题。
采纳率:67%
为您推荐:
其他类似问题
bp神经网络的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 大数据盈利 的文章

 

随机推荐