Essential Math for AI:高效的人工智能数学原理晋级读物

news2024/11/23 12:33:18

今天给大家介绍一本人工智能数学原理书籍:Essential Math for AI。作者是Hala Nelson,一位应用数学领域的美女博士,James Madison University (JMU) 大学的助理教授。
关注微信公众号:人工智能大讲堂,后台回复【ema】获取pdf下载链接,此资源仅用于个人学习,禁止商业目的传播。
在这里插入图片描述

刚才提到了应用数学,这里对数学的分支做个简单的介绍。

数学可以分为应用数学理论数学两个主要分支。

当然,随着数学的发展,这两个领域的界限越来越模糊,很多原本属于纯数学领域的学科逐渐被划分到应用数学领域。

理论数学:理论数学是研究数学本身的学科,关注数学的结构、规律和抽象概念,帮助我们深入探索数学的内在美和逻辑。

代数学几何学拓扑学分析学

应用数学:应用数学是运用数学工具和方法解决实际问题的学科,帮助我们理解和解决现实世界中的各种挑战。

工程数学物理学中的数学建模金融数学统计学运筹学计算数学生物数学人工智能概率论数理逻辑数学物理学

人工智能就属于应用数学的领域范畴内,下面我们对这本进行简要分析。

第一章主要介绍了书名所涉及到的两大主题:什么是AI,以及AI所涉及到的数学,包括线性代数,概率与统计,微积分,优化算法,本书后续内容也正是围绕这些主题展开。

第二章讲数据,人工智能的意义是赋予机器推理的能力,而这种能力来自于从数据中学习的经验,数据的好坏至关重要。

用数学的话说,就是构造一个数学模型去拟合数据。

数据可以分为真实数据模拟数据

从一个已知的概率分布中进行采样,得到的就是模拟数据。

从现实世界中采集的数据称为真实数据,例如,传感器,测量设备,调查等等。

通常假设这些数据是从一个未知的概率分布中独立同分布地采样得到的,训练过程就是求解分布的未知参数。

同样,简单的数据,可以用线性模型去拟合,而对于复杂的数据,则需要拟合能力更强的非线性模型。

第三章讲模型,无论是机器学习还是深度学习,主要就是数据,模型,优化算法铁三角。

第二章讲了数据,这一章讲机器学习中的模型。

当1957年发明的感知器后来被证明无法解决异或问题后,人工智能虽步入寒冬,但并未终结,而是转向另一个领域,1967年决策树算法诞生。

这里称传统机器学习算法,是要与深度学习区分开。虽然两者都是以赋予机器智能为终极目的。

虽然都是要解决分类,回归,降维问题,但深度学习模型要远比机器学习模型复杂。

如果使用机器学习模型,你基本上可以知道模型大概是什么样子的,就算是稍微复杂的集成学习模型,基学习器的类型和个数也是人为设定的。

虽然神经网络的层数和每一层的算子也是人为设定的,但其庞大的参数量以及非线性算子的引入,已经让我们没办法想象或者可视化其拟合函数的样子。

常用的机器学习算法有:

线性回归
逻辑回归支持向量机决策树
随机森林聚类
降维贝叶斯分类
集成学习算法

虽然机器学习模型的拟合能力不如深度学习,但复杂度越高也就需要更多的数据来拟合,当数据量不多时,机器学习就是一个不错的选择。

第四章讲优化,优化的目的就是要到使目标函数最小化的模型参数。

神经网络模型复杂,优化过程也相对复杂。

在传统的机器学习算法中,普通的线性回归,逻辑回归,SVM都可以看作是凸优化问题,对于凸优化,局部最优解就是全局最优解,只要找到梯度等于零的点就可以了。

神经网络中非凸目标函数以及激活函数的存在,导致其优化问题常为非凸优化问题。

多个层的堆叠导致整个函数就像是个复杂的复合函数。没办法直接求梯度等于0的点。

