如何最简单、通俗地理解什么是机器学习?

news2024/9/29 3:21:16

那就究竟什么是学习呢?诺贝尔经济学奖和图灵奖双料得主、卡耐基梅隆大学的赫伯特 · 西蒙 (Herbert Simon) 教授是这样定义的:“学习是系统通过经验提升性能的过程”。可以看到,学习是一个过程,并且这里有3个关键词,即经验、提升和性能。我们先要明确,学习的目标是提升某个具体性能,例如我们学习开车时,希望能提升自己的车技,这可以通过一些驾驶的测试来获得具体的指标分数。我们还要明确,学习是基于经验的,也就是基于我们经历过的事情,如我们在驾驶过程中遇到的情况以及当时的具体动作和结果,这其实就是数据。因此,如果用较为计算机的语言来描述,学习就是系统基于数据来提升既定指标分数的过程。

有了上述对于学习是怎样一个过程的理解,现在我们就比较好定义机器学习了。根据机器学习泰斗、卡耐基梅隆大学的汤姆 ·米切尔 (Tom Mitchell) 教授的定义,机器学习是一门研究算法的学科,这些算法能够通过非显式编程 (non-explicit programming) 的形式,利用经验数据来提升某个任务的性能指标。 一组学习任务可以由三元组〈任务,指标,数据〉来明确定义。

如果用较为数学的语言来描述机器学习,则对应一个优化问题。针对某一预测任务,其数 据集为D, 对于一个机器学习预测模型f, 预测任务的性能指标可以通过一个函数 T(D,f) 来表 示,那么机器学习的过程则是在一个给定的模型空间F 中,寻找可以最大化性能指标的预测 模型f:

这里的ML(D) 表示机器学习可以被看成是一个输入数据集、输出解决任务算法的算法。

这里说的非显式编程具有哪些特性呢?一般人工智能技术的实现,都是需要人先充分了解 任务和解决方法,并根据具体的解决思路,编写程序来完成该任务。例如地图的导航任务,系 统需要先将城市的路网建模成一个图结构,然后针对具体起点到终点的任务,寻找最短路径, 如使用A* 搜索算法。因此,显式编程需要开发者首先自己可以完成该智能任务,才能通过实 现对应的逻辑来使机器完成它,相当于要事先知道f, 然后直接实现它。这其实大大抬高了人 工智能技术的门槛,它需要有人能解决任务并通过程序来实现解决方法。而有的智能任务是很 难通过这样的方式来解决的,如人脸识别、语音识别这样的感知模式识别任务,其实我们自己 都不清楚人是如何精准识别平时碰到的每个人的脸的,也就更加无法编写程序来直接实现这个 逻辑;亦或是如深海无人艇航行、无人机飞行等人类自己无法完成的任务,自然也无法通过直 接编程来实现。

具体地,在上述优化范式中,我们在模型空间F 中寻找最优模型f* 的过程可以是一个持 续迭代的形式,即

而这个寻找最优模型f 的过程就是机器学习。机器学习的算法对应着从f 迭代到 的程序。

华盛顿大学的佩德罗 · 多明戈斯 (Pedro Domingos) 教授将机器学习比喻成“终极算法”。 因为有了机器学习技术,只需要拥有任务的数据,就可以得到解决任务的算法。这样,程序员 就可以“往后站一步”,从直接编写各类任务具体的算法程序,转为编写机器学习算法程序, 然后在不同任务中,基于任务自身的数据,学习出一个解决该任务的算法(即机器学习模型), 如图1-1所示。

机器学习入门书

动手学机器学习

本书包含4个部分。第一部分为机器学习基础,主要讲解机器学习的基本概念以及两个最 基础的机器学习算法,即KNN 和线性回归,并基于这两个算法讨论机器学习的基本思想和实 验原则。这一部分涵盖了机器学习最基础、最主要的原理和实践内容,完成此部分学习后就能 在大部分机器学习实践场景中上手解决问题。第二部分为参数化模型,主要讨论监督学习任务 的参数化模型,包括线性模型、双线性模型和神经网络。这类方法主要基于数据的损失函数对 模型参数求梯度,进而更新模型,在代码实现方面具有共通性。第三部分为非参数化模型,主 要关注监督学习的非参数化模型,包括支持向量机、树模型和梯度提升树等。把非参数化模型 单独作为一个部分来讨论,能更好地帮助读者从原理和代码方面体会参数化模型和非参数化模型之间的区别和优劣。第四部分为无监督模型,涉及聚类、 PCA 降维、概率图模型、 EM 算法 和自编码器,旨在从不同任务、不同技术的角度讨论无监督学习,让读者体会无监督学习和监 督学习之间的区别。本书的4个部分皆为机器学习的主干知识,希望系统掌握机器学习基本知 识的读者都应该学习这些内容。

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

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

相关文章

【万能模型训练方法】你没看错,就这么简单

1. 只支持DF结构(Liaef结构特殊,不支持true face机制) 2. dst丢各种人脸数据进去,越杂越好,src保持单人数据 3. 训练时把true face参数打开,推荐0.01 你可以在别的DF预训练模型上,按上述方法练。然后就挂机练&#xff…

GaussDB之应用无损透明(ALT)

1. 背景 GaussDB作为一款企业级分布式数据库,提供了“同城跨AZ双活、两地三中心、双集群强一致”等极致的高可用容灾能力。当某个数据库节点由于故障无法对外提供服务时,为了继续保证数据库服务的可用性,JDBC驱动会将业务后续的数据库连接请…

Python入门--变量和数据类型

什么是变量? 在编程中,变量是指内存中的一段存储空间,用于存储数据。使用变量可以方便地存储数据并在程序中进行操作。 如何定义变量? 在Python中,可以使用“”符号来定义变量,例如: a 1 b …

