开放集学习 Open Set Learning

Open Set Learning

Open Set Learning是一种机器学习的问题设置,它主要关注在实际应用中,测试阶段可能会出现训练阶段未见过的类别的情况

相比于传统的监督学习,Open Set Learning更接近现实世界的情况,因为现实世界中总是有可能出现新的、我们从未见过的类别

原理

在传统的分类问题中,我们假设所有的类别都是已知的,并且在训练数据中已经出现过。
然而,在Open Set Learning中,我们允许在测试阶段出现新的、训练阶段未见过的类别

为了解决Open Set Learning问题,我们需要设计一个模型,这个模型不仅可以对已知的类别进行分类,还能够识别出属于未知类别的样本。这通常需要模型具有一定的异常检测能力。

  • 一种常见的解决Open Set Learning问题的方法是,将其转化为一个二元分类问题:已知类别 vs. 未知类别。在这个设置下,模型需要学习一个决策边界,能够区分已知类别的样本和未知类别的样本。

  • 另一种方法是,使用一种叫做OpenMax的算法。OpenMax首先会计算一个样本属于各个已知类别的概率,然后它会使用这些概率来估计这个样本属于未知类别的概率。

举例

假设你正在开发一个图像分类模型,用于识别图像中的动物。

  • 在你的训练数据中,只包含狗、猫和鸟的图像
  • 然后,在测试阶段,你收到了一个包含鱼的图像

在这个例子中,"鱼"就是一个未知类别,因为模型在训练阶段未见过鱼。

如果你的模型是一个传统的分类模型,它可能会错误地将鱼的图像分类为狗、猫或鸟。

但如果你的模型是一个Open Set Learning模型,它应该能够识别出鱼的图像属于一个未知类别。

总的来说,Open Set Learning是一个非常重要而且有挑战性的问题。

在设计Open Set Learning模型时,我们需要考虑到未知类别的存在,并设计相应的方法来处理这些未知类别。


CV领域的Open Set和Open World区别在哪?

Open SetOpen World的一个分支,属于Open World。

  • 他们之间是包含关系
  • Open World的含义很宽泛,没有明确的定义,核心是面向真实世界的问题解决。而Open Set是有明确的定义的

Open World的意思便是针对真实的世界,这里我们面临许多的情况。

  • 例如Open Set Recognition,即我们在训练模型时候不可能考虑到全部的类别,但是面向真实世界会有一些不在数据集中的类别。
  • 因此我们需要一种模型,在真实世界中一些训练时见过的类别数据可以正常识别,而未见过的类别标注为未知类。
  • Open World也包括其他一些子领域:
    • Incremental learning,真实场景中我们需要不断的更新我们的模型,因此我们需要用到持续学习的技术。
    • Zero shot learning,一些我们没见过的物体,但是通过一些先验知识可以得知,例如虽然没有训练过斑马,但仍然通过提前预知斑马有条纹且像野马从而能识别出斑马。
    • Domain adaption,同样的类别数据,在更换背景或场景情况下,模型是否能很好识别。等等

因此我认为open world包含很多分支,open set是open world的一个子分支。


Open Set Learning和Open World Learning是两种对学习任务的不同设置,它们都考虑了在训练数据中未出现过的类别在测试时的情况,但是在处理这个问题的方式上有所不同。

  • Open Set Learning:在这个设置中,假设在测试阶段可能会出现训练阶段未见过的类别

    • 这个问题的主要挑战是如何设计一个模型,既可以对已知的类别进行准确分类,又能够识别出属于未知类别的样本
    • 一般的解决方法是设计一种决策机制,能够将未知的样本区别于已知的类别。
  • Open World Learning:这个设置更进一步,不仅考虑测试时可能会出现未知的类别,而且还假设系统需要在接收新信息的同时持续学习和适应

    • 也就是说,当出现新类别的样本时,系统不仅需要识别出它们,还需要利用这些新的信息来更新模型,以便能够识别未来的同类样本
    • 这需要模型具有在线学习(Online Learning)或增量学习(Incremental Learning)的能力

例如,在计算机视觉领域,我们可能会有一个人脸识别系统。在Open Set Learning的设置下,如果系统遇到了一个从未见过的人脸,它应该能够识别出这个人脸不属于任何已知的类别。而在Open World Learning的设置下,系统还需要能够学习这个新的人脸,并在未来遇到同一人脸时能够识别出它。



Open Set Learning和Few-Shot Learning

Open Set Learning和Few-Shot Learning都是机器学习中的一种任务设置,但它们的主要关注点和挑战是不同的。

1、Open Set Learning:

Open Set Learning主要关注在测试阶段可能出现训练阶段未见过的类别的问题。

  • 在Open Set Learning中,我们需要一个模型能够将已知类别的样本和未知类别的样本区分开。

