码迷,mamicode.com
首页 > 其他好文 > 详细

精通Matlab神经网络例10-16的新写法

时间:2015-05-11 16:05:35      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

《精通Matlab神经网络》书中示例10-16,在创建BP网络时,原来的写法是:

  net = newff(minmax(alphabet),[S1 S2],{‘logsig‘ ‘logsig‘},‘traingdx‘);

 

因为运行过程中有提示,自然想改成新写法(参考之前的随笔《MATLAB神经网络函数NEWFF()新旧用法差异》):

  net = newff(alphabet, targets, S1, {‘logsig‘, ‘logsig‘}, ‘traingdx‘);

     net.divideFcn = ‘‘;

很不幸的是,结局惨不忍睹:

技术分享

于是开始对比研究……最终发现,新式写法还需要去掉输入输出的处理函数。

于是,到目前为止,为了让新式写法等价于旧式写法,在newff()之后还需要添加以下几笔:

  net.divideFcn = ‘‘;
  net.inputs{1}.processFcns = {};
  net.outputs{2}.processFcns = {};      % 若有n个隐层,则此处下标为n+1

 

【浅析】新式实现中,newff()的默认处理函数有:fixunknowns, removeconstantrows, mapminmax。其中罪魁祸首是mapminmax,因为它把[0,1]的输入数据映射到了[-1,1]区间。而

我们根据问题的实际情况,即二值图像像素值范围是[0,1],从而使用了定义域也[0,1]的传递函数logsig(),和mapminmax()是不匹配的。

 

精通Matlab神经网络例10-16的新写法

标签:

原文地址:http://www.cnblogs.com/xxfcz/p/4494780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!