matlab 用训练好的网络,有输入值,如何利用训练好的网络得到输出值

通过自己不断的摸索,对于一维数据的拟合(线性拟合),知道了怎么利用训练好的神经网络进行数据的输出,现总结如下:

对于线性的函数拟合,比如y=5*x-10

输入数据是x=1:20;输出是y=5*x-10;调用神经网络函数拟合工具箱,网络模型见附图1:

对数据进行拟合,得到网络net。拟合效果见附图2:

其中iw=net.iw,    iw= [-0.0263]    []lw=net.lwlw =              []    []    [-38.0646]    []b=net.bb =      [-1.8655e-05]    [-7.1642e-04]这样就可以得到两个关系式:y1=-0.0263*x-1.8655e-05;y_out=-38.0646*y1-7.1642e-04;在神经网络中使用的数据都是归一化的数据,这一点是非常重要的。现在对上面得到的两个关系式来进行验证:x=[ 1     2    3     4     5    6     7     8    9    10    11   12    13    14   15    16    17   18     19    20];y=[ -5     0    5    10    15   20    25    30   35    40    45   50    55    60   65    70    75   80     85     90];归一化后的数据:x=[ -1.0000   -0.8947  -0.7895   -0.6842   -0.5789  -0.4737   -0.3684   -0.2632  -0.1579   -0.0526    0.0526    0.1579   0.2632    0.3684    0.4737   0.5789    0.6842    0.7895   0.8947    1.0000];y=[-1.0000   -0.8947  -0.7895   -0.6842   -0.5789  -0.4737   -0.3684   -0.2632  -0.1579   -0.0526     0.0526   0.1579    0.2632    0.3684   0.4737    0.5789    0.6842   0.7895    0.8947    1.0000]现在举例:当x=2.5,y=5*2.5-10=2.5,这个是实际的输出,当我们用神经网络输出,来看下他的结果:2.5归一之后是-0.842105,将它带入y1=-0.0263*x-1.8655e-05;y_out=-38.0646*y1-7.1642e-04;得到y_out= -0.843037将y_out反归一化后得到的值是2.45574当x=10.5时,实际输出是42.5,用神经网络输出是42.4997由此可以看出上面的两个公式用来输出是正确的;但是对于一维的非线性拟合,一个神经元是不行的,需要多个神经元,拟合的效果是非常好的,由此可见神经网络对非线性数据拟合是非常理想的工具,但是如何利用训练好的网络进行输出?我用了和上面一样的线性方法输出,但是结果总是不对,不知道问题出在哪里,希望高手指点一下,在此谢过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值