BP神经网络中初始权值和阈值的设定

代码如下:w1=x(1:inputnum*hiddennum);B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennu... 代码如下:
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
分别是什么意思,为什么要这么确定?
展开
 我来答
帐号已注销
高粉答主

2020-05-18 · 每个回答都超有意思的
知道答主
回答量:2169
采纳率:0%
帮助的人:35.7万
展开全部

1、首先需要了解BP神经网络是一种多层前馈网络。

2、以看一下在matlab中BP神经网络的训练函数,有梯度下降法traingd,弹性梯度下降法trainrp,自适应lr梯度下降法traingda等。

3、在matlab中命令行窗口中定义输入P,输出T,·通过“newff(minmax(P),[5,1]构建BP神经网络,“[net,tr]=train(net,P,T);”进行网络训练,“sim(net,P)”得到仿真预测值。

4、在命令行窗口按回车键之后,可以看到出现结果弹窗,最上面的Neural Network下面依次代表的是“输入、隐含层、输出层、输出”,隐含层中有5个神经元。

5、Progress下面的Epoch代表迭代次数,Gradient代表梯度,Vaildation Checks代表有效性检查,最后的绿色对勾代表性能目标达成。

6、最后将实际曲线和预测曲线绘制出来,可以看到使用BP神经网络预测的结果曲线基本和实际输出曲线一致。

帐号已注销
2021-05-28 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:165万
展开全部

首先需要了解BP神经网络是一种多层前馈网络。以看一下在matlab中BP神经网络的训练函数,有梯度下降法traingd,弹性梯度下降法trainrp,自适应lr梯度下降法traingda等。

因为初始值(初始权值和阀值)都在x这个向量中,x(n,1)的长度n为:n=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum

其中inputnum*hiddennum是输入层到隐含层的权值数量,hiddennum是隐含层神经元个数(即隐含层阀值个数),hiddennum*outputnum是隐含层到输出层权值个数,outputnum是输出层神经元个数(即输出层阀值个数)。

结构

BP网络是在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。 

BP神经网络的计算过程由正向计算过程和反向计算过程组成。正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每~层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。

以上内容参考:百度百科-BP神经网络

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
末日新生ok
2021-04-22
知道答主
回答量:3
采纳率:0%
帮助的人:1819
展开全部

这是一个三层神经网络,x里边保存得是你用其他算法确定好的权值和阈值,括号里边计算的是对应各层权值阈值的索引(序号)比如 三层神经网络,输入层2  隐含层3 输出层1

w1=x(1:inputnum*hiddennum); 

输入层到隐含层的 权值个数=输入层数量*输出层数 ,你可以想象为输入层 到 隐含层的线,总共2*3 =6个 ,索引值是1-6 ,W1(1,6)


B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);

隐含层的阈值所在索引: 前边到6 了,这个肯定要从6+1开始,间隔就是隐含层阈值的个数3,所以右边范围是6+3.隐含层阈值B1的索引值就是x(7:9)

下边都类似了
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);  隐含层到输出层的权值 x(10,12)
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);  输出层阈值只有一个  x(13,13)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shentianyu00
2013-01-15
知道答主
回答量:3
采纳率:0%
帮助的人:4374
展开全部
楼主,你是怎么看懂的啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友279d0e4
推荐于2017-12-16 · 超过15用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:42.5万
展开全部
你这是不是用遗传算法优化权值和阀值啊?
我不知道你x的哪里来的?所以也不知道你是如何确定初始权值和阀值。
不过我们平常写程序时这些值都是随机赋予的。
追问
就是看不明白,比如说B1中,怎么又有乘法又有加法,而且中间还有冒号?这样B1最后是一个矩阵吗?如果是,它的维数是多少?几行几列?要是这个解释明白了,就把分给你哈。
追答
因为初始值(初始权值和阀值)都在x这个向量中,x(n,1)的长度n为:n=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum
其中inputnum*hiddennum是输入层到隐含层的权值数量,hiddennum是隐含层神经元个数(即隐含层阀值个数),hiddennum*outputnum是隐含层到输出层权值个数,outputnum是输出层神经元个数(即输出层阀值个数);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式