Q-Learning理论推导
假如我们小时候放学回家写作业,会获得价值为1的奖励,而如果去看电视那么会受到值为2的惩罚。
假如我们在第一时刻采取了写作业这个动作,那么我们的效益Q是1;接下来我们不会去立马进行第二个动作,而是想象在接下来采取的哪一个动作的效益Q更大,比如说我们在第二步继续采取写作业这个动作,那么效益Q是1 + 1 > 1 - 2。
所以我们把最大的值乘以一个衰减值γ,比如0.9,并且加上到达第二步时获得的奖励R:
//我们把最大的值乘以一个衰减值γ
//但是我们还未写完作业,所以奖励R为0;
//因为会获得实实在在的奖励,所以我们把以上等号右边的值作为第一步的现实值
Q(s1)现实 = R + γ * maxQ(s2)
//但是我们估计了第一步的值是1
Q(s1)估计 = 1
//所以现实和估计之间有了差距:
差距 = Q(s1)现实 - Q(s1)估计
//将这个差距乘以一个学习效率α,累加上原来的值,就可以得到一个新的值:
新Q = 老Q + α * 差距
//推导:
Q(s,a) = Q(s,a) + α((r + γ * maxQ(s',a')) - Q(s,a))
Q(s1) = r2 + γ * Q(s2)
= r2 + γ * (r3 + γ * Q(s3))
......
= r2 + γ * r3 + γ^2 * r4 + .....γ^n-2 * rn
//Q(s1)包括之后每一步的所有奖励,但是这些奖励都在衰减,离第一步越远衰减越严重
当γ等于1时,能看到以后所有的奖励:
Q(s1) = r1 + r2 + r3 ... + rn
当γ等于0时,只能看到眼前的奖励:
Q(s1) = r2
当r从0 → 1
那么将会对远处的价值看得更清楚,逐渐变得有远见