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

相关文章

uva 10131 最长子序列

题意: 给大象的体重和智商,求体重按从大到小,智商从高到低的最长子序列,并输出路径。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vect

POJ1631最长单调递增子序列

最长单调递增子序列 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;import java.util.StringTokenizer;publ

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾,且有不超过 h 个下标满足条件的最长好子序列的长度(0<=h<=k),二维数组dp初始值全为1 解题过程 状态转换方程: 1.nums[i]==nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h]+1) 2.nums[i]!=nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h-1

LeetCode:3177. 求出最长好子序列 II 哈希表+动态规划实现n*k时间复杂度

3177. 求出最长好子序列 II 题目链接 题目描述 给你一个整数数组 nums 和一个非负整数k 。如果一个整数序列 seq 满足在下标范围 [0, seq.length - 2] 中 最多只有 k 个下标i满足 seq[i] != seq[i + 1] ,那么我们称这个整数序列为好序列。请你返回 nums中好子序列的最长长度。 实例1: 输入:nums = [1,2,1,1,3],

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

使用条件变量实现线程同步:C++实战指南

使用条件变量实现线程同步:C++实战指南 在多线程编程中,线程同步是确保程序正确性和稳定性的关键。条件变量(condition variable)是一种强大的同步原语,用于在线程之间进行协调,避免数据竞争和死锁。本文将详细介绍如何在C++中使用条件变量实现线程同步,并提供完整的代码示例和详细的解释。 什么是条件变量? 条件变量是一种同步机制,允许线程在某个条件满足之前进入等待状态,并在条件满

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到