【Python强化学习】利用与探索及强化学习算法分类讲解

简介: 【Python强化学习】利用与探索及强化学习算法分类讲解

利用与探索

利用与探索(Exploitation & Exploration)是强化学习中非常重要的概念。利用是指从已知信息中得到最大回报。探索是指要开拓眼界、尽可能地发掘环境中更多的信息。人们在作选择时,经常会用到利用与探索的思想。比如,在选择饭店时,一般会利用自己的经验选择自己满意的饭店,以确保大概率得到理想的服务,但是也会偶尔探索一下新店,看看是否有更好的服务。

常用两种策略来实现利用与探索,分别是贪心策略(greedy strategy)和ε-贪心策略(ε-greedy strategy)。

贪心策略的思想是:只根据当前信息来作出最优选择,不考虑长远。比如,强化学习主体在做决定时,只根据既有策略计算出所有动作在当前状态下的条件概率,执行最大值对应的动作。 记可选的样本为s_i,i=1,2,…m,m为样本总数。记样本s_i的当前概率为q_i。那么,按贪心策略选择样本s_i的概率为p_i:

在强化学习算法中,常应用随机采样的方法来获取样本以优化算法。贪心策略应用于随机采样时,会出现当前概率暂时为0的样本以后也不会被采样到。这种现象类似于“近亲繁殖”,采样不全面,不利于对环境的探索。

ε-贪心策略的思想是:以探索率ε∈[0,1]从所有可能样本中按均匀分布随机选择一个样本,以1−ε的概率按当前最大概率选择。 按ε-贪心策略选择样本s_i的概率为p_i:

ε-贪心策略使得每个样本都有一定被选中的概率,保证了探索样本空间时的充分性。

强化学习算法分类

1.从算法优化过程分类

基于值函数优化策略的算法,是先求得状态值函数或动作值函数,然后依据它们来得到最优策略,主要有动态规划法、蒙特卡罗法、时序差分法(又包括Sarsa和Qlearning)和DQN等。

直接优化策略的算法,是直接从候选策略中选择最优策略,主要有策略梯度法、Actor-Critic和DDPG等。

构建环境模型辅助优化策略的算法,是在环境模型未知的情况下,先对环境进行建模,再用构建的模型来辅助优化值函数,最终求得最优策略。构建的环境模型一般不能完全刻画实际的环境,因此,算法不能完全依赖构建的环境模型,而是将对构建模型的利用和对实际环境的探索结合起来进行优化。构建环境模型辅助优化策略的算法主要有Dyna、Dyna-2、基于模拟的搜索等系列算法。

2.环境模型是否已知的分类

如果已知环境模型,则强化学习问题的求解显然要容易的多。此时,称为有模型强化学习算法。

在不知道环境模型时,一般要通过蒙特卡罗法来试探环境,得到与环境模型相关的知识用于优化策略。相应地,这类算法也称为无模型强化学习算法。

在无模型强化学习算法中,有的算法需要一次对环境的完整尝试才能进行迭代优化,称为回合制算法。有的算法不需要完整的尝试,只需要一步试探即可进行迭代优化,称为单步制算法。

3.值函数求解的分类

在状态空间和动作空间是小型的离散空间时,值函数可以用一个小型的表格来表示。一个状态值或者一个状态-动作值对对应表格中的一格。此时,值函数的迭代优化就表现为对表格中数据的迭代计算,该类算法称为值函数可计算的强化学习算法,也称为表格型强化学习算法。

如果状态空间和(或)动作空间是连续的,那么就无法用一个表格来表示值函数。此时,一般是采用映射来描述从状态值或状态-动作值对到一个实数值的对应关系,该类算法称为值函数逼近的强化学习算法。

值函数逼近的方法还被应用到大型离散空间中值函数的求解。因为当空间过于庞大时,直接计算值函数实际上已经不可行。

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
5天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
109 55
|
20天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
124 67
|
20天前
|
存储 搜索推荐 Python
用 Python 实现快速排序算法。
快速排序的平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。它在大多数情况下表现良好,但在某些特殊情况下可能会退化为最坏情况,时间复杂度为$O(n^2)$。你可以根据实际需求对代码进行调整和修改,或者尝试使用其他优化策略来提高快速排序的性能
115 61
|
22天前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
104 63
|
14天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
93 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
3天前
|
机器学习/深度学习 算法
强化学习之父Richard Sutton给出一个简单思路,大幅增强所有RL算法
Richard Sutton领导的团队提出了一种称为“奖励中心化”的方法,通过从观察到的奖励中减去其经验平均值,使奖励更加集中,显著提高了强化学习算法的性能。该方法在解决持续性问题时表现出色,尤其是在折扣因子接近1的情况下。论文地址:https://arxiv.org/pdf/2405.09999
28 15
|
21天前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
|
20天前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
21天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
25天前
|
机器学习/深度学习 人工智能 算法
强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用
本文探讨了强化学习在游戏AI中的应用,从基本原理、优势、应用场景到具体实现方法,以及Python在其中的作用,通过案例分析展示了其潜力,并讨论了面临的挑战及未来发展趋势。强化学习正为游戏AI带来新的可能性。
68 4