栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ML 梯度下降算法

ML 梯度下降算法

简介

站在山上某处视线扫一圈,所看到的山上某处沿着某个方向的陡峭程度就是方向导数方向导数是数值沿着某条射线的变化率,梯度是最大的方向导数,梯度是某点最陡峭的方向
方向导数


定义:

已知: l l l为从 P 0 P_0 P0​出发的一条射线条件: t = ( Δ x ) 2 + ( Δ y ) 2 + ( Δ z ) 2 , c o s α c o s β c o s γ 是 方 向 l 的 方 向 余 弦 t=sqrt{(Delta x)^2+(Delta y)^2+(Delta z)^2}, cosalpha cosbeta cosgamma 是方向l的方向余弦 t=(Δx)2+(Δy)2+(Δz)2 ​,cosαcosβcosγ是方向l的方向余弦若极限存在: lim ⁡ t → 0 + u ( P ) − u ( P 0 ) t = u ( x 0 + t c o s α , y 0 + t c o s β , z 0 + c o s γ ) t {lim_{tto 0^+}frac{u(P)-u(P_0)}{t}=frac{u(x_0+tcosalpha,y_0+tcosbeta,z_0+cosgamma)}{t}} t→0+lim​tu(P)−u(P0​)​=tu(x0​+tcosα,y0​+tcosβ,z0​+cosγ)​结果:则称此极限为点 P 0 P_0 P0​沿方向 l textbf{l} l的方向导数记: ∂ u ∂ l ∣ P 0 = lim ⁡ t → 0 + u ( P ) − u ( P 0 ) t frac{partial{u}}{partial{l}}|_{P_0}={lim_{tto 0^+}frac{u(P)-u(P_0)}{t}} ∂l∂u​∣P0​​=t→0+lim​tu(P)−u(P0​)​注意: l textbf{l} l是向量

定理:

