【人工智能里的数学】多元函数的微分学

news2024/12/22 22:16:37

【人工智能里的数学】多元函数的微分学

系列文章目录

【人工智能学习笔记】人工智能里的数学——概述
【人工智能里的数学】一元函数微分学
【人工智能里的数学】线性代数基础
【人工智能里的数学】多元函数微分学

文章目录

文章目录

  • 系列文章目录
  • 文章目录
  • 偏导数
  • 高阶偏导数
  • 梯度
  • 雅可比矩阵
  • Hessian 矩阵
  • 极值判别法则

偏导数

image-20230612211222280

偏导数,可以看作是导数的推广,对于多元函数来说,我们把其它的自变量固定不动,看成是常量,我们对其中的某一个变量求导数的话,那就是偏导数了,偏偏对一个变量求导数!

image-20230612211549540

几何意义上面来说就是在某个方向上对原函数来切一下,再去求导,就是偏导数

image-20230612211758151

有些时候我们也可以更简洁的写

image-20230612212034022

高阶偏导数

有高阶导数的话,同样我们有高阶偏导数,它的情况比高阶导数要复杂一些,因为它的求导变量有多个,比如说

image-20230612212429900

它对 x,y 求高阶偏导数的话,就是先对 x 求偏导,再对 y 求偏导,其实跟一元函数的高阶导数是一样的,依次对每个变量反复求导呗,我们还是以上面的公式为例

image-20230613193151165

对 x 求偏导,然后再对 x 求偏导就等于 2 了

image-20230613193621507

有个重要的结论,就是高阶导数和求导次序无关

image-20230613193700614

梯度

机器学习中的梯度下降法,和牛顿法很多地方都会用到这个概念的

image-20230613193755617

梯度可以看成是一元函数它的导数,对于多元函数的推广

对于多元函数如果它的自变量有 N 个

image-20230613193903607

它的梯度是个向量,是由对 X1 X2 等的偏导数构成的这样一个向量,称之为梯度

梯度我们用倒三角这个符号来表示作用于 f(x)得到这样一个向量,式子里面的 T 表示往往我们把它转置一下,看成是列向量

雅可比矩阵

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

image-20230613194247925

假设有这样一个函数可以把 n 维 x 向量映射为 k 维的向量 y

image-20230613194349461

其中每个 xi 和每个 yi 都相关的,也就是每个 yi 是单独从 xi 映射过来的函数

它的雅可比矩阵就是每个 yi 分别对每个 xi 求偏导,然后构成的矩阵叫做雅可比矩阵

第一行就是 y1 对 X1 X2 到 Xn 求偏导,第二行就是 y2 对 X1 X2 到 Xn 求偏导,第 k 行就是 yk 对 X1 X2 到 Xn 求偏导,

image-20230613194533694

如果 xi 是 n 维向量,y 是 k 个值的结果,那么雅可比矩阵就是 k*n 的矩阵

image-20230613194625113

如果 x1,x2,x3 会映射成为 y1,y2,y1 是 x1,x2,x3 的函数,y2 也是 x1,x2,x3 的函数,那么它的雅可比矩阵是怎么构成的呢?

image-20230613194745681

Hessian 矩阵

它是对于一个多元函数来说的,它就相当于一元函数的二阶导数

怎么定义的呢?有一个 n 元函数,比方说 X1,X2 一直到 Xn

image-20230613194900110

它的 hessian 矩阵是一个 n*n 的矩阵,矩阵里面的元素是什么呢?

它的所有的元素是二阶偏导数构成的,第一个元素是对 X1 求二阶偏导数,第二个元素是对 X1X2 求偏导数,因为咱们前面讲过,多元函数高阶偏导数和顺序无关,所以 hessian 矩阵是对称矩阵

image-20230613195117909

下面这个例子先看一下它的一阶偏导数

image-20230613195157948

然后把 hessian 矩阵求出来

image-20230613195238530

Hessian 矩阵和函数的凹凸性是有密切关系的,如果 hessian 矩阵正定,可以说函数 f(x)是凸函数,如果是负定,它就是凹函数,矩阵正定怎么定义的呢?

极值判别法则

