贝尔曼方程
根据贝尔曼方程,给定动作的长期奖励等于当前动作的奖励加上下一次采取的未来动作的预期奖励。让我们先试着了解一下。
举个例子:
在这里,我们有一个迷宫,这是我们的环境,我们的代理的唯一目标是达到奖杯状态(R = 1)或获得良好的奖励并避免火灾状态,因为它会失败(R = -1)否则会得到不好的奖励。
没有贝尔曼方程会怎样?
最初,我们将给我们的代理一些时间来探索环境并让它找出通向目标的路径。一旦它达到它的目标,它就会回溯到它的起始位置,并将最终导致目标的所有状态的值标记为V = 1 。
在我们改变它的起始位置之前,代理不会遇到任何问题,因为所有状态的值都等于 1 ,它无法找到通往奖杯状态的路径。所以,为了解决这个问题,我们应该使用贝尔曼方程:
V(s)=max a (R(s,a)+ γV(s'))
状态:代理在环境中的当前状态
下一个状态(s'):在状态(s)采取行动(a)后,代理到达s'
值(V):帮助代理找到其路径的状态的数字表示。这里的V(s)表示状态 s 的值。
Reward(R):处理代理在执行动作(a)后获得的奖励。
- R(s):处于状态 s 的奖励
- R(s,a):处于状态并执行动作 a 的奖励
- R(s,a,s'):处于状态 s、采取行动 a 并最终进入 s' 的奖励
例如好的奖励可以是+1 ,不好的奖励可以是-1 ,没有奖励可以是0 。
动作(a):代理在状态下可以采取的一组可能的动作。例如(左、右、上、下)
折扣因子(γ):确定代理相对于近期奖励在遥远未来的关心程度。它的值介于 0 和 1 之间。较低的价值鼓励短期回报,而较高的价值承诺长期回报
最大值表示代理在特定状态下可以采取的所有动作中最优化的动作,该动作可以在每个连续步骤重复此过程后获得奖励。
例如:
- 离开火状态的状态(V = 0.9)可以向上,向下,向右但不是向左,因为它是一堵墙(不可访问)。在所有这些可用的动作中,该状态的最大值是UP动作。
- 我们的代理的当前起始状态可以选择任何随机动作UP或RIGHT ,因为两者都以相同的步数导致奖励。
通过使用贝尔曼方程,我们的代理将计算除奖杯和火状态(V = 0)之外的每一步的值,因为它们是迷宫的尽头,所以它们不能有值。
因此,在制定了这样的计划之后,我们的代理可以通过遵循不断增加的值轻松实现其目标。