当前位置: 首页 > news >正文

这样描述机器学习太实在

当你募集资金的时候,这属于人工智能

当你在招聘时,这属于机器学习

当你执行时,这属于线性回归

调试时,这属于printf()

机器学习与人工智能、深度学习等关系

机器学习一词往往和人工智能与深度学习混用,从这三者提出的时间来看,人工智能(AI,Artificial Intelligence)诞生于二十世纪五十年代,机器学习(ML, Machine Learning)诞生于二十世纪八十年代,深度学习(DL, Deep Learning)概念则是从近些年开始的。

关系

以上包含关系也有不同的描述 ,即认为深度学习部分在机器学习范畴之外,此处不做过多深究。人工智能一词出现在1956年的达特茅斯会议,人工智能先驱的梦想是建造具有人类智能体的软硬件系统,该系统具有人类的智能特征,此为“通用人工智能”的概念。这样的人工智能的梦想曾在影视作品中大放异彩,如《星球大战》中的C-3PO机器人具有人类理性和思考的高级认知能力。不过,至今为止,这种高层次的推理和思想仍然难以实现,退而求其次,目前我们日常能接触到的都属于“狭义的人工智能”,如上所述的人脸识别等,这些都是落地的AI实例。

在人工智能这一宏大愿景的定义下,我们把机器学习描述为实现人工智能的一种方式方法。机器学习是基于已有数据、知识或经验自动识别有意义的模式。

在这样的描述中,也将机器学习和传统软件/普通程序区分开来:机器学习过程中,并没有人为指示机器学习系统如何对未知环境做出决策或预测,这一过程由机器学习中的算法从数据中学得,做出决策的主体是机器学习算法,并且决策或预测是非确定性的结果,一般以概率的形式输出,比如80%的可能性是晴天。相反,常规的应用程序需要软件工程师一句句编写代码,即特定的指令集,指示程序/软件做出确定性的行为,比如输出0或1表示注册成功或失败,做出决策的主体实际是人,程序只是付诸动作的工具。正因为此,机器学习可归属于间接编程,与之对应的是常规编程

深度学习使用多层(一般大于5层)人工神经网络学习数据内部的复杂关系。人工神经网络是生物科学、认知科学等和人工智能结合的产物,在早期的机器学习中就已开始应用,其初衷是在计算机中模拟人类大脑神经元的工作模式。

人类大脑的神经元在百亿级别,通过突触实现彼此交流,从计算的角度看属于计算密集型,这限制了复杂人工神经网络在实践中的应用。随着计算能力的大幅提升,直到2000年后,在多伦多大学的Geoffrey Hinton领导的研究小组不懈研究下,才将深度学习多层的网络结构在现代超级计算机中验证出来,因为Geoffrey Hinton在深度学习领域做出的巨大贡献,他们也被称为深度学习的鼻祖,深度学习三巨头之一(另外两位是Yoshua Bengio和Yann LeCun),三人因此荣获2018年图灵奖 。AlphaGo正是深度学习向世界打得最响亮的一枪。至此,我们可将深度学习看作是实现机器学习的一种技术,属于机器学习的子范畴。相比深度学习,过去的那些只有单层或少层的神经网络则称为浅层学习

对于机器学习的描述,也有专家调侃地发声,以表明某种现象 :

  • 当你募集资金的时候,这属于人工智能;

  • 当你在招聘时,这属于机器学习;

  • 当你执行时,这属于线性回归;

  • 调试时,这属于printf()。

机器学习与传统统计密不可分,两者都是从数据中得出结论。统计学中首先提出数据空间假设(比如数据分布正态)下的参数化求解,同时关心样本量增大至无穷时统计估计的收敛问题;机器学习则尽可能少的对数据分布做出假设,算法作为关键,学习接近数据生成的模型,同时关注有限样本下学习的性能(算法和模型表现)

机器学习与大数据也常常出现在同一场合。当某人提到大数据时,需要看此人背景才能明确其所述大数据的含义。

当此人是大数据相关技术人员,以技术角度描述大数据时,大数据往往指的是数据的存储和分析处理计算的技术,其难点并不在于具体的算法,而在于存储、计算的分布式的系统层级的问题。

