MATLAB神经网络工具箱输入输出预处理相关参数设置

目录

  • 问题由来
  • 预处理相关属性
    • 预处理函数
    • 预处理参数
    • 修改默认映射变换
      • 通过exampleInput和exampleOutput进行设置
      • 通过configure函数进行设置
  • 结语

问题由来

毕业论文中用到神经网络了,我用的MATLAB的神经网络工具箱nntoolbox去开发。nntoolbox默认会对输入输出进行映射变换,将输入和输出映射到[-1, 1]的区间中,也就是我们常说的“归一化”。这本身是一件好事,因为如果输入输出范围相差很大的话会对训练效果产生不良影响,并且这个过程是由MATLAB自动完成的,十分方便。
但是,我在使用过程中有两种情况需要对此映射做出一些修改:第一是不希望进行映射变换,就是在某些特殊情况下,我希望输入输出就是我的原始数据;第二是nntoolbox默认把训练集作为映射的定义域,在某些情况下,我希望自己定义映射的定义域。在这两个需求的驱动下,对nntoolbox的神经网络配置进行了一番探究,在这里总结一下。

预处理相关属性

nntoolbox生成的network类对象关于输入输出预处理的属性都存放在其中的inputs和outputs属性中,照例还是生成一个net1作为后续的展示对象。

net1 = feedforwardnet(10);

这里net1依然是一个隐含层具有10个节点的两层BP网络。

预处理函数

首先我们来看一下预处理函数,预处理函数的信息存放在

net1.inputs{
   1, 1}.processFcns

中,回车之后可以看到
MATLAB神经网络工具箱输入输出预处理相关参数设置_第1张图片
这里表明输入有两个预处理函数,第一个是移除常值,而第二个则是值域映射函数,归一化的主要操作就是由这个mapminmax函数完成。
至于输出的预处理函数,自然也可以通过下面代码来查看。

net1

你可能感兴趣的:(MATLAB相关,经验分享,matlab,神经网络)