微软资深算法工程师为ai初学者量身打造的机器学习入门书上市啦!

turingbooks turingbooks     2023-02-01     589

关键词:

随着人工智能技术的发展,机器学习已成为软件 / 互联网行业的常用技能,并开始向更多行业渗透。对越来越多的 IT 技术人员及数据分析从业者而言,机器学习正在成为必备技能之一。

今天我们就来聊聊机器学习的“入门级”问题。

(以下问题的答案参考了图灵新书《机器学习极简入门》)

01

什么是机器学习?

按照字面意思理解,“机器学习”就是让机器自己学会某种东西。更准确一点就是:让计算机程序(机器)不是通过人类直接指定的规则,而是通过自身运行,习得(学习)事物的规律和事物间的关联。

02

机器是如何学习的?

对于人类而言,一个概念对应的是具体的事物,我们认知的事物都不是孤立的,互相之间有着各种各样的关联。比如我们对一个人说“苹果”的时候,他可能会想乔布斯创立的公司;也有可能想到圆圆的、香甜的、有皮有核的水果;也有可能想到香蕉、菠萝等其他水果。但是如果我继续说:“苹果一定要生吃,蒸熟了再吃就不脆了。”那么“苹果”一词确定无疑指的是水果,而不是公司。因为在我们的知识库里,都知道水果可以吃,但是公司不能吃。出现在同一句话中的“吃”对“苹果”起到了限定作用,这是人类的理解。

如果我们将“苹果”这两个字输入计算机,计算机并不会幻视出一个水果,也不会像人那样“意识到”这个单词的含义。计算机程序能够处理的只有数值和运算。

计算机程序不过是一段存储在硬盘上的 0、1 代码,运行时被读取进内存,CPU 根据代码转换成的指令来做一组特定的操作,让这些 0、1 数字通过逻辑电路进行若干运算后,生成计算结果。所以要让一段程序了解客观世界变化万千的事物,则必须将这些事物转化为数值,将事物的变化和不同事物之间的关联转化为运算。当若干现实世界的事物转换为数值后,计算机通过在这些数值之上的一系列运算来确定它们之间的关系,再根据一个全集之中个体之间的相互关系来确定某个个体在整体(全集)中的位置。 

“苹果”被输入进去的时候,被转化为一个数值 Va。经过计算,这个数值和对应“吃”的数值 Ve 产生了某种直接的关联,而同时和 Ve 产生关联的还有若干数值,它们对应的概念可能是“香蕉”(Vb)、“菠萝”(Vp)、“猕猴桃”(Vc)等。据此,计算机就会发现 Va、Vb、Vp、Vc 之间的某些关联(怎么利用这些关联,就要看具体的处理需求了)。

说到数值,大家可能本能地想到 int、double、float……但实际上,如果将一个语言要素对应成一个标量的话,太容易出现两个原本相差甚远的概念经过简单运算后相等的情况了。假设“苹果”被转化为 2,而“香蕉”被转化为 4,难道说两个苹果等于一个香蕉吗?因此,一般在处理时会将自然语言转化成 n 维向量。只要转化方式合理,规避向量之间因为简单运算而引起歧义的情况还是比较容易的。

这种现实世界和计算机之间从概念到数值,从关系到运算的映射,造就了机器可以通过自主学习获得事物规律的可能。既然机器有可能自己学习事物的规律,那么如何才能让它学到规律呢?我们先来看一个故事。

猫妈妈让小猫去捉老鼠,小猫问:“老鼠是什么样子啊?”

猫妈妈说:“老鼠长着胡须。”结果小猫找来一头大蒜。

猫妈妈又说:“老鼠有 4 条腿。”结果小猫找来一个板凳。

猫妈妈再说:“老鼠有一条尾巴。”结果小猫找来一个萝卜。

在这个故事里,小猫就是一个基于规则的(rule-based)“计算机程序”,它完全按照“开发者”猫妈妈的指令行事。但是因为 3 次指令都不够全面,结果 3 次都得出了错误的结果。如果要把小猫变成一个基于机器学习模型的(model-based)计算机程序,猫妈妈该怎么做呢?

猫妈妈应该这样做,给小猫看一些照片,并告诉它有些是老鼠,有些不是。

