线性代数与张量?这本开放书籍帮你扫清通往ML的数学绊脚石

2018 年 10 月 28 日 机器之心
线性代数与张量?这本开放书籍帮你扫清通往ML的数学绊脚石

机器之心编辑

参与:思源


数学是机器学习的基础。斯坦福大学教授 Stephen Boyd 联合加州大学洛杉矶分校的 Lieven Vandenberghe 教授出版了一本基础数学书籍,从向量到最小二乘法,分三部分进行讲解并配以辅助资料。此外,这本书也是斯坦福 EE103 课程、UCLA EE133A 课程的教材,由剑桥大学出版社出版(允许网络公开)。


项目地址:https://web.stanford.edu/~boyd/vmls/


这一本书的资料还是比较齐全的,除了本身 473 页的教材,还有另一本 178 页的对应代码讲解。当然如果读者只需要了解数学部分的话,代码部分是不需要了解的。但是如果比较关注线性代数的应用,可能就需要阅读这些基础代码,并顺便学一学 Julia 语言了。最后,这一本书还提供了对应的课程 PPT,读者也可以把它们作为辅助资料。



书籍简介


这本书旨在介绍向量、矩阵和最小二乘方法等应用线性代数的基础内容,它的目标是为只有很少或根本没有线性代数基础的初学者提供入门方法,包括线性代数的基本思想以及在数据科学和机器学习等领域的应用方法。


不过读者还是需要熟悉一般的数学符号,并且在一些地方也会用到微积分,但它们并不起关键作用,因此基本上以前学过高数就差不多了。这本书包含了很多传统概率论与统计学所讨论的话题,例如使用数学模型拟合数据等,但读者不一定需要这一方面的背景知识。


这本书比一般的应用线性代数课本要有更少的数学成分,只会详细介绍基本线性代数、线性独立性等理论概念,以及 QR 因式分解这一计算工具。而这本书讨论的大多数机器学习等方面的应用只会使用一种方法,即最小二乘法及其扩展。在某种意义下,该书更强调的是应用,即依赖于少量基本数学概念和方法,而覆盖大多数应用。但是这本书所呈现的数学是完整的,因为它会仔细证明每一个数学声明。然而,与大多数介绍性的线性代数课本相比,这本书描述了许多实际应用。包括一些通常被认为是高级主题的应用,如文档分类、状态估计和投资组合优化等。


这本书并不需要任何计算机编程的知识,因此可以作为传统的教学课程,我们只需要阅读对应章节并完成一些不涉及数值计算的练习题就行了。然而,这种方法会并不能使我们完全理解这本书,同时也得不到实际锻炼,例如我们可以使用这本书的观点与方法构建一个基于数据的预测模型、增强图像数据或优化投资组合等。随着计算力的不断增长,以及 NumPy 等高效矩阵运算库的发展,这本书中的描述的方法可以轻松地应用到实践中。因此读者还可以使用 Python 等编程语言练习不同的项目而补充学习资源,只有使用真实数据搭建应用才能真切地理解理论思想。本书提供了一些需要数值计算的练习题,且数据文件与编程语言的资源都可在线获得。


这本书主要分为三部分。第一部分介绍了向量及各种向量运算和函数,例如加法、向量内积、距离和角度等。本书还展示了如何使用向量表示文档中的词数、时间序列、目标属性、产品规格、音频数据和图像等。第二部分如同前一部分重点关注矩阵的概念与应用,包括矩阵的求逆和解线性方程等。第三部分介绍了最小二乘法,它不仅展示了如何简单而自然地近似求解一个超定方程组,同时还有一些可应用到很多方法的最小二乘扩展知识。


该书还可用于自学,并辅以在线提供的资料,例如下面这份 470 页的 PPT。


地址:https://web.stanford.edu/~boyd/vmls/vmls-slides.pdf


按照设计,本书的进度会逐渐加快,也就是说第一部分和第二部分有许多细节和简单的例子,第三部分有更多高级的例子和应用。对于只有很少线性代数基础或根本没有的读者而言,课程可以侧重于第一部分和第二部分,并且仅简单了解一些更高级的应用。而熟悉背景知识的读者可以快速过一遍前面两部分,并将重点放在最后的应用部分上。


