DPO公式推导

DPO公式推导全解析

元数据


核心目标函数推导

1. 原始约束目标

行为约束的强化学习目标出发:

maxπExD,yπ[r(x,y)]βDKL[π(y|x)πref(y|x)]

其中:


2. 目标函数变形

步骤1:展开KL散度

DKL=Eyπ(y|x)[logπ(y|x)πref(y|x)]

变形后目标

maxπExD[Eyπ(y|x)[r(x,y)βlogπ(y|x)πref(y|x)]]

步骤2:转换为最小化问题

将最大化问题转换为最小化(乘 1):

minπExD[Eyπ(y|x)[logπ(y|x)πref(y|x)1βr(x,y)]]

3. 引入配分函数 Z(x)

关键操作:构造指数形式

将目标表达式重写为:

minπExD[Eyπ(y|x)[logπ(y|x)1Z(x)πref(y|x)exp(1βr(x,y))logZ(x)]]

其中:

Z(x)=yπref(y|x)exp(1βr(x,y))

4. 定义最优策略 π

令:

π(y|x)=1Z(x)πref(y|x)exp(1βr(x,y))

合法性验证

yπ(y|x)=1Z(x)yπref(y|x)exp(1βr(x,y))=1

5. KL散度最小化

目标函数简化为:

minπExD[DKL(π(y|x)π(y|x))logZ(x)]

最优解直接为:

π(y|x)=π(y|x)

6. 奖励函数反推

π表达式解出r(x,y)

r(x,y)=βlogπ(y|x)πref(y|x)+βlogZ(x)

7. 偏好概率模型

代入Bradley-Terry模型

pβ(y1y2|x)=exp(βlogπref(y1|x)π(y1|x)+βlogZ(x))exp()+exp()

简化后(利用Z(x)抵消):

pβ=σ(βlogπref(y1|x)π(y1|x)βlogπref(y2|x)π(y2|x))

⚠ 常见错误警示

  1. 配分函数计算遗漏
    → 必须对所有可能的y求和,否则会导致概率分布不合法。

  2. β系数误用
    → 在指数项和KL散度项中需严格区分β的位置。


💡 创新点解析


原始推导参考:用户提供的技术文档(DPO推导章节)