机器学习数学基础之高数篇——函数极限和导数(python版)(代码片段)

水龙吟唱 水龙吟唱     2022-12-26     109

关键词:

不知道大家有没有类似的经历,斗志满满地翻开厚厚的机器学习书,很快被一个个公式炸蒙了。

想要学习机器学习算法,却很难看的懂里面的数学公式,实际应用只会调用库里的函数,无法优化算法。

学好机器学习,没有数学知识是不行的。数学知识的积累是一个漫长的过程,罗马也不是一夜建成的。

如果想要入门机器学习,数学基础比较薄弱,想打牢相关数学基础,可以关注笔者,一起学习(数学大佬也可以来扫一眼python代码)~


接下来我们以高数(同济第七版)课后习题为例,使用python语言来求解函数和导数的习题。

这样大家做课后练习的时候,也可以用python验证一下做的对不对。

这里用到两个常见的Python库,sympy和numpy,学习的时候可以参考官方文档。

sympy 是Python语言编写的符号计算库,这里用于处理数学对象的计算称为符号计算。

官方在线文档:https://docs.sympy.org/dev/index.html

numpy是一个Python库,支持大量的多维数组及矩阵运算,提供用于数组快速操作的各种API。

官方在线文档:https://www.numpy.org.cn/reference/

函数极限

我们来看一下高数课本(同济第七版)对函数极限的定义:

当时上课的时候就觉得这段函数定义太反人类了啊,瞬间打击学习高数的兴趣。

为什么函数极限的定义会这么难以理解呢?

这里需要插入数学史的内容了,这个问题要追溯到几百年前…

古希腊的数学家在处理无穷小和极限问题时,使用穷竭法等方法非常的繁琐。

到了牛顿时代,微积分还不成熟,也就是说牛顿当时也没把无穷小和极限的问题弄明白。

后面一个个大牛都试图把相关的漏洞补齐,我们看到的这个ε-δ定义的极限,是由维尔斯特拉斯总结了前面各个大牛的经验,最终提出来的。

所以最终这个定义我们看不懂也正常,这个概念的形成大约经历了几百年,就算拿给当时的牛顿看也是蒙的呢。

不过这个定义,也是公认的非常严谨、接近本质的函数极限定义了。

光说概念太没意思了,学数学嘛,肯定要做题。我们来看几道高数题吧——


函数极限练习题1(高数课后练习1-3第五题 ):

证明:

python版证明:

import sympy
from sympy import oo
import numpy as np
x = sympy.Symbol('x')
f = (x ** 2 - 4)/(x + 2)
sympy.limit(f,x,-2)

输出:-4

函数极限练习题2(高数课后习题1-3第6题):

证明:

python版证明:

import sympy           #导入sympy符号计算库
from sympy import oo   #oo为无穷大符号
import numpy as np
x = sympy.Symbol('x')
f = sympy.sin(x)/sympy.sqrt(x)
sympy.limit(f,x,oo)    #求极限

输出:0

关于limit的用法,我们来查看官方文档:

导数

导数定义:

理解了概念,来做几道导数题吧——

导数练习题一(高数 总习题二 第8题(1)):

求下列导数:

python版求导:

import sympy
from sympy import *
from sympy.abc import x,y
diff(asin(sin(x)))

输出

cos(x)/sqrt(-sin(x)**2 + 1)

python求导数的三种写法

python中求导数主要有三种方法,我们用练习二来演示:

导数练习题二:

求下列导数:

方法一、使用sympy的diff函数。

diff版求导:

import sympy
from sympy import *
from sympy.abc import x,y
diff(5*x**4 + 4*x**3 +2*x**2 + x + 666)

输出:

20*x**3 + 12*x**2 + 4*x + 1
方法二、使用numpy库里的poly1d函数

在官方文档里,查看一下poly1d的用法:

poly1d版求导:

import numpy as np
p = np.poly1d([5,4, 0 ,2 ,1]) #构造多项式,每项是多项式前的系数,幂次由高到低,没有该幂次该项为0
print(np.polyder(p,1)) #求一阶导数
print(p.deriv(1))	   #另一种方法求一阶导数

输出:

    3      2
20 x + 12 x + 2
方法三、使用scipy.misc模块下的derivative函数

在官方文档里,查看一下derivative的用法:

derivative版求导:

import numpy as npfrom scipy.misc 
import derivative
def f(x):    
	return (5*x**4 + 4*x**3 +2*x**2 + x + 666)
