是否有人使用编程语言Church?任何人都可以推荐实际应用我刚刚发现它,虽然它听起来像解决了人工智能和机器学习中一些长期存在的问题,但我对此持怀疑态度。我从来没有听说过它,并且很惊讶地发现它实际上已经存在几年了,已经在Church: a language for generative models论文中公布了。教堂编程语言应用程序
回答
我不知道该怎么说实际应用的问题。用生成模型建模认知能力是否构成了您的思想中的“实际应用”?
Church(至少现在)的关键重要性在于,它允许我们那些使用AI问题的概率推理解决方案来更简单的建模方法。它本质上是Lisp的一个子集。
我不同意克里斯S,它是在所有的玩具语言。虽然这些推理问题中的一些可以用其他语言复制(我已经在Matlab中建立了几个),但它们通常不是很可重用,而且你真的必须热衷于在4和5中深入循环(我讨厌它)。
Church没有这样处理问题,而是使用lamda calaculus的递归优势,并且允许使用memoization,这对于生成模型非常有用,因为您的生成模型通常与试验后的试验不同 - 尽管为了测试你真的需要这个。
我想说,如果你所做的与贝叶斯网络,分层贝叶斯模型,POMDPs或动态贝叶斯网络的概率解决方案有任何关系,那么我认为教会是一个很好的帮助。对于它的价值,我与Noah和Josh(Church的两位作者)合作过,现在没有人更好地处理概率推论(恕我直言)。
Lamda calaculus已经在几十种图书馆中用于多种语言。 memoization是一个与时间一样古老的设计模式。这里没有新东西。我仍然不清楚为什么他们觉得他们需要发明另一种Lisp方言,而不是仅仅使用Common Lisp或Scheme。 – Cerin 2010-04-22 13:20:23
Cerin,语言的重点本身既不是lambda演算,也不是记忆,而是通过编写一个模拟它的程序来表示一个“世界”概率模型的能力,然后询问特定事件发生的可能性例如,如果您编写一个程序来描述如何将3D对象投影到2D图像中,则可以问:给定此图像时,生成它的3D对象是什么?也就是说,你自动从一个相对简单的图像投影问题转向更困难的视觉问题。你给出*输出*并得到*输入*,以概率。 – user118967 2015-03-12 18:30:33
可能该文章的目的是在愚人节发表。 这是去年3月底的另一篇文章。 http://dspace.mit.edu/handle/1721.1/44963
你知道描述教会比我说的更好吗?这是麻省理工学院的文章:http://web.mit.edu/newsoffice/2010/ai-unification.html
它稍微更加双曲线,但是,我不能免疫本文中的乐观。
教堂是概率编程语言家族的一部分,它允许将模型的估计从其定义中分离出来。这使得想要应用机器学习的人们更容易理解概率建模和推理,但是他们本身并不是硬核机器学习研究人员。
很长一段时间,概率编程意味着您必须为您的数据想出一个模型,并自己推导模型的估计值:您有一些观测值,并且您想要了解这些参数。模型的结构与估算参数的方式密切相关,并且您必须拥有相当先进的机器学习知识才能正确进行计算。最近的概率编程语言试图解决这个问题,并使数据科学家或从事机器学习工作的人员更容易获得。
打个比方,考虑以下因素:
你是一个程序员,你想在计算机上运行一些代码。早在20世纪70年代,你必须在打卡上编写汇编语言,然后将它们送入一台主机(为此你必须预定时间)以运行你的程序。现在是2014年,并且有高级,简单易学的语言,即使不知道计算机体系结构如何工作,也可以编写代码。了解计算机如何使用这些语言编写代码仍然很有帮助,但是您不需要就可以使用,而且如果您不得不使用打孔卡进行编程,则有更多的人编写代码。
概率编程语言对于使用统计模型的机器学习也是一样的。另外,教会不是这个的唯一选择。如果你不是一个函数式编程的奉献者,你也可以看看下面的框架,在图形模型贝叶斯推理:
- Infer.NET,由Microsoft Research lab in Cambridge, UK
- stan写在C#,C++编写的统计在哥伦比亚省的部门
- 1. 建议一个文本编辑器或教堂编程语言的IDE
- 2. 系统编程语言和应用程序编程语言之间的区别
- 3. 多语言应用程序编码
- 4. 汇编语言入门视频教程?
- 5. 用于编写GUI应用程序的编程语言
- 6. Groovy语言书籍/教程
- 7. 汇编语言子程序
- 8. iPhone应用程序使用什么编程语言?
- 9. 使用用外语(口头)语言编写的应用程序
- 10. 编程语言
- 11. Mac/Windows MIDI应用程序编程语言
- 12. 需要永久运行的应用程序的编程语言
- 13. CGI应用程序是否有优选的编程语言?
- 14. d编程语言教程 - 一个圆的面积 - 错误:toFloat
- 15. 面向语言的编程文章/论文/教程
- 16. 用2种语言编写程序?
- 17. 多语言应用程序的Swing应用程序框架
- 18. .NET编程语言
- 19. java编程语言
- 20. Siri编程语言
- 21. Scheme编程语言
- 22. NesC编程语言
- 23. SIMD编程语言
- 24. 是否有用Io编程语言编写的应用程序? (或者,分发Io应用程序。)
- 25. 关于C++的机器语言教程教程
- 26. 编程语言语法
- 27. 编程语言的原语
- 28. 语言在应用程序Android
- 29. 两种语言的应用程序
- 30. 多语言应用程序UI
Slashdot,我猜? – Jacob 2010-03-31 17:25:43
充其量,讨论问题应该被标记为社区维基。大多数情况下,它们不是Stack Overflow的适当格式。 – danben 2010-03-31 17:32:55
在阅读了项目的wiki和文档之后,很明显这只是另一种没有严肃的未来的玩具语言。这些例子都不是特定于教会的,而且几乎可以在任何语言中复制。明显引起我注意的文章过分夸大和歪曲了项目的范围。投票结束。 – Cerin 2010-04-02 18:28:19