深度学习(入门)03:监督学习

news2024/12/26 3:33:18

1、监督学习简介

监督学习(Supervised Learning)是一种重要的机器学习方法,它的目标是通过“已知输入特征”来预测对应的标签。在监督学习中,每一个“特征-标签”对被称为样本(example),这些样本通常包含明确的标签,用于训练模型。

1. 什么是监督学习?

监督学习的核心在于构建一个模型,将输入特征映射到相应的标签,从而实现预测。举一个简单的例子,假如我们需要预测某位患者是否会心脏病发作,那么“心脏病发作”或“心脏病没有发作”就是标签,而输入特征则可能是患者的生命体征,例如心率、舒张压、收缩压等。

2. 监督学习如何运作?

监督学习的运作基于一个标记过的数据集。这个数据集包含了许多样本,并且每个样本都附带真实标签。通过训练过程,模型能够学习并近似估计给定输入特征的条件概率。这种方法广泛应用于工业场景中,因为许多问题都可以被描述为“在已有数据的基础上,估计未知信息”。

常见的应用场景包括:

  • 基于计算机断层扫描(CT)图像预测是否为癌症;
  • 根据英语句子预测正确的法语翻译;
  • 根据本月财务数据预测下个月的股票价格。
3. 监督学习的步骤

监督学习的过程通常可以分为三个主要步骤:

  1. 数据采集与标签:从大量数据样本中随机选取一个子集,并获取每个样本的真实标签。这些标签有时是现成的(如患者的恢复情况),有时需要人工标记(如图像分类)。最终,这些特征和标签构成了训练数据集。

  2. 选择算法并训练模型:选择一个适合的有监督学习算法,并使用训练数据集作为输入,输出一个完成训练的模型。

  3. 模型预测:将之前未见过的样本特征输入到已经训练完成的模型中,使用模型输出的结果作为预测的标签。

下图展示了整个监督学习过程的逻辑结构: 

4. 多种模型与建模决策

监督学习的模型形式多种多样,具体选择取决于输入和输出的类型、大小和数量。例如,在处理不同长度的序列数据时,我们需要使用不同的模型来进行建模。尽管一些模型可能比较简单,但在面对不同类型的问题时,往往需要进行复杂的建模决策。

2、常见的监督学习

2.1回归

回归问题的本质在于预测连续数值型输出。下面我们详细解释一下什么是连续:

“连续”是指输出的值可以在一个连续的数值范围内取任意实数,而不是仅限于某些特定的点或离散的值。简单来说,连续数值是指没有中断或离散的间隔,数据可以在一个区间内平滑变化

例如:

  1. 房价预测:房价可能是100,000美元、250,000美元,甚至可以是123,456.78美元。它可以是任何值,不是固定在某些离散的类别里(比如高价、中价、低价)。

  2. 温度预测:温度可能是23.5℃、24.8℃等,也可以是25.123℃,温度值可以变化为任何小数点后的数,而不是仅限于整度。

  3. 时间预测:比如你预测一个项目完成需要10.5天,输出的时间是连续的,它可以是10天、10.1天、10.2天等等,而不是固定在整数的天数上。

连续 vs 离散

  • 连续:可以取任意数值(例如:1.2、3.456、10.56789……)。
  • 离散:只能取固定的值或类别(例如:1、2、3……,或类别A、类别B)。

因此,连续是指输出的值可以在某个区间内取到任何值,没有跳跃或间断。

具体来说,回归问题的目标是找到一个数学模型,将输入特征(如房屋的面积、卧室数量等)与对应的连续数值标签(如房屋价格、电影评分等)联系起来,使得模型能够根据给定的输入特征对标签进行合理的预测。