python刷小红书流量(小眼睛笔记访问量),metrics_report接口,原理及代码,以及x-s签名验证2023-08-21

一、什么是小眼睛笔记访问量 如下图所示,为笔记访问量。 二、小眼睛笔记访问量接口 1、url https://edith.xiaohongshu.com/api/sns/web/v1/note/metrics_report 2、payload data{"note_id": note_id,"note_type": note_type,"report_t…

Linux解决RocketMQ中NameServer启动问题

启动步骤可以查看官网,https://github.com/apache/rocketmq 一下说明遇到的问题。 1:ROCKETMQ_HOME问题 根据官网提示进入mq/bin目录下,可以使用./mqnamesrv进行NameServer启动,但是会遇到第一个问题,首次下载Rocket…

变量与条件语句

目录 1、何为变量 变量的基础知识 1.1、取名字 1.2、弱引用和强引用 1.3、read -p 1.4、变量的作用范围 1.5、运算(整数) 1.6、环境变量 1.7、位置变量 1.8、预设变量 2、条件语句 2.1、测试 2.1.1、比较整数数值 2.1.2、字符串比较 2.1.…

“智能监测”进泵房,管理开了“千里眼”

生活水泵房和消防水泵房作为楼宇中的主要基础设施之一,传统的生活水泵房和消防水泵房操作繁琐,需要人工控制,耗费大量成本。泵房的监测和维护工作困难,存在隐患无法及时发现和解决。此外,泵房的设备老化和能效低下&…

积跬步至千里 || 矩阵可视化

矩阵可视化 矩阵可以很方面地展示事物两两之间的关系,这种关系可以通过矩阵可视化的方式进行简单监控。 定义一个通用类 from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pdclass matrix_monitor():def __init…

[C++ 网络协议编程] 域名及网络地址

1. DNS服务器 DNS(Domain Name System):是对IP地址和域名(如:www.baidu.com等)进行相互转换的系统,其核心是DNS服务器。 我们输入的www.baidu.com是域名,是一种虚拟地址,而非实际地…

图论基础和表示(Java 实例代码)

目录 图论基础和表示 一、概念及其介绍 二、适用说明 三、图的表达形式 Java 实例代码 src/runoob/graph/DenseGraph.java 文件代码: src/runoob/graph/SparseGraph.java 文件代码: 图论基础和表示 一、概念及其介绍 图论(Graph Theory)是离散数…

之前windows安装mysql时没有指定配置文件,现需修改默认端口号

一、之前windows安装mysql 在官网下载指定版本的mysql https://downloads.mysql.com/archives/community/ 我下载的绿色版的mysql解压到了D:\mysql-5.7.29-winx64 在系统变量中新建MYSQL_HOME它的值为D:\mysql-5.7.29-winx64 在系统变量中找到Path然后编辑添加%MYSQL_HOME%\…

开学有哪些好用电容笔值得买?ipad触控笔推荐平价

因为有了Apple Pencil,使得iPad就成了一款便携的生产力配件,其优势在于,电容笔搭配上iPad可以让专业的绘画师在iPad上作画,而且还能画出各种粗细不一的线条,对于有书写需求的学生党来讲,还是很有帮助的。但本人不敢想像…

多线程+隧道代理:提升爬虫速度

在进行大规模数据爬取时,爬虫速度往往是一个关键问题。本文将介绍一个提升爬虫速度的秘密武器:多线程隧道代理。通过合理地利用多线程技术和使用隧道代理,我们可以显著提高爬虫的效率和稳定性。本文将为你提供详细的解决方案和实际操作价值&a…

【1-3章】Spark编程基础(Python版)

课程资源:(林子雨)Spark编程基础(Python版)_哔哩哔哩_bilibili 第1章 大数据技术概述(8节) 第三次信息化浪潮:以物联网、云计算、大数据为标志 (一)大数据 大数据时代到来的原因…

options补充

前言 .NET Core 引入了Options模式,使用强类型的类来表达配置项,提供了三种在不同场景下的使用接口: IOptions IOptionsSnapshot IOptionsMonitor 但是常常不知道什么时候使用哪种方式才最合适,接下来我就用代码详细解读一下三种…

Python自动化小技巧20——python代码自动另存为文件

案例背景 我在使用openpyxl写入excel的公式的时候,我发现直接wb.save()存下来后,再进行读取的话,公式格子都是空值,需要手动另存为才会算出数值来...这太麻烦了,我写个周报算数据就是为了用代码自动化...还要手动另存…

「Paraverse平行云」助力数字栩生突破超写实数字人“千言”的实时交互挑战

“超写实数字人”一直是图形学界的圣杯之一,力求在虚拟世界中创造出逼真无比的3D人类角色,并使其能够实时与用户进行互动,营造身临其境的虚拟体验,超写实手语主持人“千言”便是“超写实数字人”领域的佼佼者。 “千言”由数字栩…

2337. 移动片段得到字符串

给你两个字符串 start 和 target ,长度均为 n 。每个字符串 仅 由字符 L、R 和 _ 组成,其中: 字符 L 和 R 表示片段,其中片段 L 只有在其左侧直接存在一个 空位 时才能向 左 移动,而片段 R 只有在其右侧直接存在一个 …

Linux内核学习(四)—— 系统调用(基于Linux 2.6内核)

在现代操作系统中,内核提供了用户进程与内核进行交互的一组接口,这些接口在应用程序和内核之间扮演了使者的角色。这些接口保证了系统的稳定可靠,避免应用程序肆意妄行。 一、与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中…

阿里云——云存储:对象存储管理与安全

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 一.传统存储介绍: 1.存储的发展历史 2.硬盘发展历史与趋势 3.SDD硬盘介…