方向导数与梯度下降

news2024/11/24 10:53:13

文章目录

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

梯度下降法(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=1 cos2α+cos2β+cos2γ=1

方向导数

定义

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

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

性质

d f d l ⃗ = ∂ f ∂ x cos ⁡ α + ∂ f ∂ y cos ⁡ β + ∂ f ∂ z cos ⁡ γ = ( ∂ 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} dl df=xfcosα+yfcosβ+zfcosγ=(xf,yf,zf)(cosα,cosβ,cosγ)=fn =∣∇fcosf,l

l ⃗ \vec{l} l f f f的梯度方向时, cos ⁡ ⟨ ∇ f , l ⃗ ⟩ = 1 \cos\lang\nabla f,\vec{l}\rang=1 cosf,l =1,变化率绝对值最大且为正;当 l ⃗ \vec{l} l f f f的负梯度方向时, cos ⁡ ⟨ ∇ f , l ⃗ ⟩ = − 1 \cos\lang\nabla f,\vec{l}\rang=-1 cosf,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.coloradmin.cn/o/333820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习数据库第一天

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、数据库的开启和关闭二、数据库的登录 添加数据库以及表1.登录数据库2.查看数据库三 数据表前言 提示:这里可以添加本文要记录的大概内容&#x…

spring cloud脚手架快速开发 微服务架构 JAVA敏捷开发框架源码

核心技术采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。 私信了解更多! 功能模块: 1、租户管理:运营人员管理所有的租户创建 2、工作台:普通用户…

支持分布式部署的主流方式 - Session 持久化到 Redis

1.为什么要将 Session 存储在 Redis 中如果我们不将 Session 存储在 MySQL 或者 Redis 中, 那么做出来的项目就只能支持单机部署, 不支持分布式部署. 因为之前我们只是将 Session 存储在当前电脑的内存里面. 当张三去登录的时候, 将 Session 信息存储在 A 服务器, 这个时候负载…

码上【call,apply,bind】的手写

一、call (1)官方用法 call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 语法:function.call(要绑定的this值,参数,参数,…)。不一定这些参数都需要,这些参数都…

寿险业务系统异常处理方案

我们的系统使用的java语言开发,基于Spring框架搭建的业务中台,在讨论业务系统异常处理策略之前,先把java的异常机制进行简单说明。 一、Java的异常机制 1.Java异常分类 【Error】是系统错误或者编译错误,常见的虚拟机运行错误、…

2023,考个软考中级证书稳妥深圳入户,5月考试8月办入户

最新消息!最新消息!最新消息! 2023年2月8日,深圳市发展和改革委员会深圳市公安局深圳市人力资源和社会保障局关于印发《深圳市积分入户办法》的最新通知↓ 来源《深圳市发展和改革委员会》 该积分入户将于2023年2月15日正式实施&…

C++与Lua交互实例 -- 矩阵的加减乘除(版本一)

C与Lua交互实例 – 矩阵的加减乘除(版本一) 关于lua中封装的类模板以及相关知识可参考以下链接: https://ufgnix0802.blog.csdn.net/article/details/128854786 https://ufgnix0802.blog.csdn.net/article/details/128827673 https://ufgnix0…

Python深度学习实战PyQt5窗口切换的堆叠布局示例详解

本文以堆叠窗口控件为例,详细介绍堆叠布局的界面设计和程序实现过程,通过案例带小白创建一个典型的堆叠布局多窗口切换程序软件项目中经常需要多种不同的图形界面,以适应不同的任务场景。选项卡控件(QTackedWidget)通过…

[Java 进阶] synchronized 与 ReentrantLock的区别

祝一切顺利~ 文章目录synchronized 与 ReentrantLock的区别synchronized 与 ReentrantLock的区别 1.ReentrantLock的锁是公平锁,synchronized是非公平锁.(公平锁是指当锁被释放时,由等待时间最长的线程获取锁.非公平锁是锁被释放时,所有线程不论等待时间长短,都一起去竞争) 2.…

小白系列Vite-Vue3-TypeScript:009-屏幕适配

上一篇我们介绍了ViteVue3TypeScript项目中mockjs的安装和配置。本篇我们来介绍屏幕适配方案,简单说来就是要最大程度上保证我们的界面在各种各样的终端设备上显示正常。通用的屏幕适配方案有两种:① 基于rem 适配(推荐,也是本篇要…

线下沙龙|从VUCA到BANI,找到你的“第二曲线”

冷战之后,VUCA盛行,世界已复杂到无可言表;然而,我们正在拼命地理解和适应“VUCA时代”,却又被迷迷糊糊、跌跌撞撞地推进了“BANI时代”。 未来之路在何方?在脚下,却不知该如何去迈? …

elasticsearch使用painless的一些简单例子

文章目录1、背景2、准备数据2.1 mapping2.2 插入数据3、例子3.1 (update)更新文档 id1 的文档,将 age 加 2岁3.2 (update_by_query)如果 province 是北京的话,就将 age 减少1岁3.3 (ctx.op)如果张三的年龄小于20岁就不处理,否则就删除这个文档…

MLX90316KGO-BDG-100-RE传感器 旋转位置 角度测量

介绍MLX90316是Tria⊗is旋转位置传感器,提供在设备表面旋转的小偶极磁铁(轴端磁铁)的绝对角位置。得益于其表面的集成磁集中器(IMC),单片设备以非接触式方式感知应用磁通量密度的水平分量。这种独特的传感原理应用于旋转位置传感器,可在机械(…

(1分钟速通面试) 矩阵分解相关内容

矩阵分解算法--总结QR分解 LU分解本篇博客总结一下QR分解和LU分解,这些都是矩阵加速的操作,在slam里面还算是比较常用的内容,这个地方在isam的部分出现过。(当然isam也是一个坑,想要出点创新成果的话 可能是不太现实的 短期来讲 哈…

【电商】订单系统--售后的简易流程与系统关系

用户进行了订单签收并不意味着终结,这只是一个新的开始,因为商品送达后可能会由于运输过程包装或商品有破损,商品本质量并非商品详情中所描述的那样等各种原因使用户进行退货或换货;还有一种场景是用户签收后发现有的商品漏发、少…

线性卡尔曼滤波详解

自动驾驶面临的第一个问题:从哪里来,到哪里去?要解决这个问题,自动驾驶汽车首先需要准确的知道自己在地图上的位置。理所当然的我们可以想到通过GPS来进行定位,但获取GPS信号需要跟卫星进行通信,这就导致它…

简单的洗牌(数据结构系列4)

目录 前言: 1.思想 1.1基本框架的搭建 1.2洗牌操作 1.3揭牌 2.代码运行结果截图 结束语: 前言: 在上一次的博客中小编与大家分享了ArrayList的模拟实现和一些具体的使用方法,那么接下来我们通过一个简单的洗牌练习来巩固一…

Java创建枚举类并定义使用枚举项

前言 在项目开发中,常量和枚举都是我们经常使用的技巧。都是为了提高开发效率。常量我们一般都会创建一个常量类,里面放一些经常使用的变量,例如: 枚举的定义和使用相比于常量,也是有异曲同工之巧的,下面就…

梅开二度的 axios 源码阅读,三千字详细分享功能函数,帮助扩展开发思维

前言 第一遍看 axios 源码,更多的是带着日常开发的习惯,时不时产生出点联想。 第二遍再看 axios 源码,目标明确,就是奔着函数来的。 当有了明确清晰的目标,阅读速度上来了,思绪也转的飞快。 按图索骥&a…

day 15 第六章二叉树

层序遍历 102.二叉树的层序遍历107.二叉树的层次遍历II199.二叉树的右视图637.二叉树的层平均值429.N叉树的层序遍历515.在每个树行中找最大值116.填充每个节点的下一个右侧节点指针117.填充每个节点的下一个右侧节点指针II104.二叉树的最大深度111.二叉树的最小深度 226.翻转二…