SeLa:Self Labeling Via Simultaneous Clustering and Representation Learning

news2024/10/6 10:28:27

方法论

有监督的分类任务实现

  • 给定一个将数据I映射至特征向量 x ∈ R D x ∈ R^D xRD 的深度神经网络 Φ Φ Φ ,即 x = Φ ( I ) x = Φ ( I ) x=Φ(I)
  • 使用有N个样本 I 1 , … , I N I_1 , … , I_N I1,,IN, 且具有标签 y 1 , … , y N ∈ { 1 , … , K } y_1 , … , y_N ∈ \{ 1 , … , K \} y1,,yN{1,,K}的数据集训练该模型。
  • 分类头 h : R D → R K h : R^D → R^K h:RDRK 将特征向量转化为一个类别分数向量。
  • 最后通过softmax将类别分数映射为类别概率 p ( y = ⋅ ∣ x i ) = s o f t m a x ( h ∘ Φ ( x i ) ) p ( y = ⋅ ∣ x i ) = softmax ( h ∘ Φ ( x i ) ) p(y=xi)=softmax(hΦ(xi))
  • 模型通过最小化平均交叉熵来学习。

E ( p ∣ y 1 , … , y N ) = − 1 N ∑ i = 1 N log    p ( y i ∣ x i ) (1) E(p|y_1,\dots,y_N)=-\frac{1}{N}\sum_{i=1}^N\text{log}\;p(y_i|\textbf{x}_i) \tag{1} E(py1,,yN)=N1i=1Nlogp(yixi)(1)

今天求佛x_i =1,明天中彩票的概率和明天不中彩票的概率

半监督方法

  • 计算机视觉中的半监督学习
  • https://amitness.com/2020/07/semi-supervised-learning/

Self-training 是最简单的半监督方法之一,其主要思想是找到一种方法,用未标记的数据集来扩充已标记的数据集。算法流程如下:

  1. 首先,利用已标记的数据来训练一个好的模型,然后使用这个模型对未标记的数据进行标记。
  2. 然后,进行伪标签的生成,因为已训练好的模型对未标记数据的所有预测都不可能都是完全正确的,因此对于经典的 Self-training,通常是使用分数阈值(confidence score)过滤部分预测,以选择出未标记数据的预测标签的一个子集。
  3. 其次,将生成的伪标签与原始的标记数据相结合,并在合并后数据上进行联合训练。
  4. 整个过程可以重复 n 次,直到达到收敛。

Self-training 最大的问题在就在于伪标签非常的 noisy,会使得模型朝着错误的方向发展。以下文章大多数都是为了解决这个问题

在这里插入图片描述

退化解

  • 如果能够获取一部分的标签,那么该方法就可以使用。但是,在无监督分类中,该方法会导致退化解。也就是,可以通过将数据数据样本分配到同一个标签来实现等式(1)的最小化。

E ( p , q ) = − 1 N ∑ i = 1 N ∑ y = 1 K q ( y ∣ x i ) log    p ( y ∣ x i ) (2) E(p,q)=-\frac{1}{N}\sum_{i=1}^N\sum_{y=1}^K q(y|\textbf{x}_i)\text{log}\;p(y|\textbf{x}_i) \tag{2} E(p,q)=N1i=1Ny=1Kq(yxi)logp(yxi)(2)

  • 若后验概率分布(密度函数) q ( y ∣ x i ) = δ ( y − y i ) q(y∣x i)=δ(y−y_i) q(yxi)=δ(yyi)是确定的,那么等式(1)和等式(2)就是等价的,即

  • E ( p , q ) = E ( p ∣ y 1 , … , y N ) E ( p , q ) = E ( p ∣ y_1 , … , y_N ) E(p,q)=E(py1,,yN)

  • 在本方法中,优化分布q就等价于重写分配标签,这会导致退化解。

  • 为了避免退化解问题,该方法为标签的重新分配添加了均等划分约束。

  • 一开始以为这是贝叶斯公式 P(A|B) = P(B|A) * P(A) / P(B) ,后来发现这有点类似”任意信号都可以用冲激信号的组合表示”。

