计算机游戏中的深度学习
1. 经验回放(Experience Replay)
在强化学习中,策略梯度方法存在一定局限性,它的所有训练都必须在环境中进行,一组策略参数只能通过观察其对环境奖励的影响来评估。而Q学习则尝试学习如何评估状态和动作。随着我们对特定状态评估能力的提升,就可以利用这些新信息更好地评估之前经历过的状态。经验回放就是基于此,它让网络存储状态历史并据此进行训练。
每次采取行动进入新状态时,我们会存储一个包含前一状态、所采取的行动、下一个奖励、下一状态和是否为终止状态的元组。这五个信息足以进行一次Q学习训练步骤。在游戏过程中,这些信息会以观察列表的形式存储。
经验回放还解决了强化学习中训练难以收敛的问题。训练数据的高度相关性是导致这一问题的部分原因,学习代理经历的一系列状态紧密相关,如果将导致奖励的一系列状态和动作一起用于训练,会对网络权重产生很大影响,甚至可能抵消之前的大量训练成果。而神经网络的一个假设是训练样本是来自某个分布的独立样本。经验回放通过从记忆中随机抽取小批量训练样本,降低了样本相关性。
学习算法可分为离线学习算法和在线学习算法。从记忆中学习的算法是离线学习算法,而只能基于游戏的直接玩法调整参数的是在线学习算法,如策略梯度、遗传算法和交叉熵方法。
以下是使用经验回放运行推车杆任务的代码:
from collections import deque
import numpy as np
import random
# 初始化观察列表
observations = deque(maxlen=20000)
last_action = np
超级会员免费看
订阅专栏 解锁全文
6775

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



