赠书 | 图解机器学习算法,看这文就够了!
机器学习指的是计算机根据给定的问题、课题或环境进行学习,并利用学习结果解决问题或课题等的一整套机制(图 1-1)。
图 1-1 分类的示意图
与机器学习共同成为热门话题的还有人工智能和深度学习。这里梳理一下它们之间的关系(图 1-2)。人工智能的含义很广泛,是一个综合性系统。机器学习是实现人工智能的一种方法。也就是说,机器学习并非实现人工智能的唯一方法,但是近年来人工智能的研究一般使用机器学习。实现 人工智能的方法还有很多,比如根据事先定好的规则进行数理统计预测等方法。
近年来,一种被称为深度学习的机器学习算法备受关注,以至于出现了这样的误解:提起人工智能,人们想到的就是深度学习。然而,深度学习只不过是机器学习算法的其中一种而已。深度学习在图像识别领域取得了划时代的成果,是当前热门的算法。目前在图像识别领域之外,深度学习也取得了许多成绩。
在进行机器学习时会用到各种各样的算法,需要根据机器学习对象的不同进行选择。本书的目标 就是帮助读者学会选择合适的算法。在理解了各算法的特性后,读者就能实际处理机器学习问题了。
图 1-2 机器学习的包含关系
机器学习的种类
机器学习包含不同的种类。根据不同的输入数据,分类如下。
有监督学习
无监督学习
强化学习
下面我们依次详细地看一下。
有监督学习
有监督学习是将问题的答案告知计算机,使计算机进行学习并给出机器学习模型的方法。这种 方法要求数据中包含表示特征的数据和作为答案的目标数据。
如图 1-3 所示,已有表示特征的身高和体重数据,作为答案的数据是性别(男 / 女)。我们向计算机提供这些数据的组合,使计算机进行学习并给出预测模型。然后,将新的身高和体重数据提供给模型,由模型预测出性别。
预测性别这样的类别的问题叫作分类问题。由于这次是将数据分类到两个类别中,所以叫二元分类;还有将数据分类到更多类别,比如 10 个类别的情况,这样的情况叫作多元分类。这种答案变量不是连续值,而是作为类别数据的离散值的问题就是分类问题(图 1-4)。
此外,表示特征的数据叫作特征值或者特征变量,作为答案的数据叫作目标变量或者标签。
我们身边的一个分类问题的例子就是垃圾邮件过滤。用户判断邮件是否为垃圾邮件的过程就是 打标签的过程,标签数据就是目标变量,邮件的发件人和内容则为特征值。打了标签的数据越多, 机器学习的效果就越好,得到的结果的精度越高。
除了分类问题之外,有监督学习还包括回归问题。如图 1-5 所示,已有表示特征的性别和身高数据,以及答案数据——鞋的尺码。在分类问题中,男和女的标签分别被数值化为 0 和 1,这两个 数值之间的大小关系是没有意义的。与之相对,鞋的尺码 26.5 cm 和 24 cm 之间的大小关系则是有意义的。对这样的数据进行预测的问题就是回归问题。在回归问题中,目标变量是作为连续值处理 的,所以预测值有可能是 23.7 cm 这种不存在的尺码。
第 2 章将详细介绍如表 1-1 所示的有监督学习的算法。
无监督学习
有监督学习是将特征值和目标变量(答案)作为一套数据进行学习的方法,而无监督学习的数据中没有作为答案的目标变量。
有人可能会产生疑问:没有答案,该如何去学习呢?无监督学习将表示特征的数据作为输入,通过将数据变形为其他形式或者找出数据中的部分集合,来理解输入数据的构造。此外,与有监督学习相比,无监督学习的结果难以解释,或者要求分析者基于经验加以主观的解释。有监督学习以 “能否正确预测目标变量”为指标,相比之下,为了能够对结果进行解释,在进行无监督学习时,用户需要对输入数据的前提知识有一定程度的了解。
这里举一个无监督学习的例子。我们思考一下对某个中学的学生成绩进行分析的场景。假设各科目之间存在着这样的关联性:擅长数学的学生也擅长理科,但不擅长语文和文科。
对于这样的输入数据,在使用无监督学习的代表性算法主成分分析(Principal Component Analysis,PCA)时,我们引入了新的轴,以说明被称为第一主成分的数据(关于 PCA,详见 3.1 节)。在第一主成分上的坐标可以解释为“小值表明该生擅长理科,大值表明该生擅长文科”,如 表 1-2 所示,可以将数学、理科、语文、文科这 4 个特征值归纳在 1 个轴上加以展示。
这个例子使用 PCA 通俗易懂地解释了分析结果,但是需要根据输入数据选择合适的算法。近年来,无监督学习的研究在图像和自然语言处理方面取得了进展,是当前备受瞩目的领域 (图 1-6)。这里介绍的 PCA 属于降维算法。降维是以更少的特征值来理解数据的算法。无监督学习中也包括聚类算法。聚类是将数据分类为几个簇(相似数据的集合)的算法。人类很难直接理解多变量数据(由 3 个以上的变量构成的数据),通过聚类,数据能够以簇这种简单的形式进行展现。
第 3 章将详细介绍如表 1-3 所示的无监督学习的算法。通过表 1-3,还可以了解每个算法适合的任务。
强化学习
强化学习是以在某个环境下行动的智能体获得的奖励最大化为目标而进行学习的方法。本书未涉及强化学习。
这里简单地介绍一下强化学习。在主机游戏(环境)中,玩家(智能体)为了获得赛点(奖励)并取得最终的胜利,会无数次地重复尝试。我们也可以把强化学习看作有监督学习的目标变量 被作为奖励提供的情况。拿主机游戏的例子来说,由于全部场景下所有操作的组合实在太多,很难通过人力进行评估,所以可以将游戏的场景和操作作为特征值,将游戏赛点作为目标变量,玩家无须依赖人力,通过无数次的游戏即可自行收集特征值和目标变量的数据组。强化学习在重复地玩游 戏、查看结果中不断学习更恰当的行动。
机器学习的应用
机器学习在各领域的应用都取得了较大进展,比如自动驾驶领域的研究就很有名。在文章的自动分类和自动翻译方面,机器学习成果颇丰。在医疗领域,机器学习对 X 射线影像的分析有助于疾病的早期发现。
此外,很早之前人们就将机器学习应用在气象信息领域了。近年来,随着计算机越来越便宜,数量越来越多,机器学习的研究也在不断加速。互联网产业 的发达和物联网(Internet of Things,IoT)等技术的应用也为机器学习带来了丰富的数据。
本文来自《图解机器学习算法》。
《图解机器学习算法》
[日]秋庭伸也,杉山阿圣,寺田学 著
郑明智 译
赠书福利
你对深度学习感兴趣吗?
欢迎与我们分享
AI科技大本营将选出三名优质留言
携手【图灵出版社】送出
《图解机器学习算法》一本
截止 2021 年 7 月 2 日 14:00
更多精彩推荐
赠书 | GNN 模型在生物化学和医疗健康中的典型应用什么?我要对AI礼貌?人机交互面临的道德漏洞几经沉浮,人工智能前路何方?点分享点收藏点点赞点在看
相关文章:

