写点什么

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

  • 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:4611029
用户头像

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

关注

评论

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

Linux之df命令

入门小站

Linux

腾讯云原生实时数仓建设实践

腾讯云大数据

flink window 流计算 Oceanus

百度APP浏览内核资源加载优化实践 -- ResourceScheduler 调优机制

百度开发者中心

百度app

失去了SDK,云计算将会怎样?

亚马逊云科技 (Amazon Web Services)

计算

代码审计思路之PHP代码审计

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 代码审计

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)

bin的技术小屋

网络编程 socket nio netty java 编程

在线常用crontab表达式大全验证解析

入门小站

工具

低代码实现探索(十六)业务勾连复杂验证器

零道云-混合式低代码平台

吐槽一下网站

你?

边缘网络 eBPF 超能力:eBPF map 原理与性能解析

火山引擎边缘云

模块9作业

Asha

恒源云(GPUSHARE)_语音识别与语义处理领域之低资源机器翻译综述

恒源云

机器翻译 语音识别

阿里云手机正式公测,定义手机全新接入方式

阿里云弹性计算

阿里云 弹性云手机

只需5步!在轻量应用服务器部署Hexo博客

阿里云弹性计算

Hexo 轻量征文 用户投稿

专注于最有价值的事情!——亚马逊云科技首席科学家工作心得分享

亚马逊云科技 (Amazon Web Services)

Date

呼叫医生云! Amazon HealthLake 现已正式上线

亚马逊云科技 (Amazon Web Services)

AI ML

腾讯云 AI 视觉产品基于流计算 Oceanus(Flink)的计费数据去重尝试

腾讯云大数据

AI flink window

VuePress 博客优化之开启 Gzip 压缩

冴羽

nginx 前端 后端 博客 vuepress

数云运维总监陈延宗:基于阿里云计算巢,数云CRM一键云上交付

阿里云弹性计算

弹性计算 年度峰会 计算巢

转换匹配患者记录,看Amazon Lake Formation FindMatches显神通!

亚马逊云科技 (Amazon Web Services)

analytics

圆桌对话:云时代下,企业运维面临的挑战与机遇

阿里云弹性计算

运维峰会 圆桌对话

首届LoongArch生态创新大会成功召开,筑巢引凤共建信息产业命运共同体

OpenAnolis小助手

开源 芯片 白皮书

【网络安全】手把手给大家演练红队渗透项目

H

网络安全 渗透测试·

如何使团队的git log更优雅

阿呆

#GitLab

知识库建设的5个步骤

爱吃小舅的鱼

透析阿里云视频云「低代码音视频工厂」之能量引擎——vPaaS视频原生应用开发平台

阿里云CloudImagine

云计算 阿里云 音视频 低代买

2021年12月券商App行情刷新及交易体验评测报告

博睿数据

Flink 实践教程-进阶(6):CEP 复杂事件处理

腾讯云大数据

流计算 Oceanus

工业生产中的“主动刹车”,是怎么实现的?

脑极体

Mycat 作为代理服务端的小知识点

CRMEB

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