惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
小众软件
小众软件
美团技术团队
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
D
Docker
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
B
Blog
雷峰网
雷峰网
The Cloudflare Blog

Mox的笔记库

2026PPoPP MLIR Tutorial学习 | Mox的笔记库 MacOS配置《明日方舟:终末地》 | Mox的笔记库 2025:向内生长 | Mox的笔记库 由mlir::ExecutionEngine引发的跨系统问题 | Mox的笔记库 WSL2配置Cuda-Tile环境记录(未完待续) | Mox的笔记库 Vibe Coding手搓项目记录 | Mox的笔记库 给Debian上包——以DuckDB为例 | Mox的笔记库 UCPD.sys事件存档 | Mox的笔记库 换新电脑之Mac mini M4从购买到配置 | Mox的笔记库 Mac配置MLX-C开发环境 | Mox的笔记库 RISC-V meets RDBMS——RISC-V架构上可运行数据库一览 | Mox的笔记库 DuckDB Sort实现调查 | Mox的笔记库 修复Redis在树莓派5上无法运行的问题 | Mox的笔记库 如何在MLIR中自定义类型并且输出运行 | Mox的笔记库 网站网络结构变更记录 | Mox的笔记库 EDBT25论文阅读:PhoebeDB——A Disk-Based RDBMS Kernel for High-Performance and Cost-Effective OLTP SIGMOD25论文阅读:BPF-DB:——A Kernel-Embedded Transactional Database Management System For eBPF Applications Apache Arrow Gandiva项目解析 | Mox的笔记库 VLDB24论文阅读:Cloud-Native Database Systems and Unikernels——Reimagining OS Abstractions for Modern Hardware NoisePage源码分析(未完待续) | Mox的笔记库 VLDB20论文阅读:Mainlining Databases——Supporting Fast Transactional Workloads on Universal Columnar Data File Formats VLDB17论文阅读:Relaxed Operator Fusion for In-Memory Databases:Making Compilation, Vectorization, and Prefetching Work Together At Last 论文阅读:How not to structure your database-backed web applications——a study of performance bugs in the wild SIGMOD24阅读:ROME——Robust Query Optimization via Parallel Multi-Plan Execution 文章阅读:First Past the Post-Evaluating Query Optimization in MongoDB SIGMOD文章阅读:Apache Calcite——A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources VLDB23论文阅读:Analyzing the Impact of Cardinality Estimation on Execution Plans in Microsoft SQL Server SIGMOD22论文阅读:Efficient Massively Parallel Join Optimization for Large Queries VLDB论文阅读:Weaving Relations for Cache Performance VLDB22论文阅读:ConnectorX——Accelerating Data Loading From Databases to Dataframes
论文阅读——CDUL:CLIP-Driven Unsupervised Learning for Mult...
MocusEZ · 2024-05-30 · via Mox的笔记库

ICCV2023的的论文,提出来一个在CLIP中使用无标记的多标签的方案

在2024年还有人对其做再现性[研究(Reproducibility Study of CDUL: CLIP-Driven Unsupervised Learning for Multi-Label Image Classification

另外,本篇论文没有公开代码,但有相关同行实现了部分代码,这部分会在后面提及

本篇Blog仅记录些让我感兴趣的部分,不完善的地方与细节,还请各位自行补充

参考资料

【ICCV 2023】CDUL: CLIP-Driven Unsupervised Learning for Multi-Label Image Classification

CDUL: CLIP-Driven Unsupervised Learning for Multi-Label Image Classification

研究动机

· CLIP往往适合单标签分类,而不适合多标签分类

· 多标签的注释获取往往是带有噪声的

本文方法:

· 伪标签初始化。聚合全局和局部信息,令CLIP关注多类对象。

· 梯度对齐训练。递归地更新网络参数和伪标签(潜在参数)。

提出一种基于CLIP的无监督学习的无标注多标签图像分类方法。包括三个阶段:初始化、训练(Train)和推断(Inference)。

· 在初始化阶段充分利用强大的CLIP模型,并提出一种基于全球本地图像文本相似度的聚合的方法,以扩展Clip进行多标签预测

· 在训练阶段,我们将聚合相似度得分作为初始的伪标签,并提出一种优化框架来训练分类网络的参数,并优化未观测标签的伪标签。

· 在推断阶段,仅使用分类网络预测输入图像的标签。

伪标签初始化

全局与局部对齐

有一个Global Alignment 和一个Local Alignment

Global Alignment 是指整张图片的Embedding

Local Alignment是图片拆成块后的Embedding

两部分的使用的公式一模一样

有一个聚合器:Global-Local Image-Text Similarity Aggregator

针对Local Alignment计算出的相似度(similirity)给了一个聚合方案

基于该方案,与Global Alignment进行算术平均

PromptPar中的代码所描述基本一致

def forward_aggregate(self, image, text):

all_class = (image / image.norm(dim=-1, keepdim=True)).float()

text_features = (text / text.norm(dim=-1, keepdim=True)).float()

\# cosine similarity as logits

logit_scale = self.logit_scale.exp()

logits_per_image = logit_scale * all_class @ text_features.t()

//上面部分是OpenAI原本内容,下面部分为实现:

similarity = self.softmax_model(logits_per_image)

global_similarity = similarity[:,0]

local_similarity = similarity[:,1:]

for logits_local in local_similarity:

max_values, _ = torch.max(logits_local, dim=0)#max_values.detach().numpy()

min_values, _ = torch.min(logits_local, dim=0)

gama=max_values > args.ag_threshold

similarity_aggregate = gama.float() * max_values + (1 - gama.float()) * min_values

final_similarity = (similarity_aggregate + global_similarity) / 2

return self.agg_bn(final_similarity),logits_per_image

梯度对齐训练

使用后 Kullback-Leibler (KL散度)作为损失计算,根据结果更新伪标签,然后进行下一轮计算,逐步更新网络参数。

Note:好像不少多标签的CLIP都在用KL散度替换交叉熵(Cross Entrophy Loss)

结语

相比较于CSDN原文,好像也没有新增多少内容😂溜了溜了

非要说什么的话,就是这个方案确实有开创性,一个不难理解的方案,完成了CLIP对多标签任务的拓展


avatar

探索未曾设想的道路