什么是机器学习:一次权威定义之旅

这份「零基础」机器学习实战课程,帮你彻底搞懂AI不再迷茫!——深度解析ML-For-Beginners 不仅仅是一份课程,它更是一扇通往未来智能世界的大门,一个帮助你系统掌握机器学习核心技能的“秘密武器”。微软官方出品、GitHub超30000星推荐、项目驱动、内容全面、免费开源——这些亮点共同构成了这份课程无与伦比的价值。无论你是一名学生、在职工程师,还是对AI充满好奇的零基础小白,都将为你提供一条清晰、高效、充满乐趣的学习路径。构建扎实的机器学习知识体系。掌握核心算法的实际应用能力。学会如何解决真实世界中的AI问题。为未来深入学习深度学习、AI工程化打下坚实基础。 阅读详情

在这篇文章中,我想要解决一个很简单的问题:机器学习是什么?

你可能对机器学习感兴趣或者稍稍了解。如果有一天你和朋友或同事聊起机器学习,那么一些人可能会问你“机器学习是什么”。那么,此文的目标就是告诉你一些可参考的定义,以及一个现成的、容易记起的趣味定义。

我们将从了解该领域的权威书籍上关于机器学习的标准定义出发,并且以得出机器学习的一种程序员定义和我们被问及什么是机器学习时一个随时可以使用的现成的笑话为结束。

权威定义

我们先从阅读四本大学课程中常用的机器学习参考书开始。这些是我们的权威定义,它们为我们更加深入地思考这个学科奠定了基础。我选择这四本书来强调该领域的一些有用的、多样的观点。经验告诉我们,这个领域确实是包括很多的方法,因此选择一个合适的角度是取得进展的关键。

Mitchell定义的机器学习

Tom Mitchell在他的《Machine Learning(中文版:计算机科学丛书:机器学习 )》一书的序言开场白中给出了一个定义:

“机器学习这门学科所关注的问题是:计算机程序如何随着经验积累自动提高性能。”

我喜欢这个简单明了的定义,它是我们在帖子最后得出的程序员定义的基础。注意计算机程序这一提法和提到的“自动提高”一词。写程序以改善它们自身,这是挑衅!

他在引言中多次重复提到一个简短的形式体系:

“对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。”

不要让术语的定义把你吓跑,这是一个非常有用的形式体系。我们把这一形式体系作为一个模版,把经验E、任务T和性能度量P列在一张表的顶部,并且列出带有更少歧义的复杂问题。它可以作为一个设计工具来帮助我们清楚的思考收集什么样的数据(E),需要做出什么样的决策(T),以及如何评价结果(P)。这就是我们把它作为一个标准定义的原因。请把它记在心里。

统计学习基础

《The Elements of Statistical Learning: Data Mining, Inference, and Prediction》是由三个斯坦福的统计学家编写的,它自我描述为组织探究他们领域的统计框架。它在前言中写到:

“许多领域都产生了大量的数据,统计学家的工作就是让所有这些数据变得意义:提取重要的模式和趋势,理解“数据在说什么”。我们称之为从数据中学习。”

我所理解的统计学家的工作是,使用统计工具在上下文环境中解译数据。作者似乎想要把机器学习领域中的全部作为辅助工具。有趣的是,他们选择把“数据挖掘”包含在书的标题中。

统计学家从数据中学习,但软件也可以,并且我们是从软件学习到的事情中学习,从由多种多样的机器学习方法做出的决策和得出的结果中学习。

模式识别

Bishop在《 Pattern Recognition and Machine Learning 》的前言中写到:

“模式识别起源于工程学,而机器学习产生于计算机科学。然而这些领域可以看做成是同一领域的两个方面。”

看了这些,你会获得这样一个印象,Bishop从一个工程的角度来到这个领域,后来又采取同样的方法学习和利用了计算机科学。这是一个我们应该效仿的成熟方法。更广泛地说,不管一个方法所宣称的领域,如果它能够通过从数据中学习使得我们获得一个更接近的洞察力或结果,从而更符合我们的需要,那么,我们就称之为机器学习。

算法角度

Marshland在《Machine Learning: An Algorithmic Perspective》中采用了Mitchell对于机器学习的定义。他在序言中提供了一个促使他写下这本书的强有力的解释:

