Sequential Decision Making under uncertain - 不确定性条件下的序列决策制定

本文主要是介绍Sequential Decision Making under uncertain - 不确定性条件下的序列决策制定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sequential Decision Making

序列决策制定可以被归纳为为下面的交互式闭环过程:
在这里插入图片描述
目标:选择能够最大化未来全部收益期望的动作(actions)。

这可能不一直都是好的标准,但这是大多数强化学习所关注的。但现在也有一些人对distribution honorable强化学习和其他方面有兴趣

  • 可能需要平衡即时收益和长期回报
  • 可能需要策略化的行为以取得高回报(你可能需要牺牲初始阶段的高奖励以取得更好的长期奖励)

更进一步地:
在这里插入图片描述
在每一个时间步t:

  • Agent 采取一个action a t a_t at
  • World 更新执行 a t a_t at后的状态,返回观察 o t o_t ot和奖励 r t r_t rt
  • Agent 接收观察 o t o_t ot和奖励 r t r_t rt

我们可以定义一个history h t = ( a 1 , o 1 , r 1 , . . . , a t , o t , r t ) h_t=(a_1,o_1,r_1,...,a_t,o_t,r_t) ht=(a1,o1,r1,...,at,ot,rt)

Agent基于history选择action。

State是假定去确定下一步发生什么的信息:

  • 或者说State是history的一个函数: s t = f ( h t ) s_t=f(h_t) st=f(ht)
World State
  • World State(为了和State作区分,是world的真实状态,agent有自己独有的状态空间)被用于确定world如何产生下一个观察和奖励
  • World State通常对agent来说是不可见的或者未知的
  • 即使会包含一些agent不需要的信息
Agent State
  • 被agent用于制定决策如何行动
  • 总的来说是一个历史的函数 s t = f ( h t ) s_t=f(h_t) st=f(ht)
  • 可以包含诸如算法状态的元信息(执行了多少计算步骤,等)或决策过程(一轮里还有多少决策需要制定)
Markov Assumption

information state:充足的history的统计数据。
State s t s_t st是马尔科夫的当且仅当:
p ( s t + 1 ∣ s t , a t ) = p ( s t + 1 ∣ h t , a t ) p(s_{t+1}|s_t,a_t)=p(s_{t+1}|h_t,a_t ) p(st+1st,at)=p(st+1ht,at)
为了对未来做出预测,只需要知道Enviroment的当前状态,即给定现在时未来对过去是独立的。

Why is Markov Assumption Polular ?
  • Markov Assumption可以一直被满足
    • 只要把state设定成history它就是马尔科夫的: s t = h t s_t=h_t st=ht
  • 在实践中通常假定最近的观察是充足的history统计数据: s t = o t s_t=o_t st=ot
  • State representation 对以下有影响:
    • 计算复杂度
    • 需要的数据量
    • 最终结果的性能
Full Observability / Markov Decision Process(MDP)

如果我们假定Environment的观察等于world的state: s t = o t s_t=o_t st=ot,那么agent就是以马尔科夫决策过程(MDP)来建模world的。

Partial Observability / Partially Observable Markov Decision Process(POMDP)
  • Agent的state和world的state是不同的(partially)
  • Agent自己构建自己的state,e.g
    • 使用history s t = h t s_t=h_t st=ht,或者使用world state的belief(信念), 或者使用RNN
Types of Sequential Decision Process: Bandits
  • Bandits(老虎机):action对下一个观察没有影响
  • 没有延期的奖励。

Bandits是一种简单的马尔科夫决策过程。

Types of Sequential Decision Process: MDPs and POMDPs

在这里插入图片描述
对MDP和POMDP来说:

  • actions会影响未来的观察
  • 可能需要奖励分配(Credit assignment)和策略化action
Types of Sequential Decision Process: How does the world changes
  • Deterministic(确定性):给定一个history和action,只会产生一个观察(obsercation)和奖励(reward)
    • 在机器人和控制论里是常见假设
  • Stochastic(随机性): 给定一个history和action,可能会有多个潜在的观察(obsercation)和奖励(reward)
    • 针对顾客,患者,难以建模的领域来说是常见假设

这篇关于Sequential Decision Making under uncertain - 不确定性条件下的序列决策制定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420056

相关文章

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

SQL Server中,添加数据库到AlwaysOn高可用性组条件

1、将数据添加到AlwaysOn高可用性组,需要满足以下条件: 2、更多具体AlwaysOn设置,参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/ff878487(v=sql.120).aspx 注:上述资源来自MSDN。

代码随想录——摆动序列(Leetcode376)

题目链接 贪心 class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length <= 1){return nums.length;}// 当前一对差值int cur = 0;// 前一对差值int pre = 0;// 峰值个数int res = 1;for(int i = 0; i < nums.length -

想让Python序列切片更高效?这些技巧你不可不知!

目录 1、自定义类实现切片 🍏 1.1 实现__getitem__方法 1.2 支持正负索引与步长 2、利用 collections.abc 模块 🧠 2.1 继承MutableSequence类 2.2 重写关键方法 3、使用标准库itertools.slice 🍲 3.1 itertools工具介绍 3.2 slice函数应用实例 4、通过生成器实现动态切片 🌀

最长考拉兹序列

题目:  考虑如下定义在正整数集上的迭代规则:  n    n/2 (若n为偶数) n    3n+1 (若n为奇数) 从13开始,可以迭代生成如下的序列:         13  40  20  10  5  16  8  4  2  1 可以看出这个序列(从13开始到1结束)共有10项。 尽管还未被证明,但普遍认为,从任何数开始最终都能抵达1并结束, 这被称为 “考拉兹序列”。

线程间通信方式(互斥(互斥锁)与同步(无名信号量、条件变量))

1通信机制:互斥与同步 线程的互斥通过线程的互斥锁完成; 线程的同步通过无名信号量或者条件变量完成。 2  互斥 2.1 何为互斥?         互斥是在多个线程在访问同一个全局变量的时候,先让这个线程争抢锁的资源,那个线程争抢到资源,它可以访问这个变量,没有争抢到资源的线程不能够访问这个变量。那这种只有一个线程能够访问到这个变量的现象称之为线程间互斥。 2.2互斥锁API 1.

leetcode刷题(97)——106. 从中序与后序遍历序列构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 3/ \9 20/ \15 7 看下后序和中序遍历的框架: void traverse(TreeNode root) {trave

leetcode刷题(97)——105. 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7 1.先回顾前序遍历和中序遍历的框架: void traverse(TreeNode root) {//

力扣SQL50 销售分析III having + 条件计数

Problem: 1084. 销售分析III 👨‍🏫 参考题解 Code select s.product_id,p.product_namefrom sales s left join product pon s.product_id = p.product_idgroup by product_idhaving count(if(sale_date between

yii2数据条件查询-where专题

yii2数据条件查询-where专题 条件查询 c u s t o m e r s = C u s t o m e r : : f i n d ( ) − > w h e r e ( customers = Customer::find()->where( customers=Customer::find()−>where(cond)->all(); $cond就是我们所谓的条件,条件的写法也根