Maximum Entropy Inverse Reinforcement Learning 论文阅读
背景知识
熵
信息熵的定义是
其含义是含有信息的多少
符号定义
轨迹
这里定义轨迹
是一组决策中所经过的状态、选择的动作的集合
专家示例
定义专家的示例(expert demonstrarion)为
表示遵从专家策略选择的一组轨迹
对于价值函数的表示
这篇论文认为,价值函数可以相对每个状态的特征进行线性表示,即对于任意一个状态
重建的价值函数
定义重建的价值函数为:
表示在某条轨迹下面,所获取的所有价值函数的总和
在前一个假设下,可以写作:
最大熵方法
Partition Function(分区函数)
定义
即对所有轨迹下的所获得的价值函数之和的指数进行求和(连续的情况下就是积分)
MaxEnt Formulation
在定义
的情况下,最大化
来自知乎的解释
参考文献:最大熵逆强化学习(Maximum Entropy Inverse Reinforcement Learning)公式推导与疑惑 - 知乎 (zhihu.com)
最大熵学习的追求是要求以
其中需要满足的条件是:
两个约束中第一个是总计的特征要等于实际获得的所有特征,可以理解为重建的价值函数之和要等于实际获得的奖励,第二个是所有轨迹出现的概率之和为1
下面将
求解主要利用拉格朗日函数的对偶问题
首先,引入拉格朗日乘子
L(P,\boldsymbol{\lambda}) =\sum{\tau} P(\tau) \log P(\tau)+\lambda_0 (1-\sum_{\tau}P(\tau)) + \sum_{i=1}^{n} \lambda_i (\tilde{f_i} - \sum_{\tau} P(\tau)f_{\tau, i})
$$
Hint:我认为这里最后一项其实不应该是这个,应该是
,要不然下面没法解释
则原优化问题是:
对偶问题是:
由于这个函数是凸函数,所以它对偶问题的解就是原问题的解
首先求解对偶问题内部的极小化问题
具体地,求
$$\begin{align} \frac{\partial L(P, \boldsymbol \lambda)}{\partial P(\tau)} & = \sum_{\tau}(\log P(\tau)+1)-\sum_{\tau}\lambda_0-\sum_{i = 1}^{n}\lambda_i \sum_{\tau}f_{\tau, i}\
& = \sum_{\tau}(\log P(\tau)+1-\lambda_0 -\sum {i=1}^{n} \lambda_i f{\tau,i}) \end{align}$$
令偏导数等于0,解得
结合
其中,
之后,求解对偶问题外部的极大化问题
将其解记为
可以证明,对偶函数的极大化等价于最大熵模型(5)的极大似然估计,即
使用专家示例轨迹集,进行极大似然估计即可求得
Hint:上述推导有两个问题(缺陷),第一个是,这里不应该是求和,应该是一个向量要求每一维求完导都是0,才有上面式子(1) 另外是下面那个消去
的过程并不是简单的带入消去,具体写在下面。
更好的推导
原问题是
约束是:
首先还是使用拉格朗日乘数法,引入参数
接下来分别对
这里的前面两个参数应该是 n 维向量,不然后面没法让每一维度都是0
然后解一下第一个式子有
而由于
有
那么可以得出:
所以最终得出:
而又把下面的称为Partiotion function即
但是只有这些东西是不出来的,原文假设使用参数
损失函数推导
接下来基于专家轨迹的信息熵是最大的假设对损失函数进行推导
首先,应该进行的是极大似然估计,即:
带入上面最大熵优化的概率,记
接下来对
$$
\begin{split}
\frac{\partial L(\theta)}{\partial \theta}
&= \sum_{\tau \in E} \frac{\mathrm d R_\theta (\tau)}{\mathrm d \theta} - M \frac{1}{\sum_{\tau \in D}\exp (R_\theta(\tau))} \sum {\tau \in D}\left[\exp(R_\theta(\tau))\frac{\mathrm d R_\theta(\tau)}{\mathrm d \theta} \right]\
&= \sum{\tau \in E} \frac{\mathrm d R_\theta (\tau)}{\mathrm d \theta} - M \sum_{\tau \in D} \left[\frac{\exp R_\theta (\tau)}{\sum_{\tau \in D}\exp(R_\theta (\tau))} \frac{\mathrm d R_\theta(\tau)}{\mathrm d \theta} \right]\
&= \sum_{\tau \in E} \frac{\mathrm d R_\theta (\tau)}{\mathrm d \theta} - M \sum_{\tau \in D} \left[p(\tau|\theta) \frac{\mathrm d R_\theta(\tau)}{\mathrm d \theta}\right]\
&= \sum_{\tau \in E} \frac{\mathrm d R_\theta (\tau)}{\mathrm d \theta} - M \sum_{\tau \in D} \left[p(\tau|\theta) \frac{\mathrm d r_\theta(\tau)}{\mathrm d \theta}\right]
\end{split}
\nabla_\theta \bar{L} = \frac{1}{M} \sum_{\tau \in E} \frac{\mathrm d R_\theta (\tau)}{\mathrm d \theta} - \sum_{s_i \in S}\left[p(s|\theta)\frac{\mathrm d r_\theta(s)}{\mathrm d \theta} \right]
$$
Hint:这个好像不是损失函数,这个是极大似然估计里面的导数,应该令为0的
接下来利用价值函数可以被feature线性表示,有:
这个函数取到最大值的时候就表示这里专家的特征和学习到的特征匹配上了,相当于
即不管Agent内部分配的权重是什么样的表现出来获取的Reward和专家是一致了,相当于表现行为一致。