强化学习:从策略梯度到马尔可夫决策过程
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),由于这是一个简单的问题,我们只设置了 5 个隐藏单元。最后,我们希望输出一个单一的概率(向左移动的概率),因此使用了一个带有sigmoid激活函数的输出神经元。如果有两个以上的可能动作,则每个动作对应一个输出神经元,并使用softmax激活函数。
2. 评估动作:信用分配问题
在强化学习中,代理只能通过奖励来获得指导,而奖励通常是稀疏和延迟的。例如,当代理成功平衡杆子 100 步后,它很难知道这 100 个动作中哪些是好的,哪些是坏的。这就是信用分配问题。