对比预测编码表示学习

news2024/11/15 5:07:30

对比预测编码表示学习

引言

在这里插入图片描述

文章主要提出如下几点:首先将高维数据压缩到更加紧凑的潜在嵌入(latent embdding)空间,在这个空间中条件预测更容易被建模。第二,在这个潜在空间中使用自回归模型,以对未来的多个步骤做预测。在最后,依靠噪声对比估计文献的损失函数,以类似的方式用于学习自然语言模型中的词嵌入,从而允许整个模型端到端的训练。我们将得到的模型,对比预测编码( CPC )应用于广泛不同的数据模态,图像,语音,自然语言和强化学习,并表明相同的机制在这些领域的每个领域学习有趣的高级信息,表现优异。

对比预测编码(CPC,Constrastive Predicting Coding)

动机和直觉

模型背后的主要直觉是学习编码(高维)信号不同部分之间潜在共享信息的表示。同时它丢弃了更局部的低级信息和噪声。在时间序列和高维建模中,使用下一步预测的方法利用了信号的局部平滑性。在未来进一步预测时,共享的信息量变得更低,模型需要推断更多的全局结构。这些跨越多个时间步的"慢特征" 往往是更有趣的(例如,语音中的音素和语调,图像中的物体,或书籍中的故事情节。)。

直接建模 p ( x ∣ c ) p(x|c) p(xc)计算代价一般非常大,对于提取 x x x c c c之间的共享信息而言,可能不是最优的。当预测未来信息时,我们以最大限度保留原始信号 x x x c c c的互信息的方式将目标x (未来)和上下文c (当前)编码成一个紧凑的分布式向量表示(凭借非线性学习映射)

这个方式定义为:

I ( x ; c ) = ∑ x , c p ( x , c ) l o g p ( x , c ) p ( x ) p ( c ) = ∑ x , c p ( x , c ) l o g p ( x ∣ c ) p ( x ) I(x;c)=\sum_{x,c}p(x,c)log\frac{p(x,c)}{p(x)p(c)}=\sum_{x,c}p(x,c)log\frac{p(x|c)}{p(x)} I(x;c)=x,cp(x,c)logp(x)p(c)p(x,c)=x,cp(x,c)logp(x)p(xc)
最大化编码表示之间的互信息。

对比预测编码CPC

Figure 1中展示了对比预测编码(CPC)模型架构,首先, g e n c g_{enc} genc表示一个非线性编码器,它将观测量 x t x_t xt的输入序列映射成潜在表示 z t = g e n c ( x t ) z_t=g_{enc}(x_t) zt=genc(xt),具有较低的时间分辨率。然后,自回归模型 g a r g_ar gar总结所有潜在空间中的 z ≤ t z_{\le t} zt并产生一个上下文的潜在表示 c t = g a r ( z ≤ t ) c_t=g_{ar}(z_{\le t}) ct=gar(zt)

不直接建模 p k ( x t + k ∣ c t ) p_k(x_{t+k}|c_t) pk(xt+kct)来预测 x t + k x_{t+k} xt+k,而是建模 x t + k x_{t+k} xt+k c t c_t ct之间留存互信息的密度比率。

f k ( x t + k , c t ) ∝ p ( x t + k ∣ c t ) p ( x t + k ) f_k(x_{t+k},c_t)\propto \frac{p(x_{t+k}|c_t)}{p(x_{t+k})} fk(xt+k,ct)p(xt+k)p(xt+kct)
注意到密度比f可以非正规化为(不必整合到1)。文章中使用了一个简单的对数双线性模型来建模它:
f k ( x t + k , c t ) = e x p ( z t + k T W k c t ) f_k(x_{t+k},c_t)=exp(z_{t+k}^TW_kc_t) fk(xt+k,ct)=exp(zt+kTWkct)
W k c t W_kc_t Wkct用于每一步k都有一个不同的 W k W_k Wk进行预测。或者,可以使用非线性网络或递归神经网络。

InfoNCE Loss

