策略梯度 及 PPO算法
策略梯度Policy Gradient
基础知识
-
actor:做的事情就是去操控游戏的摇杆, 比如说向左、向右、开火等。(操作policy gradient要学习的对象, 是我们可以控制的部分)
-
environment:游戏的主机, 负责控制游戏的画面负责控制说,怪物要怎么移动, 你现在要看到什么画面等等。(给定的,无法控制)
-
reward function:是当你做什么事情,发生什么状况的时候,你可以得到多少分数, 比如说杀一只怪兽得到 20 分等等。(无法控制)
-
policy:是给一个外界的输入,然后它会输出 actor 现在应该要执行的行为。policy 一般写成π
-
Policy of actor π:假设你是用 deep learning 的技术来做reinforcement learning 的话,policy 就是一个 network。Network 里面就有一堆参数, 我们用 θ 来代表 π 的参数。 Network 的 input 就是现在 machine 看到的东西,Output 的就是机器要采取什么样的行为。
-
episode(回合):一场游戏就叫做一个episode或者trial(试验),是指游戏从开始到结束的一个完整的回合。
-
R (return回报):把这个游戏里面,所有得到的 reward 都总合起来,就是 total reward,用 R 表示。
-
actor的目标:maximize 它可以得到的 reward
-
Trajectory:一个episode里,我们把environment输出的s和actor输出的a全部串联起来,叫做一个trajectory。
-
trajectory 发生的概率:
-
假设现在给定了 actor 的参数θ,根据这个参数可以计算某一个trajectory 发生的概率:
这个概率取决于两个部分:
- environment 的行为 :environment 的 function 它内部的参数或内部的规则长什么样子。p(st+1 | st, at)这一项代表的是 environment,这一
项通常是无法控制的,因为这个环境是别人写好的。 - agent 的行为:我们能控制的是pθ( at|st)。随着 actor 的参数θ不同,每个同样的 trajectory, 它就会有不同的出现的概率。
- reward function:根据在某一个 state 采取的某一个 action 决定说现在这个行为可以得到多少的分数。输入s1, a1,输出r1;输入s2, a2,输出r2;把所有的r加起来,就得到一个trajectory的Reward R(τ)。我们的目标就是调整 actor 内部的参数 θ, 使得 R 的 值越大越好。
- expected reward
我们可以在给定某一组参数θ的情况下,计算得到的R的期望:
穷举所有可能的 trajectory τ,每个τ都有一个概率,所以R的期望可以写成::
策略梯度的计算
原PPT数学公式解析: