Trust Region Policy Optimization
Basics & Preliminaries
- 无导数随机优化是不依赖于目标函数的梯度信息而求出最优解的方法,通常通过随机采样与函数值评估来逐步逼近最优解而不用计算目标函数的导数,这种方法计算代价比较高,而且收敛的速度通常都会比较慢。
- TRPO计算量更大但是结果一般会更加稳定
- 二范数在机器学习中一般指的是两个向量之间的距离,如果二范数为0则可以认为已经完成了拟合。
- 如果已知梯度,那么可以用
gradient ascent
来解决,如果梯度无法计算,那么可以采用随机采样来进行替代,随机采样一个s
, 再对f(s, θ)
对θ
求梯度,再进行梯度上升/下降
Trust Region
θ* = argmax J(θ)
, N(θ)
为原先的θ的邻域(θ是一个向量)
- 如果有一个函数
L(θ|θold)
能够在邻域N(θ)
内拟合J(θ)
,那么这个邻域就可以被称作为是Trust Region(置信域),在这个邻域上我们可以用L来代替J(简化函数表达)
- Trust Region Algorithm ,只要找到置信域内的拟合函数的最大值取值点,那么这个最大值的取值点就可以当做新一轮的θ,不断迭代就可获得结果。这个拟合函数的构造通常可以使用泰勒展开。这种算法对算力要求比较大,但是比较稳定。
- 不断重复两个步骤:Approximation与Maximization,但是请注意这里有可能只能求到局部的最优值
- 置信域的半径一般是单调递减的。
Trust Region Policy Optimization(TRPO)
- 普通的
Policy Gradient
方法虽然速度快,但是结果不稳定,而且对Hyperparameters
的设置较为敏感,学习率的设置对结果的影响较大,收敛曲线也会剧烈地上下波动
TRPO
的样本利用率更高,在同样的样本数量下拥有更佳的训练结果
- TRPO的流程仍然分为两步:Approximation与Maximization
- Approximation:
Policy Function Approximation:
目标函数可以化为E_{S, A}[π(A|S;θ)/π(A|S;θold)*Qπ(S,A)]
,先随机采样一整个Trajectory,再通过Monte-Carlo Approximation
来构造L(θ|θold)
来近似J(θ)
Action Value Function Approximation:
先采集n步观测到的全部奖励r1-rn,用蒙特卡洛近似来替换动作价值函数
- Maximization:
- 新生成的函数对θ求梯度,求最大化,把求得的θ作为新的值,但是注意这里的解必须要在原来的θ的邻域之中(约束条件)->目的是如果前面的拟合等步骤做的并不好,解也不会距离原来太远
- 关于约束条件 (置信域半径应该如何选择) :
- 二范数距离(向量之间的直接距离)小于一个值,也就是说新的θ必须要落在一个特定的范围中间。
- 使用
KL-Divergence
评估不同概率分布之间的差异大小,不同的PolicyNet
之间的输出都是概率分布,所以可以采用KL-Divergence
来评估策略网络输出结果之间的差异大小。
- 先用老的策略运行得到一条轨迹,这一过程之中策略网络的参数从来没有被更新过,计算每一对
state-action pair
的return,随后再使用求和来近似原函数,再在半径内取Maximization。以上的步骤需要经过多层循环来进行策略的不断优化。