强化学习:策略梯度与马尔可夫决策过程
1. 策略梯度算法
策略梯度(Policy Gradient, PG)算法旨在优化策略参数,沿着梯度方向获取更高的奖励。1992 年,Ronald Williams 提出了一类流行的 PG 算法——REINFORCE 算法。以下是其一个常见变体的步骤:
1. 让神经网络策略多次参与游戏,在每一步计算梯度,使某个动作以更高的概率执行,但暂不应用这些梯度。
2. 经过几个回合后,使用之前描述的方法计算每个动作的结果。
3. 如果动作结果为正,说明该动作是好的,应用之前计算的梯度以增加未来选择该动作的概率;如果结果为负,说明该动作是坏的,应用相反的梯度以略微降低未来选择该动作的概率。具体操作是将每个梯度向量乘以该动作的优势。
4. 最后,计算得到的梯度向量的平均值,并将其用于简单梯度算法。
代码实现
为了实现这个算法,我们使用 tf.keras 接口。首先,我们需要一个执行一步学习的函数:
import tensorflow as tf
import numpy as np
def play_one_step(env, obs, model, loss_fn):
with tf.GradientTape() as tape:
left_proba = model(obs[np.newaxis])
action = (tf.random.uniform([1, 1]) > left_proba)
y_target = tf.const
订阅专栏 解锁全文
750

被折叠的 条评论
为什么被折叠?