例如,假设你正在开发一个图像分类模型,用于识别动物的图片。在训练数据中,你只有狗、猫和鸟的图片。

  • 但在测试阶段,你可能会收到一张鱼的图片。在这种情况下,你的模型需要能够识别出这张图片并不属于任何已知的类别。

2、Few-Shot Learning:

Few-Shot Learning主要关注如何在只有很少的样本的情况下学习一个新的类别。

  • 在Few-Shot Learning中,我们希望模型能够从极少量的样本中捕获到新类别的特征,并在未来的任务中正确地分类这个类别的样本

例如,假设你的图像分类模型在训练阶段已经学习了狗、猫和鸟的类别。

  • 然后,在测试阶段,你收到了一些鱼的图片,你希望你的模型能够从这些图片中学习到鱼这个类别,并在未来遇到鱼的图片时能够正确地分类。

3、总结:

这两个问题的主要区别在于:Open Set Learning主要关注如何处理未知类别的样本,而Few-Shot Learning主要关注如何从极少量的样本中学习一个新的类别。

  • 在实际应用中,我们可能需要同时考虑这两个问题。
  • 例如,在人脸识别的应用中,我们可能会遇到一些我们从未见过的人脸(Open Set Learning),并且我们可能需要从只有一两张图片的情况下学习这个人的特征(Few-Shot Learning)。


Zero-Shot Learning

Zero-Shot Learning是一种更加挑战性的学习问题设定,它需要模型在没有任何示例的情况下识别新的类别。

  • 这需要一种方式来将类别的语义信息传递给模型,通常是通过人类可理解的属性或通过与其他已知类别的相似性

Zero-Shot Learning

Zero-Shot Learning的主要关注点是如何在没有见过任何示例的情况下识别新的类别

  • 这需要一种方式将类别的语义信息传递给模型,通常是通过属性或文本描述。
  • 在Zero-Shot Learning中,我们希望模型能够从已知类别的知识中推断出未知类别的特征。

例如,假设你正在开发一个图像分类模型,用于识别动物的图片。在训练数据中,你有狗、猫和鸟的图片。

  • 然后,在测试阶段,你可能会收到一张斑马的图片,尽管模型在训练阶段未见过斑马,但是你有一个属性描述,比如"斑马是有黑白条纹的四足动物"。
    0 模型需要利用这个描述来识别斑马,尽管它从未直接见过斑马的图片。

总结

Open Set Learning、Few-Shot Learning和Zero-Shot Learning都是处理未见类别的方法,但是他们处理的方式有所不同。

  • Open Set Learning是要求模型能够区分已知类别和未知类别的样本。
  • Few-Shot Learning则是尽管只有少数几个样本,也要求模型能学习并识别新的类别。
  • Zero-Shot Learning更进一步,要求模型能在没有见过任何该类别样本的情况下,仅仅通过属性或者描述信息,就能识别出新的类别


Open Set Learning和Zero-Shot Learning

Open Set Learning和Zero-Shot Learning都是机器学习中的一种任务设置,主要考虑在训练数据中未出现过的类别在测试时的情况,但它们在处理这个问题的方式上有所不同。

1、Open Set Learning

Open Set Learning主要关注在测试阶段可能出现训练阶段未见过的类别的问题

  • 在Open Set Learning中,我们需要一个模型能够将已知类别的样本和未知类别的样本区分开。
  • 这种问题设定更符合实际情况,因为在真实的环境中,我们往往会遇到一些模型在训练时未见过的类别。

2、Zero-Shot Learning

Zero-Shot Learning则更进一步,它不仅要求模型在测试时能处理未见过的类别,而且这些类别在训练阶段是完全没有出现过的,也就是说,模型没有看到过任何这些类别的样本

  • 为了处理这个问题,Zero-Shot Learning通常需要一些额外的信息,如类别的语义描述或者类别间的关系,来帮助模型理解这些新的类别。

例如,在一个图像分类任务中,假设训练数据中只有狗、猫和鸟的图像,然后在测试阶段,我们希望模型能够处理马的图像。

  • 在Open Set Learning的设定下,模型需要能够识别出马的图像并不属于任何已知的类别(狗、猫或鸟)

  • 而在Zero-Shot Learning的设定下,我们可能会给模型提供一些额外的信息,比如一个描述马的语义信息(例如,“马是一种有四条腿和长长的马尾的动物”),然后希望模型能够利用这个信息来正确地识别马的图像


总的来说,Open Set Learning和Zero-Shot Learning的主要区别在于:

  • Zero-Shot Learning需要模型在完全没有见过某个类别的样本的情况下仍能识别该类别
  • 而Open Set Learning则只是要求模型能够区分已知类别和未知类别的样本

猜你喜欢

转载自blog.csdn.net/weixin_43338969/article/details/130851897
今日推荐