梯度下降——Gradient Descent
目录
- 回顾梯度下降算法 (Gradient Descent)
- 学习率的设置(Tuning your learning rates)
- 随机梯度下降(Stochastic Gradient Descent)
- 特征归一化(Feature Scaling)
- 梯度下降算法推导(Taylor Series )
一、回顾梯度下降算法
公式:假设
θ
\theta
θ有两个变量{
θ
1
,
θ
2
\theta_1,\theta_2
θ1,θ2}
θ
j
i
\theta_j^i
θji代表第i个样本的第j个特征
图上表示为:
二、学习率的设置
什么是学习率?
可以理解为步长,以下四条曲线对应不同的学习率
红色:刚刚好
蓝色:太小了,走的太慢了
绿色:有点大,你会发现卡住了
黄色:太大,直接飞出去了
有人就提出,
η
\eta
η的大小与迭代的次数
t
t
t有关
因为,刚开始迭代步子可以跨大一点,后面即将达到最小值时步子迈小一点,于是有了:
η
t
=
η
/
t
+
1
\eta^t = \eta/\sqrt{t+1}
ηt=η/t+1
上面说的只是其中一种,接下来讲下Adagrad
Adagrad
公式长这样:
其中:
直观表示如下:
代入化简:
怎么解释得出的公式呢?
试着解释下:
这里代表反差
试着从另一个角度来解释:
抛物线上点
x
0
x_0
x0离最低点最好的步长是|
x
0
+
b
2
a
x_0 + \frac{b}{2a}
x0+2ab|
化成
∣
2
a
x
0
+
b
∣
2
a
\frac{|2ax_0+b|}{2a}
2a∣2ax0+b∣
可以看出:
分子是一阶导数
分母是二阶导数
所以,
最
好
的
步
长
=
∣
一
阶
导
∣
二
阶
导
最好的步长 = \frac{| 一阶导 |}{二阶导}
最好的步长=二阶导∣一阶导∣
从上图可以看出,并非离最低点越远,导数越大,如c和d
其实我们这里的分母就是想代替二阶导
那为什么写成这个形式呢?
因为写成这样的好处是
g
i
g^i
gi,我们已经算过了,不用增加计算量,不用再求二阶导
三、随机梯度下降
梯度下降算法是求所有的loss,然后迭代参数
随机梯度下降算法则是算每一个的loss,;然后进行参数迭代
四、特征归一化
就是比如蓝色的圈圈,
w
2
w_2
w2的影响明显大于
w
1
w_1
w1,显然不合理,所以需要做一个处理:
五、梯度下降算法推导
回顾“泰勒公式”展开式(前提:
x
x
x趋于
x
0
x_0
x0)
例子:
我们可以看出
x
0
=
π
4
x_0=\frac{π}{4}
x0=4π
后面的高次项可以基本忽略不计
如果有两个参数,“泰勒公式”可写成:
看成两个向量的叉乘:
最终写成这样: