当前位置: 首页 > news >正文

方向导数与梯度下降

文章目录

  • 方向角与方向余弦
    • 方向角
    • 方向余弦
  • 方向导数
    • 定义
    • 性质
  • 梯度下降

梯度下降法(Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。

方向角与方向余弦

方向角

在这里插入图片描述
向量(或有向直线)与坐标轴正向或基向量的交角称为向量的方向角。定义域为[0,π][0,\pi][0,π]

方向余弦

{cos⁡α=x∣r∣cos⁡β=y∣r∣cos⁡γ=z∣r∣\begin{cases} \cos\alpha = \frac{x}{|r|}\\ \cos\beta = \frac{y}{|r|}\\ \cos\gamma = \frac{z}{|r|} \end{cases}cosα=rxcosβ=rycosγ=rz
且有cos⁡2α+cos⁡2β+cos⁡2γ=1\cos^2\alpha+\cos^2\beta+\cos^2\gamma=1cos2α+cos2β+cos2γ=1

方向导数

定义

给定标量函数f(x,y,z)f(x,y,z)f(x,y,z),和任意向量l⃗\vec{l}l,该向量与三个坐标轴的夹角分别为α\alphaαβ\betaβγ\gammaγ,从定义域中一定P0(x,y,z)P_0(x,y,z)P0(x,y,z)出发,沿着向量l⃗\vec{l}l方向移动距离Δs\Delta sΔs,到达点P1(x+Δscos⁡α,y+Δscos⁡β,z+Δscos⁡γ)P_1(x+\Delta s \cos\alpha,y+\Delta s \cos\beta,z+\Delta s \cos\gamma)P1(x+Δscosα,y+Δscosβ,z+Δscosγ),定义方向导数:
dfdl⃗=lim⁡Δs→0f(x+Δscos⁡α,y+Δscos⁡β,z+Δscos⁡γ)−f(x,y,z)Δs\frac{df}{d\vec{l}}=\lim_{\Delta s \to 0}\frac{f(x+\Delta s \cos\alpha,y+\Delta s \cos\beta,z+\Delta s \cos\gamma)-f(x,y,z)}{\Delta s}dldf=limΔs0Δsf(x+Δscosα,y+Δscosβ,z+Δscosγ)f(x,y,z)

代表函数fff在方向l⃗\vec{l}l的变化率。

性质

dfdl⃗=∂f∂xcos⁡α+∂f∂ycos⁡β+∂f∂zcos⁡γ=(∂f∂x,∂f∂y,∂f∂z)⋅(cos⁡α,cos⁡β,cos⁡γ)=∇f⋅n⃗=∣∇f∣cos⁡⟨∇f,l⃗⟩\begin{aligned} \frac{df}{d\vec{l}} &=\frac{\partial f}{\partial x}\cos\alpha+\frac{\partial f}{\partial y}\cos\beta+\frac{\partial f}{\partial z}\cos\gamma \\ \\ &=(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y},\frac{\partial f}{\partial z})\cdot(\cos\alpha,\cos\beta,\cos\gamma)=\nabla f \cdot\vec{n}=|\nabla f|\cos\lang\nabla f,\vec{l}\rang \end{aligned}dldf=xfcosα+yfcosβ+zfcosγ=(xf,yf,zf)(cosα,cosβ,cosγ)=fn=∣∇fcosf,l

l⃗\vec{l}lfff的梯度方向时,cos⁡⟨∇f,l⃗⟩=1\cos\lang\nabla f,\vec{l}\rang=1cosf,l=1,变化率绝对值最大且为正;当l⃗\vec{l}lfff的负梯度方向时,cos⁡⟨∇f,l⃗⟩=−1\cos\lang\nabla f,\vec{l}\rang=-1cosf,l=1,变化率绝对值最大且为负。

梯度下降

应用场景:求损失函数的最小值。
梯度下降的具体算法实现过程是:

1、确定模型和损失函数;
2、参数初始化,包括:参数、算法终止条件和步长;
3、参数更新θj+1=θj−α∂J∂θj\theta_{j+1}=\theta_j - \alpha \frac{\partial J}{\partial\theta_j}θj+1=θjαθjJ
4、判断停止条件,若满足,则停止,若不满足,则继续更新。

http://www.lryc.cn/news/571.html

相关文章:

  • Java岗面试题--Java基础(日积月累,每日三题)
  • java基础—Volatile关键字详解
  • 内存检测工具Sanitizers
  • Triton : OpenAI 开发的用于Gpu开发语言
  • Python文件操作-代码案例
  • 活动目录(Active Directory)管理,AD自动化
  • Allegro如何使用Vertext命令修改丝印线段的形状操作指导
  • Leetcode力扣秋招刷题路-0030
  • 基于Prometheus和k8s搭建监控系统
  • 类和对象(下)
  • 达梦数据库单机部署
  • 从零到一学习Flutter——(二)状态和路由
  • TC358774XBG/TC358775XBG替代方案|CS5518替代TC358774XBG/TC358775XBG设计DSI转LVSD设计资料
  • Linux---Kernal与Shell讲解
  • Thiol-PEG-Acid,HS-PEG-COOH,巯基-聚乙二醇-羧基试剂供应
  • 数据结构与算法基础-学习-09-线性表之栈的理解、初始化顺序栈、判断顺序栈空、获取顺序栈长度的实现
  • 深入Kafka核心设计与实践原理读书笔记第二章
  • 知乎kol投放怎么做?知乎kol资源从哪里找?
  • python设计模式-享元设计模式,抽象工厂设计模式,面向对象设计模式
  • 10条终身受益的Salesforce职业发展建议!
  • 电子科技大学人工智能期末复习笔记(四):概率与贝叶斯网络
  • 码上掘金实现电子木鱼
  • 深度学习_L2正则化
  • 第一章 认识Python
  • 复习0206
  • 小红书如何查看笔记
  • linux001之linux系统部署安装
  • 服务异步通信 RabbitMQ-高级篇
  • 【PR】零基础快速入门教程
  • Matlab 点云迭代加权最小二乘法拟合平面(抑制噪声)