对于一元函数,我们前面讲过,f(x)的一阶导数等于 0 处有极值,当 f(x)的二阶导数大于 0时是极小值,当 f(x)的二阶导数小于 0 时是极大值,可以参考 X 的平方这个函数

多元函数的极值判别法则

首先 f(x)的一阶导数等于 0,这点是驻点的话,那它就可能是极值点,它是极大值还是极小值或者不是极值怎么判定的?

看 hessian 矩阵,在 f(x)的一阶导数等于 0 处,就是驻点处,如果 hessian 矩阵是正定的话,函数在该点有极小值

如果 hessian 矩阵是负定的话,函数在该点有极大值如果 hessian 矩阵不定,还需要看更高阶的导数

对于任意向量 X≠0,都有 image-20230613200017562,那就是正定矩阵,如果是≥的话,那就是半正定矩阵

怎么判断矩阵是正定的呢?就是拿这个式子去证明,

image-20230613200107587

但是这样不太容易,有时候我们会根据几个原则去判断:

矩阵的特征值全部大于 0(矩阵的特征值和特征向量我们会讲到) 矩阵的所有顺序主子式都大于 0(顺序主子式这个我们用的比较少)矩阵合同于单位阵
.(img-2K8dUJuE-1686658156231)]

但是这样不太容易,有时候我们会根据几个原则去判断:

矩阵的特征值全部大于 0(矩阵的特征值和特征向量我们会讲到) 矩阵的所有顺序主子式都大于 0(顺序主子式这个我们用的比较少)矩阵合同于单位阵

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/643321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文笔记--LIMA: Less Is More for Alignment

论文笔记--LIMA: Less Is More for Alignment 1. 文章简介2. 文章概括3 文章重点技术3.1 表面对齐假设(Superfacial Alignment Hypothesis)3.2 对齐数据3.3 训练 4 数值实验5. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:LIMA: Less Is More for Alignm…

FTP协议分析(主动模式和被动模式)

今天本来计划分析下suricata中协议识别和解析的代码的,准备先从ftp协议开始看,不过看了一会儿代码后,还是觉得有必要对ftp协议的细节先熟悉熟悉。 目录 1、FTP环境搭建工具 2、FTP协议介绍 3、FTP文件操作命令列表 4、FTP请求码列表 5、…

硬件测试---相位噪声测试

一:相位噪声的概述 相位噪声是指信号或振荡器在频率上的相位变动或不稳定性。它是相对于理想稳定振荡器的相位偏离或波动的度量。相位噪声的存在意味着信号的相位在时间上会有微小的变化或扰动,这可能对某些应用产生负面影响。 相位噪声通常以相位噪声密…

【电子技术综合设计】数字钟(包含计数模块、12/24进制切换模块以及闹钟模块)

工程文件: https://pan.baidu.com/s/1PnYd2mwMUf0tgxczdcl2MA 提取码: ihrk B站演示: 【电子技术综合设计】数字电子时钟(包含计数模块、12/24进制切换模块以及闹钟模块)_哔哩哔哩_bilibili 一、设计要求 1. 24小时制的时、分…

基于Java汽车在线租赁管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

吴恩达老师《机器学习》课后习题2之逻辑回归(logistic_regression)

逻辑回归-线性可分 用于解决输出标签y为0或1的二元分类问题。判断邮件是否属于垃圾邮件?银行卡交易是否属于诈骗?肿瘤是否为良性?等等。 案例:根据学生的两门学生成绩,建立一个逻辑回归模型,预测该学生是否会被大学录…

一、深度学习引言

文章目录 一、机器学习中的关键组件1. 数据2. 模型3. 目标函数4. 算法 二、各种机器学习问题1. 有监督学习1.1 回归1.2 分类1.3 标记问题1.4 搜索1.5 推荐系统1.6 序列学习 2. 无监督学习3. 与环境互动4. 强化学习 三、深度学习的发展 一、机器学习中的关键组件 1. 数据 数据…

MM32F3273G8P火龙果开发板MindSDK开发教程17 -U8g2库的移植

MM32F3273G8P火龙果开发板MindSDK开发教程17 -U8g2 OLED库的移植 1、U8g2简介 手头正好有一块0.96寸的OLED屏,驱动芯片为ssd1306,心想怎么才能显示更为炫彩的图像。无意间,接触到U8g2图形库,遂决定将其移植到自己的工程中。 U8g…

