Reinforcement Learning Note: Concept and MDP
来源:互联网 发布:js touchevent事件 编辑:程序博客网 时间:2024/06/02 03:19
- Reinforcement Learning Concept
- reward
- Sequential decision making
- RL Agent
- categorizing RL agent
- MDP
- Markov Process
- Markov Reward Process
- Markov Decision Process
- Extension of MDP
- POMDPs
转载请注明出处: http://blog.csdn.net/c602273091/article/details/78829342
Reinforcement Learning Concept
强化学习相比于有监督的机器学习而言,它是无监督的,没有label的,反馈是延时的,不是实时的,时间在强化学习中很重要,因为时间属于agent或者环境的state的一部分。agent的action会影响接下来它接受的数据。
reward
Sequential decision making
进行一系列的决策,就是为了最大化总的将来的reward。即使当前的reward不是最好的,但是最终的是最好的,有点儿像找最短路径,当前最短的,不一定是最终最短的路径。在agent和环境的关系中,agent执行action,然后接收到观察以及对应的reward。环境也会受到action的改变,会把observation的部分反馈给agent,agent会受到对应的reward。state就是记录了过去的所有的observation,reward,action等等。
agent state和environment state都是对自身的一种记录,以及对外需要有怎么样的表现等等。这里需要特别说明一种state叫做information state(Markov State),用来描述对未来的预测,并且有假设就是预测只基于当前的状态,那么以前的状态就可以丢弃(这玩意儿就叫做Markov,是这个人提出的,叫做Markov猜想)。
观测到的状态其实有可能是部分表达的,那么在进行决策的时候就会有不同的策略。当环境是完全可以观测的时候,不同状态之间的关系就是:这种情况下就可以使用MDP(Markov Decision Process)
当是有部分可观测的情况的时候,agent只能观测到部分的环境,那么就是属于partially observable Markov decision process(POMDP)。这个时候,agent就会重建它的state presentation,比如建图的时候进行地图拼接啦,比如状态预测啦(划重点,LSTM,RNN就在这里被使用)
RL Agent
一个RL的agent包含了policy,value function,model。
- policy:就是当前属于什么状态,然后应该执行什么action。这个策略是确定的,就是一个从state到action的映射。
- value function:用来预测将来的reward,用来描述一个状态的好坏。其实在后期学习就可以知道,value function描述了可以用来选择action,通过计算执行不同action以及之后的一个state value进行一个组合,就可以计算出最大的value,来指导进行哪一个action。
- model:预测环境的变化,state的变化,reward的变化。
在slide中,有个极好的example:
policy就是告知在什么状态做什么事情,通过好的策略,就可以通过最短的步数找到goal。
value function:每个state都有一个value,通过最大化value,我们就可以找到goal。
model:网格描述的是transition model
categorizing RL agent
RL的agent中,有基于value的,基于policy的,也有两种合并的actor critic model(非常重要)。
根据model又分为model free和model based。model based就是使用了MDP。
在RL里面经常可以看到exploration和exploitation,其实简单来说,exploration就是agent去尝试各种policy,exploitation就是使用可以最大化reward的policy。
预测,就是使用一个policy。control:就是对未来进行优化,需要找到最好的policy。
MDP
Markov Process
MDP可以用来描述RL中的环境状态变化,状态转移只与当前状态有关,和之前的无关。几乎所有的RL问题都可以用MDP来进行假设。
状态转移概率以及矩阵:
MP(Markov Chain) definition:
在Markov Chain中进行一系列的状态变化记录,称为episodes。从Markov Chain可以写成Chain Transition Matrix。
Markov Reward Process
就是带有reward的Markov Chain,每个状态增加了reward。
具体的定义如下:
Return:
就是计算在t时刻的时候从
value function就是对当前状态的return的一个期望。
Value function可以使用Bellman Equation进行精简:immediate reward和discount value of successor state value。
然后上诉又可以简化为:这里根据状态转移方程中的概率分布,计算当前状态到下一状态的概率的discount value的和加上当前状态reward。这里就是由v的期望方程得到,想一想计算期望的时候,由概率分布得到最终期望。
上面说到了一个value的计算,那么所有的state的value的计算呢?
如果我们能够解出上面的方程就可以得到最终每个状态的value,就可以进行基于value的RL,得出最佳的policy。
但是呢如果MRP矩阵太大的话,那么可以使用DP、Monte-Carlo Evaluation、Temporal-Difference Learning进行迭代求解。
Markov Decision Process
MDP是带有决策的Markov Reward Process,所有的状态都是Markov。
策略:根据给定的状态得到action。
在加入action之后,reward和transition matrix也发生了变化,需要加入action。
value function:state-value function是对在状态s的时候return value的期望,而action-value function是在上述函数加入了action之后,计算return value的期望。
再次使用Bellman Expectation Equation进行简化,那么就得到了state-value function和action-value function的对比:
再来一个实际例子计算state-value function以及action-value function。
下面这幅图的是计算state-value的一个例子,图中的value 7.4有两条分支,以一定的概率往两个方向,概率都是0.5,这就是
根据Bellman Expectation Equation,可以把上面的state-value function写成:
可以进行直接求解。
刚才介绍的state-value function,action-value function,都是基于同一个policy进行的,那么如何得到最优解呢?这就是我们的目标。我们就知道这某个state的时候,就应该才去怎么样的policy,在这个policy下就会往期望最大的state-value前进。
在MDP中,总是有最优化的value function以及action value function。如何判断是不是最优的策略,判断依据就是:能够让action value最大化的时候。
具体就是如下例子,红色的线就表示optimal policy。
上图的情况就是在discount factor为0的时候,在红色部分的state如何选择action的计算。
所以在整个过程中,可以看到,从最初的MP,加入了reward之后的MRP,以及加入了action之后的MDP。最终对state-value function和action-value function进行求解,求解之后就可以得到最优的policy,求解过程需要使用Bellman Optimality Equation,iterative method(value iteration,policy iteration,Q learning,Sarsa)
Extension of MDP
这里的东西才是重头戏,主要是对离散状态有限的MDP的扩展,这里介绍了infinite & continuous MDPs;POMDPs;undiscounted average reward MDPs。没有介绍具体的东西,就是几个名词,需要用到的时候再具体使用。
Infinite MDPs:
continuous state(LQR);continuous time(需要使用部分可微函数;HJB方程;限制Bellman Equation到time-step是0)
POMDPs
POMDPs函数定义如下:
History
Belief state:
POMDPs可以简化成infinite history tree和infinite belief state tree。
这里面还有一个叫做EMP的东西(Ergodic Markov Process)的东西,定义为每个状态被访问了无数次;每个状态被访问的时候没有任何系统时期
接着把这个东西用在了average award value function里面。
这句话真不错:
The only stupid question is the one you were afraid to ask but never did. - Rich Sutton
slide中疑惑的问题:EMP,average Reward。
这个东西还是要多看几遍,多看几遍就明白了state-value function,action-state function之间的关系,以及MDP中我们最终的target是啥。
useful links:
2016年RL课程: https://hadovanhasselt.com/2016/01/12/ucl-course/
RL Lecture 1 Slide: http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/intro_RL.pdf
RL Lecture 2 Slide: http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/MDP.pdf
RL Lecture 1Video: https://www.youtube.com/watch?v=2pWv7GOvuf0
RL Lecture 2 Video: https://www.youtube.com/watch?v=lfHX2hHRMVQ
Other blog link: https://www.52coding.com.cn/index.php?/Articles/single/70
- Reinforcement Learning Note: Concept and MDP
- 增强学习 reinforcement learning,MDP
- Reinforcement Learning——MDP
- Reinforcement Learning in Continuous State and Action Spaces: A Brief Note
- [note][reinforcement-learning] (0) using reinforcement to solve frozen-lake
- 机器学习 cs229学习笔记6(增强学习 reinforcement learning,MDP)
- 机器学习 cs229学习笔记6(增强学习 reinforcement learning,MDP)
- [增强学习][Reinforcement Learning]学习笔记与回顾-2-马尔可夫决策过程MDP
- 增强学习(Reinforcement Learning and Control)
- 增强学习(Reinforcement Learning and Control)
- 增强学习(Reinforcement Learning and Control)
- reinforcement learning,增强学习:Exploration and Exploitation
- Resources for Reinforcement Learning: Theory and Practice
- 增强学习(Reinforcement Learning and Control)
- 增强学习(Reinforcement Learning and Control)
- NOTE:Deep Reinforcement Learning with a Natural Language Action Space
- Reinforcement Learning
- reinforcement learning
- Ubuntu远程连接MySQL(connection refused)解决方法
- 使用Spring Data Redis操作Redis(一) 很全面
- Redis之——jedis高版本的JedisPoolConfig没有maxActive和maxWait
- 使用springbootdatajpa遇到的性能相关问题
- 在LLVM中编写pass的详细教程(4)
- Reinforcement Learning Note: Concept and MDP
- 机器是否会取代人类工作
- LeetCode: Merge Two Sorted Lists, Remove Duplicates/Element, strStr()
- Linux下编译安装redis,详细教程
- GC(游戏客户端)如何处理服务器的响应
- 语音识别之Python开发
- 机器学习之Python库
- LeetCode-3-Longest Substring Without Repeating Characters(C语言实现)
- codeforces round#452 div2 解题记录