这也能从行业中看到针对大量的数据建模往往使用相对简单的算法。相反,对于少量数据,得来珍贵,往往会做大量、精细的分析和处理。我们很难从某一天的天气推测另一天的天气状况,除非拥有“夜观天象”的本领,但如果有大量的天气历史记录数据,使用常规的算法推测另一天的天气状况往往会有更大的把握。从某种意义上说,“大数据不难,小数据才难”有一定的道理。

当此人站在业务的角度出发,大数据的本质往往指的是数据,基于数据的分析挖掘、运营,产生业务价值的方法和策略。

当外行人说大数据时,往往指的是各种数据、海量数据、安全与隐私等更为直观的概念。

机器学习与数据科学(Data Science)关系也非常紧密。笔者看来,数据科学从数据的角度概括了数据有关的活动,涉及的范围比机器学习更广。数据工程、数据可视化、数据集成与提取、转换和加载(ETL,Extract Transform Load)、商业智能(BI, Business Intelligence)、数据产品、大数据等都可以归类到数据科学范畴,是数据里面的“全栈”。

机器学习类别与范式

关于机器学习的定义,下面来自Tom Michael Mitchell的这段话被广泛地引用:“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E”。(译为:“对于某类任务T和性能度量P,如果一个计算机程序在T上其性能P随着经验E而自我完善,那么我们称这个计算机程序从经验E中学习”)

该定义没有突出人类进行机器学习的目的——决策,即,机器学习是计算机根据数据做出或改进预测/行为的方法。但总体来说,机器学习的任务就是围绕TPE展开的。

经验E

经验一词较为抽象,经验可以是文字、图形,也可以是当面交流的对话等,属于知识的范畴。

对于机器学习而言,经验必须表示为计算机可以处理的形式——数据,或者更为计算机底层的说法是:计算机可直接计算的数值,这也是最终进入算法中的形式(向量运算、矩阵运算等)。正因为此,机器学习中涉及大量的数据处理活动:将文字/字符编码为数值、将图像进行数值化处理等,然后进入到算法学习。机器学习中所有数据处理的本质可归结为两条:适合计算机处理和便于机器学习算法学习

当然,除了上述将经验表示为数据的形式外,经验自然还包括人们对问题的看法和见解,它们指导机器学习的过程,包括如何填充空值、如何特征选择、如何选择算法、如何调整算法参数、如何选择和评判最终模型,这是目前机器学习的现状——需要大量人力的参与,机器本身智能有限(狭义的人工智能)。

总之,机器学习E的本质是进行知识和经验的表示和表达,进而在计算机世界里传承

最后需要注意,经验有效的前提条件是:假设我们获得的数据来自真实世界的缩影,同时假设训练数据和未来/未见的数据在相同的特征空间里且具有相同、相近或相关的分布(独立同分布)。即现有的数据/经验在某种程度下具有普适性,可应用在未来或类似的场景,则经验有用。经验/知识的质量(正确性、完整性)将直接影响学习的结果。

任务T

我们根据数据是否带标签列,引出新的概念:有监督学习、无监督学习、半监督学习、强化学习(主动学习/弱监督学习)

  • 有监督学习(Supervised learning) 指的是数据集中带标签列,即公式中的y,由标签列“监督”学习的过程,数据集中明确表明了什么样的X会有什么样的y。学习的成果是将数据拟合成函数或逼近的函数

  • 无监督学习(Unsupervised learning) 指的是数据集中不带标签(没有标签的原因可能是人工标注成本太高或由于缺少先验知识无法标注)。无监督学习的目的往往是发现某种关系,关联规则,没有显式定义目标函数。比如聚类,聚类的目的是把相似的东西聚集在一起,而并不关心聚集的类别是什么,常用算法有K-means、K-medoids等

  • 半监督学习(Semi-Supervised learning) 顾名思义,数据集中部分有标签,部分无标签。这种现象往往是数据获取现实的无奈。为了尽可能多的利用数据,我们需要将部分无标签的数据由某种方法打上伪标签,然后进行学习。在风控领域,信用风险模型中的拒绝演绎就属于这种情况,感兴趣的读者可以参考相关的资料

  • 强化学习(Reinforcement Learning) 强化学习中的智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,具有主动学习的特点,目标是使智能体获得最大的奖赏(预期利益)。强化学习中没有明确的y,取而代之的是奖励信号(奖赏)。这种激励信号没有像有监督学习中标签那样直接和确切,属于弱监督的学习问题。强化学习常和深度学习一起出现,比如机器人智能对话、智能问答、自动驾驶等。

