置信域算法
条评论1.什么是Trust Region?
Trust Region和Line Search是两个最基本的最优化算法。
- Line Search:“先方向,后步长”,即先寻找正确的更新方向(比如梯度的负方向),再寻找最合适和步长$\alpha$
- Trust Region:“先步长,后方向”,即先选取一个可信赖的区域,然后在区域内求解近似模型的最优解,在此基础上增量迭代。
2.Trust Region算法流程
- 基于当前位置$x_i$,给定一个可信赖区域$\Omega = \lbrace x|\; \parallel x - x_i\parallel \leq R\rbrace$,$R$是区域半径。
- 在$x_i$处构造原函数$f(x)$的近似函数$\hat{f}(p) \approx f(x+p)$(通常是泰勒二阶近似)。
- 求最优解得到试探步长:$$p_i = \arg\min \limits_{p} \hat{f}(p), \; s.t. \parallel p\parallel \leq R$$
计算$r_i$:$$r_i = \frac{f(x_i) - f(x_i + p_i)}{\hat{f}(0) - \hat{f}(p_i)}$$
a. 若$r_i \geq 0.75$,说明近似效果好,则可以适当增加$R = 2R$并重新计算$p_i$;
b. 若$0.25 < r_i < 0.75$,保持$R$不变,并认为步长$p_i$是可靠的;
c. 若$r_i \leq 0.25$,说明近似效果很差,则减小$R = \frac{||p_i||}{4}$并重新计算$p_i$;循环上述步骤,直到达到任意结束条件:
a. 达到最大迭代次数
b. $\Delta x$小于阈值
c. 下降梯度小于阈值
置信域是一种很重要的算法,强化学习中的TRPO以及PPO算法都是基于置信域理论,后期会单独聊一下这两个算法。前几天鹅厂竟然邀请到了Pieter Abbeel来做分享会,有幸听到了Pieter Abbeel对元学习、模仿学习、强化学习的一些见解和研究,简直激动,有机会也会整理出来。
- 本文链接:https://cheersyouran.github.io/2018/08/23/trust-reg/
- 版权声明:版权归作者所有,转载请注明出处。
分享