人工智能数学基础02之:梯度推导详细过程_东心十的博客-程序员宅基地

技术标签: 人工智能  数学  梯度  偏导数  全微分  

最近在学习深度学习,其中涉及到参数优化的算法,其中就有梯度下降算法,笔者不想浅尝辄止,认为很有必要了解下相关的数学知识,总结了下有关梯度的相关数学知识。

导数

一张图读懂导数与微分:
  在这里插入图片描述

这是高数中的一张经典图,如果忘记了导数微分的概念,基本看着这张图就能全部想起来。
导数定义如下:
定义:设函数y=f(x)在点x0的某个领域内有定义,如果Δy/Δx在当Δx→0时极限存在,则称函数y=f(x)在x0处可导,这个极限是函数y=f(x)在x0处的导数
  在这里插入图片描述
 反映的是函数y=f(x)在某一点处沿x轴正方向的变化率。再强调一遍,是函数f(x)在x轴上某一点处沿着x轴正方向的变化率(变化趋势)。直观地看,也就是在x轴上某一点处,如果f’(x)>0,说明f(x)的函数值在x点沿x轴正方向是趋于增加的;如果f′(x)<0,说明f(x)的函数值在x点沿x轴正方向是趋于减少的。

这里补充上图中的Δy、dy等符号的意义及关系如下:
 Δx:x的变化量;
 dx:x的变化量Δx趋于0时,则记作微元dx;
 Δy:Δy=f(x0+Δx)-f(x0),是函数的增量;
 dy:dy=f’(x0)dx,是切线的增量;
 当Δx→0时,dy与Δy都是无穷小,dy是Δy的主部,即Δy=dy+o(Δx).

导数与导函数的关系是局部与整体的关系,导数通常是指一点,导函数则是指一个区间上的

微分:

定义:设函数y=f(x)在某个领域内有定义,x0及x0+Δx在这区间内,如果增量

Δy=f(x0+x)−f(x0)
可表示为
Δy=AΔx+o(Δx)
其中A是不依赖Δx的常数,o(Δx)是指Δx趋于0时的高阶无穷小,那么称函数y=f(x)在点x0是可微的,而AΔx叫做函数在点x0相应于自变量增量Δx的微分,记作dy,记作
dy=AΔx

高阶无穷小的定义:如果lim α/β=0,就说β是比α高阶的无穷小,记作β=o(α)

偏导数

    一元函数的变化率是导数,多元函数的自变量有多个,当某个自变量x变化而其它自变量固定时,这时候对变化的自变量x进行求导,就称为多元函数对于x的偏导数。
定义:设函数z=f(x,y)在点(x0,y0)的某一领域内有定义,当y固定于y0,而x在x0处有增量Δx,相应的函数有增量

如果

存在,则称该极限为z=f(x,y)在点(x0,y0)处对x的偏导数

偏导数的几何意义
在这里插入图片描述    在这里插入图片描述
偏导数fx(x0,y0)就是曲面被平面y=y0所截得的曲线在点M0处的切线M0Tx对x轴的斜率
偏导数fy(x0,y0)就是曲面被平面x=x0所截得的曲线在点M0处的切线M0Ty对y轴的斜率

从以上二元函数的偏导数推广到多元函数的偏导数如下所示:

可以看到,偏导数与导数的本质是一致的,都是当自变量的变化量趋于0时,函数值的变化量与自变量变化量比值的极限。直观地说,偏导数也就是函数在某一点上沿某一分量(坐标轴)正方向的的变化率。

全微分:

参考上文微分的定义,与一元函数的情形一样,希望用自变量增量Δx,Δy来线性函数来代替函数的全增量Δz,从而减化计算
定义:设函数z=f(x,y)在点(x,y)的某领域内有定义如果函数在点(x,y)的全增量

可以表示为
其中A,B不依赖于Δx,Δy, ,则称函数z=f(x,y)在点(x,y)处 可微分,而AΔx+BΔy称为函数在点(x,y)的全微分, dz=AΔx+BΔy

可微分与偏导数的关系

基于上述全微分定义成立,存在某一点p′(x+Δx,y+Δy)对于式子Δz=AΔx+BΔy+o(ρ)也成立,当Δy=0时
f(Δx+x,y)−f(x,y)=AΔX+o(|Δx|)

