广义零样本学习综述的笔记

1 Title

        A Review of Generalized Zero-Shot Learning Methods(Farhad Pourpanah; Moloud Abdar; Yuxuan Luo; Xinlei Zhou; Ran Wang; Chee Peng Lim)【IEEE Transactions on Pattern Analysis and Machine Intelligence 2022】

2 conclusion

        Generalized zero-shot learning (GZSL) aims to train a model for classifying data samples under the condition that some output classes are unknown during supervised learning. GZSL leverages semantic information of the seen (source) and unseen (target) classes to bridge the gap between both seen and unseen classes.
        This paper introduce a hierarchical categorization for the GZSL methods and discuss the representative methods in each category. In addition, it discuss the available benchmark data sets and applications of GZSL, along with a discussion on the research gaps and directions for future investigations.

3 Good Sentences

        1、ZSL aims to train a model that can classify objects of unseen classes (target domain) via transferring knowledge obtained from other seen classes (source domain) with the help of semantic information and the semantic information embeds the names of both seen and unseen classes in high-dimensional vectors. (The principle of ZSL and semantic information)
        2、In conventional ZSL techniques, the test set only contains samples from the unseen classes, which is an unrealistic setting and it does not reflect the real-world recognition conditions. In practice, data samples of the seen classes are more common than those from the unseen ones, and it is important to recognize samples from both classes simultaneously rather than classifying only data samples of the unseen classes. This setting is called generalized zero-shot learning (GZSL) (The shortcoming of ZSL and the difference between ZSL and GZSL)


        这篇论文仅回顾了从 2016 年流行到 2021 年初与 GZSL 相关的已发表文章、会议论文、书籍章节和高质量预印本(即 arXiv),最近两年的没有。

1 介绍

        标准深度学习模型只能识别属于在训练阶段见过的类的样本,无法处理未见过的类的样本。而在现实世界中,给大量数据集手动标注标签工作量大(而且大部分需要专业知识),或者直接没有大量数据(濒危动物),还有在训练阶段不存在而在测试阶段存在的类(比如变异的新冠病毒)零样本学习技术(ZSL)为应对这种情况提供了一个很好的解决方案。
        ZSL 旨在训练一个模型,该模型可以通过借助语义信息传递从已知类(源域)获得的知识来对未知类(目标域)的对象进行分类,(比如训练阶段给出熊猫的黑白,栗毛马的外形就就能在测试阶段分类出斑马,而斑马不在训练阶段出现过。)
        语义信息可以是手动定义的属性向量 、自动提取的词向量 、基于上下文的嵌入或它们的组合,语义信息会把将已知类和未知类的名称嵌入高维向量中去。

        在传统的 ZSL 技术中,测试集仅包含来自未知类的样本,这不切实际,它不能反映现实世界的识别条件。在实践中,已知类的数据样本比未知类的数据样本更常见,因此同时识别这两个类别的样本而不是仅对未知类别的数据样本进行分类非常重要。这种设置称为广义零样本学习(GZSL)

2 广义零样本学习概述        

        令分别表示已知类和未知类的数据集。其中表示特征空间X中的D维图像(视觉特征),在X中使用预训练的深度学习模型,比如VGG19,RetNet。则表示语义空间A中的K维语义表示,表示标签空间Y中已知类和未知类的标签集,C_sC_u分别表示已知类和未知类的不同类的种类数量。

在GZSL中,目标是训练出一个模型,能对N_t个测试样例分类,

GZSL方法的训练阶段可以分为两大类设置:归纳(inductive)学习和转导(transductive)学习

        归纳学习:仅利用已知类的视觉特征和语义信息来构建模型
        转导学习:除了已知类信息外,还利用未知类的语义表示和未标记的视觉特征进行学习

在归纳设置中,只有已知类的视觉特征和语义表示( A 和 B )可用。在转导设置中,除了已知类信息之外,还可以访问未知类的未标记视觉样本。但是假设所有未知类的未标记数据都可用是不切实际的,所以转导学习并不是很实用。

