《树莓派开发实战(第2版)》——1.2 为什么使用概率编程

简介:

本节书摘来异步社区《概率编程实战》一书中的第1章,第1.2节,作者:【美】Avi Pfeffer(艾维·费弗),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 为什么使用概率编程

概率推理是机器学习的基础技术之一。Google、Amazon和Microsoft等公司使用它理解可用数据。概率推理已经用于各种各样的应用程序,如预测股价、推荐电影、诊断计算机和检测网络入侵。许多应用都使用了本书中将要学习的技术。

前一小节中,有两个引人注目的要点。

概率推理可用于预测未来、推断过去,以及从过去的事实中学习更好地预测未来。
概率编程是使用图灵完备编程语言作为表示语言的概率推理。
将上面两个要点结合起来,可以得到如下表示。

事实:概率推理+图灵完备=概率编程

概率编程的动机是将两个本身就很强大的概念结合起来,结果是使用计算机辅助不确定性下决策的更简单、更灵活方法。

1.2.1 更好的概率推理
大部分现有概率表示语言在所能表示的系统丰富性上都很有限。有些相对简单的语言(如贝叶斯网络)假定固定的变量集,其灵活性不足,不能建立变量本身可能变化的领域模型。近年来,已经有一些具有更高灵活性的先进语言开发出来。其中一些语言(如BUGS)还提供了编程语言的特征,包括循环和数组,但是没有达到图灵完备。BUGS等语言的成功说明了更丰富、结构更严整的表示方式的必要性。但是,向成熟的图灵完备语言转移,为概率推理开拓了一个新领域。现在,可以建立具有许多交互实体及事件的长期运行过程的模型。

我们再次考虑足球的例子,但是这次想象一下,您的工作是体育分析,希望为一支球队做出人员配备决策的建议。您可以使用积累的统计数字做出决策,但是统计数字不能捕捉积累它们时所处的背景。您可以建立赛季的细致模型,实现粒度更细、情境感知的分析。这要求建立许多相关事件以及相互作用的球员和球队的模型。如果没有完整的编程语言所提供的数据结构和控制流,构建这种模型是难以想象的。

现在,让我们再次思考产品投放的例子,从综合的角度观察业务决策过程。产品投放不是孤立事件,而是经过市场分析、研究和开发的过程,各个过程的结果都有不确定性。产品投放的结果取决于所有阶段,以及市场中其他产品的分析。全面的分析还需要关注竞争对手对您的产品的反应,以及他们可能提出的新产品。这一问题很困难,因为您必须对竞争产品做出推测。甚至有一些竞争对手尚不为人所知。在这个例子中,产品是复杂过程产生的数据结构。同样,用完整的编程语言创建模型很有益处。

不过,概率编程的好处之一是,可以使用更简单的概率推理框架。概率编程系统可以表示广泛的现有框架,以及这些框架所不能表示的系统。本书将传授许多使用概率编程的此类框架。所以,在概率编程的学习中,您还能够精通许多当今常用的概率推理框架。

1.2.2 更好的模拟语言
图灵完备的概率建模语言已经存在。它们常常被称作模拟语言。我们知道,使用编程语言模拟足球赛季等复杂过程是可能的。在这种情境下,我使用模拟语言这一术语描述能够表示复杂过程随机执行的语言。正如概率程序,这些模拟随机执行,以产生不同输出。模拟和概率推理一样应用广泛,涵盖了从军事计划到组件设计以及公共卫生及体育比赛预测等范围。确实,精密模拟的广泛使用说明了对丰富概率建模语言的需求。

但是,概率程序远不仅是模拟。使用模拟,您只能完成概率程序的一项功能:预测未来。无法用它推断观测结果的根源。而且,尽管可以不断地用已知的当前信息更新模拟,但是很难包含必须推断的未知信息。因此,从过去经验中学习以改善未来预测和分析的能力很有限。不能将模拟用于机器学习。

概率程序就像不仅可以运行,而且可以分析的模拟一样。开发概率编程的关键要点是,推理算法既可用于较简单的建模框架,也可用于模拟。因此,您有能力编写一个模拟并在其基础上执行推理,以创建概率模型。

最后一点,概率推理系统已经出现了一段时间,Hugin、Netica和BayesiaLab等软件提供了贝叶斯网络系统。但是概率编程更有表现力的表示语言很新颖,我们刚刚开始发现其强大的应用。老实说,我不能告诉您概率编程已经用于大量现有应用,但是有一些重要的应用。Microsoft已经能够使用概率编程,确定在线游戏玩家的真正技能水平。加州大学伯克利分校的Stuart Russell编写了一个程序,通过识别表明核爆炸的地震活动,帮助联合国《全面禁止核试验条约》的实施。麻省理工学院(MIT)的Josh Tenenbaum和斯坦福大学的Noah Goodman已经创建了建立人类识别模型的概率程序,并在试验中取得了很大的成功。在Charles River Analytics,我们已经使用概率编程推断恶意软件实例的组件并确定它们的演变。但是,我相信这些应用仅仅是个开始。将会有越来越多的人用概率编程系统做出所在领域的决策。阅读本书,您也有机会成为这一新技术的尝鲜者。

相关文章
|
7月前
|
存储 网络协议 安全
嵌入式面试题目汇总之经典
嵌入式面试题目汇总之经典
80 1
|
1月前
|
存储 编译器 C语言
单片机学习之路一些常见的疑问也是我的个人学习总结
单片机学习之路一些常见的疑问也是我的个人学习总结
|
9月前
第六章 测验【嵌入式系统】
第六章 测验【嵌入式系统】
37 0
|
12月前
|
存储 程序员 Linux
学习系统编程No.23【信号实战】
学习系统编程No.23【信号实战】
|
缓存
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
299 0
蓝桥杯之单片机学习(十一)——串口通信的基本原理与应用
|
编解码 监控 物联网
树莓派4b入手(上篇)
不就是一台微型计算机. 恰好10.28作为🎂送给自己. 反正也就我☝️人. 树莓派需要资源: 电源(+电源线请选择5V 3A的电源+USB TypeC的数据线), 安装了树莓派系统的SD卡, 外壳 额外资源: 键鼠套装, 用于连接的显示屏的屏和线 机型选择: 最新的4b, 低配版1G
324 0
|
编解码 Ubuntu Linux
树莓派4b入手 (下篇)
系统选择 推荐普通用户使用官方镜像即可. 该系统对树莓派设备适配优化的最为成熟. Download Raspberry Pi OS for Raspberry Pi https://www.raspberrypi.org/downloads/raspberry-pi-os/ 如果直接下载系统包过慢,可以选择下载torrent. 或者去清华 tuna下载站 https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/ 去进行下载. 这里推荐使用官方 Raspberry Pi Imager 去安装系统
211 0
树莓派4b入手 (下篇)