两边除以Δx并且令Δx→0取极限
这式子就是偏导数的定义形式啊,所以这说明了偏导数fx(x,y)存在且等于A,同理也可证fy(x,y)=B,由此推导出以下公式
各偏导数的存在只是全微分存在的必要条件而非充分条件,即由全微分可证各偏导数存在,反之则不行

如果函数的各个偏数在点(x,y)是连续的,则函数可微分

方向导数

导数、偏导数、方向导数定义都是说如果说某条件下极限存在,谨记导数的本质是极限及代表函数的变化率,偏导数反映的是函数沿坐标轴方向的变化率,有所限制。所以引入方向导数表示沿任意一方向的变化率。
定义:设l是xOy平面以P0(x0,y0)为始点的一条射线, 是以射线同方向的单位向量

射线 l的参数方程为
如果函数增量 f(x0+tcosα,y0+tcosβ)−f(x0,y0)与P到P0的距离|PP0|=t的比值,当点P沿着 l趋于P0(即t→0+)时极限存在,则称此极限为函数在点P0沿方向l的方向导数
最右边等式为什么成立见下一部分。

更一般的,对于多元函数在方向l(ΔX0,ΔX1,… ,ΔXn)上的方向导数为

方向导数与全微分的关系

由全微分的定义得到
在这里插入图片描述
设点 在以 为起点、长度为t的射线l(cosα,cosβ)上,则有Δx=tcosα,Δy=tcosβ, ,所以
在这里插入图片描述
上式左侧就是方向导数定义形式,极限存在即方向导数存在,且其值等于右式
由此得到定理,如果函数 f(x,y) 在点 P0(x0,y0) 可微分,那么函数在该点沿任一方向l的方向导数存在
在这里插入图片描述

梯度

在平面上确定某一点可能存在无数个方向导数,我们怎样找到其中一个方向导数来描述函数最大变化率?
定义:在二元函数的情形,设函数f(x,y)在平面区域D内具有一阶连续偏导数,对于每一点P0(x0,y0)∈D,都可以给出一个向量或用坐标表示
其中i, j为x,y轴的方向向量,上述微量称为函数f(x,y)在点P0(x0,y0)的梯度记作

在这里插入图片描述
对于多元函数有: ,再次强调:梯度是一个向量。

由定义看到,梯度的方向是确定的,如果点P的坐标确定,那么梯度也大小也确定
如果函数f(x,y)在点P0(x0,y0)可微分,el=(cosα,cosβ)是方向l的方向向量(方向未确定)
在这里插入图片描述

其中θ为向量grad f(x0,y0)与向量的夹角

这一关系式表明了函数在一点的梯度与函数在这点的方向导数间的关系。特别的由这个关系可知:

(1)当θ=0时,即方向el与梯度grad f(x0,y0)的方向相同时,函数f(x,y)增加最快,函数在这个方向的方向导数达到最大值,由上式容易看出,这个值就是梯度grad f(x0,y0)的模,即
在这里插入图片描述
(2)当θ=π时,即方向el与梯度grad f(x0,y0)的方向相反时,函数f(x,y)减小最快,函数在这个方向的方向导数达到最小值,即
在这里插入图片描述

(3)当θ=π/2时,即方向el与梯度grad f(x0,y0)的方向正交时,函数f(x,y)的变化率为0,即
在这里插入图片描述
所以可以用沿梯度方向的方向导数来描述是函数最大变化率,即梯度方向是函数变化率最大的方向,在梯度定义的时候就已经赋予了它这个特性。

为什么梯度的方向与等高线切线方向垂直

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chekongfu/article/details/85301302

智能推荐

ROS2探索(二)executor_ros2 executor_灰灰h的博客-程序员宅基地

前言在ROS2探索(一)Publisher-Subscriber的内部过程 我们接触了executor这个新东西,发现spin函数其实调用的就是executor的接口,一个executor可以通过add_node来添加多个节点,然后不断循环执行准备好了的AnyExecutable对象。本文围绕ros2源码中的executors示例,学习下多线程executor,进一步分析executor处理subscription的流程。正文打开ros2/examples/rclcpp/executors/下的mu_ros2 executor

VLC组播测试Server及Client使用简介_vlc测试输出地址输出端口-程序员宅基地

