机器学习必会技能 —— 微积分【一文到底】

文章目录

  • 机器学习必会技能 —— 微积分【一文到底】
    • 1 微积分的四类问题
    • 2 深入理解导数的本质
    • 3 深入理解复合函数求导
    • 4 理解多元函数偏导
    • 5 梯度究竟是什么?
    • 6 真正理解微积分
      • 6.1 直观理解
      • 6.2 理解微积分基本定理
    • 7 非常重要的泰勒公式
      • 7.1 泰勒的典型应用
      • 7.2 泰勒公式的由来
      • 7.3 微积分基本定理与泰勒公式的关系

微积分是机器学习背后极其重要且不可或缺的一类数学知识。

绝大多数机器学习算法在训练或者预测时会碰到最优化问题,而最优化问题的解决需要用到微积分中函数极值的求解知识,可以说微积分是机器学习数学大厦的基石

1 微积分的四类问题

  • 求解变速运动中的瞬时速度【微分】
  • 求解曲线上某点处的切线【微分】
  • 求解函数的最大值和最小值【微分】
  • 求解曲线的长度、曲面的面积、物体体积等【积分】

微积分包含众多知识点,其中,研究导数、微分及其应用的部分一般称为微分学,研究不定积分、定积分及其应用的部分一般称为积分学。【统称微积分学】

2 深入理解导数的本质

数学中,函数是描述物体运动与变化的重要工具。

比如说你,你这个人可以被看成一个以时间为自变量、自身状态为因变量的函数,自变量的取值范围是你的寿命,而你就是与时刻对应的无穷多状态的总和。

其实导数的概念并不是凭空产生的,而是基于生产、生活的需要出现的。

导数典型的应用场景就是对瞬时速度的求解

我们应如何求解一辆汽车在某个时刻的速度【注意:用行驶距离 / 行驶时间得到的是汽车的平均速度,不叫瞬时速度】,也就是瞬时速度呢?【牛顿入手了这个问题】

假设我们想求解汽车在时刻t0的瞬时速度,光盯着这个时刻是没有办法求解的【这个很好理解,因此那个时刻是“静止的”,盯着那儿,也就死在那儿了】,因为汽车在某一时刻的位置是确定的,我们需要把时间延伸到时刻t1。

简单进行一个计算:

一个合理的想法:Δt 越小,Δs / Δt 这个平均速度就越接近于时刻t0 的瞬时速度。【这个也好想明白,两个时刻间隔越小,自然就接近于 “那个值”】

我们再仔细推一下

OK,这个值 2t0 也称为函数s = t^2 + 1 在 t = t0 时刻的导数,即函数在该点的导数。

概括的说, 导数描述了自变量的微小变化导致因变量微小变化的关系。

第一次看到结论,相信你和我一样,会觉得不踏实。使用趋于0的时间段的平均速度来定义瞬时速度的想法虽然 符合常理且很好地解决了难题。

这样采取“近似”的做法让人一时难以接受。。当牛顿开创了微分方法后,虽然由于它的实用性,该方法受到了数学家和物理学家的热烈欢迎,但由于逻辑上一些不清晰的地方,该方法也受到了猛烈批评,最著名的就是乔治 • 伯克利主教对牛顿的微分方法的批评。

伯克利主教猛烈批评牛顿的微分方法,他指出:无穷小量如果等于0,那么它不能作为分母被化简【对!】;

无穷小量如果不等于0,那么它无论多小都不能随意省略。

无穷小量既不是0又是0,那它到底是个什么勾八?【就是这样的问题,导致解释不通了 】

这一逻辑上的缺陷直到19世纪才由柯西等数学家弥补起来。【这也是 “极限” 概念的由来】

将瞬时速度定义为平均速度在Δt趋近于0时的极限值。

那么极限这个东西又要怎么 说清楚?这花费了数学家们一个多世纪的时间,并且整个论证过程烦琐复杂,导致我们学起来很困难。

我们都知道,一次函数可以代表匀速运动,一次项系数k正好就是匀速运动的速度。

如果所有的运动都是匀速运动,那么我们的问题就解决了,匀速运动的速度就是瞬时速度。

回到我们之前那个汽车的行驶栗子:

