首发于交集
一个跨界半吊子ML选手的自我修养

一个跨界半吊子ML选手的自我修养

许多年过去了,当初写下这个答案的时候,我还是一个初涉机器学习几个月的一年级研究生,以为世间一切就是逼近一个函数,训练一个分类器。一晃这么多年过去,自己也终于要毕业了,当年还在潮流前沿的贝叶斯,图模型已经快成为象牙塔里的理论家专属,而当初被年轻的我当做传统话题一笔带过的人工神经网络早在我写下最初答案的那一刻就已经掀起了复兴的浪潮。这些年在CMU作为半个MLD人也算是见证了机器学习从CS之下的一个普通的科研方向变成了全民关注的热点话题这一伟大的历史进程。现在回过头来,再写一个针对像我这样非理论ML人士的Machine Learning教材列表,是不是会更有意义一点呢?

网络上、公众号里各种各样的机器学习人工智能书单已经多到泛滥了,我自己电脑里各种教材的 (正版及盗版) PDF大约加起来也有近百种了吧。当然我是重度囤积癖患者,这些书主要是收藏起来用来装逼用,里面至少一半的书我是没看过的。不过毕竟能上知乎来找书单的要么是业余爱好者,要么是初学者,比起不加筛选地堆砌几十本相关书目,如果能给他们提供一点稍带倾向性的参考,想必也是有一点点价值的。

以下是我作为一个应用机器学习理论研究人脑认知的博士生所总结的(统计)机器学习的学习路线,对于做理论机器学习的专家们来说自然是不值一哂,献丑了还望海涵。

****************************************************************************************

声明1:以下三个截图包含了理论和应用机器学习,统计,优化以及数学等等乱七八糟有深有浅各种教材,主要目的是收集用来装逼,不推荐效仿

****************************************************************************************

机器学习
数学和统计理论
(凸)优化理论

关于如何选择教材,我觉得其实只有一条金科玉律:无论别人的书写得多么好,重要的还是要自己最终掌握知识。Michael Jordan曾经针对于致力于从事机器学习研究的人开了这么一个书目

Nikita Zhiltsov’s 'm-jordan-s-list' books on Goodreads (17 books)www.goodreads.com图标

当然这是一个极具个人风格的书单,其中大部分是统计理论,泛函分析,以及优化理论。机器学习发展到今天,即使是专业的研究人员也无法跟进所有的进展,但是浪潮总有过去的一天,浪潮之下那些坚硬的岩石才是让我们能够扎根立足迎接一次又一次潮起的根基之所在。这里摘录Jordan的一段话送给各位

I don't expect anyone to come to Berkeley having read any of these books in entirety, but I do hope that they've done some sampling and spent some quality time with at least some parts of most of them. Moreover, not only do I think that you should eventually read all of these books (or some similar list that reflects your own view of foundations), but I think that you should read all of them three times---the first time you barely understand, the second time you start to get it, and the third time it all seems obvious.
I'm in it for the long run---three decades so far, and hopefully a few more. I think that that's true of my students as well. Hence the focus on foundational ideas.


******************************************************************************************

声明2:以下这些书的目标群体大概是和我类似的,从事应用机器学习研究的人,至于理论机器学习学者,那水平比我不知高到哪里去了,还是另请高明吧,这个Reddit AMA上一楼里Jordan列出的书单大概可以作为一个参考。

******************************************************************************************

0)基本功

  1. Casella and Berger. "Statistical Inference"
    无论从事何种方向的机器学习研究,都应该学会最基本的统计概念,并且学会用严格的统计语言描述问题。恐怕在不久的未来,这一点的重要性大概和英语以及微积分一样。
  2. Golub and Van Loan. "Matrix Computations"
    (以及一个更实用的手册 The Matrix Cookbook)
    矩阵运算(加法,乘法,分解,求导)大约是机器学习实践中最重要的基本数学工具了,重要性大约和加减乘除四则运算一样
  3. (a) Bishop. "Pattern Recognition and Machine Learning"
    这本书算是最有名的机器学习入门教程,不需要多介绍了
    (b) Friedman, Tibshirani, and Hastie. "The Elements of Statistical Learning"
    频率学派统计机器学习的入门书,是PRML的频率派对应版本,百科全书式的入门教程,我个人觉得比起PRML来说,ESL内容更新更全一点,除了对于高维稀疏模型的关注之外,boosting, bagging, ensemble等相关的内容也有较为详尽的介绍。
  4. Boyd and Vandenberghe. "Convex Optimization".
    我现在觉得,只有在完整系统地学习了 (凸) 优化理论之后才能声称自己真正入门了机器学习,因为你终于知道大部分机器学习算法究竟是如何被实现的了。以下三条路线里,第二条名字里就带了优化,第一条图模型里一切跟learning相关的内容到最后也基本变成了优化问题,而第三条神经网络里一切的一切都是SGD。所以优化理论是系统地学习机器学习绕不开的一环。

