梯度下降法原理
2019-12-10
在机器学习中,梯度下降法是首先接触的到的最优求解方法,特别是在线性回归中,目标函数往往是一个凸函数(convex),可以通过梯度下降法求得全局最优解。梯度下降法的公式比较简单。例如,优化函数J(θ)的梯度为∇J(θ),那么其梯度下降过程为:
θ(k+1)=θ(k)−η∇J(θ)∣θ=θ(k)
也可以写成: θ(k+1)i=θ(k)i−η∂J(θi)∂θi∣θi=θ(k)i 梯度下降法的推导方法如下:
假设待优化函数为J(θ),根据一阶泰勒展开,得到 J(θ)=J(θ(k))+∇J(θ(k))(θ−θ(k)) 假设当前位置θ(k)的下一步更新位置为θ(k+1),那么 J(θ(k+1))=J(θ(k))+∇J(θ(k))(θ(k+1)−θ(k)) 也就是: J(θ(k+1))−J(θ(k))=∇J(θ(k))(θ(k+1)−θ(k)) 我们的目标是求的使J(θ)的值取得最小的θ,那么每次更新应该保证J(θ(k+1))−J(θ(k))<0,并且越小越好。可以观察上式中∇J(θ(k))和θ(k+1)−θ(k)表示的是两个向量的乘积。 ∇J(θ(k))(θ(k+1)−θ(k))=∣∣∇J(θ(k))∣∣⋅∣∣(θ(k+1)−θ(k)∣∣⋅cosα 回顾向量的乘法,J(θ(k+1))−J(θ(k))的值取决于∣∣∇J(θ(k))∣∣,∣∣(θ(k+1)−θ(k)∣∣以及cosα的大小,对于给定目标函数J(θ),结果只与θ(k+1)和与之相关的cosα如何取值有关。当∣∣(θ(k+1)−θ(k)∣∣确定时,可使cosα=−1来使得向量乘积负得最大(即值最小),也就是两个向量的夹角为180∘,此时有 (θ(k+1)−θ(k))∣∣(θ(k+1)−θ(k))∣∣=−∇J(θ(k))∣∣∇J(θ(k))∣∣ 也就是: θ(k+1)=θ(k)−∣∣(θ(k+1)−θ(k))∣∣∣∣∇J(θ(k))∣∣∇J(θ(k)) 令η=∣∣(θ(k+1)−θ(k))∣∣∣∣∇J(θ(k))∣∣,上式可写成: θ(k+1)=θ(k)−η∇J(θ(k)) 或写成: θ(k+1)i=θ(k)i−η∂J(θi)∂θi∣θi=θ(k)i