min p , q    E ( p , q ) subject to ∀ y : q ( y ∣ x i ) ∈ { 0 , 1 }    and ∑ i = 1 N q ( y ∣ x i ) = N K (3) \mathop{\text{min}}_{p,q}\; E(p,q)\quad\text{subject to}\quad\forall y:q(y|\textbf{x}_i)\in\{0,1\}\; \text{and}\sum_{i=1}^N q(y|\textbf{x}_i)=\frac{N}{K} \tag{3} minp,qE(p,q)subject toy:q(yxi){0,1}andi=1Nq(yxi)=KN(3)

该约束意味着每个样本 x i x_i xi 都会被均等的分配至每个标签上,也就是整体N个样本被均匀分配到K个类别上。

transportation polytope求解满足条件的q

​ 优化以上目标函数中的q是一个难以优化的组合优化问题。但是,其可以看做是一个相对容易求解的最优运输问题的实例。

最优传输

Transportation polytope 是一个数学概念,用于描述运输问题的解空间。在运输问题中,需要确定如何将一组货物从供应地点运送到需求地点,以最小化总运输成本。

一个例子:考虑一个运沙子的问题,第一堆沙子的分布为r=(0.6,0.4),第二堆沙子的分布为c=(0.2,0.6,0.2)。下表就描述了一种搬运方式: 即把0.6的第一堆沙子全搬到第二堆, 把0.4的第二堆沙子平均搬到的第一堆和第三堆.

0.20.60.2
0.600.60
0.40.200.2

给定2 × 3的代价矩阵M,如果求最小cost就成了最优化问题。从r映射到c的代价可以用传输矩阵(transport matrix)(或联合概率)量化为:
d M ( r , c ) : = m i n Q ∈ U ( r , c )    ∑ i , j Q i , j M i , j = ⟨ Q , M ⟩ d_{\color{red}M}(r,c):=min _{Q ∈ U ( r , c )}    \sum_{i,j}Q_{i,j}{\color{red}M}_{i,j}= ⟨ Q, M ⟩ dM(r,c):=minQU(r,c)  i,jQi,jMi,j=Q,M

因此在分布 r 、c 约束下,问题解空间可以做如下定义:
U ( r , c ) : = { Q ∈ R + K × N ∣ Q 1 = r , Q ⊤ 1 = c } U(r,c):=\{Q\in\mathbb{R}_+^{K\times N}|Q\textbf{1}=r,Q^\top\textbf{1}=c\} U(r,c):={QR+K×NQ1=r,Q1=c}

特殊化到本文

  • P y i = q ( y ∣ x i ) 1 N P_{y_i}=q(y|\textbf{x}_i)\frac{1}{N} Pyi=q(yxi)N1 表示由模型估计的、大小为K × N 的联合概率矩阵(N个样本得到的分布)。
  • 类似地,令 Q y i = p ( y ∣ x i ) 1 N Q_{y_i}=p(y|\textbf{x}_i)\frac{1}{N} Qyi=p(yxi)N1表示分配后的联合概率矩阵。

这里放松矩阵Q为transportation polytope上的元素,即
U ( r , c ) : = { Q ∈ R + K × N ∣ Q 1 = r , Q ⊤ 1 = c } (4) U(r,c):=\{Q\in\mathbb{R}_+^{K\times N}|Q\textbf{1}=r,Q^\top\textbf{1}=c\} \tag{4} U(r,c):={QR+K×NQ1=r,Q1=c}(4)

其中, 1 \textbf{1} 1表示具有合适维度的全1向量,所以r和c是矩阵Q在行和列上的投影。在本方法的例子中,需要Q是均等划分数据的条件概率分布矩阵,即需要满足
r = 1 K 类别数 ⋅ 1 , c = 1 N 样本数 ⋅ 1 r=\frac{1}{K类别数}\cdot\textbf{1},\quad c=\frac{1}{N样本数}\cdot\textbf{1} r=K类别数11,c=N样本数11

使用新的符号重写等式(3)的目标函数为
E ( p , q ) + l o g    N = ⟨ Q , − l o g    P ⟩ ( 5 ) (5) E ( p , q ) + log    N = ⟨ Q , − log    P ⟩ (5) \tag{5} E(p,q)+log  N=Q,log  P(5)(5)

