【人工智能学习笔记】人工智能里的数学1——概述

news2024/12/26 23:17:02

与软件开发相比,人工智能领域需要大量数学知识。主要涉及微积分、线性代数、概率论和最优化。

本文主要介绍人工智能里用到了哪些数学知识,试图向您提供一个目录式的、导读式的概述。后期计划一一展开讲解。

本文作为我学习人工智能的笔记,主要供自己以后温故知新,在此梳理一遍也算是二次学习。如对您有所帮助,不甚荣幸。若所言有误,十分欢迎指正。如有侵权,请联系作者删除。


    • 微积分

在机器学习中,主要用到了微积分中的微分部分,其作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。

在机器学习中主要涉及到的微积分知识点:

  • 导数和偏导数的定义与计算方法

  • 梯度向量的定义

  • 极值定理,可导函数在极值点处导数或梯度必须为 0

  • 雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到

  • Hessian 矩阵,这是 2 阶导数对多元函数的推广,与函数的极值有密切的联系

  • 凸函数的定义与判断方法

  • 泰勒展开公式

  • 拉格朗日乘数法,用于求解带等式约束的极值问题

其中最核心的是多元函数的泰勒展开公式,据此我们可以推导出机器学习中常用的梯度下降法,牛顿法,拟牛顿法等一系列最优化方法。

泰勒公式:

    • 线性代数

微积分和线性代数,微积分中会用到大量线性代数的知识,线性代数中也会用到微积分的知识。相比之下,线性代数用的更多。

在机器学习的几乎所有地方都有使用,具体用到的知识点有:

  • 向量和它的各种运算,包括加法,减法,数乘,转置,内积

  • 向量和矩阵的范数,L1 范数和 L2 范数

  • 矩阵和它的各种运算,包括加法,减法,乘法,数乘

  • 逆矩阵的定义与性质

  • 行列式的定义与计算方法

  • 二次型的定义

  • 矩阵的正定性

  • 矩阵的特征值与特征向量

  • 矩阵的奇异值分解SVD

  • 线性方程组的数值解法,尤其是共轭梯度法

机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是特征向量,深度学习算法在处理图像时输入的是 2 维的矩阵或者 3 维的张量。

    • 概率论

如果把机器学习所处理的样本数据看作随机变量/向量,我们就可以用概率论的观点对问题进行建模,这代表了机器学习中很大一类方法。

在机器学习里用到的概率论知识点有:

  • 随机事件的概念,概率的定义与计算方法

  • 随机变量与概率分布,尤其是连续型随机变量的概率密度函数和分布函数

  • 条件概率与贝叶斯公式

  • 常用的概率分布,包括正态分布,伯努利二项分布,均匀分布

  • 随机变量的均值与方差,协方差

  • 随机变量的独立性

  • 最大似然估计

    • 最优化

几乎所有机器学习算法归根到底都是在求解最优化问题。求解最优化问题的指导思想是在极值点处函数的导数/梯度必须为 0。因此你必须理解梯度下降法、牛顿法这两种常用的算法,它们的迭代公式都可以从泰勒展开公式中得到。如果能知道坐标下降法、拟牛顿法就更好了。

凸优化是机器学习中经常会提及的一个概念,这是一类特殊的优化问题,它的优化变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的所有局部最优解就是全局最优解,因此求解时不会陷入局部最优解。如果一个问题被证明为是凸

优化问题,基本上已经宣告此问题得到了解决。在机器学习中,线性回归、岭回归、支持向量机、logistic 回归等很多算法求解的都是凸优化问题。

拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为原问题,这两个问题是等价的。通过这一步变换,将带约束条件的问题转换成不带约束条件的问题。通过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原问题转换为对偶问题,如果满足某种条件,原问题和对偶问题是等价的。这种方法的意义在于可以将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。

KKT 条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。

如果你没有学过最优化方法这门课也不用担心,这些方法根据微积分和线性代数的基础知识可以很容易推导出来。如果需要系统的学习这方面的知识,可以阅读《凸优化》,《非线性规划》两本经典教材。

    • 总结

这里整理了人工智能相关算法所涉及到的数学知识点:

图片来自:https://zhuanlan.zhihu.com/p/541807727