给定N个随机样本集合X = { x1,… xN },其中1个来自 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+kct)的正样本,N - 1个来自"提议"分布 p ( x t + k ) p(x_{t+k}) p(xt+k)的负样本。
L N = − E [ l o g f k ( x t + k , c t ) ∑ x j ∈ X f k ( x j , c t ) ] \mathcal{L}_N=-\mathbb{E}\left[log\frac{f_k(x_{t+k},c_t)}{\sum_{x_j\in \mathbf{X}}f_k(x_j,c_t)}\right] LN=E[logxjXfk(xj,ct)fk(xt+k,ct)]
优化这个损失函数将使得 f k f_k fk估计密度比率。
将这种损失的最优概率记为 p ( d = i ∣ X , c t ) p( d = i | X , c_t) p(d=iX,ct),其中[ d = i]是样本xi为"正"样本的指标。样本xi是由条件分布 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+kct)而不是建议分布 p ( x t + k ) p(x_{t+k}) p(xt+k)得出的概率如下:
p ( d = i ∣ X , c t ) = p ( x i ∣ c t ) ∏ l ≠ i p ( x l ) ∑ j = 1 N p ( x j ∣ c t ) ∏ l ≠ j p ( x l ) = p ( x i ∣ c t ) p ( x i ) ∑ j = 1 N p ( x j ∣ c t ) p ( x j ) p(d=i|\mathbf{X},c_t)=\frac{p(x_i|c_t)\prod_{l\neq i}p(x_l)}{\sum_{j=1}^N p(x_j|c_t)\prod_{l\neq j}p(x_l)}=\frac{\frac{p(x_i|c_t)}{p(x_i)}}{\sum_{j=1}^N \frac{p(x_j|c_t)}{p(x_j)}} p(d=iX,ct)=j=1Np(xjct)l=jp(xl)p(xict)l=ip(xl)=j=1Np(xj)p(xjct)p(xi)p(xict)

I ( x t + k , c t ) ≥ l o g ( N ) − L N I(x_{t+k},c_t)\ge log(N)-\mathcal{L}_N I(xt+k,ct)log(N)LN
N越大,越贴近。

prove

L N o p t = − E X l o g [ p ( x i ∣ c t ) p ( x i ) p ( x i ∣ c t ) p ( x i ) + ∑ x j ∈ X n e g p ( x j ∣ c t ) p ( x j ) ] = E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ∑ x j ∈ X n e g p ( x j ∣ c t ) p ( x j ) ] ≈ E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ( N − 1 ) E x j p ( x j ∣ c t ) p ( x j ) ] = E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ( N − 1 ) ] ≥ E X l o g [ p ( x i ) p ( x i ∣ c t ) ( N − 1 ) ] = − I ( x i , c t ) + l o g ( N − 1 ) \begin{align} \mathcal{L}_N^{opt} &= -\mathbb{E}_{X}log\left[\frac{\frac{p(x_i|c_t)}{p(x_i)}}{\frac{p(x_i|c_t)}{p(x_i)}+\sum_{x_j\in X_{neg}} \frac{p(x_j|c_t)}{p(x_j)}}\right]\\ &=\mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}\sum_{x_j\in X_{neg}}\frac{p(x_j|c_t)}{p(x_j)}\right]\\ &\approx \mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}(N-1)\mathbb{E}_{x_j}\frac{p(x_j|c_t)}{p(x_j)}\right]\\ &=\mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}(N-1)\right]\\ &\ge \mathbb{E}_{X}log\left[\frac{p(x_i)}{p(x_i|c_t)}(N-1)\right]\\ &= -I(x_i,c_t)+log(N-1) \end{align} LNopt=EXlog p(xi)p(xict)+xjXnegp(xj)p(xjct)p(xi)p(xict) =EXlog 1+p(xict)p(xi)xjXnegp(xj)p(xjct) EXlog[1+p(xict)p(xi)(N1)Exjp(xj)p(xjct)]=EXlog[1+p(xict)p(xi)(N1)]EXlog[p(xict)p(xi)(N1)]=I(xi,ct)+log(N1)

