贝叶斯神经网络

本文探讨了如何使用贝叶斯神经网络进行价格预测,对比常规神经网络,这种方法对数据依赖性更低,预测结果更准确。通过以太币价格预测为例,展示了如何运用Pyro进行概率编程,实现模型正则化和不确定性估计,同时减少所需训练数据量。贝叶斯方法在不需要手动添加正则化的情况下提供了不确定性估计,适用于有限数据的场景。
摘要由CSDN通过智能技术生成

这篇文章是对贝叶斯神经网络的一个初步认识,可以理解下。

[随着人工智能技术的普及,用机器学习预测市场价格波动的方法最近层出不穷。本文中,Alex Honchar 介绍了利用概率编程和 Pyro 进行价格预测的方法,相较于常规神经网络,新方法对于数据的依赖程度更小,结果更准确。在实验中,作者选择了最近流行的虚拟货币「以太币」作为实例进行价格预测。]

去年我曾发表过几篇有关使用神经网络进行金融价格预测的教程,我认为其中有一部分结果至少还挺有意思,并且值得在实际交易中加以应用。如果你阅读过这些文章,你一定注意到一个现象:当你试图将一些机器学习模型应用于「随机」数据并希望从中找到隐藏规律的时候,训练过程往往会产生严重的过拟合。我们曾使用不同的正则化技术和附加数据应对这个问题,但是这不仅很费时,还有种盲目搜索的感觉。

今天,我想介绍一个略微有些不同的方法对同样的算法进行拟合。使用概率的观点看待这个问题能够让我们从数据本身学习正则化、估计预测结果的确定性、使用更少的数据进行训练,还能在模型中引入额外的概率依赖关系。我不会过多深入贝叶斯模型或变分原理的数学、技术细节,而是会给出一些概述,也更多地将讨论集中在应用场景当中。文中所用的代码可以在以下链接中找到:https://github.com/Rachnog/Deep-Trading/tree/master/bayesian

与此同时,我也推荐大家查阅我此前发布的基于神经网络的财务预测教程:

1. 简单时间序列预测(错误纠正完毕)

2. 正确一维时间序列预测+回测

3. 多元时间序列预测

4. 波动预测和自定义损失

5. 多任务和多模式学习

6. 超参数优化

7. 用神经网络进行经典策略强化

为了更深入地了解概率规划、贝叶斯模型以及它们的应用,我推荐你在以下资源网站中查看:

  • 模式识别和机器学习

  • 黑客贝叶斯方法

  • 下面即将提到的库文件

另外,你还可能会用到下列 Python 库:

  • PyMC3 (https://github.com/pymc-devs/pymc3)

  • Edward (http://edwardlib.org/)

  • Pyro (http://pyro.ai/)

概率编程

这个「概率」指的是什么?我们为什么称其为「编程」呢?首先,让我们回忆一下我们所谓「正常的」神经网络指的是什么、以及我们能从中得到什么。神经网络有着以矩阵形式表达的参数(权重),而其输出通常是一些标量或者向量(例如在分类问题的情况下)。当我们用诸如 SGD 的方法训练这个模型后,这些矩阵会获得固定值。与此同时,对于同一个输入样本,输出向量应该相同,就是这样!但是,如果我们将所有的参数和输出视为相互依赖的分布,会发生什么?神经网络的权重将与输出一样,是一个来自网络并取决于参数的样本——如果是这样,它能为我们带来什么?

让我们从基础讲起。如果我们认为网络是一个取决于其他分布的数集,这首先就构成了联合概率分布 p(y, z|x),其中有着输出 y 和一些模型 z 的「内部」隐变量,它们都取决于输入 x(这与常规的神经网络完全相同)。我们感兴趣的是找到这样神经网络的分布,这样一来就可以对 y ~ p(y|x) 进行采样,并获得一个形式为分布的输出,该分布中抽取的样本的期望通常是输出,和标准差(对不确定性的估计)——尾部越大,则输出置信度越小。

这种设定可能不是很明确,但我们只需要记住:现在开始,模型中所有的参数、输入及输出都是分布,并且在训练时对这些分布进行拟合,以便在实际应用中获得更高的准确率。我们也需要注意自己设定的参数分布的形状(例如,所有的初识权重 w 服从正态分布 Normal(0,1),之后我们将学习正确的均值和方差)。初始分布即所谓的先验知识,在训练集上训练过的分布即为后验知识。我们使用后者进行抽样并得出结果。

图源:http://www.indiana.edu/~kruschke/BMLR/

模型要拟合到什么程度才有用?通用结构被称为变分推理(variational inference)。无需细想,我们可以假设,我们希望找到一个可以得到最大对数似然函数 p_w(z | x)的模型,其中 w 是模型的参数(分布参数),z 是我们的隐变量(隐藏层的神经元输出,从参数 w 的分布采样得到)&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值