写点什么

概率编程语言与贝叶斯方法实践

  • 2014-07-18
  • 本文字数:1495 字

    阅读完需:约 5 分钟

近日,机器学习爱好者 Cameron Davidson-Pilon 在 GitHub 上发布了《概率编程和贝叶斯方法实践》一书,该书以动手编程和理解为首要任务,数学原理次之的理念,以概率编程的角度为读者介绍贝叶斯方法。该书为入门书籍,主要面向数学基础较弱以及不关心其数学原理的读者,对于经过严格数学训练的读者,建议结合其他有数学分析的相关图书阅读。该书源代码构成的项目在GitHub 上获得了高达5900+ 个星标,被fork 1100 多次,目前有765 次更新以及74 位贡献者。全书使用Python 脚本语言作为示例语言,采用非常新颖的IPython Notebook 形式发布,全部代码都可以随时执行并立即得到效果。《概率编程和贝叶斯方法实践》一书之所以选择PyMC 作为概率编程语言,主要考虑到两个原因,一是PyMC 缺乏入门教材,官方文档假设读者对贝叶斯和概率编程都很了解;二是鉴于近年来Python 语言在学术界的流行程度,PyMC 可能很快就成为一个核心模块。

贝叶斯方法是进行逻辑推理的一种非常自然的方法,但是对于广大读者来说,它的出现,通常附带着大量的数学公式和推导过程,让人望而却步。现有介绍贝叶斯推理的图书,通常会用两三个章节来讲解概率论基础,然后才能告诉我们什么是贝叶斯推理。非常不幸的是,由于大多数贝叶斯模型与生俱来的数学复杂性,读者接触到的只能是一些简单的,人为构造的虚假简化示例。这很容易给读者一种贝叶斯方法没什么了不起的感觉。实际上,这些错误的感觉只是那些图书作者的一面之词。

在目睹了近年来贝叶斯方法在机器学习领域的贡献,该书作者决定亲自来撰写一本通俗易懂而且可用性非常强的贝叶斯方法入门图书。他投入了大量的时间精力,研究如何将贝叶斯方法的数学基础和实践联系在一起。最后他发现,最大的问题在于,当前的资料中,贝叶斯相关数学知识和概率编程之间缺乏紧密的联系。因此本书的目标就在于弥补这一缺失。

如果说贝叶斯推理是我们最终的目标,那么用数学工具进行分析只是通向它的一个途径。现在的计算能力如此便宜,我们完全可以从另外一个完全不同的途径——概率编程来达到推理的目的。概率编程对于我们来讲更加实用,因为它不需要每一步都去考虑那些复杂的数学公式,这样我们就把拦在贝叶斯推理前面的数学巨石轻而易举的绕过了。

全书内容分为引言和六个章节,第一章介绍贝叶斯方法的原则以及概率编程初步;第二章介绍PyMC;第三章介绍马尔科夫蒙特卡洛方法(MCMC);第四章介绍大数定律;第五章介绍损失函数;第六章也是最重要的一张,介绍先验知识。另外还有两个补充章节,介绍贝叶斯方法在机器学习领域的应用以及PyMC 的更多细节。纵观全书,作者给出了非常多的真实数据来让读者深入了解贝叶斯方法。比如第一章中的通过用户一天发送的短信息数量来推测用户行为的变化;第二章中的AB 测试、谎言测试以及航天飞机事故分析;第三章中的贝叶斯后验概率和马尔科夫蒙特卡洛,以及数据聚类;第四章中的reddit 内容分享网站评论的按质量排序;第五章中的猜商品价格和Kaggle 竞赛题;第六章中的贝叶斯老虎机问题和股票分析等等。

值得一提的地方,此书的全部内容是开源的,意味着任何感兴趣的读者都可以自己做出贡献,只要通过GitHub 提交即可。在首页的最后,作者呼吁大家参与到图书的编写当中,并提供了一些入手的线索,比如对于马尔科夫蒙特卡洛方法、最大后验概率、贝叶斯网络、概率分布等内容的介绍、相关Python 代码的编写、对例子做出更生动的解释以及文字上的纠错等等。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-07-18 02:4611482
用户头像

