【无监督学习】0、有监督学习、无监督学习、半监督学习

2023-11-10

一、有监督学习

有监督学习最大的特点就是数据集是带标签的,如有监督分类任务,就是给每张图都分配一个真实标签,表示这张图是 dog、cat 或者是 bird。

而标签的作用就是指导模型训练,告诉模型这是哪个类别

常见算法:分类、回归

二、半监督学习

在实际应用中,获得大量带高质量标签的数据是费时费力的,且有些稀缺样本是非常昂贵的

于是就出现了半监督学习,就是一部分数据带标签,一部分数据不带标签,通过对带标签数据的训练,然后预测出无标签数据的伪标签来进行有监督训练。

三、无监督学习

深度学习中无监督学习的分类:

  • 生成式学习:由数据生成数据,使之在整体或者高级语义上与训练数据相近
    • GAN
    • VAE
  • 对比式学习:不需要关注实例上繁琐的细节,只需要在抽象语义级别的特征空间上学会对数据的区分即可,因此模型以及其优化变得更加简单,且泛化能力更强。

无监督训练最大的特征就是数据没有标签,顾七学习的目标是通过这些无标签的样本来学习数据内在的特征和规律。

无监督最大的特点就是能从一堆动物中将狗分到一个类别中,但却不知道它们是狗

典型的算法就是聚类,聚类就是将相同的一类距离拉近,将不同类的数据距离拉远。

自监督学习:

自监督学习是一种特殊的无监督学习方法,利用辅助任务(pretask)从大规模的无监督数据中挖掘自身的监督信息,来自动生成标签或者特征,从而进行模型训练,其实主要是预训练,将训练好的模型进行迁移或微调后,能解决特定的任务。

自监督学习主要有如下三类:

  • 基于上下文
  • 基于时序
  • 基于对比

3.1 对比式学习

对比学习是自监督学习/无监督学习中的一种形式

对比学习的核心:

  • 不需要类别标签信息
  • 需要代理任务(人为设置的一些规则,数据增强最常用)来定义那些样本是相似的,也就是提供了一个监督信号来训练模型
  • 需要实现的就是将同类目标距离拉近,将不同类目标的距离拉远

有监督学习流程:

  • 输入 x,通过模型计算输出 y
  • 对模型输出 y 和真实label 计算损失
  • 梯度反传指导模型训练

对比学习的范式:代理任务+目标函数

  • 代理任务:解决没有标签的问题,即使用代理任务来定义对比学习的正负样本,对同一个样本 x,经过两个代理任务分别生成两个样本,一般都使用数据增强,如图片随机裁剪、颜色变换、高斯模糊等,生成的这两个样板就是一组正样本对儿
  • 特征提取编码器 f ( . ) f(.) f(.):对这组样本对儿中的两个样本经过同一个编码器,得到两组特征
  • MLP:MLP 的输出会用来计算孙函数
  • 损失函数:使用 infoNCE loss,分子计算正样本对儿的距离,分母计算负样本对儿的距离,当正样本对儿距离越小,负样本对儿距离越大,损失越小
    在这里插入图片描述

代理任务 instance discrimination (个体判别)介绍:认为每张图片都是自己的类

  • 给定一堆数据,在一张图中随机裁剪和数据增强,得到两个图,但这两个图都是来自于同一个图中,那这两个图就是正样本,数据集中的其他图片都是负样本
  • 然后通过一些模型,得到特征,然后在特征上使用对比学习 loss 即可
  • 对比学习最厉害的地方就在于灵活性,可以大开脑洞制定正样本和负样本的规则,比如一个物体的 rgb 图像和深度图像可以被认为正样本,然后扩展到了多模态任务,促成了 CLIP 的出现
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【无监督学习】0、有监督学习、无监督学习、半监督学习 的相关文章