如果我们认可变速运动的速度变化是连续的,进而微小时间段内的速度变化也较小,可以看作近似的匀速运动,那么可以在微小的时间段内使用匀速运动来代替变速运动

那么问题来了。

答案是不会!!!!

先下个结论:f1(Δt) 确实就是最接近真实运动规律 f(Δt) 的近似函数。

【证明】

这里就要分情况讨论了

第三种情况下,两个函数是同一个函数,描述的是同一个匀速运动。

因此,我们可以知道由某点的二次函数的常数项和一次项组成的一次函数描述的是最接近该点真实运动规律的匀速运动,匀速运动的速度可以看成该点的瞬时速度。

看到这里会不会感觉就真的有导数内味了

总结一下:

一般来说,如果函数
y=f(x)y = f(x) y=f(x)

在x = a 点附近可以使用一次函数或者常数 f1(x) 来近似代替,使得它们的误差

∣f(x)−f1(x)∣|f(x) - f1(x)| ∣f(x)−f1(x)∣
是Δx阶无穷小。我们就可以很容易证明 f1(x) 在 x = a 点处是最接近 f(x) 的一次函数或者常数。
f1(x)=f(a)+kΔxf1(x) = f(a) + kΔx f1(x)=f(a)+kΔx

的一次项系数k 就是 y = f(x) 在 x = a点处的导数。

3 深入理解复合函数求导

基本函数的复合方式总结起来主要分为3类:函数相加、函数相乘、函数嵌套。

  • 加法法则

    基本函数相加形成的复合函数导数等于基本函数导数之和。

    举个栗子:

  • 乘法法则

    基本函数相乘形成的复合函数导数等于“前导后不导 加上 后导前不导”

    举个栗子

    这样你对乘法法则会不会有了更清晰的认识。

  • 链式法则

    基本函数嵌套形成的复合函数导数等于“外层导数与内层导数依次相乘”。

    同样举个栗子

    虽然大多数情况下,我们只需要记住最后的结论就行了

4 理解多元函数偏导

其实,多元函数在生活中随处可见,例如矩形的面积
s=xy(x,y分别是矩形的长和宽)s = xy (x,y 分别是矩形的长和宽) s=xy(x,y分别是矩形的长和宽)

这就是个二元函数。

梯形的面积
s=(x+y)z/2(我们以前背的上底+下底乘高除以2)s = (x + y ) z / 2 (我们以前背的上底 + 下底 乘 高 除以 2) s=(x+y)z/2(我们以前背的上底+下底乘高除以2)

从映射的观点来看,一元函数是实数集到实数集的映射,多元函数则是有序数组集合到实数集合的映射。

看一个典型的一元函数。
f(x)=ax2+bx+cf(x) = ax^2 + bx + c f(x)=ax2+bx+c

对这个求导有
f′(x)=2ax+bf'(x) = 2ax + b f′(x)=2ax+b

实际上,式子中的a、b、c也是可以变化的。

所以这个求导过程也是求解
f(x,a,b,c)=ax2+bx+cf(x,a,b,c) = ax^2 + bx + c f(x,a,b,c)=ax2+bx+c

这个函数关于 x 的偏导数。

由此可知,多元函数偏导数的求解方法就是**“各个击破”**,对一个变量求导时,将其他变量暂时看成固定的参数。

我直接板书。

5 梯度究竟是什么?

梯度和导数是密切相关的一对概念,实际上梯度是导数对多元函数的推广它是多元函数对各个自变量求偏导形成的向量

一些典型的微分函数:
d(2x)=2dxd(2x) = 2dx d(2x)=2dx

d(x2)=2xdxd(x^2) = 2xdx d(x2)=2xdx

d(x2y2)=2xy2dx【这个是个偏导】d(x^2y^2) = 2xy^2dx 【这个是个偏导】 d(x2y2)=2xy2dx【这个是个偏导】

梯度实际上就是多变量微分的一般化

比如对下面这个函数
J(θ)=3θ1+4θ2−5θ3−1.2J(θ) = 3θ_1 + 4θ_2 - 5θ_3 - 1.2 J(θ)=3θ1​+4θ2​−5θ3​−1.2

对它求解微分,也就得到了梯度

