计算学习理论介绍

来源:互联网 发布:猴赛雷微信软件 编辑:程序博客网 时间:2024/06/10 23:04

现今,机器学习和神经网络已经广为人知。每年有无数篇论文发表,光顶会NIPS每年就有四百篇左右的论文发表。各种应用包括机器翻译、机器阅读等领域都在快速发展。但是,我觉得,我们做研究的人不能被这些表象所迷惑,真正来说,机器学习(后面机器学习就泛指机器学习、神经网络以及深度学习等等)实际上仍然处于初期中期阶段,简单地从时间上来看,距今连一百年都没有。

对于任何学科,理论都是基石,然而机器学习却表现得很让人担心,因为其理论发展速度和其应用发展速度极其不匹配。虽然机器学习在各个领域都取得了不错的成就,但是其理论发展仍然处于探索之中,这种情况不得不让人忧心。

为什么说理论重要?就以机器学习而言,理论的作用有两个,一个作用是理论保证机器学习能够达到预期的效果,为各个机器学习算法提供理论保证,另一个作用是为机器学习算法的设计和使用提供指导,比如一个新算法理论证明是不可靠的,或者只有在一定条件下可靠的,比如理论证明了一个算法如果要达到一定的效果需要多少样本,需要什么样的样本等等。

机器学习的理论一般称之为计算学习理论。计算学习理论最成熟最古老的是PAC(Probably Approximately Correct,可能近似正确)学习框架(这里我把VC维和Rademacher复杂度也归类到这套理论里),最早由Valiant在1984年提出,经过这么多年的发展已经非常完善,但问题是这套理论有一定的限制性,对算法的设计和使用的指导作用也有限。目前来说,计算学习理论里发展比较好的是基于稳定性(stability)的理论和基于鲁棒性(robustness)的理论。这两套理论的适用性比PAC更广泛,理论解释也更为清晰,同时,也对算法的设计和使用有不错的指导性。

关于学习计算学习理论,个人有以下推荐。

最好先把PAC理论完整地学会,然后再去学习Stability理论,最后学习Robustness理论,虽然这三套理论没有必然的先后的关系,但是个人认为这样学习有很多好处。

学习PAC理论推荐书籍《Foundations of Machine Learning》,作者Mehryar Mohri,Afshin Rostamizadeh,Ameet Talwalkar,同时作者在纽约大学有同名的课程《Foundations of Machine Learning》,以这本书作为教材,可以结合着看。另外,作者还有一门课程《Advanced Machine Learning》是更高一级的,建议把前面的学完可以学下这个。这本书是2012年出版的,所以只包含了一部分stability理论的介绍,没有robustness理论。关于计算学习理论的另一本书籍是《Understanding Machine Learning:From Theory To Algorithms》,作者Shai Shalev-Shwartz,Shai Ben-David,基本内容都差不多,但个人还是建议看前一本。

学习Stability理论没有什么推荐书籍,因为这个理论的奠基性工作在2002年才发表,随后2006年,2010年才基本完善,所以只能看论文。纯理论学习的论文主要有

Olivier Bousquet,  Andre Elisseeff, 2002,Stability and Generalization

Sayan Mukherjee, Partha Niyogi, Tomaso Poggio, Ryan Rifkin, 2006, Learning theory: stability is sufficient for generalization and necessary and sufficient for consistency of empirical risk minimization

Shai Shalev-Shwartz, Ohad Shamir, Nathan Srebro, Karthik Sridharan, 2010, Learnability, Stability and  Uniform Convergence

主要论文就这三篇,另外还有针对各种算法的理论分析,这个可以自己去找,或者待我看完整理一下。

Robustness理论我也才刚开始学,目前在看一篇2015年的论文Analysis and Design of Optimization Algorithms via Integral  Quadratic Constraints,作者为Laurent Lessard, Benjamin Recht, Andrew Packard。其余的暂时也不清楚要看哪些论文,等我全部看完再整理更新一下。

原创粉丝点击