发布了 268 篇内容, 共 136.5 次阅读, 收获喜欢 24 次。

关注

评论

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

专家呼吁:保护肾脏,从关注酸性尿开始

E科讯

GitHub开源:100美元自制激光雷达

不脱发的程序猿

GitHub 开源 DIY 4月日更 激光雷达

面试加分项!为了跳槽强刷1000道Android真题,附小技巧

欢喜学安卓

android 程序员 面试 移动开发

华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数

华为云开发者联盟

redis GaussDB(for Redis) 计数器 计数

低代码:正在改变软件的开发方式

华为云开发者联盟

软件开发 低代码 低代码平台 华为云应用魔方 AppCube

架构实战营 - 模块 2- 微信朋友圈高性能复杂度分析

吴建中

架构实战营

多源数据即席查询Trino(Presto)引擎剖析

小舰

4月日更

聪明人的训练(二十)

Changing Lin

4月日更

使用 Amazon SageMaker 特征存放区存储、发现和共享机器学习特性!

亚马逊云科技 (Amazon Web Services)

重磅更新!运维工程师打怪升级进阶之路 3.0(体系化带你全面从入门到企业实战)

民工哥

Linux 后端 linux运维 运维工程师 linux学习

抢购倒计时自定义控件的实现与优化

vivo互联网技术

动画 安卓 自定义控件 倒计时

阿里员工:最惨P7,33岁才28K,感觉没有前途了。网友调侃:最美逆行者

程序员生活志

【LeetCode】实现 strStr()Java题解

Albert

算法 LeetCode 4月日更

计算机原理学习笔记Day11

穿过生命散发芬芳

计算机原理 4月日更

我很久没写代码了,但我是个好架构师

四猿外

Java 程序员 系统架构 架构师 代码

iMazing 一款替代iTunes的数据备份软件

懒得勤快

ios Mac imazing 手机管理

行动起来!为迁移到自己的证书颁发机构做好准备!

亚马逊云科技 (Amazon Web Services)

芯片设计软件上云新思路!看珂晶达如何高效拓宽市场 | 精选案例

亚马逊云科技 (Amazon Web Services)

【签约计划】行业分析能力考核成绩公布

InfoQ写作社区官方

签约计划 热门活动

MySQL常用引擎及优缺点

Sakura

4月日更

游戏开发者福音!我们和 TapTap 将为您提供全套的发行服务!

亚马逊云科技 (Amazon Web Services)

Linux tree命令

一个大红包

Linux linux命令 4月日更

全程干货!拍乐云受邀LiveVideoStackCon,首席科学家分享拥塞控制最佳实践

拍乐云Pano

神级Android进阶笔记!一次关于JVM的面试经历,建议收藏

欢喜学安卓

android 程序员 面试 移动开发

搭载自研处理器 Amazon Graviton2 的 Amazon EC2 X2gd 已全面可用 | 新服务上线

亚马逊云科技 (Amazon Web Services)

搭建亿级时间线数据的监控系统,我有绝招!

华为云开发者联盟

Grafana 监控系统 GaussDB(for Influx) 华为云数据库 时间线

NoCode 实战 | 想要开发在线选课系统?何必那样大费周章!

亚马逊云科技 (Amazon Web Services)

架构实战营 - 模块 2- 总结

吴建中

架构实战营

三色标记原理,我给应聘者问懵了...

华为云开发者联盟

Java 节点 三色标记 SATB算法 回收器

我们携手东软集团,助力智能汽车“乘云转型达四海” | 精选案例

亚马逊云科技 (Amazon Web Services)

SpringBoot极简集成Shiro

Java小咖秀

spring springboot shiro

概率编程语言与贝叶斯方法实践_语言 & 开发_张天雷_InfoQ精选文章