总结回归问题的本质有以下几个关键点:

  1. 输出是连续数值:回归问题不同于分类问题,后者的输出是离散的类别标签,而回归问题的输出是实数,可以在某个范围内取任何值。例如,房价、温度、降雨量等都是连续数值,因此属于回归问题。

  2. 特征与标签之间的映射关系:回归模型的任务是学习输入特征与输出标签之间的关系,通常通过拟合一个函数来描述这种关系。这个函数可以是线性的(如线性回归)或非线性的(如多项式回归、神经网络回归等)。

  3. 误差最小化:回归模型的目标是最小化预测值与真实值之间的差距,常见的损失函数是平方误差损失函数,即最小化预测值和实际标签值之间差异的平方和。这个过程帮助模型不断调整参数,提升预测的精确度。

  4. 解决“有多少”类问题:回归问题通常解决涉及“有多少”或“预测数值”的问题,比如“这栋房子的售价是多少?”或“这次手术需要多少时间?”。

因此,回归问题的本质是通过模型学习特征和数值型标签之间的映射关系,最终实现对连续值的准确预测。

2.2分类

分类(Classification)是一种监督学习任务,主要用于解决“哪一个”的问题。分类的目标是将输入数据分配到特定的类别中。换句话说,分类模型会根据给定的特征,预测一个样本属于哪个类别(class)。让我们来详细了解分类。

分类问题的核心是模型根据输入特征预测出每个类别的概率,然后选择概率最大的那个类别作为最终的输出结果。

具体来说:

  • 模型输出的是每个类别的概率,比如对于一个手写数字识别模型,模型可能会输出0是5%的概率,1是10%的概率,2是85%的概率,等等。
  • 最终的预测结果是概率最大的类别。在这个例子中,模型会预测数字是2,因为它的概率(85%)最高。

所以,分类问题中的模型确实会输出概率,但是最终的预测结果是根据概率最高的类别来决定的,不是直接输出最大的概率值本身。

你理解的大部分是对的,正确的表述应该是:分类模型会输出各个类别的概率,最终根据最高的概率来预测样本所属的类别

1. 分类任务的定义

分类问题希望模型能够预测样本属于哪个类别。每个类别代表不同的分类结果,例如在手写数字识别中,类别可以是数字0到9中的任意一个。分类问题的核心就是预测某个样本属于某个特定类别。

2. 分类的基本形式

  • 二项分类(Binomial Classification):这是最简单的分类问题,只有两个类别。比如,判断一张图片是猫还是不是猫,这就属于二项分类。输出结果可能是{0, 1},0代表“不是猫”,1代表“是猫”。

  • 多项分类(Multiclass Classification):当类别多于两个时,分类问题称为多项分类。例如,手写数字识别中,数字从0到9共10个类别,模型需要预测某个数字对应哪一个类别。

3. 分类模型的输出与不确定性

分类模型的输出通常是每个类别的概率值。假设你有一张图片,分类模型可能会预测这张图片是猫的概率为0.9(即90%确定是猫)。这个概率值表达了模型的不确定性:模型越确定某个样本属于某个类别,该类别的概率越高。

即使模型输出的概率最高的类别并不代表它绝对正确。例如,一个毒蘑菇检测分类器预测蘑菇是有毒的概率为0.2,这意味着有80%的概率蘑菇是无毒的,但我们仍然不敢冒险,因为有20%的风险可能是致命的。这说明在某些应用中,我们需要考虑风险而不仅仅是模型的预测概率。

4. 损失函数与分类问题

分类问题中常用的损失函数是交叉熵损失函数(Cross-Entropy Loss)。交叉熵衡量模型预测的概率分布与真实标签分布之间的差异,模型训练的目标是最小化这个差异,使得预测更加准确。

5. 层次分类(Hierarchical Classification)

分类问题并不总是简单的二项或多项分类,有些分类任务需要考虑类别之间的关系,这就是层次分类。在层次分类中,类别之间存在某种结构性或血缘关系。例如,动物分类中,将狮子狗误认为雪纳瑞并不是一个严重的错误,但如果把狮子狗误认为恐龙,显然是不合理的。

