当我们在matlab训练好网络后,可以使用神经网络工具箱的sim(net,x)函数进行预测输出。但往往想提取出它的数学表达式,该怎么提取呢?
下面以
《一个简单的神经网络例子》中的模型为例,提取神经网络表达式。
在 《一个简单的神经网络例子》中我们设置的模型为:
1:节点个数设置: 输入层、隐层、输出层的节点个数分别为[2 ,3,1]。
2:传递函数设置:隐层( tansig函数)。输出层(purelin函数)。
3:训练方式:trainlm。
一.写出模型表达式
先根据我们之前所设置的BP神经网络模型,写出它的数学表达式:
(1)表达式就参数较多,但实际只有两类参数:权重w和阈值b。
代表这个权值是第2层的第1个节点到第3层的第1个节点的权值。
代表这个阈值是第2层的第1个节点的阈值。
二.提取具体参数
在matlab中提取:
输入代码:
w12 = net.iw{1,1} %第1层(输入层)到第2层(隐层)的权值
b2 = net.b{1} %第2层(隐层)的阈值
w23 = net.lw{2,1} %第2层(输入层)到第3层(输出层)的权值
b3 = net.b{2} %第3层(输出层)的阈值
命令窗口输出如下:
可以得到w和b的值。
三.参数回代模型
填入式(1)即得:
其中