强化学习 入门(一)

1. 强化学习 是什么

强化学习,Reinforcement Learning,RL。

虽然我们不知道人类学习的终极奥秘,但有一些事情是可以理解的:我们首先需要与环境进行交互,无论是人们学习驾驶汽车还是婴儿学习走路,学习都是基于和环境的相互交互。

从互动中学习的思想就是强化学习,它是一种基于环境相互交互的学习算法。

2. 强化学习 的问题

下图所示是一个强化学习过程。

pro

上图中,Agent 是一个小个体(比如你是一个学生个体),Environment 是大环境,个体难以改变只能适应的对象(比如期末考试)。

学生(Agent) 发出 action(行为,比如考试前的拖延症)应对考试(Environment),之后考试(Environment) 会反馈一个 state(结果状态,比如考试前拖延会导致考前焦虑),完成考试(Environment) 任务最后会给学生(Agent) 一个 reward(奖励,比如考试成绩)。

最经典的是 【小孩学走路问题】:
小孩是一个试图通过采取行动(走路)来操纵环境(在地上走路)的个体,它试图从一个状态(它走的每一步)转移到另一个状态。当它完成任务的一个子模块(孩子走了几步)时,孩子会获得奖励(比如一些巧克力),但是当它不会走路时,就不会收到任何巧克力(负反馈过程)。

3. 强化学习 vs 机器学习

  • 监督学习:数据集包含 label,输入和输出之间都存在映射。强化学习不同,如象棋游戏中,存在数万可以移动的玩法;但是在强化学习中,存在的是对个体的奖励反馈函数,而不是像监督学习直接告诉个体最终的答案。
  • 无监督学习不存在一个从输入到输出的映射过程。在强化学习中,有从输入到输出的映射过程,如强化学习通过用户的一些文章,并且获得用户的不断反馈,从而构建一个“知识图谱”,从而得知用户与文章之间的喜爱关系。
  • 半监督学习:其本质是监督学习和无监督学习的组合。它不同于强化学习,半监督学习具有直接的参照答案,而强化学习不具有。

因此,强化学习的特点主要有以下两点:

  • 强化学习是试错学习,由于没有直接的好或坏的明确反馈信息,智能体要以不断与环境进行交互,通过试错的方式来获得最佳策略。
  • 延迟回报,强化学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,因此导致一个问题是获得正或者负回报以后,如何将回报分配给前面的状态。

4. 马尔科夫决策过程

4.1 概念

现在的问题是如何去形式化地描述一个强化学习问题,这样才可以进行推理?最常见的方法是将其表示为马尔可夫决策过程。

例如:一个之前不会象棋的小白和一个专业棋手对弈。刚开始小白对棋面并没有任何概念,只能随机乱下。
假设双方每一轮下完后都会得到立即回报,比如吃子回报为1,被吃回报为-1,其他回报为0。
可以想象一开始小白会输得很惨,但如果小白很聪明,随着不断地尝试小白不仅理解了下棋的规则,并且知道在什么棋面下做出什么动作可以吃更多的棋子。
在这里我们将小白作为我们的智能体 Agent,棋面就是状态State,下棋就是 Agent 根据当前 State 做出的行为action,每个动作执行完后都会引起状态改变。采取行动action 的原则Policy(比如高考数学中三角函数基础薄弱,采取的行动应该是偏重三角函数知识的学习)。

2

如果状态的改变只与前一个状态和当前的动作有关,而与之前其他的状态和动作无关(即满足马尔可夫性),那么整个过程可以用马尔可夫决策过程(Markov Decision Processes,MDP)来描述。

在书中将满足马尔可夫性的强化学习任务定义为马尔可夫决策过程,并将状态和动作都是有限空间的 MDP 定义为有限马尔可夫决策过程(finite MDP)。

4.2 理解 MDP 的动态过程

MDP 的动态过程如下:智能体在状态 s 0 s_0 s0 选择某个动作 a 0 ∈ A a_{0} \in A a0A,智能体根据概率 P s 0 , a 0 P_{s_{0},a_{0}} Ps0,a0 转移到状态 s 1 s_1 s1,然后执行动作 a 1 a_1 a1,…如此下去我们可以得到这样的过程:
s 0 ⟶ a 0 s 1 ( r 1 ) ⟶ a 1 s 2 ( r 2 ) ⟶ a 2 s 3 ( r 3 ) ⟶ a 3 ⋅ ⋅ ⋅ s_{0} \stackrel{a_{0}}{\longrightarrow} s_{1} (r_1) \stackrel{a_{1}}{\longrightarrow} s_{2} (r_2)\stackrel{a_{2}}{\longrightarrow} s_{3} (r_3)\stackrel{a_{3}}{\longrightarrow} ··· s0a0s1(r1)a1s2(r2)a2s3(r3)a3

11

4.3 给未来的奖励打折扣

给未来的奖励打折扣(Discounted Future Reward)。

