机器学习标准教科书PRML的Python实现:最佳读书伴侣

2017 年 12 月 2 日 MOOC
机器学习标准教科书PRML的Python实现:最佳读书伴侣

| 全文共2585字,建议阅读时2分钟 |


选自:GitHub

参与:蒋思源


本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载


机器学习神书之一的 PRML(模式识别与机器学习)是所有机器学习读者或希望系统理解机器学习的读者所必须了解的书籍。这本书系统而全面地论述了模式识别与机器学习领域的基本知识和最新发展,而该 GitHub 项目希望实现这本书的所有算法与概念,是非常优秀的资源与项目。


GitHub地址:https://github.com//ctgk/PRML


PRML 这本机器学习和模式识别领域中经典的教科书不仅反映了这些年该领域的最新发展,同时还全面而系统地介绍了模式识别和机器学习领域内详细的概念与基础。这本书主要针对高级本科生或研究生,以及人工智能相关的研究人员和从业人员。如果读者以前没有模式识别或机器学习相关的概念或知识,我们可能需要熟悉一些多元微积分和基本的线性代数等数学基础。此外,我们本科学的概率论与数理统计也需要复习一些,但这本书包含了对基本概率论的介绍,所以也可以借由这些章节进行复习。



PRML 适用于机器学习、统计学、计算机科学、信号处理、计算机视觉、数据挖掘和生物信息学等课程。它也为广大的读者提供了丰富的支持,例如书籍官网提供了 400 多个详细的练习资源,且根据难度分级。以下提供了该书籍的中英文资源,但我们还是建议读者查阅原版的英文书籍。此外,我们在 GitHub 上也能找到非常多的学习资源,例如中文翻译项目、Matlab 实现项目或各种读书笔记等。本文主要介绍了一个新的 GitHub 项目,该项目希望能实现 PRML 这本书籍的各种算法与概念。


PRML 实现地址:https://github.com//ctgk/PRML

PRML 书籍资源:http://pan.baidu.com/s/1skRgcjF 密码:cquc


该 GitHub 项目主要是希望使用 Python 代码实现在 Bishop 书籍「Pattern Recognition and Machine Learning」中介绍的算法。其中代码可以分为两部分,即实现各章节具体算法的 Python 代码文件和有助于理解各章节具体内容的 Jupyter Notebook 文件。在本文中,机器之心将简要介绍描述各章节的 Notebook,而各个算法的具体实现就需要读者朋友自行深入了解该项目了。


该 GitHub 项目所需要的编程语言为 Python 3,其它科学计算库还需要 NumPy 和 SciPy。若我们需要阅读各章节的 Notebook 文件,就需要安装 Jupyter,若希望在 Notebook 上绘制结果曲线或其他图表,我们需要安装 Matplotlib。此外,若我们希望馈送数据进行训练,还需要安装 sklearn 包。


在各章节具体算法的 Python 代码中,其罗列了聚类方法、特征抽取、线性模型、核方法、马尔科夫模型、概率分布模型、采样方法和神经网络方法等主题的实现。如下展示了线性模型文件夹下所包含的具体算法:



而对于 Notebook 部分来说,该项目展示了 PRML 各章节的辅助内容与实现代码,这一部分的内容目录如下:


  • ch1. 简介

  • ch2. 概率分布

  • ch3. 线性模型和回归

  • ch4. 线性模型和分类

  • ch5. 神经网络

  • ch6. 核方法

  • ch7. 稀疏核机器

  • ch9. 混合模型与 EM 算法

  • ch10. 近似推断

  • ch11. 采样方法

  • ch12. 连续隐变量


这些章节都是根据原书章节进行展示的,例如在简介章节中,该项目重点展示了多项式曲线拟合和贝叶斯曲线拟合。如在多项式拟合中,我们希望用以下形式的多项式拟合数据:



