最近在做神经网络,需要对训练数据进行归一化到[0.1 0.9]之间。虽然matlab有现成的归一化函数(mapminmax() premnmx),但归一化到特定的区间,上述函数并不方便使用。由此萌生了自己编写归一化函数的想法。
本质上,常用的归一化就是线性变换。本文中以转化到[0.1 0.9]为例
y与x之间的关系为 y=ax+b ,具体一下就是
y=0.9−0.1xmax−xminx+0.1xmax−0.9xminxmax−xmin
x=xmax−xmin0.9−0.1y+0.9xmin−0.1xmax0.9−0.1
对于单个值和向量来说,只要按照上面的公式转化就行,很简单。
但很多时候,我们需要归一化的是多维向量,比如训练数据的输入特征集 X=[X