要长期地表现良好,我们不仅要考虑当下的回报,还要考虑将来的回报,那么我们需要怎么做呢?
我们很容易计算一次马尔科夫决策在一个episode的总回报:
R = r 1 + r 2 + r 3 + . . . + r n R=r_1+r_2+r_3+...+r_n R=r1+r2+r3+...+rn
鉴于此,从时间t开始的总体的未来奖励可以表示为:
R t = r t + r t + 1 + r t + 2 + . . . + r n R_t=r_t+r_{t+1}+r_{t+2}+...+r_n Rt=rt+rt+1+rt+2+...+rn
但由于环境是随机的,所以我们永远不能肯定,如果我们下一次执行相同的行动,我们会得到同样的回报,因为我们走向未来越多,分歧越多。所以,我们会给未来的奖励打个折扣
因此,我们采用一个 γ γ γ 超参数(0 和 1 之间的折扣因子),离当前时间点越远的奖励,我们就考虑得越少。很容易看出,我们在时间 t t t 的对未来的回报折扣可以用时间 t + 1 t+1 t+1 时刻的回报来表示:
R t = r t + γ r t + 1 + γ 2 r t + 2 + . . . + γ n − t r n = r t + γ ( r t + 1 + γ ( r t + 2 + . . . ) ) = r t + γ R t + 1 R_t=r_t+\gamma r_{t+1}+\gamma ^2 r_{t+2}+...+\gamma^{n-t}r_n \\ =r_t+\gamma ( r_{t+1}+\gamma ( r_{t+2}+...))=r_t+\gamma R_{t+1} Rt=rt+γrt+1+γ2rt+2+...+γntrn=rt+γ(rt+1+γ(rt+2+...))=rt+γRt+1
如果 γ = 0 γ=0 γ=0,那么策略将会是短视的,将只重视即时的回报。如果想要平衡现在和将来的回报,应设置 γ = 0.9 \gamma=0.9 γ=0.9。当然如果环境是确定的,则可以设置 γ = 1 γ=1 γ=1
对于 Agent 来说一个好的策略是能够使所选择的行动能够最大化(折扣后)未来的奖励

5. Q-Learning

在这里我们定义一个函数 Q ( s , a ) Q(s,a) Q(s,a) :表示当在状态 s s s 下执行 a a a 行动后能获得的未来(折扣)奖励的最大值,并从该时间点继续优化。
Q ( s t , a t ) = max ⁡ R t + 1 Q(s_t,a_t)=\max R_{t+1} Q(st,at)=maxRt+1

Q ( s , a ) Q(s,a) Q(s,a) 的另一种解释方式是:在状态 s s s 执行动作 a a a 能够在游戏结束时获得最好的评分,它被称为Q函数,因为它表示给定状态中某个动作的质量

但如果我们仅仅知道现在的状态和行动,而不是之后的行动和奖励,我们不可能估计比赛结束时的状态。但作为理论构造,我们假设存在这么一个函数。

假设正处于某个状态,然后正在琢磨下一步到底是走 a a a 还是 b b b ,然后你想选一个能在游戏结束后获得最高分的那一步。一旦有了神奇的Q函数,思路就会变得很简单,就用最高的 Q 值来挑选动作。这里的 π π π 代表一种策略,是我们在每一个状态选择动作的规则:
π ( s ) = a r g m a x a   Q ( s , a ) \pi(s)=\underset{a}{\mathrm{ argmax} }\ Q(s,a) π(s)=aargmax Q(s,a)
那么我们如何来获得这个Q函数呢?(Q函数换种定义)贝尔曼公式:
Q ( s , a ) = r + γ   max ⁡ a ′ Q ( s ′ , a ′ ) Q(s,a)=r+\gamma \ \max_{a'}Q(s',a') Q(s,a)=r+γ amaxQ(s,a)

Q-Learning 的核心思想就是可以用贝尔曼方程迭代逼近Q函数。

算法中的 α α α学习率,它控制了以前的Q值和新提出的Q值的的差异有多少被考虑在内。特别的,当 α = 1 α=1 α=1 时,则两个 Q [ s , a ] Q[s,a] Q[s,a] 取消,得到的更新方法和贝尔曼方程完全相同。
用来更新 Q [ s , a ] Q[s,a] Q[s,a] 的最大 Q [ s ′ , a ′ ] Q[s′,a′] Q[s,a] 只是一个近似值,在学习的早期阶段可能是完全错误的,然而,随着每次迭代,近似值越来越准确,并且已经显示出如果这个值地到充分的更新,则Q函数将收敛并表示真实的Q值。



initialize Q [ num states , num actions ] Q[\text{num}_{\text{states}},\text{num}_{\text{actions}}] Q[numstates,numactions] arbitrarily
observe initial state s s s
repeat
  select and carry out an action a a a
  observe reward r r r and new state s ′ s′ s
Q [ s , a ] = Q [ s , a ] + α ( r + γ   m a x a ′   Q [ s ′ , a ′ ] − Q [ s , a ] ) Q[s,a]=Q[s,a]+α(r+γ\ \underset{a′}{\mathrm{max} }\ Q[s′,a′]−Q[s,a]) Q[s,a]=Q[s,a]+α(r+γ amax Q[s,a]Q[s,a])
s = s ′ s=s′ s=s
until



参考文献

[1] http://blog.csdn.net/sinat_28751869/article/details/64442972


江湖问路不问心,问心问得几人行。

33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值