强化学习的几个基本概念
根据环境的建模的角度划分:Model-Based 和 Model-Free
Model-Based:
指 机器已对环境进行了建模,能在机器内部模拟出与环境相同或近似的状况
此时,任意状态x下执行动作a转移到x'的概率P是已知的,该转移带来的奖赏R也是已知的
Model-Based的问题可以用传统的强化学习方法来解决,比如动态规划,可以用Bellman等式求得数值解
Model-Free:
指 由于实际中没法对环境进行建模,所以学习算法不依赖于环境建模(通常比model-based的问题要难,也更常见,多数强化学习问题都是model-free的)
此时,环境的转移概率、奖赏函数都是未知的
Model-Free的问题可以用Q-learning、Sarsa等方法,也可以用DQN、A3C等神经网络的方法
根据学习的策略的角度划分:value-based和policy-based
value-based:
学习优化的对象是Value,即值函数V
policy-based:
学习优化的对象是Policy,即在状态x下选择动作a的概率π(x, a)
policy-based 和 value-based 的对比:
- 最优策略是随机策略的问题:value-based 方法通常会获得一个确定的策略(deterministic policy),policy-based 方法可能获得一个随机策略(stochastic policy), 但很多问题中的最优策略是随机策略。(如石头剪刀布游戏,如果确定的策略对应着总出石头,随机策略对应随机出石头、剪刀或布,那么随机策略更容易获胜)
- 鲁棒性不同:value function 的微小变化对策略的影响很大,可能直接决定了这个action是否被选取;policy-based 不存在此问题。
- 处理的action space不同:value-based适合处理的action space低维离散的,policy-based 适合处理连续高维的action space
- 更新频率不同:value-based每个action执行都可以更新,policy-based 每个episode完成之后才能更新一次。(这里可以理解成下棋的时候,value-based每下一步就学习一次,而policy-based要在一盘棋下完之后再学习。)
有没有一个算法结合value-based和action-based的优点呢?即又能处理高维、连续的action space,又能单步更新快速学习呢?那就是Actor-Critic,DDPG等算法了。
参考:
https://blog.csdn.net/LagrangeSK/article/details/82865578
https://www.zhihu.com/question/272223357/answer/388262439