线性代数与张量?这本开放书籍帮你扫清通往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 语言。

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

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-10-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

干货 | 5年提速500倍,英伟达GPU创纪录突破与技术有哪些?

英伟达 Volta Tensor Core GPU 在深度学习社群取得了哪些巨大突破?这些突破背后有什么核心技术?

1363
来自专栏AI科技大本营的专栏

CCAI 2017 | 机器学习先驱Thomas Dietterich:如何构建强健的人工智能—原因及方式

俄勒冈州立大学教授、AAAI 前主席 Thomas G. Dietterich 文/CSDN周翔 7 月22 - 23 日,由中国人工智能学会、阿里巴巴集团 &...

3757
来自专栏cloudskyme

跟我一起数据挖掘(19)——什么是数据挖掘(2)

什么是数据仓库? 数据仓库是一个面向主题的( Subject Oriented) 、集成的( Integrate) 、相对稳定的(NonVolatile) 、反...

4055
来自专栏极客说

【极客说直播第三期回顾】AI技术专家教你从零到一学习计算机视觉技术

本文整理自腾讯云AI和大数据中心AI技术专家-叶聪于11月27日在极客说上的精彩分享。

9.5K7
来自专栏AI科技评论

智能体的白日梦,谷歌大脑又出来PR文了?

智能体能否在梦中学习?Yes! 白日梦是人类的专属?No! 这是谷歌大脑的又一篇 PR 文章吗?难说~ AI 科技评论按:继前段时间在 arxiv 上贴出《on...

3026
来自专栏PPV课数据科学社区

【推荐】三个你在书中无法学到的数据分析知识

在大数据特别热门的今天,出现了各种培训课程。但我发现这些课程的重点都放在算法的学习上。如何理解logistic回归或深度学习的确很酷,但一旦你开始处理数据,你会...

3274
来自专栏新智元

Facebook 交互式神经网络可视化系统,应对海量数据和复杂模型

【新智元导读】神经网络模型的可视化是解决其黑箱问题的一个解决方案,但用于神经网络可视化的大多数工具集中在图像数据集上,这激发了 Facebook 和 Georg...

3916
来自专栏AI研习社

【AI听】Hinton:反向传播要被彻底放弃了!Unity推出Machine Learning,24分钟训练ImageNet……

主播 | 吴璇 选题 | 徐普 程炜 Heo 本周关键词 反向传播|Machine Learning Agents ImageNet|信息瓶颈 NO/1 Ge...

3837
来自专栏达观数据

技术干货 | 推荐系统中的冷启动问题和探索利用问题

冷启动和探索利用问题是推荐系统技术中的两个关键问题,本文结合达观数据的技术实战,对问题的解决方案进行了梳理和介绍。 1 前言 互联网技术和大数据技术的迅猛发展正...

3545
来自专栏数据科学与人工智能

【学库】用Python做深度学习

若是你对深度学习只有比较浅的认识,想知道深度学习是什么?深度学习的来龙去脉?为什么会出现深度学习这个说法和技术?作者在第一章做了回答。

2072

扫码关注云+社区

领取腾讯云代金券