斯坦福CS234——(8)梯度策略1

本文介绍了斯坦福大学CS234课程中的梯度策略,包括PolicyGradient、ScoreFunction、PolicyGradientTheorem以及各种优化算法如爬山算法、Simplex方法、Amoeba方法、遗传算法、CEM和CMA。文章通过AliasedGridworld示例,探讨了开环与闭环策略,并重点讲解了蒙特卡洛策略和几种可微分策略类,如Softmax和GaussianPolicy。
摘要由CSDN通过智能技术生成

在这里插入图片描述

Introduction

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
很多时候奖励函数很难显式地表示,不如直接学习策略

Example

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
“Aliased Gridworld”(或者简称为“Gridworld”)是一个常见的强化学习实验环境,用于测试和评估各种强化学习算法。在这个环境中,代理需要在一个二维网格世界中移动,并根据其行动获取奖励。通常情况下,这个网格世界被划分成若干个格子,每个格子可以是代理可以处于的位置。

在“Aliased Gridworld”中,"Aliased"一词通常表示环境具有某种形式的状态空间压缩或者抽象化。这意味着代理在观察环境时可能会遇到状态的合并或者模糊化,使得代理无法准确地区分每个状态。这样的环境可以使得代理面临更大的状态空间,并且增加了学习的难度。

通常情况下,代理在这样的环境中需要学习一个策略,使得它可以在网格世界中移动以最大化长期回报。这可能涉及到学习价值函数、策略函数或者其他强化学习算法来优化代理的行为。通过在这样的环境中测试不同的算法,研究人员可以评估算法的性能、稳定性和适用性,并为解决更复杂的现实世界问题提供参考。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(1)Hill climbing——爬山算法 是一种基本的优化算法,常用于解决连续空间中的最优化问题。该算法通过在当前解的邻域中选择能够使目标函数值最大化(或最小化)的方向,并沿着该方向移动,以期望找到更好的解。它得名于在解空间中类似于爬山的行为。

爬山算法的基本思想是从一个初始解开始,不断地寻找目标函数值更好的解。它的步骤如下:

初始化:从解空间中随机选择一个初始解。

循环迭代:

生成邻居:在当前解的邻域中选择一个或多个邻居解。
评估邻居:计算每个邻居解的目标函数值。
选择移动:选择能够使目标函数值最大化(或最小化)的邻居解。
移动:将当前解更新为选定的邻居解。
终止条件:如果满足停止条件(例如达到最大迭代次数或目标函数值变化小于阈值),则停止迭代,否则继续迭代。

爬山算法的优点是简单易懂,易于实现。然而,它也有一些缺点,比如容易陷入局部最优解、可能会忽略全局最优解,以及对初始解的选择敏感等。因此,在解决复杂的优化问题时,通常需要结合其他优化技术或者改进的爬山算法来提高算法的性能和鲁棒性。

(2)Simplex 方法 Simplex 方法是一种基于几何形状的优化算法,通过构建一个多面体(或称为 Simplex)来搜索最优解。在每次迭代中,Simplex 方法会根据目标函数的值来调整多面体的形状和位置,以期望找到最小值点。它的优点是简单易懂,而缺点是可能收敛速度较慢,对高维空间不够高效。

(3)Amoeba 方法 Amoeba 方法是 Simplex 方法的一个变体,也称为 Nelder-Mead 方法。它通过不断地调整多面体的顶点来搜索最优解。在每次迭代中,Amoeba 方法根据目标函数的值来调整多面体的形状和位置,以期望找到最小值点。与 Simplex 方法相比,Amoeba 方法可能具有更快的收敛速度,并且在高维空间中也更具有优势。

(4)Genetic algorithms——遗传算法,简称GA 是一种基于生物进化过程的优化算法,常用于求解复杂的优化问题。它模拟了生物进化中的遗传、突变和自然选择等过程,并通过不断地迭代和进化来搜索最优解。遗传算法是一种启发式算法,通常用于解决那些传统方法难以解决的高维、非线性、非凸等复杂优化问题。