梯度的本意是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)

一般来说,梯度可以定义为一个函数的全部偏导数构成的向量。梯度在机器学习中有着重要的应用,例如梯度下降算法。【这个必须得会撒】

6 真正理解微积分

微积分基本定理无疑是人类思想最伟大的成就之一。

6.1 直观理解

之前我们说导数的时候,是已知汽车的位移函数来求解某个时刻的瞬时速度。

那么问题就有了,如果已知汽车各个时刻的瞬时速度,能否求出汽车的位移情况甚至位移函数呢?

【答案当然是可以的】

【1】情况1:匀速运动

如果汽车匀速运动,也就是每时每刻的速度都相等,那么汽车位移就应该是速度曲线下方的面积,像下面这样

这个很简单。

【2】情况2:变速运动

所以就有了下面这样的一个情况

如果把它再分细一点,将 0 - 6 秒划分为很多很多很多份

每一段长度为 dt,该段时间的内的(瞬时) 速度为 v(t)

这个图就会变成下面这样

面积之和

∫06v(t)dt\int_0^6v(t)dt ∫06​v(t)dt

上述过程分解得越来越细致,以至于0~6秒被划分成无穷多个时间段,则直方图的面积最终会趋近于整个速度曲线下方的面积,像下面这样

曲线下方的面积就是速度对时间的“积分”,它表示所有的微小量累加起来的结果。

【这就是 积分】

6.2 理解微积分基本定理

有了积分的概念以后,我们就可以进一步思考:积分的数值是多少呢?

一辆汽车从时刻0启动行驶到时刻T,行驶速度函数为
v(t)=t(6−t)v(t) = t(6 - t ) v(t)=t(6−t)

则汽车行驶的位移是多少?

我们首先可以肯定的一个东西是,不同的时刻T对应的速度v(t)和位移s(t)都是不同的。

它一直在变化。

所以现在我们会自然的想到,哪个位移函数对 时间t 求导的结果恰好是上面的速度函数?

这个反推回去很简单,可以算出来位移函数
s(t)=−1/3t3+3t2+c【c是常数】s(t) = -1/3t ^3 + 3t^2 + c 【c是常数】 s(t)=−1/3t3+3t2+c【c是常数】
这个函数求导的结果就是
−t2+6t-t^2 + 6t −t2+6t

即我们上面那个速度函数

于是从时刻0到时刻T的位移就是
s(T)−s(0)=−1/3T3+3T2s(T) - s(0) = -1/3 T^3 + 3T^2 s(T)−s(0)=−1/3T3+3T2

因此,我们可以知道
∫0Tv(t)dt=s(T)−s(0)=−1/3T3+3T2\int_0^Tv(t)dt = s(T) - s(0) = -1/3 T^3 + 3T^2 ∫0T​v(t)dt=s(T)−s(0)=−1/3T3+3T2

看个更一般的情况

某个区间的积分结果为
∫abv(t)dt=s(b)−s(a)\int_a^bv(t)dt = s(b) - s(a) ∫ab​v(t)dt=s(b)−s(a)

其中s(t)是函数v(t)的原函数。区间积分结果就会下面这样

上述结论的一般形式就是微积分基本定理:

如果函数f (x)在区间[a,b]上连续,并且存在原函数F (x),则
∫abf(x)dx=F(b)−F(a)\int_a^bf(x)dx = F(b) - F(a) ∫ab​f(x)dx=F(b)−F(a)

【牛逼!这些知识回想起来了!】

7 非常重要的泰勒公式

实际上,泰勒公式是微分的“巅峰”和精华所在。

一个泰勒公式的典型形式:

其中,Rn(x)是高阶无穷小量。上述公式也称为f (x)在点a处的泰勒级数。

这个东西一下看不懂没关系,我们先知道它的作用,泰勒公式的主要作用是对特别复杂的函数进行化简,具体来说就是通过近似函数来代替原函数,通过使用简单熟悉的多项式去代替复杂的原函数

7.1 泰勒的典型应用

看个问题,
已知9=3,我现在要你求解10的值已知 \sqrt{9} = 3,我现在要你求解 \sqrt{10} 的值 已知9​=3,我现在要你求解10​的值

