神经网络问题,什么阈值是2,中间层到输出层权值为什么是{2,1}

神经网络问题,什么阈值是2,中间层到输出层权值为什么是{2,1},第1张

netIW 属性定义了从网络输入向量到网络层的权值向量(即输入层的权值向量)结构。其值为NlNi的细胞矩阵,Nl为网络层数(netnumLayers),Ni为输入向量数(netnumInputs)。通过访问netIW{i,j},可以获得第i 个网络层来自第j 个输入向量的权值向量值。 所以一般情况下net,iw{1,1}就是输入层和隐含层之间的权值。

netLW定义了从一个网络层到另一个网络层的权值向量结构。其值为NlNl的细胞矩阵,Nl为网络层数(netnumLayers)。通过访问netLW{i,j},可以获得第i 个网络层来自第j 个网络层的权值向量值。 因此,如果网络是单隐含层,netlw{2,1}就是输出层和隐含层之间的权值。

最需要理解的就是:这都是元胞数组。

请理解程序中的变量含义:

inputnum:输入层节点数

hiddennum:隐层节点数

outputnum:输出层节点数

因此,当输入为3时,如果前面有inputnum=size(P,1);语句,将会自适应确定输入节点数;如果没有使用该语句,直接将inputnum赋值为3即可,即加上inputnum=3;

你这段代码是GA-BP神经网络最后的染色体解码阶段的代码,注意染色体编码结构为:输入层与隐层间权值矩阵、隐层阈值、隐层与输出层间权值矩阵、输出层阈值。

可以。

看你自己对bp的设计,如果你的权值更新里面只是对n个神经元的权值更新,就是默认另外的那个为0 此时y=f(x)。

而如果你的权值更新包括对另外一个b的更新,则y=f(x)+b而已。

似乎从精度上说,也没有太大区别。

因为神经元的传输函数在[0,1]之间区别比较大,如果大于1以后,传输函数值变化不大(导数或斜率就比较小),不利于反向传播算法的执行。反向传播算法需要用到各个神经元传输函数的梯度信息,当神经元的输入太大时(大于1比如),相应的该点自变量梯度值就过小,就无法顺利实现权值和阈值的调整)。传输函数比如logsig或tansig,你可以把函数图像画出来,会发现,[-1,1]之间函数图像比较徒,一阶导数(梯度)比较大,如果在这个敬意范围之外,图像就比较平坦,一阶导数(梯度)就接近0了。

不一定,也可设置为[-1,1]之间。事实上,必须要有权值为负数,不然只有激活神经元,没有抑制的也不行。至于为什么在[-1,1]之间就足够了,这是因为归一化和Sigmoid函数输出区间限制这两个原因。一般在编程时,设置一个矩阵为bounds=ones(S,1)[-1,1]; %权值上下界。

在MATLAB中,可以直接使用net = init(net);来初始化。我们可以通过设定网络参数netinitFcn和netlayer{i}initFcn这一技巧来初始化一个给定的网络。netinitFcn用来决定整个网络的初始化函数。前馈网络的缺省值为initlay,它允许每一层用单独的初始化函数。设定了netinitFcn ,那么参数netlayer{i}initFcn 也要设定用来决定每一层的初始化函数。对前馈网络来说,有两种不同的初始化方式经常被用到:initwb和initnw。initwb函数根据每一层自己的初始化参数(netinputWeights{i,j}initFcn)初始化权重矩阵和偏置。前馈网络的初始化权重通常设为rands,它使权重在-1到1之间随机取值。这种方式经常用在转换函数是线性函数时。initnw通常用于转换函数是曲线函数。它根据Nguyen和Widrow[NgWi90]为层产生初始权重和偏置值,使得每层神经元的活动区域能大致平坦的分布在输入空间。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/12180690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存