1. Model-based Approaches

爬行机器人中,每个关节有5个自由度,机器人有25个自由度。把自由度按坐标画出来,这个图表明如果机器人从一种状态移动到另一状态,其形态就发生改变,称为过渡。把所有能转换的状态列出来,是state transition diagram。最终需要的仅仅是爬的最快的路径。最短路径可以被很快编译出,但是指令仅仅来自于外界。更复杂的方式是让机器人基于眼前的任务,生成自己的指令。

强化学习笔记: Model-based Approaches(1)

例如,让机器人通过试错法来学习这些指令。机器人杂乱无章地调整姿态,不同的姿态会得到不同的奖励。奖励的数量是由爬行的速度决定的。机器人控制器就会:

  1. 在不断向前走的过程中,评估每个连接/状态的价值
  2. 用一个数字量化这个值(Q)
  3. 存储Q用作下一次评估

尝试很多种可能,评估每种状态的价值,将奖励最大化——是强化学习。某一个实体从与环境的交互中自主学习。实体即为agentagent与之交互的任何实体都称为environment。二者的交互方式用actionsa)表征。agent做出行动的特定状态为states),其行动是policyπ)。如果agents状态做出a行为,即π(s)=aπ(s)=a

在一个时间延迟(ΔtΔt)后,一个行动会导致两个结果。首先,agent移动到下一状态。其次,agent接收到了环境对于行动a的评估,以奖励r的形式(一般为正数)。这个奖励仅由环境决定。

agentt时刻的状态设为StS_t,行动为AtA_t,在做出行为AtA_t之后获得的奖励为Rt+1R_t+1

在时刻tπ(s)=a;π(s)=a;
在时刻t+1st+1=s,Rt+1=r(Δt=1)s_t+1=s', R_t+1=r (Δt=1)

强化学习笔记: Model-based Approaches(1)

agent在无限期地执行任务称为continuing,eg: 扫地机器人。
在某种状态下终止称为episodic,eg机器人在迷宫找出口。

agent的目的是完成任务+奖励最大化,强化学习的问题就在于如何找与之对应的policy。一种解决方式依赖于value functions的定义。这样的函数有两种:state value functions & action value functions。前者用v(s)v(s)表示在特定状态s下的agent的价值。后者用q(s,a)q(s,a)表示在特定状态s下做出a行为的agent的价值,见下例。

藏宝箱在右上角,一个移动机器人在左下角。机器人在移动过程中需要避开山和陷阱。
首先,我们将地图分区,每个区是一个state
强化学习笔记: Model-based Approaches(1)
强化学习笔记: Model-based Approaches(1)

其次,定义机器人的行为。机器人有上a1a_1a3a_3a4a_4a2a_2四个选择,每次选择结束后,机器人会在运动方向上的邻态停止,这被称为deterministic transition function,表示为fˉ(s,a)\bar f(s,a)
其输出为ss'
eg: fˉ(1,a1)=5\bar f(1,a_1)=5
强化学习笔记: Model-based Approaches(1)

如果机器人在山/陷阱的邻态,且下一步行动是向山/陷阱,采取行动后它还会停留在自己原来的状态上。eg:
fˉ(5,a2)=5\bar f(5,a_2)=5

transition是有概率的。机器人在状态s做出行动a并结束在s'的概率是50%。这种transition可以表述为
f(s,a,s)=0.5f(s,a,s')=0.5
f(s,a,s)f(s,a,s')probabilistic transition function

机器人在state12 和8上,分别获得+1和-1的奖励。这种奖励机制为reward function,表示为
ρˉ(s,a,s)\bar \rho(s,a,s')
eg: 在state11 到12时,做出行为a1a_1,奖励为
ρˉ(11,a1,12)=+1\bar \rho(11,a_1,12)=+1

有些情况下,奖励可能是概率性的,比如 multi-armed bandit problem

有了statesactionsthe reward function, the transition function,就可以在马尔可夫决策过程的框架下计算一个寻宝游戏强化学习问题。

回到前面的问题,把q(s,a)看作机器人获取的奖励。
eg:
q(s,a1)=0.94q(s,a2)=0.95q(s,a3)=0.93q(s,a4)=0.94q(s,a_1)=0.94 q(s,a_2)=0.95 q(s,a_3)=0.93 q(s,a_4)=0.94

在图中,q(11,a2)>q(11,a3)q(11,a_2)>q(11,a_3),两个policy分别是πi(11)=a2,πj(11)=a3π_i(11)=a_2, π_j(11)=a_3
可以认为πiπ_iπjπ_j更好。

对于每个(s,a)对,都有最佳q(s,a),表示为q(s,a)q_*(s,a)

寻找这个值的方式为:确定每一个已经发生的对的q(s,a)q_*(s,a),每个state下选择与最大值相关的操作,即
π(s)=argmaxaq(s,a)π_*(s)=\mathop{argmax} \limits_ {a} q_*(s,a)

argmaxxf(x)\mathop{argmax}\limits_{x}f(x)表示f(x)f(x)最大时xx的值。

也就是说,设置不同的q(s,a)q_*(s,a)值,促使机器人找到最优解。即为1→5→9→10→11→12。
强化学习笔记: Model-based Approaches(1)

相关文章: