作者个人学习总结,如有不对请及时指出
一、分类
Value-based主要包括
- Dynamic Programming:动态规划
- Monte-Carlo Methods:蒙特卡洛算法
- Temporal-Difference Learning:时间差分学习
时间差分学习主要包括
DQN
DDQN
Policy-based主要包括
DDPG
TD3
SAC
二、输入输出
value-based:
输入s,输出Q(s,a)。动作值函数即在t时刻,状态s下,采取动作a,使用策略π预计获得的累积奖赏的期望值。
policy-based:
输入s,输出p(s,a)。状态值,即在t时刻,状态s下使用策略π 预计获得的累积奖赏的期望值。
三、例子
假设我们有一个简单的 5x5 网格世界,机器人需要从起点 (0,0) 移动到终点 (4,4),途中要避开障碍物 (2,2)。
环境设置
-
- 状态:机器人在网格中的位置,例如 (x, y)。
- 动作:四个方向(上、下、左、右)。
- 奖励:到达终点获得 +10 奖励,碰到障碍物或走出边界获得 -1 奖励,其他状态获得 -0.1 奖励。
Value-based方法
通过估计每个状态-动作对应的 Q 值来选择动作,目标是最大化累积回报。 、
- Q 函数:使用一个 Q 表来存储每个状态-动作对的 Q 值 Q(s,a)。
- 动作选择:使用 ϵ-贪婪策略选择动作,即以 ϵ的概率选择随机动作,以 1−ϵ 的概率选择当前 Q 值最高的动作。
- 更新规则:使用贝尔曼方程来更新 Q 值
- 编辑
Policy-based方法
直接优化策略函数,通过计算策略梯度来调整策略参数,使累积回报最大化。
-
- 策略网络:使用一个神经网络来表示策略 π(a∣s),输入是当前状态 s,输出是每个动作的概率分布。
- 动作选择:根据策略网络输出的概率分布选择动作。
- 策略更新:使用策略梯度方法,根据累积回报更新策略网络的参数。
四、总结
基于价值(Value-based)和基于策略(Policy-based)的方法都有一个共同的目标,即最大化累积回报,但它们在实现这一目标的方式上有所不同 。
value-based 通过估计每个状态-动作对的 Q 值来选择动作。即最大化Q值选择动作。但是为了平衡探索(exploration)和利用(exploitation)。常常会通过贪心策略进行平衡。即以ϵ 的概率:选择一个随机动作 。1−ϵ 的概率:选择当前 Q 值最大的动作。
policy-based 通过策略函数输出的概率分布选择动作,具体来说是根据每个动作的概率来选择动作。概率越大选中的机率越大