对于(5)(6)原论文为:
= E X l o g [ 1 + p ( x i ) p ( x i ∣ c t ) ( N − 1 ) ] ≥ E X l o g [ p ( x i ) p ( x i ∣ c t ) N ] = − I ( x i , c t ) + l o g ( N ) \begin{align} &=\mathbb{E}_{X}log\left[1+\frac{p(x_i)}{p(x_i|c_t)}(N-1)\right]\\ &\ge \mathbb{E}_{X}log\left[\frac{p(x_i)}{p(x_i|c_t)}N\right]\\ &= -I(x_i,c_t)+log(N) \end{align} =EXlog[1+p(xict)p(xi)(N1)]EXlog[p(xict)p(xi)N]=I(xi,ct)+log(N)
我认为是在最优化条件下, p ( x i ) ≤ p ( x i ∣ c t ) p(x_i)\le p(x_i|c_t) p(xi)p(xict)

InfoNCE也与MINE(最大互信息估计)相关,记 f ( x , c ) = e F ( x , c ) f(x,c)=e^{F(x, c)} f(x,c)=eF(x,c),则:
E X [ l o g f ( x , c ) ∑ x ∈ X f ( x , c ) ]   = E ( x , c ) [ F ( x , c ) ] − E ( x , c ) [ l o g ∑ x j ∈ X e F ( x j , c ) ] = E ( x , c ) [ F ( x , c ) ] − E ( x , c ) [ l o g ( e F ( x , c ) + ∑ x j ∈ X n e g e F ( x j , c ) ) ] ≤ E ( x , c ) [ F ( x , c ) ] − E c [ l o g ( ∑ x j ∈ X n e g e F ( x j , c ) ) ] \begin{align} \mathbb{E}_X\left[log\frac{f(x,c)}{\sum_{x\in \mathbf{X}}f(x,c)}\right]\ &=\mathbb{E}_{(x,c)}\left[F(x, c)\right]-\mathbb{E}_{(x,c)}\left[log\sum_{x_j\in X}e^{F(x_j, c)}\right]\\ &=\mathbb{E}_{(x,c)}\left[F(x, c)\right]-\mathbb{E}_{(x,c)}\left[log\left(e^{F(x, c)}+\sum_{x_j\in X_{neg}}e^{F(x_j, c)}\right)\right]\\ &\le \mathbb{E}_{(x,c)}\left[F(x, c)\right]-\mathbb{E}_{c}\left[log\left(\sum_{x_j\in X_{neg}}e^{F(x_j, c)}\right)\right]\\ \end{align} EX[logxXf(x,c)f(x,c)] =E(x,c)[F(x,c)]E(x,c) logxjXeF(xj,c) =E(x,c)[F(x,c)]E(x,c) log eF(x,c)+xjXnegeF(xj,c) E(x,c)[F(x,c)]Ec log xjXnegeF(xj,c)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1942629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PingCAP 王琦智:下一代 RAG,tidb.ai 使用知识图谱增强 RAG 能力

导读 随着 ChatGPT 的流行,LLMs(大语言模型)再次进入人们的视野。然而,在处理特定领域查询时,大模型生成的内容往往存在信息滞后和准确性不足的问题。如何让 RAG 和向量搜索技术在实际应用中更好地满足企业需求&#…

【C++11】智能指针深度详解(什么是智能指针?为什么需要智能指针?如何使用智能指针?)

目录 一、前言 二、 智能指针的引入 --- 内存泄露 💢什么是内存泄漏?💢 💢内存泄漏有那些危害?💢 💢内存泄漏的原因?💢 💢解决内存泄漏的方法 &#x…

go-kratos 学习笔记(3) google buf 管理proto

google buf 管理proto,以及从新归档文件的目录结构 什么是 BSR? BSR 将 Protobuf 文件作为版本化模块进行存储和管理,以便个人和组织可以轻松使用和发布他们的 API。 BSR 带有可浏览的 UI、依赖项管理、API 验证、版本控制、生成的文档以及…

手把手教你CrossOver 24.0.0 for Mac 破解版安装激活2024图文教程

兔八哥爱分享要和大家分享的是一款可以让我们直接在Mac上安装和运行Windows软件和游戏的软件——CrossOver。兔八哥爱分享这次带来的是24.0.0 测试版本。 CrossOver已支持相当多的Windows应用,如Office、AutoCAD、Windows Media Player 9、Photoshop、Dreamweaver、…

Java并发的笔记