除了线性代数等数学基础,这本书还介绍了很多机器学习应用,包括比较流行的 K 均值聚类等。而这些机器学习算法主要都介绍了数学表现形式和伪算法,并不涉及具体的代码,读者可另外查看这本书的配套代码实现。这本书提供的了基于 Julia 语言的配套代码!


下面我们将简要介绍聚类这一方面课本内容与对应的 Julia 代码。聚类也就是说将同类的无监督数据聚在一起,它的目标函数可以简单地定义为各样本到对应聚类中心的距离和。如果这个距离和非常大,那么聚类的效果就不好,我们会希望通过最优化算法最小化这个距离。在这本书中,距离可以定义为:



而 K 均值聚类会更形象地利用图像展示聚类效果,下图展示了 K 均值聚类迭代一次的更新过程:



而这一更新过程会有对应的为代码:


除了这些基础内容外,这本书还会展示很多可视化内容以帮助理解理论知识,例如展示了最终聚类结果的图 4.4 和展示了损失函数下降趋势的图 4.5:



当然,K 均值聚类还提供了对应 Julia 实现,如下展示了实现该算法的代码,读者在学习这本书的同时还能顺便学学 Julia 语言。


function kmeans(X, k; maxiters = 100, tol = 1e-5)
    if ndims(X) == 2
        X = [X[:,i] for i in 1:size(X,2)]
    end;
    N = length(X)
    n = length(X[1])
    distances = zeros(N)  
    reps = [zeros(n) for j=1:k]  
    assignment = [ rand(1:kfor i in 1:N ]
    Jprevious = Inf  
    for iter = 1:maxiters
        for j = 1:k
            group = [i for i=1:N if assignment[i] == j]             
            reps[j] = sum(X[group]) / length(group);
        end;
        for i = 1:N
            (distances[i], assignment[i]) = 
                findmin([norm(X[i] - reps[j]) for j = 1:k]) 
        end;
        J = norm(distances)^2 /  N
        println("Iteration ", iter, ": Jclust = ", J, ".")
        if iter > 1 && abs(J - Jprevious) < tol * J  
            return assignment, reps
        end
        Jprevious = J
    end
end


最后,这本书的对应代码和数据都可以在 GitHub 中找到:https://github.com/VMLS-book。



点击「阅读原文」,查看大会官网信息。机器之心读者限时特别优惠折扣码(25% off):P25JH

登录查看更多
17

相关内容

线性代数(Linear Algebra)是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。 - 题图来自「维基百科」。

机器学习使用来自各种数学领域的工具。本文件试图提供一个概括性的数学背景,需要在入门类的机器学习,这是在加州大学伯克利分校被称为CS 189/289A。

https://people.eecs.berkeley.edu/~jrs/189/

我们的假设是读者已经熟悉多变量微积分和线性代数的基本概念(达到UCB数学53/54的水平)。我们强调,本文档不是对必备类的替代。这里介绍的大多数主题涉及的很少;我们打算给出一个概述,并指出感兴趣的读者更全面的理解进一步的细节。

请注意,本文档关注的是机器学习的数学背景,而不是机器学习本身。我们将不讨论特定的机器学习模型或算法,除非可能顺便强调一个数学概念的相关性。

这份文件的早期版本不包括校样。我们已经开始在一些证据中加入一些比较简短并且有助于理解的证据。这些证明不是cs189的必要背景,但可以用来加深读者的理解。

成为VIP会员查看完整内容
0
169

斯坦福大学Stephen Boyd教授与加州大学Lieven Vandenberghe教授合著的应用线性代数导论:向量、矩阵和最小二乘法《Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares》在2018年由剑桥大学出版社发行,开源书包含19章,473页pdf,这本书的目的是提供一个介绍向量,矩阵,最小二乘方法,应用线性代数的基本主题。目标是让学生通俗易懂,入门学习。让学习者了解在包括数据拟合、机器学习和人工智能,断层、导航、图像处理、金融、和自动控制系统的应用。是一本不可多得好教材。​

Stephen P. Boyd是斯坦福大学电子工程Samsung 教授,信息系统实验室电子工程教授,斯坦福大学电子工程系系主任。他在管理科学与工程系和计算机科学系任职,是计算与数学工程研究所的成员。他目前的研究重点是凸优化在控制、信号处理、机器学习和金融方面的应用。 https://web.stanford.edu/~boyd/

Lieven Vandenberghe,美国加州大学洛杉矶分校电子与计算机工程系和数学系教授

这本书的目的是提供一个介绍向量,矩阵,最小二乘方法,应用线性代数的基本主题。我们的目标是让很少或根本没有接触过线性代数的学生快速学习,以及对如何使用它们在许多应用程序中, 包括数据拟合、机器学习和人工智能, 断层、导航、图像处理、金融、和自动控制系统。

读者所需要的背景知识是熟悉基本的数学符号。我们只在少数地方使用微积分,但它并不是一个关键的角色,也不是一个严格的先决条件。虽然这本书涵盖了许多传统上作为概率和统计的一部分来教授的话题,比如如何将数学模型与数据相匹配,但它并不需要概率和统计方面的知识或背景。

这本书涉及的数学比应用线性代数的典型文本还少。我们只使用线性代数中的一个理论概念,线性无关,和一个计算工具,QR分解;我们处理大多数应用程序的方法只依赖于一种方法,即最小二乘(或某种扩展)。从这个意义上说,我们的目标是知识经济:仅用一些基本的数学思想、概念和方法,我们就涵盖了许多应用。然而,我们所提供的数学是完整的,因为我们仔细地证明了每一个数学命题。然而,与大多数介绍性的线性代数文本不同,我们描述了许多应用程序,包括一些通常被认为是高级主题的应用程序,如文档分类、控制、状态估计和组合优化。

这本书分为三部分。第一部分向读者介绍向量,以及各种向量运算和函数,如加法、内积、距离和角度。我们还将描述如何在应用程序中使用向量来表示文档中的字数、时间序列、病人的属性、产品的销售、音轨、图像或投资组合。第二部分对矩阵也做了同样的处理,最终以矩阵的逆和求解线性方程的方法结束。第三部分,关于最小二乘,是回报,至少在应用方面。我们展示了近似求解一组超定方程的简单而自然的思想,以及对这一基本思想的一些扩展,可以用来解决许多实际问题。

成为VIP会员查看完整内容
0
176
小贴士
相关资讯
【资源】机器学习数学全书,1900页PDF下载
全球人工智能
86+阅读 · 2019年10月17日
421页《机器学习数学基础》最新2019版PDF下载
那些值得推荐和收藏的线性代数学习资源
【资源】这本开放书籍帮你扫清通往ML的数学绊脚石
机器学习算法与Python学习
45+阅读 · 2018年10月28日
搞人工智能必备“数学库”
机器学习算法与Python学习
5+阅读 · 2017年11月20日
机器学习实践指南
Linux中国
4+阅读 · 2017年9月28日
相关VIP内容
相关论文
Interpretable machine learning: definitions, methods, and applications
W. James Murdoch,Chandan Singh,Karl Kumbier,Reza Abbasi-Asl,Bin Yu
12+阅读 · 2019年1月14日
Piotr Szymański,Tomasz Kajdanowicz,Nitesh Chawla
3+阅读 · 2019年1月1日
UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction
Leland McInnes,John Healy,James Melville
7+阅读 · 2018年12月6日
Dinghan Shen,Martin Renqiang Min,Yitong Li,Lawrence Carin
6+阅读 · 2018年8月30日
Fuli Luo,Tianyu Liu,Qiaolin Xia,Baobao Chang,Zhifang Sui
4+阅读 · 2018年5月21日
Yuxin Wu,Kaiming He
7+阅读 · 2018年3月22日
Abdulaziz M. Alayba,Vasile Palade,Matthew England,Rahat Iqbal
3+阅读 · 2018年2月28日
Lei Zhang,Shuai Wang,Bing Liu
25+阅读 · 2018年1月24日
Jeon-Hyung Kang,Kristina Lerman,Lise Getoor
3+阅读 · 2013年1月26日
Top