|
|
51CTO旗下网站
|
|
移动端

1.2.2 更好的模拟语言

《概率编程实战》第1章概率编程简介,本章中,您将学习如何使用概率推理系统的两个主要组成部分做出日常决策,还将了解现代概率编程语言是如何比Java或Python等通用语言更轻松地创建这种推理系统的。本章还将介绍Figaro,这是本书自始至终使用的基于Scala的概率编程语言。本节为大家介绍更好的模拟语言。

作者:姚军 译来源:人民邮电出版社|2018-01-20 17:10

1.2.2 更好的模拟语言

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

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

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

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


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux命令、编辑器与Shell编程

本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍: 更好更实用的示例覆盖了实际工作中需...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