随机推荐

  • java Predicate接口

    Predicate是Java中的一个函数式接口 它代表一个判断逻辑 接收一个输入参数 返回一个布尔值 接口定义 FunctionalInterface public interface Predicate
  • 人工智能机器人是什么编程

    人工智能机器人是什么编程 说起孩子的学习一直都是家长们非常关心和重视的一件事情 家长会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课来说 有的家长对于人工智能机器人是什么编程并不是很清楚 今天我们就一
  • java pointer_Java EE 8 JSON Pointer讲解

    Java EE 8包含JSON处理API的更新 并为最新的JSON标准提供最新的IEFT标准 他们是 JSON Pointer RFC 6901 JSON Patch RFC 6902 JSON Merge Patch RFC 7396 入
  • TCP中 滑动窗口RWND 和 拥塞窗口 CWND的区别

    滑动窗口RWND 和 拥塞窗口 CWND的区别 参考文章 What is CWND and RWND 文章如有错误 希望指正 共同学习 RWND Receiver Window 滑动窗口 滑动窗口技术是TCP的流量控制的核心 存在于TCP的
  • shell的字符串和数字的转化(数字自动做字符串处理,变量名做字符串输出用单引号)

    shell里面怎么样把字符串转换为数字 例如 a 024 1 用 a 2 用let达到 运算效果 let num 0123 echo num 83 3 双括号运算符 a 1 2 echo a 等同于 a expr 1 2 而数字会默认做字符
  • mfc 服务器文件拷贝到本地,mfc服务器客户端间传输文件

    mfc服务器客户端间传输文件 内容精选 换一换 要访问您的文件系统 如果是Linux云服务器 您需要在Linux云服务器上安装NFS客户端后使用挂载命令挂载文件系统 如果是Windows云服务器 您需要在Windows云服务器上安装NFS客
  • 设计模式二三事

    设计模式是众多软件开发人员经过长时间的试错和应用总结出来的 解决特定问题的一系列方案 现行的部分教材在介绍设计模式时 有些会因为案例脱离实际应用场景而令人费解 有些又会因为场景简单而显得有些小题大做 本文会结合在美团金融服务平台设计开发时的
  • 为什么连接HBase报错:Will not attempt to authenticate using SASL (unknown error)?

    问题现象 访问CloudTable的HBase连接不上 出现如下所示的错误信息 Opening socket connection to server 192 168 0 107 192 168 0 107 2181 Will not at
  • Java-主流框架—(1)Spring--IoC

    1 Spring介绍 1 1什么是框架 软件工程框架 经过验证的 具有一定功能的 半成品软件 经过验证 具有一定功能 半成品 1 2框架的作用 1 3Spring是什么 Spring是分层的JavaSE EE应用full stack轻量级开
  • 泛型应用

    region 私有方法
  • flask 框架

    Flask本身只是建立了一个Web框架 很多功能都需要在Flask基础上进行扩展 如果是高手 可以手打一个Flask Extension 普通人可以用已经开源扩展进行二次开发 用过的几个Flask的扩展库 目前为止Flask Securit
  • 【C++】Windows系统&Linux系统获取uuid统一通用代码

    ConsoleApplication1 cpp 定义控制台应用程序的入口点 include stdafx h include
  • Qt进程间通信

    简述 进程间通信 就是在不同进程之间传播或交换信息 通信方式 管道 pipe 管道是一种半双工的通信方式 数据只能单向流动 而且只能在具有亲缘关系的进程间使用 进程的亲缘关系通常是指父子进程关系 有名管道 named pipe 有名管道也是
  • java中访问修饰符的权限

    在java中 最常见的访问修饰符有以下四个 public default 默认 即不写修饰符 protected private 它们主要用来规定所修饰成员的开放程度 用来保护成员不被随意调用和修改 在新建一个类时 只能用public和de
  • 【区块链】深度长文:2018新风口,区块链3.0时代即将来临?

    徐小平说 区块链将掀起一场革命 1月9日 徐小平在真格投资组合群里分享了一段关于拥抱区块链时代的内容 并表示不能外传 被泄露的微信截图 岂料 很快去传了出去 他表示 这本是其与被投公司间的 低调 内容分享 现在被人擅自传出去 也没办法 最后
  • Express基本认识

    express是一个基于nodejs 且快速 开放的一个web开发框架 安装命令 yarn add express 查看express的所有版本 npm view express versions 搭建基本的express程序 const
  • ./configure --prefix=

    一直用这个选项prefix 但不知道 啥意思 转载自 inux安装软件采用源码安装灵活自由 适用于不同的平台 维护也十分方便 源码的安装一般由3个步骤组成 配置 configure 编译 make 安装 make install 具体的安装
  • centos7设置开机为命令行启动

    图形界面默认安装之后 每次启动都是图形界面启动 图形界面需要占用系统大量的内存和CPU资源 对于个人电脑和服务器 将Centos 默认启动改为文本方式 会显著提高运行效率 方法一 不修改默认启动方式 root模式下 init 3 gt 切换
  • sqlserver查看执行计划

    方式一 通过Microsoft sql server management studio工具栏中的 显示估计的执行计划 按钮 选中SQL 然后点击该按钮 SQL就会给我们选中SQL的图形执行计划 方式二 set showplan all o
  • 【无监督学习】0、有监督学习、无监督学习、半监督学习

    文章目录 一 有监督学习 二 半监督学习 三 无监督学习 3 1 对比式学习 一 有监督学习 有监督学习最大的特点就是数据集是带标签的 如有监督分类任务 就是给每张图都分配一个真实标签 表示这张图是 dog cat 或者是 bird 而标签