sft是mean-seeking rl是mode-seeking

2024-08-25 13:20
文章标签 rl mode mean sft seeking

本文主要是介绍sft是mean-seeking rl是mode-seeking,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接

KL散度是D(P||Q),P和Q谁在前谁在后是有讲究的,P在前,就从P采样。
D K L ( P ∣ ∣ Q ) = E x − p ( x ) ( l o g ( P ( x ) / Q ( x ) ) ) D_{KL}(P||Q)=E_{x-p(x)}(log(P(x)/Q(x))) DKL(P∣∣Q)=Exp(x)(log(P(x)/Q(x)))想象一下,如果某个x的Q=0,1>P>0,则 D K L D_{KL} DKL会直指∞。所以你要在这个KL形式下最小化KL,就必须遵循一个原则:P大,Q就得大,不然KL会很大。

反之,对于 D K L ( Q ∣ ∣ P ) D_{KL}(Q||P) DKL(Q∣∣P)也是这个情况,Q大,P就得大。可是P是真实数据,是固定的,所以Q就得让自己大的地方正好是P大的地方。

理想情况下,这两种都能训练成功,但是训练往往是次优的。由于原则的差别,会让Q拟合P时产生两种截然不同的反应:mean-seeking和mode-seeking。
前者形容 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q),后者形容 D K L ( Q ∣ ∣ P ) D_{KL}(Q||P) DKL(Q∣∣P)
看图更容易理解:红色是Q,蓝色是P。

这是 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q)的次优训练结果。刚才说了,Q大P小无所谓,但是P大Q就得大,因此Q在本身分布假设简单的情况下(例如是正态分布),就只能获得这样的拟合。
在这里插入图片描述这是 D K L ( Q ∣ ∣ P ) D_{KL}(Q||P) DKL(Q∣∣P)的次优训练结果。刚才说了,P大Q小无所谓,但是Q大P就得大,因此Q在本身分布假设简单的情况下(例如是正态分布),能力有限,就只能拟合P的一个高峰。

对于两种KL, D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q)叫forward KL, D K L ( Q ∣ ∣ P ) D_{KL}(Q||P) DKL(Q∣∣P)叫reverse KL。前者需要你采样P,后者需要你计算p(x)。

mean-seeking准备工作

在解释sft是mean-seeking,rl是mode-seeking前,对KL做个变形:
在这里插入图片描述
在这里插入图片描述

sft是mean-seeking

对于forward KL,简单把log打开就是第一个式子,H是P的熵。然后训练目标是改变策略,让forward KL最小。简化到最后就是上面那样。显然,要是停在argmin那块(倒数第二行),这就是个P和Q的cross entropy,这就已经能联想到sft的目标函数了,这俩是一回事。

mode-seeking准备工作

在这里插入图片描述
reverse KL的拆解就不贴了。总之优化目标是这个。
如果我设置
在这里插入图片描述
即reward就是从偏好数据集分布来的,这样不犯忌讳,我偏好的肯定概率高,我偏好的肯定reward大,那我就直接拿概率当reward。log是递增函数,所以不影响上述规律。我这么一设置,reverse KL的优化目标就变成了:
在这里插入图片描述
这是最大熵强化学习的目标函数。要后面的-log最大,就得01分布,0去拿到∞,1拿到0。1放在reward最大的action上还能让目标函数更大。这是该目标函数工作的原理。
论证完毕。

这篇关于sft是mean-seeking rl是mode-seeking的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105666

相关文章

Unstructured cannot write mode RGBA as JPEG 错误解决

Unstructured cannot write mode RGBA as JPEG 错误解决 0. 错误详细1. 解决方法 0. 错误详细 Image Extraction Error: Skipping the failed imageTraceback (most recent call last):File "/root/miniconda3/envs/learn-y

混合模式属性background-blend-mode

background-blend-mode 是 CSS 中的一个属性,它允许你将背景图像与背景颜色或背景图像之间以一种特定的混合模式进行混合。这个属性为网页设计师提供了一种强大的方式来创建视觉上吸引人的背景效果,无需使用图像编辑软件或额外的图像文件。 background-blend-mode 可以应用于单个背景图像与背景颜色之间,或者当设置多个背景图像时,应用于这些图像之间。混合模式包括了许多

【Mysql】系统服务启动访问报错问题处理:this is incompatible with sql_mode=only_full_group_by

一、背景: 本来已经正常运行的平台,突然有一天由于对服务器进行部分操作迁移,发现jar可以正常启动,但是访问功能一直报错,监控后台日志后,发现了问题: 报错的具体信息如下: Caused by: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and conta

Hugging Face Offline Mode 离线模式

Hugging Face Offline Mode 离线模式 1. 缓存管理2. 遥测日志 在使用 Hugging Face 的库时,缓存和遥测日志是两个重要的功能。本文将介绍如何管理缓存、启用离线模式以及如何关闭遥测日志。 1. 缓存管理 在使用 Hugging Face 模型时,权重和文件通常会从 Hub 下载并存储在默认的缓存目录中,这个目录通常位于用户的主目录。如果

关闭qcom soc系列手机的ramdump mode

在 kernel/msm-3.10 / arch/arm64/configs/ze550kl_user_defconfig中 将CONFIG_MSM_DLOAD_MODE=y改成 #CONFIG_MSM_DLOAD_MODE is not set 然后在/ drivers/power/reset/msm-poweroff.c中将 if (!in_panic) { // Normal re

rl: (7) Failed to connect to get.rvm.io port 443: Operation timed out

问题:curl -L https://get.rvm.io | bash -s stable 命令失败 报错内容: rl: (7) Failed to connect to get.rvm.io port 443: Operation timed out 或 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection t

CUDA-MODE课程笔记 第9课: 归约(也对应PMPP的第10章)

我的课程笔记,欢迎关注:https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/cuda-mode CUDA-MODE课程笔记 第9课: 归约(也对应PMPP的第10章) 课程笔记 本节课的题目。 这节课的内容主要是 Chapter 10 of PMPP book ,Slides里面还给出了本节课的

mean shift图像分割(一)

mean shift均值偏移算法,可以用于图像分割(类聚)或者视频跟踪。在图像分割上是寻找一副图像的特征空间中的概率密度极值点,以极值点为类聚来平滑分隔。概率密度主要用非参数概率密度估计方法,其中核密度估计较为常用。密度极值点的寻找用密度梯度方法进行迭代寻找。 meanshift可分割需要建立在图像特征空间可分的基础上,也就是需要找到一个合适的特征空间,图像映射到这个空间上后,目标和背景可以

NumPy(五):数组统计【平均值:mean()、最大值:max()、最小值:min()、标准差:std()、方差:var()、中位数:median()】【axis=0:按列运算;axis=0:按列】

统计运算 np.max()np.min()np.median()np.mean()np.std()np.var()np.argmax(axis=) — 最大元素对应的下标np.argmin(axis=) — 最小元素对应的下标 NumPy提供了一个N维数组类型ndarray,它描述了 相同类型 的“items”的集合。(NumPy provides an N-dimensional array

Pandas-高级处理(四):分组与聚合【分组:groupby、聚合统计:max/min/mean...、分组转换:transform、一般化Groupby方法:apply】【抛开聚合只谈分组没意义】

df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) 分组统计 - groupby功能 ① 根据某些条件将数据拆分成组 ② 对每个组独立应用函数 ③ 将结果合并到一个数据结构中 应用groupby和聚合函数实现数据的分组与聚合