如何显示神经网络中的权重或偏差?

339次观看(过去30天)
如何从我的神经网络的每一层显示权重/偏差?我在做一个有两个隐藏层的前馈神经网络。此外,如何确定在神经网络中应该使用多少隐藏层?目前我有3个输入和1个输出。当我想增加隐藏层到3时,一个错误发生了,说我没有足够的输入3隐藏层。
1评论
沙尼
沙尼 2013年11月19日
我正在尝试创建一个神经网络,你有什么笔记可以帮助我吗?请

登录发表评论。

接受的答案

格雷格·希斯
格雷格·希斯 2013年4月19日
编辑:格雷格·希斯 2013年4月19日
1.如果输入/输出转换函数表现得相当好,1个隐层就足够了。得到的网是一个通用逼近器。
2.然而,如果您需要大量的隐藏节点H,(特别是当未知权值Nw = (I+1)*H+(H+1)*O接近或超过训练方程Ntrneq = Ntrn*O的数量时),您可以通过引入第二层隐藏层来减少节点总数。
[I Ntrn] = size(trninput)
[O Ntrn] = size(trntarget)
3.尽管如此,通常最好坚持使用一个隐藏层,并使用验证停止子集(默认值)和/或正则化目标函数(mse的一个选项:help mse)或正则化训练函数(help trainbr)。
4.有时候,大量的权重是使用大量输入的结果。因此,在使用第二层隐藏层之前考虑输入子集选择可能是值得的。
对于单个隐藏层
权重= getwb(净)
= [Iw(:);b1 (:);Lw (:);b2 ()):
在哪里
(net.IW)
B1 = cell2mat(net.b(1))
Lw = cell2mat(net.Lw)
B2 = cell2mat(net.b(2))
如果您想了解getwb如何用两个隐藏层排序权重,可以尝试一个示例。
希望这能有所帮助。
感谢您正式接受我的回答
格雷格
1评论
Sai Kumar Dwivedi
Sai Kumar Dwivedi 2015年3月18日
你对第二点的解释
(I+1)*H+(H+1)*O < Ntrn*O
这是某种启发式还是有数学背景?

登录发表评论。

更多答案(2)

马努R
马努R 2011年3月6日
编辑:约翰·凯利 2013年11月19日
MATLAB中的神经网络对象具有可以访问的字段,以确定层权重和偏差。
假设:
前馈网络只是一个玩具例子,没有任何训练
重量= mynet。LW
偏见= mynet.b
%权重和偏差值:
% IW: {2x1单元}包含1个输入权重矩阵
% LW: {2x2 cell}包含1层权重矩阵
% b: {2x1单元}包含两个偏置向量
2的评论
拉胡尔
拉胡尔 2013年4月18日
在本例中显示“weights”,它将显示数字。

登录发表评论。


拉胡尔
拉胡尔 2013年4月18日
或者在工作区中打开“weights”。