既然没办法直接求得解析解,那就一步一步来,所幸,有迭代法的存在,才使得参数求解变得简单。

依据什么来更新参数呢?梯度下降法的思路是沿着梯度的负方向走一小段距离。

复合函数则是通过链式法则来更新每一层的参数。

当模型的复杂度太大,而数据量不足时,可能会出现过拟合现象,为了避免过拟合,要么增加数据量,要么需要对模型进行限制,正则化就是限制模型的好方法。

第五章讲卷积神经网络,卷积神经网络属于计算机视觉领域,也就是赋予机器一双洞察世界的双眼。

同时卷积神经网络也是深度学习的一个分支,此外,还有循环神经网络,前馈神经网络。

其实卷积在1980年就已经应用到边缘检测任务中了,有名的有Sobel,Laplacian,Canny算子。但这些算子的选择和调整需要依赖专家经验。还算不上人工智能。

直到1998年Yann LeCun提出的LeNet,才真正引出了卷积神经网络的概念。

与传统的卷积算子相比,最大的区别就是卷积核的参数不用人算,而是机器自主学习。

从线性代数角度看,卷积可以看作是一种线性变换,那么即使是多个层的累加仍然是线性变换啊!线性变换的能力有限,为什么卷积神经网络还那么复杂呢?这里仍然是激活函数的作用,以及dropout等正则化的作用。

第六章讲奇异值分解,可算来到了线性代数的章节,其实在第二章讲数据时就应该讲向量化。

向量化将机器学习带入线性代数世界。

用向量表示输入输出特征,用矩阵表示模型参数,前向计算就可以表示成向量与矩阵的乘法,反向传播过程对矩阵求导,对向量求导。

矩阵分解就是一个普通矩阵分解为具有良好性质的矩阵,例如,将矩阵分解为对角矩阵,对角矩阵有一个非常好的性质,矩阵的任意次方都等于矩阵对角元素的任意次方。

与奇异值分解相似的是特征值分解,后者只用于方阵,而前者则适用于任何矩阵。

PCA就是通过协方差矩阵特征值分解来实现降维。

第七章讲自然语言处理NLP,与计算机视觉CV一样,都是人工智能重要的技术领域,但与CV处理图像矩阵,与ANN处理特征向量都不同,NLP处理时序序列。

数据格式不同,模型自然也就不同,CV应用CNN,ANN应用前馈神经网络,NLP则使用RNN,但RNN不能解决长程依赖问题,以及串行计算效率低下,导致了后续的各种变体的出现,如LSTM,Transformr等。

显然,Transformer以其出色的自注意力机制以及并行处理能力,已经成为当下处理自然语言最成功的模型。

当然,CNN也可以处理时序序列,但自然语言终究是与图像不同,CNN在捕获上下文的能力也不如Transformer,CNN参数共享机制在CV领域是一种优点,但在NLP则变成一种缺点。

Transformer为当下大模型的出现奠定了基础。

语言模型是给定输入序列,例如,一段中文,输出另一段序列,例如,英文翻译。

从概率的视角看,可以有两种方式。

第一种是判别模型,先说下条件概率。

条件概率是指在给定某个事件或条件发生的情况下,另一个事件发生的概率。条件概率用符号P(Y|X)表示,表示在已知X的条件下,Y发生的概率。

判别模型是一种用于预测或分类任务的模型,它关注的是给定输入变量X的情况下,预测输出变量Y的概率分布。判别模型的目标是学习一个条件概率模型P(Y|X),即在给定输入变量X的情况下,预测输出变量Y的条件概率。

第二种是生成模型,先说下联合概率。

在概率论中,联合概率是指多个随机变量同时取某一组特定取值的概率。假设我们有两个随机变量X和Y,它们的联合概率表示为P(X, Y)。