三三得九,9的算术平方根当然好求解,但是根号10,你会不会第一眼看懵掉

其实如果硬解,它真不是一件容易的事情,但是! 如果我们使用泰勒公式,问题就可以轻松化解。

我们转换一下这个问题
对于一个函数f(x)=x,已知在a=9处,函数值f(a)=3,求点a=9的附近点x=10处的函数值对于一个函数 f(x) = \sqrt{x} , 已知在a = 9 处,函数值 f(a) = 3,求点 a = 9 的附近点 x = 10 处的函数值 对于一个函数f(x)=x​,已知在a=9处,函数值f(a)=3,求点a=9的附近点x=10处的函数值

根据泰勒公式,我们可以得到在点 a = 9 附近的函数展开式:

代入a = 9 化简可得:

观察这个东西,我们会发现 函数

f(x)=xf(x) = \sqrt{x} f(x)=x​

在自变量的给定值a附近可以用无穷个多项式不断展开来近似代替,展开式越多,代替的精度也就越高。

比如:

我们 用一次函数
f(x)=3+1/6(x−9)f(x) = 3 + 1/6(x - 9) f(x)=3+1/6(x−9)

代替,那么一次项系数
f′(a)=f′(9)=1/6f'(a) = f'(9) = 1/6 f′(a)=f′(9)=1/6

这就反映了函数在 x = a = 9 处的变化。

如果用上面那个 一次函数来近似代替原函数 f(x) = √x 的值,那么精度就依赖于Δx = x - a 的大小。

如果|Δx | 足够小,那么使用一次函数来近似代替的效果就还可以,如果 |Δx | 不够小,那就可能导致误差也不够小。

如果想得到精度更高的近似值,就需要考虑使用更高次项的多项式来代替原函数。

代入 x = 10 看看

  • 用一次项近似代替

  • 用二次项近似代替

  • 用三次项近似代替:

次项越高,代替的精度也就越高。

7.2 泰勒公式的由来

泰勒公式被称为微积分的最高峰,在实践中有着大量而广泛的应用,是数学中广泛应用的函数近似工具。

泰勒公式常见的应用场景是在某个点附近用多项式函数去逼近某个复杂的函数,从而通过多项式函数在该点处的数值去获得复杂函数在该点处的近似值。

多项式函数具有很好的性质,如易于计算、求导和积分等,所以如果能够用多项式函数来近似代替一些复杂函数,那样很多问题就好解决了。

7.3 微积分基本定理与泰勒公式的关系

泰勒公式本质上是微积分基本定理连续累加的结果

微积分基本定理采用定积分来展示函数F(x)与它的导数之间的关系

∫abF′(x)dx=F(b)−F(a)\int_a^bF'(x)dx = F(b) - F(a) ∫ab​F′(x)dx=F(b)−F(a)

也就是说,已知F(x)可以求解F'(x)的定积分。

假设a 为定值,且
b−a=h→b=a+hb - a = h → b = a + h b−a=h→b=a+h

则上面的微积分基本定理可以写成:
F(a+h)=F(a)+∫aa+hF′(x)dxF(a + h) = F(a) + \int_a^{a+h}F'(x)dx F(a+h)=F(a)+∫aa+h​F′(x)dx

这样我们就就可以 使用 F’(x) 的定积分和 F(a) 来计算 F(a + h) 的数值

我们继续对定积分进行变量代换
x=a+tx = a + t x=a+t

则有
F(a+h)=F(a)+∫aa+hF′(a+t)dxF(a + h) = F(a) + \int_a^{a+h}F'(a + t)dx F(a+h)=F(a)+∫aa+h​F′(a+t)dx

如果F’(x) 是连续可导函数,

那么

再次迭代:

如此循环迭代,就可以得到泰勒公式。

这说明,泰勒公式本质上是微积分基本定理的多次连用,两者本质上具有统一性。

