贝叶斯随机最优控制,MCMC
Bayesian Stochastic Optimal Control, MCMC
我有一个随机最优控制问题,我希望使用某种基于贝叶斯模拟的框架来解决。我的问题具有以下一般结构:
s_t+1 = r*s_t(1 - s_t) - x_t+1 + epsilon_t+1
x_t+1 ~ Beta(u_t+1, w_t+1)
u_t+1 = f_1(u_t,w_t, s_t, x_t)
w_t+1 = f_2(u_t,w_t, s_t, x_t)
epsilon_t ~ Normal(0,sigma)
objective function: max_{x_t} E(Sigma_{t=0}^{T} V(s_t,x_t,c) * rho^t)
我的目标是探索 f_1、f_2 和 V 的不同函数形式,以确定此模型与 w.r.t 非随机模型和另一个更简单的随机模型有何不同。
状态变量是s_t,控制变量是x_t,u_t和w_t代表对当前状态的一些信念。 objective 函数是 t=0 到 t=T 期间收益(函数 V)的折扣最大值。
我正在考虑使用 Python,特别是 PyMC 来解决这个问题,虽然我不确定如何进行,具体如何优化控制变量。我找到了一本书,1967 年出版,Masanao Aoki 的 Optimization of Stochastic Systems,其中引用了一些可能有用的贝叶斯技术,是否有当前的 Python 实现可能有帮助?或者是否有更好的方法来模拟最佳路径,使用 Python?
我想到的第一个猜测是尝试像 chainer
或 theano
这样的神经网络包,它们可以跟踪成本函数相对于控制函数参数的导数;他们还有一堆优化插件例程。您可以使用 numpy.random
生成样本(粒子),从库组件组成您的控制函数,并 运行 通过显式欧拉方案进行首次尝试。这将为您提供粒子的成本函数及其关于参数的导数,这些参数可以提供给优化器。
这里可能出现的问题是求解器的迭代将创建大量导数跟踪对象。
Github 上也有一些关键字 particle filter python
:
的点击率
https://github.com/strohel/PyBayes
https://github.com/jerkern/pyParticleEst
还有 a manuscript around 提到作者在 Python 中实现了过滤器,所以你可能想联系他们。
我有一个随机最优控制问题,我希望使用某种基于贝叶斯模拟的框架来解决。我的问题具有以下一般结构:
s_t+1 = r*s_t(1 - s_t) - x_t+1 + epsilon_t+1
x_t+1 ~ Beta(u_t+1, w_t+1)
u_t+1 = f_1(u_t,w_t, s_t, x_t)
w_t+1 = f_2(u_t,w_t, s_t, x_t)
epsilon_t ~ Normal(0,sigma)
objective function: max_{x_t} E(Sigma_{t=0}^{T} V(s_t,x_t,c) * rho^t)
我的目标是探索 f_1、f_2 和 V 的不同函数形式,以确定此模型与 w.r.t 非随机模型和另一个更简单的随机模型有何不同。
状态变量是s_t,控制变量是x_t,u_t和w_t代表对当前状态的一些信念。 objective 函数是 t=0 到 t=T 期间收益(函数 V)的折扣最大值。
我正在考虑使用 Python,特别是 PyMC 来解决这个问题,虽然我不确定如何进行,具体如何优化控制变量。我找到了一本书,1967 年出版,Masanao Aoki 的 Optimization of Stochastic Systems,其中引用了一些可能有用的贝叶斯技术,是否有当前的 Python 实现可能有帮助?或者是否有更好的方法来模拟最佳路径,使用 Python?
我想到的第一个猜测是尝试像 chainer
或 theano
这样的神经网络包,它们可以跟踪成本函数相对于控制函数参数的导数;他们还有一堆优化插件例程。您可以使用 numpy.random
生成样本(粒子),从库组件组成您的控制函数,并 运行 通过显式欧拉方案进行首次尝试。这将为您提供粒子的成本函数及其关于参数的导数,这些参数可以提供给优化器。
这里可能出现的问题是求解器的迭代将创建大量导数跟踪对象。
Github 上也有一些关键字 particle filter python
:
https://github.com/strohel/PyBayes
https://github.com/jerkern/pyParticleEst
还有 a manuscript around 提到作者在 Python 中实现了过滤器,所以你可能想联系他们。