作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!
全部可观和部分可观
在介绍部分可观和全部可观之前,想先介绍三个概念:
- Environment State: The environment state S t e S_{t}^{e} Ste is the environment’s private representation。 environment state指的是对环境信息的一个总结,他可能是一段0101的数字序列,用于产生对应的observation和reward,他是环境的一种内部的状态,对于agent来说environment state是不可见的,agent能看到的只有 environment state产生的observation和reward。
- Agent State: The agent state S t a S_{t}^{a} Sta is the agent’s internal representation。是智能体的一些内部表示,比如说强化学习算法的实现。他是关于History的一个函数。
- Information state:包含了history中所有有用的信息。如果它满足马尔科夫性,那么保留了 S t , S_{t}, St, 我们就可以将 S 1 , … S t − 1 S_{1}, \ldots S_{t-1} S1,…St−1 全部丢掉。
有了这三个概念之后,理解全部可观和部分可观就更简单了:
Fully Observable Environments
-
在完全可观察环境下,agent能够直接观察到environment state,也就是说:
O t = S t a = S t e O_{t}=S_{t}^{a}=S_{t}^{e} Ot=Sta=Ste
-
这类问题被称为MDP问题,Markov decision process。
Partially Observable Environments
-
在部分可观察环境中,Observation state 不等于 environment state,我们只能看到部分信息,或者只能看到一些现象,比如在扑克游戏中,我们只能看到公开的牌面,看不到其他人隐藏的牌。
-
这个问题被称为POMDP问题:partially observable Markov decision process。
-
对于这个问题,有几种解决方案:
- 记住所有的历史状态: S t a = H t S_{t}^{a}=H_{t} Sta=Ht
- 使用贝叶斯概率,我们可以创建一个Beliefs, S t a = ( P [ S t e = s 1 ] , … , P [ S t e = s n ] ) , S_{t}^{a}=\left(P\left[S_{t}^{e}=s^{1}\right], \ldots, P\left[S_{t}^{e}=s^{n}\right]\right), Sta=(P[Ste=s1],…,P[Ste=sn]), 这个概率状态的向量组成当前的状态, 所以我们需要保存所有状交的概率值
- 使用递归神经网络: S t a = σ ( S t − 1 a W s + O t W o ) S_{t}^{a}=\sigma\left(S_{t-1}^{a} W_{s}+O_{t} W_{o}\right) Sta=σ(St−1aWs+OtWo),将之前的状态 S t − 1 a S_{t-1}^{a} St−1a 与 W s W_{s} Ws 进行线性组合, 再加上最近的一次观察值的线性組合, 带入非线性函数 σ \sigma σ, 得到新的状态