强化学习:从策略梯度到马尔可夫决策过程
1. 引言
在一些模拟环境中,如CartPole环境,简单的策略可能无法取得理想的效果。即便尝试了500次,某策略也未能让杆子连续直立超过68步。观察Jupyter笔记本中的模拟可以发现,小车左右摆动幅度越来越大,直至杆子倾斜过度。那么,神经网络能否给出更好的策略呢?
2. 神经网络策略
我们可以创建一个神经网络策略。和之前硬编码的策略一样,这个神经网络将观察值作为输入,并输出要执行的动作。更准确地说,它会为每个动作估计一个概率,然后根据估计的概率随机选择一个动作。
在CartPole环境中,只有两种可能的动作(向左或向右),所以只需要一个输出神经元。它将输出动作0(向左)的概率p,当然动作1(向右)的概率就是1 - p。例如,如果输出为0.7,那么我们将以70%的概率选择动作0,或以30%的概率选择动作1。
选择随机动作而不是直接选择得分最高的动作,是为了让智能体在探索新动作和利用已知有效的动作之间找到平衡。就像第一次去餐厅,所有菜品看起来都很诱人,随机选择一道菜。如果这道菜好吃,下次可以增加点这道菜的概率,但不应将概率提高到100%,否则就永远不会尝试其他可能更好的菜品。
在CartPole问题中,由于每次观察都包含环境的完整状态,所以可以安全地忽略过去的动作和观察。但如果存在隐藏状态,就可能需要考虑过去的动作和观察。例如,如果环境只显示小车的位置而不显示其速度,就需要同时考虑当前观察和之前的观察来估计当前速度。
以下是使用tf.keras构建这个神经网络策略的代码:
im
超级会员免费看
订阅专栏 解锁全文
714

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