猫妈妈可以先告诉小猫:要注意老鼠的耳朵、鼻子和尾巴。小猫通过对比发现:老鼠的耳朵是圆的,别的动物耳朵不是圆形的;老鼠都有长而细的尾巴,别的动物有的尾巴短,有的尾巴粗;老鼠的鼻子是尖的,别的动物不一定是这样的。这时小猫就学习到一个规律——老鼠是圆耳朵、细长尾巴、尖鼻子的动物,通过这个规律来抓老鼠,那么小猫就成了一个“老鼠分类器”。 

小猫(此处将其类比为一个计算机程序)是机器(machine),让它成为“老鼠分类器”的过程叫作学习(learning)。猫妈妈给小猫看的那些照片是用于学习的数据(data)。猫妈妈告知小猫要注意的几点,是这个分类器的特征(feature)。学习的结果“老鼠分类器”是一个模型(model)。小猫思考的过程就是算法(algorithm)。

03

我们应该如何学习机器学习

1. 扎实数学知识

很多同学想学机器学习,但是一上来就看模型,看到一大堆炫酷的公式,难免感觉很吓人。有些人因此萌生退意,要么放弃,要么只用现成工具把模型当作黑盒使用。其实,学习经典模型,并不需要多么深厚的数学功底,只要掌握本科阶段所教授的数学知识就基本够用了。在学习的最初阶段,只要满足以下几个条件,就可以对经典机器学习模型有一定深度的感性认识了。

  • 学过坐标系

  • 了解函数、向量和矩阵的概念

  • 能从直观角度对求导、求微与函数的关系有所理解

  • 掌握基础矩阵运算

如果想要灵活运用机器学习,还需要进一步学习数学知识。建议大家在学习模型的过程中,一旦遇到了数学上的阻碍,就去查找相应知识,制作一本自己的数学知识速查手册,把常用的细小知识点都记录下来,按主题整理成速查手册(小字典),需要用的时候快速查找对应的知识点,这样我们学习机器学习的过程会顺畅不少。

2. 重视经典模型

初次学习模型知识,不必贪多。比如线性回归、逻辑回归、决策树、SVM、SVR、K-means 等,这些选定的模型,一定要搞清楚其问题域、模型函数、目标函数、训练算法……深入数学公式推导的层面,理解每一步的公式变换和对应的物理意义,然后去实践。

3. 不断反复学习

达到掌握机器学习精髓的程度并非一蹴而就,总要从最简单的模型开始。即使是掌握最简单的模型,也需要反复学习。有可能第一遍看完有点似懂非懂,或者感觉自己明白了,但要从头推导又卡壳了。就像刚学完又忘掉的生字,或是背了一半,后半部分怎么也想不起来的九九乘法口诀。这都是非常正常的现象。究其原因,就是还没有真正掌握。多学几遍,从头到尾掌握整件事情的逻辑,知道一个模型是怎么从最初设定目标,一步步实现目标的。当真正掌握了这个过程之后,再回头看一个个具体的模型,每一步都是顺理成章的。

4. 多写程序,动手实践

虽然我们学习的是机器学习原理,但是这并不等于我们就可以停留在原理层面。为了学好原理,我们需要具备基本的编程能力,至于编程语言的选择,如果你在开始学习的时候已经有了编程基础,那么继续使用自己擅长的语言就可以。如果你还不会编程,或者觉得自己之前学的、用的语言不好,想换一种更适合机器学习的编程语言,那么我的建议是 Python。

“‘入门级’”的话题今天就谈到这里啦,其实上面问题的答案都是小编从下面这本书里摘录总结的。这本书对初学者很友好,书中的例子也很易于理解,解决了我这个外行人想入行的很多问题。另外我的数学功底也不算很强,加上很久不碰数学,目前基本忘得差不多了,可是跟着李烨老师的本书,对于我理解机器学习完全没障碍。推荐给大家~

这本新上市的《机器学习极简入门》针对机器学习初学者,从机器学习最基本的原理及学习意义入手,以模型为驱动,带领大家吃透几大经典机器学习模型,学习其原理、数学推导、训练过程和优化方法。配合精心设计的数据量较小的“极简版”实例,读者可以直观了解模型的运行原理,还可以将自己变身为“人肉计算机”,口算、笔算每一步的推导,模拟算法全过程,进而彻底理解每个模型的运作方式。

这本书一共有29章,其实是李烨老师精心为大家编排的29节小课堂,从机器学习的基本原理到经典算法的推导剖析,再到一部分应用提示和目前我们遇到的问题、愿景,既能照顾到初学者的理解能力,又可以让对机器学习已经了解一些的人夯实机器学习模型算法的基础,真的是非常用心。

