matlab神经网络输出与输入之间的显式公式
你好,我有一个关于我的神经网络的问题。我使用一个具有两个隐藏层的神经网络,激活函数为tansig和purelin。我有4个输入和一个输出。 我在第一层训练了25个神经元,在第二层训练了1个神经元。这是我的系统的示意图 我的ANN输出和我的目标之间有很好的一致性 但是在训练网络之后,当我想推导出系统的方程时,奇怪的事情发生了 我发现系统的权重和偏差如下matlab神经网络输出与输入之间的显式公式,matlab,neural-network,Matlab,Neural Network,你好,我有一个关于我的神经网络的问题。我使用一个具有两个隐藏层的神经网络,激活函数为tansig和purelin。我有4个输入和一个输出。 我在第一层训练了25个神经元,在第二层训练了1个神经元。这是我的系统的示意图 我的ANN输出和我的目标之间有很好的一致性 但是在训练网络之后,当我想推导出系统的方程时,奇怪的事情发生了 我发现系统的权重和偏差如下 b1=First layer bias= net.b{1} b2=Second layer bias=net.b{2} Firstlayer
b1=First layer bias= net.b{1}
b2=Second layer bias=net.b{2}
Firstlayer weight net.IW{1,1}
Secondlayer weight net.LW{2,1}
当我使用这个公式时:
Y=b2+secondlayer weight*tanh((firstlayerweight*X+b1))
当X是我的输入时,我的测量数据和这个公式的结果之间有很大的差异,比如我得到的输出比它们应该的大1000倍
有人能帮我吗?这个公式正确吗
编辑:
以下是我的权重和偏差矩阵:
%first layer weights(4*25):
111.993 48.59439 1.604747 -0.76531
10.8245 -107.793 173.7258 -123.2
-149.48 -105.421 102.6071 -79.2133
226.2926 -621.099 2440.947 776.9815
-66.5572 -116.593 -121.067 -55.3703
-9.1293 1.251525 2.716534 -0.3201
0.786728 -1.81314 -5.21815 1.619898
71.98442 -3.67078 -17.8482 5.911515
6.986454 -36.9755 -21.4408 1.50746
0.654341 -5.25562 10.34482 4.589759
0.304266 1.645312 5.004313 -1.51475
0.721048 -0.02945 -0.09663 -0.0004
60.96135 1.182228 4.733361 -0.40264
-1.58998 1.920395 5.533581 -1.71799
0.410825 0.056715 4.564767 -0.1073
2.298645 9.923646 82.42445 -8.89119
-2.46618 -1.59946 -3.41954 -2.68133
0.089749 -1.69783 -5.02845 1.541547
3.516938 0.358534 -10.9719 -0.33401
2.392706 -1.99236 -5.89471 1.815673
1.605158 4.174882 4.227769 -3.14685
-25.2093 -1.68014 -5.249 1.163255
52.30716 -67.498 87.13013 29.61436
9.195869 2.328432 -7.59047 -1.42355
3.120973 1.266733 8.182079 0.365206
%first layer biases(25):
47.07941005
-49.66890557
80.2745463
1251.640193
-228.1521936
-2.905218293
-2.802770641
52.59183653
-50.96014049
7.931255305
3.652513556
-0.125595632
40.47792689
2.343663068
1.712611331
67.61242524
-6.124504787
-3.288283849
-4.752833412
-1.921129618
6.818490015
-6.481531096
5.056644951
1.984717285
7.050001634
%second layer weights(25):
-97.96825145 122.9670213 -124.5566672 -0.046986176 -0.021205068 -5.990650681 1850.804141 2.964275181 -0.333027823 -0.070420859 -583.478589 -68.16211954 12.59658596 1257.471165 -138.4739514 0.07786882 0.238340539 -1546.523224 -2.751936791 363.5612929 -0.152249267 -20.71141251 0.094593198 -0.473042306 5.533999251
%second layer bias(1):
21.92849
例如,当我把X=[8;400;5;9.5]放进去时,我希望得到y=20.8
但是通过使用公式
y=secondbias +secondlayer weight* tanh(firstlayer weight*X+first bias)
我得到y的-111,这很奇怪你能给出你用来计算公式的Matlab代码吗?看起来您已经在上面放置了伪代码,所以很难判断出什么可能是错误的。乘法的性质很重要。如果你也能给出一个X,权重和Y的期望值,这将有助于人们在发布前检查答案。考虑到你的输入和公式,我复制了你的Y为-111.89的结果。也许在训练NN之前,你正在归一化训练数据吗?如果是这样,您还需要使用从训练集中提取的相同值来更改X,例如,如果归一化为均值0,sd 1,则在使用网络进行预测之前,您需要使用训练集中的均值和sd。是的,这是归一化。。。谢谢