其中 M 为多项式的阶数,多项式系数 w_0, . . . , w_M 可以整体表示为向量 w。这些多项式系数可以通过梯度下降等方法调整多项式曲线拟合数据的情况。该 GitHub 项目先导入前面定义的具体模型,然后如下所示,再在 Notebook 部分展示模型的结果:



这和原书中的结果是非常相似的,我们甚至可以进一步调整不同的多项式复杂度以查看不同的拟合效果。因为增加了实践过程,这样的实现非常有助于我们理解原书中的概念与算法。此外,如果我们对算法的理解有什么疑惑,也可以查看具体的代码加深理解。


前面展示的案例是简介部分非常简单的多项式拟合方法,而对于更复杂一些的模型与方法,该项目也有非常好的实现与展示。例如在第七章中,PRML 主要介绍了稀疏核机器(Sparse Kernel Machines),包括最大间隔分类器、相关向量机(Relevance Vector Machines/RVM)等方法。如下所述,该项目对这一部分的内容也有非常好的辅助作用。


例如在最大间隔分类器或支持向量机中,我们假设训练数据集在特征空间中是线性可分的。因此根据定义,存在至少⼀个 参数 w 和 b 的选择方式,使得对于 t_n = +1 的点,线性模型 y(x) = w*φ(x) + b 都满足y(x_n) > 0,而对于 t_n = -1 的点,都有 y(x_n) < 0。因此对于所有训练数据点,我们有 t_n*y(x_n) > 0。


但是这种分类的情况会有很多,我们可以选择最稳妥的分类方法,即决策边界尽可能地处于所分类别的中间。支持向量机解决这个问题的方法是:引入间隔(margin)的概念,这 个概念被定义为决策边界与任意样本之间的最小距离,如原书第七章图 7.1 所示。



如左图所示,间隔被定义为决策边界与最近的数据点之间的垂直距离。最大化间隔会生成对决策边界的一个特定的选择,如右图所示。这个决策边界的位置由数据点的一个子集确定,被称为支持向量,用圆圈表示。


在该 GitHub 项目中,其展示的代码与绘图如下所示:



若我们应用和方法将这种大间隔分类的方法应用核技巧,将原本线性不可分的数据投影到线性线性可分的特征空间中,那么我们就能将这种具有大间隔或具有更强泛化能力的分类器推广到非线性分类中。如下展示了该项目这种扩展的支持向量机模型:



当然,本项目还有更多的模型与方法案例,我们可以按照 README 文件中所给出的 Notebook 文档加强对 PRML 这本权威教材的理解。该项目目前还在进一步完善,也希望各位 PRML 的读者能共同完善它,为我们自己提供更加优秀的学习资源。


有缘的人终会相聚,慕客君想了想,要是不分享出来,怕我们会擦肩而过~

《预约、体验——新维空间站》

《【会员招募】“新维空间站”1年100场活动等你来加入》

有缘的人总会相聚——MOOC公号招募长期合作者

《【调查问卷】“屏幕时代,视觉面积与学习效率的关系“——你看对了吗?》


产权及免责声明 本文系“MOOC”公号转载、编辑的文章,编辑后增加的插图均来自于互联网,对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。如果分享内容侵犯您的版权或者非授权发布,请及时与我们联系,我们会及时内审核处理。


了解在线教育,

握MOOC国际发展前把沿,请关注:
微信公号:openonline
公号昵称:MOOC

 

登录查看更多
21

相关内容

模式识别就是通过计算机用数学技术方法来研究模式的自动处理和判读,把环境与客体统称为“模式”。随着计算机技术的发展,人类有可能研究复杂的信息处理过程,其过程的一个重要形式是生命体对环境及客体的识别。模式识别以图像处理与计算机视觉、语音语言信息处理、脑网络组、类脑智能等为主要研究方向,研究人类模式识别的机理以及有效的计算方法