另外,如果大家真的有意投身到 AI 领域,从事相关技术性工作,通过技术笔试、面试则是必要条件。在面试中,面试官一般会要求从头解释某一个机器学习模型的运行原理、推导过程和优化方法,这是目前非常常见的一种测试方法。机器学习模型虽然很多,但是经典、常用的很有限。如果能学会本书所讲解的经典模型,你将足以挑战这些面试题!

04

获得众多业内大咖推荐

本书用通俗易懂的语言,系统而又深入浅出地介绍了机器学习的主要算法,以及这些算法的“前世今生”。书中列举的例子生动有趣,而且结合了作者丰富的工作经验,能够让读者迅速抓住和领悟机器学习的思维重点和算法精髓,从而更好地将所学知识应用到编程中。本书对培养数字思维以及推进数字技能教育大有裨益,是人工智能的普及性读本。

——洪小文,微软全球资深副总裁微软亚太研发集团主席

市面上有关机器学习的书可以说是汗牛充栋,有的侧重于算法,有的侧重于应用,有的侧重于原理,有的侧重于推导……但其实,能够把机器学习原理说清楚,做到既不神化,又不妖魔化,同时不忽略基本数学原理的推导与实现的书很少见,本书是其中难得的佳作。而且本书作者用通俗易懂的语言结合生活中常见的例子,把机器学习的原理讲得明明白白,并对容易产生学习误区的地方进行提示性解释,在我看来,这绝对是本书的亮点之一。

——韦青,微软(中国)首席技术官

作为新基建的一环,国家将人工智能提升到重要战略的高度,而机器学习可谓踏入人工智能领域的第一级台阶。本书以一种轻松的方式引导读者逐步深入了解机器学习理论,并给出了很多动手实践的小例子,带领读者手脑并用地学习。大家可以使用本书同步进行模型训练和预测,不但能掌握理论,还可以运用学到的知识解决实际问题。

——陶建华,中国科学院自动化研究所研究员

中国科学院大学首席教授,国家杰出青年基金获得者,国家万人计划领军人才(/n)《机器学习极简入门》关注读者学习机器学习的感受,借鉴由表及里、由浅入深、由简至繁的教学思路,讲解经典机器学习的模型、数学原理及推导过程。本书通过简单、直观、生动的表述方法来阐述深刻的学科原理,有效降低了阅读难度,激发了各类读者对机器学习的兴趣,让大家享受递进式学习的快乐。

——熊璋,北京航空航天大学教授国家教材委员会科学学科专家委员会委员863智慧城市(一期)首席科学家教育部跨世纪人才,全国优秀教师

这是一本可读性极强的书,其娓娓道来的铺陈方式让读者轻松一览机器学习技术的基本内容,既有宏观视野,又有点到为止的细节。读者不仅能马上感到“知道了”,而且还能感到“用得上”。

——李晓明,北京大学计算机系教授

05

新书实拍

06

新书福利

小伙伴们快来说说,学习机器学习的过程中哪里难住了你?或者为了学习机器学习你都做过哪些努力?我们将在精选留言中选出3位获得赠书。留言截至2021.11.15。快来畅所欲言吧~

☟☟☟ 一键购买

微软开源自动机器学习工具nni安装与使用(代码片段)

...初学者来说,常常是无从下手。即使是对于有经验的算法工程师和数据科学家,也是很难把握所有的规律,只能多次尝试,找到较好的超参组合。而自动机器学习这两年成为了热门领域,着力解决超参调试过程的挑战,通过超参... 查看详情

华燕-专题视频课程

...等大型互联网公司。目前就职于陌陌,担任推荐算法工程师,负责陌陌直播算法推荐。个人擅长技术主要有:计算机视觉,机器学习,深度学习,大数据分析与计算,密码学算法。个人微信号TonyJeemy520&... 查看详情

ai工程师职业规划和学习路线完整版

AI工程师职业规划和学习路线完整版 如何成为一名机器学习算法工程师成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能力,这些能力中的每一项掌握起来都需要足够的努力和经验。... 查看详情

如何自学人工智能

...学习的一般路线:2补充数学或编程知识对于已经毕业的工程师来说,在系统学习AI之前,一般要补充一些数学或者编程方面的知识。如果你的数学和编程比较好,那么学习人工智能会轻松很多。很多同学一提到数学就害怕,不过... 查看详情

如何准备机器学习工程师的面试?

