转载机器之心
机器之心编辑部花了七年时间填坑,《机器学习数学》的书稿终于和读者们见面了。说到《Python 机器学习》,AI 领域的研究者都不会感到陌生。这本书可以说是近十年来最畅销的机器学习书籍之一,也是其作者 Sebastian Raschka 最具代表性的作品。
Sebastian Raschka《Python 机器学习》在 2015 年出版,一举成为 Packt 和亚马逊网站上的畅销书,在 2016 年获得 ACM 最佳计算奖,并被翻译成多种语言出版。书籍的第二版和第三版也分别于 2017 年和 2019 年面世,根据读者的反馈和机器学习领域的进展,作者不断对书中内容进行更新。
这本书接连再版的几年里,Sebastian Raschka 也完成了人生的几件大事:2017 年在密歇根州立大学获得博士学位,2018 年夏天加入威斯康星大学麦迪逊分校,担任统计学助理教授。在此期间,他始终坚持写作,其中就包括关于「机器学习数学」的一些内容:《Python 机器学习》这本书的许多读者与我联系,向我咨询有关补习数学知识的资源。鉴于许多人没有时间或动力花数年时间来学习传统的数学教科书或课程,我想也许可以把一些资源拿出来,让机器学习从业者尽快掌握基础知识。
因此,早在 2015 年,我就开始撰写《机器学习数学》一书,并在 LeanPub 上做了简短的分享。然而在写这本书时,我很快意识到,由于优先事项的转变,自己很可能无法在可预见的未来完成这本书。然而,在将已经写好或起草好的内容藏起来之前,我认为以某种形式进行分享可能是有帮助的。虽然挖了坑之后很多年没填,但现在 Sebastian Raschka 已经将这些书稿公布出来,以 PDF 的形式开放下载。
资源地址:https://sebastianraschka.com/resources/math-for-ml/
书稿内容
事实上,这些有关于数学主题的内容,是以书籍《人工神经网络和深度学习简介:Python 应用实用指南》的附录形式公布的。
书稿总共分为五个部分:
Sebastian Raschka 表示,目前附录 C 和附录 E 的内容还在整理中,访问链接尚未公布,读者需要稍加等待。
附录 A 对常用的数学符号进行了简要概述,详细地描述了大多数符号对应的概念。
附录 B 中对与机器学习算法背后的数学相关的基本代数概念进行了回顾。代数是数学的一个分支领域,它使用数字和字母(或符号)来描述关系。代数经常被用来解决至少有一个量是未知的或可能变化的问题(通常称之为变量)。简单地说,我们可以把代数看作是一种结合了字母、符号和数字的语言,用来概括算术运算和解决带有变量的方程式。 作者提示,虽然本附录的目的是让读者了解代数基础知识,但它并非一个全面的代数资源。如果你想更深入地学习代数,可以参考更全面的资源,比如 Tyler Wallace 的《初级和中级代数》。
附录 D 集中讨论了与机器和深度学习最相关的微积分子领域:微分学。简单来说,微分学的重点是瞬时变化率或计算线性函数的斜率。这部分内容回顾了计算带有一个或多个参数的函数的导数的基本概念。此外还包括复习链式规则的概念,在机器学习中,它常被用来计算复合函数的导数的规则。 对于《人工神经网络和深度学习简介:Python 应用实用指南》这本书,Sebastian Raschka 的定位是「继续《Python 机器学习》中断的地方,并在 TensorFlow 中实现深度学习算法」。
Sebastian Raschka 同样分享了写作这本书时的幕后故事,解释了「优先事项的转变」以及最终未出版《机器学习数学》的原因:最初,我倾向于写更多关于「数学」部分的文章,这对于几乎所有非数学专业的人来说都是一个真正的障碍。一开始我认为写一本关于「机器学习数学」的书是一件很酷的事情。现在,我有大约 15 章关于预微积分、微积分、线性代数、统计学和概率论的笔记。但是,我最终得出结论,已经有太多其他数学书籍了,其中的大多数比我撰写的 500 页内容介绍得更好、更全面、更准确。毕竟,我认为学习和理解一门学科的真正动机首先来自于对它的兴趣。因此,与其写这个「前传」,不如让我写一些基于我在《Python 机器学习》后续章节中介绍的概念的东西 —— 深度学习算法。在我们从头开始编写多层感知器(某种前馈人工神经网络)之后,我们简要了解了一些用于实现深度学习算法的 Python 库,并在概念层面上介绍了卷积神经网络和递归神经网络。在本书中,我想从头开始实现深度神经网络和深度学习算法,整个过程中使用 Python、NumPy 和 SciPy。除了普通的 Python 堆栈之外,还将在 TensorFlow 中实现这些算法。感兴趣的读者,也可以关注下《人工神经网络和深度学习简介:Python 应用实用指南》这本书。