强化学习与Acrobot游戏解析

Acrobot是一个模拟游戏,其中包含一个由两个关节和两个连杆组成的机械臂,这两个连杆之间的关节是可以被驱动的。游戏开始时,连杆是垂直悬挂的。任务的目标是将下连杆的末端移动到一个给定的高度。在这个帖子中,将通过描述这个游戏来展示强化学习的主要概念。强化学习是机器学习的一个分支,它受到人类行为的启发,即如何通过与世界的互动来学习的。这个领域被广泛应用于计算机游戏和机器人技术。因此,这个游戏非常适合用来深入理解深度学习的概念。

要掌握强化学习的思维,有五个重要的概念:智能体、环境、状态、动作和奖励。它们都是相互关联的。最后,将解释深度Q学习,这是一种将深度学习技术与强化学习相结合的强大方法。

状态是机械臂的当前状态。状态可以由游戏屏幕像素构成,或者是由一些关于智能体的信息构成,这些信息也可以被称为环境观察。这些信息包括两个旋转关节角度的正弦和余弦值(总共4个)以及两个角速度。在这篇文章中,将专注于这些外部信息,而不是当前帧。

当机械臂选择并执行一个动作时,它可能会收到奖励或没有奖励。在每个时间步骤中,除非达到目标,否则它都会收到-1作为惩罚。然后,智能体的任务就是理解哪些动作可以最大化累积奖励。有三个可能的动作:施加正扭矩(+1)、施加负扭矩(-1)和不执行任何动作(0)。环境规定,如果智能体在每个情节中没有在500个时间步骤之前达到目标,那么最坏的累积奖励是-500。

Q学习是一种算法,它量化了在任何时间步骤t中采取某个动作在给定状态下可以获得的预期折扣未来奖励。然后,它估计每个状态-动作对的价值。为什么是Q?Q代表质量,这取决于动作在未来获得一些奖励的有用性。智能体学会将每个状态-动作对与Q值关联起来,使用贝尔曼方程:

Q(s, a) = Q(s, a) + α * [r + γ * max(Q(s', a')) - Q(s, a)]

Q学习算法的每一步都由上述方程定义。不用担心,知道,一旦眼睛遇到这个方程,它就会吓到。只需要理解每个参数的作用。s代表状态,a代表动作,r代表奖励,t代表时间步骤,γ代表折扣率,α代表学习率。学习率和折扣率都在0和1之间。最后一个参数决定了对未来奖励的关心程度。越接近1,就越关心。

Q学习的弊端是它在面对巨大的状态和动作空间时会遇到问题。记住每一对可能的动作和状态需要很大的内存。因此,需要将Q学习与深度学习技术结合起来。

深度Q学习是一种使用神经网络来预测给定状态下每个动作的Q值的方法。如果再次考虑Acrobot游戏,将智能体的信息(关节角度的正弦和余弦值和速度)作为输入传递给人工神经网络。为了获得预测,需要在定义损失函数之前训练网络,损失函数通常是预测Q值和目标Q值之间的差异。

与监督学习不同,没有任何标签来标识每个状态-动作对的正确Q值。在DQL中,初始化两个相同的人工神经网络,称为目标网络和策略网络。前者用于计算目标值,后者用于确定预测。例如,Acrobat游戏的模型是一个人工神经网络,它接受环境观察作为输入,即两个旋转关节角度的正弦和余弦值和两个角速度。它返回三个输出,Q(s,+1),Q(s,-1),Q(s,0),其中s是作为输入传递给网络的状态。实际上,神经网络的目标是预测在给定当前输入的情况下采取每个动作的预期回报。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485