【機器學習詳解】解無約束優化問題:梯度下降、牛頓法、擬牛頓法
無約束優化問題是機器學習中最普遍、最簡單的優化問題。
1.梯度下降
梯度下降是最簡單的迭代優化演算法,每一次迭代需求解一次梯度方向。函式的負梯度方向代表使函式值減小最快的方向。它的思想是沿著函式負梯度方向移動逐步逼近函式極小值點。選擇適當的初始值
固定學習率
梯度下降虛擬碼(固定學習率):
1. 取初始值x(0) ,令k=0,學習率α ,容忍度ϵ ;
2. 計算梯度gk=▽x(k) ,若|gk|<ϵ ,則停止迭代,返回x∗=x(k) ;
3. 更新x ,若(k+1)=x(k)−αgk|x(k+1)−x(k)|<ϵ 或者|f(x(k+1))−f(x(k))|<ϵ ,則停止迭代,返回x∗=x(k+1)
4. k=k+1,轉到步驟2
值得一提的是梯度下降演算法與下面介紹的幾種演算法都不能保證函式能降低到全域性最小值附近,有可能是區域性最小值附近。如果目標函式
下圖是二維函式
上圖中學習率
線性搜尋
固定學習率中每一迭代更新
梯度下降虛擬碼(線性搜尋):
1. 取初始值x(0) ,令k=0,學習率α ,容忍度ϵ ;
2. 計算梯度gk=▽x(k) ,若