了解贝叶斯建模和机器学习概率编程
扫描二维码
随时随地手机看文章
传统的机器学习模型和人工智能技术往往存在一个严重的缺陷:它们缺乏不确定性的量化。这些模型通常提供点估计,而不考虑预测的不确定性。这种限制削弱了评估模型输出可靠性的能力。此外,传统的ML模型缺乏数据,往往需要正确的标记数据,因此,往往难以解决数据有限的问题。此外,这些模型缺乏将专家领域知识或先前信念纳入模型的系统框架。如果没有利用特定领域的洞察力的能力,模型可能会忽略数据中的关键细微差别,并倾向于无法发挥其潜力。毫升模型变得越来越复杂和不透明,虽然越来越多的人要求在根据数据和大赦国际作出的决定中增加透明度和问责制。
概率方案拟订:应对这些挑战的解决办法
概率编程提供了一个解决这些挑战的建模框架。其核心在于贝叶斯统计学,它与统计学的频率解释不同。
贝叶斯统计
在频率论统计中,概率被解释为一个事件的长期相对频率。数据被认为是随机的,是从固定定义分布中取样的结果。因此,测量中的噪声与采样的变化有关.频繁的人相信概率是存在的,是固定的,无限的实验会收敛到固定的值。频率论方法不给参数分配概率分布,它们对不确定性的解释源于估计值的长期频率属性,而不是关于参数值的显式概率语句。
在…中 贝叶斯统计 ,概率被解释为某一特定信念中的不确定性的尺度。数据被认为是固定的,而系统的未知参数被看作是随机的变量,并且使用概率分布来建模。贝叶斯方法捕捉参数本身的不确定性,从而提供了一种更直观和灵活的不确定性量化方法。
频率论者与贝叶斯统计
概率机器学习
在频率型XML中,模型参数被看作是固定的,并通过最大似然估计来估计,在这种情况下,似然函数量化了观察统计模型数据的概率。多边环境协议寻求参数点估计,最大化这一概率。执行《多边环境法》:
· 假设一个模型和基础模型参数。
· 推导基于假定模型的可能性函数.
· 优化概率函数以获得参数的点估计.
因此,包括深度学习在内的频率论模型依赖于优化,通常是基于梯度的优化,作为其基本工具。
相反,贝叶斯方法模型未知参数及其与概率分布的关系 使用贝叶斯定理来计算和更新这些概率,因为我们获得了新的数据。
贝叶斯定理: "贝叶斯法则告诉我们如何从一个连接中推导出条件概率,条件作用告诉我们如何理性地更新我们的信念,而更新信念是学习和推理的全部内容"[2]。
这是一个简单但强大的方程。
· 先前表示对未知参数的最初信念
· 可能性表示基于假定模型的数据的概率
· 边缘概率是模型证据,是一个规范化系数.
· 后向分布代表了我们对参数的最新认识,包括了先前的知识和观察到的证据。
贝叶斯机器学习推理是贝叶斯机器学习的基本工具. 后向分布所代表的参数分布 用于推理,提供了一个更全面的不确定性的理解。
运行中的贝叶斯更新: 下面的图展示了一个简单的抛硬币实验的后向分布,它跨越不同的样本尺寸和两个不同的前向分布。这个可视化提供了对不同样本尺寸和先前信念的组合如何影响结果的后向分布的洞察力。
样本尺寸和样本大小对后向分布的影响
如何模拟后向分布
在大多数情况下,表面上简单的后向分布是难以计算的。特别是分母,即。边缘似然积分往往是可插入的,特别是在使用更高维度参数空间时。在大多数情况下,没有封闭形式的解,数值积分方法也是计算密集型的。为了应对这个挑战我们依靠一类特殊的算法 蒙特卡洛 模拟后向分布的模拟。这里的想法是从后面的分布中取样,而不是显式地建模,用这些样本来表示模型参数的分布
马尔可夫链蒙特卡洛(MMC)
" MMC方法包括一类从概率分布抽样的算法.通过构造以理想分布为均衡分布的马尔可夫链,可以通过记录来自该链的状态来获得所需分布的样本 "[3]。一些常用的McMC采样器是:
· 黑斯廷斯大都会
· 吉布斯采样器
· 哈密顿指数蒙特卡洛(HMC)
· 无U型采样器(坚果)
· 连续蒙特卡洛
概率编程
概率规划是贝叶斯统计的方案编制框架。它涉及语言的语法和语义的发展,这些语言表示条件推理问题和开发那些推理问题的"解决者"。 从本质上讲,概率编程是贝叶斯建模的工具,而自动分化工具则是经典的机器学习和深度学习模型 [2].
概率编程语言的生态系统多种多样,每种语言都有自己的语法、语义和功能。一些最流行的语言包括:
· [4]: 巴格斯是最早的概率编程语言之一,以其方便用户的接口和支持广泛的概率模型而闻名。实现了吉布斯采样和其他马尔可夫链蒙特卡罗方法的推理.
· [5]: JGG是贝叶斯分层建模的专用语言,特别适合于嵌套结构的复杂模型。它利用吉布斯采样算法进行后推理。
· 斯坦: 一种概率编程语言,以其表达建模语法和有效的抽样算法而闻名。斯坦被广泛应用于学术界和工业界的各种贝叶斯建模任务。 斯坦在两个主要方面不同于小虫和小虫。首先,斯坦是基于一种新的强制性概率编程语言,它比基于错误或JTAG的声明性图形建模语言更灵活和更有表现力,其方式包括声明带有类型的变量,支持本地变量和条件语句。第二,斯坦的马尔可夫链蒙特卡洛(MMC)技术是基于哈密顿量蒙特卡洛(HMC),这是一个比吉布斯取样或米球-黑斯廷斯更高效和健壮的采样器,用于复杂的后柱模型" [6].
· 巴耶兹达b: BYESDB是一个用于大规模数据分析和概率数据库查询的概率编程平台。它使用户能够使用sql类查询在关系数据库上执行概率推断[7]
· 小册子3: PYMC3是一个用于概率编程的比顿库,它为构建和分析概率模型提供了一个直观和灵活的接口。它利用先进的采样算法如哈密顿数蒙特卡罗(HMC)和自动分化变分推理(ADVI)进行推理[8]。
· 张力流概率: " 张力流概率(TFP)是一个构建在张力流基础上的巨蛇库,它可以很容易地将概率模型与现代硬件(TPU、GPU)上的深入学习结合起来。 [9] .
· 烟火: PERO是一种通用的概率编程语言(PPL),它写在PUTUT的后端。可以灵活和富有表现力的深度概率建模,统一现代深度学习和贝叶斯建模的最佳. [10].
这些语文共有一个共同的工作流程,概述如下:
1. 示范定义: 该模型定义了数据生成过程、潜在参数及其相互关系。这一步骤需要仔细考虑基本制度和对其所作的假设。 行为 .
2. 事先分发说明: 定义模型中未知参数的前置分布。这些前科在观察任何数据之前编码从业者的信念、领域或有关参数的事先知识。
3. 可能性说明: 描述可能性函数,表示受未知参数影响的观测数据的概率分布.可能性函数量化模型预测与观测数据之间的一致性。
4. 后分布推断: 用抽样算法近似的模型参数的后分布所观察到的数据。这通常涉及运行马尔可夫链蒙特卡罗(MMC)或变分推理(VI)算法从后分布产生样本。
案例研究:预测股票指数波动性
在本研究中,我们将采用贝叶斯建模技术来预测股票指数的波动性。这里的波动性是衡量股票价格随时间变化的程度,是评估某一股票相关风险的一个重要指标。
数据 :为了进行分析,我们将利用标准普尔500指数的历史数据。标准普尔500指数是一种广泛使用的基准指数,用来跟踪美国500只大盘股票的表现。通过研究指数价格随时间变化的百分比变化,我们可以深入了解其波动性。
标准普尔500-股价和百分比变化
从上面的情节可以看出,时间序列----连续几天间的价格变化:
· 不变平均值
· 随着时间的推移改变差异,即:,时间序列显示出异质性
建模异变性: "在统计学中,如果所有随机变量都有相同的有限方差,那么随机变量的序列就是同构的;这也被称为方差的均匀性。互补的概念被称为异质性,也被称为方差的异质性"[11]。 自回归条件异质性 模型是专门设计来解决时间序列数据中的异变性。
贝叶斯,经常采用拱形模型
贝叶斯建模的主要好处包括能够在模型参数和预测中纳入先前的信息和量化不确定性。在数据有限的情况下,以及在具备先前知识的情况下,这些方法特别有用。
总之,贝叶斯建模和概率编程为解决传统机械电子学习方法的局限性提供了强有力的工具。这些技术采用了不确定性量化,吸收了先前的知识,并提供了透明的推理机制,从而使数据科学家能够在复杂的现实世界情景中做出更明智的决定。