深入理解强化学习——强化学习智能体的四要素:策略(Policy)

分类目录:《深入理解强化学习》总目录
相关文章:
· 强化学习智能体的四要素:策略(Policy)
· 强化学习智能体的四要素:收益信号(Revenue Signal)
· 强化学习智能体的四要素:价值函数(Value Function)
· 强化学习智能体的四要素:模型(Model)


对于一个强化学习智能体,它可能有一个或多个如下的组成成分:

  • 策略(Policy):智能体会用策略来选取下一步的动作
  • 收益信号(Revenue Signal):在每一步中,环境向强化学习智能体发送一个标量数值,收益信号是改变策略的主要基础
  • 价值函数(Value Function):我们用价值函数来对当前状态进行评估,价值函数用于评估智能体进入某个状态后,可以对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利
  • 模型(Model):模型表示智能体对环境的状态进行理解,它决定了环境中世界的运行方式

本文就将探讨强化学习智能体的四要素中的策略。

策略是智能体的动作模型,它决定了智能体的动作。它其实是一个函数,用于把输入的状态变成动作。策略可分为两种:随机性策略和确定性策略:

  • 随机性策略(Stochastic Policy)就是 π \pi π函数,即 p ( a ∣ s ) = p ( a t = a ∣ s t = s ) p(a|s)=p(a_t=a|s_t=s) p(as)=p(at=ast=s),输入一个状态 s s s,输出一个概率。 这个概率是智能体所有动作的概率,然后对这个概率分布进行采样,可得到智能体将采取的动作。比如可能是有 0.7 0.7 0.7的概率往左, 0.3 0.3 0.3的概率往右,那么通过采样就可以得到智能体将采取的动作。
  • 确定性策略(Deterministic Policy):智能体直接采取最有可能的动作,即 a ∗ = arg ⁡ max ⁡ a π ( a ∣ s ) a^*=\arg\max_a\pi(a|s) a=argmaxaπ(as)

如图下图所示,从雅达利游戏来看,策略函数的输入就是游戏的一帧,它的输出决定智能体向左移动或者向右移动。
策略函数

通常情况下,强化学习一般使用随机性策略,随机性策略有很多优点:

  • 在学习时可以通过引入一定的随机性来更好地探索环境
  • 随机性策略的动作具有多样性,这一点在多个智能体博弈时非常重要。采用确定性策略的智能体总是对同样的状态采取相同的动作,这会导致它的策略很容易被对手预测。

策略定义了学习智能在特定时间的行为方式。简单地说,策略是环境状态到动作的映射。它对应于心理学中被称为“刺激一反应”的规则或关联关系。在某些情况下,策略可能是一个简单的函数或查询表,而在另一些情况下,它可能涉及大量的计算,例如搜索过程。策略本身是可以决定行为的,因此策略是强化学习智能体的核心。一般来说,策略可能是环境所在状态和智能体所采取的动作的随机函数。

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022


http://www.niftyadmin.cn/n/5095546.html

相关文章

JAVA发送消息到RabbitMq

项目中&#xff0c;作为生产者自定义消息发送到RabbitMq。 1.引入rmq依赖 <!-- rabbitmq 依赖 --><dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.9.0</version></dependen…

黑马JVM总结(三十五)

&#xff08;1&#xff09;JMM-有序性-问题 &#xff08;2&#xff09;JMM-有序性-解决 使用maven重新编译&#xff1a; 生成两个jar包 运行这个jar包&#xff1a; 再次执行上述结果&#xff1a;0出现的次数为0了 &#xff08;3&#xff09;JMM-有序性-理解 &#xff08;4&am…

基础知识汇总一

1.表单中Get和Post提交方法的区别? get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.简述什么是软件架构的MVC? MVC由Model(模型), View(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码…

lambda refinement for body RadiationSurface might reach

HFSS2021R1仿真时遇到此问题&#xff0c;百度时看到如下解答&#xff0c;但是因为内存不够的原因。 经过查阅资料和思考&#xff0c;发现是RadiationSurface的网格分的太大导致的&#xff0c;应该让网格单元的长度必须小于 1/3 个波长。 修改后即可。

TatukGIS Developer Kernel使用教程:如何为FMX创建第一个应用程序

概述&#xff1a;TatukGIS Developer Kernel&#xff08;DK&#xff09;是一个用于开发自定义地理信息系统&#xff08;GIS&#xff09;应用程序以及解决方案的综合性软件开发工具包&#xff08;SDK&#xff09;。本篇文章主要介绍用DK11为FMX创建一个应用程序&#xff0c;现在…

PyTorch 深度学习之循环神经网络(基础篇)Basic RNN(十一)

0.Revision: DNN dense 重义层 全连接 RNN处理带有序列的数据 1. What is RNNs? linear layer 1.1 What is RNN? tanh (-1, 1) 1.2 RNN Cell in PyTorch 1.3 How to use RNNCell *先把维度搞清楚 多了一个序列的维度 2. How to use RNN 2.1 How to use RNN - numLayers…

IOS课程笔记[4-5] 计算器实现与更换主题 的使用

计算 控件介绍 文本输入 设置键盘格式为NumberPad字符串与数字转换方法 NSInteger num2 [str2 integerValue]; 弹窗控件 UIAlertController 新版本弹窗 UIAlertController *alert [UIAlertController alertControllerWithTitle:"error" message:"输入有…

Java设计模式之组合模式

组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得客户端能够以一致的方式处理单个对象以及对象的组合。 在组合模式中&#xff0c;存在两种主要的对象类型…