本节课将深入学习机器学习简介中机器学习建模步骤3中优化方法Gradient Descent(梯度下降)。
目录
如果学习速率适合,那么优化Loss function的路径应该如红色线段;如果学习速率过大,那么优化Loss function的路径将如绿色、黄色线段;如果学习速率过小,那么优化Loss function的路径将如蓝色线段。由此,衍生出自动选择学习速率的方法(Adaptive Learning Rates),核心思想:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。
最终可以得到Adagrad算法的参数更新: wt+1←wt−η∑ti=0(gi)2gt w t + 1 ← w t − η ∑ i = 0 t ( g i ) 2 g t ,Adagrad算法考虑 gt g t 的反差效应, gt g t 表示一阶导数, ∑ti=0(gi)2 ∑ i = 0 t ( g i ) 2 反映二阶导数。
只考虑一个随机样本的Loss function:
梯度下降的算法遍历所有样本之后才更新参数,走的方向比较稳定;
随机梯度下降的算法不稳定,但是相同的时间内速度大大增加。
不同量级的数据对Loss function的影响不一致,对于椭圆形的Loss L比较难以求解,考虑进行归一化处理来解决这个问题。
假设参数为 θ1,θ2 θ 1 , θ 2 ,根据泰勒展开式 h(x)=∑k=0h(k)(x0)k!(x−x0)k h ( x ) = ∑ k = 0 h ( k ) ( x 0 ) k ! ( x − x 0 ) k ,当 x x 趋近于 x0 x 0 , h(x)≈h(x0)+h′(x0)(x−x0) h ( x ) ≈ h ( x 0 ) + h ′ ( x 0 ) ( x − x 0 ) 。
L(θ)≈L(a,b)+∂L(a,b)∂θ1(θ1−a)+∂L(a,b)∂θ2(θ2−b) L ( θ ) ≈ L ( a , b ) + ∂ L ( a , b ) ∂ θ 1 ( θ 1 − a ) + ∂ L ( a , b ) ∂ θ 2 ( θ 2 − b ) ,令 s=L(a,b),u=∂L(a,b)∂θ1,v=∂L(a,b)∂θ2 s = L ( a , b ) , u = ∂ L ( a , b ) ∂ θ 1 , v = ∂ L ( a , b ) ∂ θ 2 ,所以得到 L(θ)≈s+u(θ1−a)+v(θ2−b)=s+uΔθ1+vΔθ2 L ( θ ) ≈ s + u ( θ 1 − a ) + v ( θ 2 − b ) = s + u Δ θ 1 + v Δ θ 2 ,现在在一个半径为d的圆形区域寻找L的最小值,即 Δθ1+Δθ2⩽d Δ θ 1 + Δ θ 2 ⩽ d ,即沿着 u,v u , v 的反方向延伸直到圆形的边界。
此时d对应学习速率,在整个推导中,使用了泰勒一阶展开近似原函数,
因此为了使其满足,d应该足够小,所以整个算法的核心在于学习速率的选择。