强化学习入门(1)

近期计划开始上手一些深度学习相关的内容,刚好看到DataWhale发布的友好的“小白”组队学习计划,便跟随教材任务学习并定期记录学习过程,首先是第一部分,包含基本概念、马尔可夫过程和动态规划三部分的内容学习。

概念整理

需要说明的是,非CS专业在学习相关内容时会有些难度,因此有些地方浅尝辄止记录用法和结论,后续再补充完善。教程主页:https://johnjim0816.com/joyrl-book/#/

基本定义

强化学习?,结合维基百科的定义

  • 是机器学习和最优控制的一个跨学科领域,涉及智能代理如何在动态环境中采取行动最大化累积奖励
  • 强化学习是三种基本机器学习范式之一,与监督学习和无监督学习并列。强化学习与监督学习的不同之处在于不需要呈现标记的输入/输出对,并且不需要显式纠正次优动作。相反,重点是在探索(未知领域)和利用(当前知识)之间找到平衡
  • 该环境通常以马尔可夫决策过程(MDP) 的形式表示的形式表示,因为这种环境的许多强化学习算法都使用动态编程技术。
  • 基本强化学习被建模为马尔可夫决策过程
  • 典型应用:游戏领域如典型的AlphaGo、机器人领域

一些特点

  1. 试错学习(trial and error learning),尝试--结果--学习--再尝试--

  2. 决策Decision--反馈/结果(reward or punishment);多次组合即序列决策过程,公式表达:\(D_1+D_2+...+D_n\stackrel{累积奖励}{\longrightarrow}目标\)

  3. 对于任意问题,只要能够建模成序列决策问题或者带有鲜明的试错学习特征,就可以使用强化学习来相对较好地解决。

  4. 强化学习方式,从数据中学习:

    1. 模仿学习(从专家数据中学习策略)

    2. 逆强化学习IRL(从人类数据中学习奖励函数)

    3. 从人类反馈中学习(人类标注的数据中学习奖励模型来进行微调fine-tune)

其他概念

  • 实时环境( real-time environment ):离线强化学习、世界模型(离线训练、在线推理决策)
  • 分布漂移(distribution shift),即学习的场景和真实场景分布不同,导致结果的偏差
  • 探索策略( exploration strategy ):强化学习过程需要在探索和利用之间做出权衡,前者会尝试未知动作,后者选择已有动作
  • 多智能体强化学习( multi-agent reinforcement learning,MARL ),智能体之间存在交互和互相影响
  • 多任务强化学习,需要在多个任务及目标之前权衡。

马尔可夫决策过程

使用数学形式化表达序列决策序列决策过程——马尔可夫决策过程(Markov decision process,MDP)

表达过程

将对象和交互过程抽象为——智能体+环境,每一步\(t\),智能体“观测”当前状态\(S_t\),根据状态执行动作\(a_t\),执行完收到奖励\(r_t\),同时环境受动作影响到了下个状态\(s_{t+1}\)

  • 注意,\(t=0和t=1\)之间与现实时间无关的,取决于智能体每次交互并获得反馈所需要的时间

目标:最大化累积奖励\(G_t = r_1+r_2+\cdots+r_T\),从 $t=0 \(和\) t+T$ 这一段时步我们称为一个回合( episode ),如游戏中的一局。

马尔可夫性

某个状态的未来只与当前状态\(s_t\)有关,与历史的状态无关

问题1:不满足马尔可夫性怎么办

而实际问题中,如棋类游戏其实不符合马尔可夫性,因为在我们决策的过程需要考虑历史走子的位置例如吃子等。实际中这类情况可以结合其他的方法来辅助强化学习进行决策,如

  • 可以用深度学习神经网络来表示当前的棋局,并用蒙特卡洛搜索树等技术来模拟玩家的策略和未来可能的状态,来构建一个新的决策模型,这就是著名的 AlphaGO 算法。

问题2:如何考虑未来的回报即未来对当前的影响?

