matlab 中归一化的几种方法及其各自的适用条件

来源:百度知道 编辑:UC知道 时间:2024/05/17 18:55:36
归一化除了(x-min)/(max-min)还有那些方法?在什么条件下用什么方法?
急急急,哪位高手知道的帮忙解决一下

关于神经网络(matlab)归一化方法的整理

  matlab中的归一化处理有三种方法:
  1. premnmx、postmnmx、tramnmx
  2. restd、poststd、trastd
  3. 自己编程
  具体用那种方法就和你的具体问题有关了

  归一化是为了加快训练网络的收敛性,可以不进行归一化处理
  归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;
  当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。
  归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。
  但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。

  归一化方法主要有如下几种:

  1、线性函数转换,表达式如下:
  y=(x-MinValue)/(MaxValue-MinValue)
  说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。

  2、对数函数转换,表达式如下:
  y=log10(x)
  说明:以10为底的对数函数转换。

  3、反余切函数转换,表达式如下:
  y=atan(x)*2/PI

  关于用premnmx语句进行归一化:
  premnmx语句的语法格式是:[Pn,minp,maxp,T