深度学习基础 - 梯度垂直于等高线的切线
深度学习基础 - 梯度垂直于等高线的切线
flyfish

梯度
给定一个标量函数 f ( x , y ) f(x, y) f(x,y),它的梯度(gradient)是一个向量,表示为 ∇ f ( x , y ) \nabla f(x, y) ∇f(x,y),定义为: ∇ f ( x , y ) = ( ∂ f ∂ x , ∂ f ∂ y ) \nabla f(x, y) = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) ∇f(x,y)=(∂x∂f,∂y∂f)
梯度指向函数在该点增加最快的方向,其大小表示函数增加的速率。
等高线
等高线是指在某个平面上连接函数值相同的点的曲线。对于一个标量函数 f ( x , y ) f(x, y) f(x,y),等高线可以表示为 f ( x , y ) = c f(x, y) = c f(x,y)=c,其中 c c c 是常数。
梯度与等高线的关系
梯度垂直于等高线的切线 :对于等高线 f ( x , y ) = c f(x, y) = c f(x,y)=c,在等高线上,函数的值是恒定的。因此,当我们在等高线上移动时,函数 f f f 的变化率为零。这意味着在等高线的切线方向上,函数没有变化,梯度与该方向无关。
梯度的方向是函数值变化最快的方向,而在等高线上的任意方向上,函数值不变,因此梯度方向必然垂直于等高线的切线方向。
几何解释
-
等高线 :
等高线是一个函数 f ( x , y ) f(x, y) f(x,y) 的等值线,即满足 f ( x , y ) = c f(x, y) = c f(x,y)=c 的所有点的集合。
在等高线上,函数值保持不变。 -
梯度的 :
梯度 ∇ f \nabla f ∇f 是一个向量,其方向是函数 f ( x , y ) f(x, y) f(x,y) 在某一点变化最快的方向。梯度向量的大小表示函数在该点变化的速率。 -
梯度与等高线 :
沿等高线方向,函数值不变,因此沿等高线移动时,函数的变化量为零。
梯度向量的方向是函数变化最快的方向,而沿等高线方向没有变化,故梯度向量必须垂直于等高线的方向。
向量解释
在二维平面中,可以使用简单的向量代数证明梯度与等高线的切线垂直:
-
等高线的方向 :
在等高线 f ( x , y ) = c f(x, y) = c f(x,y)=c 上,假设我们选择一个方向向量 t = ( a , b ) \mathbf{t} = (a, b) t=(a,b),这个向量代表等高线的切线方向。 -
梯度与切线的关系 :
梯度 ∇ f = ( ∂ f ∂ x , ∂ f ∂ y ) \nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) ∇f=(∂x∂f,∂y∂f)
梯度 ∇ f \nabla f ∇f 与向量 t \mathbf{t} t 的点积为零。
点积的计算 :
∇ f ⋅ t = ∂ f ∂ x ⋅ a + ∂ f ∂ y ⋅ b \nabla f \cdot \mathbf{t} = \frac{\partial f}{\partial x} \cdot a + \frac{\partial f}{\partial y} \cdot b ∇f⋅t=∂x∂f⋅a+∂y∂f⋅b
因为在等高线方向上,函数值不变,故此方向的变化量为零:
a ⋅ ∂ f ∂ x + b ⋅ ∂ f ∂ y = 0 a \cdot \frac{\partial f}{\partial x} + b \cdot \frac{\partial f}{\partial y} = 0 a⋅∂x∂f+b⋅∂y∂f=0
这表明梯度 ∇ f \nabla f ∇f 与等高线的切线方向向量 t \mathbf{t} t 垂直。
两个向量的点积为零时,它们是相互垂直的,这背后的数学原理来源于欧几里得几何中的向量投影与角度关系。以下是这个结论的详细解释:
向量的点积
两个向量 a \mathbf{a} a 和 b \mathbf{b} b 的点积(内积)定义为: a ⋅ b = ∣ a ∣ ∣ b ∣ cos θ \mathbf{a} \cdot \mathbf{b} = |\mathbf{a}| |\mathbf{b}| \cos \theta a⋅b=∣a∣∣b∣cosθ
其中:
∣ a ∣ |\mathbf{a}| ∣a∣ 和 ∣ b ∣ |\mathbf{b}| ∣b∣ 分别是向量 a \mathbf{a} a 和 b \mathbf{b} b 的模(长度)。
θ \theta θ 是两个向量之间的夹角。
点积与垂直的关系
当两个向量垂直时,它们之间的夹角 θ = 9 0 ∘ \theta = 90^\circ θ=90∘。此时, cos 9 0 ∘ = 0 \cos 90^\circ = 0 cos90∘=0,因此点积为: a ⋅ b = ∣ a ∣ ∣ b ∣ cos 9 0 ∘ = 0 \mathbf{a} \cdot \mathbf{b} = |\mathbf{a}| |\mathbf{b}| \cos 90^\circ = 0 a⋅b=∣a∣∣b∣cos90∘=0
再解释
-
切线的方向 :假设在等高线上的某一点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0),等高线的切线方向用一个向量 ( d x , d y ) (dx, dy) (dx,dy) 表示。沿着等高线的微小移动满足: f ( x 0 + d x , y 0 + d y ) − f ( x 0 , y 0 ) = 0 f(x_0 + dx, y_0 + dy) - f(x_0, y_0) = 0 f(x0+dx,y0+dy)−f(x0,y0)=0
根据函数的全微分公式,这意味着(链式法则):
∂ f ∂ x d x + ∂ f ∂ y d y = 0 \frac{\partial f}{\partial x} dx + \frac{\partial f}{\partial y} dy = 0 ∂x∂fdx+∂y∂fdy=0 -
垂直关系 :由于梯度 ∇ f = ( ∂ f ∂ x , ∂ f ∂ y ) \nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) ∇f=(∂x∂f,∂y∂f),上式表明: ∇ f ⋅ ( d x , d y ) = 0 \nabla f \cdot (dx, dy) = 0 ∇f⋅(dx,dy)=0
这说明梯度向量 ∇ f ( x , y ) \nabla f(x, y) ∇f(x,y) 与切向量 ( d x , d y ) (dx, dy) (dx,dy) 的点积为零,表明它们相互垂直。
梯度指向函数变化最快的方向,而等高线方向是函数不变的方向。
梯度向量与切线垂直,梯度的正方向指示了函数值增加最快的方向,而负方向则指示了函数值减少最快的方向。梯度向量的负方向由红色箭头指示,一条等高线上的切线用绿色显示。
相关文章:
深度学习基础 - 梯度垂直于等高线的切线
深度学习基础 - 梯度垂直于等高线的切线 flyfish 梯度 给定一个标量函数 f ( x , y ) f(x, y) f(x,y),它的梯度(gradient)是一个向量,表示为 ∇ f ( x , y ) \nabla f(x, y) ∇f(x,y),定义为: ∇ f ( x…...
py2exe打包
要用到py2exe打包python程序,记录一下。 写一个setup.py文件,内容如下: from distutils.core import setup import py2exeoptions {"py2exe":{"compressed": 1, # 0或1 1压缩,0不压缩"optimize&quo…...
Gerrit存在两个未审核提交且这两个提交有冲突时的解决方案
Gerrit存在两个未审核提交且这两个提交有冲突时的解决方案 问题背景 用户A提交了一个记录,用户A的记录未审核此时用户B又提交了,这个时候管理员去合并代码,合了其中一个后再去合另一个发现合并不了,提示冲突,这个时候另…...
基于单片机的智能风扇设计
摘 要: 传统风扇无法根据周围环境的温度变化进行风速的调整,必须人为地干预才能达到需求 。 本文基于单片机的智能风扇主要解决以往风扇存在的问题,其有两种工作模式: 手动操作模式和自动运行模式,人们可以根据需要进行模式选择。 在自动运行…...
【实战】Spring Security Oauth2自定义授权模式接入手机验证
文章目录 前言技术积累Oauth2简介Oauth2的四种模式授权码模式简化模式密码模式客户端模式自定义模式 实战演示1、mavan依赖引入2、自定义手机用户3、自定义手机用户信息获取服务4、自定义认证令牌5、自定义授权模式6、自定义实际认证提供者7、认证服务配置8、Oauth2配置9、资源…...
Redis数据失效监听
一、配置Redis开启 打开conf/redis.conf 文件,添加参数:notify-keyspace-events Ex 二、验证配置 步骤一:进入redis客户端:redis-cli步骤二:执行 CONFIG GET notify-keyspace-events ,如果有返回值证明配…...
【达梦数据库】-SQL调优思路
【达梦数据库】-SQL调优思路 --查看统计信息是否准确 select table_name,num_rows,blocks,last_analyzed from user_tables where table_name表名; #默认每周六1点进行全库信息统计1、确认SQL --sql select * from test;2、查看ET ---------------------------------------…...
DispatcherServlet 源码分析
一.DispatcherServlet 源码分析 本文仅了解源码内容即可。 1.观察我们的服务启动⽇志: 当Tomcat启动之后, 有⼀个核⼼的类DispatcherServlet, 它来控制程序的执⾏顺序.所有请求都会先进到DispatcherServlet,执⾏doDispatch 调度⽅法. 如果有拦截器, 会先执⾏拦截器…...
代码随想录算法训练营第十八天| 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
题目: 530. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 示例 1: 输入:root [4,2,6,1,3] 输出:…...
会议室占用的时间(75%用例)D卷(JavaPythonC++Node.jsC语言)
现有若干个会议,所有会议共享--个会议室,用数组表示各个会议的开始时间和结束时间,格式为: 会议1开始时间,会议1结束时间 会议2开始时间,会议2结束时间 请计算会议室占用时间段。 输入描述: 第一行输入一个整数 n,表示会议数量 之后输入n行,每行两个整数,以空格分隔,…...
C++初阶_1:namespace
本章详细解说:namespace 。 namespace: namespace,意为:命名空间,c的关键字(关键字,就是提示:取变量名,函数名时不能与之撞名)。 namespace的价值: 为了解…...
低代码开发平台:效率革命还是质量隐忧?
如何看待“低代码”开发平台的兴起? 近年来,“低代码”开发平台如雨后春笋般涌现,承诺让非专业人士也能快速构建应用程序。这种新兴技术正在挑战传统软件开发模式,引发了IT行业的广泛讨论。低代码平台是提高效率的利器࿰…...
在 Django 表单中传递自定义表单值到视图
在Django中,我们可以通过表单的初始化参数initial来传递自定义的初始值给表单字段。如果我们想要在视图中设置表单的初始值,可以在视图中创建表单的实例时,传递一个字典给initial参数。 1、问题背景 我们遇到了这样一个问题:在使…...
Android之复制文本(TextView)剪贴板
效果图: 功能简单就是点击“复制”,将邀请码复制到 剪贴板中 布局 <androidx.constraintlayout.widget.ConstraintLayoutandroid:id"id/clCode"android:layout_width"dimen/dp_0"android:layout_height"dimen/dp_49"…...
Ubuntu24.04设置国内镜像软件源
参考文章: Ubuntu24.04更换源地址(新版源更换方式) - 陌路寒暄 一、禁用原来的软件源 Ubuntu24.04 的源地址配置文件发生改变,不再使用以前的 sources.list 文件,升级 24.04 之后,该文件内容变成了一行注…...
分布式与微服务详解
1. 单机架构 只有一台机器,这个机器负责所有的工作 (这里假定一个电商网站) 现在大部分公司的产品都是单机架构 。 2. 分布式架构 一台机器的硬件资源是有限的,服务器处理请求是需要占用硬件资源的,如果业务增长&a…...
Vue设置滚动条自动保持到最底端
需求描述:在开发中我们常常会遇到需要让滚动条保持到最底端的需求,比如在开发一个聊天框时,请求接口拿到消息列表数据,展示到前端页面时,需要让滚动条自动滚到最底端,以此来展示最后的聊天记录。同时&#…...
uniapp创建一个新项目并导入uview-plus框架
近年来,随着技术的发展,人们越来越意识到跨平台和统一的重要性。对于同一款应用来说,一般都会有移动端、PC端、甚至小程序端。这是由于设备的不同,我们必须要做很多的客户端来满足不同的用户需求。但是由于硬件设施的不同…...
LabVIEW光电在线测振系统
开发了一种基于LabVIEW软件和光电技术的在线测振系统。该系统利用激光作为调制光源,并通过位置敏感型光电传感器(PSD)进行轴振动的实时检测。其主要特点包括非接触式测量、广泛的测量范围、高灵敏度和快速响应时间,且具备优良的抗…...
分布式光伏电站 转化能源 丰富用电结构
分布式光伏系统是一种利用分散式的可再生能源,在靠近用户端的地方安装光伏发电设施,通过光伏效应将太阳能转化为直流电能,并通过逆变器将其转换为交流电,以供用户使用的系统。以下是对分布式光伏系统的详细阐述: 一、…...
针对C++开源项目的AI工具讲解。我将它们分为两大类,便于理解
以下是针对C开源项目的AI工具讲解。我将它们分为两大类,便于理解: C开发者使用AI工具来提升开源项目开发效率(代码补全、调试、重构、文档生成等)。用C开发的开源AI工具/框架(这些工具本身是C开源项目,常用…...
重要提醒:2026年6月PMP考试报名时间已确定
2026年4月2日,中国国际人才交流基金会与PMI(项目管理协会)联合发布官方通知,明确中国大陆地区2026年第二期PMP认证考试将于6月14日正式举办,且本次考试中文报名将分地区、分批次开放,核心报名时间为4月16日…...
COMSOL多场耦合地应力平衡开挖与衬砌支护案例:带衬砌与钢衬支护的实践研究
COMSOL 地应力平衡后开挖及衬砌支护案例(带衬砌、钢衬)隧道开挖模拟最头疼的就是初始地应力场的平衡问题。前些天用COMSOL折腾了个带衬砌支护的案例,今天把关键步骤拆开说说。咱们直接从地应力平衡开始,到开挖后钢衬安装一气呵成。…...
【飞机】倾转旋翼飞机齿轮箱建模与Matlab仿真(含非线性阻尼和立方摩擦效应)
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
Windows Cleaner终极指南:5分钟彻底解决C盘爆红和系统卡顿问题
Windows Cleaner终极指南:5分钟彻底解决C盘爆红和系统卡顿问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统…...
Using Vulkan -- Pipeline Dynamic State
概述创建图形VkPipeline对象时,设置状态的逻辑流程如下:// 以视口状态为例 VkViewport viewport {0.0, 0.0, 32.0, 32.0, 0.0, 1.0};// 设置状态值 VkPipelineViewportStateCreateInfo viewportStateCreateInfo; viewportStateCreateInfo.pViewports &…...
解决PARSEC 3.0安装中的常见问题:从gcc缺失到native输入配置
解决PARSEC 3.0安装中的常见问题:从gcc缺失到native输入配置 在性能测试和基准评估领域,PARSEC 3.0作为一套广泛使用的多线程基准测试套件,为研究人员和开发者提供了评估系统性能的强大工具。然而,在实际安装和配置过程中&#x…...
Jetson平台高温警告静默指南:深入解析notify_disable与nvpmodel_indicator.py
1. 为什么需要关闭Jetson的高温警告 当你把Jetson设备用在嵌入式系统或者工业自动化场景时,那个频繁弹出的"Caution - Hot surface. Do not touch"警告可能会让人抓狂。我去年在一个智能监控项目上就遇到过这种情况——设备在户外机箱里持续运行ÿ…...
哔咔漫画下载器:多线程极速下载完整指南
哔咔漫画下载器:多线程极速下载完整指南 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gitcode.com/gh_mirrors/pi/pi…...
保姆级教程:手把手教你下载SEED-VIG脑电数据集(附Gitee国内镜像地址)
从零到一:SEED-VIG脑电数据集的完整获取与解析指南 第一次接触SEED-VIG数据集时,我花了整整三天时间才搞明白如何正确下载和解析这个2.9GB的庞然大物。作为研究驾驶疲劳检测的重要资源,这个数据集的价值毋庸置疑,但获取过程却让不…...
