机器学习,数据挖掘在研究生阶段大概要学些什么?

作者:豆豆叶

中国科学技术大学数学系

机器学习,数据挖掘在研究生阶段大概要学些什么?能给一个梗概或者方向么?

这是一个很难回答的问题,每个人的基础不同起点也不同,需要学的东西也完全不一样。先说我的观点:不要想一下子吃成一个胖子;很多时候,想吃的越多反而什么也消化不了。

让我们先看一道面试题(非原创):一条路上有N棵树,每棵树都有两个指标,一个是位置a_i(是整数),一个是体积w_i(是整数),现在要把这些树砍下来,运到K个仓库,我该如何选择这些仓库的位置(也是整数),使得搬运的成本尽量小呢?假设理想情况下,每棵树的搬运成本为树的体积 x 搬运的位移^2。

如果你看完这个题目,不能条件反射的告诉我你的思路,你其实并没有真正懂什么是聚类算法(K-means)。每个机器学习算法,犹如这道题一样具有两面性,一面是算法,也就是怎么算;一面是优化目标,为什么这么算。不能区分的看待机器学习的两面性,就不能明白为什么一群号称做机器学习研究的人整天却在玩数学。

我自己是本科数学出身,本科毕业的时候,我并不知道什么是机器学习,也没有写过大型程序,更不要说去搞一个机器学习的算法和实践了。但是回头看,真是因为本科时代打下的坚实数学基础,让我毕业后学习这些相关知识变得轻车熟路。这些本科时代就应该熟练掌握的东西包括 :

  • 线性代数(线性空间,矩阵计算,张量)
  • 数值数学(数值代数,数值分析,线性规划,二次规划,凸优化理论,常见的数值优化算法)
  • 概率论和统计(没有这个基础,后面学概率图模型,统计计算都无从谈起)
  • 实分析和泛函的基础(这块内容有助于提升抽线思维的能力,一些经典结论对之后一些理论的理解很有帮助,比如RKHS)

有了这个基础,我们再来看机器学习都有哪些东西,其实真心不多。

最简单的当然是从分类器(classification)谈起了。总结一下,学习这些东西要先知道哪些数学内容呢?

  • Naive Bayes:真的只需要懂一点概率论就行了。
  • Linear Discriminant Analysis:这个你只需要知道什么是多变量Gaussian分布。
  • Logistic Regression:如果知道线性回归和广义线性回归,LR也不是什么特别的东西。如果知道最大熵原理,并能从它推导出LR那说明你对LR的理解又更深入了。
  • Linear SVM:这个稍微复杂一点,因为问题的formulation需要先理解max-margin原理。而具体的算法实际上就只是经典的二次规划和凸优化内容。
  • Kernel SVM:要真正理解这个或许需要先明白什么是RKHS。然后其他算法部分只是仿照Linear SVM的简单推广。RKHS相关内容可以参照http://www.umiacs.umd.edu/~hal/docs/daume04rkhs.pdf
  • Adaboost:这个东西如果只需要知道算法过程,是很简单的东西。但是如果你能明白为什么这么做,在什么假设下这么做会收敛到最优解,那你的理解也非常不错了。
  • Decision Tree:有两个需要了解CART 和 c4.5。这个很简单,没什么好说的,但是你能不能高效的实现它们呢?
  • Neural network:这个是我见过最傻的模型,你要知道怎么做优化,乃至怎么做随机优化,结果看天吃饭。

再来看一些非监督模型,比如经典的有

  • 数据处理与可视化:PCA,LDA,MDS,以及其他“高大上”但不一定work的manifold learning算法
  • 聚类算法,以及如何评价聚类结果
  • 稀疏编码:如何把一个带LASSO的问题转化成线性约束?有哪些别的更快的方法求解LASSO。

以上这些东西,算是入门性质的。本科毕业后大概一年左右,这些东西我就基本熟悉了。要学习这些东西,看一些教材自然是好的,但是书里废话比较多呢,而且一本书的作者知道的东西毕竟有限,我都是倾向直接从维基出发找资料看的。说实话,现在很少会自己去实现这些算法了,这些经典算法都有现成的开源工具。事实上要写一个高效的Linear SVM也不是很容易的事情。

我主要讲讲学完这些,应该怎么学更高级的内容,当然还是结合我自己的经历。授人以鱼不如授人以渔,要学习前沿的内容就要掌握基础的工具。书分为两种,一种书看完了就是看完了,你学到了一堆技能,但却不能用这些技能产生新的知识,面对问题也不能因地制宜,如果是这样学估计只能用来应付找工作面试吧;另一种书看完了才是学习新东西的开始,你学到了如何读懂别人的论文,如何开发新的知识,如何根据情况选择和调整算法。

概率图模型(Probabilistic graphical model):我是在Coursera上学习概率图模型这门课的,讲得真的非常好,正打算过二周目。学完这个课,掌握了图模型的设计,推断,和采样方法之后,就可以开始学习两个核心的机器学习模型,一个是Latent Dirichlet Allocation(LDA),常用于文本处理;一个是Probabilistic Matrix Factorization(PMF),常用于推荐系统。

有个有趣的事情,某年Siggraph上有一篇文章做的是自动生成美丽的图案上色,这篇文章简直是我的最爱啊,作者是个华裔姐姐长得也很萌 >_< http://graphics.stanford.edu/~mdfisher/Data/patternColoring.pdf

其实是为了看懂她的工作,我才去学的这门课呢。 这类图模型都在研究两个基本的问题:如何采样;如何inference隐含变量,是用EM、MCMC、还是Variational Bayes,从而用来估算参数。为了搞清楚这些,学习下面这门课就非常必要了。

