1. 基础介绍
在强化学习中有两个东西:Agent和Environment。他们的关系如下:
Agent会去观察Environment,会做一些Action,Change the environment,之后会得到reward。
在Alpha Go中,observation为棋盘,action 是落子的位置,Environment为对手,reward为:赢了1,输了-1。因此,机器需要调整model使得得到的reward的概率最大化。
监督学习:可以学到一个回下围棋的machine,但是不能够学到一个好的。因为是跟着棋谱来下。
强化学习:自己下,通过反馈进行学习。
2. 难点
- reward 具有延迟性
可能有的action并不能获得reward,但是在整体上对reward有好处。
3. 大纲
- Policy-based
- Value-based
3.1 Policy-based 方法
在该方法中:Input就是machine看到的observation,output就是machine要采取Action。
使用神经网络作为Actor:以打电玩作为例子,输入为picxa
注意,我们并不是要最大化某一次获得的奖励,而是要最大化奖励的期望值。(因为每一次的Environment和Action都可能会不一样)
我们把在一轮中的state, action, reward都记录下来,则其实是一个序列,记为:
那么,该轮中的奖励为:
当我们选择了某一个Actor,则可能看到某一些,那么,结合模型我们可以知道,当参数为时,可能出现的概率可以表示为:
所以,最后reward的期望为:
然后我们用这个model()去运行N次,得到N个不同的,即
即:
接下来,我们的目标就是最大化这个,即有:
接下来就可以使用Gradient ascent的方法去获得最佳的参数。
实际上,我们在做微分的时候,实际上是对做微分,即有:
又因(选择这一步的原因,其实是为了给所有的概率值进行一个Normalization):
则有:
接下来,如何计算?
因为:
大白话:
如果在某一次state中采取的action得到的reward对最终的结果起到正反馈时,则我们希望这个几率越大越好。否则,越小越好。
但是在实际应用中,我们更新的公式为:
这样是为了防止所有的Reward都为正的情况,若所有的reward都为正,则某些不经常出现的action就会被忽略,这是我们不愿意看到的,因此,我们需要指定一个baseline。使得reward有正有负。