print (derivative(f,3,dx=1e-6))  #求x=3时的导数 

输出:

661.0000001501248

高数学习笔记:计算方向导数

文章目录一、方向导数定义(一)二元函数的方向导数(二)三元函数的方向导数二、方向导数计算实例一、方向导数定义在函数定义域的内点,对某一方向求导得到的导数。一般为二元函数和三元函数的方向导数,方向导数可... 查看详情

高数概念

极限连续导数微分导数:连续函数的切线斜率(导数是基于斜率运算的一个极限结果)运动函数可以表瞬时速度一元函数微分不定积分定积分多元函数微分微分方程重积分级数空间解析几何曲线曲面积分 查看详情

2.机器学习相关数学基础

1.高等数学1)函数2)极限3)导数4)极值和最值5)泰勒级数6)梯度7)梯度下降2.线性代数1)基本概念2)行列式3)矩阵4)最小二乘法5)向量的线性相关性3.概率论1)事件2)排列组合3)概率4)贝叶斯定理5)概率分布6)期望和... 查看详情

机器学习中的重点数学知识

深度学习中的数学1、数学是基石,编程为工具2、深度学习基本全是优化问题(数学)微积分知识重点:① 导数:导数法则、常见的函数的导数、② 多元函数的导数:求梯度(偏导数)、二阶导数和hess矩阵l 为什么... 查看详情

机器学习——数学分析

1、求loga(x)中x=1和斜率为1时,a的值(求极限e)2、导数   查看详情

[高数][高昆轮][高等数学上][第一章-函数与极限]03.函数的极限

例题6 习题1-3:2 4 10(记住直接使用) 查看详情

[高数][高昆轮][高等数学上][第一章-函数与极限]05.极限的运算法则

      查看详情

[高数][高昆轮][高等数学上][第一章-函数与极限]02.数列的极限

    例题3 习题1-2:2368 查看详情

2.机器学习相关数学基础

...理一遍,一定要多加重视。通过观看视频,大家对课程的数学基础部分加深印象。建议大家边看边做笔记,记录要点及所在时间点,以便有必要的时候回看。学习笔记也是作业的一部分。 3.作业要求:1)贴上视频学习笔记,... 查看详情

机器学习需要的数学总结

...和积分是特定过程特定形式的极限微积分/高等数学。在机器学习中,微积分主要用到了微分部分,作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。在机器学习里会用到微积分中的 查看详情

[高数][高昆轮][高等数学上][第二章-导数与微分]05.函数的微分

  查看详情

[高数][高昆轮][高等数学上][第二章-导数与微分]04.隐函数及由参数方程所确定的函数的导数

  查看详情

[高数][高昆轮][高等数学上][第二章-导数与微分]02.函数的求导法则

  查看详情

机器学习之微积分与概率论入门1

这两门学科作为机器学习的必备科目!一、微积分1夹逼定理通俗的讲:A≤B≤C当求极限时,存在A=C,则说明B也等于A和C案例1:案例2:2两个重要极限3导数通俗的讲就是曲线的斜率二阶导数是斜率变化快慢的反应,表征曲线的凹凸... 查看详情

《从零开始:机器学习的数学原理和算法实践》关于微积分部分的启发

目录飞矢不动的破解微积分的目的理解导数的两个角度从瞬时速度来理解导数从近似运动来理解导数导数的直观理解直观理解泰勒公式的来龙去脉飞矢不动的破解“每一瞬间箭都是静止的”这句话本身就有问题。“每一瞬间”就... 查看详情

《从零开始:机器学习的数学原理和算法实践》关于微积分部分的启发

目录飞矢不动的破解微积分的目的理解导数的两个角度从瞬时速度来理解导数从近似运动来理解导数导数的直观理解直观理解泰勒公式的来龙去脉飞矢不动的破解“每一瞬间箭都是静止的”这句话本身就有问题。“每一瞬间”就... 查看详情

深度学习都需要学习那些内容?

数学基础如果你能够顺畅地读懂深度学习论文中的数学公式,可以独立地推导新方法,则表明你已经具备了必要的数学基础。掌握数学分析、线性代数、概率论和凸优化四门数学课程包含的数学知识,熟知机器学习的基本理论和... 查看详情

机器学习|数学基础mathematicsformachinelearning系列之矩阵理论(16):向量和矩阵的极限

目录前言往期文章5.1向量和矩阵的极限5.1.1向量序列极限定义5.15.1.2方阵序列极限定义5.2定理5.1.1Cn×nC^n×n 查看详情