层次分类的问题在于错误分类的严重性会因类别的关系不同而不同。例如,将有毒的响尾蛇误认为无毒的乌梢蛇可能是致命的,而错误地将狮子狗当作雪纳瑞则没有那么严重。

6. 分类任务的应用

分类广泛应用于很多实际场景,如:

  • 手写字符识别:判断手写数字属于0到9中的哪个数字。
  • 图片分类:判断一张图片是猫、狗还是其他动物。
  • 文本分类:判断一篇文章的主题类别,比如是体育、政治还是娱乐。

总结:

分类是解决“哪一个”问题的任务,目标是预测一个样本属于哪个类别。它分为二项分类和多项分类,输出的结果是类别的概率分布,模型会根据最高的概率选择最可能的类别。分类任务还可以处理复杂的层次结构,通过考虑类别之间的关系,减少错误分类的严重性。

2.3多标签分类

多标签分类与常见的二项或多项分类不同,它允许每个样本同时属于多个类别。下面是主要内容的概括:

  1. 分类问题的局限性:虽然二项分类和多项分类可以处理简单的任务(如区分猫和狗),但在复杂场景中,单一类别的分类方法可能不够。例如,面对包含多种动物的图像(如图中有猫、公鸡、狗和驴),我们希望模型能识别多个不相互排斥的类别,即多标签分类。

  2. 多标签分类定义:多标签分类的任务是为一个样本分配多个标签。例如,在技术博客上,一篇文章可能会被标记为“机器学习”“云计算”“Linux”等多个相关标签,因为这些概念可以同时出现。

  3. 实际应用

    • 假设你有一张包含猫、狗和树的图片。对于多标签分类:

    • 模型会分别预测图中有“猫”的概率、有“狗”的概率、有“树”的概率。
    • 输出可能是:猫(90%)、狗(85%)、树(95%)。

2.4搜索与排序 

在信息检索领域,如网络搜索,目标不仅是找到相关的结果,还需要对结果进行排序。例如,搜索引擎通过为每个页面分配相关性分数,将最相关的结果放在前面。早期的谷歌使用 PageRank 算法为页面评分,现代搜索引擎则结合机器学习和用户行为来提高搜索结果的准确性和排序质量。

搜索与排序的核心在于找到最相关的结果以合适的顺序呈现给用户。具体来说:

  1. 相关性:在搜索任务中,核心目标是根据用户的查询,从海量数据中检索出最相关的内容。相关性是关键,模型需要评估每个结果与用户查询的匹配度。相关性通常通过机器学习算法、查询关键字与内容的匹配程度、以及用户行为数据来衡量。

  2. 排序:找到相关结果后,排序是另一个核心步骤。不同的结果可能具有不同的相关性,排序的任务是确保最符合用户需求的结果排在前面。排序依赖于相关性分数,也可以结合其他因素,如点击率、页面质量、用户个性化偏好等。

  3. 用户体验:搜索和排序的最终目标是优化用户体验,确保用户在最短的时间内找到最需要的信息。因此,排序不仅要准确反映结果的相关性,还要满足用户的直观需求和行为模式。

总结

搜索的核心在于从海量信息中找到最相关的内容,排序的核心则是确保这些相关结果按照相关性高低排列,以提升用户的检索效率和体验。

2.5序列学习

1. 序列学习的特点

  • 序列学习处理可变长度的输入和输出,与传统机器学习中固定大小的输入和输出不同。模型不仅需要处理当前的输入,还需要记住历史信息,因为输入间往往有顺序或时间上的关系。
  • 常见的应用场景包括:视频处理、语言翻译、语音识别、医学监控等。

2. 序列学习的应用

  • 视频处理:视频由连续帧组成,每帧之间的信息是相关的,模型需要记住前一帧的信息来理解后一帧。
  • 医学监控:病人的生命体征是随时间变化的序列数据,模型需要综合考虑多小时的历史数据做出准确预测。
  • 机器翻译:输入和输出都是文本序列,不同语言的词序和长度通常不一致,模型需要处理序列之间的对齐和转换。
  • 自动语音识别:将音频序列转换为文本,音频帧和文本之间没有一一对应关系,因此模型要将长输入序列压缩成较短的输出文本。