条件: u ( x , y , z ) u(x,y,z) u(x,y,z)在点 P 0 ( x 0 , y 0 , z 0 ) P_0(x_0,y_0,z_0) P0​(x0​,y0​,z0​)处可微,则 u ( x , y , z ) u(x,y,z) u(x,y,z)在点 P 0 P_0 P0​处沿任一方向 l textbf{l} l的方向导数都存在结果: ∂ u ∂ l ∣ P 0 = u x ( P 0 ) ′ c o s α + u y ( P 0 ) ′ c o s β + u z ( P 0 ) ′ c o s γ frac{partial{u}}{partial{l}}|_{P_0}=u_x(P_0)^{'}cosalpha+u_y(P_0)^{'}cosbeta+u_z(P_0)^{'}cosgamma ∂l∂u​∣P0​​=ux​(P0​)′cosα+uy​(P0​)′cosβ+uz​(P0​)′cosγ注意: l textbf{l} l是向量 梯度

定义:

问题:在某一点沿着那个方向的方向导数才是最大的条件: u ( x , y , z ) u(x,y,z) u(x,y,z)在点 P 0 ( x 0 . y 0 , z 0 ) P_0(x_0.y_0,z_0) P0​(x0​.y0​,z0​)处具有一阶偏导数定义: u u u在 P 0 P_0 P0​处的梯度 grad   u ∣ P 0 = ( u x ( P 0 ) ′ , u y ( P 0 ) ′ , u z ( P 0 ) ′ ) textbf{grad} u|_{P_0}=(u_x(P_0)^{'},u_y(P_0)^{'},u_z(P_0)^{'}) grad u∣P0​​=(ux​(P0​)′,uy​(P0​)′,uz​(P0​)′)注意:梯度是一个向量 梯度与方向导数的关系

方向导数: ∂ u ∂ l ∣ P 0 = u x ( P 0 ) ′ c o s α + u y ( P 0 ) ′ c o s β + u z ( P 0 ) ′ c o s γ frac{partial{u}}{partial{l}}|_{P_0}=u_x(P_0)^{'}cosalpha+u_y(P_0)^{'}cosbeta+u_z(P_0)^{'}cosgamma ∂l∂u​∣P0​​=ux​(P0​)′cosα+uy​(P0​)′cosβ+uz​(P0​)′cosγ梯度: grad   u ∣ P 0 = ( u x ( P 0 ) ′ , u y ( P 0 ) ′ , u z ( P 0 ) ′ ) textbf{grad} u|_{P_0}=(u_x(P_0)^{'},u_y(P_0)^{'},u_z(P_0)^{'}) grad u∣P0​​=(ux​(P0​)′,uy​(P0​)′,uz​(P0​)′)关系:
∂ u ∂ l ∣ P 0 = ( u x ( P 0 ) ′ , u y ( P 0 ) ′ , u z ( P 0 ) ′ ) ⋅ ( c o s α , c o s β , c o s γ ) = grad   u ∣ P 0 ⋅ l 0 = ∣ grad   u ∣ P 0 ∣ ∣ l 0 ∣ c o s θ = ∣ grad   u ∣ P 0 ∣ c o s θ begin{aligned} frac{partial{u}}{partial{l}}|_{P_0} &=(u_x(P_0)^{'},u_y(P_0)^{'},u_z(P_0)^{'})cdot (cosalpha,cosbeta,cosgamma) \ &=textbf{grad} u|_{P_0}cdot textbf{l}^0 \ &=big|textbf{grad} u|_{P_0}big|big|textbf{l}^0big|costheta \ &=big|textbf{grad} u|_{P_0}big|costheta end{aligned} ∂l∂u​∣P0​​​=(ux​(P0​)′,uy​(P0​)′,uz​(P0​)′)⋅(cosα,cosβ,cosγ)=grad u∣P0​​⋅l0=∣∣​grad u∣P0​​∣∣​∣∣​l0∣∣​cosθ=∣∣​grad u∣P0​​∣∣​cosθ​条件: θ theta θ为 grad   u ∣ P 0 textbf{grad} u|_{P_0} grad u∣P0​​与 l 0 textbf{l}^0 l0的夹角结果:当 c o s θ = 1 costheta=1 cosθ=1时, ∂ u ∂ l ∣ P 0 frac{partial{u}}{partial{l}}big|_{P_0} ∂l∂u​∣∣​P0​​有最大值结论:函数在某点的梯度是这样一个向量,梯度的方向与最大方向导数的方向一致,梯度的模为方向导数的最大值补充: ⋅ cdot ⋅点乘为对应元素相乘注意: l 0 textbf{l}^0 l0是单位向量 批量梯度下降(batch)

注意

每次迭代使用整个样本更新权重bias和weight

特点

适合小数据量大数据量:收敛速度慢,稳定性高稳定性高:梯度值越来越小,梯度值上下波动频率低

伪代码
假设: m=1000 (m是样本总量)
iteration(num_iter)
{
w j = w j − α 1 m ∑ i = 1 m ∂ c o s t ( w , b ) ∂ w j w_j=w_j-alphafrac{1}{m}sumlimits_{i=1}^{m}frac{partial{cost(w,b)}}{partial{w_j}} wj​=wj​−αm1​i=1∑m​∂wj​∂cost(w,b)​
b j = b j − α 1 m ∑ i = 1 m ∂ c o s t ( w , b ) ∂ b j b_j=b_j-alphafrac{1}{m}sumlimits_{i=1}^{m}frac{partial{cost(w,b)}}{partial{b_j}} bj​=bj​−αm1​i=1∑m​∂bj​∂cost(w,b)​
(for every j=0,1,…,n)
}

随机梯度下降(stochastic)

注意

每次迭代使用1个样本更新权重bias和weight

特点

适用于小数据量和大数据量大数据量:收敛速度快,稳定性低稳定性低:梯度值不是越来越小,梯度值上下波动频率高

伪代码
假设: m=1000 (m是样本总量)
iteration(num_iter)
{
for (i=1,2,…,m)
{
w j = w j − α 1 m ∂ c o s t ( w , b ) ∂ w j w_j=w_j-alphafrac{1}{m}frac{partial{cost(w,b)}}{partial{w_j}} wj​=wj​−αm1​∂wj​∂cost(w,b)​
b j = b j − α 1 m ∂ c o s t ( w , b ) ∂ b j b_j=b_j-alphafrac{1}{m}frac{partial{cost(w,b)}}{partial{b_j}} bj​=bj​−αm1​∂bj​∂cost(w,b)​
(for every j=0,1,…,n)
}
}

小批量梯度下降(mini-batch)

注意

每次迭代使用1个mini-batch中的样本更新权重bias和weight

特点

适用于小数据量和大数据量大数据量:收敛速度较快,稳定性较高稳定性较高:梯度变化稳定性介于批量梯度下降和随机梯度下降之间

伪代码
假设: mini_batch_size=10, m=1000 (m是样本总量)
iteration(num_iter)
{
for (i=0,10,20,…,990)
{
w j = w j − α 1 m i n i _ b a t c h _ s i z e ∑ k = i i + 9 ∂ c o s t ( w , b ) ∂ w j w_j=w_j-alphafrac{1}{mini_batch_size}sumlimits_{k=i}^{i+9}frac{partial{cost(w,b)}}{partial{w_j}} wj​=wj​−αmini_batch_size1​k=i∑i+9​∂wj​∂cost(w,b)​
b j = b j − α 1 m i n i _ b a t c h _ s i z e ∑ k = i i + 9 ∂ c o s t ( w , b ) ∂ b j b_j=b_j-alphafrac{1}{mini_batch_size}sumlimits_{k=i}^{i+9}frac{partial{cost(w,b)}}{partial{b_j}} bj​=bj​−αmini_batch_size1​k=i∑i+9​∂bj​∂cost(w,b)​
(for every j=0,1,…,n)
}
}

对比

梯度下降算法:

mini_batch_size=1时,成为随机梯度下降mini_batch_size>1时,成为mini-batch梯度下降mini_batch_size=样本数量时,成为batch梯度下降

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/746204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号