[Reinforcement Learning] 马尔可夫决策过程

  阅读目录
  
  情节性任务 vs. 连续任务
  
  马尔可夫性
  
  马尔可夫过程
  
  马尔可夫奖赏过程
  
  马尔可夫决策过程
  
  Reference
  
  在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性。
  
  回到顶部
  
  情节性任务 vs. 连续任务
  
  情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作为有限步骤的任务。
  
  连续任务(Continuing Tasks),所有的任务不能分解,可以看作为无限步骤任务。
  
  回到顶部
  
  马尔可夫性
  
  引用维基百科对马尔可夫性的定义:
  
  马尔可夫性:当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。
  
  用数学形式表示如下:
  
  A state StSt is Markov if and only if
  
  P[St+1|St]=P[St+1|S1,...,St]
  
  P[St+1|St]=P[St+1|S1,...,St]
  
  回到顶部
  
  马尔可夫过程
  
  马尔可夫过程即为具有马尔可夫性的过程,即过程的条件概率仅仅与系统的当前状态相关,而与它的过去历史或未来状态都是独立、不相关的。
  
  回到顶部
  
  马尔可夫奖赏过程
  
  马尔可夫奖赏过程(Markov Reward Process,MRP)是带有奖赏值的马尔可夫过程,其可以用一个四元组表示 <S,P,R,γ><S,P,R,γ>。
  
  SS 为有限的状态集合;
  
  PP 为状态转移矩阵,Pss′=P[St+1=s′|St=s]Pss′=P[St+1=s′|St=s];
  
  RR 是奖赏函数;
  
  γγ 为折扣因子(discount factor),其中 γ∈[0,1]γ∈[0,1]
  
  奖赏函数
  
  在 tt 时刻的奖赏值 GtGt:
  
  Gt=Rt+1+γRt+2+...=∑k=0∞γkRt+k+1
  
  Gt=Rt+1+γRt+2+...=∑k=0∞γkRt+k+1
  
  Why Discount
  
  关于Return的计算为什么需要 γγ 折扣系数。David Silver 给出了下面几条的解释:
  
  数学表达的方便
  
  避免陷入无限循环
  
  远期利益具有一定的不确定性
  
  在金融学上,立即的回报相对于延迟的汇报能够获得更多的利益
  
  符合人类更看重眼前利益的特点
  
  价值函数
  
  状态 ss 的长期价值函数表示为:
  
  v(s)=E[Gt|St=s]
  
  v(s)=E[Gt|St=s]
  
  Bellman Equation for MRPs
  
  v(s)=E[Gt|St=s]=E[Rt+1+γRt+2+...|St=s]=E[Rt+1+γ(Rt+2+γRt+3...)|St=s]=E[Rt+1+γGt+1|St=s]=E[Rt+1+γv(st+1)|St=s](1)(2)(3)(4)(5)
  
  (1)v(s)=E[Gt|St=s](2)=E[Rt+1+γRt+2+...|St=s](3)=E[Rt+1+γ(Rt+2+γRt+3...)|St=s](4)=E[Rt+1+γGt+1|St=s](5)=E[Rt+1+γv(st+1)|St=s]
  
  下图为MRP的 backup tree 示意图:
  
  注:backup tree 中的白色圆圈代表状态,黑色圆点对应动作。
  
  根据上图可以进一步得到:
  
  v(s)=Rs+γ∑s′∈SPss′v(s′)
  
  v(s)=Rs+γ∑s′∈SPss′v(s′)
  
  回到顶部
  
  马尔可夫决策过程
  
  马尔可夫决策过程(Markov Decision Process,MDP)是带有决策的MRP,其可以由一个五元组构成 <S,A,P,R,γ><S,A,P,R,γ>。
  
  SS 为有限的状态集合;
  
  AA 为有限的动作集合;
  
  PP 为状态转移矩阵,Pass′=P[St+1=s′|St=s,At=a]Pss′a=P[St+1=s′|St=s,At=a];
  
  RR 是奖赏函数;
  
  γγ 为折扣因子(discount factor),其中 γ∈[0,1]γ∈[0,1]
  
  我们讨论的MDP一般指有限(离散)马尔可夫决策过程。
  
  策略
  
  策略(Policy)是给定状态下的动作概率分布,即:
  
  π(a|s)=P[At=a|St=a]
  
  π(a|s)=P[At=a|St=a]
  
  状态价值函数 & 最优状态价值函数
  
  给定策略 ππ 下状态 ss 的状态价值函数(State-Value Function)vπ(s)vπ(s):
  
  vπ(s)=Eπ[Gt|St=s]
  
  vπ(s)=Eπ[Gt|St=s]
  
  状态 ss 的最优状态价值函数(The Optimal State-Value Function)v∗(s)v∗(s):
  
  v∗(s)=maxπvπ(s)
  
  v∗(s)=maxπvπ(s)
  
  动作价值函数 & 最优动作价值函数
  
  给定策略 ππ,状态 ss,采取动作 aa 的动作价值函数(Action-Value Function)qπ(s,a)qπ(s,a):
  
  qπ(s,a)=Eπ[Gt|St=s,At=a]
  
  qπ(s,a)=Eπ[Gt|St=s,At=a]
  
  状态 ss 下采取动作 aa 的最优动作价值函数(The Optimal Action-Value Function)q∗(s,a)q∗(s,a):
  
  q∗(s,a)=maxπqπ(s,a)
  
  q∗(s,a)=maxπqπ(s,a)
  
  最优策略
  
  如果策略 ππ 优于策略 π′π′:
  
  π≥π′ if vπ(s)≥vπ′(s),∀s
  
  π≥π′ if vπ(s)≥vπ′(s),∀s
  
  最优策略 v∗v∗ 满足:
  
  v∗≥π,∀πv∗≥π,∀π
  
  vπ∗(s)=v∗(s)vπ∗(s)=v∗(s)
  
  qπ∗(s,a)=q∗(s,a)qπ∗(s,a)=q∗(s,a)
  
  如何找到最优策略?
  
  可以通过最大化 q∗(s,a)q∗(s,a) 来找到最优策略:
  
  v∗(a|s)={1 if a=argmaxa∈Aq∗(s,a)0 otherwise
  
  v∗(a|s)={1 if a=arg⁡maxa∈Aq∗(s,a)0 otherwise
  
  对于MDP而言总存在一个确定的最优策略,而且一旦我们获得了q∗(s,a)q∗(s,a),我们就能立即找到最优策略。
  
  Bellman Expectation Equation for MDPs
  
  我们先看下状态价值函数 vπvπ。
  
  状态 ss 对应的 backup tree 如下图所示:
  
  根据上图可得:
  
  vπ(s)=∑a∈Aπ(a|s)qπ(s,a)(1)
  
  vπ(s)=∑a∈Aπ(a|s)qπ(s,a)(1)
  
  再来看动作价值函数 qπ(s,a)qπ(s,a)。
  
  状态 ss,动作 aa 对应的 backup tree 如下图所示:
  
  因此可得:
  
  qπ(s,a)=Ras+γ∑s′∈SPass′vπ(s′)(2)
  
  qπ(s,a)=Rsa+γ∑s′∈SPss′avπ(s′)(2)
  
  进一步细分 backup tree 再来看 vπvπ 与 qπ(s,a)qπ(s,a) 对应的表示形式。
  
  细分状态 ss 对应的 backup tree 如下图所示:
  
  将式子(2)代入式子(1)可以进一步得到 vπ(s)vπ(s) 的贝尔曼期望方程:
  
  vπ(s)=∑a∈Aπ(a|s)(Ras+γ∑s′∈SPass′vπ(s′))(3)
  
  vπ(s)=∑a∈Aπ(a|s)(Rsa+γ∑s′∈SPss′avπ(s′))(3)
  
  细分状态 ss,动作 aa 对应的 backup tree 如下图所示:
  
  将式子(1)代入式子(2)可以得到 qπ(s,a)qπ(s,a) 的贝尔曼期望方程:
  
  qπ(s,a)=Ras+γ∑s′∈SPass′(∑a′∈Aπ(a′|s′)qπ(s′,a′))(4)
  
  qπ(s,a)=Rsa+γ∑s′∈SPss′a(∑a′∈Aπ(a′|s′)qπ(s′,a′))(4)
  
  Bellman Optimality Equation for MDPs
  
  同样我们先看 v∗(s)v∗(s):
  
  对应可以写出公式:
  
  v∗(s)=maxaq∗(s,a)(5)
  
  v∗(s)=maxaq∗(s,a)(5)
  
  再来看q∗(s,a)q∗(s,a):
  
  对应公式为:
  
  q∗(s,a)=Ras+γ∑s′∈SPass′v∗(s′)(6)
  
  q∗(s,a)=Rsa+γ∑s′∈SPss′av∗(s′)(6)

1. 桥接模式,静态ip上外网:
vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=www.xinghenyule.com stable-privacy
NAME=ens33
UUID=292b882b-ebd2-4d03-9ce5-402da7858f6d
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.2.124
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=127.207.160.106
DNS2=219.239.26.42

或者用下面的DNS也是可以的:
DNS1=8.8.8.8
DNS2=8.8.4.4

systemctl restart network

cat /etc/resolv.conf
看一下
nameserver 8.8.8.8
nameserver 8.8.4.4
2. 关闭防火墙
systemctl stop firewalld.service #停止firewall

systemctl disable www.ysyl157.com firewalld.service #禁止firewall开机启动

3. 禁止:
vi /etc/sysconfig/selinux
改成disabled
SELINUX=enforcing
改成:
SELINUX=disabled
4. 配置yum源
网络yum源
yum install wget 
cd /etc/yum.repos.d/
wget http://www.dfgjpt.com/   mirrors.aliyun.com/repo/Centos-7.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
mv Centos-7.repo CentOs-www.078886.cn/ Base.repo
yum clean all
yum makecache
yum update

5. 免密码登陆:
永久修改主机名:
在三台机器上分别执行下列语句:注意三台机器的用户名不同
hostnamectl --static set-hostname spark1
ssh-keygen -t rsa
cd /root/.ssh
cp id_rsa.pub authorized_keys
然后从spakr1主机免密码登陆spark2,spark3
ssh-copy-id -i spark2
ssh-copy-id -i spark3
同理在spark2执行下列语句:
ssh-copy-id -i spark1
ssh-copy-id -i spark3
同理在spark3执行下列语句:
ssh-copy-id -i spark1
ssh-copy-id -i spark2

6. hadoop集群搭建:

未完待续。
  
  同样的套路获取 v∗(s)v∗(s) 对应的 backup tree 以及贝尔曼最优方程:
  
  贝尔曼最优方程:
  
  v∗(s)=maxa(Ras+γ∑s′∈SPass′v∗(s′))(7)
  
  v∗(s)=maxa(Rsa+γ∑s′∈SPss′av∗(s′))(7)
  
  q∗(s,a)q∗(s,a) 对应的 backup tree 以及贝尔曼最优方程:
  
  对应的贝尔曼最优方程:
  
  Ras+γ∑s′∈SPass′maxaq∗(s,a)(8)
  
  Rsa+γ∑s′∈SPss′amaxaq∗(s,a)(8)
  
  贝尔曼最优方程特点
  
  非线性(non-linear)
  
  通常情况下没有解析解(no closed form solution)
  
  贝尔曼最优方程解法
  
  Value Iteration
  
  Policy Iteration
  
  Sarsa
  
  Q-Learning
  
  MDPs的相关扩展问题
  
  无限MDPs/连续MDPs
  
  部分可观测的MDPs
  
  Reward无折扣因子形式的MDPs/平均Reward形式的MDPs

猜你喜欢

转载自blog.csdn.net/li123128/article/details/83472317