1)路线1:图模型加圈

以下几本书详尽描述了概率图模型入门基本知识(although this may mean that majority of them are too old to be useful in practice),总有一款适合你

  1. Koller and Friedman. "Probabilistic Graphical Models: Principles and Techniques"
    概率图模型理论入门的百科全书,基本上覆盖了一切你需要知道的基本内容
  2. Jordan and Bishop. "An Introduction to Graphical Models"
    Jordan写的图模型书,怎么也得看一下吧?这本书好像一直也没正式出版,内容比Koller那本要精炼一些,适合于快速入门。
  3. Barber. "Bayesian Reasoning and Machine Learning"
    与PRML类似,更偏重用图模型的model, inference和learning的观点来贯穿所有内容。
  4. Gelman et al. "Bayesian Data Analysis"
    如果你是社会科学领域(比如心理学),并且专注于Hierarchical Bayesian Modeling的话,这一本书基本涵盖了从模型到求解的所有基本内容。

近年来图像和文本处理似乎已经越来越依赖于深度模型,而以topic models为代表的图模型仍旧盘踞于biostats/bioinformatics相关的各个应用领域。然而随着VAE, GAN等一系列deep generative models的兴起,人们发现如果我们把图模型里的条件概率分布参数化为神经网络,那么又可以在图模型的框架下用Variational Bayes方法研究深度生成模型了,于是深度模型和sampling,EM,KL等等又都联系在了一起,我们 (理论上) 又实现了一切皆可画圈圈的万法归宗。

2)路线2:优化目标加正则

这一派大约算是我师门了吧,(万恶之) 起源于敬爱的师祖爷爷Rob Tibshirani 1996年那篇著名的lasso paper,其后又蒙天外飞仙Tao以及频率派众神Efron, Friedman, Donoho, Candès等人开拓,在理论和应用领域全方位发扬光大。我们这一派的特点是头铁,笃信万物皆可惩戒,口号是 "In sparsity we trust",信条是 "Nothing cannot be penalized, everything is sparse." 就像图模型里通过图结构和先验分布来给数据增加结构一样,这一派的思路是通过penalized optimization来寻找符合特定结构的解。

  1. Hastie, Tibshirani, and Wainwright. "Statistical Learning with Sparsity"
    如果你是个die hard sparsity believer的话,这本书又名"all you need to know is lasso",虽然是本教科书,但是其中已经涉及到了一些相当前沿的内容,比如post-selection inference
  2. Bubeck. "Theory of convex optimization for machine learning"
    或者 Nesterov. "Introductory Lectures on Convex Optimization"
    既然这一派叫做优化目标加正则,那么归根到底是把一切问题化为含有regularization项或者约束的优化问题,所以比起图模型派来说,这一路线更强调优化理论的应用,所以各种一阶二阶方法及其近似,以及duality,coordinate descent等等都是必备内容。优化理论相关的读物很多很多,这两本我略有接触,感觉还是有助于深入学习的。
  3. 参考之前截图2中的各路关于high dimension, L1, nonparametric的理论著作。

由于与频率统计派的渊源,这一派较之其他几派有着更深刻的理论背景,大部分理论机器学习学者专注于研究各种渐进的非渐进的minimax的收敛界。我虽然没能继承二老板衣钵走上理论统计学者的路线,但耳濡目染也算是深受影响。如果你是一个追求具有严格理论保证的算法的人,相信你可以从中找到兴趣所在。

3)路线3:神经网络加层

这一条路线我基本算是准外行了。作为一个飞速发展的领域,深度学习这个方向的理论知识实际上只有backpropagation。虽然PRML里的Neural Network章节基本包含了你需要知道的所有理论基础,不过Deep Learning Book 作为深度学习唯一一本教科书,应该还是可以看一下的吧。此外,对深度强化学习感兴趣的同学,Sutton和Barto的经典教材的2017全新版本 Reinforcement Learning: An Introduction 想必也是不可错过的。当然了,对于deep (representation/generative /reinforcement) learning这些日新月异的领域来说,读paper,fork project,自己写代码实现应该是最好的学习方式吧。


4)go beyond

修炼完以上这些技能,相信你已经具备了扎实的机器学习功底2333333,接下来大概就可以把你的一身本领投入到你的科研领域或者工程项目上,在实践之中学习进步了吧。祝你磕盐灌水愉快!

编辑于 2018-04-04

文章被以下专栏收录