其中,⟨ ⋅ ⟩ 是两个矩阵的Frobenius点积,log应用在每个元素上。

因此,基于目标函数(3)来优化Q等价于求解下面的问题
m i n Q ∈ U ( r , c )    ⟨ Q , − l o g    P ⟩ ( 6 ) min Q ∈ U ( r , c )    ⟨ Q , − log    P ⟩ (6) minQU(r,c)  Q,log  P(6)

这是一个线性规划问题,其可以在多项式时间内求解。在实际求解中,该线性规划可能涉及数百万个样本和上千个类别。传统求解运输问题的算法很难求解这种规模的问题,本文采用了一种称为Sinkhorn-Knopp的快速求解方法。这相当于引入正则化项

min Q ∈ U ( r , c )    ⟨ Q , − log    P ⟩ + 1 λ KL ( Q ∥ r c ⊤ ) (7) \mathop{\text{min}}_{Q\in U(r,c)}\;\langle Q,-\text{log}\; P\rangle+\frac{1}{\lambda}\text{KL}(Q\parallel rc^\top) \tag{7} minQU(r,c)Q,logP+λ1KL(Qrc)(7)

其中,KL 是Kullback-Leibler 散度, r c ⊤ r c^⊤ rc能够被看作是K × N的概率矩阵。添加这个正则化项的好处是,最小化等式(7)能够被重写为,推导过程添加链接描述
Q = d i a g ( α ) P λ d i a g ( β ) (8) Q = diag ( α ) P ^λ diag ( β ) \tag{8} Q=diag(α)Pλdiag(β)(8)

  • 其中,指数操作是元素级别,α 和β是选择的缩放稀疏向量,因此得到的矩阵Q仍然是一个概率矩阵。通过简单的矩阵缩放迭代就能够获得向量α和β。

​ 当λ非常大时,目标函数(7)等价于目标函数(6)。但是,即使只使用适度的λ,两个目标函数也往往具有类似的优化目标。λ的选择是收敛速度和运输问题求解精确度的一个折中。在本文中,使用一个固定的λ是合理的,因此本文感兴趣的是最终聚类和表示学习的结果,而不是准确的求解运输问题。

最终的算法描述

        通过求解等式(6)来学习模型 h ∘ Φ h ∘ Φ hΦ 和标签分配Q,其中Q是概率矩阵,而模型 h ∘ Φ h ∘ Φ hΦ决定了预测结果 P y i = softmax y ( h ∘ Φ ( x i ) ) P_{y_i}=\text{softmax}_y(h\circ\Phi(\textbf{x}_i)) Pyi=softmaxy(hΦ(xi)) 。交替执行两面的两个步骤

步骤1:表示学习

给定一个当前的标签分配Q,通过最小化等式(6)来更新h ∘ Φ 的参数。这相当于普通分类问题的交叉熵损失函数。

步骤2:自标注

给定当前的模型h ∘ Φ ,计算对数概率P PP。然后通过使用等式(8)进行迭代更新来寻找Q
∀ y : α ← [ P λ β ] y − 1 ∀ i : β i ← [ α ⊤ P λ ] i − 1 \forall y:\alpha\leftarrow[P^\lambda\beta]_y^{-1}\quad\forall i:\beta_i\leftarrow[\alpha^\top P^\lambda]_i^-1 y:α[Pλβ]y1i:βi[αPλ]i1

每次迭代更新都涉及到O ( N K )复杂度的矩阵乘法。所以,在数百万样本和上千个标签的情况下,速度也很快。在实际训练中,在ImageNet上使用GPU的话,可以在2分钟内达到收敛。

需要类似Deep一样的对所有样本数据的操作吗?是的

模型解释

​ 如果将数据的索引i ii看作是概率为p ( i ) = 1 / N p(i)=1/Np(i)=1/N的均匀分布随机变量,且后验概率重

最坏情况中最好的

code

  • https://paperswithcode.com/paper/self-labelling-via-simultaneous-clustering-1

