有没有人使用过编程语言 Church? 有没有人可以推荐一些实际应用? 我刚发现它,虽然听起来它解决了人工智能和机器学习中一些长期存在的问题,但我对此持怀疑态度。 我以前从未听说过它,并且惊讶地发现它实际上已经存在了几年,并在论文 Church: 一种用于生成模型的语言 中发布。
回答:
我不确定该如何讨论实际应用的问题。用生成模型来模拟认知能力,在你看来是否构成一种“实际应用”?
Church(至少目前)的关键重要性在于,它为我们这些从事人工智能问题的概率推理解决方案的人提供了一种更简单的建模方式。 它本质上是Lisp的一个子集。
我不同意Chris S的观点,认为它是一种玩具语言。 虽然一些推理问题可以在其他语言中复制(我已经用Matlab构建了几个),但它们通常不是非常可重用的,而且你必须非常喜欢在4层和5层for循环中工作(我讨厌它)。
Church并没有以这种方式解决问题,而是利用了lamda calculus的递归优势,并且还允许一种称为memoization的技术,这对于生成模型非常有用,因为你的生成模型通常在每次试验后都不相同——尽管为了测试,你确实需要它。
我想说的是,如果你的工作与贝叶斯网络、分层贝叶斯模型、POMDP的概率解决方案或动态贝叶斯网络有任何关系,那么我认为Church是一个很大的帮助。 顺便说一句,我曾与Noah和Josh(Church的两位作者)合作过,恕我直言,目前没有人能更好地掌握概率推理。