生成式模型是一种通过学习联合概率分布来生成数据的模型。生成式模型的目标是学习一个概率模型P(X, Y),其中X表示输入变量,Y表示输出变量。通过学习联合概率分布,生成式模型可以在给定输入变量X的情况下,生成相应的输出变量Y。

等九章讲图模型,图用于构建实体之间关系的模型。实体用节点表示,关系用边表示。

马尔科夫链是一种随机过程,其中下一个状态只依赖于当前状态,不依赖更早的状态。它通过状态转移概率矩阵描述状态之间的转移概率。

随机游走表示按照状态转移概率矩阵进行的随机状态转移过程。每次从当前状态,根据概率转移到下一个状态。

若随机游走进行足够长时间后,状态转移将收敛到一个稳定分布,这个分布称为马尔科夫链的稳态分布。它反映了长时间过程中各状态的概率。

但由于马尔科夫性假设的存在,以及固定的概率转移矩阵,导致其无法对动态的系统建模,处理复杂系统的能力受限。

所以图神经网络出现了。

图神经网络提供了更强大的表示学习和建模能力。用于预测边属性和节点属性。

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

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

相关文章

使用反射调用私有内部类方法

使用反射调用私有内部类方法 通过反射机制调用私有内部类方法,反射机制允许在运行时检查和操作类和方法。可以使用反射机制创建内部类的实例,并调用其私有方法 🍓情况一: 注意这里的内部类是私有静态内部类 待测类如下: package jj;import java.lang.reflect.Constru…

MySQL时间类型注意事项

MySQL常见的时间类型有YEAR、DATE、TIME、DATETIME、TIMESTAMP,绝大多数业务都是精确到秒的,所以通常用后两种。并且MySQL5.6以后后两种支持精度到毫秒(最多小数点后6位) DATETIME占8字节,不论要不要毫秒 TIMESTAMP占4…

三大赛题指南发布!2023 冬季波卡黑客松本周末开启 Workshop

2023 年一众黑客松赛事中,为什么我们建议您选择波卡黑客松大赛?或许答案在于——作为开发者极度友好的技术生态,波卡能够从参赛者的立场出发,为大家提供从 0 到 1 实现项目孵化成长的机会。这里聚集了一线技术专家的资源力量&…

【Spring】Spring IOCDI详解

文章目录 1. Spring是什么?2. 认识IOC2.1 传统程序开发1. Main.java2. Car.java3. Framework.java4. Bottom.java5. Tire.java 2.2 分析传统开发2.3 IOC程序开发1. Main.java2. Car.java3. Framework.java4. Bottom.java5. Tire.java 2.4 分析IOC开发2.5 IOC容器优点…

剑指offer(C++)-JZ21:调整数组顺序使奇数位于偶数前面(一)(算法-其他)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个长度为 n 整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数…

外贸SEO外链类型有哪些?外链建设如何做?

外贸SEO外链资源怎么找?海洋建站SEO外链优化方法? 外贸SEO外链在提高网站排名、吸引流量、增加品牌曝光方面发挥着重要作用。海洋建站将探讨外贸SEO外链的不同类型,帮助外贸企业更好地理解如何优化他们的在线营销策略。 外贸SEO外链&#x…

【PostgreSql高阶语法 】1、CASE WHEN THEN END用法

目录 1. 基础描述2. 用法举例2.1 基础使用2.1.1 方式12.1.2 方式 2 2.2 进行分组2.3 分组练习举例 1. 基础描述 目的:在SQL语句中添加判断条件,就要用到CASE WHEN THEN END用法:类似于java里面的switch语句,一组CASE WHEN THEN E…

香港和美国节点服务器的测试IP哪里有?

在选择服务器时,我们通常需要进行一些测试来评估其性能和稳定性。当然,这其中一个重要的测试指标就是服务器的 IP 地址。通过测试 IP 地址,我们可以了解到服务器所在地区以及网络连接质量等信息。作为香港及亚太数据中心领先服务商恒创科技&a…

