PP概率编程,也许是首选的量化建模语言

PP概率编程,也许是首选的量化建模语言

本文摘自《零起点2机器学习与量化交易》,预计2018年12月出版。
在有关TensorFlow、PyTorch、MXNet等深度学习、神经网络的图书当中,笔者曾经说过:
所有的神经网络,深度学习算法模型,本质上,都是基于概率的模型。

PP概率编程,英文名称是probabilistic programming,相对于PP概率编程这个概念,更加流行的专业名称是:概率编程语言(probabilistic programming language,简称PPL。
这是因为,PP概率编程,是与传统面向过程、OOP面向对象完全不同的编程模式;就AI人工智能领域,PP概率编程,与传统的机器学习,神经网络完全不同,是完全独立的另外一个体系。

PP概率模型,一直是机器学习、神经网络的重点领域之一:

  • Pyro概率编程语言,Uber与斯坦福大学最新的研究成果,该语言基于 Python 与 PyTorch 之上,专注于变分推理,同时支持可组合推理算法。Pyro 的推理算法,是通过随机函数,快速构建神经网络模型。
  • WebPPL,一个基于浏览器的在线概率编程网站,以教学为主。
  • Edward,谷歌推出的概率编程框架,是一个用于概率建模、推理和评估的 Python 库。它是一个用于快速实验和研究概率模型的测试平台,目标是融合:贝叶斯统计学和机器学习、深度学习、概率编程三个领域。Edward 构建于 TensorFlow 之上,它支持计算图、分布式训练、CPU/GPU 集成、自动微分等功能,可以使用 TensorBoard 进行可视化分析。

就笔者个人的角度而言,对于金融量化分析领域,PP概率模型可能比其他神经网络、深度学习算法,更加接近一线的需要,理由如下:

  • 金融量化项目,本身就是基于概率的推理编程。
  • PP概率模型,比其他神经网络,有更加深厚的理论基础。
  • PP概率模型,算法模型简单清晰,便于理解。

PP概率模型大部分都是基于Bayesian贝叶斯算法的,目前常见的PP概率算法有:

  • Bayesian贝叶斯算法。
  • Bayesian inference贝叶斯推理机。
  • MCMC马尔科夫链蒙特卡罗算法。
  • 序列蒙特卡罗推理算法。
  • HMC哈密顿蒙特卡罗算法。

PP概率算法,更多的属于神经网络、深度学习领域,就本书的读者而言,有些过于专业,不过sklearn机器学习模块库当中,也集成了两组和PP概率算法相关的函数。
一组是基于Bayesian贝叶斯函数,另外一组是HMM隐马尔可夫函数。

 

ps:
@@Pyro概率编程语言网络资源:
项目链接:http://pyro.ai/
GitHub 链接:https://github.com/uber/pyro

@@WebPPL在线概率编程网站网络资源:
项目链接:http://webppl.org/
GitHub 链接:https://github.com/probmods/webppl

@@edward项目网络资源:
项目链接:http://edwardlib.org/
GitHub 链接:https://github.com/blei-lab/edward

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注