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

今天给大家介绍一本人工智能数学原理书籍: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.mfbz.cn/a/128806.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Android】Debug时禁用主线程ANR限制

ANR全称Application Not Response,指主线程超过5s无响应,应用会自动退出 由于这个线程,如果我们给主线程加了断点,就会触发ANR,导致调试时应用退出 这样调试起来会非常麻烦,其实对于Debug应用&#xff0c…

JVM虚拟机-虚拟机性能监控、故障处理工具

1基础故障处理工具 jps(JVM Process Status Tool)是:虚拟机进程状况工具 作用:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进…

人工智能基础——python:Pandas与数据处理

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

CSS基础:你必须要知道的行高属性 line-height

作者:WangMin 格言:努力做好自己喜欢的每一件事 CSDN原创文章 博客地址 👉 WangMin 对于初学CSS的同学来说,会有很多属性相关的疑问,行高属性 line-height一定是其中一个,因为它是CSS中非常重要的一个属性,这个属性改变…

AlphaControls控件TsRadioGroup的使用

通常使用AlphaControls控件中的TsRadioGroup时,往往使用默认值,会造成TsRadioGroup标题被TsRadioGroup的ITEMs占用,严重影响美观: 解决方案,通过对TsRadioGroup的ContentVOffset属性,设置为10。即可立即改善…

【ARFoundation学习笔记】点云与参考点

写在前面的话 本系列笔记旨在记录作者在学习Unity中的AR开发过程中需要记录的问题和知识点。主要目的是为了加深记忆。其中难免出现纰漏,更多详细内容请阅读原文以及官方文档。 汪老师博客 文章目录 点云新建点云 参考点参考点的工作原理何时使用参考点使用参考点…

【高等数学】导数的应用

导数的应用 1、洛必达法则1.1、引例1.2、内容1.3、证明1.4、洛必达的应用总结 1.5、注意 2、泰勒公式2.1、解决的问题2.2、引例2.3、内容2.3.1、带Peano余项的泰勒公式2.3.2、带Lagrange余项的泰勒公式2.3.3、麦克劳林公式2.3.4、几个初等函数的麦克劳林公式 2.4、证明2.5、泰勒…

SpringBoot 监控

概述 SpringBoot自带监控功能Actuator&#xff0c;可以帮助实现对程序内部运行情况监控&#xff0c;比如监控状况、Bean加载情况、配置属性、日志信息等。 使用步骤 导入依赖坐标 <dependency><groupId>org.springframework.boot</groupId><artifactI…

Vuex模块概念

一、核心概念 - module 1.目标 掌握核心概念 module 模块的创建 2.问题 由于使用单一状态树&#xff0c;应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时&#xff0c;store 对象就有可能变得相当臃肿。 这句话的意思是&#xff0c;如果把所有的状态都放在s…

智慧城市建设解决方案分享【完整】

文章目录 第1章 前言第2章 智慧城市建设的背景2.1 智慧城市的发展现状2.2 智慧城市的发展趋势 第3章 智慧城市“十二五”规划要点3.1 国民经济和社会发展“十二五”规划要点3.2 “十二五”信息化发展规划要点 第4章 大数据&#xff1a;智慧城市的智慧引擎4.1 大数据技术—智慧城…

公司如何实现多套环境的自动化测试?

实战练习 分别准备两套测试环境&#xff0c;都对其发起 get 请求&#xff0c;传入参数 name&#xff0c;对应值为 hogwarts&#xff0c;并断言其响应值。 测试环境1&#xff1a;http://httpbin.org/get 测试环境2&#xff1a;https://httpbin.ceshiren.com/get <strong>…

浙大恩特客户资源管理系统任意文件上传漏洞复现

0x01 产品简介 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源&#xff0c;提升销售和市场营销的效果。 0x02 漏洞概述 浙大恩特客户资源管理系统中fileupload.jsp接口处存在文件上传漏洞&#xff0c;未经身份认…

Postman小白安装和注册入门教程

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;安装 访问官网https://www.getpostman.com/downloads/&#xff0c;直接下载安装。 二&#xff09;注册和登录…

基本数据类型小题两道

根据公式计算A地区教师任教年薪&#xff0c;统计键盘输入的字符串中数字个数&#xff0c;按字典序输出。 (笔记模板由python脚本于2023年11月10日 18:05:18创建&#xff0c;本篇笔记适合熟悉python列表、元、字符串等基本数据类型的coder翻阅) 【学习的细节是欢悦的历程】 Pyth…

Hololens开发笔记

1、关闭阴影 2、将相机渲染改为后向。因为默认是Forward&#xff0c;当在场景里面想使用点光源时&#xff0c;运行起来三角面会翻倍&#xff0c;影响软件运行流畅度。 3、第三人称同步相关。开启Host/Sever/Client前&#xff0c;需要将所有挂有NetworkObject/NetworkTransfor…

C语言之文件操作(详解版)

不知不觉我们已经学到C语言的文件操作部分了&#xff0c;这部分内容其实很有意思&#xff0c;因为它可以直接把我们代码中的数据写入硬盘&#xff0c;而不是我们关掉这个程序&#xff0c;代码就没有了&#xff0c;让我们开始学习吧&#xff01; 目录 1.为什么使用文件 2.什么…

7个学习自动化测试小技巧希望能帮助到你

一、编程语言 当我开始担任手动测试人员时&#xff0c;我不喜欢编码。但是&#xff0c;当我逐渐进入自动化领域时&#xff0c;对我来说很清楚&#xff0c;如果没有对编程语言的一些基本了解&#xff0c;就无法编写逻辑自动化测试脚本。 对编程有一点了解&#xff0c;不仅可以…

创建Vue3工程

一、使用Vue-cil创建工程 先全局安装Vue脚手架&#xff1a; npm install -g vue/cli 安装完成后输入如下命令就可以查看到Vue的版本&#xff1a; vue -V 版本尽量在4.5及以上 。 输入如下指定常见Vue项目&#xff1a; vue create 项目名称 注意&#xff1a;项目名中不要有大写…

OpenCV校准棋盘集合

棋盘格可以与相机校准工具一起使用&#xff0c;例如ROS的camera_calibration包。您可以通过单击下面的任何链接免费下载 PDF 格式的各种棋盘&#xff0c;没有水印或广告。此外&#xff0c;还添加了基于 JavaScript 的棋盘生成器&#xff0c;允许您生成自定义尺寸。 提示&#…

Python接口自动化之unittest单元测试

以下主要介绍unittest特性、运行流程及实际案例。 一、单元测试三连问 1、什么是单元测试&#xff1f; 按照阶段来分&#xff0c;一般就是单元测试&#xff0c;集成测试&#xff0c;系统测试&#xff0c;验收测试。单元测试是对单个模块、单个类或者单个函数进行测试。 将…
最新文章