CG

  • https://www.youtube.com/watch?v=d64KBkTOV_Q

  • https://papertalk.org/papertalks/4148

  • https://arxiv.org/pdf/1911.05371v3.pdf

  • https://medium.com/machine-intelligence-and-deep-learning-lab/self-labeling-via-simultaneous-clustering-and-representation-learning-6383dbf6f65e

  • https://blog.csdn.net/bqw18744018044/article/details/124218207

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

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

相关文章

线性DP———最长公共子序列问题(LCS)

LCS问题 求两序列具有相同元素的最长子序列&#xff0c;我们可以用到动态规划的方法来解决问题 我们用 来表示序列 与序列 能组成的LCS的长度&#xff0c;的状态转移方程如下&#xff1a; 使用两层for循环就可以解决此问题&#xff0c;时间复杂度为,可以处理n<7000左右…

pycharm里debug时torch数组显示不全

pycharm里查看torch数组全部值 一、在Pycharm运行torch数组时&#xff0c;通常只能看到数组的一部分二、解决办法1、debug后&#xff0c;鼠标右键想要查看完整的数组&#xff0c;选择Evaluate Expression2、输入np.array(x0.data)&#xff0c;x0为想要查看的数组名&#xff0c;…

C#中的抽象类(abstract)

C#中的抽象类&#xff08;abstract&#xff09;。 1&#xff1a;抽象方法只作声明&#xff0c;而不包含实现&#xff0c;可以看成是没有实现体的虚方法 2&#xff1a;抽象类不能被实例化 3&#xff1a;抽象类可以但不是必须有抽象属性和抽象方法&#xff0c;但是一旦有了抽象方…

HTML5学习简记(更新中~)

HTML定义 HTML是一种超文本标记语言&#xff0c;超文本即我们在网页中看到的链接&#xff0c;标记指的是语言中的标签 标签 标签一般成对出现&#xff0c;结束标签比开始标签多一个/ 此外标签一般分为单标签与双标签 HTML基本骨架 其中,HTML标签代表整个网页&#xff0c;hea…

ubuntu迁移anaconda到另外的目录,完美解决问题

背景&#xff1a;anaconda放在/home/下&#xff0c;但是太大了&#xff0c;需要迁移到/data/&#xff0c;找了很多资料&#xff0c;都没解决问题。 一、你可以先做一下尝试&#xff1a; ①拷贝anaconda到你想要的新目录 cp -r /home/anaconda3 /data/ ②将原来的anaconda备…

我国开设大数据相关专业的大学有哪些?

社会对大数据相关专业的人才有着巨大的需求&#xff0c;据预测&#xff0c;到2030年&#xff0c;大数据及相关产业规模达到上万亿元&#xff0c;大数据产业将成为重要的经济增长点。数据是企业最宝贵的资源&#xff0c;大数据分析技术在提升企业经营管理、提高销售业绩、降低管…

微服务组件Sentinel

什么是Sentinel Sentinel 是一种用于流量控制、熔断降级和系统负载保护的开源框架。它由阿里巴巴集团开发并开源&#xff0c;旨在帮助开发人员构建可靠和稳定的分布式系统。 Sentinel 提供了以下主要功能&#xff1a; 流量控制&#xff1a;Sentinel 可以通过限制请求的速率或…

怎么学习Java I/O相关的知识和技术? - 易智编译EaseEditing

要学习Java I/O&#xff08;输入输出&#xff09;相关的知识和技术&#xff0c;可以按照以下步骤进行&#xff1a; 理解Java I/O基础知识&#xff1a; 首先&#xff0c;了解Java I/O的基本概念和术语&#xff0c;包括输入流和输出流、字节流和字符流、文件读写等。掌握Java中…

1.12 springboot 整合log4j打印日志

1.除去springboot自带的日志 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><!-- 除去springboot自带的日志 --><exclusion><groupId>org.sprin…

vxe 行编辑自动加载行级别的下级下拉框数据

效果&#xff1a;进入编辑的时候自动根据ID带出下级下拉框 实现思路&#xff1a;行编辑进入之前&#xff0c;调用加载下拉框的方法 activeRowMethod({ row, rowIndex }) {this.getSpecsList(row.wlid);return ret; }, :edit-config"{trigger: click,mode: row,autoClear…

