2.机器学习问题

news2024/11/26 4:35:29

2.机器学习问题

监督学习

监督学习(supervised learning)擅长在“给定输入特征”的情况下预测标签。 每个“特征-标签”对都称为一个_样本_(example)。 有时,即使标签是未知的,样本也可以指代输入特征。 我们的目标是生成一个模型,能够将任何输入特征映射到标签(即预测)。

监督学习之所以能发挥作用,是因为在训练参数时,我们为模型提供了一个数据集,其中每个样本都有真实的标签。

监督学习的学习过程一般可以分为三大步骤:

  1. 从已知大量数据样本中随机选取一个子集,为每个样本获取真实标签。有时,这些样本已有标签(例如,患者是否在下一年内康复?);有时,这些样本可能需要被人工标记(例如,图像分类)。这些输入和相应的标签一起构成了训练数据集;
  2. 选择有监督的学习算法,它将训练数据集作为输入,并输出一个“已完成学习的模型”;
  3. 将之前没有见过的样本特征放到这个“已完成学习的模型”中,使用模型的输出作为相应标签的预测。

在这里插入图片描述

综上所述,即使使用简单的描述给定输入特征的预测标签,监督学习也可以采取多种形式的模型,并且需要大量不同的建模决策,这取决于输入和输出的类型、大小和数量。 例如,我们使用不同的模型来处理“任意长度的序列”或“固定长度的序列”。

回归

回归(regression)是最简单的监督学习任务之一。

假设有一组房屋销售数据表格,其中每行对应一个房子,每列对应一个相关的属性,例如房屋的面积、卧室的数量、浴室的数量以及到镇中心的步行距离,等等。 每一行的属性构成了一个房子样本的特征向量。 如果一个人住在纽约或旧金山,而且他不是亚马逊、谷歌、微软或Facebook的首席执行官,那么他家的特征向量(房屋面积,卧室数量,浴室数量,步行距离)可能类似于:[600,1,1,60]。 如果一个人住在匹兹堡,这个特征向量可能更接近[3000,4,3,10]…… 当人们在市场上寻找新房子时,可能需要估计一栋房子的公平市场价值。 为什么这个任务可以归类为回归问题呢?本质上是输出决定的。 销售价格(即标签)是一个数值。 当标签取任意数值时,我们称之为_回归_问题,此时的目标是生成一个模型,使它的预测非常接近实际标签值。

总而言之,判断回归问题的一个很好的经验法则是,任何有关“有多少”的问题很可能就是回归问题。

分类

这种“哪一个”的问题叫做**_分类_(classification)问题。 分类_问题希望模型能够预测样本属于哪个_类别(category,正式称为_类_(class))。 例如,手写数字可能有10类,标签被设置为数字0~9。 最简单的分类问题是只有两类,这被称之为_二项分类_(binomial classification)。 例如,数据集可能由动物图像组成,标签可能是猫狗{猫,狗}两类。 回归是训练一个回归函数来输出一个数值; 分类是训练一个分类器来输出预测的类别。**

当有两个以上的类别时,我们把这个问题称为多项分类(multiclass classification)问题。 常见的例子包括手写字符识别$ \mathrm{{0, 1, 2, … 9, a, b, c, …}} $。 与解决回归问题不同,分类问题的常见损失函数被称为交叉熵(cross-entropy)

标记问题

无论模型有多精确,当分类器遇到新的动物时可能会束手无策。

比如 图1.3.3所示的这张“不来梅的城市音乐家”的图像 (这是一个流行的德国童话故事),图中有一只猫、一只公鸡、一只狗、一头驴,背景是一些树。 取决于我们最终想用模型做什么,将其视为二项分类问题可能没有多大意义。 取而代之,我们可能想让模型描绘输入图像的内容,一只猫、一只公鸡、一只狗,还有一头驴。

在这里插入图片描述

学习预测不相互排斥的类别的问题称为多标签分类(multi-label classification)。

搜索

在信息检索领域,我们希望对一组项目进行排序。 以网络搜索为例,目标不是简单的“查询(query)-网页(page)”分类,而是在海量搜索结果中找到用户最需要的那部分。 搜索结果的排序也十分重要,学习算法需要输出有序的元素子集。 换句话说,如果要求我们输出字母表中的前5个字母,返回“A、B、C、D、E”和“C、A、B、E、D”是不同的。 即使结果集是相同的,集内的顺序有时却很重要。

该问题的一种可能的解决方案:首先为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素。PageRank,谷歌搜索引擎背后最初的秘密武器就是这种评分系统的早期例子,但它的奇特之处在于它不依赖于实际的查询。 在这里,他们依靠一个简单的相关性过滤来识别一组相关条目,然后根据PageRank对包含查询条件的结果进行排序。 如今,搜索引擎使用机器学习和用户行为模型来获取网页相关性得分,很多学术会议也致力于这一主题。