语义信息​​​​​​​

        语义信息是GZSL的关键。由于不存在来自未知类的标记样本,所以通常使用语义信息来建立已知类和未知类之间的关系,这样广义零样本学习才能成为可能。语义信息必须包含所有未知类的识别属性,以保证为每个未知类提供足够的语义信息。它还应该与特征空间中的样本相关,以保证可用性。也就是说,在语义空间中,必须包括已知类和未知类的所有语义信息。举个例子,如果未知类里有斑马,那么语义信息就必须包括“黑白花纹”、“马”等信息。
​​​​​​​        在这个语义空间中,可以执行ZSL和GZSL,语义信息可以分为手动定义的属性、词向量和它们的组合

手动定义的属性:包含高级语义信息,使得GZSL能识别所有类,属性准确,但需要人工标注,不适合大规模问题
词向量:从大型文本语料库(例如维基百科)中自动提取,用于表示各种单词之间的异同并描述每个对象的属性,人力需求较小。适用于大规模数据集,但是包含噪声,对模型有损害。

嵌入空间

        ​​​​​​​​​​​​​大多数 GZSL 方法都会学习嵌入/映射函数,以将已知类的低级视觉特征与其相应的语义向量相关联。然后,通过测量嵌入空间中数据样本的原始表示和预测表示之间的相似度,使用学习到的函数来识别新类别。由于属性向量的每个条目都代表该类的描述,所以具有相似描述的类在语义空间中被希望包含相似的属性向量。
        然而,在视觉空间中,具有相似属性的类可能有很大的差异。因此,找到合适的嵌入空间是一项具有挑战性的任务,否则会导致视觉语义歧义问题。
        从类别来说,嵌入空间可以分为欧几里德空间或非欧几里德空间。虽然欧几里得空间更简单,但它容易丢失信息。非欧空间通常基于图网络、流形学习或聚类,通常利用空间之间的几何关系来保存数据样本之间的关系,从内容来说,嵌入空间可以分为:语义嵌入、视觉嵌入和潜在空间嵌入。

语义嵌入:

        

语义嵌入使用不同的约束或损失函数学习从视觉空间到语义空间的(前向)投影函数,并在语义空间中执行分类。语义嵌入的目的是强制语义嵌入属于一个类的所有图像都将映射到一些ground-truth的标签嵌入,语义嵌入获得最佳投影函数后,就可以通过执行最近邻搜索来识别给定的测试图像。

视觉嵌入:

视觉嵌入学习一个(反向)投影函数将语义表示(向后)映射到视觉空间,并在视觉空间中执行分类。目标是使语义表示接近其对应的视觉特征 。在获得最佳投影函数后,可以使用最近邻搜索来识别给定的测试图像。

潜在空间嵌入:

潜在空间嵌入将视觉特征和语义表示投影到公共空间L中,L即潜在空间,以探索不同模态的一些共同语义属性。其目标是将附近每个类的视觉和语义特征投射到潜在空间中。理想的潜在空间应该满足两个条件: (i) 类内紧凑,以及 (ii) 类间分离

具有挑战性的问题

​​​​​​​        在GZSL中,必须解决几个具有挑战性的问题,包括枢纽点问题(hubness problem)【在高维空间中,一部分测试集的类别可能会成为很多数据点的K近邻(KNN),但其类别之间却没什么关系】,映射域迁移问题(projection domain shift problem)【模型使用了已知类样本学习由样例特征空间到类标签语义空间的映射,由于没有测试类的未知类样例可以用于训练,因此,在映射输入样例的时候,就会产生一定的偏差】这个问题在 GZSL 中更严重,因为训练过程中GZSL就有已知类和未知类,在测试阶段,模型会更倾向于将样例分类为已知类中的类而不是未知类的类。
​​​​​​​

为了缓解这个问题,已经提出了几种策略,例如temperature scaling(温度标控)

上图显示了一个理想的无偏映射函数,该函数强制已知和未知类的投影视觉样本在潜在空间中围绕它们自己的语义特征。在实践中,GZSL任务中的训练样本和测试样本是不相交的。这导致仅用已知类数据学习的无偏映射函数可能会将未知类的视觉特征投射到远离其语义特征的地方

3.GZSL方法综述

        GZSL必须解决两个关键问题:(i)如何将知识从已知类转移到未知类(ii) 如何学习一个模型来识别来自已知类和未知类的图像,而无需访问未知类的样本。
