有监督,无监督,半监督,弱监督学习
创始人
2025-05-29 09:30:15

0.概述

什么是有监督学习、无监督学习、弱监督学习、半监督学习、强化学习?

随着机器学习问题不断深入人心,人们也将现实中遇到不同的问题分为不同的学习方式,其中,最基础的应属监督学习,无监督学习和强化学习了。

1.有监督学习(supervised learning)

已知数据和其对应的标签,训练一个学习模型或算法,将输入数据映射到标签的过程。监督学习是最常见的学习问题之一,就是人们口中常说的分类问题。比如已知一些图片是猫或狗,一些图片不是相应的类别,那么训练一个算法,当一个新的图片输入算法或模型的时候,能够告诉我们这张图片是猫还是狗。

2.无监督学习(unsupervised learning)

已知数据不知道任何标签,按照一定的偏好,训练一个智能算法,将所有的数据映射到多个不同标签的过程。相对于有监督学习,无监督学习是一类比较困难的问题,所谓的按照一定的偏好,是比如特征空间距离最近,等人们认为属于一类的事物应具有的一些特点。

无监督学习典型如常见的十种聚类算法,K-means,DBSCAN,GMM等。

3.半监督学习(semi supervised learning)

已知数据和部分数据一一对应的标签,有一部分数据的标签未知,训练一个智能算法,学习已知标签和未知标签的数据,将输入数据映射到标签的过程。半监督通常是一个数据的标注非常困难,比如说医院的检查结果,医生也需要一段时间来判断健康与否,可能只有几组数据知道是健康还是非健康,其他的只有数据不知道是不是健康。那么通过有监督学习和无监督的结合的半监督学习就在这里发挥作用了。

机器学习中常见的就是S3VM模型,在深度学习中,利用数据分布上的模型假设建立一个学习模型对未标签的数据样例进行打标签。通常是两个阶段的训练,先用较小的有标签数据训练一个teacher模型,再用这个模型对(较大规模的)无标签数据逐个预测伪标签,作为Student模型的训练数据。

4.自监督学习(semi supervised learning)

自监督学习的总体流程如图1所示。在自监督训练阶段,首先设计一个预定义的代理任务,该代理任务的伪标签是基于数据的某些属性自动生成的。 然后,对ConvNet进行训练,学习代理任务的目标函数,解决该任务。 在自监督的训练完成之后,将学习到的视觉特征作为预训练模型进一步迁移到后续任务(尤其是当只有相对较小的数据时),以提高性能并克服过拟合的情况。 通常,浅层捕获一般的低级特征,例如边缘,拐角和纹理,而深层捕获与任务相关的高级特征。 因此,在有监督的后续任务训练阶段,仅转移前几层的视觉特征。

自监督的数据来源于其本身,其实就是自己生成一些简单的标签,然后去学习,理论上网络模型可以学习到图像的一些特征信息,然后在这个模型的基础上添加其他任务。

a) 图像数据中分割后的各个区域打乱,然后将它还原为原始图片,类似于拼图游戏。

b) 将图片中某些区域挖空,然后让模型进行预测,使输出的结果尽可能还原输入的图片,类似壁画图像修复。

c) 将图像旋转一定的角度,让模型预测其旋转了多少度,或者将图片旋转0°,90°,180°,270°等四种类别,让模型预测对应的旋转类别。

5.弱监督学习(weakly supervised learning)

已知数据和其对应的弱标签,训练一个智能算法,将输入数据映射到一组更强的标签的过程。标签的强弱指的是标签蕴含的信息量的多少,比如相对于分割的标签来说,分类的标签就是弱标签,如果我们知道一幅图,告诉你图上有一只狗,然后需要你把狗在哪里,狗和背景的分界在哪里找出来,那么这就是一个已知弱标签,去学习强标签的弱监督学习问题。

6.强化学习(reinforcement learning)

智能算法在没有人为指导的情况下,通过不断的试错来提升任务性能的过程。“试错”的意思是还是有一个衡量标准,用棋类游戏举例,我们并不知道棋手下一步棋是对是错,不知道哪步棋是制胜的关键,但是我们知道结果是输还是赢,如果算法这样走最后的结果是胜利,那么算法就学习记忆,如果按照那样走最后输了,那么算法就学习以后不这样走。强化学习典型就是通过试错,给出一个相应的“reward”来训练试错的过程,不断的反馈校正,得到最大的“reward”结果。