由图可以看到,

出现频率最高的是优化方法:拉格朗日乘数法、梯度下降法、牛顿法、凸优化.

其次是概率论知识:随机变量、贝叶斯公式、随机变量独立性、正太分布、最大似然估计

再次是线性代数知识,几乎所有都会涉及到:向量、矩阵、张量、特征值和特征向量。很多算法都会最终变成求解特征值和特征向量问题。

然后是微积分的知识比如链式法则。

除此之外,还会用到微分几何中的流行、测地线、测地距离的概念。支持向量机会用到 Mercer 条件、核函数,涉及到泛函分析和识别函数的范畴。

再比如说人工神经网络的证明,万能逼近定理会用到泛函分析和识别函数的内容,用来证明这样一个函数可以来逼近任何形式的函数。

离散数学的知识比如图论、树在机器学习里面也会用到,但是用的都是比较简单的。

所以只有掌握好微积分、线性代数、概率论还有一些优化的算法,我们就能看懂所有的机器学习算法。像刚才说的一些相对高深的微分几何、泛函分析和识别函数,它们主要用在一些基础理论证明上面,即使看不懂这些证明,也并不影响你理解这些算法的推导、思想和使用。

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

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

相关文章

C++继承(上)

我们知道,面向对象有三大特性:封装,继承,多态。封装前面已经说过,这篇文章主要说说继承。 文章目录1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符2. 基类和派生类对象赋值转换…

vue.js客服系统实时聊天项目开发(十四)点击加载展示历史消息列表

当访客一进去聊天界面以后,需要获取一下历史消息展示到界面,并且需要能分页的原理展示 在顶部有一个加载更多记录的按钮,点击就能按分页获取数据 //展示历史消息记录getHistoryList(){var _thisthis;let pagesize5;this.$axios.get(this.ApiH…

Python | 数据类型之列表

知识目录一、定义和遍历1.1 定义列表1.2 打印和截取列表1.3 遍历列表二、增删改查2.1 更新和删除列表2.3 脚本操作符 * in三、函数和方法3.1 函数3.2 方法列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型…

springboot-rocketmq整合NOT_CONSUME_YET问题处理

一、测试流程1.添加POM<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.1</version></dependency>2.配置属性参数# 默认的消息组 rocketmq.producer.…

微信小程序项目初试总结

微信小程序项目初试总结准备工作注册小程序账号获取AppID下载 微信开发者工具下载 HBuilderX安装 scss/sass 编译HBuilderX 的调试新建项目把项目运行到微信开发者工具使用 Git 管理项目把项目托管到码云模块制作通用tabBar首页分类搜索商品列表商品详情加入购物车购物车页面登…

【手把手教你C#如何使用SqlSugar操作MySQL数据库】三 SqlSugar使用案例

SqlSugar 连接数据库、创建数据表、增删改查用法1.SqlSugar 连接MySQL数据库1.创建数据库2.创建库中的数据表3.数据的插入4.数据的查询5.数据更新6.数据保存7.数据删除2.整体案例脚本代码1.SqlSugar 连接MySQL数据库 1.创建数据库 using SqlSugar; public class DB : Singlet…

Word数据恢复,简单几个方法恢复未保存的Word文档!

日常生活中&#xff0c;我们经常会用到Word文档&#xff0c;里面记录着我们很多重要内容。当遇到电脑死机、没电关机&#xff0c;或者是编辑文档的软件突然崩溃&#xff0c;我们又没有及时保存Word文档里面的数据&#xff0c;这时该怎么办&#xff1f;Word数据恢复&#xff0c;…

[LeetCode]2319. 判断矩阵是否是一个 X 矩阵

如果一个正方形矩阵满足下述 全部 条件&#xff0c;则称之为一个 X 矩阵 &#xff1a; 矩阵对角线上的所有元素都 不是 0矩阵中所有其他元素都是 0 给你一个大小为 n x n 的二维整数数组 grid &#xff0c;表示一个正方形矩阵。如果 grid 是一个 X 矩阵 &#xff0c;返回 true…

VX拜年红包测试用例设计分享