【导读】IanGoodfellow、YoshuaBengio、AaronCourville的《深度学习》花书被奉为AI圣经。但是要掌握这本书却并非易事。MingchaoZhu同学基于数学推导和产生原理重新描述了书中的概念,并用Python (numpy 库为主) 复现了书本内容,在Github上开放,欢迎大家查看学习。

Deep Learning

深度学习》是深度学习领域唯一的综合性图书,全称也叫做深度学习 AI圣经(Deep Learning),由三位全球知名专家IanGoodfellow、YoshuaBengio、AaronCourville编著,全书囊括了数学及相关概念的背景知识,包括线性代数、概率论、信息论、数值优化以及机器学习中的相关内容。同时,它还介绍了工业界中实践者用到的深度学习技术,包括深度前馈网络、正则化、优化算法、卷积网络、序列建模和实践方法等,并且调研了诸如自然语言处理、语音识别、计算机视觉、在线推荐系统、生物信息学以及视频游戏方面的应用。最后,深度学习全书还提供了一些研究方向,涵盖的理论主题包括线性因子模型、自编码器、表示学习、结构化概率模型、蒙特卡罗方法、配分函数、近似推断以及深度生成模型,适用于相关专业的大学生或研究生使用。

可以下载《深度学习》的中文版pdf和英文版pdf直接阅读。


《深度学习》可以说是深度学习与人工智能的入门宝典,许多算法爱好者、机器学习培训班、互联网企业的面试,很多都参考这本书。但本书晦涩,加上官方没有提供代码实现,因此某些地方较难理解。本站基于数学推导和产生原理重新描述了书中的概念,并用Python (numpy 库为主) 复现了书本内容(推导过程和代码实现均见pdf文件,重要部分的实现代码也放入code文件夹中)。

然而我水平有限,但我真诚地希望这项工作可以帮助到更多人学习深度学习算法。我需要大家的建议和帮助。如果你在阅读中遇到有误或解释不清的地方,希望可以汇总你的建议,提issue (最好不要一个一个地提)。如果你也想加入这项工作书写中或有其他问题,可以联系我的邮箱:deityrayleigh@gmail.com。

写的过程中参考了较多网上优秀的工作,所有参考资源保存在了reference.txt文件中。

| 中文章节 | 英文章节 | 下载
(含推导与代码实现) | | ------------ | ------------ | ------------ | | 第一章 前言 | 1 Introduction | | | 第二章 线性代数 | 2 Linear Algebra | pdf | | 第三章 概率与信息论 | 3 Probability and Information Theory | pdf | | 第四章 数值计算 | 4 Numerical Computation | pdf | | 第五章 机器学习基础 | 5 Machine Learning Basics | pdf | | 第六章 深度前馈网络 | 6 Deep Feedforward Networks | pdf | | 第七章 深度学习中的正则化 | 7 Regularization for Deep Learning | pdf | | 第八章 深度模型中的优化 | 8 Optimization for Training Deep Models | pdf | | 第九章 卷积网络 | 9 Convolutional Networks | pdf | | 第十章 序列建模:循环和递归网络 | 10 Sequence Modeling: Recurrent and Recursive Nets | | | 第十一章 实践方法论 | 11 Practical Methodology | | | 第十二章 应用 | 12 Applications | | | 第十三章 线性因子模型 | 13 Linear Factor Models | | | 第十四章 自编码器 | 14 Autoencoders | | | 第十五章 表示学习 | 15 Representation Learning | | | 第十六章 深度学习中的结构化概率模型 | 16 Structured Probabilistic Models for Deep Learning | | | 第十七章 蒙特卡罗方法 | 17 Monte Carlo Methods | | | 第十八章 直面配分函数 | 18 Confronting the Partition Function | | | 第十九章 近似推断 | 19 Approximate Inference | | | 第二十章 深度生成模型 | 20 Deep Generative Models | |

尚未上传的章节会在后续陆续上传。

成为VIP会员查看完整内容
0
229

