梯度下降算法
http:\/\/blog.csdn.net\/luo123n\/article\/details\/48239963 http:\/\/sebastianruder.com\/optimizing-gradient-descent\/
* 算法
* 以最小二乘问题为版本
1. 梯度下降算法
* step1: 初始化 \ (随机初始化)
* step2: 迭代
* step3:
梯度方向:
2. 批梯度下降算法
* 算法
- repeat until convergence
3. 随机梯度下降算法
http://www.cnblogs.com/murongxixi/p/3467365.html
- 每次使用一个样本点来更新回归的系数
3.1 算法
所有的回归系数初始化
对数据中的每个样本:
计算该样本的梯度
使用alpha*gradient更新回归系数
返回回归系数
- loop:
- for i=1 to m:
- for i=1 to m:
4. 批处理梯度下降算法的步长的选择
* 步长选择的基础
- 线性搜索的方法
- 信頼域的算法
* 步长
搜索方向是:; 学习率:
- 在斜率大的地方,使用小的学习率
- 在斜率大的地方,使用大学习率
* 步长选择的推导
当, h(0)=;
导数:
- 当和是定值情况,寻找最小值:
- 若可导,局部最小值处的 满足:
- 将带入:
先选定下降方向:是负梯度方向
则:
若可以找到足够大的,使得
则:存在,使得
则:是所求的学习率
* 步长的确定方法
- 二分线性
- 线性回溯搜索
- 二次差值
6 随机梯度下降的步长的选择
http://blog.csdn.net/luo123n/article/details/48239963
- adagrad
- adadelta
- adam
上述方法速度较差