RL基本概念

Markov process(MP) or Markov chain

性质:未来的状态之和当前状态有关

本质:要求系统里的每个State都是唯一的

组成:

1)一个State的Set RL基本概念插图

2)一个状态之间的转换概率矩阵RL基本概念插图(1)

Markov reward process (MRP)

在马尔科夫过程基础上增加两个东西就演化成马尔科夫reward过程

1)增加一个state to state的value; 概率矩阵RL基本概念插图(2)定义了只系统的动态过程,这个value就是我们理解reward,可以为正也可以为负

2)增加一个discount factor RL基本概念插图(3) 

这时候,假设我们得到一条马尔科夫过程状态转换的链,也可以理解为episode

我们定义在RL基本概念插图(4)时刻的return为:

RL基本概念插图(5)

如果RL基本概念插图(3)等于0,return就是当前的reward;如果RL基本概念插图(3)等于1,那就是未来所有reward的和;通常RL基本概念插图(3)取值0.9或0.99,用来量化我们可以向未来看多远

因为return是基于具体某一条特定markov reward process计算得到的,所以即使是通一个state,过程不同,这个值也不同,所以我们又定义了 the value of state

RL基本概念插图(6)

也就是return的期望值或者平均值

Markov decision process (MDP)

在MRP的基础上增加一个action space,就变成了MDP

RL基本概念

RL基本概念

注意这里action space必须是确定的;

这个定义扩展了系统状态转换的维度,在给定action K的情况,状态i转到状态j的概率;换个说法,在状态i下,执行action K,会有不同概率转到不同的其他状态

那么policy的定义就是对任意给定的state上执行action的概率分布

RL基本概念插图(9)

Bellman equation

RL基本概念插图(10)

这个对状态0的value的定义,意思是在状态0的Value等于(在这个状态下选择最好的一个action的到rewad,简称R) (执行完这个action得到的下一个状态的Value,简称V‘),因为上面说了,执行一个action,可能有不同概率跳转到不同的状态,所以V’需要用加权平均的方式表达。RL基本概念插图(11) 就是从状态0跳转到状态s的概率

Value of action

action的value就是我们常说的Q值了

RL基本概念插图(12)

在状态s下动作a的Q值就是当前的reward加上转换后状态的discounted long-term reward

所以,value of state可以用Q值来表达

RL基本概念插图(13)

状态的值等于在这个状态下最大的Q值,联系前面说的状态的值也是return的期望值,把这个公式里的V展开就能看到和return之间的联系了

这样就不难得到Q-Learning的定义了:

RL基本概念插图(14)

原文:RL基本概念

SuperVideo操作教程

1. 软件下载地址windows 64位下载地址: https://wwa.lanzous.com/iL6AYeuz3damacos 64位下载地址: https://wwa.lanzous.com/iWX0seuz4pi2. 进行全局设置windows版本为绿色软件,下载软件后解压缩,打开文件夹里面的Supervideo.exe即可。首先点击左上角菜单,选…

自动类型转换 - 自动转换发生在不同数据类型运算时,在编译

自动转换发生在不同数据类型运算时,在编译的时候自动完成。自动转换遵循的规则就好比小盒子可以放进大盒子里面一样,下图表示了类型自动转换的规则。char类型数据转换为int类型数据遵循ASCII码中的对应值,ASCII码请查看WIKI。教程参考:C语言入门 - 自动类型转换

Python之递归函数 - 如果一个函数在内部调用自身本身,这个函数

如果一个函数在内部调用自身本身,这个函数就是递归函数。递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。使用递归函数需要注意防止栈溢出。教程参考:初识Python - Python之递归函数

练习题 - 在C语言中,while语句在循环开始前检

在C语言中,while语句在循环开始前检查条件表达式,使循环代码块一次不执行;do-while语句使循环执行代码块至少执行一次;在循环次数已知的情况下,通常使用for语句控制循环。请在以下选项中选出对应的语句填写在横线上。教程参考:C语言入门 - 练习题

Java入门第一季 - Java单引号和双引号不一样!char

Java单引号和双引号不一样! char类型是单引号(字符),所以case要用单引号。 string类型是双引号(字符串)。教程参考:Java入门第一季 - Java条件语句之 switch