• python AIOT教程一1.必备多元函数微分学理论基础


    本篇博客主要给大家介绍一下,在学习python AIOT方向中,必备的数学基础知识。

    一.多元函数

    请添加图片描述
    定义设D为一个非空的n 元有序数组的集合, f 为某一确定的对应规则。

    在这里插入图片描述 若对于每一个有序数组,通过对应规则 f,都有唯一确定的实数 y 与之对应,则称对应规则 f 为定义在 D 上的n 元函数。记为在这里插入图片描述 。 变量 在这里插入图片描述称为自变量;y称为因变量。
    当n=1时,为一元函数,记为y=f(x),x∈D;
    当n=2时,为二元函数,记为z=f(x,y),(x,y)∈D,图象如下图。
    二元及以上的函数统称为多元函数。
    请添加图片描述

    二.偏导数

    请添加图片描述
    偏导数,可以看作是导数的推广,对于多元函数来说,我们把其他的自变量固定不动,看成是常量,我们对其中的某一个变量求导数的话,那就是偏导数了,只对一个变量求导数!请添加图片描述
    几何意义上面来说就是在某个方向上对原函数来切一下,再去求导,就是偏导数。举例说明:
    请添加图片描述
    对变量x求偏导数,其中y是常量
    请添加图片描述
    对变量y求偏导数,其中x是常量
    请添加图片描述

    三.高阶偏导数

    对于多元函数来说,若其一阶偏导数仍是关于每个自变量的函数,并且一阶偏导数对每个自变量的偏导数也存在,则说这个多元函数具有二阶偏导数。以此类推,有三阶偏导数,四阶偏导数等,我们把一阶以上的偏导数称为高阶偏导数。

    如果定义在开集 G 上的函数的一阶偏导数关于某个变量可偏微分,就能作出二阶偏导数。同样能定义n阶偏导数。我们即将一阶以上的偏导数称为高阶偏导数。将这些高阶偏导数记为:
    请添加图片描述
    举例
    请添加图片描述

    四.梯度

    请添加图片描述

    定义:
    设二元函数在这里插入图片描述在平面区域D上具有一阶连续偏导数,则对于每一个点P(x,y)都可定出一个向量在这里插入图片描述 ,该函数就称为函数 在点P(x,y)的梯度,记作gradf(x,y)或在这里插入图片描述,即有:

    gradf(x,y)= =在这里插入图片描述

    其中 在这里插入图片描述称为(二维的)向量微分算子或Nabla算子,在这里插入图片描述

    在这里插入图片描述是方向l上的单位向量,则

    在这里插入图片描述
    在这里插入图片描述

    由于当方向l与梯度方向一致时,有

    在这里插入图片描述

    所以当l与梯度方向一致时,方向导数在这里插入图片描述 有最大值,且最大值为梯度的模,即

    在这里插入图片描述

    因此说,函数在一点沿梯度方向的变化率最大,最大值为该梯度的模。

    通俗一点总结一下:梯度可以看成一元函数的导数,对于多元函数来说就是偏导数而已。
    多元函数的梯度公式:请添加图片描述

    五.雅可比矩阵

    相信很多人没有接触过这个矩阵,其实这个是比较好理解的,雅可比矩阵就是由一阶偏导数构成的矩阵,发明它的目的主要是为了简化求导公式,对多元的复合函数求导,如果我们用雅可比矩阵来计算的话,它会写起来非常简洁,这在人工神经网络反向推导的过程中往往会看到的。

    y=f(x), 其中 x 是 n 维向量表示有 n 个未知数即 n 个自变量,y是k维的向量表示函数对应关系计算返回k个因变量。这句话理解不了不要紧,静下心来,我们继续往后看。

    Yi = f(Xi) ,其中每个Xi 和每个 Yi 都是相关的,也就是每个 Yi 是单独从 Xi 映射过来的函数。

    那么函数f(X)的雅可比矩阵就是每个Yi 分别对每个 Xi 求偏导,然后构成的矩阵就叫雅可比矩阵:
    在这里插入图片描述

    可能看到这里还是有点迷惑,不知道怎么用这个玩意,我们举几个例子,然后再回过头看,就会有不一样的理解。

    示例一
    在这里插入图片描述
    示例二
    在这里插入图片描述
    示例三
    在这里插入图片描述
    相信大家对雅可比矩阵有了一个全面的认识。

    六.Hessian矩阵

    Hessian矩阵类似于雅可比矩阵,Hessian矩阵是对于一个多元函数来说的,它就相当于一元函数的二阶导数。
    有一个关于x 的n元 函数,自变量为 x 1 , x 2 , x 3   , . . . , x n , {x}_{1},{x}_{2},{x}_{3\, ,...},{x}_{n}, x1,x2,x3,...,xn,那么Hessian矩阵为:
    在这里插入图片描述
    举个例子:
    在这里插入图片描述
    从上面例子我们引出来一个问题:什么是正定呢?矩阵的正定是如何判断呢?

    答案就在下一个知识点极值判别法则

    七.极值判别法则

    7.1、极值判定条件
    对于一元函数,f(x) = x2的一阶导数等于0处有极值,当f(x)的二阶导数大于0时是极小值,当f(x)的二阶导数小于0时是极大值,可以参考f(x) = x2这个函数,其二阶导数为2,大于0,那么该函数是凸函数。
    在这里插入图片描述
    对于多元函数 ,首先f(x)的一阶导数等于0,这点是驻点,那它就可能是极值点,它是极大值还是极小值或者不是极值怎么判定呢?

    看Hessian矩阵,在f(x)的一阶导数等于0处,就是驻点处。

    1. 如果Hessian矩阵是正定的话,函数在该点有极小值
    2. 如果Hessian矩阵是负定的话,函数在该点有极大值
    3. 如果Hessian矩阵不定,函数在该点不是极值。

    那么怎么判断Hessian矩阵正负定呢?

    7.2、实对称矩阵的正负定判断
    实对称矩阵A正定负定判断条件:
    在这里插入图片描述
    我们用代码演示一下:
    实对称矩阵A负定,代码如下:

    import numpy as np
    A = np.array([[-2,-3,-1],
    			 [-3,-6,-4],
    			 [-1,-4,-5]])
    v = np.array([3,5,6])
    print('给定向量任意向量v',v)
    print('求解矩阵A正定判定条件结果是:'v.dot(A).dot(v))
    '''
    给定向量任意向量v:[3,5,6]
    求解矩阵A正定判定条件结果是: -714
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    但是这样不太容易判断,我们还可以根据特征值正负去判断矩阵正定与否:

    1. 矩阵A的特征值全部大于0,那么矩阵A为正定矩阵;
    2. 矩阵A的特征值全部小于0,那么矩阵A为负定矩阵;

    实对称矩阵A负定,特征值代码如下:

    import numpy as np
    A = np.array([[-2,-3,-1],
    			 [-3,-6,-4],
    			 [-1,-4,-5]])
    w,v = np.linalg.eig(A)
    print('矩阵A的特征值特征向量是:')
    print(w,v)
    '''
    矩阵A的特征值特征向量是:
     [-10.54287655  -0.03922866  -2.41789479]  特征值全部为负数
    
     [[ 0.32798528  0.73697623 -0.59100905]
     [ 0.73697623 -0.59100905 -0.32798528]
     [ 0.59100905  0.32798528  0.73697623]]
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    那存在不存在特征向量有大与0的,也有小于0的呢? 肯定是存在的,我们称它为不定。那存在不存在特征向量大于等于0的,或者小于等于0的呢? 肯定也是存在的,它们我们称为半正定,或者半负定。

    什么是半正定,什么是半负定呢?留个疑问,我们学完下面的二次型就明白啦。

    八.二次型

    8.1、二次型定义
    二次型(quadratic form):n个变量的二次多项式称为二次型,即在一个多项式中,未知数的个数为任意多个,但每一项的次数都为2的多项式。

    二次型就是纯二次项构成的一个函数。

    因为二次函数(方程)的二次部分最重要,为了发表研究,我们把含有n个变量的二次齐次函数:
    在这里插入图片描述
    称为二次型。

    8.2、二次型表示

    我们可以通过矩阵来进行表示
    在这里插入图片描述
    二次型通俗表现形式:
    在这里插入图片描述
    二次型矩阵表示:
    在这里插入图片描述
    这里我们可以发现与我们之前说的Hessian矩阵的判定正负有点相似。

    n个变量的二次齐次函数矩阵表示:
    在这里插入图片描述
    在这里插入图片描述
    8.3、二次型应用
    在机器学习中,我们可以根据数据分布进行模型选择:

    ●如果数据分布是一次型的,那我们就可以选择Logistic Regression、SVM 等分界面为-次型的模型;

    ●如果据分布是二次型的,我们可以选择naive bayes;

    ●如果数据分布既不是一次型也不是二次型,那我们可以选择基于决策树的模型,例如GBDT、随机森林等,或者DNN (深度神经网络), 这些模型都高度非线性,表达能力极强理论上可以拟合任意曲线。

    8.4、Hessian矩阵与二次型
    请添加图片描述
    将Hessian矩阵A转换为二次型:
    在这里插入图片描述
    这个就是我们上一节留的疑问,半正定,半负定矩阵。

    正定效果图,如下所示:
    在这里插入图片描述
    如上图所示,正定有极小值,相反负定有极大值。

    半正定效果图,如下所示:

    在这里插入图片描述
    不定效果图,如下所示:
    在这里插入图片描述
    我们可以看到,不定没有最大值也没有最小值。

    以上仅供理解,大概理解正定,负定,半正定,半负定,不定就可以了。

    以上就是机器学习必备的多元函数微分学理论基础的知识点。
    bye,bye!

    python AIOT教程目录:
    1.AIOT介绍
    2.python AIOT 必备多元函数微分学理论基础

    持续更新中。。。,本人马上就要考研了,可能更新有些慢,敬请理解。

  • 相关阅读:
    ③单细胞学习-pbmc的Seurat 流程
    android 动态获取权限2, 便利 文件夹里的文件
    基于 Node.js 的文件管理系统(附源码)
    3.4向量范数与矩阵范数&3.5线性方程组的迭代解法
    基于Springboot实现商品进销存管理系统
    GCN-图卷积模型理解
    【1++的Linux】之进程(五)
    Day768.大佬推荐的经典的Redis学习资料 -Redis 核心技术与实战
    OpenSea PHP开发包
    TiFlash 源码阅读(六)DeltaTree Index 的设计和实现分析
  • 原文地址:https://blog.csdn.net/m0_51951121/article/details/126319744