机器学习必会技能之微积分【一文到底】相关推荐

  1. 云计算开发教程:运维工程师必会技能--sar

    今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:运维工程师必会技能–sar. SAR是系统活动报告(System Activity Report)英文单词的首字母缩写.正如它的名字所表示的那 ...

  2. ap计算机科学AB难吗,解读AP微积分,BC到底比AB难多少?该如何选择?

    原标题:解读AP微积分,BC到底比AB难多少?该如何选择? 解读AP微积分 BC到底比AB难多少? AP微积分是AP考试的热门科目之一,对于理科比较好的同学来说,AP微积分几乎是必考科目. 但对于AP ...

  3. 一篇文章,带你了解 “机器学习工程师” 必备技能图谱

    5月8日,谷歌召开一年一度的Google I/O大会.在现场演示的演示中,Google Assistant表现得自然流畅,电话那头的理发店员工丝毫没有察觉到自己竟然是在和AI对话! 阿里的王坚博士曾在 ...

  4. 【机器学习】24个终极项目提升您的机器学习知识和技能

    https://blog.csdn.net/ChenVast/article/details/81531882 介绍 数据科学项目为您提供了一个有前途的方式来启动您在该领域的职业生涯.您不仅可以通过应 ...

  5. JAVA工程师必学技能,进阶涨薪的推进器!这份实战教程请收下

    Netty 作为互联网中间件的基石,是 JAVA 工程师进阶为高级程序员必备的能力之一.也是目前是互联网中间件领域使用最广泛最核心的网络通信框架. Netty是一个高性能.异步事件驱动的NIO框架,它 ...

  6. 机器学习必知的 10 个 Python 库

    python 是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言.python 在开发人员中流行的原因有很多.然而,最重要的一点是它有大量的库供用户使用. python 的简单性吸引了许 ...

  7. 猪猪的机器学习笔记(一)微积分和概率论

    微积分和概率论 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第一次课在线笔记.本次课以机器学习的观点来看待曾经学过的数学问题,为未来的做机器学习的公式推导做理论基础.主 ...

  8. 机器学习笔记(一)微积分

    微积分 @(Machine Learning)[微积分, 概率论] 1.夹逼定理: 当x∈U(x0,r)x \in U(x_0,r)时,有g(x)≤f(x)≤h(x)g(x)\leq f(x)\leq ...

  9. 技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了

    翻译 | AI科技大本营(rgznai100) 参与 | shawn 过去两年中,我曾经多次折服于机器学习的魅力.但每当我决定尝试新事物时,经常会不得不重新学习某些概念和课程,其实大部分学习就是这样一 ...

最新文章

  1. python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏
  2. python编程有用吗-python儿童编程有必要学吗
  3. BAD APPLE C++控制台程序
  4. 菜鸟教程-HTML 教程学习笔记
  5. 去杠杆高歌猛进,借呗会倒闭吗?
  6. 掌握jQuery插件开发
  7. python 打包exe_python如何封装为exe
  8. html加载swf 进度条,Flash加载外部文件创建进度条3种方法
  9. Zabbix 工作原理
  10. ssis sql_如何在SSIS中使用SQL随机数
  11. cad会提示计算机中缺少,cad2014缺少shx文件该怎么解决?
  12. 单系统 台电x80pro_台电x80 pro (ID:E3E6)安装remix OS系统教程整理
  13. Transforming Cooling Optimization for Green Data Center via Deep Reinforcement Learning 笔记
  14. 北京大学信科计算机学院教学计划,北京大学信息科学的技术学院.ppt
  15. 无忧代理免费ip爬取(端口js加密)
  16. 网站内容收录不稳定/不收录的原因分析
  17. Zend与PHP之间到底是什么关系
  18. Android API19 设置Alarm闹钟
  19. 胡耀文教你:裂变8级、转化率32%、K值7.4的老带新式分销全复盘
  20. 关于Arduino、树莓派和 Pixhawk微处理器对比分析

热门文章

  1. PHP与MySQL连接菜鸟教程_PHP 连接 MySQL 数据库 | w3cschool菜鸟教程
  2. 量化进阶——理工科出身如何转做量化交易(一)
  3. Java-虚拟机原理
  4. 得物App万米高空WiFi拦截记
  5. python 实现的 snmptrap 接收器
  6. 新手提问:求问Spyder如何下载模块
  7. 计算机相关英文缩写解释
  8. CIC滤波器和FPGA实现
  9. 门店数字化转型| 美发店智慧管理系统
  10. snb格式电子书制作教程