• 什么是Reinforcement Learning


    • 看了看之前写的那篇博客,感觉并没有真的总结清楚DRL是什么,难怪我一直不懂什么是DRL,原来是以前就没学好,所以现在从RL开始了解了解,了解RL之后再去了解DRL。
    • setup大部分,还是来自原本的博客,加了点注释。reform了一下,懒得再打公式了。

    什么是RL

    简介

    什么是MDP Markov Decision Process

    • MDP基于一种假设:未来取决于当前
      • 马尔可夫性质:系统下一时刻的状态仅由当前时刻的状态决定。
      • \(P(s_{t+1}|s_t)=P(s_{t+1}|s_t,s_{t-1},...,s_1,s_0)\)
    • agent在environment下, take action, 使得有一定概率从当前状态转到另一个状态。
    • 马尔可夫决策四元组:\(E=<S, A, P, R>\)
      • \(P: S \times A \times S \to R\) ,状态转移概率。
      • \(R: S \times A \times S \to R\) or \(R: S \times S \to R\): 奖赏。

    Set Up

    • action: 例如你给不给西瓜浇水。

    • state: observation的集合就作为agent所在的状态state。例如你看这个西瓜是缺水,还是健康还是溢水。

    • observation:每个时间片,agent都是更剧当前的观察来确定下一步的动作

    • reward: agent执行了action,与环境交互后,环境会变化,变化的好坏就用reward表示。

    • policy: state到action的过程

      • 两类policy:
        • \(a=\pi(s)\) :一一对应表示, Deterministic policy(确定性策略),输入一个状态,输出一个确定的action。(例如,如果西瓜缺水就浇水)
        • \(\pi(a|s)\):概率表示,Stochastic policy(随机性策略),输入一个状态s,输出每个action a的概率分布。(例如,如果西瓜缺水那就0.6的概率浇水,0.4的概率不教水)。
    • 任务:找到一个最优的策略policy从而使得reward最好。

    长期累积奖赏

    • 通常有两种计算方法:
      • T步累积奖赏:\(E[\frac1T\sum_{t=1}^T r_t]\)
      • λ折扣累积奖赏:\(E[\sum_{t=0}^{+\infty}\lambda^tr_{t+1}]\)
    • \(G_t=R_{t+1}+\lambda R_{t+2}+...=\sum_{k=0}^{\infty}\lambda^{k}R_{t+k+1}\)
    • \(G_t\)又称 cumulative discounted reward (累积折扣奖励)
    • 其中R为Reward。
    • \(\lambda\)为discount factor(折扣因子),一般小于1
      • 越大:看得越远,注重长期奖励
      • 越小:越短视,注重眼前奖励
    • 实际上除非整个过程结束,否则显然我们无法获取所有的reward来计算出每个状态的Return。

    状态值函数 State Value Function

    • v(s): 表示一个状态未来的潜在价值。
    • 定义上看,value function就是Return的期望
      • \(v(s)=E[G_t|S_t=s]\)
    • 计算:根据有两种累积函数的计算方法,有对应状态值函数:
      • \(v_\lambda ^\pi(s)=E_\pi[\sum_{t=0}^{+\infty}\lambda^tr_{t+1}|s_0=s]\), λ折扣累积奖赏。
      • \(v_T ^\pi(s)=E(\frac1T\sum_{t=1}^T r_t|s_0=s)\),T步累积奖赏。
      • \(s_0\): 初始状态。
      • \(a_0\): 初始状态上采取的第一步动作。

    动作价值函数 State-Action Value Function

    • \(Q^\pi(s,a)\):表示从状态s,采取动作a后再采用策略π带来的累积奖励。
    • 如果知道了每个动作的价值,那么就可以选择一个价值最大的动作去执行了。
    • 这里使用的reward和之前的reward不一样。
      • 之前State Value Function对应的reward是多种动作对应的reward的期望值
      • 这里的是执行完这一个动作a得到的reward。
      • 注意看两个函数的参数数量都不一样。
    • 计算:根据有两种累积函数的计算方法,有不同的Q函数:
      • \(Q^\pi(s,a)=E[r_{t+1}+\lambda r_{t+2}+\lambda^2 r_{t+3}...|s,a]=E[r+\lambda Q^\pi (s',a')|s,a]\)
      • image-20211217161651605

    K-armed Bandit

    问题

    • multi-armed bandit, k-armed bandit.
    • 单步强化学习任务对应了一个理论模型”k-armed bandit“。
    • image-20211217145241123
    • 一个有k个臂的machine,你完全不知道摇哪个臂得到的reward最大,你肯定是想要有最大的cumulative reward,那怎么办呢?
      • Exploration-only:你可以将尝试机会平分给所有的臂,玩完之后,你就会得到每个臂的expected reward。
      • Exploitation-only:你就只按当前知道的reward期望最大的那个来玩,如果有多个reward期望最大那就随机选来玩。
      • Exploration-Exploitation dilemma:但是明显,exploration and exploitation是矛盾的,你需要平衡它们来玩游戏。

    ε-Greedy

    • ε:有ε的概率会去explore,有1-ε的概率会去exploit。
    • Q(k):记录第k个arm在尝试n次下的平均奖赏。
      • \(Q(k)=\frac 1n \sum_{i=1}^nv_i\):得记录每轮的v,和一共尝试了多少次。
      • 增量计算式:每尝试一次就更新
        • \(Q_n(k)=\frac 1 n((n-1)Q_{n-1}(k)+v_n) = Q_{n-1}(k)+\frac 1 n (v_n - Q_{n-1}(k))\).
        • 只用记录尝试次数n 和 最近的平均奖赏\(Q_n(k)\).
    • 算法
      • image-20211217153928499

    Softmax

    • 基于当前的平均奖赏来对exploration, exploitation进行折中。
    • Softmax算法中的摇臂概率的分配基于Boltzmann分布
      • image-20211217154208246
      • τ>0:称为"温度",τ越小则平均奖赏高的arm被选中的概率越高。
      • τ趋于0时,Softmax 趋于 exploitation-only。
      • τ趋于无穷大时,Softmax 趋于 exploration-only。
    • 算法
      • image-20211217154436565
      • τ用在了第四行,根据摇臂概率来选这次挑哪个arm。

    Model-based Learning

    • Model-based Learning:对多步强化学习任务,在模型已知的环境下进行训练。
      • 模型已知:即马尔科夫决策过程四元组\(E=<S, A, P, R>\)都已知。
    • 后续假设状态空间S和动作空间A已知。
    • 有模型的时候,一般使用Dynamic Programing:policy evaluation, value iteration, policy iteration.
    • Model-free的一些RL methods also works for model-based learning.

    策略评估

    • 评估这个策略好不好,那就得求出它的V, Q。
    • MDP具有马尔可夫性质:系统下一时刻的状态仅由当前时刻的状态决定,不依赖之前的状态。所以V函数由很简单的递归形式,这样的递归等式叫Bellman等式
    • image-20211217161805431
      • 是由于我们这是在模型已知情况下讨论的,P和R已知,才能继续全概率展开。(所以model-free的情况下,无法展开)
    • 基于T步累积奖赏的策略评估算法:
      • image-20211217162219285
      • \(V_0^\pi\)开始,一步步算到\(V_T^\pi\)
      • 得到V之后就可以直接计算State-action function Q:
        • image-20211217162647077
        • 其实从这里可以看出Q和V的关系:
          • V(s)不知道action,所以把所有action情况考虑一遍再求期望。
          • Q则是确定action之后的reward期望。

    策略改进

    • 你通过策略评估,发现这个策略不是最好的,所以就改进。
    • image-20211217164811545
    • image-20211217164827746

    策略迭代 值迭代

    • 策略迭代(Policy Iteration):求最优解的方法,先评估策略,然后改进策略,再评估,再改进...
      • image-20211217164946555
    • 值迭代 (Value Iteration):策略迭代和值函数的改进是一致的,对Policy iteration进行改进的算法。
      • image-20211217165046627

    Model-free Learning

    Monte-Carlo Approach

    • 蒙特卡罗强化学习:由于模型未知,不能直接评估策略。通过多次“采样”,然后求平均累积奖励作为期望累计奖赏的近似。
    • 采样:从起始状态开始,通过使用某个策略进行采样可以得到一条轨迹。\(<x_0, a_0, x_1, a_1, ..., x_{T-1}, a_{T-1}, ..., x_T, a_T>\)
      • 所以是要对多条轨迹进行平均,得到状态-动作值函数的估计。
    • ε-贪心法:因为可能使用确定性策略,导致总是走出同样的轨迹,所以用ε-Greedy。
      • image-20211217185633059
    • On-policy(同策略)蒙特卡罗强化学习算法
      • image-20211217185709783
      • On-policy:被评估和被改进的是同一个策略。
    • Off-policy 蒙特卡罗强化学习算法
      • image-20211217193336977

    Temporal Difference Learning

    • 时序差分学习,TD learning:结合了动态规划和蒙特卡罗方法(通过多次尝试后求平均来作为expected cumulative reward,求平均的时候用的是"批处理式"的)的思想。
    • TD learning learns V(s) directly from experience with TD eror, with bootstrapping, in a model-free, online, and fully incremental way.
    • TD learning is a prediction probelm.
    • image-20211219164912202
    • TD Learning:求平均的过程通过增量式进行。
      • image-20211217204803492
      • \(\frac 1 {t+1}\)替换为\(\alpha _{t+1}\)。一般将\(\alpha _{t+1}\)设为一个较小的正数α。
      • 更新步长()\(\alpha\)越大,越靠后的cumulative reward就越重要。
      • image-20211217205104676
      • image-20211218122527366
    • SARSA:每次更新值函数需要知道前一步的State, Action, Reward, State(next), Action(next),所以叫Sarsa算法。
      • 是个同策略算法。
      • image-20211217205309909
    • Q-Learning:将Sarsa修改为off-policy算法。
      • image-20211217205319412
      • tabular Q(0) learning:
        • image-20211218122809129
        • 注意和tabular SARSA(0) 区别。SARSA是通过Q来选action,并把这个action作为下一个action。但Q-learning只是用这个Q最大的action计算Q值,并不直接用这个action作为future action。

    MC v.s. TD

    • image-20211219165104808
      • 注意TD方法中,考虑了可能是sample不够的因素,有sa的恰好后面sb的那个episode恰好是0,但是sb的expected value 是3/4,所以TD加上了sb的V值。

    模仿学习 Imitation Learning

    • 模仿:给你一个专家浇西瓜的轨迹,你让机器人学学人家专家怎么浇水的。

    直接模仿

    • 给你m条专家的决策轨迹数据\(\{\tau_1,\tau_2,...,\tau_m\}\)
      • 每条轨迹包含状态和动作。 \(\tau_i=<s_1^i,a_1^i, s_2^i,a_2^i,...,s_{n_i+1}^i>\)
    • 将所有轨迹的所有"状态-动作对"抽出来,构造一个新的dataset
      • image-20211217200939498
      • 把状态作为特征,把action作为label,进行有监督学习,得到一个初步策略。
      • 之后再通过强化学习基于环境反馈进行修改。

    逆强化学习

    • background:设计奖赏函数困难。
    • 逆强化学习(inverse reinforcement learning):从人类专家的范例数据中反推奖赏函数。
    • 推导
      • image-20211217201208912
    • 算法
      • image-20211217201229960

    Reference

    • 整理自网络资源
    • 《机器学习》周志华
    • Deep Reinforcement Learning: An Overview
    • 李宏毅 DRL, RL相关视频
  • 相关阅读:
    我也发布一个MVC程序(一)
    Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(二)
    WPF程序只允许一个启动在MVVMLight框架下找不到资源的问题
    我也发布一个MVC程序(二)
    Windows Phone 不能Debug的解决方案
    Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(三)
    加密算法的基础学习
    我理解的前端发展方向
    我理解的前端工程化
    数据库三大范式
  • 原文地址:https://www.cnblogs.com/xuwanwei/p/15711720.html
Copyright © 2020-2023  润新知