VLC是一种开源的媒体播放器,但同时又可以用于组播测试。可以用VLC搭建组播Server,也可以用VLC作客户端接受组播流。一. 使用VLC搭建组播Server1. 选择一个组播视频源添加片源。清除网络URL。点击串流。进入下一步。2. 输出选项设置如果选择“在本地显示”,则在打组播流的同时会在本地播放显示视频。在新目标中选择:UDP(legacy)通过添加进..._vlc测试输出地址输出端口

springboot中使用redis,key序列化问题解决方案-程序员宅基地

因为boot默认的key序列化方案是JdkSerializationRedisSerializer——使用Java自带的序列化机制将对象序列化为一个字符串,你会发现是一串难懂的字符,不利于维护和修改,所有有必要改变默认的序列化方式,下面是我的代码,有效。在启动类中写入:@Bean public RedisTemplate&lt;Object, Object&gt; redisTemplate...

Docker学习〖四〗在阿里云docker中安装rabbitmq_阿里云docker上面安装rabbitmq-程序员宅基地

rabbitmq现在俺们来安装一个消息队列实现的容器rabbitmq阿里云没开端口的得要去安全组规则去添加,可以参照我之前的博客~首先,我们来打开你的阿里云,输入docker search rabbitmq获取到仓库的镜像后拉取他拉取镜像,输入docker pull rabbitmq:3-management出现下图就下载完了这时候我们来看看我们本地镜像仓库,输..._阿里云docker上面安装rabbitmq

Bootstrap响应式网站开发实战 # 第五章习题答案_实战开发,制作网站页面习题-程序员宅基地

一、选择题1.A2.A3.A4.A5.B6.B7.B二、操作题请用多媒体对象实现如图所示效果图<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="..._实战开发,制作网站页面习题

随便推点

图像目标检测概要(一)_图片目标检测的概述-程序员宅基地

1 图像处理分类1.0 图像分类(classification)计算机提取给定图像中物品的特征,输出物品的种类,如向计算机一张含有汽车的图片,计算机可判断出该图中的物品为汽车.1.2 图像分类和定位(classification&amp;amp;amp;amp;localization)在图像分类的基础上,识别图中的物品的位置,即标注出物品在图中的位置,单目标分类和定位.1.3 目标检测(object dete..._图片目标检测的概述

js unit8 ajax,GitHub - najaxjs/najax: jQuery ajax-stye http requests in node_王林楠的博客-程序员宅基地

najaxjQuery ajax-stye http requests in nodejQuery ajax is stupid simple. This project provides a lightweight wrapper for the nodejs http request object that enables jquery ajax style syntax when makin..._ajax和najax

嵌入式linux中使用 DHCP功能描述-程序员宅基地

嵌入式linux中使用DHCP功能描述busybox中udhcpc的默认script脚本地址为#define DEFAULT_SCRIPTCONFIG_UDHCPC_DEFAULT_SCRIPT#define CONFIG_UDHCPC_DEFAULT_SCRIPT "/usr/share/udhcpc/default.script"我想之..._exit if lease is not obtained

seata1.3整合mybatis-plus和nacos-程序员宅基地

官网下载seata1.3Windows或者linu版本,本教程使用的是linux版,1,下载1.3版本的tar.gz文件,网址为: https://github.com/seata/seata/releases[img=https://img-bbs.csdn.net/upload/202011/18/1605682198_421436.jpg][/img]2, 下载源码:[img=https://img-bbs.csdn.net/upload/202011/18/1605682824_578658..

hadoop 2.6.0 安全问题--UserGroupInformation-程序员宅基地

UserGroupInformation可以使用任何你想拥有权限的用户来操作集群。在UserGroupInformation的loginUserFromSubject方法如下,首先系统获到系统用户,然后再判断是否设置环境变量HADOOP_PROXY_USER,或者系统属性HADOOP_PROXY_USER,如果设置那么loginUser就为HADOOP_PROXY_USER,代码如下:@I

[Vue warn]: Error in mounted hook: "ReferenceError: wx is not defined"_"error in created hook: \"referenceerror: wx is no-程序员宅基地

[Vue warn]: Error in mounted hook: “ReferenceError: wx is not defined”问题,在index.html中引用2018-04-05 13:00:59 最新的为1.2了https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115.eslintrc...._"error in created hook: \"referenceerror: wx is not defined"

推荐文章

热门文章

相关标签