深度学习神经网络归一化方法及MATLAB函数
·
归一化方法及 MATLAB函数
数据归一化方法是神经网络预测前对数据常做的一种处理方法。数据归一化处理把所有数据都转化为[0,1]之间的数,其目的是取消各维数据间数量级差别,避免因为输入输出数据数量级差别较大而造成网络预测误差较大数据归一化的方法主要有以下两种。
| 最大最小法 | 平均数方差法 |
|---|---|
| xk=xk−xmaxxmax−xminx_{k}=\frac{x_{k}-x_{max}}{x_{max}-x_{min}}xk=xmax−xminxk−xmax | xk=xk−xmeanxvarx_{k}=\frac{x_{k}-x_{mean}}{x_{var}}xk=xvarxk−xmean |
| xminx_{min}xmin为数据序列中的最小数;xmaxx_{max}xmax为序列中的最大数 | xmeanx_{mean}xmean为数据序列的均值;xvarx_{var}xvar为数据的方差 |
例如采用第一种最大最小法,归一化函数采用MATLAB自带函数mapminmax,该函数有多种形式,常用的方法如下:
%input_train,output_train分别是训练输入,输出数据
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
input_train,output_train分别是训练输入,输出原始数据;inputn,outputn是归一化后的数据,inputps,outputps是归一化后得到的结构体,里面包含了数据最大值,最小值,平均值等信息,可用于测试数据归一化和反归一化。测试数据归一化和反归一化程序如下
inputn_test= mapminmax('apply',input_test,inputps); %测试输入数据归一化
BPoutput= mapminmax('reverse',an,outputps); %网络预测数据反归一化
input_test是预测输入数据; inputn_test是一化后的预测数据; 'apply’表示根据 inputps的值对 input_testi进行归一化。an是网络预测结果; outputps是训练输出数据归一化得到的结构体; BPoutput是反归一化之后的网络预测输出; 'reverse’表示对数据进行反归一化
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)