对比学习入门(2):序列数据如何做对比学习

序列数据如何做对比学习

前文对比学习入门中我们介绍了图片的例子,在另一篇文章CPC中作者在音频数据上做对比学习,进一步所有序列数据都可以使用对比学习。为此我们在这篇文章中以一个简单的例子介绍序列数据如何做对比学习,方便大家理解CPC的原理,原文其实挺难理解的。

简单的例子

我们以语言序列(I like cat forever)为例子,介绍如何在序列数据上做对比学习,示意图如下

我们将每个单词送入Encoder得到对应的v1,v2,v3,v4,按照前文的介绍,我们需要训练一个辨别器,示意图如下。重点就在于如何定义正样本和负样本。

对于一个序列特征,直觉告诉我们,当前位置t应该与t+1有关,比如"I"和"like"相关,"like"和"cat"相关,所以相邻位置的数据成为了正样本。负样本示意图如下,在图中以v1作为锚点,v2就是正样本,v1,v3,v4全都是负样本。我们可以发现v1v1的负样本,这和前文的例子就有区别,对比学习定义正样本的方法是非常灵活的。

CPC简单介绍

上图展示了CPC的整体框架。xt为锚点,小于t的数据都是历史数据,大于t的数据是预测数据Predictions。
对所有数据使用genc进行编码,得到音频的特征向量。作者定义了ct为上下文变量,通过gar自回归算法累计所有历史数据。
CPC定义的正样本和上一小节的例子有所不同,定义ct和未来k步的特征向量zt+k为正样本,所有其他数据都为负样本。至此可以比较直观地理解CPC,更详细内容可以读CPC内容。

posted @   PowerZZJ  阅读(8)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
点击右上角即可分享
微信分享提示