LT8619B 是一款HDMI转TTL或者2 PORT LVDS的芯片。

LT8619B 1. 概述 LT8619B是龙迅基于清除边缘技术的高性能HDMI接收芯片&#xff0c;符合HDMI 1.4&#xff08;高清多媒体接口&#xff09;规范。RGB 输出端口可支持 RGB888/RGB666/RGB565 格式&#xff0c;输出分辨率最高可支持 4Kx2K 分辨率。凭借可编程标量&#xff0c;LT86…

Python爬虫之Scrapy框架系列(23)——分布式爬虫scrapy_redis浅实战【XXTop250部分爬取】

目录&#xff1a; 1.实战讲解&#xff08;XXTop250完整信息的爬取&#xff09;&#xff1a;1.1 使用之前做的完整的XXTOP250项目&#xff0c;但是设置为只爬取一页&#xff08;共25个电影&#xff09;,便于观察1.2 配置settings文件中使用scrapy_redis的必要配置&#xff0c;并…

git -- SSL certificate problem

SSL certificate problem 1.问题描述 新建一个仓库&#xff0c;在向里面上传文件时&#xff0c;出现SSL证书问题 2.解决方法 这个问题是由于没有配置信任的服务器HTTPS验证。默认&#xff0c;cURL被设为不信任任何CAs&#xff0c;就是说&#xff0c;它不信任任何服务器验证。…

概率论的学习和整理--番外12:一个经典dubo模型的概率计算等

目录 1 经典模型知识科普 1.1 知识来源 1.2 下面是摘取的部分规则 2 这个经典dubo的概率和期望 2.1 网上计算的概率&#xff0c;期望全是负&#xff0c;赌徒悲剧 2.2 为什么会这样呢 3 假设把下注庄家不抽水&#xff0c;获得100%收益而不是95&#xff0c;多少次后可以赢…

Java对日志文件进行加密

最近碰到了一个新的需求&#xff0c;生产环境中Java程序部署的服务器会定期清理数据&#xff0c;需要将保存在程序所在服务器上的日志文件挂载到网盘上&#xff0c;但又不想让用户看到日志文件中的信息&#xff0c;因此需要对日志文件中的内容进行加密。 这里&#xff0c;并不是…

详细介绍MATLAB中的图论算法

MATLAB是一种功能强大的编程语言和环境,提供了许多用于图论算法的工具和函数。图论是研究图及其属性和关系的数学分支,广泛应用于计算机科学、网络分析、社交网络分析等领域。在MATLAB中,我们可以使用图论算法来解决各种问题,如最短路径问题、最小生成树问题、最大流问题等…

华为无线ac+ap旁挂二层组网常用配置案例

AC控制器理解配置步骤&#xff1a; capwap source interface Vlanif 100 //源IP回包地址 wlan ssid-profile name test //新建个模版名称为test ssid test //wifi名称 wlan security-profile name test //建立安全模版也叫test security wpa-wpa2 psk pass-phrase admin123 a…

Python 算法基础篇:冒泡排序和选择排序

Python 算法基础篇&#xff1a;冒泡排序和选择排序 引言 1. 冒泡排序算法概述2. 冒泡排序算法实现实例1&#xff1a;冒泡排序 3. 选择排序算法概述4. 选择排序算法实现实例2&#xff1a;选择排序 5. 冒泡排序与选择排序的对比总结 引言 冒泡排序和选择排序是两种常用的排序算法…

使用java创建图片文字模版

场景:公司员工生日到了,给过生日的同事发送邮件附带图片祝福 以下是生成图片模版的代码 package com.yujie;import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO;public class ImageMergeExample {public static vo…

第十五 rabbitmq及数据同步

0.学习目标 了解常见的MQ产品 了解RabbitMQ的5种消息模型 会使用Spring AMQP 利用MQ实现搜索和静态页的数据同步 1.RabbitMQ 1.1.搜索与商品服务的问题 目前我们已经完成了商品详情和搜索系统的开发。我们思考一下&#xff0c;是否存在问题&#xff1f; 商品的原始数据保…