η
\eta
η:learning_rate:学习率
∂
L
(
θ
)
∂
θ
\dfrac {\partial L\left( \theta \right) }{\partial \theta }
∂θ∂L(θ):表示对参数求微分
θ
i
\theta^{i}
θi:表示第 i 此迭代后的参数值
∇
L
(
θ
)
\nabla L\left(\theta\right)
∇L(θ):表示梯度
1. 学习率
下图表示对学习率的可视化描述:
学习率的选择
学习率在很大程度上影响了梯度下降后的最终参数的取值,从而影响损失函数最终的值,如果学习率
η
\eta
η 初始化为一个较大的值,可能再开始的时候代价损失的值是下降的,但是之后代价损失可能会突然增加,也可能一开始代价损失的值就会增大。如果学习率初始化为一个较小的值,梯度下降就会执行较长的时间,在时间的花费上让人无法忍受,如下图所示:
一个简单的思想上:随着迭代次数的逐渐增加,通过某一些因子来令学习率逐渐的降低,这样的原因是: 1、在梯度下降刚开始时,初始点距离最低点有较远的距离,此时的学习率可以设置的大一点 2、随着迭代次数的增加,点会比较靠近最低点,这个时候应该令前进的步伐小一点,需要设置较低的学习率。 比如使用
η
t
=
η
t
+
1
\eta^{t}=\dfrac{\eta}{\sqrt{t+1}}
ηt=t+1η t表示迭代的次数
1.2 Adagrad算法
Adagrad算法是令当前的学习率等于全局初始的学习率除以当前参数之前所有的微分平方和的均方根
普通的梯度下降:
w
t
+
1
=
w
t
−
η
t
g
t
w^{t+1} = w^{t} - \eta^{t}g^{t}
wt+1=wt−ηtgt
η
t
=
η
t
+
1
\eta^{t} = \dfrac{\eta}{\sqrt{t+1}}
ηt=t+1η
w
t
w^{t}
wt表示一个参数,
g
t
表
示
第
t
次
的
微
分
g^{t}表示第 t 次的微分
gt表示第t次的微分
Adagrad相比于普通的梯度下降拥有更好的效果:
w
t
+
1
=
w
t
−
η
σ
t
g
t
w^{t+1} = w^{t} - \dfrac{\eta}{\sigma^{t}}g^{t}
wt+1=wt−σtηgt
σ
t
=
∑
i
=
0
t
(
g
i
)
2
\sigma^{t}=\sqrt{\sum^{t}_{i=0}\left(g^{i}\right)^{2}}
σt=i=0∑t(gi)2
2. 随机梯度下降
普通的梯度下降:
L
=
∑
n
(
y
^
n
−
(
b
+
∑
w
i
x
i
n
)
)
2
L=\sum_{n}(\widehat{y}^{n} - (b+\sum w_{i}x^{n}_{i}))^{2}
L=n∑(yn−(b+∑wixin))2
x
n
=
x
n
−
1
−
η
∇
L
(
x
n
−
1
)
x^{n} = x^{n-1} - \eta\nabla L(x^{n-1})
xn=xn−1−η∇L(xn−1)
随机梯度并不是针对所有的数据进行处理,而是随机的选取一个例子
x
n
x^{n}
xn,这种选取方法回事梯度下降处理的更加快速。
随机梯度下降方法如下:
L
=
(
y
^
n
−
(
b
+
∑
w
i
x
i
n
)
)
2
L = (\widehat{y}^{n} - (b+\sum w_{i}x^{n}_{i}))^{2}
L=(yn−(b+∑wixin))2
x
n
=
x
n
−
1
−
η
∇
L
(
x
n
−
1
)
x^{n} = x^{n-1} - \eta\nabla L(x^{n-1})
xn=xn−1−η∇L(xn−1)
y
=
b
+
w
1
x
1
+
w
2
x
2
y = b + w_{1}x_{1}+w_{2}x_{2}
y=b+w1x1+w2x2 对于 x1 和 x2 特征来说,x1 的分布范围 和 x2 的分布范围不一致,且差别过大,建议进行特征缩放,令两个特征的分布范围相差不大。
3.1 特征缩放原因
上图左边是
x
1
x_{1}
x1 的scale比
x
2
x_{2}
x2 要小很多,所以当
w
1
w_{1}
w1 和
w
2
w_{2}
w2 做同样的变化时,
w
1
w_{1}
w1对 yy 的变化影响是比较小的,
w
2
w_{2}
w2对 yy 的变化影响是比较大的。
坐标系中是两个参数的error surface(现在考虑左边蓝色),因为
w
1
w_{1}
w1 对 yy 的变化影响比较小,所以
w
1
w_{1}
w1对损失函数的影响比较小,
w
1
w_{1}
w1对损失函数有比较小的微分,所以
w
1
w_{1}
w1方向上是比较平滑的。同理
w
2
w_{2}
w2对 yy 的影响比较大,所以
w
2
w_{2}
w2对损失函数的影响比较大,所以在
w
2
w_{2}
w2方向有比较尖的峡谷。
上图每一列都是一个例子,里面都有一组特征。 对每一个维度
i
i
i(绿色框)都计算平均数,记做
m
i
m_{i}
mi,还要计算标准差,记做
σ
i
\sigma_{i}
σi。然后用第
r
r
r 个例子中的第
i
i
i 个输入,减掉平均数
m
i
m_{i}
mi,然后除以标准差
σ
i
\sigma_{i}
σi,得到的结果是第
i
i
i 个维度的平均值都是 0,所有的方差都是 1。