强化学习基础

强化学习分类

model-based OR model-free

1. model-based RL

建模的是环境,即学习环境状态转移概率和奖励函数的估计值,学得的模型可以提供智能体在未来状态和奖励的预测,从而帮助代理进行策略规划和决策制定。

基于动态规划的强化学习是model-based RL中的重要一类模型,有明确的环境(即环境状态转移概率和奖励函数),它的学习方法只有有两种,分别是值迭代、策略迭代。常见的迷宫游戏是基于动态规划的强化学习的一种。

2. model-free RL

不建模环境,如Atari游戏等,学习

value-based:Sarsa、Q-learning、DQN

policy-based:policy gradient、PPO、TRPO

mixed-based:actor-critic、A2C、A3C

on line OR off line

1. on line RL

on line RL,在线强化学习,学习的过程需要与环境进行交互。分为on-policy RL和off-policy RL,on-policy采用的是当前策略搜集的数据训练模型,每条数据仅使用一次。off-policy训练采用的数据不需要是当前策略搜集的。

2. off line RL

off line RL,离线强化学习,学习的过程不需要与环境进行交互,从已经收集的数据中进行学习。

algorithm
on line RLon policySARSA、A3C等
off policyQ-learning、DQN等

off line RL

CQL、AWAC等

探索与利用

贪心策略:每次选择使得激励最高的action

\varepsilon -greedy策略:每次以\varepsilon的概率随机选择action

                        \left.a_t=\left\{\begin{matrix}{\arg\max_{a}\hat{Q}(a)} \\{U(0,|\mathcal{A}|)}\\\end{matrix}\right.\right.

 衰减贪心策略:\varepsilon -greedy策略的变种,\varepsilon随着时间变化衰减

注:regret是决策和最优决策的收益差

Bellman等式

V^{\pi}(s)是状态s的期望累计收益,是未来收益的折现累计期望值;

R(s)是立即奖励;

对于状态s来说的最优价值函数是所有策略可获得的最大可能折扣奖励的和:

                                                 V^*(s)=\max_{\pi}V^\pi(s)

最优价值函数的bellman等式:

                                V^{*}(s)=R(s)+\max_{a\in A}\gamma\sum_{s^{\prime}\in S}P_{sa}(s^{\prime})V^{*}(s^{\prime})

最优策略:

                                   \pi^{*}(s)=\arg\max_{a\in A}\sum_{s^{\prime}\in S}P_{sa}(s^{\prime})V^{*}(s^{\prime})

对状态s和策略\pi:

                                                V^*(s)=V^{\pi^*}(s)\geq V^\pi(s)

基于动态规划的强化学习

价值函数和策略相关

                                        V^{\pi}(s)=R(s)+\gamma\sum_{s^{\prime}\in S}P_{s\pi(s)}(s^{\prime})V^{\pi}(s^{\prime})

                                         \pi(s)=\arg\max_{a\in A}\sum_{s^{\prime}\in S}P_{sa}(s^{\prime})V^{\pi}(s^{\prime})

可以最优价值函数和最优策略进行迭代更新:价值迭代、策略迭代

策略迭代

对于一个动作空间和状态空间有限的MDP,状态和行为都是有限的。

策略迭代过程:

        1. 初始化

        2. policy评估

                        \begin{aligned} &\Delta\leftarrow0 \\ &\text{Loop for each }s\in\mathcal{S}{:} \\ && \begin{aligned} &v\leftarrow V(S)\\ &V(s)\leftarrow\sum_{s^{\prime},r}p(s^{\prime},r|s,\pi(s))[r+\gamma V(s^{\prime})] \\ &\Delta\leftarrow\max(\Delta,|v-V(s)|) \\ \end{aligned} \end{aligned}

        3. policy提升

                        \begin{aligned} &policy-stable\leftarrow true \\ &\text{For each }s\in\mathcal{S}{:} \\ &&&\text{old-action}\leftarrow\pi(s) \\ &&&\pi(s)\leftarrow\arg\max_a\sum_{s^{\prime},r}p(s^{\prime},r|s,a)[r+\gamma V(s^{\prime})] \\ &&&\text{If old-action}\neq\pi(s),\mathrm{~then~}\text{policy-stable}\leftarrow\mathrm{false} \end{aligned}

价值迭代

对于一个动作空间和状态空间有限的MDP,状态和行为都是有限的。

对于每个状态,初始化V(s)=0;

重复一下过程知道收敛:

                        V(s)=R(s)+\max_{a\in A}\gamma\sum_{s'\in S}P_{sa}(s')V(s')

常见的两种训练策略:

  • 同步的价值迭代会储存两份价值函数的拷贝:

        对于S中的所有状态s:

                        V_{new}(s)\leftarrow\max_{a\in A}\left(R(s)+\gamma\sum_{s'\in S}P_{sa}(s')V_{old}(s')\right)

        更新下面的式子:

                                        V_{old}(s)\leftarrow V_{new}(s)

  • 异步价值迭代:

        对与S中的所有状态s:

                        V(s)\leftarrow\max_{a\in A}\left(R(s)+\gamma\sum_{s'\in S}P_{sa}(s')V(s')\right)

        存在的问题是训练不太稳定

总结

1. 价值迭代是贪心更新法
2. 策略迭代中,用Bellman等式更新价值函数代价很大

3. 对于空间较小的MDP,策略迭代通常很快收敛

4. 对于空间较大的MDP,价值迭代更实用(效率更高)

5. 如果没有状态转移循环,最好使用价值选代

模型有关的强化学习

通过与环境交互采样多个episode的数据,然后从该“经验”中学习一个MDP模型

        1. 学习状态转移概率

        2. 学习奖励函数

参考:

1. 基于动态规划的强化学习_天池notebook-阿里云天池

  • 34
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值