功能测试 1.红包最多可以输入的金额&#xff1b;2.红包一次性可以发送的最大个数3.在输入红包的钱数和个数时只能输入数字4.当余额不足时&#xff0c;红包发送失败5.发送的红包自己是否可以领取6.发送的红包别人是否可以领取7.红包超过 24 小时是否可以领取8.红包超时未领取&a…

刑啊,为什么不刑

前言 你还在为使用浏览器的时候&#xff0c;忘记密码而烦恼吗&#xff1f;今天要分享的不为人知的小技巧&#xff0c;利用前端技术原理来帮助你找回原密码。 在我们使用各种网站登录时&#xff0c;总会勾选上记住密码这一项。 但长时间依赖记住密码&#xff0c;难免有遗忘的情…

CVE-2022-30331-TigerGraph 3.6.0 UDF 功能漏洞分析

TigerGraph UDF 漏洞&#xff1a;详细信息和示例 CVE 参考地址&#xff1a;http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVDCNNVD-202209-215 TigerGraph 图数据库为用户提供了远程上传任意 C 源代码以创建用户定义函数的工具。该代码会自动编译并安装到敏感的系统组件中…

涨薪【20k】的python接口自动化系列文章(一)--什么是接口、接口优势、类型(详解)

简介 经常听别人说接口测试&#xff0c;接口测试自动化&#xff0c;但是你对接口&#xff0c;有多少了解和认识&#xff0c;知道什么是接口吗&#xff1f;它是用来做什么的&#xff0c;测试时候要注意什么&#xff1f;坦白的说&#xff0c;笔者之前也不是很清楚。接下来先看一下…

go 实现抓包 ,盗取浏览器接口信息|反反爬虫

项目地址 https://github.com/kxg3030/shermie-proxy 安装方法 如果有现有的项目可以可安装&#xff1a; go get github.com/kxg3030/shermie-proxy 尝试源码 git clone gitgithub.com:kxg3030/shermie-proxy.git 运行代码 克隆项目下来之后 安装依赖包 go mod tidy 运行程序…

详解注意力机制和Transformer

本文的学习路线&#xff1a; &#x1f4cd; Attention 从生物学的角度引入到计算机视角&#xff0c;介绍了什么是Attention ▶️介绍Encoder-Decoder框架 (目前大部分Attention Model都是依附于该框架实现)▶️ 介绍了Attention模型中的基础概念查询、键和值 ▶️ 通过讲解Nad…

地理坐标系,投影坐标系区别

目录1. 地球的三级逼近1.1 大地水准面1.2 旋转椭球体1.3 参考椭球体2. 地理坐标系&#xff08;大地坐标系&#xff09;2.1 大地基准面2.2 地理坐标系3. 投影坐标系参考1. 地球的三级逼近 1.1 大地水准面 概念 地球的自然状态下其表面并不是连续不断的&#xff0c;高山、悬崖的…

SpringBoot系列 整合MyBatis

数据源 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> yml spring: datasource: type: com.al…

C语言---插入排序(直接插入和希尔)

文章目录前言一、直接插入排序1.简介2.算法思路3.代码实现二、希尔排序1.简介2.算法思路3.代码实现前言 插入排序一般分为两种&#xff0c;一种直接插入排序&#xff0c;另一种则是希尔排序。 一、直接插入排序 1.简介 直接插入排序是一种简单的排序方法&#xff0c;基本操作…

每天一道大厂SQL题【Day02】电商场景TopK统计

每天一道大厂SQL题【Day02】 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典SQL题&#xff0c;以每日1题…

数据包络分析DEA(数学建模)

一、模型背景数据包络分析是线性规划模型的应用之一&#xff0c;常被用来衡量拥有相同目标的运营单位的相对效率。数据包络分析是一种基于线性规划的用于评价同类型组织(或项目&#xff09;工作绩效相对有效性的特殊工具手段。这类组织例如学校、医院、银行的分支机构、超市的各…

Qt QRegExp正则表达式

Qt QRegExp正则表达式 前言一、正则表达式是什么?二、元字符是什么?三、 常用表达式四、 在QT中的用法总结前言 在用写程序的时候,往往会用到正则表达式,不仅仅是Web开发,MFC、GTK+、Qt开发的图形界面也是如此,只要了解其原理,语法也都大相径庭! 一、正则表达式是什么…