概率建模语言:编程与推理学习的探索
1. 概率编程语言概述
概率编程在知识表示和机器学习领域中扮演着重要角色,它旨在让具有领域专业知识但可能缺乏概率理论或机器学习专业知识的程序员能够进行概率建模和机器学习。随着概率关系模型(PRMs)及相关形式体系在九十年代的出现,研究人员开始探索带有概率构造的编程语言。
2. 早期概率编程形式
- 关系贝叶斯网络(RBNs)
- 原理 :RBNs 将概率与谓词关联起来,对于给定的有限域,可以得到一个贝叶斯网络,该网络指定了谓词解释的概率分布。其设计理念是使用少量强大且表达性强的构造,同时允许进行理论分析。
- 示例代码 :
burglary(x) = 0.005;
alarm(x) = 0.95 burglary(x) + 0.01 (1-burglary(x));
cityAlarm = NoisyOr{0.8 alarm(x)|x; x = x};
- **代码解释**:
- `burglary(x)` 的概率公式是一个简单的数值,表示对于所有 `x`,`burglary(x)` 为真的概率是 0.005。
- `alarm(x)` 的概率公式基于 `burglary(x)` 的值进行计算,如果 `burglary(x)` 为真,则返回 0.95,否则返回 0.01。
- `cityAlarm` 的概率公式定义了一
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