引入折扣因子\(\gamma\),通过系数来调整我们对未来回报的关注:智能体会持续与环境交互,此时\(T=\infty\),如下,\(G_t\)\(R_{t+1}\)即表示t时刻之后的回报 \[ G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots=\sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \]

推导可得\(G_t=R_{t+1} +\gamma G_{t+1}\)

状态转移矩阵

马尔可夫链(Markov Chain)/离散时间的马尔可夫过程(Markov Process)

状态转移概率和矩阵:智能体或环境状态数通常是有限的,因此可以用一种状态流向图来表示智能体与环境交互过程中的走向。

  • 对于同一个状态所有状态转移概率加起来是等于 1 的
  • 状态转移矩阵是环境的一部分,跟智能体无关,智能体会根据状态转移矩阵来做出决策;有时智能体和环境的角色是能相互对调的,只要能各自建模成马尔可夫决策过程即可。

此外:

在马尔可夫链(马尔可夫过程)的基础上

  • +奖励元素就会形成马尔可夫奖励过程(MRP)
  • +增加动作的元素就会形成马尔可夫决策过程
  • 马尔可夫链和马尔可夫奖励过程在其他领域例如金融分析会用的比较多,强化学习则重在决策

动态规划(Dynamic Programming)

强化学习中最基础的算法之一,动态规划被用于求解值函数和最优策略。常见的动态规划算法包括值迭代(Value Iteration)、策略迭代(Policy Iteration)和 Q-learning 算法等。

定义及性质

动态规划具体指的是:在某些复杂问题中,将问题转化为若干个子问题,并在求解每个子问题的过程中保存已经求解的结果,以便后续使用。

动态规划问题的性质:

  • 无后效性:某状态以后的过程不会影响以前的状态,只与当前状态有关,即马尔可夫性质
  • 最优化原理:问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构
    • 如前面提到的回报受未来汇报的影响的问题,可以通过动态规划来拆解计算,即可以将\(G_{t+1}\)拆解为$\(G_t,G_{t-1},\cdots,G_1\)的问题,

\[ G_t=R_{t+1} +\gamma G_{t+1} \]

具体的解决方法

  1. 价值迭代算法Value Iteration
  2. 策略迭代算法Policy Iteration

状态和动作的价值计算

  1. 状态价值函数\(V\pi(s)\):计算从特定状态出发在某种策略\(\pi\)下进行决策所能得到的回报期望值
  2. 动作价值函数\(Q\pi(s,a)\):计算引入一个动作后的期望回报价值
  3. 贝尔曼方程:由于目标即是累积回报期望,在最优策略下,状态价值函数也是最优的,相应的动作价值函数也最优,经过一系列推导可以得到最优策略下的状态价值函数,公式表达为贝尔曼最优方程(Bellman optimality equation)——\(V_{\pi^*}(s)\)

对于动作价值函数也是同理可以推导一个公式计算\(Q_{\pi^*}(s,a)\)

如何求解和优化?

实际求解中在优化策略的过程中,需要同时优化状态和动作价值函数,这是一个多目标优化的问题

  1. 策略迭代算法(能更快接近最优解,见下图)
    • 策略估计:首先固定策略\(\pi\)不变,然后估计对应的状态价值函数\(V\)
    • 策略改进:根据\(V\),结合策略推导出\(Q\),然后优化\(Q\)并改进\(\pi\)
  2. 价值迭代算法
    • 将所有的状态价值初始化,然后不停地对每个状态迭代,直到收敛到最优价值\(V^*\)
    • 根据最优价值推算出最优策略\(\pi^*\)

额外补充:在本章的算法中,其实默认状态转移概率\(\sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s, a\right)\)已知,但状态转移概率是环境本身的性质,通常未知,因此最基本的策略迭代和价值迭代难以直接应用,这时通常会对先状态转移概率或者状态(动作)价值函数进行预测估计

以上,后续继续推进……