推荐系统

另一类与搜索和排名相关的问题是_推荐系统_(recommender system),它的目标是向特定用户进行“个性化”推荐。 例如,对于电影推荐,科幻迷和喜剧爱好者的推荐结果页面可能会有很大不同。 类似的应用也会出现在零售产品、音乐和新闻推荐等等。

在某些应用中,客户会提供明确反馈,表达他们对特定产品的喜爱程度。 例如,亚马逊上的产品评级和评论。 在其他一些情况下,客户会提供隐性反馈。 例如,某用户跳过播放列表中的某些歌曲,这可能说明这些歌曲对此用户不大合适。 总的来说,推荐系统会为“给定用户和物品”的匹配性打分,这个“分数”可能是估计的评级或购买的概率。 由此,对于任何给定的用户,推荐系统都可以检索得分最高的对象集,然后将其推荐给用户。以上只是简单的算法,而工业生产的推荐系统要先进得多,它会将详细的用户活动和项目特征考虑在内。 推荐系统算法经过调整,可以捕捉一个人的偏好。

尽管推荐系统具有巨大的应用价值,但单纯用它作为预测模型仍存在一些缺陷。 首先,我们的数据只包含“审查后的反馈”:用户更倾向于给他们感觉强烈的事物打分。 例如,在五分制电影评分中,会有许多五星级和一星级评分,但三星级却明显很少。 此外,推荐系统有可能形成反馈循环:推荐系统首先会优先推送一个购买量较大(可能被认为更好)的商品,然而目前用户的购买习惯往往是遵循推荐算法,但学习算法并不总是考虑到这一细节,进而更频繁地被推荐。 综上所述,关于如何处理审查、激励和反馈循环的许多问题,都是重要的开放性研究问题。

序列学习

以上大多数问题都具有固定大小的输入和产生固定大小的输出。 例如,在预测房价的问题中,我们考虑从一组固定的特征:房屋面积、卧室数量、浴室数量、步行到市中心的时间; 图像分类问题中,输入为固定尺寸的图像,输出则为固定数量(有关每一个类别)的预测概率; 在这些情况下,模型只会将输入作为生成输出的“原料”,而不会“记住”输入的具体内容。

如果输入的样本之间没有任何关系,以上模型可能完美无缺。 但是如果输入是连续的,模型可能就需要拥有“记忆”功能。 比如,我们该如何处理视频片段呢? 在这种情况下,每个视频片段可能由不同数量的帧组成。 通过前一帧的图像,我们可能对后一帧中发生的事情更有把握。 语言也是如此,机器翻译的输入和输出都为文字序列。

序列学习需要摄取输入序列或预测输出序列,或两者兼而有之。 具体来说,输入和输出都是可变长度的序列,例如机器翻译和从语音中转录文本。 虽然不可能考虑所有类型的序列转换,但以下特殊情况值得一提。

标记和解析。这涉及到用属性注释文本序列。 换句话说,输入和输出的数量基本上是相同的。 例如,我们可能想知道动词和主语在哪里,或者可能想知道哪些单词是命名实体。 通常,目标是基于结构和语法假设对文本进行分解和注释,以获得一些注释。 这听起来比实际情况要复杂得多。 下面是一个非常简单的示例,它使用“标记”来注释一个句子,该标记指示哪些单词引用命名实体。 标记为“Ent”,是_实体_(entity)的简写。

Tom has dinner in Washington with Sally
Ent  -    -    -     Ent      -    Ent

文本到语音。这与自动语音识别相反。 换句话说,输入是文本,输出是音频文件。 在这种情况下,输出比输入长得多。 虽然人类很容易识判断发音别扭的音频文件,但这对计算机来说并不是那么简单。

机器翻译。 在语音识别中,输入和输出的出现顺序基本相同。 而在机器翻译中,颠倒输入和输出的顺序非常重要。 换句话说,虽然我们仍将一个序列转换成另一个序列,但是输入和输出的数量以及相应序列的顺序大都不会相同。 比如下面这个例子,“错误的对齐”反应了德国人喜欢把动词放在句尾的特殊倾向。

德语:           Haben Sie sich schon dieses grossartige Lehrwerk angeschaut?
英语:          Did you already check out this excellent tutorial?
错误的对齐:  Did you yourself already this excellent tutorial looked-at?

无监督学习

到目前为止,所有的例子都与监督学习有关,即需要向模型提供巨大数据集:每个样本包含特征和相应标签值。

