做强化学习的人,十有八九被这几个词绕晕过:on-policy、off-policy、online RL、offline RL,它们之间到底是什么关系?( U7 o: G& z) h
# z+ |. C( _3 l: v9 a* R- _, T' Eon/off-policy 和 online/offline 是两个独立的维度,前者看「策略」,后者看「交互」。6 N7 H5 ~2 `" X7 m5 _$ l7 e
# C: ?* R7 H+ ]0 p. l- G" j. K1 R
1两个维度各自在问什么?
) r! f$ L% s, p# b
, ^% L$ X8 @& b! O6 T+ C这两组词其实在问完全不同的问题,所以可以独立组合,而不是对立关系。
" b. V- r$ l/ G: n$ e# z- c; ^( `. g) I+ o3 K5 a
① on-policy / off-policy
9 ?/ U; O5 V5 h6 |/ o( j9 Q0 X9 J& P: ^
看【策略】:谁产生了数据?% k9 W+ @3 g( S
q- \( _" U, R
on-policy:采数据的策略 = 要优化的策略
% u: O# L) A/ V- v1 t; q- v6 A2 p- r$ B# Q3 s3 Q( t# S( X
off-policy:采数据的策略 ≠ 要优化的策略! r' d6 B9 y# r( x, K# t
6 l; A( d; O. U% M. [② online / offline* [- l* E5 m: [8 J! p( l
7 Q8 K! e- ^# c/ q: L: Y
看【交互】:训练中能否采新数据?
9 _8 O3 X1 K& L
n! ]+ u V) [) Monline:边训边交互,持续新增样本" U9 A5 ?- s1 h$ Q4 _, N
* U* x M, I' ~9 hoffline:数据集预先给定,训练中禁止交互0 x* ?) A) o: U: z0 J% V- t+ f, ~
) }" d* A8 t- s, E3 U+ ?) x( D4 l. K记住:on/off-policy 讲的是「数据和目标策略对不对得上」;online/offline 讲的是「训练时还能不能去采新数据」。两个维度互相正交。
% R7 X. F: t. b! f* N2 g' p, O( z- q1 T5 c q
2四象限:只有 3 种合法组合6 a9 Q: J% ?8 B4 m- f6 e: l$ ^
0 _ n& h- P/ ~& G; Q( E
把两个维度交叉成 2×2 表格,所有组合一目了然。9 u8 n) P. H; {! b, Z
& \7 M$ z& s3 ~+ Fon-policy行为 = 目标/ D/ a0 V& @3 [+ m4 Q
9 _6 B5 _1 ]: j1 H+ o4 Ioff-policy行为 ≠ 目标
$ b8 r9 D( h, Z! n
W7 ?( d4 ^7 t" l+ L& wOnline · On-policy
1 l; c, W: j6 ~- l$ s! [# R; B7 G
9 ?3 c# r% L0 q9 W6 z. p+ v: CPPO · REINFORCE · SARSA · A2C
1 B! c1 f" U6 n1 r9 T5 g; F0 n' M5 E
Online · Off-policy' P- \( ], k- l6 }8 C
6 ?. D' Z0 T. j
DQN · SAC · DDPG · TD3
( B5 m/ |" }* [: o5 j8 j1 @3 |4 @% {- @* r2 `% x9 V/ Z" }
Offline · On-policy+ W) e3 C& a. m
2 U5 r/ m2 a# J5 _# Z1 o J2 F定义互斥(见第 3 节)
1 c+ z, K/ `2 D; U
7 B1 X/ _8 _/ XOffline · Off-policy: \; p' Q3 D" Y; w
/ f- {$ O Q+ `3 r3 P4 v! nCQL · BCQ · IQL$ B V) G. ~$ f/ r8 r: ?' l& C2 r
9 A& a# m: ]6 T- w, c
· offline RL 一定是 off-policy(数据集是旧策略留下的,不可能等于当前目标策略)0 O. q% V9 A7 T; h! L$ p- q, o
5 i4 D& w- s' X
· off-policy 既可以 online 也可以 offline(DQN 在线,CQL 离线)
3 D1 E [: P: l7 E6 x" {- I4 u8 o( b2 w0 n& y
· on-policy 只能 online(下一节专门讲)
$ y- G2 U, _3 Z( |. F0 v( U2 [1 ?7 X" m
& `6 X5 l0 G9 J T) d5 |7 Qⓘ象限归类看的是算法的原生定位,不少算法会跨象限:SAC / TD3 原生是 online off-policy,加 BC 或悲观约束就能变成 offline 版(TD3+BC、CQL+SAC);AWAC 本身就是「offline 预训练 → online 微调」的两阶段设计。判断算法归属时,分清「原生定位」与「扩展变体」即可。
$ L% G7 D! g- r" W" u: m- L& a" e# _1 R0 }" h, {6 D( O
3为什么不存在 offline on-policy?, Z }! u8 A. e0 W
5 K9 o/ R6 P! N G
反证法可以从两个方向走:固定其中一个条件,看另一个条件能不能成立。两条路径最终都会推出同样的矛盾。4 g7 l* C( Q' G+ H5 w
& m9 B# Z7 V3 I. N% s
固定 offline,反推不能 on-policy1 v1 R, h5 @" d* j- n* T% L
% h. v6 I$ Q/ o! D$ {6 q& A& N/ j
1假设 offline 条件成立:数据集 D 由旧策略 π₀ 一次采完,训练中不再交互0 j# i! T8 R5 n/ _; w
3 O! @ k/ |/ Q+ o2训练一旦开始,目标策略从 π₀ → π₁ → π₂ …
* I: S- N5 i k
+ {/ P0 \6 L$ Y3手里的数据永远由 π₀ 采集,行为 ≠ 目标7 Q0 {# k3 P# ~# s2 N
$ J8 o! |1 y4 K( G⚠ on-policy 条件不满足! `, ]/ V# f2 }% q; _+ `
8 @/ F* ]3 R3 s
固定 on-policy,反推不能 offline
$ F; {$ I4 f' E- [. @
" S+ ]7 Q* h* \" w* {: z1假设 on-policy 条件成立:任意更新时刻,行为策略 = 当前目标策略. B" a7 M& F I( b
: p( e- U3 y+ W7 H; H, ]/ @9 R+ `- j
2策略每次更新后,必须用新策略重新采样才能继续满足条件
% x4 N6 t, q3 K% _! n8 O$ l
$ e: t9 N5 k( l3 N" v; ?- i3重新采样 = 与环境交互 ⇒ 必然是 online
$ Y# y; K5 ?& x. i% x1 T; ~. ]; H3 A) d
⚠ offline 条件不满足/ e3 j( C9 X# N
' y0 R% @# F9 R! A( e
殊途同归:on-policy 的刚需(策略一变就重新采样)与 offline 的约束(禁止交互)互为否定。
1 j: A) c4 K% h5 f7 p8 x6 K( Z4 ]$ U# K" R3 P% _; @
无论从哪一侧出发,都推不出可共存的中间状态 ⇒ offline on-policy 不可能成立。
$ c# H* s. J+ r) V) K0 C" X8 E: L0 h0 e5 ^: q9 |
4把差异写进公式:SARSA vs Q-learning
% R1 e) c! @* u( n0 y$ l" w
' x) D7 o* S* d1 i看一个最经典的例子:同一个 TD 框架,只改一个符号,就从 on-policy 变成 off-policy。' Z+ G8 a/ i, F: Q
/ W" G4 d* t. S V; c
$$Q(s,a) \leftarrow Q(s,a) + \alpha \left[\, r + \gamma \, \textcolor{#5b67f1}{Q(s', a')} - Q(s,a) \,\right]$$
8 A n: b! U% | ?/ ]" [* k9 d+ {1 K ?* Y' `: ?7 z
a':下一步真的要去执行的动作4 Q B/ h. s. B9 i
3 |1 {; C; j# J3 g0 K# ^
由当前策略(ε-greedy)亲自采样 ⇒ 行为 = 目标' z# d8 K3 k6 }$ }
! d* T. T) Z k" G5 ?; p6 }0 F$$Q(s,a) \leftarrow Q(s,a) + \alpha \left[\, r + \gamma \, \textcolor{#f16b7a}{\max_{a'} Q(s', a')} - Q(s,a) \,\right]$$
- _ h$ v- {# c
2 I, A" S1 x! `: u1 D, @/ g4 Cmax:假想一个「贪婪策略」会怎么走% q' ]1 q) x; h* E) D- m
& ^& l& s2 t1 n! n& Q实际交互可能是 ε-greedy ⇒ 行为 ≠ 目标
3 m& X8 H# Q& F
) s1 T5 ~) d/ y t' o9 C6 D唯一的差别就在 TD target 里下一步 Q 值怎么取:
* y0 x* X) ]) ^9 X6 Y) ^; W: a1 q- e" b% y* z+ O& A$ {& u2 V
· SARSA 用 真实采到的 a' → 学的是「我这个 ε-greedy 自己」的价值
% ]: O g0 g7 w
: P. p" F* w# Q& S7 g· Q-learning 用 maxa' → 学的是「完全贪婪的最优策略」的价值,和实际行为策略脱钩7 t7 w. h0 d/ k$ J6 C
! Z V+ a2 x1 Q- B? 一个 max,就把 on-policy 变成了 off-policy。
% [" A! n$ Y+ Y* ^9 I$ U* j
0 S: e) [9 `- K! @3 }5一句话记住:下棋 / 复盘类比: O" L. y7 E9 G0 n* J7 q$ C, e
' T+ i$ ]8 ?2 c0 l3 B) }把算法代入日常场景,秒记:) f+ Z t2 b% F. A; q
4 l4 v* c, p) B' @
♟️ on / off-policy) S) s9 a2 t B0 ?8 p
R# C B4 I9 \! u0 m1 q用来复盘的棋局,是你自己刚下完的,还是别人下的?# w& U: c- n, [) j( [% a- u
, i+ |6 G4 X1 `2 v# K
?️ online / offline
. t' a1 l3 G. Y8 G6 |: R6 ?, \$ c1 x
, @' e5 E* |- u$ C E3 Q训练时还能不能继续坐下来下新棋?
/ X! ?2 V7 N2 B" ?& N' s' V3 Y$ h" u
· offline 一定是 off-policy(棋谱不是现在的你下的)
& I4 m- y5 Y! X, d& q1 A
3 N* V4 A( \% ^& p2 @( ?4 W7 v' l7 a1 a· off-policy 可 online 也可 offline(学谁的棋都行)7 [. T( ~4 }3 F) e7 o' Z0 D
2 R- g% w8 X; Q& M$ S2 u
· on-policy 只能 online(必须下一盘复盘一盘,用现在的你去打新棋), `4 G) {$ _3 n8 N5 }
# d/ @( _4 b) j4 ^✗off-policy = offline?错。DQN、SAC 是在线 off-policy,一边采集新数据一边学。2 h8 d& j6 U; y$ p4 q- s2 ~( S
, M9 m, ~8 X" I* ]2 Z1 [& `0 i
✗on-policy = online?虽然 on-policy 必然 online,但核心定义是「策略相等」,不是「在线」。
+ G& e+ c" X7 t3 s Q; C X
, y; j/ H$ U1 D* y- q✓分布偏移的处理不同:online off-policy 可以靠持续采样缓解;offline RL 数据集固定,必须靠 CQL 等约束方法硬压。1 r3 D2 J) x( N R4 F* c/ d' e
% P8 r+ t# p; r0 D7 ]+ e# k1 u搞清这两个维度,看 RL 论文就不会再被标题里的 "offline"、"off-policy" 晃得团团转了。7 }. i% w o# M9 R4 k" q: b, J. r: Z
4 D9 h1 R0 r; }+ p
— 一张图搞懂 RL 两个最容易混的维度 —
' }! _5 S+ S6 d4 Q _ b3 S$ Z
; G: O1 g7 M! |& s如果觉得有用,欢迎点赞、在看、转发给同样被这几个词绕晕的朋友 ?
- x4 f4 _% Q( G- y- n
; k6 A# W0 A G; O( _$ G——4 K4 w5 S# k" u5 P! Q& D" ?8 V& P& R
本文转载自 ★博客园 首页,版权归原作者所有;如涉侵权请回帖告知,我们会立即删除。 |