C#获得文件版本信息及只读文件的删除
获取文件的版本信息: FileVersionInfo myFileVersionInfo1 FileVersionInfo.GetVersionInfo("D://TEST.DLL"); textBox1.Text"版本号: " myFileVersionInfo1.FileVersion; 更改文件属性,删除只读文件: 下例欲将E:/test.txt文件…

组策略 从入门到精通(二) 如何区别跨越WAN网的计算机对组策略的套用
如果客户机与DC中间跨越了网络,造成传输速率慢的情况,我们希望通过策略中的一些元素,达成对这些计算机的另类处理。但我们并不知道这些计算机哪些与我们DC之间属于低速连接,哪些属于高速连接,那么我们要如何通过组策略…

插入记录时单引号的处理
由于Content, Title中可能包含单引号,直接使用sql的insert命令会报错,对此有两种处理方法,一种将单引号替换成两个单引号,第2种方法是使用存储过程。 表myBBS的格式定义如下: CREATE TABLE [dbo].[myBBS] ( [ID] [bi…

仅用 480 块 GPU 跑出万亿参数!全球首个“低碳版”巨模型 M6 来了
继今年 3 月阿里达摩院发布国内首个千亿参数多模态大模型 M6(MultiModality-to-MultiModality MultitaskMega-transformer,以下简称 M6) 之后,6 月 25 日,达摩院宣布对 M6 进行全新升级,带来“低碳版”巨模…

怎样将jpg转换成pdf软件
为什么80%的码农都做不了架构师?>>> 怎样将jpg转换成pdf软件 序言: 企业或个人通常会遇到设备终端软件的兼容性和支持性问题,比如,JPG转PDF文本,这给等于给用户设置了一个门槛,遇到需要将JPG转换…

二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3/ \9 20/ \15 7 按照从下往上的层次遍历为: [[15,7],[…

jquery autocomplete实现solr查询字段自动填充并执行查询
2019独角兽企业重金招聘Python工程师标准>>> 页面引入三个JS: <script type"text/javascript" src"js/jquery-1.7.2.js"></script> <script type"text/javascript" src"js/jquery-ui.js">&l…

C#使用CDO发送邮件
可以引用的COM组件列表,发现里面有一个名为Microsoft CDO For Exchange 2000 Library的COM组件,就是这个,我们可以用它来连接SMTP Server,使用用户名/密码验证发送邮件。 下面是实现的一个例子: Smtp Server使用的Smtp…

干货 | 当 YOLOv5 遇见 OpenVINO,实现自动检测佩戴口罩
YOLOv5网络YOLOv5代码链接:https://github.com/ultralytics/yolov5YOLOv5 于2020年6月横空出世!一经推出,便得到CV圈的瞩目,目前在各大目标检测竞赛、落地实战项目中得到广泛应用。 YOLOv5在COCO上的性能表现:YOLOv5一…

Ubuntu 16.04安装双显卡驱动方法收集
说明:不一定有效,要不断尝试。 http://www.linuxwang.com/html/2150.html http://blog.csdn.net/feishicheng/article/details/70662094>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<

C#中的类型转换
C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,其内容涉及 C# 的装箱/拆箱/别名、数值类型间相互转换、字符的 ASCII 码和 Unicode 码、数值字符串和数值之间的转换、字符串和字符数组/字节数组之间的转换、各种数值…

解构 StyleCLIP:文本驱动、按需设计,媲美人类 P 图师
来源 | HyperAI超神经(ID:HyperAI)作者 | 神经三羊StyleCLIP 是一种新型「P 图法」,它结合了 StyleGAN 和 CLIP,可以仅依据文本描述,对图像进行修改和处理。提起 StyleGAN 大家都不陌生。这个由 NVIDIA 发布的新型生成…

nexus 4 下 DualBootInstallation 安装 ubuntu touch
最近折腾ubuntu for phone ubuntu也算是雷声大雨点小,从edge手机开始,到说兼容一大部分谷歌机,到现在缩水说只适配nexus 4 节操掉了一地啊,对付这种情况,ubuntu touch也就可以只装着玩玩了,还好ubuntu 官方…

我的家庭私有云计划-13
嗯,昨天算由感而发啊,大家看看就好了。 嗯,接着说咱们的云。 先说啊,我没打算在这个领域里面完全自研,我还没那么疯,这个呢属于一体化解决方案,我认为还是社会分工合作的结果,不强调…

C语言return函数
return函数 说到return,有必要提及主函数的定义。很多人甚至市面上的一些书籍,都使用了void main( )这一形式 ,其实这是错误的。 C/C 中从来没有定义过void main( ) 。C 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着: The defi…

怎样写出一个较好的高速排序程序
写出一个较好的高速排序程序 高速排序是经常使用的排序算法之中的一个,但要想写出一个又快又准的使用程序,就不是那么简单了须要注意的事项 首先要写正确。通常使用递归实现。其递归相当于二叉树展开,因此假设要用迭代实现的话须要使用一个队…

写代码时发现......还得是 SpringBoot !一篇拿下
关注了很多技术类公众号的读者肯定有这样一个感受,SpringBoot相关的文章铺天盖地,并且SpringBoot相关的文章阅读量、收藏量都很高,这也从侧面反映了SpringBoot技术的火爆。一切都在证明,SpringBoot已经成为了Java程序员必备的技能…

Python的 if .else.elif语句详解
If 语句 是用来判断的 Python 编程中 if 语句用于控制程序执行 用来检测一个条件:如果条件为 (真)true,就会运行这个语法块,如果为Fales 就跳过不执行。 elif是依附于if存在的,两者之间的运算逻辑相同&…

C#中string与byte[]的转换帮助类
在写C#程序时,string和byte[]之间的转换比较烦,在移植一些老程序时感觉很不好。我在C#中使用DES和TripleDES时移植一块老代码时也遇到了同样的情况。为了下次不为同样的事情烦恼,就写了下面的帮助类。 主要实现了以下…

鲲鹏入晋 万里腾飞,鲲鹏应用创新大赛2021山西赛区邀你来战!
2021 年 6 月 29 日,由山西省工业和信息化厅、山西转型综合改革示范区管理委员会为指导单位,华为技术有限公司主办,山西鲲鹏生态创新中心暨华为(山西综改区)DevCloud 创新中心承办,山西长河科技股份有限公司…

tcpdump-根据IP查看程序与服务都用了哪些端口
tcpdump -i em1 -tttt src 116.3.248.157 and port ! 6869 -nn -i 指定端口 -tttt 附带时间戳 -nn 解析域名与端口信息 ############################################# windows下可以使用netstat -nb |find “18999” 与 netstat -ao 结合使用,在通过pid号 查看进程…

快速构建Windows 8风格应用27-漫游应用数据
本篇博文主要介绍漫游应用数据概览、如何构建漫游应用数据、构建漫游应用数据最佳实践。 漫游应用数据概览 1.若应用当中使用了漫游应用数据,用户可以很轻松的在不同的设备间保持应用数据的同步。 2.Windows会将更新的漫游数据同步到云端,并将数据更新到…

jquery和css3打造超梦幻的三维动画背景
今天为大家带来的是一款由jquery和css3实现的超级梦幻的背景效果。绿色的小原点由远到近,由近到远一种飞跃效果。效果非常好看,我们一起看下效果图: 在线预览 源码下载 我们一起看下实现的代码。这是一款由jquey和css3实现的效果。这里引用…

C#时间函数扩展
//本周是本年第几周 private int DatePart(System.DateTime dt) { int weeknow Convert.ToInt32(dt.DayOfWeek);//今天星期几 int daydiff (-1) * (weeknow1);//今日与上周末的天数差 int days System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天 i…

“我被机器解雇了!”Amazon 63岁员工因算法评分太低被自动开除
整理 | Carol出品 | CSDN(ID:CSDNnews)“我被一个机器解雇了。”63岁“老司机”因跟踪算法被开除一觉醒来,63岁的斯蒂芬 诺曼丁(Stephen Normandin)发现自己居然被莫名其妙解雇了。斯蒂芬是Amazon Flex的一…

微信开放平台手机APP支付
PHP对接APP微信支付 微信开放平台手机APP支付总结 1. 微信开放平台手机APP支付总结 支付功能链接: https://pay.weixin.qq.com/wiki/doc/api/index.html APP支付功能文档: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter8_3 Demo下载地址: https://pay.weixin.q…

VS2005创建CLR自定义触发器
第一步:在Visual Studio 2005中编写代码 using System; using System.Data; using System.Data.Sql; using System.Data.SqlServer; using System.Data.SqlTypes; public partial class Triggers { // Enter existing table or view for the target and unc…

Adobe推出HTML5动画设计工具Edge
2019独角兽企业重金招聘Python工程师标准>>> HTML5和Flash,是敌对?是共存? 尽管Flash现在依然牢牢占据着网络动画的大半江山,但这种状况终将会被改变。 那么,Edge的推出是否意味着Adobe将放弃和屈服于Flash…

AI 算法给手画线稿自动上色指南来了
测试图片作者 | 叶庭云来源 | 修炼Python生成线稿图像手绘效果的特征:黑白灰色、边界线条较重、相同或相近色彩趋于白色、略有光源效果。手绘风格是在对图像进行灰度化的基础上由立体效果和明暗效果叠加而成的,灰度实际代表了图像的明暗变化,…

mysqldump和xtrabackup备份原理实现说明
MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现。物理备份的特点是:拷贝相关…