​​​​​​​        目前已经提出了许多方法,大致可分为:

  1. ​​​​​​​基于嵌入的方法:学习嵌入空间,将已知类的低级视觉特征与其对应的语义向量相关联。学习到的投影函数用于通过测量嵌入空间中数据样本的原始表示和预测表示之间的相似性水平来识别新类
    ​​​​​​​​​​​​​​
  2. 基于生成的方法:学习一个模型,根据已知类的样本和两个类的语义表示,为未知类生成图像或视觉特征。通过为未知类生成样本,GZSL问题可以转换为传统的监督学习问题。基于单一的同质过程,可以训练模型对属于已知类和未知类的测试样本进行分类,并解决偏差问题。


                                        GZSL方法及其子类对应的方法

因为我是为了之前那篇3D点云数据上的GZSL对比循环网络才看这篇综述的,所以我只关心基于生成的GAN方法,其他的不写了。

​​​​​​​基于生成的方法:生成对抗网络:

        GANs通过使用类条件密度和类先验概率​​​​​​​计算样本的联合分布来生成新的数据样本。GAN由一个生成器一个判别器​​​​​​​组成。其中,生成器用语义属性和随机均匀噪声或者高斯噪声来生成视觉特征。判别器区分真实视觉特征和生成的视觉特征
        当生成器学习 以已知类的语义表示为条件合成的数据样本​​​​​​​后,它可以通过未知类的语义表示来生成数据样本​​​​​​​。然而,GAN有个常见问题:模式坍缩【生成的样本中出现一模一样的样例】这是因为GAN中没有明确的损失。

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

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

相关文章

【DevOps-05】Integrate工具

一、简要说明 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。 二、Jenk…

HPM6750开发笔记《DMA接收和发送数据UART例程深度解析》

目录 概述: 端口设置: 代码分析: 运行现象: 概述: DMA(Direct Memory Access)是一种计算机系统中的数据传输技术,它允许数据在不经过中央处理器(CPU)的直…

Vue2:修改默认配置的方法

一、前情概要 之前我们说到,用vue-cli创建vue项目之后,项目结构大概是这样的。其中,标红部分的文件是非常重要的结构文件,不建议修改文件名。 但是,实际上了,vue是允许修改的。 准备配置文件:v…

软件测试|使用PyMySQL访问MySQL数据库的详细指南

简介 PyMySQL是Python中流行的MySQL数据库驱动程序,它提供了便捷的方法来连接、查询和更新MySQL数据库。本文将为您提供使用PyMySQL访问MySQL数据库的详细指南,包括安装PyMySQL、连接数据库、执行查询和更新操作等。 环境准备 在开始之前,…

编译原理笔记(三)

一、词法分析程序的设计 1、词法分析程序的输出 在识别出下一个单词同时验证其词法正确性之后,词法分析程序将结果以单词符号的形式发送至语法分析程序以回应其请求。 单词符号一般分下列5类: 关键字:如:begin、end、if、whil…

双变量probit模型

1. Probit模型 1.1 模型含义 假设个体只有两种选择,y1或y0。影响选择的变量都包括在向量x中。即线性概率模型为 y值服从两点分布 被认为是连接函数,函数选择具有一定的灵活性。如果为标准正态的累积分布函数,则模型成为Probit模型&#xff…

NACHI机器人模拟示教器如何切换中文

前言 现在开始学习机器人的编程语言,那么要学习会用首先得用模拟示教器来学习,但是全是英文确实比较难受一些些,没有中文来的直观。所以摸透一下如何给示教器更换语言。 具体步骤 步骤一:将中文的汉化包下载下来。具体的下载链…

Spring AOP—通知类型 和 切入点表达式 万字详解(通俗易懂)

目录 一、前言 二、AOP—快速入门 1.动态代理优化 : 2.问题分析 : 3.AOP—基本介绍 : 4.AOP—使用说明 : 5.AOP—入门案例 : 三、AOP—切入点表达式 1.基本说明 : 2.语法格式 : 3.注意事项 : 4.代码演示 : 四、AOP—切入点表达式的更多细节 1.JoinPoint : 1.1 简…

华为HCIE课堂笔记第十三章 IPv6地址配置

