首页 > 图书中心 >图书详情
线性代数与数据学习
作者:[美]吉尔伯特·斯特朗(Gilbert Strang)著,余志平、李铁夫、马辉 译
丛书名:电子信息前沿技术丛书
定价:138元
印次:1-4
ISBN:9787302636403
出版日期:2024.06.01
印刷日期:2024.11.01
Gilbert Strang是麻省理工学院数学教授,美国国家科学院院士和美国艺术与科学院院士,在有限元理论、变分法、小波分析及线性代数等领域卓有成就,著有多部经典数学教材,开设多门开放式课程,享有国际盛誉。本书是深度学习的导论,全面介绍机器学习的数学基础,阐述架构神经网络的核心思想,主要内容包括线性代数的重点、大规模矩阵的计算、低秩与压缩传感、特殊矩阵、概率与统计、**化、数据学习等。本书可作为数据科学方向的数学基础课程教材,也可供人工智能、深度学习领域的科研人员和工程技术人员参考。
more >译者序 在现代线性代数的教育中,有两个名字不得不提:计算机程序语言 MATLAB和 MIT的教授 Gilbert Strang(吉尔伯特·斯特朗)。MATLAB的全名是 Matrix Laboratory(矩阵实验室),是世界范围使用最广的线性代数高效计算平台;而斯特朗教授自 1976年出版《线性代数及其应用》(Linear Algebra and its Applications)教科书以来,其著作同样风靡全球,是全球大学课程普遍采用的基础教材。 2012年以来,人工智能、机器学习被卷积神经网络( Convolutional Neuro-Network,CNN)再次掀起研究热潮,进而进入深度机器学习时代,触发了目前的通用人工智能( Artificial General Intelligence,AGI)的大发展。斯特朗教授敏感地觉察到这个新动向,在 2019年就出版了《线性代数与数据学习》(随后多次重印),明确将数据学习与神经网络和线性代数联系在一起,给机器学习打下了坚实的数学基础。 本书中提及的一些概念如低秩矩阵、压缩传感、优化算法中的随机梯度下降法及背向传播等,对理解机器学习的工作原理大有禆益。书中也给出了一些截至 2021年的(包括数据分析优化在内)参考书,供读者深入研究。 在此,我们将本书作为机器学习与通用人工智能的数学基础教材推荐给广大读者。 余志平李铁夫马辉 2024年 4月于清华大学 深度学习与神经网络 线性代数、概率论 /统计学和最优化理论是机器学习的数学支柱,在本书中相关的章节将出现在对神经网络架构的讨论之前。但是我们发现从目标描述开始本书是有益的。我们的目标是构造一个正确分类训练数据的函数,使之可推广到没有遇到过的测试数据。 为了使上面的说法浅显易懂,我们需要了解关于学习函数的更多信息。为本书即将讲述的内容指明方向是我们写这个概述的目的。 函数 F的输入是向量或矩阵,有时是张量(每个训练样本有一个输入 v)。对识别手写数字的问题,每个输入样本则是一幅图像,即一个像素矩阵。我们的目标是将每幅图像分类为 0 . 9的数字。这 10个数字就是学习函数可能的输出。在这个例子中,通过对图像分类,函数 F学习寻找信息。 MNIST数据集包含了 70 000个手写的数字,我们用这个数据集中的一部分数据来训练出一个学习函数。通过对图像中的不同像素指定权重,建立了学习函数。优化的一大问题(计算的核心部分)是选择权重,使得函数可以得到正确的输出: 0、1、2、3、4、5、6、7、8或 9。我们并不要求百分之百正确(深度学习的风险之一是对数据的过拟合)。 然后选择在数据库中未用到的样本,并将该函数用于分类这些测试数据,从而验证这个函数。多年的竞争带来了测试效果的重大改进,现在卷积神经网络的误差可在 1%以下。事实上,正是因为有了 MNIST这些数据集之间的竞争,才会有函数 F结构上的巨大改进。这个结构基于其底层的一个神经网络架构。 线性、非线性学习函数 函数的输入是样本 v,而输出是计算得到的分类 w = F (v)。最简单的学习函数就是线性函数 w = Av。矩阵 A的分量包含了通过学习得到的权重(并不困难就可得到)。这个函数经常会通过学习得到一个偏差向量 b,从而有 F (v)= Av + b。该函数是 “仿射”的。仿射函数可以很快地通过学习得到,但是只用这个函数就太简单了。 更确切地说,具有线性性是一个非常局限的要求。若 MNIST用罗马数字,则(根据线性性的要求) II可能介于 I和 III之间。但是在 I和 XIX之间又会是什么呢?很明显,仿射函数 Av + b并不总是够用。 将输入向量 v的分量取平方就会带来非线性性。这一步有助于将圆与圆内的点区分开,这是线性函数做不到的。然而函数 F的构造转向了具有 S形图像的 S型函数( Sigmoidal)。注意,通过在矩阵 A与 B之间插入这种标准的非线性 S型函数以得到 A(S(Bv)),是巨大的进步。最终,人们发现光滑弯曲的逻辑函数 S能够被非常简单的斜坡函数 ReLU(x)= max(0, x)取代。这些非线性 “激活函数”R的图像在 7.1节中给出。 神经网络与 F (v)的结构 深度学习的学习函数具有的形式为 F (v)= L(R(L(R(··· (Lv)))))。这是仿射函数 Lv = Av + b与作用在向量 Lv中每个分量上的非线性函数 R的复合。矩阵 A和偏差向量 b是学习函数 F中的权重。这些 A和 b必须通过训练数据而学习得到,这样输出 F (v)才会(几乎)完全正确。然后 F就可以应用来自同一总体的新样本。若权重( A和 b)选择恰当,则从隐式的测试数据得到的输出 F (v)应该是准确的。通常,函数 F的层数越多,F (v)的结果也越精确。 可以说,F (x.v)依赖输入 v和权重 x(所有的 A与 b)。第一步的输出 v1 = ReLU(A1v+b1)在神经网络中产生第一个隐藏层。完整的网络始于输入层 v,终结于输出层 w = F (v)。每一步的仿射部分 Lk(vk.1)= Akvk.1 + bk使用了计算得到的权重 Ak和 bk。 所有这些权重是从深度学习的巨大优化中选择得到的: 选择权重 Ak、bk以最小化所有训练样本的总损失。 总损失是各个样本上的单个损失之和。最小二乘的损失函数具有我们熟悉的形式,即 ∥F (v) .真实输出∥2。最小二乘通常不是深度学习中的最佳损失函数。 下面是一幅显示 F (v)结构的神经网络图。输入层包含了训练样本 v = v0。其输出是它们的分类 w = F (v)。对于一个完美的学习, w将是一个 0 . 9的(正确)数字。那些隐藏层增加了神经网络的深度。正是网络的深度使得复合函数 F在深度学习中如此成功。事实上,神经网络中的权重 Aij和 bj的数量通常大于训练样本 v的输入数量。 一个输入 v = 一个输出 w =2 下面是一个前馈全连接网络。对图像而言,卷积神经网络( CNN)通常是合适的,而且权重是被共享的,即矩阵 A的对角元为常数。当架构正确时,深度学习的效果会惊人的完美。 下图所示的神经网络中的每条对角线都代表一个要通过优化学习得到的权重。正方形的边包含偏差向量 b1、b2、b3。其他权重在 A1、A2、A3中。 前言与致谢 我深深地感谢密歇根大学的 Raj Rao Nadakuditi教授。 2017年,Raj在学术休假期间把 EECS 551课程带到了麻省理工学院( MIT)。他每周飞来波士顿讲授课程 18.065。感谢 Raj,学生们学到了一门新课。他主导了课堂计算,布置了课后作业,还取消了考试。 这是针对信号和数据的线性代数,而且是十分活跃的领域。 140名 MIT的学生选修了这门课。 Alan Edelman在课上介绍了功能强大的编程语言 Julia,我解释了 4个基本子空间和奇异值分解。来自密歇根大学的实验室承担了矩阵的秩、 SVD及其应用。我们要求学生具备计算思维。 尽管是第一次开课,但该课程十分成功。只是它没有涉及一个大课题:深度学习。我指的是在神经网络上创建学习函数的令人兴奋之处,其隐藏层和非线性激活函数使其如此强大。系统会根据预先正确分类的数据进行自我训练。权重的优化能发现重要的表征,如字母的形状、图像的边缘、句子的语法及信号的识别细节。这些表征得到了更大的权重,无须过拟合数据和学习所有内容。然后,可通过具有相同的表征来识别类似群体中未见过的测试数据。 能做所有这些事情的算法不断地得以改进。更确切地说,它们正在得到改进。这是计算机科学家、工程师、生物学家、语言学家和数学家,尤其是那些通过优化权重来最大程度地减少错误的优化学家,以及那些相信深度学习可以改善我们的生活的人所做的贡献。 为什么要写这本书呢? 1. 组织数据科学的核心方法和思想。 2. 看看如何用线性代数的语言表达这些想法。 3.最重要的是,展示如何向自己或学生解释和传授这些想法。我当然知道课程大作业要比考试好得多。这样学生可以提出自己的问题,编写自己的程序。那么从现在开始大作业。 线性代数与微积分 读者将会接触本科数学的两个核心科目——线性代数和微积分。对于深度学习,线性代数是最重要的。我们计算 “权重”来挑选训练数据的重要表征,然后将这些权重转化成矩阵。学习函数的形式在后面描述。微积分则向我们展示了移动的方向,以改进当前的权重 xk。 我们需要的是偏导数(而不是积分): 通过从 xk移至 xk+1 = xk . sk.L来减小误差 L(x) 符号 .L代表 L(x)的一阶导数。因为有这个负号,L(x)的图中 xk+1是从 xk下降的。步长 sk(也称为学习速率)决定了移动多远。基本思想是通过在最快下降的方向移动来减小损失函数 L(x)。在最佳权重 x扩下,.L =0。 复杂的是向量 x代表数以千计的权重,所以必须计算 L的数千个偏导数。L本身是一个复杂的函数,它依赖 x的多层结构以及数据。因此,需要链式法则来求 .L。 第 6章的引言将回顾多变量微积分的一些基本结论。 相比之下,线性代数在数据学习的世界中无处不在。这是需要知道的主题。本书的前几章实质上是一门应用线性代数的课程——基本理论及其在计算中的应用。我可以尝试概述这种方法(针对我们需要的概念)与早期的线性代数课程的差异。这些是完全不同的,意味着有很多有用的东西要学习。 基础课程 1.消元法求解 Ax = b 2. 矩阵运算、逆运算和行列式 3. 向量空间和子空间 4. 无关性、维数和矩阵的秩 5.特征值和特征向量如果一门课程主要学习定义,那就不是实用线性代数。更强的课程是将线性代数付诸实践。定义是有目的的,教材也是如此。 高阶课程 1.任意情形下的 Ax = b:(方块方程组,太多方程与太多未知量) 2.将 A分解为 LU、QR、U.V T和 CMR(列乘以行) 3. 四个基本子空间:维数、正交性和好的基 4. 用特征向量与左、右奇异向量来对角化 A 5. 应用:图、卷积、迭代、协方差、投影、滤波器、网络、图像、数据矩阵线性代数已成为机器学习的中心,我们需要跟进。课程 18.065需要一本教材。它始于最初的 2017年班级,第一个版本发布在 2018年班级。 我很高兴将这本书的问世归功于 Ashley C. Fernandes。Ashley收到在波士顿扫描的页面,然后从孟买发回新的章节,从而为更多工作做好准备。这是我们一起合作的第 7本书,我非常感谢他。 两个班的学生们都慷慨地提供了帮助,特别是 William Loucks、Claire Khodadad、Alex LeNail和 Jack Strang。Alex的课程大作业产生了他的在线编码 alexlenail.me/NN-SVG/,可用来绘制神经网络。 Jack在 http://www.teachyourmachine.com上发布的大作业可以通过学习来识别用户手写的数字和字母(这个程序是开放供实验试用的)。而新网站 math.mit.edu/ENNUI旨在帮助简化深度学习函数的构建。 麻省理工学院的教职工给予了慷慨和急需的帮助: Suvrit Sra就随机梯度下降法做了一个精彩的演讲(现在是 18.065课程视频); Alex Postnikov解释了何时矩阵补齐导致秩为 1的矩阵(见 4.8节); T T 奇异向量。奇异值 替换特征值。分解 依然是正确的(这就是 ληA λλ++ ···= uvuv112212 本书的内容 T 学的重要贡献。 TommyPoggio向他的学生演示了深度学习如何推广到新的数据; JonathanHarmonTomMullalyLiangWang、和都对本书做出了贡献。TimBaumannSVD各种想法从四面八方涌来,逐渐完善了这本教科书。请不要错过 关于采用 本书旨在说明数据科学所依赖的数学,即线性代数、最优化、概率和统计。学习函数中的stochasticrandom权重组成矩阵。这些权重通过随机梯度下降法得以优化。随机( 或)是一个表明成功取决于概率而不是确定性的信号。大数定律扩展到大函数定律:若架构设计合理且参数计算正确,则成功的可能性就很高。注意,这不是一本关于计算、编程或软件的书。很多书在这些方面都十分出色。我们最钟AurélienGéron2017Hands-OnMachineLearning爱的书之一是著的(《机器学习手册》年由, O’ReillyTensorFlowKerasMathWorksCaffe发行)。而来自 、、和等的在线帮助都是对数据科线性代数中有各种各样奇妙的矩阵,如对称矩阵、正交矩阵、三角矩阵、带状矩阵、置换矩阵、投影矩阵和循环矩阵。根据我的经验,正定对称矩阵 是最优的。它们具有正特ST征值 与正交特征向量 。它们是简单的秩为 的到这些特征向量的投影 的组合, η1qqqT..。并且若 ,则 是中信息量最大的部分。对S ηηηηηS++ ······= qqqqqq121211122111第章最重要的一步是将这些想法从对称矩阵推广到所有的矩阵。现在需要 与 两组uvT SVDEckart-Young)。随着 的减小,的秩为的部分仍然按重要性顺序排列。关于 的“ λA1AT定理”补充了我们长期以来对对称矩阵的了解:对于秩为的矩阵,分解止于。AAkλuvkk12第章中的想法在第章中变成了算法。对于相当大的矩阵,、和是可计算的。对λuvk于非常大的矩阵,我们需要求助于随机化,对列和行进行采样。对各种各样的大型矩阵,这种34第章重点介绍低秩矩阵,第 章讨论许多重要的例子。我们正在寻找使计算特别快(在34第章中)或特别有用(在第 章中)的属性。傅里叶矩阵是每个常系数(不随位置变化)问FFT题的基础。由于快速傅里叶变换(),这种离散变换是超快的。5第章以尽可能简单的方式解释了我们需要的统计学知识。中心思想始终是均值和方差:平均值与围绕平均值的分布。通常可以通过简单的平移将均值降为零。减少方差(不确定性)是真正要解决的问题。对于随机向量、矩阵和张量,该问题变为更深层次。可以理解为,统计的线6第章介绍了两类最优化问题。首先是线性和二次规划以及博弈论的好问题。对偶性和鞍点是关键概念。深度学习和本书的目标却在其他地方,即规模非常大但其结构尽可能简单的问题。“导数等于零”仍然是最基本的方程。牛顿法用到的二阶导数数量太多,计算也太复杂。(当我们采用一步下降法来减小损失函数时)即使用到了所有的数据通常也是不可能的。这就是我们在随机梯度下降的每个步骤中只选择一小批输入数据的原因。 方法压缩照片的页面。T 于样本协方差矩阵,这部分的方差最大。 方法很有效。 性代数对于机器学习是至关重要的。 大规模学习的成功来自以下这个神奇的结论:当有数千或数百万个变量时,随机化往往会 导致可靠性。 第 7章从神经网络的架构开始。输入层连接到隐藏层,最后连接到输出层。对于训练数据, 输入向量 v是已知的。正确的输出也是已知的(通常 w是 v的正确分类)。我们优化学习函数 F中的权重 x,使得对于几乎每个训练输入 v,F (x, v)都接近 w。 然后将 F应用于测试数据,这些数据来自与训练数据相同的总体。如果 F学到了所需要的 东西(没有过拟合:我们不想用 99次多项式来拟合 100个数据点),测试误差也会很低。该系统 识别图像与语音。它可在不同的语言之间进行翻译。它可能会遵循大型比赛的获胜者 ImageNet 或 AlexNet等的设计。一个神经网络击败了围棋世界冠军。 函数 F经常是分段线性的——权重进入矩阵乘法。每个隐藏层上的每个神经元都有一个非 线性的 “激活函数”。斜坡函数 ReLU(x)= (0与 x的最大值)现在是压倒性的选择。 在设计构成 F (x, v)的网络层方面,存在着一个专业知识不断积累的增长领域。我们从完 全连接的层开始,第 n层上的所有神经元都连接到第 n +1层上的所有神经元。通常, CNN(卷积神经网络)更好——在图像中的所有像素周围重复相同的权重,这是一个非常重要的构造。其他层是不同的。池化层减小了维数。随机丢弃(Dropout)随机地跳过神经元。批归一化重置均值和方差。所有这些步骤创建了一个与训练数据紧密匹配的函数。然后就可以随时使用 F (x, v)。 致谢 最重要的是,我很高兴有机会感谢这些慷慨和鼓舞人心的朋友: 剑桥大学的 Pawan Kumar、Leonard Berrada、Mike Giles和 Nick Trefethen 香港的 Ding-Xuan Zhou和 Yunwen Lei 康奈尔大学的 Alex Townsend和 Heather Wilber 芝加哥大学的 Nati Srebro和 Srinadh Bhojanapalli 加州的 Tammy Kolda、Thomas Strohmer、Trevor Hastie和 Jay Kuo Bill Hager、Mark Embree和 Wotao Yin(在第 3章给予的帮助) Stephen Boyd和 Lieven Vandenberghe(提供了出色的参考书) Alex Strang(绘制了众多漂亮的图及其他) 特别是伯克利的 Ben Recht。 他们的文章、电子邮件、讲座和建议都很棒。 视频讲座: OpenCourseWareocw.mit.edu和 YouTube (Math 18.06、18.065) Introduction to Linear Algebra (5th ed) by Gilbert Strang, Wellesley-Cambridge Press图书网址: math.mit.edu/linearalgebra和 math.mit.edu/learningfromdata
more >