【导读】最近GitHub上网友ctgk更新公布了Python3实现的经典机器学习图书《Pattern Recognition and Machine Learning》中的代码。在它之前曾有过Matlab版本,而新公布的版本采用机器学习领域最流行的python代码实现,比较符合大家的使用习惯。最重要的是代码以Jupyter notebook形式呈现,可视化结果非常适合边看书边调试代码。专知内容组特定整理PRML相关资料,供大家参考学习。

MLPR python 代码链接: https://github.com/ctgk/PRML

▌PRML书籍

PRML是模式识别和机器学习领域的经典著作,出版于2007年。该书作者 Christpher M. Bishop 是模式识别和机器学习领域的大家,其1995年所著的“Nerual Networks for Pattern Recognition”也是模式识别、人工神经网络领域的经典著作。

PRML深入浅出地介绍了模式识别与机器学习的基本理论和主要方法,同时还涵盖了模式识别与机器学习领域的一些最新进展,不仅适合初学者学习,而且对专业研究人员也有很大的参考价值。

目录

  • 导论
  • 概率分布
  • 线性回归模型
  • 线性分类模型
  • 神经网络
  • 核方法
  • 讲SVM
  • 现代基于图模型
  • EM 算法
  • 近似推断
  • 采样
  • PCA及一些改进
  • HMM 模型和LDS
  • 集成方法
成为VIP会员查看完整内容
0
139
小贴士
相关资讯
机器学习圣经《模式识别与机器学习(PRML)-2018》pdf分享
深度学习与NLP
22+阅读 · 2018年12月2日
世界读书日 | 机器学习必读书籍一览表(附阅读地址)
七月在线实验室
5+阅读 · 2018年4月23日
七本书籍带你打下机器学习和数据科学的数学基础
7本最佳深度学习书籍,总有一本适合你
人工智能头条
4+阅读 · 2018年3月9日
Python & 机器学习之项目实践 | 赠书
人工智能头条
10+阅读 · 2017年12月26日
机器学习实践指南
Linux中国
4+阅读 · 2017年9月28日
相关VIP内容
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
261+阅读 · 2020年2月15日
专知会员服务
135+阅读 · 2020年2月11日
深度学习界圣经“花书”《Deep Learning》中文版来了
专知会员服务
161+阅读 · 2019年10月26日
相关论文
Distributed Machine Learning on Mobile Devices: A Survey
Renjie Gu,Shuo Yang,Fan Wu
20+阅读 · 2019年9月18日
Towards Automated Machine Learning: Evaluation and Comparison of AutoML Approaches and Tools
Anh Truong,Austin Walters,Jeremy Goodsitt,Keegan Hines,C. Bayan Bruss,Reza Farivar
3+阅读 · 2019年9月3日
Kamran Kowsari,Kiana Jafari Meimandi,Mojtaba Heidarysafa,Sanjana Mendu,Laura E. Barnes,Donald E. Brown
4+阅读 · 2019年4月17日
Georgios Damaskinos,El Mahdi El Mhamdi,Rachid Guerraoui,Rhicheek Patra,Mahsa Taziki
3+阅读 · 2018年7月9日
Minghao Hu,Yuxing Peng,Zhen Huang,Xipeng Qiu,Furu Wei,Ming Zhou
9+阅读 · 2018年4月25日
Po-Sen Huang,Chong Wang,Sitao Huang,Dengyong Zhou,Li Deng
3+阅读 · 2018年4月18日
Xuefei Zhe,Shifeng Chen,Hong Yan
6+阅读 · 2018年3月28日
Henggang Cui,Gregory R. Ganger,Phillip B. Gibbons
3+阅读 · 2018年3月20日
Yu Shi,Huan Gui,Qi Zhu,Lance Kaplan,Jiawei Han
4+阅读 · 2018年3月5日
Muhan Zhang,Yixin Chen
23+阅读 · 2018年2月27日
Top