- 强化学习过程
- 什么是 奖励函数R ( s , a , a ′ ) R(s,a,a')R(s,a,a′)?
- 什么是 状态价值函数?
- 什么是 Bellman 最优方程?
- 策略π \piπ:代理的大脑
强化学习就是:做一件事 →立刻有好坏感受→ 把所有将来的好坏折算成现在的分数
强化学习过程
参考阅读:An Introduction to Deep Reinforcement Learning
强化学习过程:状态、动作、奖励和下一个状态的循环
想象一个智能体正在学习玩平台游戏:
- 我们的 Agent 从环境中接收状态S 0 S_0S0—— 我们收到游戏的第一帧(环境)。
- 基于状态S 0 S_0S0,Agent 采取动作A 0 A_0A0—— 我们的 Agent 将向右移动。
- 环境进入新的状态S 1 S_1S1—— 新的帧。
- 环境向智能体给予一些奖励R 1 R_1R1—— 我们没有死亡(正奖励+ 1 +1+1)
这个强化学习循环输出状态、动作、奖励和下一个状态的序列。
智能体的目标是最大化其累计奖励,称为期望回报。
什么是 奖励函数R ( s , a , a ′ ) R(s,a,a')R(s,a,a′)?
奖励函数 =环境对你“这一步行为”的打分规则。奖励不是你自己决定的,而是环境给你的反馈。
用生活例子理解,你在玩一个闯关游戏:
- 状态s ss:你现在在第 3 步
- 动作a aa:你选择“向右走”
- 下一状态s ′ s's′:你走到了第 4 步
这时游戏系统给你一个提示:
- “+10 分”(过关)
- 或 “-1 分”(撞墙)
- 或 “0 分”(啥也没发生)
这个打分规则就是奖励函数。
为什么写成R ( s , a , s ′ ) R(s,a,s')R(s,a,s′)三个变量?
因为奖励可能取决于这三件事。
什么是 状态价值函数?
即时奖励r t + 1 r_{t+1}rt+1:你在第t tt步做完动作后,立刻得到的奖励
比如:
时间步 你做的事 得到的奖励 t = 0 t=0t=0 向右走 − 1 -1−1 t = 1 t=1t=1 向右走 − 1 -1−1 t = 2 t=2t=2 到终点 + 10 +10+10 折扣因子γ \gammaγ:为什么未来的奖励不如现在的值钱?
想象两个选择:
- 现在给你100 100100块
- 一年后给你100 100100块
你更想要哪个?现在的更值钱,这就是折扣因子γ \gammaγ的直觉。
γ t r t + 1 \gamma^t r_{t+1}γtrt+1:把“将来得到的奖励”按时间远近打折
举个具体数值,设γ = 0.9 \gamma = 0.9γ=0.9,时间 奖励 折扣后价值 现在t = 0 t=0t=0 − 1 -1−1 − 1 -1−1 下一步t = 1 t=1t=1 − 1 -1−1 − 0.9 -0.9−0.9 再下一步t = 2 t=2t=2 + 10 +10+10 0. 9 2 × 10 = 8.1 0.9^2 × 10 = 8.10.92×10=8.1 离现在越远,权重越小。
状态价值函数:从当前状态开始,一直玩下去,未来所有奖励的“折算总分”
V ( s ) = E [ ∑ t = 0 ∞ γ t r t + 1 ] V(s) = \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^t r_{t+1} \right]V(s)=E[t=0∑∞γtrt+1]
什么是 Bellman 最优方程?
核心思想:现在值多少钱 = 现在这一步的奖励 + 未来状态的价值
你在状态s ss:
- 你选一个动作a aa
- 立刻得到奖励r rr
- 进入新状态s ′ s's′
- 未来还能拿V ( s ′ ) V(s')V(s′)这么多分
那:你现在的总价值 = 现在得分 + 未来能得的分
V ( s ) = max a ∑ s ′ P ( s ′ ∣ s , a ) [ R ( s , a , s ′ ) + γ V ( s ′ ) ] V(s) = \max_a \sum_{s'} P(s'|s,a) \Big[ R(s,a,s') + \gamma V(s') \Big]V(s)=amaxs′∑P(s′∣s,a)[R(s,a,s′)+γV(s′)]
逐项翻译:
| 数学符号 | 人话 |
|---|---|
| max a \max_amaxa | 选最好的动作 |
| P ( s ′ ∣ s , a ) P(s' | s,a)P(s′∣s,a) | 做了这事后,可能会去哪 |
| R ( s , a , s ′ ) R(s,a,s')R(s,a,s′) | 立刻得多少分 |
| γ V ( s ′ ) \gamma V(s')γV(s′) | 未来还能得多少分 |
策略π \piπ:代理的大脑
策略π \piπ是智能体的大脑,它是一个函数,告诉在给定当前状态时应采取什么动作。因此它定义了智能体在特定时刻的行为。
这个策略是我们希望学习的函数,我们的目标是找到最优策略π \piπ,即在智能体按该策略行动时能够最大化期望回报的策略。我们通过训练来找到该π ∗ \pi^*π∗。
有两种方法来训练我们的智能体寻找这个最优策略π ∗ \pi^*π∗:
直接地,通过让智能体学习在给定状态下应采取的动作:基于策略的方法。
在基于策略的方法中,直接学习策略函数。此函数将把每个状态映射到该状态下的最佳对应动作,或者映射到该状态下所有可能动作的概率分布。
- 确定性:在给定状态下的策略始终返回相同的动作。
- 随机:输出动作的概率分布。
- 确定性:在给定状态下的策略始终返回相同的动作。
间接地,让智能体学习哪些状态更有价值,然后采取能够引向更有价值状态的行动:基于价值的方法。
在基于价值的方法中,我们不是训练策略函数,而是训练一个价值函数,将状态映射到该状态的期望价值。
“按照我们的策略行动”仅意味着我们的策略是“前往价值最高的状态”。
由于我们的价值函数,在每一步中,我们的策略会选择由价值函数定义的最大值状态:− 7 -7−7,然后是− 6 -6−6,再是− 5 -5−5(依此类推),以实现目标。