《Easy RL:强化学习教程》读书笔记01
强化学习概述
强化学习由智能体(agent)和环境(environment)组成,智能体得到环境中的状态(state)后,将根据状态输出一个动作(action),这个动作也是决策(decision),这个动作会在环境中被执行后输出状态和奖励(reward),智能体的目标是最大化所获得的奖励。
强化学习和监督学习的区别
1、强化学习输入的样本是序列数据,监督学习的样本的独立同分布的。
2、强化学习只能通过不停地尝试去做出最有利的动作,而监督学习是有人类知识引导的。
3、探索(exploration)和利用(exploitation)是强化学习里面非常核心的问题,探索是尝试新动作以获得更高的奖励,但有一定的风险,而利用是采取已知的可获最大奖励的动作,所以需要在探索和利用间进行权衡,这是监督学习中没有的。
4、强化学习中的奖励一般是延迟的,而监督学习是即时的监督。
标准强化学习和深度强化学习的区别
标准强化学习需要设计特征、进行特征工程并设计价值函数,而深度强化学习是一个端到端的训练过程,可直接通过神经网络来拟合价值函数或策略网络。
状态和观测的区别
状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信
息。如果状态和观察等价,则该环境是完全可观测的(fully observed),这种情况也被称为马尔可夫决策过程(Markov decision process,MDP)。当智能体只能看到部分的观测时,我们就称这个环境是部分可观测的(partially observed),这种情况也被称为部分可观测马尔可夫决策过程(partially observable Markov decision process, POMDP)。部分可观测马尔可夫决
策过程可以用一个七元组描述:(S, A, T, R, Ω, O, γ)。其中 S 表示状态空间,为隐变量,A 为动作空间,T(s′|s, a) 为状态转移概率,R 为奖励函数,Ω(o++|++s, a) 为观测概率,O 为观测空间,γ 为折扣因子。
强化学习智能体
组成成分
对于一个强化学习智能体,也是马尔可夫决策过程(Markov decision process),它可能有一个或多个如下的组成成分。
策略(policy)
智能体会用策略来选取下一步的动作。策略可分为随机性策略和确定性策略。
-
++随机性策略(stochastic policy)++也是概率函数,即输入一个状态后输出一个概率,智能体根据该动作概率采取动作。
-
++确定性策略(deterministic policy)++是智能体直接采取最有可能的动作。
通常情况下,强化学习一般使用随机性策略,随机性策略有很多优点,其具有多样性,能够更好地探索环境。
价值函数(value function)
用于评估智能体进入某个状态后,可以对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利。价值函数里面有一个折扣因子(discount factor),折扣因子越大,越关注未来对现在的影响。常用的价值函数是Q函数,Q 函数里面包含状态和动作两个变量,即未来可以获得奖励的期望取决于当前的状态和当前的动作。
模型(model)
模型表示智能体对环境的状态进行理解,它决定了环境中世界的运行方式。它由状态转移概率和奖励函数两个部分组成
强化学习智能体的类型
-
++基于价值的智能体(value-based agent)++显式地学习价值函数,隐式地学习它的策略。策略是其从学到的价值函数里面推算出来的。
-
++基于策略的智能体(policy-based agent)++直接学习策略,我们给它一个状态,它就会输出对应动作的概率。基于策略的智能体并没有学习价值函数。
-
++演员-评论员智能体(actor-critic agent)++把策略和价值函数都学习了,然后通过两者的交互得到最佳动作。
基于策略和基于价值的强化学习方法有什么区别?
在基于策略的强化学习方法中,智能体会制定一套动作策略(确定在给定状态下需要采取何种动作),并根据这个策略进行操作。强化学习算法直接对策略进行优化,使制定的策略能够获得最大的奖励。而在基于价值的强化学习方法中,智能体不需要制定显式的策略,它维护一个价值表格或价值函数,并通过这个价值表格或价值函数来选取价值最大的动作。基于价值迭代的方法只能应用在不连续的、离散的环境下(如围棋或某些游戏领域),对于动作集合规模庞大、动作连续的场景(如机器人控制领域),其很难学习到较好的结果(此时基于策略迭代的方法能够根据设定的策略来选择连续的动作)。基于价值的强化学习算法有 Q 学习(Q-learning)、Sarsa等,而基于策略的强化学习算法有策略梯度(Policy Gradient,PG)算法等。
有模型强化学习和免模型强化学习有什么区别?
有模型强化学习是指根据环境中的经验,构建一个虚拟世界,同时在真实环境和虚拟世界中学习;免模型强化学习是指不对环境进行建模,直接与真实环境进行交互来学习到最优策略。
免模型强化学习通常属于数据驱动型方法,需要大量的采样来估计状态、动作及奖励函数,从而优化动作策略。相比之下,有模型的深度强化学习可以在一定程度上缓解训练数据匮乏的问题,因为智能体可以在虚拟世界中进行训练。免模型学习的泛化性要优于有模型强化学习,原因是有模型强化学习算需要对真实环境进行建模,并且虚拟世界与真实环境之间可能还有差异,这限制了有模型强化学习算法的泛化性。
目前,大部分深度强化学习方法都采用了免模型强化学习,这是因为:免模型强化学习更为简单、直观且有丰富的开源资料
第一章习题链接:https://datawhalechina.github.io/easy-rl/#/chapter1/chapter1_questions&keywords