神经网络层设计
Posted
技术标签:
【中文标题】神经网络层设计【英文标题】:Neural Network layer design 【发布时间】:2012-09-22 11:56:01 【问题描述】:我对神经网络有点陌生。这是我在 Matlab 中尝试过的一段代码
P= 0 + (rand(1) * 10);
T = (P-1)/(P+1);
net = newelm(P,T,5);
net = train(net,P,T);
Y = sim(net,P);
现在,当我在 matlab 的命令窗口中输入 net.B1 和 net.LW1 时,我得到了偏置权重和层权重,但我也发现这些权重值会根据输入值不断变化.
所以我可以为特定函数(以及任何输入值)设置一个不会改变的预定义权重值,这样我就可以使用这些权重值为特定函数设计一个神经网络。就像这里一样,我有 T,它通过一个特定的方程与 P 相关。
【问题讨论】:
【参考方案1】:如果您的某个输入与输出变量具有已知关系,请将其从网络中取出,而不是创建复杂的解决方法,例如修复网络权重。 (由于网络内部的可变交互和非线性变换,它会变得复杂。)
例如
Y = a*X1 + 3.6*X2 # relationship between Y and X2 is known
然后在这个关系上使用神经网络:
Y - 3.6*X2 = a*X1
^^^^^^^^^^ ^^^^
[target] [input]
【讨论】:
感谢您的回复,但我怀疑您是否有我的问题。在我上面编写的代码中,对于 P 的特定值,我得到 T,它与上面给出的 P 有关系。现在,当我尝试读取权重时,不同的 P 不同,这是显而易见的。现在有没有机会我可以获得恒定的权重值,例如对于特定函数,即对于加法或减法函数,我可以在网络中拥有一组特定的权重,当我向该网络提供 2 个输入时,我如果是加法或减法函数,则获取这两个输入的和或差。以上是关于神经网络层设计的主要内容,如果未能解决你的问题,请参考以下文章