优化方法,一些重要参数learning rate,weight decay,momentum,learing rate decay
2016-03-27 20:45
681 查看
http://blog.csdn.net/lien0906/article/details/47399823
http://blog.csdn.net/u014114990/article/details/47779111
Stochastic Gradient Descent (SGD)
SGD的参数
在使用随机梯度下降(SGD)的学习方法时,一般来说有以下几个可供调节的参数:Learning Rate 学习率
Weight Decay 权值衰减
Momentum 动量
Learning Rate Decay 学习率衰减
再此之中只有第一的参数(Learning Rate)是必须的,其余部分都是为了提高自适应性的参数,也就是说后3个参数不需要时可以设为0。
Learning Rate
学习率决定了权值更新的速度,设置得太大会使结果越过最优值,太小会使下降速度过慢。仅靠人为干预调整参数需要不断修改学习率,因此后面3种参数都是基于自适应的思路提出的解决方案。
SGD优缺点
实现简单,当训练样本足够多时优化速度非常快需要人为调整很多参数,比如学习率,收敛准则等
Averaged Stochastic Gradient Descent (ASGD)
在SGD的基础上计算了权值的平均值。$$\bar{w}t=\frac{1}{t-t_0}\sum^t{i=t_0+1} w_t$$
ASGD的参数
在SGD的基础上增加参数$t_0$学习率 $\eta$
参数 $t_0$
ASGD优缺点
运算花费和second order stochastic gradient descent (2SGD)一样小。比SGD的训练速度更为缓慢。
$t_0$的设置十分困难
3. Conjugate Gradient(共轭梯度法)
介于最速下降法与牛顿法之间的一个方法,它仅仅需要利用一阶导数的信息,克服了GD方法收敛慢的特点。Link 1
Limited-memory Broyden-Fletcher-Goldfarb-Shanno (LBFGS) (一种拟牛顿算法)
L-BFGS算法比较适合在大规模的数值计算中,具备牛顿法收敛速度快的特点,但不需要牛顿法那样存储Hesse矩阵,因此节省了大量的空间以及计算资源。Link 1
Link 2
Link 3
应用分析
不同的优化算法有不同的优缺点,适合不同的场合:LBFGS算法在参数的维度比较低(一般指小于10000维)时的效果要比SGD(随机梯度下降)和CG(共轭梯度下降)效果好,特别是带有convolution的模型。
针对高维的参数问题,CG的效果要比另2种好。也就是说一般情况下,SGD的效果要差一些,这种情况在使用GPU加速时情况一样,即在GPU上使用LBFGS和CG时,优化速度明显加快,而SGD算法优化速度提高很小。
在单核处理器上,LBFGS的优势主要是利用参数之间的2阶近视特性来加速优化,而CG则得得益于参数之间的共轭信息,需要计算器Hessian矩阵。
相关文章推荐
- 读取结果集的结构信息
- android parcelable 详解
- 20145315 《Java程序设计》第四周学习总结
- RocEDU.阅读.写作《霍乱时期的爱情》书摘(二)
- 利用BitNami搭建版本控制服务器 Redmine与SVN联合进行版本控制
- 作业调度算法
- runLoop
- hdu1051Wooden Sticks
- Stanford机器学习---第十讲. 数据降维
- android ListView添加头布局
- mybatis中xml格式的mapper文件中接收入参时#和$的区别?
- Java学习进程day_01
- OGG-01224 Bad file number
- composer详解
- [Offer收割] 编程练习赛3
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ..
- JS DOM编程艺术学习笔记(一)
- 室内定位技术将会怎样颠覆传统商业运营?
- 【机房重构】如何将Excel表格导出到WPS
- hamcrest-core:jar:1.3和junit 4.12冲突