打算记录自己的学习情况,尽量不摆烂,另外一件事要有始有终,要弄完 如果多个线程处理同一个变量,读跟写都保证不了 2024.7.22》》》》》》》》》》》》 2.1.1volatile的实现原理 volatile不会引起线程上下文的切换和调度 一致性更…

《0基础》学习Python——第十八讲__爬虫/<1>

一、什么是爬虫 爬虫是一种网络数据抓取的技术。通过编写程序(通常使用Python),爬虫可以自动化地访问网页,解析网页内容并提取出所需的数据。爬虫可以用于各种用途,如搜索引擎的索引,数据分析和挖掘&#x…

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.7安全架构

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

软件测试---测试需求分析

课程目标 什么是软件测试需求 软件测试需求的必要性 如何对软件测试需求进行分析(重点) 课程补充 灰度测试(基于功能):先发布部分功能,然后看用户的反馈,再去发布另外一部分的功能更新。 A/B测…

Qt绘制指南针(仪表盘绘制封装使用)

指南针是一种用来确定方向的工具。它由一个磁针制成,其一端被磁化,可以自由旋转。当放置在水平面上时,磁针会指向地球的磁北极。通过观察磁针的指向,我们可以确定地理北方的方向。本示例是在Qt中绘制一个指南针,通过继…

基于springboot+vue+uniapp的宿舍管理系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

C++学习笔记02-结构基础(问题-解答自查版)

前言 以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。 本文对读者可以用作自查,答案在后面&#xff0…

Git的使用教程

仓库分区 Git本地有三个工作区域:工作目录(Working Directory),暂存区(Stage/Index),资源库(Repository或Git Directory)。如果再加上远程的git仓库(Remove Directory)就…

SAP PP 物料主数据字段状态控制

参考 https://zhuanlan.zhihu.com/p/452823415 物料主数据里面的状态 由 1、行业 2、工厂 3、物料类型 4、事务代码 5、采购相关字段 6、客制 优先级 隐藏->显示->必输->可选

Go基础编程 - 11 - 函数(func)

接口(interface) 函数1. 函数定义1.1. 函数名1.2. 参数列表1.3. 返回值列表 2. 匿名函数3. 闭包、递归3.1 闭包3.1.1 函数、引用环境3.1.2 闭包的延迟绑定3.1.3 goroutine 的延迟绑定 3.2 递归函数 4. 延迟调用(defer)4.1 defer特…

C语言中的控制语句(三):while 和 do while 语句

文章目录 [toc] 🍊自我介绍🍊while语句🍊do...while循环🍊🍊 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏(一键四连)哦~ 🍊自我介绍 Hello…

单调栈(随缘复习到了,顺手刷了)

也是不知道为什么突然又复习到单调栈了,所以顺手刷了三道题,总结一下 P6503 [COCI2010-2011#3] DIFERENCIJA 思路:这题是要求每个子区间里面的最大值和最小值的差,我们一开始想的必然是纯暴力呀,但是一看这数据&#…

主流硬派SUV齐聚尼三锅,方程豹豹5成功冲顶

随着汽车的飞速普及,越来越多的车主都喜欢上了越野。 而在浩瀚无垠的沙漠腹地,尼三锅以其独特的地理形态,成为了无数越野爱好者心中的圣地与试炼场。 近日,众多汽车博主携自己的爱车普拉多、方程豹豹5、牧马人、坦克400、坦克700、…

图书馆座位管理系统 /图书馆座位预约系统/图书馆管理系统的设计与实现

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

excel批量新建多个同类型的表格

背景引入 比如,一个企业有多个部门,现在需要按照某一个excel表模板收集各个部门的信息,需要创建数十个同类型表格,且标题要包含部门名称。 1.修改模板表格标题 在一个文件夹下面放入需要发放给各个部门的表格,将标题…

轨迹优化 | 基于ESDF的共轭梯度优化算法(附ROS C++/Python仿真)

目录 0 专栏介绍1 数值优化:共轭梯度法2 基于共轭梯度法的轨迹优化2.1 障碍约束函数2.2 曲率约束函数2.3 平滑约束函数 3 算法仿真3.1 ROS C实现3.2 Python实现 0 专栏介绍 🔥课程设计、毕业设计、创新竞赛、学术研究必备!本专栏涉及更高阶的…