Probability & Matrix
三条公式
将概率论和线性代数统一起来
对于下面的Bellman Equation,实际上每个概率我们都可以写成matrix form.
我们分两种情况考虑,一种是普通的probability,另外一种则是条件概率 conditional probability,对于前者:
where
- , where
对于前两点,我们很容易通过堆叠多个的方法从而向量化:
但是却没有向量化彻底,对于三个分布我们都还没有向量化,而刚好这三个分布又都是条件概率的形式,对于这种特殊的格式,而且我们往往有这样的潜规则:
where and , and we have , so that the matrix P
on the right side must have P.sum(dim=1)=[1,1,...,1].T
那么很简单的我们就有如下几个向量化之后的分布
-
- where we code it
policy, policy.shape=(n,m)
- where we code it
-
- where we code it
Ps, Ps.shape=(n,m,n), Ps.sum(dim=-1)=[[1,1,...],[1,1,...],...]
- where we code it
-
- should recall that , means the set of reward but we vectorize it
那么我们接下来把剩下两条公式也写成matrix-form
where
- 代表了batch matrix multiply (bmm)
- 实际上是policy先扩展一个维度变成
(n,1,m) @ (n,m,n)
,这样得出的结果是(n,1,n)
,再squeeze就得到了(n,n)
- 另外由于
policy.sum(-1)=[1,1,...,1].T, Ps.sum(-1)=[[1,1,...],...]
,最后得到的结果P_pi
其实也是满足P_pi..sum(-1)=[1,1,...,1]
(简单展开可证)
- 另外由于
- 的操作是
(n,1,m) @ (n,m,k) (k,)
\- 我们关注点就是原公式的求和符号的下标,下标再执行求和符号之后是会消掉的
- 矩阵相乘也是一样:
(n,m,k)(k,) = (n,m)
其实就是k消掉了,此时执行了(n,1,m)@(n,m,1)=(n,1)
其实就是m消掉了,此时执行了
一些联想
- 正好就是我们之后要学习的Q table或者是网络的参数 (我们假设action space大小为m)
- 这里的代表着环境model,都是环境给的;但这里的下标是为了我们方便看出来是和state有关还是和reward有关,之前的出现的的下标其实是base的意思,也就是说