NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

如何更好地阅读包含很多数学相关内容的机器学习论文?

  • 2017-08-17
  • 本文字数:2520 字

    阅读完需:约 8 分钟

有些机器学习论文里包含了大量的数学公式、理论和证明。通常,阅读这类论文要比阅读普通的深度学习论文花上更多的时间。对机器学习论文读者而言,需要什么样的数学背景?有哪些书有助于理解机器学习论文?可以阅读哪些书籍来提高阅读这类论文的能力呢?

最近 reddit 上的网友们针对以上问题展开了热烈的讨论,我们将讨论贴中的观点整理和总结如下。

对包含了大量数学公式的机器学习论文,有两种理解。

第一种是,一篇文章中有大量的公式、代数理论和复杂的公式计算。

一般而言,阅读论文都不会只读一遍。可以先浏览标题,然后决定是否要阅读摘要,再决定是否直接跳到结果部分。

阅读有着大量代数理论的论文的秘诀在于,在第一篇粗读时,不要一步步跟随代数部分。大部分学生都会犯下这个错误。在第一遍阅读时,你并不需要理解一个冗长计算的所有步骤。相反,默认它们是正确的,跳过它们,深入阅读关键的步骤。读公式之间的文字描述,读实验结果,读结论。当你大致明白了文章所谈论的东西之后,你再决定是否把时间花费在代数部分。不要在看不懂的步骤上花太多时间。当你以后有空时,可以重复阅读来慢慢理解它们。

当你逐渐成长为“应用数学家”时,你的能力也相应地增强了,浏览代数部分时已经能大致了解作者想达到什么目的以及大致所需要的步骤。没有人能够快速地阅读冗长复杂的计算公式。这也是为什么在第一遍阅读时要跳过公式的原因。从粗读开始,在每一次细读时再慢慢琢磨细节。

另外,你也应注意到,有时候这些计算里是有错误的。我们很难在第一次读的时候就发现它们。很多时间,这些错误与文章的观点是不相关的,但是它们会让读者产生混淆并阻碍读者理解数学内容。如果你已经基本理解了作者所做的工作,这些错误也很容易被找出。而且,当你看这些公式时,要确保你明白它们的真正意义。你可能知道某个公式的数学计算,但是你了解其背后的含义吗?譬如,你是否能够解释在某个特定系统下该公式的意义何在?你能否说出“当最大化 ELBO(Evidence Lower Bound Objective,似然函数下限)时,估计后验值与似然数据所允许的前验值类似”?这就是 ELBO 表达式背后的含义。当你达到了这一境界时,对冗长的代数操作进行推理就会变得更容易了。如何达到这种境界呢?读很多理论书,做很多代数题,这里没有捷径可走。

第二种是,论文中用到了大量的数学理论和证明,依赖大量的数学概念、理论和证明(有时候是过多且不必要的)来验证文章的观点。这种文章的核心就是数学。譬如,论文“为什么在增强学习中后验取样比优化更好”就是一篇数学理论性很强的文章。

对有些读者而言,这类文章更难阅读,因为它们往往很容易令人混淆。所有正式的谈论看起来都很重要。对这种论文,阅读的技巧是相通的:粗读。我们并不需要去查询Wikipedia 来试图记住Borel hierarchy 是什么。我们可以把这些时间节省下来,说不定我们再也不会读第二次了。

另外,也可以把用于某个特例的概念替换为一个简单的场景。很多时候,人们之所以用到正式的数学公式和推导,是因为他们在打安全牌、不想让一些诡异的边角例子破坏他们的推理。譬如,有一些聪明的数学系博士生会问:“如果该函数在每一处都是连续的但是不可微的,你认为还是否适用呢?”遇到这种情况怎么办?你所能做的就是假设没有这么聪明的学生,把所有Radon-Nikodym 导数都替换为比率,把所有测量标准都替换为有黎曼积分的简单函数,并假设这个作者只是在炫耀自己的数学知识,而你不需要通过这些数学知识来理解他所谈论的东西。

有时候这些方法都不适用,因为对某些文章,你必须认真阅读数学理论和推导来理解文章。

有时候,论文中引用数学公式只是为了更好地描述问题,仅仅了解公式的名称也能帮助你阅读文章。但是也有特例,譬如,KL 散度依赖于扎实的统计和信息论理论,当你阅读时,你会对其中的推论和计算点头称赞,但要想完全理解它,的确需要一些时间。

对有些人而言,更有效的方法是,拿出纸和笔,按照论文中的计算步骤一步步完成。这样有助于理解文章中的内容,而且也有助于发现其中简单的错误或笔误。很多文章会省略一些很明显的步骤,当只是用眼睛看的时候,很难跟着这些公式的思路。但是,如果你自己动手重新计算一次,就能涵盖文中所跳过的简单但重要的步骤。当然,每个人可以根据自己的情况来决定深入研究的程度。对于那种嵌套引用其他文章的断言或理论,你可以决定是继续查看参考文献还是直接跳过。