进一步,在有监督的学习中,根据y变量连续或离散的属性可将机器学习任务分为分类和回归

当y变量是连续变量时为回归问题,比如预测房价。

当y变量是离散型变量时对应分类问题,比如预测好与坏。

更进一步,根据y取值的唯一值个数不同,可分为二分类和多分类

根据分类问题的y是否有序,进一步可分为排序问题和非排序问题(分类)

实际上,机器学习任务从不同的维度有不同且丰富的分类方式,足以扰乱初学者的视线。为此,我们再从另外的视角对机器学习任务进行梳理。

  • 生成模型和判别模型

有监督学习方法可以按模型的产生方式分为两种——生成方式和判别方式得到对应的生成模型和判别模型。

生成方式中,对数据的潜在分布做出假设(比如各个特征之间条件独立),然后估计模型参数生成(数据分布)模型

判别式的学习方法是一种与数据分布无关的学习框架,并不需要对数据的分布做出任何假设,也无须刻画数据的潜在分布,而是直接对目标函数进行优化(判别式函数——判别(数据输出结果)的模型)

  • 主动学习和被动学习

强化学习中提到了主动学习(如主动提出样本标注建议),对应的是被动学习。被动学习中的算法只能观察静态的信息/数据而不能影响、引导和改变它

  • 积极和消极学习

积极学习指的是算法在训练阶段,学习到了数据中的规则或模式。模型预测时只需要使用学得的规则或模式直接决策。反之,消极学习并未在经验数据上学得通用化的模式,而是简单地将训练样本存储起来,当新的实例到来时,直接计算新实例与训练数据之间的关系,并据此作出决策,这种方式亦称为基于实例的学习

很明显这种方式需要存储训练样本,模型文件的大小将比积极学习的模型大(很多)。最近邻(kNN,k-Nearest Neighbor)算法就是如此。注意,支持向量机SVM模型也存储部分样例(支持向量),但与消极学习有本质区别。

  • 在线学习和离线学习

在线学习亦称为增量学习(批量模式),指的是随着数据的持续增加,算法具有动态改进以适应新环境的能力,同时又保留对历史的记忆性。反之为我们所常见的离线学习,即所有的训练数据预先给定,当环境变化时需要重构或重建模型,以保持对环境的跟进

  • 迁移学习

数据本质上有随时间迁移的可能性。迁移学习旨在成为当数据不在同一个特征空间或同一分布,且获取新训练数据困难时采取的一种新的学习框架。

  • 线性模型和非线性模型

常见的线性模型有线性回归/逻辑回归、线性的支持向量机(使用核函数将非线性转化为线性)、神经网络基础结构感知器;非线性模型包括基于树的模型,比如决策树、随机森林、多层/深层神经网络等

  • 黑盒模型和白盒模型

从可解释性上描述模型。白盒模型可解释性强,反之为黑盒模型,人们不能直白地理解模型内部是如何做出决策的,比如深层神经网络。

性能P

此处的性能指的是学习任务通过数据学得的模型表现的优劣程度,也是有监督学习任务的评判(无监督学习无法直接评判)方式,以此作为模型评价和模型选择的依据

性能评判过程可能发生在模型训练阶段,也可发生在模型训练后的模型选择阶段。在实践过程中模型性能的评估主要包括3个步骤:确定要进行衡量/比较的数据集,在确定后的数据集上使用模型进行预测/判别,选取适合问题的指标进行评价。

需要注意的是,有的指标值具有特定的含义,不能在模型间进行比较(例如,单位量纲不同);

有的指标则具有普适的特性(例如AUC),能在模型间比较以达到模型选择的目的。

