强化学习:从策略梯度到马尔可夫决策过程
1. 构建神经网络策略
在强化学习中,我们可以使用 tf.keras 来构建神经网络策略。以下是构建该策略的代码:
import tensorflow as tf
from tensorflow import keras
n_inputs = 4 # == env.observation_space.shape[0]
model = keras.models.Sequential([
keras.layers.Dense(5, activation="elu", input_shape=[n_inputs]),
keras.layers.Dense(1, activation="sigmoid"),
])
上述代码中,导入必要的库后,使用简单的顺序模型定义了策略网络。输入数量是观察空间的大小(在 CartPole 环境中为 4),由于问题简单,我们只设置了五个隐藏单元。最后,我们希望输出一个单一的概率(向左移动的概率),因此使用了一个具有 sigmoid 激活函数的输出神经元。如果有两个以上的可能动作,则每个动作对应一个输出神经元,并使用 softmax 激活函数。
2. 评估动作:信用分配问题
在强化学习中,训练神经网络策略面临着信用分配问题。如果我们知道每一步的最佳动作,就可以像常规监督学习一样,通过最小化估计概率分布和目标概率分布之间的交叉熵来训练神经网络。然而,在强化学习中,智能体只能通过奖励来获得指导,而奖励通常是稀疏和延迟的。
为了解决这个问
超级会员免费看
订阅专栏 解锁全文
10

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