2023软件测试面试避坑指南

今年2023整体IT行业不景气,大厂小厂裁员不断,因岗位稀缺,匹配性,竞争大,被裁以后面临房贷、车贷等压力,不得不看下银行卡,还能够支撑多久,得赶紧地找下一家,但偏偏事与愿…

深入学习 Mybatis 的四大组件源码

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

JavaScript之ES6高级语法(一)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 ES6高级语法(一) 前言一、垃圾回收机制(Garbage Collection)1.1、引用计数法…

看病排队问题

目录 一、代码 二、功能函数介绍 三、运行截图 一、代码 #define _CRT_SECURE_NO_WARNINGS 1//不用VS删除这一行 #include<stdio.h> #include<stdlib.h> struct LinkQueue {int data;struct LinkQueue* next; };struct Node {LinkQueue* frount;LinkQueue* re…

docker无法启动 -> 缺少libseccomp

systemctl status docker.servicejournalctl -u dockeryum install -y libseccomplibseccomp是一个用于Linux操作系统的安全计算模式&#xff08;seccomp&#xff09;的用户空间库。seccomp是一种Linux内核特性&#xff0c;允许限制进程可以执行的系统调用&#xff0c;以增加应…

C语言中的基本数据类型

C语言中的基本数据类型分别为以下几种 整型、浮点型、字符类型 整型又分为整型int、短整型short、长整型long 浮点型分为单精度浮点型float、双精度浮点型double 1、短整型short 2.整型 3.长整型 短整型、长整型、整形都是表示整形的&#xff0c;并且输出结果也都为10&…

教你如何批量关闭窗口,省时又省力!

哈喽哈喽&#xff0c;大家好&#xff0c;今天我们来分享一个小功能。 在实际的应用场景中&#xff0c;我们可能需要打开多个窗口&#xff0c;在关闭窗口时&#xff0c;逐个关闭窗口可能比较繁琐&#xff0c;而且有些窗口虽然不再显示了&#xff0c;但可能是隐藏的。在这种情况…

Flutter 库:强大的工具及扩展——nb_utils

Flutter 库&#xff1a;强大的工具及扩展——nb_utils 文章目录 Flutter 库&#xff1a;强大的工具及扩展——nb_utils一、概述1、简介2、功能3、官方资料 二、基本使用1、安装2、基本使用第一步&#xff1a;在 main.dart 中初始化第二步&#xff1a;在您的 MaterialApp 或 Cup…

java的字符输入流

字符流的底层也是字节流。字符流字节流字符集。 特点是输入流一次读一个字节&#xff0c;遇到中文时&#xff0c;一次读多个字节&#xff08;读多少个与字符集有关&#xff09;&#xff1b;输出流底层会把数据按照指定的编码方式进行编码&#xff0c;变成字节再写到文件中。 字…

15个提效的设计类AI生成工具推荐

最近越来越多的AI工具如雨后春笋般涌现。我相信很多设计师会开始使用人工智能工具来帮助我们提高工作效率。 本文整理了15种易于使用的设计类AI工具 即时 AI 即时 AI 是通过自然语言描述&#xff0c;快速生成可编辑的 UI 设计稿的设计工具。 输入文字描述后&#xff0c;即可…

C语言:使用函数完成整型数组的打印、元素逆置、初始化

题目&#xff1a; 创建一个整形数组&#xff0c;完成对数组的操作 1. 实现 函数init() -- 初始化数组为全0 2. 实现 函数print() -- 打印数组的每个元素 3. 实现 函数reverse() -- 函数完成数组元素的逆置 要求&#xff1a;自己设计以上函数的参数&#xff0c;返回值。 思路&a…

AB32VG1:SDK_AB53XX_V061(4)蓝牙音频测试笔记

文章目录 1. 淘宝上两种开发板&#xff0c;有一种的蓝牙功能不正常2. 蓝牙音频测试2.1 《config.h》和《Boombox.setting》两个配置以哪个为准2.2 codeblocks更换链接库2.2.1 这样进入build options是错的2.2.2 build options正确打开方式 2.3.编译工程&#xff0c;下载运行2.3…