目录 第十三章 IPv6地址配置 13.1 IPv6地址无状态自动配置 13.1.1 RS和RA报文格式 13.1.2 RA的Flags字段 13.1.3 地址的生存周期 13.1.4 RA报文中前缀中的Flags 13.2 DHCPv6 13.2.1 DHCPV6的概念 13.2.2 DCHPv6的报文 第十三章 IPv6地址配置 13.1 IPv6地址无状态自动…

ENVI无法打开Landsat8的头文件问题和解决

问题 解决方案 双击打开该xxx_MTL.txt的头文件 第一行GROUP LANDSAT_METADATA_FILE 改为 GROUP L1_METADATA_FILE 按住CTRLF,查找GROUP LEVEL1_PROCESSING_RECORD 会查到两个包含的句子,把这两个中间的部分全部删掉 删除空行后,应该为…

基于Python+Django,开发一款房屋租赁系统

学习文档 学习过程中,遇到问题可以咨询作者 功能介绍 平台采用B/S结构,后端采用主流的PythonDjango进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括:首页、房屋详情页、用户中心模块。…

学习使用js/jquery获取指定class名称的三种方式

学习使用js/jquery获取指定class名称的三种方式 简介一、获取元素的class名称1、通过原生JS获取元素的class名称2、通过Jquery获取元素的class名称 二、应用1、样式修改2、动画效果实现 简介 在开发网页时,我们经常需要通过JS获取元素的class名称进行一些操作&…

IMU用于无人机故障诊断

最近,来自韩国的研究团队通过开发以IMU为中心的数据驱动诊断方法,旨在多旋翼飞行器可以自我评估其性能,即时识别和解决推进故障。该方法从单纯的常规目视检查跃升为复杂的诊断细微差别,标志着无人机维护的范式转变。 与依赖额外传…

Unity中Shader面片一直面向摄像机(个性化修改及适配BRP)

文章目录 前言一、个性化修改面向摄像机效果1、把上一篇文章中求的 Z轴基向量 投影到 XoZ平面上2、其余步骤和之前的一致3、在属性面板定义一个变量,控制面片面向摄像机的类型4、效果 二、适配BRP三、最终代码 前言 在上一篇文章中,我们用Shader实现了面…

Vim 快速指南:高效删除文本行

🧙‍♂️ 诸位好,吾乃诸葛妙计,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &…

阿里巴巴中国站按图搜索1688商品(拍立淘) API(1688.item_search_img)在电商中的前景

一、引言 随着移动互联网的快速发展和普及,越来越多的消费者开始通过手机等移动设备进行购物。在这个背景下,电商企业需要不断创新和改进,以满足消费者的需求和提供更好的购物体验。其中,按图搜索商品的技术成为了电商领域的一个…

C++ 求一个数是否是丑数。

#include<string.h> #include <iostream> using namespace std; int isChou(int num) { if (num < 0) { return 0; } while (num % 2 0) { // 不断除以2&#xff0c;直到不能整除为止 num / 2; } while (num % 3 0) { // 不断除…

操作系统期末复习笔记(持续更新..)

一、操作系统的基本概念 1.1 操作系统概念 控制和管理整个计算机系统的硬件与软件资源。合理地组织、调度计算机的工作与资源。为用户和其他软件提供方便接口与环境的程序集合。 1.2 操作系统的特征 特征&#xff1a;并发&#xff0c;共享&#xff0c;虚拟&#xff0c;异步…

数据结构复习部分机考题-自用

A.二叉树孩子链表法之找家人 题目描述 给出二叉树的孩子链表表示法&#xff0c;根据输入要求&#xff0c;找指定结点的双亲或孩子 输入 第一行输入两个参数&#xff0c;第一个参数n表示树有n个结点&#xff0c;第二个参数r表示根结点的数组下标 接着n行&#xff0c;每行先…

kotlin chunked 和 windowed

kotlin chunked的作用 将集合按照指定的数量分割成多个结合 val numbers listOf(0,1,2,3,4,5,6,7,8,9) //把集合按照一个结合3个元素分割 Log.d("chunked", numbers.chunked(3).toString()) // 打印结果 [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]] kotlin windowed…