五种常见的IO模型

目录 一. IO的概述 1.1 什么是IO 1.2 IO的效率问题 1.3 同步IO和异步IO的概念 二. 阻塞式IO 三. 非阻塞式IO 四. 信号驱动式IO 五. IO多路复用 六. 异步IO 七. 总结 一. IO的概述 1.1 什么是IO IO,表示输入输出,即:InPut / OutPut…

苹果15OTG音频转接器方案大卖-无敌成本加兼容性性价比直接拉满

手机拓展坞的组合有何意义?首先是数据存储场景,借助拓展坞扩展出的接口,可以连接U盘、移动硬盘等采用USB接口的设备,实现大文件的快速存储或者流转;其次是图片、视频的读取场景,想要读取相机、无人机SD/TF存…

第十周学习记录

阅读MARS MARS创新点: (1)实例感知。模拟器使用独立的网络分别对前景实例和背景环境进行建模,以便可以单独控制实例的静态(例如大小和外观)和动态(例如轨迹)属性。 (2)模块化。模拟器允许在不同的 NeRF 主干…

python操作链接数据库和Mysql中的事务在python的处理

python操作数据库 pymysql模块: pip install pymysql作用:可以实现使用python程序链接mysql数据库,且可以直接在python中执行sql语句 添加操作 import pymysql #1.创建链接对象c conn pymysql.Connect(host127.0.0.1,#数据库服务器主机地址port3306, #mysql的端口…

Pytest系列之参数化

1.parametrize()实现数据驱动 1.1 方法参数详解 pytest.mark.parametrize(arg_name, arg_value) arg_name:参数名称,用于将参数值传递给测试用例 arg_value:参数值(支持列表、字典列表、元组和字典元组),有n个值,那么测试用例就将执行n次…

node 第十七天 使用rsa非对称加密 实现前后端加密通信 JSEncrypt和node-rsa

什么是非对称加密 加密过程需要两个钥匙, 公钥和私钥 其中公钥用于加密明文, 私钥用于解密公钥加密的密文, 解密只可以用私钥 公钥和私钥是一对一的关系 公钥可以发送给用户, 不用担心泄露 私钥需要保存在服务端, 不能泄露 例如: 战场上,B要给A传递一条消息&#xf…

VC6.0 高亮扩展

输入关键字 "asist vc6.0" 点击网页: https://wws.lanzouj.com/isNmZe9ap2f 几秒后下载成功 在VS2021 安装以下这个扩展 打开vc6.0 代码有高亮了

Python四种常见实现排序方法,干活教程分享~

文章目录 1.冒泡排序2.选择排序3.快速排序4.插入排序关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Python兼职渠道 1.冒泡排序…

软件模拟SPI协议的理解和使用编写W25Q64

SPI软件模拟的时序 SPI协议中,NSS、SCK、MOSI由主机产生,MISO由从机产生,在SCK每个时钟周期MOSI、MISO传输一位数据,数据的输入输出是同时进行的,所以读写数据也可以视作交换数据。所以读写时对数据位的控制都是用同一…

输出自然数-第10届蓝桥杯国赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第7讲。 输出自然数&#x…

CSS3 多媒体查询、网格布局

一、CSS3多媒体查询: CSS3 多媒体查询继承了CSS2多媒体类型的所有思想,取代了查找设备的类型。CSS3根据设置自适应显示。 多媒体查询语法: media not|only mediatype and (expressions) { CSS 代码...; } not: not是用来排除掉某些特定…

一文5个步骤从0到1实现Jmeter分布式压力测试(建议收藏)

之前写过用jmeter做接口测试的文章,本篇我们继续介绍下用jmeter做分布式压力测试的例子。 用jmeter做压力测试,如果只用一台机器,有鉴于线程数的限制和一台机器的性能,可能无法满足压力测试的实际需求,解决这个问题&a…