关于梯度和雅可比矩阵
转载自:博客
该博客已过期,为了方便以后查看,转载如下,侵删
看到一个简洁漂亮的推导,从可微性的概念出发引入了梯度和雅可比矩阵,简记如下。
微积分的基本理念是利用仿射函数对函数进行近似,仿射函数的定义如下:
如果存在线性函数 L : R n → R m L:R^n→R^m L:Rn→Rm和向量 y ∈ R m y \in R^m y∈Rm使得对于任意 x ∈ R n x∈R^n x∈Rn都有 A ( x ) = L ( x ) + y A(x)=L(x)+y A(x)=L(x)+y则称函数 A A A为一个仿射函数。(注:不难看出,仿射函数实质上是线性变换加上平移。)
如果给定了函数 f : R n → R m f:R^n→R^m f:Rn→Rm和点 x 0 ∈ R n x_0∈R^n x0∈Rn,我们希望找到一个仿射函数 A A A,使其在点 x 0 x_0 x0附近能够近似函数 f f f,那么显然有 A ( x 0 ) = f ( x 0 ) A(x_0)=f(x_0) A(x0)=f(x0)
可得
y = f ( x 0 ) − L ( x 0 ) y=f(x_0)-L(x_0) y=f(x0)−L(x0)
再利用线性函数的性质可得
A ( x ) = L ( x − x 0 ) + f ( x 0 ) A(x)=L(x-x_0)+f(x_0) A(x)=L(x−x0)+f(x0)
接下来,相对于 x x x接近于 x 0 x_0 x0的速度,要求 A ( x ) A(x) A(x)接近 f ( x ) f(x) f(x)的速度更快,以保证 A A A在点 x 0 x_0 x0附近实现对fff的近似,即保证在某个给定点上的近似误差是相对于该点与 x 0 x_0 x0之间距离的一个“无穷小量”,以下给出导数的定义:
给定函数 f : Ω → R m , Ω ⊂ R n f:\Omega\rightarrow R^m,\Omega\subset R^n f:Ω→Rm,Ω⊂Rn,如果存在一个仿射函数能够在点 x 0 x_0 x0附近近似函数 f f f,那么就称函数 f f f在点 x 0 ∈ Ω x_0\in\Omega x0∈Ω处可微,即存在线性函数 L : R n → R m L:R^n\rightarrow R^m L:Rn→Rm使得
lim x → x 0 , x ∈ Ω ∥ f ( x ) − ( L ( x − x 0 ) + f ( x 0 ) ) ∥ ∥ x − x 0 ∥ = 0 \lim_{x\rightarrow x_0,x\in\Omega} \frac{\parallel f(x)-(L(x-x_0)+f(x_0))\parallel}{\parallel x-x_0\parallel } =0 x→x0,x∈Ωlim∥x−x0∥∥f(x)−(L(x−x0)+f(x0))∥=0
则 L L L称为 f f f在点 x 0 x_0 x0的导数,如果函数 f f f在定义域 Ω \Omega Ω上处处可微,那么称 f f f在 Ω \Omega Ω上是可微的。
以前也提过,矩阵的本质是对变换的描述,那么如何确定可微函数 f f f的导数 L L L对应的矩阵 M M M呢?引入 R n R^n Rn空间的标准基 ∣ e 1 , e 2 , . . . , e n ∣ \left|e_1,e_2,...,e_n \right| ∣e1,e2,...,en∣,考虑在某个方向上有微小变化的向量 x j = x 0 + t e j , j = 1 , . . . , n x_j=x_0+te_j, j=1,...,n xj=x0+tej,j=1,...,n,根据导数的定义有:
lim t → 0 f ( x j ) − ( t M e j + f ( x 0 ) ) t = 0 \lim_{t\rightarrow 0} \frac{ f(x_j)-(tMe_j+f(x_0))}{t} =0 t→0limtf(xj)−(tMej+f(x0))=0
这意味着,对于 j = 1 , . . . , n j=1,...,n j=1,...,n,有:
lim t → 0 f ( x j ) − f ( x 0 ) t = M e j \lim_{t\rightarrow 0} \frac{ f(x_j)-f(x_0)}{t} =Me_j t→0limtf(xj)−f(x0)=Mej
由矩阵乘法的性质可知, M e j Me_j Mej是矩阵 M M M的第 j j j列,向量 x j x_j xj与 x 0 x_0 x0仅在第 j j j个元素存在差异,上式的左边等于偏导数 ∂ f ∂ x j ( x 0 ) \frac{\partial f}{\partial x_j}(x_0) ∂xj∂f(x0) 。因此,如果
f ( x ) = [ f 1 ( x ) . . . f m ( x ) ] f(x)=\left[ \begin{matrix} f_1(x)\\ ...\\ f_m(x) \end{matrix} \right] f(x)=⎣⎡f1(x)...fm(x)⎦⎤
那么有
∂ f ∂ x j ( x 0 ) = [ ∂ f 1 ∂ x j ( x 0 ) . . . ∂ f m ∂ x j ( x 0 ) ] \frac{\partial f}{\partial x_j}(x_0)=\left[ \begin{matrix} \frac{\partial f_1}{\partial x_j}(x_0)\\ ...\\ \frac{\partial f_m}{\partial x_j}(x_0) \end{matrix} \right] ∂xj∂f(x0)=⎣⎢⎡∂xj∂f1(x0)...∂xj∂fm(x0)⎦⎥⎤
注意这只是对一个分量的偏导,完整的矩阵 M M M为
[ ∂ f ∂ x 1 ( x 0 ) , . . . , ∂ f ∂ x n ( x 0 ) ] = [ ∂ f 1 ∂ x 1 ( x 0 ) , . . . , ∂ f 1 ∂ x n ( x 0 ) . . . ∂ f m ∂ x 1 ( x 0 ) , . . . , ∂ f m ∂ x n ( x 0 ) ] [\frac{\partial f}{\partial x_1}(x_0),...,\frac{\partial f}{\partial x_n}(x_0)]=\left[ \begin{matrix} \frac{\partial f_1}{\partial x_1}(x_0),...,\frac{\partial f_1}{\partial x_n}(x_0)\\ ...\\ \frac{\partial f_m}{\partial x_1}(x_0),...,\frac{\partial f_m}{\partial x_n}(x_0) \end{matrix} \right] [∂x1∂f(x0),...,∂xn∂f(x0)]=⎣⎡∂x1∂f1(x0),...,∂xn∂f1(x0)...∂x1∂fm(x0),...,∂xn∂fm(x0)⎦⎤
矩阵 M M M称为 f f f在点 x 0 x_0 x0的雅可比矩阵或导数矩阵,记为 D f ( x 0 ) Df(x_0) Df(x0)
考虑 m = 1 m=1 m=1的情形,如果函数 f : R n → R f:R^n→R f:Rn→R可微,那么矩阵简化为一个行向量
[ ∂ f ∂ x 1 ( x ) . . . ∂ f ∂ x n ( x ) ] T \left[ \begin{matrix} \frac{\partial f}{\partial x_1}(x)\\ ...\\ \frac{\partial f}{\partial x_n}(x) \end{matrix} \right] ^T ⎣⎡∂x1∂f(x)...∂xn∂f(x)⎦⎤T
将其再转置一下,就得到我们熟悉的梯度公式了:
∇ f ( x ) = D f ( x ) T = [ ∂ f ∂ x 1 ( x ) . . . ∂ f ∂ x n ( x ) ] \nabla f(x) =Df(x)^T= \left[ \begin{matrix} \frac{\partial f}{\partial x_1}(x)\\ ...\\ \frac{\partial f}{\partial x_n}(x) \end{matrix} \right] ∇f(x)=Df(x)T=⎣⎡∂x1∂f(x)...∂xn∂f(x)⎦⎤
可以看出,梯度是一个由 R n R^n Rn映射到 R n R^n Rn的函数,如果在点 x 0 x_0 x0绘制梯度向量,其起点为点 x 0 x_0 x0,箭头代表方向,也就是说梯度能表示为向量场,类似于下图。
可以证明梯度方向是函数 f f f在点 x 0 x_0 x0处增加最快的方向,反之,负梯度方向是函数值减少最快的方向,这也就是最小化loss的梯度下降法的理论基础。
关于梯度和雅可比矩阵相关推荐
- pytorch自动求梯度—详解
构建深度学习模型的基本流程就是:搭建计算图,求得损失函数,然后计算损失函数对模型参数的导数,再利用梯度下降法等方法来更新参数.搭建计算图的过程,称为"正向传播",这个是需要我们自己 ...
- divgrad怎么求_[怎样理解圆柱坐标系和球坐标系求梯度.散度]球坐标系梯度如何求...
怎样理解圆柱坐标系和球坐标系求梯度.散度.旋度公式 记住公式好办 你先记住哈密顿算子▽ 他表示一个矢量算子(注意): ▽≡i*d/dx+j*d/dy+k*d/dz 运算规则: 一.▽A=(i*d/dx ...
- 简介雅可比矩阵(Jacobian)
雅可比矩阵,有时简称为雅可比矩阵,是一个一阶偏导矩阵(在某些情况下,术语"雅可比矩阵"也指雅可比矩阵的行列式). 注意,在某些约定中,雅可比矩阵是上述矩阵的转置. 其中m=n为方阵 ...
- 60分钟入门深度学习工具PyTorch
「免费学习 60+ 节公开课:投票页面,点击讲师头像」 作者 | Soumith Chintala 中文翻译.注释制作 | 黄海广 配置环境:PyTorch 1.3,python 3.7, 主机:显卡 ...
- 可下载:60分钟入门PyTorch(中文翻译全集)
来源:机器学习初学者本文约9500字,建议阅读20分钟官网教程翻译:60分钟入门PyTorch(全集) 前言 原文翻译自:Deep Learning with PyTorch: A 60 Minute ...
- (翻译)60分钟入门深度学习工具-PyTorch
60分钟入门深度学习工具-PyTorch 作者:Soumith Chintala 原文翻译自: https://pytorch.org/tutorials/beginner/deep_learning ...
- c++2个三维向量求角度差_交叉学科入门指南(2)——线性回归
本文使用 Zhihu On VSCode 创作并发布 由于上一章的内容主要围绕编程实战展开(现在还在整合原稿第一章和附录,敬请期待),也就是说,这一章才是魔鬼数学的开始. 为什么把"线性回归 ...
- 常用机器学习算法汇总比较(完)
机器学习入门系列(2)–如何构建一个完整的机器学习项目,第九篇! 该系列的前八篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试集的构建方法 特征工程之 ...
- opencv Hog学习总结
一.方向梯度 梯度:在向量微积分中,标量场的梯度是一个向量场.标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率.更严格的说,从欧几里得空间Rn到R的函数的梯度是在Rn某一点 ...
最新文章
- python打开网页存图_python 获取网页图片 保存在本地
- ASP.NET MVC 5 - 视图
- SP-45ML光电二极管放大电路设计
- Android TV 悬浮球模拟物理按键
- windows笔记-内存映射文件
- 支付宝变身新宠,钱包族再也“不差钱”
- 文件或目录权限chmod,更改所有者和所属组chown ,umask的使用 ,隐藏权限的使用 lsattr,chattr...
- pg日期转周_postgresql 存储过程函数:时间戳与日期字符串相互转换
- adf开发_了解ADF Faces clientComponent属性
- 1.11 神经网络的权重初始化
- java 同时修改同一个数据_Java 语言中锁的设计与应用
- 小项目,吃货联盟,java初级小项目,源代码
- [6.837]A3:OpenG应用和Phong着色模型
- 手游模拟器征途辅助脚本开发
- rpm 打包及其命令
- 禾赛40M如何成功在rviz中显示点云数据
- Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 't.statis_date'
- 开源博客wordpress,一键搭建属于自己的博客
- 如何卸载360安全客户端
- Python+Vue计算机毕业设计BeatHouse伴奏交易平台z19pu(源码+程序+LW+部署)