在项目实践中,单一的评价指标可能有失偏颇,我们重点关注一个指标的同时也要关注其他维度。也可以根据业务场景,比如重点关注高分段模型的区分能力,抑或我们也可以建立适合场景的指标体系,进行综合决断。

有时评价指标的选取反映了建模人员的综合能力(看问题的角度),对于那些能够依据机器学习项目的特殊情况,能够自定义评价指标的人员更加出色。

评价指标本质是“度量了预测和真实之间的差异”,理论上来说评价指标也可作为模型训练过程中的损失函数,比如在回归问题中, MSE既可作为评价指标,又可作为损失函数。但作为损失函数,除了要求能表征模型预测和真实的差异关系外,还要求具有良好的数学性质(连续可导等)。更详细的介绍可参考第4章的讲解。

节选自《机器学习:软件工程方法与实现》第一章

 

作者:张春强、张和平、唐振

书号:978-7-111-66922-7

卖点:

  • 作者资深。某大型金融科技集团资深大数据与机器学习技术专家撰写,英国伯明翰大学机器学习教授审校。

  • 视角独特。将软件工程中的方法应用到机器学习实践中,重视方法论和工程实践的融合。全面呈现了机器学习项目开发的完整链路。

  • 注重实践。不是单纯地阐述理论,而是重在实践,介绍了在实际项目中对时间、人力成本等的权衡策略。

推荐语:某大型金融科技集团资深大数据与机器学习技术专家撰写,基于新近Python版本,将软件工程的思想、方法、工具和策略应用到机器学习实践中,提供高质量的代码设计、可直接复用的源码和工业应用框架。

 

 

更多精彩回顾

书讯 | 12月书讯 | 年末上新,好书不断

书单 | 机器人时代已来!推荐几本机器人学硬核好书

干货 | 电商搜索:召回篇

收藏 | 你熟悉的新华书店,已经变样了 | 数字化案例

上新 | 尴尬的游戏用户体验设计师

赠书 | 【第33期】AI+金融=天作之合?

点击阅读全文了解更多AI好书

相关文章:

  • 基于中台架构的新业务建设原则
  • 【独家现场】2020Gdevops全球敏捷运维峰会 · 北京站
  • 【第34期】如何成为一个软件架构师?
  • 为什么Siri总是像个智障?智能助手背后的技术到底有多难?
  • IT之火,下一个25年的技术更迭 | 华章2020年媒体交流会回顾
  • Web前端开发敲门砖 ——《Web前端工程师修炼之道》
  • 8个Python高效数据分析的技巧
  • 为什么“蜥蜴书”是机器学习入门必读书?
  • 互联网消费金融行业从业者的实战指南
  • 中台的本质及中台建设的4点思考
  • 复杂的密码学也可以人人可懂
  • Python循环语句代码逐行详解:while、for、break和continue
  • 基于Vite搭建Electron+Vue3的开发环境
  • 国产首款——飞桨PaddlePaddle深度学习框架介绍
  • “MySQL Analytics Engine”来了
  • ES6系统学习----从Apollo Client看解构赋值
  • ES6之路之模块详解
  • FineReport中如何实现自动滚屏效果
  • HTTP--网络协议分层,http历史(二)
  • JavaScript设计模式系列一:工厂模式
  • JS变量作用域
  • JS专题之继承
  • Nodejs和JavaWeb协助开发
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 创建一个Struts2项目maven 方式
  • 记一次和乔布斯合作最难忘的经历
  • 近期前端发展计划
  • 容器服务kubernetes弹性伸缩高级用法
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (九十四)函数和二维数组
  • (区间dp) (经典例题) 石子合并
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .libPaths()设置包加载目录
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net 提取注释生成API文档 帮助文档
  • .Net接口调试与案例
  • @Valid和@NotNull字段校验使用
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [22]. 括号生成
  • [C/C++]数据结构 栈和队列()
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]
  • [Java、Android面试]_10_Java中==与equal()方法的区别?重写equal()方法?
  • [leetcode]_String to Integer (atoi)
  • [Lucene] Lucene 全文检索引擎简介
  • [SpringBoot系列]NoSQL数据层解决方案
  • [tsai.shen@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复