“机器学习最有趣的特征之一就是,它介于几个不同理论学科之间,主要是计算机科学、统计学、数学和工程学。机器学习经常被作为人工智能的一部分来进行研究,这把它牢牢的置于计算机科学中。理解为什么这些算法能够有效工作需要一定的统计学和数学头脑,这往往是计算机科学专业的本科生所缺少的能力。”

这是深刻并有益的。首先,他强调该领域的多学科性质。虽然我们已经从上面的定义中获得了这样一种感觉,但他为我们进一步强调了这一点,机器学习来源于各种各样的信息科学。第二,他强调了过于坚持一个给定的角度的危险性。特别是,算法工程师避开一个方法的数学内部运作原理的情况。毫无疑问,相反的情况,统计学家避开实现和部署的实际问题也是同样受限的。

维恩图解

2010年9月,Drew Conway创建了一个漂亮的维恩图,我发现这个图是很有帮助的。他在解释中评论到,机器学习就是黑客技能、数学和统计学知识的加和。

维恩图

数据科学维恩图。归属于Drew Conway,是一种知识共享许可的非商业归属。

他还把危险区域描述为黑客技能与专业知识的加和。这里,他所指的是,那些了解得足够多的人是危险的。他们能够访问和构建数据,了解这个领域,还能运行一种方法并给出结果,但是他们并不理解结果的含义。我认为这就是Marsland曾经可能暗示的意思。

程序员定义

现在我们来谈谈,要想把所有这些问题分解为具体细节,程序员需要做些什么。首先,我们来看看抵制我们分解和程序的解决方案的复杂问题。这构成机器学习的动力。然后,我们需要找出一个适合于程序员的定义,一个每当其他程序员问我们什么是机器学习时我们就可以使用的定义。

复杂问题

作为一名程序员,你最终将会遇到很多类型的顽固抵制逻辑的、程序的解决方案的问题。我的意思是,对于很多类问题,坐下来写出解决问题所需要的所有条件语句是既不可行也不划算的。

我听到你的程序员大脑在大喊,“亵渎”。

这是真的,以每天的鉴别垃圾邮件问题为例,每当介绍机器学习时,它是一直被使用的例子。当一封邮件到来时,你将怎样写一个程序来过滤垃圾邮件,决定是将它放在垃圾箱还是收件箱中?

你将可能开始收集一些实例并深入研究它们,你将寻找垃圾邮件和非垃圾邮件所特有的模式,你还将会考虑抽象出那些模式以便你的启发式学习将来能够应用到新案例之中。你将会忽视那些永远不会被看到的古怪邮件,你将能够轻松的提高准确率并为边界情况制定特殊的程序。你将反复多次的浏览邮件并抽象出新模式来改善做出的决策。

在那里有一个机器学习算法,所有这些事情都由程序员而不是电脑来完成。这种手动导出的硬编码系统将具有同程序员一样的、从数据中提取规则并将其实现的能力。

这能够做到,但是它将花费太多的资源,而且会是一个持续的噩梦。

机器学习

在上面的例子中,我确信你下定决心寻求自动化的那一部分程序员大脑,能够看到自动化和优化从例子中提取模式这一过程的机会。机器学习方法就是这样一个自动化过程。

在垃圾/非垃圾邮件的例子中,经验E就是我们所收集的邮件,任务T是一个决策问题(也称为分类),它需要标记每一封邮件是否为垃圾邮件,并将其放入到正确的文件夹中。我们的性能度量将是一些类似于准确率之类的、介于0%-100%之间的一个百分比(正确决策数除以总的决策数再乘以100)。

准备这样一个决策程序的过程通常被称为训练,收集到的实例称为训练集,程序即为一个模型,一个把非垃圾邮件从垃圾邮件的分离出来的问题的模型。作为程序员,我们喜欢这个术语,一个模型具有特定的状态并且需要被保持,训练是一个执行一次的过程,也可能会根据需要重新运行,分类是待完成的任务。这些对我们来说都是有意义的。

我们能够看到上面定义中所用到的术语并不是很适合于程序员。从技术上来说,我们写的所有的程序都是一个自动化操作,因此,机器学习是自动化学习的这一说明是没有意义的。

一个现成的小笑话

