无约束最优化
无约束优化问题是是机器学习中最普遍、最简单的优化问题。
最小值时 x ∗ = m i n x f ( x ) , x ∈ R n , f ( x ) 为 多 维 的 x^*=min_xf(x),x∈R^n,f(x)为多维的 x∗=minxf(x),x∈Rn,f(x)为多维的。
梯度下降(GD)
运用:在MLE、MAP里求最大值、最小值的点。
由于很多情况下 f ( w ) f(w) f(w)无法求导,就引入了梯度下降。
梯度:本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
和初始值、步长有关。
实现过程
- Loss 函数(已知):J(w)
- 初始值( w i w_i wi自定)
- 步长( α \alpha α 自定:0.01、0.001。不能垮的太远):方向虽然对,但每次走多少不自信 所以 α \alpha α特别小。也叫学习率,是一个超参数。
- 梯度 ▽ f ( w i ) ▽f(w_i) ▽f(wi)
w i − α ▽ f ( w i ) = w i + 1 w_i-\alpha ▽f(w_i)=w_{i+1} wi−α▽f(wi)=wi+1 ,循环下去就可以找到最小值。一直沿着改变最快的反方向走就可以找到最小值。
终止条件
- 第i步的函数值与第i-1次的函数值相差 < ϵ \epsilon ϵ 。 ϵ \epsilon ϵ是事先定的一个值
- 循环次数n>N(最大迭代次数) 。N是事先定的一个值
- 梯度的模长小于事先定的值。也就是变化不大了
优点
- 简单
- 计算量小
缺点
- 陷入局部最优。梯度下降不一定能找到全局最优解,找到的有可能是一个局部最优解。
但如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。 - 易震荡
- 一次收敛
- 收敛速度慢,迭代速度慢,次数多
BGD、SGD、MBGD
- BGD 全批量梯度下降
- SGD 随机梯度下降
- MBGD 小批量梯度下降法(效果最好)
举例
设共有N个样本。 x 1 , x 2 . . . x N ; x i ∈ R 100 x^1,x^2...x^N;x^i∈R^{100} x1,x2...xN;xi∈R100 。 y 1 , y 2 . . . y N ; y i ∈ { 0 , 1 , 2 , 3...9 } y^1,y^2...y^N;y^i∈\{0,1,2,3...9\} y1,y2...yN;yi∈{ 0,1,2,3...9}
损失函数: J ( w 1 , w 2 ) = J 1 ( w 1 , w 2 , x 1 , y 1 ) + J 2 ( w 1 , w 2 , x 2 , y 2 ) + . . . + J 1 ( w 1 , w 2 , x N , y N ) = ∑ i = 1 N J i ( w 1 , w 2 , x i , y i ) J(w_1,w_2)=J_1(w_1,w_2,x^1,y^1)+J_2(w_1,w_2,x^2,y^2)+...+J_1(w_1,w_2,x^N,y^N)=\sum^N_{i=1}J_i(w_1,w_2,x^i,y^i) J(w1,w2)=J1(w1,w2,x1,y1)+J2(w1,w2,x2,y2)+...+J1(w1,w2,xN,yN)=∑i=1NJi(w1,w2,xi,yi)
随机梯度下降SCG
初始 ( w 1 0 , w 2 0 ) (w^0_1,w^0_2) (w10,w20)
w 1 1 = w 1 0 − λ ∂ J 1 ∂ w 1 ∣ w 1 = w 1 0 w_1^1=w^0_1-\lambda \frac{\partial J_1}{\partial w_1}|_{w_1=w^0_1} w11=w10−λ∂w1∂J1∣w1=w10 ⇒ \Rightarrow ⇒ w 1 2 = w 1 1 − λ ∂ J 2 ∂ w 1 ∣ w 1 = w 1 1 w_1^2=w^1_1-\lambda \frac{\partial J_2}{\partial w_1}|_{w_1=w^1_1} w12=w11−λ∂w1∂J2∣w1=w11
w 2 1 = w 2 0 − λ ∂ J 1 ∂ w 2 ∣ w 2 = w 2 0 w_2^1=w^0_2-\lambda \frac{\partial J_1}{\partial w_2}|_{w_2=w^0_2} w21=w20−λ∂w2∂J1∣w2=w20 ⇒ \Rightarrow ⇒ w 2 2 = w 2 1 − λ ∂ J 2 ∂ w 2 ∣ w 2 = w 2 1 w_2^2=w^1_2-\lambda \frac{\partial J_2}{\partial w_2}|_{w_2=w^1_2} w22=w21−