梯度下降法

    技术2022-07-12  76

    梯度下降法

    1.原理

    方向导数 如果函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在点 P ( x , y ) P(x,y) P(x,y)处可微,则函数在该点任一方向 L L L的方向导数都存在,且有 ∂ f ∂ l = ∂ f ∂ x cos ⁡ α + ∂ f ∂ y cos ⁡ β \frac{\partial f}{\partial l}=\frac{\partial f}{\partial x } \cos{\alpha}+\frac{\partial f}{\partial y}\cos{\beta} lf=xfcosα+yfcosβ α 、 β : 为 方 向 L 的 方 向 角 \alpha、\beta:为方向L的方向角 αβ:L方向导数表征了函数沿任意方向的变化的速度梯度 设函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在平面区域 D D D内具有一阶连续偏导数,则对于每一个点 P ( x , y ) ∈ D P(x,y) \in D P(x,y)D,向量 ( ∂ f ∂ x , ∂ f ∂ y ) \left ( \frac{\partial f}{\partial x},\frac{\partial f}{\partial y} \right ) (xf,yf)为函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在点 P P P处的梯度,记为grad f ( x , y ) f(x,y) f(x,y) 某点的梯度是某点方向导数的最大值,因此梯度代表的方向是函数增长最快的方向,而沿负梯度方向为函数下降最快的方向。

    2.梯度下降法

    初始化 θ \theta θ(随机初始化)沿负梯度方向迭代,更新 θ ⃗ \vec{\theta} θ 使 L ( θ ⃗ ) L(\vec{\theta}) L(θ )更小 θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗ \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} θ =θ αθ L(θ ) α − 学 习 率 ( 步 长 ) \alpha-学习率(步长) α()直观理解

    3.梯度下降法分类

    随机梯度下降(SGD) 以单个样本的梯度作为权值 θ ⃗ \vec{\theta} θ 更新的方向 l o s s = M e a n S q u a r e E r r o r loss=MeanSquareError loss=MeanSquareError θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗       L ( θ ⃗ ) = 1 2 ( y i ^ − y i ) 2 \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} \ \ \ \ \ L(\vec{\theta})=\frac{1}{2}(\hat{y_i}-y_i)^2 θ =θ αθ L(θ )     L(θ )=21(yi^yi)2 i − 表 示 某 一 个 样 本 i-表示某一个样本 i 特点:学习效率高,训练速度快,由于目标函数震荡严重,对于非凸函数可能跳过局部最优而找到更优解,但学习过程随机性大,导致学习过程难以收敛。

    mini-batch梯度下降 以较小批次的样本的平均梯度作为权值 θ ⃗ \vec{\theta} θ 更新的方向 l o s s = M e a n S q u a r e E r r o r loss=MeanSquareError loss=MeanSquareError θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗       L ( θ ⃗ ) = 1 2 b ∑ i = 1 b ( y i ^ − y i ) 2 \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} \ \ \ \ \ L(\vec{\theta})=\frac{1}{2b} \sum_{i=1}^{b}(\hat{y_i}-y_i)^2 θ =θ αθ L(θ )     L(θ )=2b1i=1b(yi^yi)2 b − 表 示 迷 你 批 包 含 的 样 本 个 数 、 i − 表 示 第 i 个 样 本 b-表示迷你批包含的样本个数、i-表示第i个样本 bii 特点:是随机梯度下降与批梯度下降方法的折中,在提升学习效率的同时有效缓解学习过程的随机性,减弱了目标函数的震荡,也能在一定程度跳过局部最优而找到更优解,较为常用。

    批梯度下降(BGD) 以所有样本的平均梯度作为权值 θ ⃗ \vec{\theta} θ 更新的方向 l o s s = M e a n S q u a r e E r r o r loss=MeanSquareError loss=MeanSquareError θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗       L ( θ ⃗ ) = 1 2 n ∑ i = 1 n ( y i ^ − y i ) 2 \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} \ \ \ \ \ L(\vec{\theta})=\frac{1}{2n} \sum_{i=1}^{n} (\hat{y_i}-y_i)^2 θ =θ αθ L(θ )     L(θ )=2n1i=1n(yi^yi)2 n − 表 示 所 有 样 本 个 数 、 i − 表 示 第 i 个 样 本 n-表示所有样本个数、i-表示第i个样本 nii 特点:将全部样本用于更新,能避免学习过程的随机性,确保模型的收敛,对于样本较多时,单次更新权值计算量大,训练速度慢,对于非凸函数容易陷入局部最优。

    4.梯度下降优化算法

    Momentum(动量)Nesterov(动量+预测)AdagradAdadeltaRMSpropAdam
    Processed: 0.017, SQL: 9