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

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,我们已经使用概率编程推断恶意软件实例的组件并确定它们的演变。但是,我相信这些应用仅仅是个开始。将会有越来越多的人用概率编程系统做出所在领域的决策。阅读本书,您也有机会成为这一新技术的尝鲜者。

时间: 2024-11-01 23:27:14

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

《树莓派开发实战(第2版)》——导读

前言 树莓派开发实战(第2版)自从2011年诞生以来,树莓派已经成为基于Linux的低成本电脑和嵌入式计算平台这两个领域中的重要角色.同时,也受到了教育工作者和业余爱好者们的一致好评. 自从本书第1版问世以来,树莓派的销售量已超过了几百万台,同时还出现了许多新型号的树莓派.某些型号,比如B+.A+和B+型树莓派2等,还对该设备的规范进行了改进,出现了具有4核处理器的树莓派2和树莓派计算模块,即可以把树莓派作为一个插件式电路板用作更大系统的零部件. 针对出现的各种新型树莓派以及Raspbian操作

《树莓派开发实战(第2版)》——第2章 网络连接

第2章 网络连接 树莓派开发实战(第2版) 2.0 引言 树莓派在设计之初,便是要连接到互联网的.互联网通信是它的关键功能之一,这给其他各种用途铺平了道路,例如家庭自动化.Web服务.网络监控等. 树莓派既可以使用以太网线缆(这种情况至少要求是B型树莓派)联网,也可以使用USB Wi-Fi无线网卡连接网络.树莓派一旦连接到互联网上面,就意味着你可以通过其他计算机来远程连接树莓派.这对于本身难以接近,或者没有连接键盘.鼠标和显示器的树莓派来说,是非常有用的. 接下来,本章将详细介绍树莓派连接互联网

《树莓派开发实战(第2版)》——第1部分 概率编程和Figaro简介

第1部分 概率编程和Figaro简介 概率编程实战什么是概率编程?它有什么用处?如何使用它?这些问题是第1部分的主题.第1章介绍概率编程的基本思路.首先介绍概率推理系统的概念,说明概率编程如何将传统的概率推理系统概念和编程语言技术相结合. 在本书中,您将使用Figaro概率编程系统.第1章简要介绍Figaro,第2章提供所有Figaro主要概念的简单教程,帮助您快速开始编写概率程序.第3章介绍一个完整的概率编程应用程序,为您提供实际应用程序组合的全貌.虽然这一章接近全书的开头,因此您从一开始就一

《树莓派开发实战(第2版)》——第2章 Figaro快速教程

第2章 Figaro快速教程 概率编程实战本章介绍如下内容: 模型创建.证据陈述.推理运行和查询的回答理解模型基本构件从这些构件构造复杂模型现在,您已经了解了概率编程的含义,可以详细了解Figaro,以便编写自己的简单程序,用它们回答查询.本章的目标是尽快介绍Figaro的最重要概念.后面的章节详细解释模型的含义以及对它们的理解.让我们开始吧.

《树莓派开发实战(第2版)》——1.3 Figaro简介:一种概率编程语言

1.3 Figaro简介:一种概率编程语言 在本书中,您将使用一种称为Figaro的概率编程系统.(我用莫扎特的歌剧<费加罗的婚礼>中的角色为其命名.我喜爱莫扎特,并在该剧于波士顿的一次演出中饰演巴尔托洛医生.)本书的主要目标是教授概率编程的原则,在本书中学到的技术应该可以在其他概率编程系统上沿用.附录B简单描述了现有的一些系统.但是,本书还有第二个目标--帮助您获得创建使用概率程序的亲身体验,并提供可以立即使用的工具.因此,许多例子都用Figaro代码实现. Figaro是从2009年开始开

《树莓派开发实战(第2版)》——2.1 连接有线网络

2.1 连接有线网络 面临问题 你想通过有线网络将树莓派连接到互联网. 解决方案 首先,如果你的树莓派的型号为A.A+或Zero的话,那么它们自身并没有提供RJ45以太网接口.这种情况下,最好使用USB无线网卡来连接互联网(见2.5节). 如果你的树莓派是B型的,可以将以太网电缆插入RJ45接口,同时将线缆另一端接入家用路由器后方的空闲接口中即可.图2-1展示的是一款老版的树莓派1,它的网络LED就在音频接口旁边.对于树莓派2来说,这些LED位于以太网接口自身内部. 树莓派一旦连接到网络上面,它

《树莓派开发实战(第2版)》——1.10 优化性能

1.10 优化性能 面临问题你感觉自己的树莓派运行得太慢了,所以,想通过超频来提速. 解决方案如果你使用的是4核处理器的树莓派2的话,你不会有太慢的感觉.但是,如果你使用的是单核心处理器的老版树莓派的话,感觉就像是老牛拉破车. 为了提高树莓派的运行速度,你可以使用超频方法. 当然,这会使树莓派的耗电量有所增加,同时也会使它变得更热(参考后面的讨论). 这里使用的超频方法称为动态超频,因为它会自动检测树莓派的温度,并且一旦温度过高,时钟频率就会自动下调. 为了给树莓派超频,可以在终端输入下列命令来

《树莓派开发实战(第2版)》——2.5 配置无线网络连接

2.5 配置无线网络连接 面临问题你想通过USB无线网卡将树莓派连接到互联网上. 解决方案如果你的Raspbian是最新版本的话,那么配置Wi-Fi的任务将易如反掌.你只需插入USB Wi-Fi无线网卡,然后在屏幕右上方单击Network图标即可(见图2-3).之后,你会看到一个无线网络清单.你选择网络后,系统将提示你输入Pre Shared Key,即密码. 输入密码,稍等片刻,Network图标就会变为标准的Wi-Fi标志,说明无线网络已经连接成功. 如果你使用的是老版的Raspbian的话

《树莓派开发实战(第2版)》——1.3 选择电源

1.3 选择电源 面临问题 你需要为树莓派选择电源. 解决方案 树莓派对电源的基本电气规格的要求为提供5V稳压直流电. 至于电源在电流大小方面的要求,这要取决于树莓派的具体型号以及其连接的外围设备.你最好采用一款能够轻松驱动树莓派的电源,因此电流一般不宜小于700mA.如果你在同一个卖家那里购买树莓派和电源的话,他通常能够告诉你某款电源是否与你的树莓派相匹配. 如果你打算使用无线上网卡或其他大功率的USB外设的话,那么最好选用能够提供1.5A甚至2A电流的电源. 此外需要注意的是,那些非常廉价的