正则化,归一化和标准化

来源:互联网 发布:linux启动登录oracle 编辑:程序博客网 时间:2024/05/01 03:37

一、正则化
参考资料:http://blog.csdn.net/u012162613/article/details/44261657
正则化要解决的问题是:在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。
正则化的目的是:提高模型的泛化能力。
常用的正则化方法包括(之前的博文介绍了这些概念的具体含义):
① L1正则化
② L2正则化(权重衰减)
③ dropout
④ 人为扩充数据

L1正则化和L2正则化有怎样的区别?
(参考资料:http://blog.csdn.net/vividonly/article/details/50723852)
L1正则化又称为Lasso,L2正则化又称为Ridge(岭回归)
这里写图片描述
在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
这里写图片描述
可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,有很大的几率等高线会和L1-ball在四个角,也就是坐标轴上相遇,坐标轴上就可以产生稀疏,因为某一维可以表示为0。而等高线与L2-ball在坐标轴上相遇的概率就比较小了。
总结:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。

二、标准化
参考资料:http://blog.csdn.net/pipisorry/article/details/52247379
http://blog.csdn.net/mpbchina/article/details/7573519
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。
1 最小-最大规范化(线性变换)
y=((x-MinValue)/(MaxValue-MinValue))(new_MaxValue-new_MinValue)+new_minValue)
2 z-score规范化(或零-均值规范化)
   y=(x-X的平均值)/X的标准差
优点:当X的最大值和最小值未知,或孤立点左右了最大-最小规范化时,该方法有用
3 小数定标规范化:通过移动X的小数位置来进行规范化
   y= x/10的j次方  (其中,j为使得Max(|y|) <1的最小整数)
4 对数Logistic模式:
   新数据=1/(1+e^(-原数据))
5 模糊量化模式:
   新数据=1/2+1/2sin[pi/(极大值-极小值)*(X-(极大值-极小值)/2)]
6 batch normalization

三、归一化
归一化的目标是:
1 把数变为[0,1]之间的小数:把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。
2 把有量纲表达式变为无量纲表达式:归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
常用的归一化方法:
1 线性转换
   y=(x-MinValue)/(MaxValue-MinValue)
2 对数函数转换:
   y=log10(x)
3 反余切函数转换
   y=atan(x)*2/PI

0 0
原创粉丝点击