如果论文作者已经将基于论文实现的代码公布到了GitHub 上,读者可以粗读摘要和结论,然后跳入到程序中。这也是一个将理论与实践相结合的好方法。譬如, 论文“ Self-Normalizing Neural Networks ”中有着大量的公式,并在附录中给出了大篇幅的数学计算和证明。但这些附录中的计算是从一个计算机辅助的代数系统中生成出来的,对读者而言价值不大,可以快速地跳过。如果有读者想检查这些证明,当然也可以细看。该论文也有相应的 GitHub 代码,读者可以借助它来更好地理解文章。

也有人借助于量子物理中的费曼图(Feynman Diagrams),将复杂的公式抽象化和图形化,对于有物理背景的人而言,是一个简单易用的方法。

另外,阅读的深度也取决于读者的研究方向是机器学习的哪个分支。对于内核方法,需要有线性代数(元组、矩阵等的计算)、功能分析等的基础。对时间序列分析而言,需要了解测量方法和随机过程。有些方法需要用到图论等复杂理论。

当然,从学习机器学习的角度出发,了解一些数学理论基础还是很有必要的,如贝叶斯、最大后验概率、最大似然估计、高斯分布、一元 / 多元分类器、线性回归分析、支持向量机、隐藏马尔可夫模型、线性代数、概率论、微积分等等。很多东西都是这些理论的变形。一些引论类的研究生课程中会介绍到这些。网上也有很多免费资源,譬如你可以去 Youtube 上找到一些你喜欢的课程,加强自己对这些数学概念的了解。

有一些网友也推荐认真看看“ How to read a paper(如何阅读论文)”这篇文章,它里面讲解了很多论文阅读技巧。

查看原文 How do you read math-heavy machine learning papers ?


感谢蔡芳芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2017-08-17 19:002785
用户头像

发布了 21 篇内容, 共 89000 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

1688店铺详情数据接口python

tbapi

1688 1688API 1688店铺详情数据接口 1688店铺详情数据采集

bean的一生

京东科技开发者

Mac游戏星露谷物语 - 创造梦想中的田园生活

Rose

苹果电脑 模拟经营游戏 星露谷物语游戏下载 macos游戏推荐

万万字图解| 深入揭秘Golang锁结构:Mutex(下)

云舒编程

golang 面试 mutex 字节

TCP close_wait 引发的血案

云舒编程

TCP 压测 Wait 连接池

非常火爆“太空种田”游戏Slipways mac破解版

Rose

mac游戏 苹果电脑游戏推荐

开发人员是怎么失去成就感的

云舒编程

程序员 发展 职业生涯 开发. #最有成就感的事

【精品教程】如何查看iOS崩溃日志

雪奈椰子

MySQL并发插入导致死锁

云舒编程

MySQL 并发 死锁

日志资源成本减少35%:新东方可观测体系改造如何降本增效?

TakinTalks稳定性社区

万字图解 | 深入揭秘Linux 接收网络数据包

云舒编程

数据包 中断 网卡 linux\ ringbuffer

万字图解 | 深入揭秘HTTP工作原理

云舒编程

多路复用 HTTP web socket QUIC 图解网络

马斯克接手Twitter一年后的成果-工作量化的重要性

云舒编程

twitter 马斯克 推特

Axure RP 8使用技巧分享 含axure rp8汉化授权码

Rose

axure rp9下载 Axure RP 8汉化包 Axure破解版 Axure使用教程

010 Editor v14.0激活版 Mac十六进制编辑器 含010 editor注册码

Rose

010 Editor破解版 010 Editor注册码 Mac文件编辑器 苹果电脑软件下载

解决跨域问题的8种方法,含网关、Nginx和SpringBoot~

王磊

Java 面试题

苹果电脑游戏:以撒的结合:重生+忏悔+胞衣 Mac中文版下载

Rose

mac游戏 以撒的结合:忏悔

WorkPlus AI智能客服解决方案,提升企业服务质量

WorkPlus

支撑核心系统分布式改造,GaussDB为江南农商银行筑稳根基

华为云开发者联盟

数据库 分布式数据库 后端 华为云 华为云开发者联盟

万万字图解| 深入揭秘Golang锁结构:Mutex(上)

云舒编程

golang 设计 mutex 字节

如何使用 NFTScan API 检索 NFT 合约地址下 Transactions 数据

NFT Research

API NFT\ NFTScan

左耳听风 - 研发效率「读书打卡 day 16」

Java 工程师蔡姬

读书笔记 程序员 个人成长 研发效率 职业发现

如何让你的.NET WebAPI程序支持HTTP3?

不在线第一只蜗牛

Web 开发语言 http3 .NET 7

有了这张微积分知识地图,你可能会爱上高数!

博文视点Broadview

原来阿里字节员工简历长这样

云舒编程

简历模板 简历 应届生 大厂面试】 #面试

WorkPlus Meet私有化视频会议内网部署

WorkPlus

“纯血”鸿蒙到来,对开发者是机会吗?

云舒编程

华为 鸿蒙 开发者 HarmonyOS 生态

万字图解| 深入揭秘IO多路复用

云舒编程

异步 epoll select poll I/O 多路复用

《幻兽帕鲁》爆火,大厂坐不住了:这游戏是 AI 设计的?丨 RTE 开发者日报 Vol.134

声网

如何更好地阅读包含很多数学相关内容的机器学习论文?_语言 & 开发_CarolGuo_InfoQ精选文章