强化学习大家这几年应该不陌生,从AlphaGo到AlphaZero让大家见识到了强化学习的力量。我们今天给大家介绍一个在强化学习中核心思维马尔可夫决策过程(MDP)。马尔科夫决策过程是基于马尔科夫论的随机动态系统的最优决策过程。它是马尔科夫过程与确定性的动态规划相结合的产物,故又称马尔科夫型随机动态规划,属于运筹学中数学规划的一个分支。今天我们给大家介绍下马尔可夫决策过程中用到一些算法以及这些算法在R语言中如何实现的。
首先我们需要安装一个结合的工具包MDPtoolbox。安装步骤我们不赘述了,接下来看下里面的主要的函数:
首先我们看下基础的函数:
1. mdp_example_forest创建简单的森林管理MDP模型。参数默认设置
转移概率(P)和奖励矩阵(R)具体形式:
实例代码:
mdp_example_forest()
2. mdp_example_rand 创建随机的MDP模型。具体参数:
实例代码:
PR=mdp_example_rand(2, 2)
3. mdp_check 检查模型的有效性。如果返回空字符串,代表模型没有问题;如果有问题则会返回相应的问题。
4. mdp_check_square_stochastic 检查模型的随机性和路径的正方性。如果返回空字符串,代表模型没有问题;如果有问题则会返回相应的问题。
5. mdp_bellman_operator 利用贝尔曼算子进行MDP的求解。更新价值函数V= PR + discount*P*Vprev。获取每一个状态点的估测值。
6. mdp_eval_policy_iterative 计算最优策略的评估值
7. mdp_eval_policy_matrix获取某一个策略的评估值。
其中的参数policy指的某个动作。
8. mdp_eval_policy_optimality通过最优策略值确定线路。
接下来我们就看下主要的核心函数,获取最优化的策略,以及相应的值。1. mdp_policy_iteration 基于策略迭代算法。
2. mdp_policy_iteration_modified基于改良的策略迭代算法。相对以前的迭代过程,原始的是当出现相同的策略时停止迭代,认为最优;改良后的认为值函数不再更新时停止迭代。
3. mdp_value_iteration基于值函数迭代算法评估。与mdp_relative_value_iteration类似。
4. mdp_value_iterationGS 基于高斯-赛德尔值迭代寻找最优策略算法。高斯-赛德尔迭代(Gauss–Seidel method)是数值线性代数中的一个迭代法,可用来求出线性方程组解的近似值。
5. mdp_value_iteration_bound_iter 评估值迭代的迭代次数。看前面的计算结果,感觉是评估的高斯-赛德尔值迭代的迭代次数。
6. mdp_Q_learning 基于Q-learning的最优策略.
Q指的动作1,2对应于位置产生的值.
V最优策略的值.
Policy最优策略动作过程
mean_discrepancy 每一次迭代Q变化的均值.