3. 特殊序列学习任务

  • 标记和解析:对文本序列进行标记,比如识别句中的实体(命名实体识别)。
  • 语音识别:从音频输入生成文本输出。
  • 文本到语音:从文本输入生成音频输出,处理从短文本到长音频的转换。
  • 机器翻译:将一个语言的序列转换为另一种语言,可能需要处理输入和输出顺序不一致的问题。

 

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

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

相关文章

视觉分析在垃圾检测中的应用

随着城市化进程的加快,垃圾管理成为现代城市面临的重大挑战。有效的垃圾识别和分类不仅能提升环境保护的效率,还能减少资源浪费。基于视觉分析的垃圾识别算法应运而生,为解决这一问题提供了技术支持。 垃圾识别算法的技术实现主要依赖于深度学…

FreeRTOS-队列

FreeRTOS-消息队列 一、队列简介二、队列相关函数2.1 队列结构体2.2 队列相关API函数 三、队列操作实验 一、队列简介 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递)使用队列的情况下如图,在写、读队列时,会进入临界区&#x…

前端使用vue点击上传文件,传送给后端,后端进行文件接收

一、效果图 前端页面&#xff1a; 在java这边后端的target文件就可以接收到前端发送的文件&#xff0c;文件可以打开 接下来看具体代码是怎么实现的&#xff01; 二、代码部分 Vue代码 <template> <el-upload ref"upload" class"upload-demo&q…

黑马头条day5- 延迟任务精准发布文章

这个过程主要是流程负责 但是我没有仔细的过所有的流程 需要多刷几遍 今天只是照着md文档执行了一下 运行起来没差错 主要实现文章定时发布 通过schedule模块作为延迟队列的任务 通过redis实现的延迟任务 具体 实现还要在多走几遍流程 逻辑一点不清楚 没看网课 这节要多看几遍…

【最大公约数】

题目 思路 g c d ( x , y ) p x , y ∈ [ 1 , N ] gcd(x, y) p\;\;x,y\in[1,N] gcd(x,y)px,y∈[1,N] 转换为 g c d ( x p , y p ) 1 x p , y p ∈ [ 1 , N p ] gcd(\frac{x}{p}, \frac{y}{p}) 1\;\;\frac{x}{p},\frac{y}{p}\in[1,\frac{N}{p}] gcd(px​,py​)1px​,py​∈…

云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展

本文根据2024云栖大会实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a; 王 峰 | 阿里云智能集团研究员、开源大数据平台负责人 李 钰&#xff5c;阿里云智能集团资深技术专家 范 振&#xff5c;阿里云智能集团高级技术专家 李劲松&#xff5c;阿里云…

Vulnhub靶机:DerpNStink: 1

0x01 项目地址 DerpNStink: 1 0x02 靶机描述 Your goal is to remotely attack the VM and find all 4 flags eventually leading you to full root access. Dont forget to #tryharder 您的目标是远程攻击虚拟机并找到所有 4 个 flag &#xff0c;最终让您获得完全 root 访…

Updates were rejected because the tip of your current branch is behind 的解决方法

1. 问题描述 当我们使用 git push 推送代码出现以下问题时&#xff1a; 2. 原因分析 这个错误提示表明当前本地分支落后于远程分支&#xff0c;因此需要先拉取远程的更改。 3. 解决方法 1、拉取远程更改 在终端中执行以下命令&#xff0c;拉取远程分支的更新并合并到本地…

SpringBoot学习笔记(1)

