归一化的matlab实现
来源:互联网 发布:p2p 网络摄像机 编辑:程序博客网 时间:2024/06/08 17:13
最近在做神经网络,需要对训练数据进行归一化到[0.1 0.9]之间。虽然matlab有现成的归一化函数(mapminmax() premnmx),但归一化到特定的区间,上述函数并不方便使用。由此萌生了自己编写归一化函数的想法。
本质上,常用的归一化就是线性变换。本文中以转化到[0.1 0.9]为例
y与x之间的关系为
对于单个值和向量来说,只要按照上面的公式转化就行,很简单。
但很多时候,我们需要归一化的是多维向量,比如训练数据的输入特征集
以2维向量为例,我们进行推导,得到:
写到这里,对于程序实现来说,并没什么卵用。接下来对两个系数矩阵进一步推导,这里的
对于matlab来说,上面的对角阵非常容易实现
一堆恶心的公式到此结束,接下来上干货儿。以matlab为例,
function [ y, xmax, xmin ] = Normalize( x, xmax , xmin )%NORMALIZE 利用max-min方法将数据归一化到[0.1,0.9]% input: x---每行对应一个特征,每列为一个样本,% output: nx---归一化数据,max---特征最大值,min---特征最小值% created by Nie Zhipeng 2016.06.24nxmin = 0.1;nxmax = 0.9;if nargin < 2 P = minmax(x); xmin = P(:,1); xmax = P(:,2);endK = (nxmax - nxmin) * inv(diag(xmax - xmin));b = diag(nxmin * xmax - nxmax * xmin) / diag(xmax - xmin);y = K * x + b * ones(size(x));end
function [ x ] = RNormalize( y, xmax, xmin )%RNORMALIZE 恢复max-min方法归一化的数据%input: nx---归一化的数据, 每行对应一个特征,每列对应一个样本% max---特征最大值% min---特征最小值%Created by Nie Zhipeng 2016.06.24nxmin = 0.1;nxmax = 0.9;K = 1/(nxmax-nxmin) * diag(xmax - xmin);b = 1/(nxmax-nxmin) * diag(nxmax * xmin - nxmin * xmax);x = K * y + b * ones(size(y)); end
0 0
- 归一化的matlab实现
- [matlab]归一化的数字滤波器
- MATLAB 图像的归一化
- MATLAB实现图像灰度归一化
- 两个常用的数据标准化(归一化)及Matlab实现
- Matlab归一化
- MATLAB数据归一化汇总(最全面的归一化介绍)
- 关于神经网络(matlab)归一化的整理
- matlab premnmx归一化函数的使用
- matlab 直方图的求解及归一化直方图
- Matlab与机器学习-- 数据的归一化
- matlab BP 神经网络 归一化的理解
- Matlab 数字归一化问题
- matlab神经网络归一化问题
- matlab [] 和kernel归一化
- matlab 直方图归一化
- MATLAB数据归一化汇总
- matlab 矩阵按列按行归一化
- 编译时遇到警告的原因
- 树与二叉树
- Android Paint
- 爬虫研究
- web标准
- 归一化的matlab实现
- iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用
- U-Boot添加命令的方法及U-Boot命令执行过程
- Notification详解
- hashset,linkhashset,treeset区别
- Mantis邮件终于能发送啦!
- LuaJavaBridge - Lua 与 Java 互操作的简单解决方案
- 使用WebView实现离线阅读
- 华为机试---聊天