遗传算法的基本思想是通过模拟自然选择和遗传机制,逐代地演化出越来越适应环境的解。其基本步骤包括:

初始化种群:随机生成一组初始解(称为个体),构成初始种群。
评估适应度:对每个个体计算适应度函数值,用于衡量个体的优劣程度。
选择操作:根据个体的适应度选择一些优秀的个体作为父代,用于繁殖下一代。	
交叉操作:通过交叉操作(交叉互换染色体的部分信息),生成新的个体。	
变异操作:对新生成的个体进行变异操作(随机改变染色体的部分信息),增加种群的多样性。	
更新种群:用新生成的个体替换部分父代个体,形成新一代种群。	
重复迭代:重复上述步骤,直到满足终止条件(例如达到最大迭代次数或目标函数值不再变化)。

遗传算法具有一定的并行性和全局搜索能力,能够在解空间中自适应地搜索,并且不依赖于问题的具体形式。它适用于各种优化问题,如函数优化、组合优化、参数优化等,但也存在着参数调节、收敛速度慢等缺点。因此,在使用遗传算法时需要根据具体问题的特点进行调节和优化。

(5)Cross-Entropy method (CEM),简称CEM 是一种概率型优化方法,常用于解决高维、非凸、非线性的优化问题。它通过构建一个概率分布模型来表示解空间中的解,然后根据这个模型来生成候选解,并根据目标函数值对候选解进行评估和选择。CEM 主要用于求解那些无法通过传统的梯度优化方法求解的问题。

CEM 的基本思想是通过迭代地更新概率分布模型,逐步提高候选解的质量。其主要步骤包括:

初始化模型参数:随机初始化一个概率分布模型,通常使用高斯分布或者其他分布来表示。
生成样本:根据当前的概率分布模型生成一些样本(候选解)。
评估样本:计算每个样本的目标函数值,并根据目标函数值对样本进行排序。
更新模型参数:根据评估结果更新概率分布模型的参数,以期望生成更优质的样本。
重复迭代:重复上述步骤,直到满足终止条件(例如达到最大迭代次数或目标函数值收敛)。

CEM 可以通过调节概率分布模型的参数来探索解空间,并逐步提高候选解的质量。它适用于那些无法直接求解梯度的问题,如黑盒函数优化、控制问题、策略搜索等。然而,CEM 通常需要大量的样本和迭代才能得到较好的解,因此在实践中可能会受到计算资源的限制。

(6)Covariance Matrix Adaptation,简称CMA 是一种优化算法,属于进化计算的范畴,常用于解决连续空间中的优化问题。CMA 是基于概率分布的优化方法,通过估计解的概率分布并自适应地调整该分布来搜索最优解。

CMA 算法的核心思想是维护一个多维高斯分布来表示解空间中的解的概率分布,然后根据历史信息来自适应地调整该高斯分布的参数,以期望生成更好的候选解。其主要步骤包括:

初始化:随机初始化一个多维高斯分布,表示解的概率分布。
生成样本:根据当前的高斯分布生成一些样本(候选解)。
评估样本:计算每个样本的适应度(目标函数值)。
更新分布:根据样本的适应度和历史信息来自适应地调整高斯分布的均值和协方差矩阵,以期望生成更好的样本。
重复迭代:重复上述步骤,直到满足终止条件(例如达到最大迭代次数或目标函数值收敛)。

CMA 算法具有较好的全局搜索能力和收敛性,并且不需要计算目标函数的梯度信息。它通常适用于解决那些连续空间中的非凸、高维优化问题,如参数优化、神经网络训练等。然而,CMA 算法也存在一些缺点,如对初始参数敏感、计算代价较高等,因此在实践中需要谨慎使用。
在这里插入图片描述
在这里插入图片描述
拟牛顿法(Quasi-Newton) 是一类优化算法,用于解决无约束和约束的非线性优化问题。它通过利用函数值和(或)梯度值的信息来逐步优化目标函数,而无需显式地计算目标函数的二阶导数(Hessian矩阵)。拟牛顿法的主要思想是通过近似构造Hessian矩阵的逆,从而达到加速收敛的目的。