1.Web技术基础 BS:(Browser/Server,浏览器/服务器架构模式)。C/S架构主要特点是交互性强&#xff0c;具有安全访问模式&#xff0c;网络流量低&#xff0c;响应速度快&#xff0c;因为客户端负责大多数业务逻辑和UI演示&#xff0c;所以也被称为胖客户端&#xff0c;C/S结构的软…

【含文档】基于Springboot+微信小程序 的中心医院用户移动端(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

学习之什么是生成器

什么是生成器&#xff08;Generator&#xff09; 1、是一种数据类型能源源不断地生成数据 2、"惰性"特点:一次生成一个值&#xff0c;而不是生成一个序列 3、生成器一定是迭代器比迭代器更简洁使用生成器表达式创建生成器 from typing import Generator, Iterator,…

【hot100-java】【柱状图中最大的矩形】

R9-栈篇 面积最大矩形的高度一定是 heights 中的元素 简单解释&#xff0c;就是说&#xff0c;最大高度必然是heights中的一个元素&#xff0c;我们假设是h&#xff0c;然后我们基于h&#xff0c;左右拓展&#xff0c;尽量拓展到h越来越高&#xff08;符合单调栈&#xff09;&a…

7.6透视变换

基本概念 在计算机视觉和图像处理领域中&#xff0c;透视变换&#xff08;Perspective Transformation&#xff09;是一种重要的几何变换&#xff0c;用于模拟从一个视角到另一个视角的变换&#xff0c;比如从鸟瞰视角到正面视角的变换。透视变换通常用于图像配准、增强现实、…

ubuntu报错you don‘t have enough free space in /var/cache/apt/archivers.

使用df -h命令查看&#xff1b; 扩充前&#xff0c;dev/sda2的大小&#xff1a; 使用gparted工具对dev/sda2进行扩容

Steam黑神话悟空禁止更新进入游戏的解决方案

首先打开该网站&#xff1a;https://steamdb.info/app/2358720/ 2358720即为游戏ID 网页下翻&#xff0c;找到更新历史&#xff1a;https://steamdb.info/app/2358720/history/ 然后在Steam的steamapps下&#xff0c;找到后缀为2358720的文件&#xff0c;右击记事本打开 将St…

老照片修复工具有哪些?怎么让老照片焕发新光彩?

在那些泛黄的相框中&#xff0c;珍藏着我们最珍贵的记忆。 岁月流转&#xff0c;照片上的影像逐渐模糊&#xff0c;但那份情感却愈发深刻。 如何让这些老照片恢复往日的光彩&#xff0c;让那些珍贵的瞬间再次清晰呈现&#xff1f; 本文将带你探索老照片修复高清的技巧&#…

SpringMVC源码-SpringMVC框架中Spring父容器和SpringMVC子容器加载的流程以及SpringMVC九大内置组件的初始

一、Spring父容器启动 SpringMVC 的项目结构如下: applicationContext.xml spring的配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.o…

Spring Boot 进阶-如何自定义SpringBoot日志配置?

在之前的文章中我们介绍了Spring Boot中的日志框架,并且也介绍了SpringBoot日志框架中日志级别的调整。这篇文章我们主要来介绍关于如何让日志框架更加符合我们自己的需求。那么首先我们就来看一下日志文件输出路径的配置。 如何指定日志文件的输出位置 在Spring Boot中日志是…

Keepalived+MySQL 高可用集群

基础架构如下 准备干净的实验环境 [rootmysql1 ~]# systemctl stop firewalld [rootmysql1 ~]# cat /etc/sysconfig/selinux |grep "SELINUXdisabled" SELINUXdisabled [rootmysql1 ~]# setenforce 0 setenforce: SELinux is disabled [rootmysql1 ~…

动静态库(Linux)

文章目录 前言一、静态库二、动态库三、深入理解动态库总结 前言 我们之前用过c语言的库.Linux中默认的都是使用动态库&#xff0c;如果想要使用静态库&#xff0c;就必须加上-static选项。默认都是安装的动态库&#xff0c;系统中一般没有静态库&#xff0c;如果要使用&#…