统计计算(Statistical computing):这个课系统的介绍了数值积分方法,Monte Carlo方法(importance sampling, MCMC,Sequential/Particle MCMC,bootstrap),EM/MM。学完这门课,你能对这个领域的工具有个全局性的了解,明白每个工具的利弊,它们产生的历史来源,从而在具体问题中正确的选择使用它们。

有了这些工具,你会发现大部分research的工作都是在这些细分领域做一些简单的扩展。比如Bayesian PMF(ICML'08)这篇文章几乎就完全是MCMC在PMF的应用。话说回来,Research大部分时候就是以这样一种循序渐进的方式进行的,把一些现成的idea排列组合。

深度学习(Deep learning):说实话我刚开始接触这块内容发现,这尼玛就是传说中的黑科技啊。你不知道模型里面发生了什么,好坏都是看天吃饭的感觉。为了搞清楚这个,我决定重头开始实现神经网络。(代码在bobye/neuron · GitHub )前前后后花了近半年的时间,在实现的过程中,我学习了构造和训练神经网络的各个细节。我是从Stanford这个Tutorial开始学习的UFLDL Tutorial 课程资料里提供了Matlab的源码,不过我喜欢重新造轮子,那个时候恰好在学习Scala,就用Scala重写了一个神经网络的库(这个语言的特性非常适合写神经网络的算法)。

近几年深度学习的主流被深度卷积网络代替,这种监督学习的算法虽然对某些问题十分有效,但是数学上并不是特别神奇的东西,我还是比较关注那些非监督的神经网络。

优化(optimization):没有优化算法,任何机器学习模型都是空中楼阁,如何用更高效的优化算法,如何trade-off 计算时间和准确度,如何把已有问题scale到更高规模的数据上一直都是“优化大师们”做不完的工作。这也是一个非常大的分支,我觉得现在比较流行的两个大类是随机梯度优化和ADMM。前者用来解决大规模非约束优化问题,现实情景用的很多,但我们对它知道的很少;后者用来解决带约束问题,有很多变体。此外,优化大家庭也又有很多别的成员,这时候我要推荐的资料包括J Nocedal的numerical optimization这本书,讲的内容非常充实。此外ADMM的内容当然看Boyd巨牛11年的Tutorial paper。

话说“概率图模型画圈,神经网络调参数,优化问题加正则”,不会科研也会胡诌了。。。最后说说答主最近在看的东西

PAC学习理论(PAC Learning):这个理论已经相对古老了,它的历史价值很大,应用价值很有争议,但是一直有人在继续这个方向的工作,并试图用它来构造新的模型,所以还是有必要知道的。推荐一下最近的新书:Understanding Machine Learning: From Theory To Algorithms. 非参数贝叶斯统计(Non-parametric Bayesian statistics):这个方向还非常年轻,有很多需要挖掘的东西,也是我PhD的一个重要课题。

我觉得如果你开始看这些东西了,我已经没资格给你指路了,哈哈

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-05-30

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CVer

[计算机视觉论文速递] 2018-05-08

[1]《DCAN: Dual Channel-wise Alignment Networks for Unsupervised Scene Adaptation...

861
来自专栏IT派

一文厘清机器学习、深度学习、统计与概率论的区别

除了风格与Supervised/Unsupervised Learning截然不同的Reinforcement Learning以外,大家虽然知道机器学习已不再...

970
来自专栏AI研习社

深度学习的快速目标跟踪

第一部分:CPU real-time tracker ? 终极鲁棒的人脸跟踪 关于跟踪,除了鲁棒性 (robust) 和准确性 (accuracy),这个专...

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

【NLP年度重磅盘点】12项重大行业突破!详解2017年深度学习加持下的NLP大事件

翻译 | 林椿眄、刘畅、彭硕 编辑 | Donna Suisui 过去几年,深度学习架构和算法在图像识别和语音处理等领域取得了重大的进步。而在NLP(自然语言处...

3558
来自专栏吉浦迅科技

(图解)机器学习的衰颓兴盛:从类神经网络到浅层学习

1950年代计算机发明以来,科学家便希冀着利用计算机创造出人工智能;然而,当时的硬件效能低落、数据量不足,随着通用问题解决机、日本第五代计算机等研究计划的失败,...

32511
来自专栏机器人网

七步之内成为Python机器学习的大师

线上的Python的机器学习资源如此丰富,从哪开始?如何修炼?这篇文章让你从零开始,七步之内成为Python机器学习的大师。

651
来自专栏新智元

【GAN大盘点】十款神奇的GAN,总有一个适合你!

【新智元导读】YannLecun曾赞誉GAN为“近十年来机器学习领域最有趣的想法”,一经提出便受万众瞩目。伴随着研究的逐步深入,GAN已然衍生出了多种多样的形态...

592
来自专栏AI科技评论

干货 | Kaggle Carvana图像分割比赛冠军模型TernausNet解读

AI 科技评论按:2017 年 7 月,美国二手汽车零售平台 Carvana 在知名机器学习竞赛平台 kaggle 上发布了名为 Carvana 图像掩模大挑战...

4435
来自专栏新智元

【LeCun & Bengio】NIPS 2015 深度学习专题论坛实录(35PPT)

Yann LeCun:纽约大学终身教授,Facebook人工智能实验室负责人。 Yoshua Bengio:加拿大蒙特利尔大学教授,深度学习大神。 “Deep ...

3476
来自专栏应用案例

从传统方法到深度学习,人脸关键点检测方法综述

人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。近些年来,深度学习方法由...

6078

扫描关注云+社区