如何准备机器学习工程师的面试?2018届校招面经精选1、菜鸟图像图形算法内推一面2、机器学习算法面经3、百度面试一面4、京东云算法工程师一面分享5、京东算法工程师一面面经6、京东云机器学习面试分享7、京东AI与大数据... 查看详情

tensorflow打造聊天机器人

...天机器人聊天机器人也叫做对话系统,是一个热门领域。微软、facebook、苹果、google、微信、slack都在上面做了大的投入,这是一波新的试图改变人和服务交流的创业浪潮。例如operator x.ai,chatfuel,以及一些库例如botkit,微软的b... 查看详情

微软面向初学者的机器学习课程:1.1-机器学习介绍

写在前面:最近在参与microsoft/ML-For-Beginners的翻译活动,欢迎有兴趣的朋友加入(https://github.com/microsoft/ML-For-Beginners/issues/71)机器学习介绍![机器学习,人工智能,深度学习-有什么区别?](https://img.youtub 查看详情

微软面向初学者的机器学习课程:1.2-机器学习的历史

写在前面:最近在参与microsoft/ML-For-Beginners的翻译活动,欢迎有兴趣的朋友加入(https://github.com/microsoft/ML-For-Beginners/issues/71)机器学习的历史作者TomomiImura[1]课前测验[2]在本课中,我们将走过机器学习和人工智... 查看详情

微软面向初学者的机器学习课程:1.4-机器学习技术(代码片段)

写在前面:最近在参与microsoft/ML-For-Beginners的翻译活动,欢迎有兴趣的朋友加入(https://github.com/microsoft/ML-For-Beginners/issues/71)机器学习技术构建、使用和维护机器学习模型及其使用的数据的过程与许多其他开发工... 查看详情

人工智能ai专家分享:深度学习初学解惑

...,现某创业公司数据科学家、人工智能专家。前欢聚时代资深大数据专家,有丰富的机器学习、深度学习实战经验。在高扬老师此前的分享中,有不少同学问到高扬老师各种关于入门深度学习这个前沿技术领域的问题。部分重要... 查看详情

微软面向初学者的机器学习课程:1.3-机器学习中的公平性

写在前面:最近在参与microsoft/ML-For-Beginners的翻译活动,欢迎有兴趣的朋友加入(https://github.com/microsoft/ML-For-Beginners/issues/71)机器学习中的公平性作者TomomiImura课前测验介绍在本课程中,您将开始了解机器学习... 查看详情

ai常用框架和工具丨5.机器学习库scikit-learn

...特征工程2.1特征工程包含的内容2.2特征工程步骤三、回归算法3.1线性回归API3.2线性回归实例四、分类算法4.1分类算法API4.2分类算法实例五、聚类算法5.1聚类算法API5.2聚类算法实例六、其他操作</ 查看详情

双十一不如买一本书吧

...深度学习知识,以便在实际产品或平台中应用的软件工程师。本书特色有些读者在学习时会有这样一种感觉:一门课学完了、考试过了,却不知道学了有什么用,尤其是数学类的课程。这 查看详情

《百面机器学习算法工程师带你去面试》pdf版+epub版

...https://pan.baidu.com/s/1DgV5JxWZgyQBKd7wkMXmWw《百面机器学习算法工程师带你去面试》高清PDF版,392页,带书签目录,文字可以复制;《百面机器学习算法工程师带你去面试》高清epub版,101页,带书签目录,文字可以复制。本书作为AI类... 查看详情

机器学习初学笔记

...理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类 查看详情

《机器学习算法入门》即将上市出版,预计2020年6,7月份

...,覆盖的主要内容有机器学习概述、数据预处理、K近邻算法、回归算法、决策树、K-means聚类算法、随机森林、贝叶斯算法、支持向量机、神经网络(卷积神经网络、Keras深度学习框架)、人脸识别入门等。从最简单的常识出发... 查看详情

如何成为一名ai工程师

如何成为一名AI工程师step前端:js,html,找准方向开始累积知识!计算机/数学专业pythonanacondaIDEpycharm/jupyter熟悉基础语法,了解数据结构刷leetcode,剑指offer熟悉基础数学知识机器学习入门概念监督学习=分类模型半监督学习无监... 查看详情

怎样成为一名优秀的算法工程师(代码片段)

...不是随便一个人都可以跨行的。怎样成为一名优秀的算法工程师?面对市场对人才的大量需求与供给的严重不足,以及高薪水的诱惑,越来越多的人开始学习这个方向的技术,或者打算向人工智能转型。市面上各种鱼龙混杂的培... 查看详情