那么,让我们来看看我们是否可以使用这些片段,构建一个机器学习的程序员定义。

机器学习是一个源于数据的模型的训练过程,最终归纳出一个面向一种性能度量的决策。

“训练一个模型”代表训练实例,“模型”表示通过经验学习获得的状态,“归纳出一个决策”代表基于输入做出决策的能力,并且需要一个用于未来决策的、不可见的预期输入。最后,“面向一种性能度量”是指准备好的模型的针对性需要和定向特性。

我不是诗人,你能想出一个更准确、更简洁的机器学习的程序员定义吗?请留下你的评论。

资源

在帖子中我已经给出了相应的链接,另外,如果你想要进一步深入阅读,我还在下面列出了一些有用的资源。

书籍

下面是我们从中得出定义的四本书籍:

Mitchell,《Machine Learning(中文版:计算机科学丛书:机器学习 )》

Hastie, Tibshirani and Friedman,《The Elements of Statistical Learning: Data Mining, Inference, and Prediction》

Bishop,《 Pattern Recognition and Machine Learning 》

Marsland,《Machine Learning: An Algorithmic Perspective》

还有,Drew Conway与John Myles White合作的一本非常实用和有趣的书,Machine Learning for Hackers  (中文版:机器学习:实用案例解析 )

Keil环境下单片机串口通信实战:如何用printf发送中文(附完整代码) 本文详细解析了在Keil开发环境下,单片机通过串口通信发送中文信息时产生乱码的根本原因及解决方案。核心在于理解并统一编码(如GB2312或UTF-8),并正确重定向printf函数。文章提供了针对STC89C52和STM32F103的完整代码示例,涵盖工程配置、编码设置、调试技巧,帮助开发者实现稳定可靠的中文串口输出。 阅读详情

相关推荐

锐捷交换机堆叠配置举例

一、组网需求: 1)四台S2628G进行堆叠; 2)设备在堆叠前先设置好优先级; 3)使用光口堆叠的设备如RG-S2928G-E相关配置 二、组网拓扑 三、配置要点: 普通堆叠设备不需要配置,只要把堆叠模块和线缆连接好即可 堆叠模块不支持热插拔,即插在模块连上线缆后不能立即生效,需要重启设备才生效。 如果拔掉堆叠插槽后,想再插上模块堆叠,那么必须重启设备才生效 设备堆叠需要协商参数,时间会比较久,请耐心等待 堆叠时设备建议是...

dongsheng_9234的专栏 8283

机器学习的定义

第一个机器学习的定义来自于Arthur Samuel,他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域。

岁寒良木的博客 4105

Conda环境创建报错?教你快速解决Solving environment: failed和ResolvePackageNotFound问题

本文深入解析Conda环境创建中常见的'Solving environment: failed'和'ResolvePackageNotFound'报错原因,并提供从基础到高级的系统化解决方案。涵盖渠道配置、版本通配、环境文件编辑等实用技巧,帮助开发者快速解决conda环境创建问题,提升工作效率。

weixin_28677451的博客 258

机器学习_吴恩达系列:第一节课-机器学习的定义与分类

视频链接:http://open.163.com/movie/2008/1/M/C/M6SGF6VB4_M6SGHFBMC.html 1、机器学习的定义: 给定一个任务 T,一个性能测量方法 P,在经验 E 影响下,P 对 T 的测量结构得到了改进。 2、机器学习一般可以分为 2 类: 监督学习:指对数据的若干特征与若干标签(类型)之间的关联性进行建模的过程;可被分为 回归任务(标签连续) 和 分...

luckycdy的博客 737

uniapp map地图实现marker聚合点,并点击marker触发事件

【代码】uniapp map地图实现marker聚合点,并点击marker触发事件。

weixin_44705979的博客 5437

IDEA中Maven工具栏与命令执行全攻略:高效开发必备技巧

IntelliJ IDEA 作为强大的 Java 开发工具,其 Maven 功能独具优势。Maven 工具栏位于工作区右侧,图标功能丰富,涵盖项目导入、源码处理、依赖操作等。执行 Maven 命令有多种途径,Run Anything 窗口可输入或选目标执行,上下文菜单能右键运行目标,还可创建运行配置,指定命令参数后运行,为开发者高效管理 Maven 项目、便捷执行命令提供有力支持。