与传统的牛顿法相比,拟牛顿法的优点在于它克服了需要显式计算Hessian矩阵的困难。在每一步迭代中,拟牛顿法利用目标函数值和(或)梯度值的信息来近似构造Hessian矩阵的逆,从而更新搜索方向和步长。拟牛顿法通常采用迭代的方式进行优化,直到满足收敛条件。

常见的拟牛顿法包括:

(1)BFGS算法(Broyden-Fletcher-Goldfarb-Shanno):BFGS算法是拟牛顿法的一种,通过近似构造Hessian矩阵的逆来进行优化。它采用了一种巧妙的迭代方法来更新逆Hessian矩阵的估计,从而实现了高效的优化。

(2)L-BFGS算法(Limited-Memory BFGS):L-BFGS算法是BFGS算法的一种改进版本,它通过存储一部分历史信息来近似构造Hessian矩阵的逆,从而降低了存储和计算的成本。

(3)DFP算法(Davidon-Fletcher-Powell):DFP算法也是拟牛顿法的一种,它采用了不同的更新策略来近似构造Hessian矩阵的逆,从而实现了类似于BFGS算法的优化效果。

拟牛顿法在实践中被广泛应用于各种优化问题,如机器学习、数值优化、工程设计等领域。它具有较好的收敛性和稳定性,并且不需要计算目标函数的二阶导数,因此在求解大规模和高维度的优化问题时具有一定的优势。
在这里插入图片描述

Policy Gradient

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里她举了个例子,里面涉及了一个概念:open-loop policy
开环策略(Open-loop policy)是指在强化学习中,智能体根据环境状态的历史信息和预先设定的策略来选择动作,而不考虑之后状态的观察结果或反馈。简单来说,开环策略是一种不依赖于环境反馈的策略,它将动作选择完全基于先验知识和环境状态。

在开环策略中,智能体在每个时间步根据当前的状态以及预先确定的策略,直接选择下一个动作,而无需考虑该动作对后续状态的影响或环境的反馈。这意味着开环策略不会根据环境的实时反馈进行调整或修正,而是固定地执行预先设定的动作序列。

尽管开环策略简单且易于实现,但它通常只适用于确定性环境或者具有低状态空间和动作空间的问题。在复杂的、不确定的环境中,由于无法考虑到环境的实时变化和反馈,开环策略可能会导致性能下降。因此,在这些情况下,通常会使用基于环境反馈的闭环策略(Closed-loop policy),如基于价值函数或基于策略的方法,来动态地调整和优化智能体的行为。

一个实际的例子是自动驾驶车辆在高速公路上的巡航控制。在这种情况下,开环策略可以是预先规划的路径和速度曲线,基于车辆当前的位置、速度和道路信息,车辆可以直接按照预先规划的路径和速度来执行操作,而不需要实时地考虑周围车辆的行为或者路面的状况。

在这个例子中,开环策略是根据先验的道路地图和交通规则预先计划的,车辆按照计划好的轨迹和速度行驶,不需要实时地根据周围车辆的运动状态进行调整。然而,由于现实世界中的交通情况和路面状况可能随时发生变化,开环策略可能无法应对突发情况,因此还需要闭环控制系统来监测环境并根据实时反馈进行调整,以确保车辆的安全性和稳定性。

Score Function and Policy Gradient Theorem

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Policy Gradient Theorem

在这里插入图片描述

Policy Gradient Algorithms and Reducing Variance

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Monte-Carlo Policy Gradient (REINFORCE)

在这里插入图片描述
在每轮完成θ更新后,根据新的θ进行采样(如果需要下一轮的更新)

Differentiable Policy Classe

在这里插入图片描述

Softmax Policy

在这里插入图片描述

Gaussian Policy

在这里插入图片描述

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值