比如,老板可能会给我们一大堆数据,然后要求用它做一些数据科学研究,却没有对结果有要求。 这类数据中不含有“目标”的机器学习问题通常被为无监督学习(unsupervised learning)

  • 聚类(clustering)问题:没有标签的情况下,我们是否能给数据分类呢?比如,给定一组照片,我们能把它们分成风景照片、狗、婴儿、猫和山峰的照片吗?同样,给定一组用户的网页浏览记录,我们能否将具有相似行为的用户聚类呢?
  • 主成分分析(principal component analysis)问题:我们能否找到少量的参数来准确地捕捉数据的线性相关属性?比如,一个球的运动轨迹可以用球的速度、直径和质量来描述。再比如,裁缝们已经开发出了一小部分参数,这些参数相当准确地描述了人体的形状,以适应衣服的需要。另一个例子:在欧几里得空间中是否存在一种(任意结构的)对象的表示,使其符号属性能够很好地匹配?这可以用来描述实体及其关系,例如“罗马” − “意大利” + “法国” = “巴黎”。
  • 因果关系(causality)和_概率图模型_(probabilistic graphical models)问题:我们能否描述观察到的许多数据的根本原因?例如,如果我们有关于房价、污染、犯罪、地理位置、教育和工资的人口统计数据,我们能否简单地根据经验数据发现它们之间的关系?
  • 生成对抗性网络(generative adversarial networks):为我们提供一种合成数据的方法,甚至像图像和音频这样复杂的非结构化数据。潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。

与环境互动

机器学习的输入(数据)来自哪里?机器学习的输出又将去往何方? 到目前为止,不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。 这里所有学习都是在算法与环境断开后进行的,被称为_离线学习_(offline learning)。 对于监督学习,从环境中收集数据的过程类似于 图1.3.6。

在这里插入图片描述

强化学习

如果你对使用机器学习开发与环境交互并采取行动感兴趣,那么最终可能会专注于_强化学习_(reinforcement learning)。 这可能包括应用到机器人、对话系统,甚至开发视频游戏的人工智能(AI)。 深度强化学习(deep reinforcement learning)将深度学习应用于强化学习的问题,是非常热门的研究领域。 突破性的深度_Q网络_(Q-network)在雅达利游戏中仅使用视觉输入就击败了人类, 以及 AlphaGo 程序在棋盘游戏围棋中击败了世界冠军,是两个突出强化学习的例子。

