机器学习训练算法五(梯度下降法)
梯度下降法在机器学习中应用十分的广泛,它的主要目的是通过迭代搜索到目标函数的最小值;梯度下降法可以类比为一个下山的过程...
连续函数的最优化方法-梯度下降法
1、介绍
梯度下降法在机器学习中应用十分的广泛,它的主要目的是通过迭代搜索到目标函数的最小值;梯度下降法可以类比为一个下山的过程。假设,山上的雾非常大、可视度非常低、下山路径无法确定,而有一个人需要从山顶走到山谷(寻找目标函数的最小值),这个时候便可用梯度下降法来辅助下山。首先,以当前所处位置为基准寻找该位置最陡峭的方向,然后,朝着下降方向走一步。接着,又继续以当前位置为基准再寻找该位置最陡峭的方向,再朝着下降方向走一步。最后,重复该方法便可走到山谷;
2、数学原理
目标函数 F ( X ) F(X) F(X)在 X = X k X=X_k X=Xk处的不含皮亚诺余项的一阶泰勒公式如下:
F ( X k + Δ X k ) ≈ F ( X k ) + J ( X k ) ⏟ F T Δ X k ( 公式 15 ) F(X_k+\Delta X_k)\approx F(X_k)+\underbrace{J(X_k)}_{F}{^T} \Delta X_k \qquad (公式15) F(Xk+ΔXk)≈F(Xk)+F
J(Xk)TΔXk(公式15)
通过公式 15 可推得:
G ( Δ X k ) = d e f F ( X k + Δ X k ) − F ( X k ) ≈ J ( X k ) ⏟ F T Δ X k ( 公式 16 ) G(\Delta X_k) \stackrel{\mathrm{def}}{=} F(X_k+\Delta X_k)-F(X_k) \approx \underbrace{J(X_k)}_{F}{^T} \Delta X_k \qquad (公式16) G(ΔXk)=defF(Xk+ΔXk)−F(Xk)≈F
J(Xk)TΔXk(公式16)
该表达式中 F ( X k + Δ X k ) F(X_k+\Delta X_k) F(Xk+ΔXk)、 F ( X k ) F(X_k) F(Xk)是一个常数, J ( X k ) ⏟ F T \underbrace{J(X_k)}_{F}{^T} F
J(Xk)T是一个常数矩阵, Δ X k \Delta X_k ΔXk是一个变量矩阵,即函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)是以 Δ X k \Delta X_k ΔXk为自变量的的一次函数。为了使 G ( Δ X k ) < 0 G(\Delta X_k)<0 G(ΔXk)<0恒成立(即: F ( X k + Δ X k ) < F ( X k ) F(X_k+\Delta X_k)<F(X_k) F(Xk+ΔXk)<F(Xk)),考虑到 J ( X k ) ⏟ F T \underbrace{J(X_k)}_{F}{^T} F
J(Xk)T和 Δ X k \Delta X_k ΔXk是一个矩阵,所以可以借用向量性质来分析函数 G ( Δ X k ) G(\Delta X_k) G(ΔXk)自变量和因变量之间的关系;
令:向量 A ⃗ = J ( X k ) ⏟ F T \vec {A}=\underbrace{J(X_k)}_{F}{^T} A=F
J(Xk)T,向量 B ⃗ = Δ X k T \vec {B}=\Delta X_k{^T} B=ΔXkT,通过公式16可推得:
G ( Δ X k ) = d e f J ( X k ) ⏟ F T Δ X k = A ⃗ ⋅ B ⃗ = ∣ A ⃗ ∣ × ∣ B ⃗ ∣ × cos ( θ ) ( 公式 17 ) \begin{aligned} G(\Delta X_k) & \stackrel{\mathrm{def}}{=}\underbrace{J(X_k)}_{F}{^T} \Delta X_k\\ &=\vec{A}\cdot\vec {B} \\ &=\lvert{\vec{A}}\rvert\times\lvert{\vec{B}}\rvert\times\cos({\theta}) \end{aligned} \qquad (公式17) G(ΔXk)=defF
J(Xk)TΔXk=A⋅B=∣A∣×∣B∣×cos(θ)(公式17)
当向量 A ⃗ \vec {A} A和向量 B ⃗ \vec {B} B互为相反方向的时候公式17( η \eta η为步长) G ( Δ X k ) < 0 G(\Delta X_k)<0 G(ΔXk)<0恒成立,可推得:
B ⃗ = − η × A ⃗ , s . t . ( η > 0 ) ( 公式 18 ) \vec{B}=-\eta\times\vec {A} \qquad ,s.t.(\eta>0) \qquad (公式18) B=−η×A,s.t.(η>0)(公式18)
由公式 18 可推得:
Δ X k = − η × J ( X k ) ⏟ F ( 公式 19 ) \Delta X_k=-\eta\times\underbrace{J(X_k)}_{F} \qquad (公式19) ΔXk=−η×F
J(Xk)(公式19)
由公式 19 可推得目标函数 F ( X ) F(X) F(X)的最优化迭代公式:
X k + 1 = d e f X k − η × J ( X k ) ⏟ F ( 公式 20 ) X_{k+1}\stackrel{\mathrm{def}}{=}X_{k}-\eta\times\underbrace{J(X_k)}_{F} \qquad (公式20) Xk+1=defXk−η×F
J(Xk)(公式20)
3、Matlab程序
更多推荐




所有评论(0)