2301_82300081的博客 2029

11.11机器学习_介绍和定义

Python语言机器学习工具Scikit-learn包括许多智能的机器学习算法的实现Scikit-learn文档完善,容易上手,丰富的API接口函数Scikit-learn官网:https://scikit-learn.org/stable/#Scikit-learn中文文档:https://scikitlearn.com.cn/scikit-learn中文社区数据量小,数据在sklearn库的本地,只要安装了sklearn,不用上网就可以获取数据量大,数据只能通过网络获取。

gs1we1的博客 4630

NSGA-III相关笔记

NSGA-III目录目的区别NSGA-III的算法流程非支配排序详解归一化详解 目录 NSGA-III基于matlab的实现 参考文献 1.An Evolutionary Many-Objective Optimization Algorithm Using Reference-point Based Non-dominated Sorting Approach,Part I: Solving P...

weixin_42555400的博客 1万+

机器学习基本概念

1. 机器学习的定义 [Mitchell, 1997]对机器学习给出了一个形式化的定义:假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。 2. 机器学习的基本概念 特征向量(feature vector):特征向量是样本的特征属性的集合。 标记(label):标记是一个模型要输出的目标。 维数(dime...

weixin_30239339的博客 258

2026.02.04 AI趋势|原生工作流爆发,智能体重构开发范式

2026年2月4日GitHub Trending榜单迎来关键转变——传统工具链项目占比骤降,AI原生工作流相关项目成为绝对主流。本次Top 20榜单中,超70%项目聚焦AI模型的四大核心能力:上下文增强、任务编排、自治执行、知识闭环。值得关注的是,Claude生态(如claude-mem)与OpenAIskills框架形成跨厂商协同,尽管设计理念有差异,但共同推动多模型智能体(Multi-Model Agent)成为新一代软件基础设施,AI开发正式从“单点调用”迈入“系统级编排”时代。

lpfasd123的博客 345

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 904

ONNX 传统机器学习算子集(ai.onnx.ml)权威指南:算子规格、参数详解与源码实现

`ai.onnx.ml` 是 ONNX 规范中专用于传统机器学习(Traditional ML)的算子域(domain),涵盖特征工程与经典模型推理所需的全部算子,包括特征选择、编码、归一化、缺失值填补,以及线性模型、SVM、树集成等模型的推理算子。本文基于 [docs/Operators-ml.md](https://link.gitcode.com/i/196632489aa5f21cb6fe

gitblog_00292的博客 661

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

机器学习入门捷径:free-ai-resources精选Andrew NG等权威课程对比

free-ai-resources是一个精心整理的免费AI资源库,包含了机器学习、深度学习、数据科学等多个领域的优质课程、数据集和学习工具,特别适合新手快速入门机器学习。通过这个项目,你可以轻松获取Andrew NG等权威专家的课程资源,对比选择最适合自己的学习路径。 [![free-ai-resources资源概览](https://raw.gitcode.com/gh_mirrors/fr/

gitblog_01005的博客 897

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Best-of-ML-Python: 精选机器学习Python库排行榜

Best-of-ML-Python项目为Python机器学习开发者提供了一个宝贵的资源。通过这个精心策划的列表,开发者可以更轻松地找到适合自己项目的工具,提高开发效率。无论您是机器学习领域的新手还是经验丰富的专家,这个项目都值得您花时间深入探索。

2401_87458778的博客 759

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

探索机器学习的旅程:ML-Roadmap 项目推荐

探索机器学习的旅程:ML-Roadmap 项目推荐 在人工智能的浪潮中,机器学习已成为推动技术革新的核心力量。对于渴望深入这一领域的开发者来说,找到一条清晰的学习路径至关重要。今天,我们将向您推荐一个精心策划的开源项目——ML-Roadmap,它将引领您从机器学习的初学者成长为专业开发者。 项目介绍 ML-Roadmap 是一个全面的学习路线图,旨在帮助开发者系统地掌握机器学习的核心概念、技术和实...

gitblog_01192的博客 325

【GitHub项目推荐--Best of ML Python:机器学习Python库精选榜单】

​​​​ 是一个权威的机器学习Python库排名列表,由Lukas Masuch创建和维护。该项目精心收录了920个优秀的开源机器学习项目,总计获得超过500万颗GitHub星星,涵盖34个不同类别。所有项目都通过项目质量评分系统进行排名,该评分基于从GitHub和各种包管理器自动收集的各种指标计算得出。无论您是机器学习初学者还是经验丰富的从业者,这个列表都能帮助您快速找到最适合需求的工具和库。🔗 ​GitHub地址⚡ ​核心价值​:权威排名 · 全面覆盖 · 实时更新 · 开源免费。

j8267643的博客 1094

金融机器学习利器:finance_ml 项目推荐

`finance_ml` 是一个基于 Python 的开源项目,旨在为量化金融领域提供机器学习辅助功能的实现。该项目灵感来源于两本权威书籍:《Advances in Financial Machine Learning》和《Machine Learning for Asset Managers》,均由 Marcos Lopez de Prado 撰写。通过 `finance_ml`,开发者可以轻松

gitblog_00763的博客 1190

终极金融机器学习指南:从零开始掌握Finance_ML的核心应用

Finance_ML是一个基于Marcos Lopez de Prado的《Advances in Financial Machine Learning》和《Machine Learning for Asset Managers》实现的Python库,专为量化金融领域提供机器学习辅助功能。本文将带你探索这个强大工具的核心功能、安装方法和实际应用场景,帮助你快速入门金融机器学习。 ## 🚀 为什

gitblog_00058的博客 590

[特殊字符] 终极机器学习实战指南:Hands-on ML3权威教程解析

**机器学习教程**是当今数据科学家和AI爱好者必备的学习资源,而Hands-on ML3项目正是这一领域的标杆之作。这个开源项目提供了完整的Python机器学习实践教程,通过Jupyter笔记本形式,系统讲解从Scikit-Learn到TensorFlow 2的全套技能。无论你是**机器学习入门**新手,还是希望提升技能的开发者,这个项目都能为你提供最实用的学习路径。 ## 📚 项目概述:什

gitblog_00152的博客 322

【亲测免费】 探索金融机器学习的宝库:ML_Finance_Codes项目推荐

探索金融机器学习的宝库:ML_Finance_Codes项目推荐 项目介绍 ML_Finance_Codes是一个专为金融领域机器学习爱好者和从业者设计的开源项目。该项目由Matthew Dixon、Igor Halperin和Paul Bilokon三位专家共同开发,旨在为读者提供与《Machine Learning in Finance: From Theory to Practice》一书配...

gitblog_00072的博客 426

ML-For-Beginners 机器学习入门第一课:从 AI、ML 与深度学习的概念边界,到经典机器学习学习路线

本篇技术指南基于 ML-For-Beginners 课程的第一课(捷克语译文位于 [translations/cs/1-Introduction/1-intro-to-ML/README.md](https://link.gitcode.com/i/1769cdbd27b230de4adcef2359238af2),英文原版位于 [1-Introduction/1-intro-to-ML/READ

gitblog_07550的博客 465

机器学习习题答案资源下载:助你快速掌握ML核心概念与算法

机器学习习题答案资源下载:助你快速掌握ML核心概念与算法 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在机器学习领域,理论与实践的结合至关重要。为了帮助学习者和研究人员深化对机器学习知识的理解,本开源项目提供了全面的机器学习习题答案资源下载。这份资源包含了丰富的习题解析和答案,旨在辅助读者更好地掌握机器学习的基本概念、原理和算法。 项目技术分析 本项目采用最基础的文...

gitblog_06784的博客 979

PySpark ML API 完全指南:Apache Spark 的 DataFrame 机器学习库(pyspark.ml)模块地图与实战速查

本文以 Apache Spark 仓库中官方 API 参考索引 [python/docs/source/reference/pyspark.ml.rst](https://link.gitcode.com/i/50fdf83292d856a03759758011ebaa0e) 为骨架,系统梳理 PySpark 中基于 DataFrame 的机器学习库(MLlib DataFrame-based A

gitblog_00048的博客 360
上一篇: .h头文件 .lib库文件 .dll动态库文件之间的关系
下一篇: Ubuntu-Python安装 scipy,numpy,matplotlib
csshuke
博客等级 码龄16年 1517粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值