相关内容

热门资讯

【Pytorch】使用Pyto... 文章目录1. 题目描述2. 代码实现验证写在最后 1. 题目描述 在这个例子中网络结构如下所示&#...
client-go disco... 1. 概述 discovery包主要用来发现服务器支持的API组、版本和资源的方法,及...
[LeetCode周赛复盘] ... [LeetCode周赛复盘] 第 100 场双周赛20230318 一、本周周赛总结二、 [Easy...
Matlab基础教学入门 Matlab是一种非常强大的数学计算工具,广泛应用于科学和工程领域。本篇文章将介绍一些...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...
条款21:优先考虑使用std:... 让我们先对std::make_unique和std::make_shared做个铺垫。std::ma...
Leetcode 第四天 动态... 来源:力扣(LeetCode) 链接:htt...
MongoDB用户管理授权 文章目录1 角色类型2 注意事项3 给单个数据库授权4 给一个用户授权多个数据库5 其它命令 1 角...
下载、安装JDK、sublim... 直接官网下载,jdk8或者jdk11。配置环境变量:如果不配置环境变量&...
算法的时间复杂度介绍 本文主要算法时间复杂度的相关知识。1 概述算法(Algorithm)是指...
编码方式概括 1.三种码表1.iso8859-1码表:是一种8位的单字节编码方式。它可以表示256个...
YOLOv5源码逐行超详细注释... 前言  本篇文章主要是对YOLOv5项目的验证部分。这个文件之前是叫test.py,后...
centos docker 安... 1、首先安装docker 下面是一键安装脚本 curl -fsSL https://get.dock...
线上操作规范 1.目的    1)为了避免测试线上随意操作给客户造成损失   2)为了...
查找算法之费氏搜寻法 给定一个大小为n的排序数组arr[],并在其中搜索一个元素x。如果x在数组中ÿ...
cv2报错:Unsupport... cv2 报错 error: OpenCV(4.6.0) /io/opencv/modules/img...
DVWA_xss 反射型xsslow直接在输入框输入提前准备的代码,就可以得到回显cookie信息 Me...
音视频开发编程技术(二):音频... 1. 音频简介   上一节讲过,视频的帧率即每秒钟采集多少张图片的概念。同理ÿ...
【Java学习笔记】33.Ja... 前言 本章介绍Java的HashSet及HashMap。 Java HashSet HashSet ...
RabbitMQ基础介绍及同步... 一、同步通讯与异步通讯 大多数情况下会使用同步,对并发没有很高的要求,但...
面试官:整理了一些react的... 请解释一下React生命周期。它们各自的作用是什么? React生命周期是指组件从创建...
【C++进阶】AVL树的实现 文章目录AVL树概念AVL树性质AVL树节点的结构AVL树的插入插入新节点更新整体节点的平衡因子旋转...
缺失的第一个正整数:给定一个未... 给定一个未排序的整数数组,找出其中未出现的最小正整数。 (本文获得CSDN质量评分...
[架构之路-141]-《软考-... 前言:如何“从无到有”设计一个企业信息系统?本文将探索这个话题。第1章 ...
Java进阶2 排序查找与La... 排序查找与Lambda、正则表达式● 导图一、 基础算法1.排序1.1 冒泡排序1.2 选择排序2....
软工2023结对项目——最长英... 项目内容这个作业属于哪个课程2023 年北航敏捷软件工程这个作业的要求在哪里结对编程项目-最长英语单...
学习Java——Linux 5... 目录 Linux 5种IO模型 阻塞式IO模型 非阻塞式IO模型 IO复用模型  信号驱动IO模型 ...
动态场景位姿估计与建图鲁棒性分... 1. 概述 使用SFM或者SLAM方法时,其前提假设是所处场景为静态的,...
【计量经济学】第一次作业(1、... 计量经济学作业 第一次个人作业题目如下: 伍德里奇《计量经济学导论:现代观点》第五版, 第53-55...
Effective C++快速... Effective C++快速复习 习惯 C++ 01 视 C...