在强化学习问题中,智能体(agent)在一系列的时间步骤上与环境交互。 在每个特定时间点,智能体从环境接收一些_观察_(observation),并且必须选择一个_动作_(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后智能体从环境中获得_奖励_(reward)。 此后新一轮循环开始,智能体接收后续观察,并选择后续操作,依此类推。 强化学习的过程在 图1.3.7 中进行了说明。 请注意,强化学习的目标是产生一个好的_策略_(policy)。 强化学习智能体选择的“动作”受策略控制,即一个从环境观察映射到行动的功能。

在这里插入图片描述

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

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

相关文章

手写RPC框架04-过滤器模块实现

源代码地址:https://github.com/lhj502819/IRpc/tree/v5 系列文章: 注册中心模块实现路由模块实现序列化模块实现过滤器模块实现自定义SPI机制增加框架的扩展性的设计与实现 为什么需要过滤器? 目前整个RPC框架的功能基本已经齐全了&…

ArcGIS基础实验操作100例--实验54 Shapfile与Graphic转换

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验54 Shapfile与Graphic转换 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff…

2022天翼数字科技生态大会 五大亮点看永不落幕的“5G物联生态城”

2022天翼数字科技生态大会,近日于线上隆重开幕。大会首次“云”上绽放,将给我们带来一场怎样的科技盛宴? 本次大会,中国电信天翼物联以“智启物联未来”为主题,运用“元宇宙”VR技术,打造虚拟世界中的“5G物…

Netty 创建高性能聊天室 单聊 群聊 websocket

目录 一、简单实现Netty发送消息的案例 二、websocket连接注册用户 三、实现单聊 四、群聊功能 五、案例代码 一、简单实现Netty发送消息的案例 案例一的依赖有&#xff1a;若没springboot项目有自动对应版本&#xff0c;其他版本可以使用maven仓库的最新版本。 <depe…

img的应用

我的目的是&#xff0c;因为图片足够的大&#xff0c;我想让它在一个小盒子里居中显示&#xff0c;所以我这样做了&#xff1a;<style>.text{width: 375px;height: 100px;} </style> <body><div class"text"><img src"./img/5.png&q…

企业为什么要利用数据中台进行数字化转型?_光点科技

近两年“数字化”已经悄悄的替代了“信息化”。那么什么是“企业的数字化转型”&#xff1f;数字化转型是企业战略层面的概念&#xff0c;它并不是追求眼前效益的机灵战术&#xff0c;其本质&#xff0c;是用数字化技术对业务的重构、流程的重构和组织的重构&#xff0c;目的是…

云呐|什么是固定资产?什么是流动资产

什么是固定资产&#xff1f;什么是流动资产&#xff0c;  1、固定资产  属于产品生产过程中用来改变或者影响劳动对象的劳动资料&#xff0c;是固定资本的实物形态固定资产在生产过程中可以长期发挥作用&#xff0c;长期保持原有的实物形态&#xff0c;但其价值则随着企业生…

自己centos7系统制作iso镜像,并新建虚拟机

一、自己centos7系统制作iso镜像 1. 前置工作 将系统安全配置 SELINUX 改为 disabled&#xff0c;否则制作好的镜像无法登陆&#xff01;&#xff01;&#xff01; vim /etc/selinux/config # 将其从 enforcing 改为 disabled SELINUXdisabled2.安装 mondo rescue cd /etc…

正则表达式的使用

什么是正则表达式 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字…

使用VC时一些容易犯的错误

本文迁移自本人网易博客&#xff0c;写于2011年1月13日&#xff0c;使用VC时一些容易犯的错误 - lysygyy的日志 - 网易博客 (163.com)1、在调用其他类中的函数时&#xff0c;需要在当前类中声明一个类对象&#xff0c;但是调用的时候&#xff0c;编译会出错。出现很多符号&…

2023年SQL大厂高频实战面试题(详细解析)

大家好&#xff0c;我是宁一。 已经连续四个周没有休息了&#xff0c;最近主业、副业都是忙碌的巅峰期&#xff0c;晚上11点下班回家&#xff0c;再写课写到凌晨两点。 连续一个多月连轴转&#xff0c;每天最大的愿望&#xff0c;就是睡足觉。 这一阶段终于忙完了~继续来更新SQ…

LongAdder源码【原创+图解+视频讲解】

目录 AtomicLong用法 源码分析 问题 解决 LongAdder用法 高并发下效率测试 原理 源码 add(long x) Striped64的longAccumulate 伪共享 总结 视频讲解&#xff1a; AtomicLong用法 public static void main(String[] args) {AtomicLong i new AtomicLong(0); ​S…

SQL UPDATE 语句

UPDATE 语句用于更新表中的记录。 SQL UPDATE 语句 UPDATE 语句用于更新表中已存在的记录。 SQL UPDATE 语法 UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition; 参数说明&#xff1a; table_name&#xff1a;要修改的表名称。column1, colu…

C++:std::thread:线程用法

1&#xff1a;std::thread的基本用法 最简单的 std::thread用法如下&#xff0c;调用 thread将立即同时开始执行这个新建立的线程&#xff0c;新线程的任务执行完毕之后&#xff0c; main()的主线程也会继续执行。 #include<iostream> #include<thread> #include&l…

一致性hash算法和hash算法的区别和使用场景

1、hash算法使用场景 一般情况下hash算法主要用于&#xff1a;负载均衡&#xff08;nginx 请求转发&#xff0c;scg路由等&#xff09;&#xff0c;分布式缓存分区&#xff0c;数据库分库分表&#xff08;mycat&#xff0c;shardingSphere&#xff09;等。 2、hash算法大致实…

网络编程套接字——udp网络编程

目录 一、预备知识 1.端口 2.TCP协议和UDP协议 3.socket编程接口 ①socket 常见API ②sockaddr结构 二、网络编程 1.UDP网络程序 1.1服务器 ①打印 ②socket​编辑 ③bind ④recvfrom ​编辑 1.2客户端 ①sendto 1.3提升通信的花样性 ①将字符串返还 …

Individual Tree Segmentation Method Based on Mobile Backpack LiDAR Point Clouds

Abstract 单棵树 (IT) 分割对于森林管理、支持森林清查、生物量监测或树木竞争分析至关重要。光探测和测距 (LiDAR) 是这方面的一项突出技术&#xff0c;优于竞争技术。航空激光扫描 (ALS) 经常用于森林记录&#xff0c;在树顶表面显示良好的点密度。尽管使用多回波 ALS 可以收…

【虹科云展厅专题】虹科赋能汽车智能化云展厅——车载以太网/TSN专题

虹科2023年开年福利来了&#xff01; 聚焦前沿技术&#xff0c;【虹科赋能汽车智能化云展厅】正式上线&#xff0c;本次云展厅围绕“汽车以太网/TSN、汽车总线、智能网联、电子测试与验证、自动驾驶”等核心话题&#xff0c;为您带来如临展会现场般的讲演与介绍&#xff0c;更…

Unity入门基础语法

物体的坐标 transform.position 世界坐标 transform.localPosition 相对坐标 设置物体的坐标&#xff1a; this.transform.localPosition new Vector3(1.5f, 0, 2.0f); 帧更新 Update()&#xff0c;称为帧更新 此方法会被游戏引擎定时调用&#xff0c;已更新游戏的状态 …

基于Java+SpringBoot+vue+element实现物流管理系统

基于JavaSpringBootvueelement实现物流管理系统 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系…