最近在学习深度学习,其中涉及到参数优化的算法,其中就有梯度下降算法,笔者不想浅尝辄止,认为很有必要了解下相关的数学知识,总结了下有关梯度的相关数学知识。
一张图读懂导数与微分:
这是高数中的一张经典图,如果忘记了导数微分的概念,基本看着这张图就能全部想起来。
导数定义如下:
定义:设函数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在这区间内,如果增量
高阶无穷小的定义:如果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)的全增量
基于上述全微分定义成立,存在某一点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,y)是连续的,则函数可微分
导数、偏导数、方向导数定义都是说如果说某条件下极限存在,谨记导数的本质是极限及代表函数的变化率,偏导数反映的是函数沿坐标轴方向的变化率,有所限制。所以引入方向导数表示沿任意一方向的变化率。
定义:设l是xOy平面以P0(x0,y0)为始点的一条射线, 是以射线同方向的单位向量
更一般的,对于多元函数在方向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,即
所以可以用沿梯度方向的方向导数来描述是函数最大变化率,即梯度方向是函数变化率最大的方向,在梯度定义的时候就已经赋予了它这个特性。
为什么梯度的方向与等高线切线方向垂直
前言在ROS2探索(一)Publisher-Subscriber的内部过程 我们接触了executor这个新东西,发现spin函数其实调用的就是executor的接口,一个executor可以通过add_node来添加多个节点,然后不断循环执行准备好了的AnyExecutable对象。本文围绕ros2源码中的executors示例,学习下多线程executor,进一步分析executor处理subscription的流程。正文打开ros2/examples/rclcpp/executors/下的mu_ros2 executor
VLC是一种开源的媒体播放器,但同时又可以用于组播测试。可以用VLC搭建组播Server,也可以用VLC作客户端接受组播流。一. 使用VLC搭建组播Server1. 选择一个组播视频源添加片源。清除网络URL。点击串流。进入下一步。2. 输出选项设置如果选择“在本地显示”,则在打组播流的同时会在本地播放显示视频。在新目标中选择:UDP(legacy)通过添加进..._vlc测试输出地址输出端口
因为boot默认的key序列化方案是JdkSerializationRedisSerializer——使用Java自带的序列化机制将对象序列化为一个字符串,你会发现是一串难懂的字符,不利于维护和修改,所有有必要改变默认的序列化方式,下面是我的代码,有效。在启动类中写入:@Bean public RedisTemplate<Object, Object> redisTemplate...
rabbitmq现在俺们来安装一个消息队列实现的容器rabbitmq阿里云没开端口的得要去安全组规则去添加,可以参照我之前的博客~首先,我们来打开你的阿里云,输入docker search rabbitmq获取到仓库的镜像后拉取他拉取镜像,输入docker pull rabbitmq:3-management出现下图就下载完了这时候我们来看看我们本地镜像仓库,输..._阿里云docker上面安装rabbitmq
一、选择题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;localization)在图像分类的基础上,识别图中的物品的位置,即标注出物品在图中的位置,单目标分类和定位.1.3 目标检测(object dete..._图片目标检测的概述
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功能描述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.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..
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”问题,在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"