Loading [MathJax]/jax/output/HTML-CSS/jax.js

just do it and waiting

梯度下降法原理

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

前向传播与后向传播