强化学习策略和学习算法
Table of Contents
- 介绍
- 为什么使用神经网络代替表格和传递函数
- 建立两个神经网络
- 神经网络的数学原理
- 激活函数的选择
- 神经网络的内部结构
- 策略函数的学习算法
- 基于价值函数的学习算法
- 执行器/评价器算法
- 部署算法到目标硬件
介绍
在前一个视频中,我们了解了环境设置和奖励机制对智能体行为的影响。本视频将重点介绍强化学习中的最后三个步骤:为智能体建立神经网络、选择合适的神经网络结构、以及部署算法到目标硬件。在这个视频中,我们将回答以下两个主要问题:为什么要使用神经网络来表示函数,而不使用表格或传递函数?为什么要建立两个神经网络,以及它们在执行器一评价器方法中的作用。
🧠 为什么使用神经网络来表示函数
在智能体中表示函数的方式有很多种,例如使用表格或传递函数。然而,当状态和动作空间非常大时,使用表格和特别定义的函数往往不是一个很好的解决方案。这是因为表格在处理大量的状态和动作时变得不切实际,而且很难为复杂的环境构建正确的函数结构。相反,使用神经网络可以解决这两个问题。神经网络是一组节点或人工神经元,它们以一种特定的方式连接在一起,充当通用函数近似器。给定正确的节点和连接组合,我们就可以设置网络来模拟任何输入和输出关系。这使得我们能够使用大量输入值作为函数的输入,输出可以是相应的动作指令。神经网络可以非常复杂,但是我们知道某个神经网络一定可以实现我们想要的功能。使用神经网络作为函数近似器的优点在于它可以灵活地适应不同的环境和任务,而不需要事先定义复杂的函数结构。然而,具体应该选择什么样的神经网络结构,例如激活函数、隐藏层数量和神经元数量,以及网络的内部结构,都取决于具体的问题和任务需求。
🧠 建立两个神经网络
在强化学习中,通常会建立两个神经网络,一个用作执行器,一个用作评价器。执行器的任务是根据当前状态的输入选择最佳的动作,而评价器的任务是估计给定状态和动作的值。这种双网络结构在强化学习中被称为执行器一评价器算法。执行器一评价器算法的优势在于它可以处理连续的状态和动作空间。对于执行器来说,它可以根据评价器的建议选择动作,而不需要遍历所有可能的动作。对于评价器来说,它只需要关注执行器选择的动作,并根据环境反馈的奖励来判断它的预测值的准确性。执行器一评价器算法通过不断地调整执行器的动作选择和评价器的值估计来学习最佳的行为策略。
🎯 神经网络的数学原理
神经网络可以用数学原理来解释其内部运行机制。神经网络由节点或人工神经元构成,每个节点接收一组输入并输出一个值。节点之间的连接具有权重,连接的强度由权重值决定。节点的输出值可以通过将输入值与对应的权重相乘,并加上一个偏差值来计算得出。在全连接网络中,每个输入节点到下一层的每个节点都有一个连接。节点的输出值经过激活函数处理,将节点的线性输出转化为非线性的激活值。常用的激活函数有sigmoid和ReLU函数。激活函数的选择对于建立一个可以拟合任何函数的神经网络至关重要。通过组合不同的节点和连接方式,我们可以构建出具备特定功能的神经网络。
🧪 神经网络的内部结构
神经网络的内部结构决定了它的处理能力和复杂度。在设计神经网络时,我们可以选择全连接网络、残差神经网络、递归神经网络、或者卷积神经网络等不同的结构。每种结构都有其适用的场景和任务。例如,全连接网络在处理相对简单的输入输出关系时效果较好,而残差神经网络在处理深层网络时可以提高学习效果。神经网络的内部结构的选择需要考虑问题的复杂度、网络的计算成本、以及网络的训练效果。在选择神经网络的内部结构时,我们需要综合考虑多个因素,并根据具体的问题和需求来进行选择。
🧠 策略函数的学习算法
策略函数学习算法是一种基于策略函数的强化学习方法。在策略函数方法中,我们试图训练一个神经网络,使其根据输入状态观测值输出相应的动作。策略函数的目标是让智能体根据观察到的环境状态选择出能够获得最大奖励的动作。在学习过程中,智能体只需要更新策略函数网络的权重和偏差,而不需要对所有可能的动作进行评估。在策略函数方法中,智能体采取动作后收集奖励,并使用奖励和新的状态信息来更新策略函数网络的权重和偏差。智能体通过求解策略函数网络中权重和偏差关于奖励的导数,并将其调整到正奖励增长的方向来更新网络。通过这种方式,学习算法可以根据环境给出的奖励信号来调整网络的权重和偏差,使智能体逐渐学习到选择最佳动作的策略。
🎯 基于价值函数的学习算法
基于价值函数的学习算法是一种用于估计状态和动作的价值的强化学习方法。在基于价值函数的方法中,我们使用一个函数来估计给定状态和动作的值,这个值表示从当前状态开始未来的预期奖励总和。价值函数的作用是评估执行器选择的动作的好坏。我们可以使用Q表格来表示价值函数,其中每个状态和动作对都有一个值。基于价值函数的学习算法使用贝尔曼方程来逐步对Q表格进行更新,从而求解每个状态/动作对的真值。学习算法通过不断地调整Q表格中的估计值来逼近真实值,并能在给定任何状态下选择最优的动作。
🧠 执行器/评价器算法
执行器/评价器算法是一种结合了策略函数和基于价值函数的方法的强化学习算法。在执行器/评价器算法中,我们建立两个神经网络,一个作为执行器,一个作为评价器。执行器根据当前状态的输入选择最优的动作,评价器估计给定状态和执行器选择的动作的值。执行器/评价器算法适用于连续的状态和动作空间。执行器只需关注评价器给出的动作建议,而不需要计算所有动作的值。评价器只需要关注执行器的选择动作,并通过环境反馈的奖励来判断预测值的准确性。通过不断调整执行器的动作选择和评价器的值估计,执行器/评价器算法可以学习到最佳的行为策略。
🎯 部署算法到目标硬件
在离线学习阶段结束后,静态策略(网络的权重和偏差)将被部署到目标硬件上。这意味着我们可以将已经优化好的策略应用到实际环境中,就像应用任何已经开发好的控制律一样。然而,我们也有能力在目标环境上继续学习,这对于难以准确建模或随时间缓慢变化的环境非常重要。智能体需要不断地学习和适应环境的变化,以便能够保持高效的控制性能。
FAQ
Q: 为什么选择神经网络来表示函数?
A: 神经网络可以灵活地逼近任意复杂的函数关系,并且可以处理大量的输入和输出空间。
Q: 为什么需要建立两个神经网络?
A: 执行器用于选择最优的动作,评价器用于估计状态和动作的值,通过这两个网络的协同作用可以学习到最佳的行为策略。
Q: 如何选择适合的神经网络结构?
A: 神经网络的结构选择取决于具体的问题和任务需求,包括激活函数、隐藏层数量和神经元数量等方面。
Q: 神经网络如何进行训练?
A: 神经网络的训练可以通过调整权重和偏差来逼近真实值,根据环境反馈的奖励来更新网络的权重和偏差。
Q: 如何在连续的状态和动作空间中处理强化学习算法?
A: 可以使用执行器一评价器算法来处理连续的状态和动作空间,其中执行器根据评价器的建议选择动作,评价器只需查看执行器选择的动作。
Q: 在部署算法到目标硬件后,是否可以继续在目标上学习?
A: 是的,部署算法到目标硬件后,仍然可以根据实际环境的反馈来继续学习和优化。这对于适应环境的变化非常重要。
References