机器学习极简入门课

课程介绍

本达人课针对机器学习初学者,从机器学习、深度学习最基本的原理及学习意义入手,以模型为驱动,带领大家吃透几个最经典的机器学习模型——学习这些模型的原理、数学推导、训练过程和优化方法。

本课为每个模型提供了极小数据量的“极简版”实例,方便读者从直观上了解模型的运行原理。借助这些例子,大家可以将自己变身为“人肉计算机”,通过口算/笔算每一步的推导,模拟算法全过程,进而彻底理解每个模型的运作方式。

此外,本课还介绍了构建数据集、特征选择、调参、验证模型的方法,以及如何同步进行编程语言学习。帮助您掌握进行机器学习产品开发的基本能力。

作者介绍

李烨,高级软件工程师,现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师。先后参与聊天机器人、大数据分析平台等项目的开发。微信公众号:yuesiyuedu;个人微信号:julia_li_2013

课程大纲

本课程大纲分为六大部分,共计 37 篇:

机器学习极简入门课

* 实际更新文章题目可能与框架略有出入
* 本课程框架 5.17 修订后新增 4 篇文章,价格不变
* 本课程框架 6.21 修订后新增 3 篇文章,价格不变
* 本课程框架 7.10 修订 18-24 篇文章标题

课程内容

开篇词 | 入门机器学习,已迫在眉睫

大家好,我是李烨。现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师。先后参与过聊天机器人、大数据分析平台等项目的开发。在未来的 10 周里,我将通过“机器学习极简入门课”与同学们分享关于机器学习方面的一些心得。

课程背景

首先,我们来看一下当前机器学习领域招聘市场的行情。

机器学习极简入门课

上面表格中所有带有“算法”、“人工智能”、“数据挖掘”、“视觉”字样的职位,都需要懂机器学习。

在产品和服务中应用机器学习模型,已经逐步成为了互联网行业的通行方法。甚至很多传统软件企业,也开始尝试应用机器学习。说得更直接一点,人工智能正处在炙手可热的风口浪尖上,作为程序员不会机器学习都不好意思去找工作了。

很多技术开发者迫切希望快速进入人工智能领域从事工程或者算法等相关工作,这也是我推出这门课程的初衷。

课程大纲

本课程针对机器学习初学者,从机器学习、深度学习最基本的原理及学习意义入手,以模型为驱动,带领大家吃透几大最经典的机器学习模型——学习其原理、数学推导、训练过程和优化方法。配合精心设计的极小数据量的“极简版”实例,方便读者从直观上了解模型的运行原理,利用实例大家还可将自己变身为“人肉计算机”,通过口算/笔算每一步的推导,模拟算法全过程,进而彻底理解每个模型的运作方式。结合自身实践经验,我总结了多个构建数据集、特征选择、调参、验证模型的高效方法,并教授大家如何同步进行编程语言学习,助您快速拥有机器学习产品开发的基本能力。

本课程大纲分为六大部分,共计 37 篇:

第一部分:绪论

  • 授人以鱼不如授人以渔。本部分从意义和作用出发,给出相应的学习方法和与理论配套的编程学习。

第二部分:基本原理

  • 深谙其理,才能灵活应变。本部分开始带大家了解什么是机器学习、机器如何自己学习、以及机器学习三要素:数据、模型、算法之间的关系。

  • 模型是机器学习的核心,那么模型是怎么得到的呢?本部分也将讲解模型的获取(训练)和评价(验证/测试)过程,相应的数据集合的划分以及具体的评价指标。

  • 这部分知识和后面讲述的具体模型结合起来,就可以实践了!

第三部分:有监督学习 I

  • 抓住关键,个个击破。本部分重在详细讲解有监督学习中经典的线性回归、朴素贝叶斯、逻辑回归、决策树模型。这几个模型不仅基础、经典、常用,而且数学工具特别简单。

第四部分:有监督学习 II

  • 百尺竿头,更上一层楼。本部分讲述支持向量机、支持向量回归、隐马尔科夫和条件随机场模型,从支持向量机开始,数学工具的需求较之前上了一个台阶,难度明显加大。

第五部分:无监督学习

  • 无须标注,方便运行。本部分重在讲解无监督学习中的聚类、高斯混合及主成分分析等模型。这部分模型的特征是所需训练数据无须标注,方便在各种数据上随时进行尝试。在现实中,经常用来作为有监督的辅助手段使用。

第六部分:从机器学习到深度学习

  • 超越自我,实现蜕变。本部分重在讲解深度学习基本原理、深度学习与机器学习的关联与衔接、以及深度学习目前的应用领域,为读者下一步学习“深度学习”奠定基础。

整个课程以经典模型为驱动,讲述每一个模型所解决的问题域,模型的原理和数学推导过程。作为课程的主体,第三部分和第四部分讲解的每个模型,都附有实例和相应的 Python 代码。每个例子的数据量都非常小——这样设计就是为了让读者可以用人脑模拟计算机,根据刚刚学到的模型算法对这些极小量数据进行“模拟训练/预测”,以此来加深对模型的理解。

机器学习极简入门课

你将收获什么

AI 技术岗位求职知识储备

如果大家真的有意投身到人工智能领域做技术性工作,那么经过技术笔试、面试是必要条件。在面试中被要求从头解释某一个机器学习模型的运行原理、推导过程和优化方法,是目前非常常见的一种测试方法。机器学习模型虽然很多,但是经典、常用的很有限。如果能把本课程中讲解的经典模型都学会,用来挑战面试题相信是足够了。

触类旁通各大模型与算法

各种机器学习模型的具体形式和推导过程虽然有很大差别,但却在更基础的层面有许多共性。掌握共性之后,再去学新的模型、算法,就会高效得多。虽然本课的第二部分集中描述了部分一般性共同点,但真要理解个中含义,却还要以若干具体模型为载体,从问题发源,到解决方案,再到解决方案的数学抽象,以及后续数学模型求解的全过程,来了解体味。这也就是本课以模型为驱动的出发点。

极简版实例体验实际应用

运用到实践中去,是我们学习一切知识的目的。机器学习本身更是一种实操性很强的技术,学习它,原本就是为了应用。反之,应用也能够促进知识的深化理解和吸收。本课虽然以原理为核心,但也同样介绍了:划分数据集、从源数据中提取特征、模型训练过程、模型的测试和评估等方法和工具。

配套数据+代码快速实操上手

本课程中各个实例的 Python 代码及相应数据,大家可以下载、运行、改写、参考。

机器学习极简入门课

课程寄语

我希望本课的读者在知识和技巧的掌握之外,能够将学习到的基本规律运用到日常生活中,更加理性地看待世界。

再遇到“人工智能产品”,能够根据自己的知识,去推导:How it works——

  • 它背后有没有用到机器学习模型?
  • 如果有的话是有监督模型还是无监督模型?
  • 是分类模型还是回归模型?
  • 选取的特征是哪些?
  • 如果由你来解决这个问题,有没有更好的方法?

我们自己用来判断万事万物的“观点”、“看法”、“洞察”,实际上都是我们头脑中一个个“模型”对所闻所见(输入数据)进行“预测”的结果。这些模型自身的质量,直接导致了预测结果的合理性。

借鉴机器学习认识客观规律的过程,可以知道,模型是由数据和算法决定的。对应到人脑,数据是我们经过见过的万事万物,而算法则是我们的思辨能力。

我们作为人类不必被动等待一个外来的主宰者。完全可以主动训练自己的思维模型,通过改进算法和增大数据量及数据多样性来提升模型质量——如果能在这方面给读者朋友们带来些许启发,我实在不胜荣幸。

最后,预祝每一位订阅课程的朋友,能够通过学习找到心仪的工作,如果大家有任何疑问和建议,也欢迎通过读者圈与我交流,我们共同学习,共同进步。

我之前分享的一场 Chat 《入行 AI,选个脚踏实地的岗位》中曾提到,工业界所需的 AI 技术人员,更多集中在算法、工程、数据相关岗位之上,并全面总结了不同岗位角色所需要具备的素质、日常工作的状态,及职业发展路径。这场 Chat 也将收录在课程最后,作为福利供大家免费阅读,加油!

第01课:为什么要学原理和公式推导

机器学习极简入门课

机器学习最直接的应用,就是把模型运用到实际业务上去解决问题。

本课所讲到的几个经典模型,是机器学习发展的几十年间,由前辈总结出的解决特定问题的固定模式,已经在实践中证明有效。

学会这些模型,一则可以以它们为载体理解“机器学习”这件事情本身是一种怎样的机制;二则掌握了模型,也就掌握了当前许多实际问题有效的解决方案。

学模型就要学公式推导吗?

机器学习极简入门课

在实际应用中,如果我们要运用一种模型,那么其实有很多现成的算法库、学习框架,只要把输入导入进去,用几行代码指定模型类型和参数,工具、框架就能自动计算出结果。

既然如此,何必再去学其中的原理,一步步推导让人头晕的数学公式?

对于这个问题,首先给出我的意见:

机器学习的原理和数学推导一定要学!

此处且举个直观的例子:

工具就像是武器,学会使用一种工具只是学会了使用这种武器的最基本的招式和套路。而理论学习则是学习策略,决定了未来在真实对战中,遇到对手攻击时,你选取哪些招式套路,如何组合起来去迎敌。

反过来说,如果根本不学模型原理,只是把一个个应用场景背诵下来,需要的时候直接把模型当黑盒使用——这样做我们能学到什么?

我们将学到:

  1. 算法库的安装;
  2. 库函数的调用;
  3. 数据的 I/O 转换。

这和调用任何一个封装好的 API(无论其功能)有什么区别?和调用你自己的同事撰写的模块接口又有什么不同?

学会这么几件事能让你相对他人产生什么的壁垒?作为一个原本非 AI 领域的开发者,难道因为会安装几个支持库,会调几个接口就身价倍增成为机器学习工程师啦?

学习原理的必要性

回过头来,我们从正面来看学习原理的必要性。

功利层面

机器学习极简入门课

咱们先来看看最直接的用处。

面试会考

最起码的一点,找工作的时候,但凡是个稍微靠谱点的企业,对于标明是“机器学习工程师”的职位,面试时一定会问模型原理和推导过程的

而且问到的模型,随着时间推移越来越复杂。

三四年前或更早些时候,企业技术面试,大多问线性回归。这两年,已经基本上从逻辑回归起步了。再过一两年是否问支持向量机不得而知,不过理论考察越来越难是必然的。

真想入这行,为了面试也得学呀。

老板会问

在日常工作中,编码的时候,可能确实只是在调 API 而已。

但很多时候,具体用哪个工具哪个框架,调用哪个具体的模型算法,并不是你一个人决定就可以,而是需要向老板、合作方甚至客户做出解释的。

以前谁负责哪个模块都是自己搞定所有事,你怎么还想让别人给你标注数据呀?

花费这么多时间人力训练的模型,怎么连个 DSAT 都 Fix 不了啊?*

既然再多投入几倍资源也不能达到95%以上的正确率,为什么不干脆直接用 Rule-Base 来 Handle?

……

Manager,Tech Lead,PM 都有可能围绕机器学习/深度学习投入产出比,提出各种问题。要在工作中运用这些技术,首先就要说服他们。这个时候,原理就派上用场了。

同事会质疑

对于你应用 ML/DL 的疑问不仅来自上司,很多时候也来自于同级别的同事。

相对于老板对于性价比的关注,同事的注意点更可能在技术细节——质疑用这个新的框架/工具/模型/算法,与之前实施方案在功能、性能方面的差别。

别人都用 TensorFlow,你为什么要用 Caffe 呀?

以前这个分类器我们用逻辑回归也挺好,你为什么非要换成 RNN 啊?

你用这个谱聚类做数据预处理,可是归根到底不还是词袋模型算词频嘛,比直接算一下 tf-idf 做排序好多少?

……

到了这个层面,只是简单概括的说说原理已经不够了,要能细致到对比:

  • 不同模型的特质,适用场景,对当前数据的匹配程度;
  • 不同算法对于算力和时间的消耗;
  • 不同框架对软硬件需求和并行化的力度;
  • 才算是具备了技术讨论的资格。

【文-1】

实用层面

机器学习极简入门课

当然,在日常工作中可以完全不理会 Peer 的质疑,对于 Boss 的决定也可以全盘遵守绝无二话。Engineer 嘛,只是埋头干活也就可以了。但总得把活儿干好吧。

作为一个机器学习工程师,把活干好的基本内容是:针对技术需求提供高质量的模型。

再高一个层次的好处是:针对业务需求提供高质量的解决方案。

优化模型

在基本面上,机器学习工程师又被戏称为调参工程师。

所要做的,就是在限定的数据上,规定时间内,为具体技术需求(比如:训练一个分类器)提供性能尽量高,消耗资源尽量小的模型。

调参工程师的三板斧:选特征、调超参、换模型,要想能够有章法的使用出来,理论基础还是必不可少的。

至此,上面【文-1】处的描述不再是和他人论战的“弹药”,而成了工作步骤的指导。

如果连:

  • 评判模型性能的指标有哪些,如何计算;
  • 正在使用的模型是怎么工作的;
  • 这些超参数是什么含义,调整它们会产生哪些影响;
  • 特征选取有哪些原则、方法可运用……

都不知道,又怎么优化模型?

针对问题实际问题定向建模

仅仅做到一个合格的调参工程师,固然可以在 AI 领域占据一个职位,但对于业务和团队而言,仍然是个可有可无的角色。

真正创造价值的,从来都是解决实际问题的人。

这些经典的模型、算法,是前人在解决实际问题中所研究出的具备通行性的解决方案。我们应用它们去解决问题,因为它们所解决的目标问题总是持续出现。

但是,新的问题也会随着新的需求涌现,并不是说我们只能用这些现有成果解决问题。

面对新问题,调参工程师可能束手无策。但一个理论掌握得足够深的机器学习工程师完全有可能针对具体业务问题构造目标函数,甚至开发出符合自身软硬件资源特点的求解算法。

到了这一步,即使还使用现成工具,也不是靠 Google 一下 Best Practice,Copy & Paste 代码就能够解决的了。必须具备理论基础和数学层面的建模能力才行。

第02课:学习机器学习原理,改变看待世界的方式

学习机器学习,除了有上一篇中讲述的那些务实的作用,在务虚方面同样有用。

学习一个个模型运作的原理,看到现实的事物如何转化为数字被计算,结果又如何映射回现实世界来影响我们的生活。

对机器学习的掌握,能为我们客观认识现实带来下面这些帮助。

破除迷信

机器学习极简入门课

在这个人工智能看起来要席卷一切的年代,不光是正在或者立志于在 AI 领域做技术工作的人,任何人都有必要从原理角度了解一下机器学习、深度学习是干什么的,如何起到作用的。

作为一个带有神秘色彩的热点概念,人工智能(AI)被热炒被歪曲被妖魔化是难免的。

了解原理,知道人工智能是一个学术研究领域,目前在工业界有一定的应用和探索。AI 归根到底是个技术问题,可学、可用、可研究亦可质疑,而不是只能顶礼膜拜的法术神功。

具备最基本的判断能力,才有可能不会被“神话”迷惑,不被“鬼话”恐吓。

知道 ML/DL 模型是如何工作的,总不至于看了篇《AI 专业毕业生年薪50万》就慌慌忙忙报个2万块的培训班,学了 pip install tensorflow 和 C&P 代码运行几个习题数据集,就以为能够找份年薪50万的工作了。

知道 AI 有哪些落地点和局限,就不至于瞟了几眼《XX 职业要消失了》,《XXX 岗位将被人工智能取代》之类的网文就骤然开始仇视社会,好像自己明天就没有活路了似的。

除了判断事,判断人可能更重要一些

了解一件事的原理,自己有个基本的是非标准,再去看别人对它的评论,就不难看出评论者的“斤两”。也就不至于被其所说内容之外的语气、措辞,或者刻意的态度所误导。

追本溯源

机器学习极简入门课

人工智能从提出到现在几十年,已经数度沉浮。这些年间,模型、算法、实现技术更迭了几代,如今和当年已经是天壤之别。

但所有的发展都不是凭空出现的,新的方法、技术都是在原有基础上的创新。每一个具体的进步,都仅仅是向前的一小步而已。

最容易创新的是技巧和细节,越“大”的创新,出现的频率越低。而原理所揭示的,就是这种“大”的,相对稳定的东西。

机器学习最经典的那几个模型,历史都不短,长则半世纪,短的也快20岁了。

深度学习,早年是从属于机器学习的神经网络,因为运算能力不够而被束之高阁多年,近些年来借助计算机硬件和分布式计算的发展而大放异彩。

虽然技术本身和应用结果产生了巨大的飞跃,但从根本的原理层面,却是有着紧密的传承。

了解一件事是如何运行的;明晰事物发展的客观规律;知道从最简单的原理学起逐层推进,比从一个已经很复杂的状态入手一下子纠缠在各种不得要领的细节中要高效得多。

有了这样的认识,也就不会被一些名词所局限。不会仅仅因为人家做了一些细节改变,或者换了个说法就以为天翻地覆了。

具体到 AI 领域,真的了解了支柱技术的基本原理,总不至于:

看了一篇《当这位70岁的 Hinton 老人还在努力推翻自己积累了30年的学术成果……》,便宣布再也不学 CNN、DNN、RNN 了(好像真的学过一样)。

或者:

因为《深度学习已死,可微分编程万岁!》刷屏,就以为目前在视觉、语音、NLP 这些领域已经在创造价值的 DL 工具瞬间消失无用了。

精进看待世界的方法

机器学习极简入门课

相较于仍然处于经验(“炼丹”)阶段的深度学习,传统的统计学习模型和方法已经具备了相对完善的理论基础。

我强烈建议:即使目标岗位是“深度学习工程师”,也应该从统计学习方法学起。

一方面深度学习与机器学习具有传承的关系,学习后者对于直观地理解前者有极大帮助。

另一方面,统计学习方法建立在将概念“数字化”(向量化)的基础上,以数学公式和计算来表达概念之间的关联及转化关系——机器学习是一种认识世界的工具,借助它,我们可以从一个新的角度来看待世间万物。

换句话说,当我们知道机器是怎样通过学习事物特征的概率分布和转换来掌握事物规律的时候,我们就有可能反过来审视自己看待世界的方法,发现其中不合理的部分,并主动优化自己的思维模型。

比如,我在学习机器学习原理的过程中,对人类的思维方式产生了一些思考:

人类的道德标准实际是一种社会层面的极大似然估计。

遗忘是学习的一个步骤,是一种对信息的过滤方法,也是人类在脑力有限情况下对自身大脑的一种保护机制。

人类的偏见是一种长期训练的结果,在信息极其匮乏的情况下,对人们做决定往往是有正向帮助的。信息越丰富,偏见的负面影响也就越严重。

大多数人最常用的思维模型是 KV Pair,有些人似乎终身只有这一种思维模型。

一般人往往默认一类事物的所有个体在概率空间是均匀分布的。在考虑某一个事物个体时,对其在同类事物中所处的位置——是小概率事件还是常态?发生概率相对之前是稳定、上升还是下降?——通常毫不在意,而一概认为被提及的个体很重要。

对于原因和结果的关系,多数人根本没想过去探究其转换模型,而直接默认是线性关系。比如:A 地的年均 PM2.5 指数是 B 地的10倍,PM2.5 被认为与肺癌发病率有关,于是想当然以为 A 地肺癌发病率是 B 地10倍。

当一件事物比较复杂,涉及多个方面的时候,要对它有一个全面的评价,目前最常用的方法是构建一个线性回归模型:选定一些特征,针对每个特征独立打分,最终加权求和(例如大学排名之类)。

线性回归是一个非常简单的模型,往往无法达到很好效果。但即使这样简单的模型,很多人还是无法掌握。

面对一项事物,既不能列举出其主要特征,也不知道如何评估每个特征,更不要提再加权求和。多数人最常用的全面评价标准,如果是一手资料则一般以某(几)个个例的某个特征来代替全集;如果是二手资料,则一般选择相信自己最先接触到的他人结论。

以上这些仅是一些很初级的想法,并没有进一步的研究验证。

我分享出来只是想说明:学习机器学习原理和公式推导,并非只是做一些无聊的数字变换。很可能由此为我们打开一扇窗,让我们从新的角度就看待世界,并为日常决定的思考过程提供更加可量化方法

第03课:如何学习“机器学习”

学习“机器学习”这件事,我走过很长的一段弯路。有一些心得、体会和方法,在此和大家分享。

机器学习极简入门课

以模型为驱动,了解“机器学习”的本质

本课力图引导大家以模型为驱动,进行学习。

我选择了几种经典模型(例如:线性回归,逻辑回归,决策树,支持向量机,条件随机场,K 均值等),作为入门的进阶。

初次学习模型,不必贪多。但就这些选定的模型,一定要搞清楚其问题域、模型函数、目标函数、训练算法……潜入到数学公式推导的层面,对每一步的公式变换和对应物理意义有所理解,然后再去实践。

这一个个的模型,就是机器学习的“肌肉”,我们要通过观察学习这一块块肌肉,以其为载体来了解机器学习的核心——将事物转化为数值,将关系、变换转化为运算——以事实(数据)为依据,以规章(算法)为准绳,通过计算来掌握事物的客观规律(模型)。

机器学习极简入门课

要知道,这些经典模型固然经典,但是到了实际应用中,它们并非神圣不可稍加改变。也不是说机器学习就仅限于这些经典模型。

只有掌握了机器学习精髓的人,才可能灵活运用现有模型去解决实际问题,甚至进一步针对具体问题发明自己的模型和/或算法。

反复学习,从记忆到掌握

当然,达到这种程度并非一撮而就,总要从最简单的模型开始。

根据我的经验,即使是本课列出的这几个最常用也相对简单的模型,要真正掌握,都需要反复学习。

有可能第一遍看完有点似是而非,或者感觉自己明白了,但要自己从头推导又会半截断片儿。

就像刚学完又忘掉生字,或是背诵到一半想不起后续99乘法表的小学生,这都是非常正常的现象。真正原因,就是还没有真正掌握。

反复多学几遍,从头到尾掌握整件事情的逻辑,知道一个模型是怎么从最初设定目标,到一步步实现目标的——当真正掌握了这个过程之后,再回头看一个个具体的模型,每一步都是顺利成章的。

掌握了事物内在的逻辑性,再去记忆,就容易多了。

机器学习极简入门课

学习标准设置得不必太高,比如可以这样:

第一遍学,只要求自己能完全掌握机器学习数据、模型、算法相互作用的基本关系,训练过程和评价标准。具体的模型,掌握最简单的线性回归就可以。

只要 end2end 掌握了第一个模型,做到:能够从模型函数开始推导出目标函数,再用梯度下降算法求解,用(伪)代码实现梯度下降求解过程。

第一遍学习掌握一个模型;第二遍学习就不难掌握2-3个模型;第三遍就有可能掌握本课列出的大部分模型………如此由易到难,螺旋式推进

对于一些数学模型本身就比较复杂的,比如条件随机场、隐马尔科夫这类涉及场论和势函数的模型,如果直接入手,往往会被卡在模型函数本身上。但是当有了前面几个模型的基础,了解了更抽象层面的原理,掌握起来就容易多了。

数学需要多精深?

机器学习极简入门课

很多同学,想学机器学习。但是一上来就看模型,看到一大堆炫酷的公式,往往感觉很吓人。

有些人也就因此萌生退意,要么放弃,要么只用现成工具把模型当作黑盒使用。

其实,学习经典模型,并不需要多么精深的数学功底,理工科大学本科的数学课就基本够用了。

基础数学概念

在学习的最初阶段,只要:

  • 学过坐标系;
  • 了解函数、向量和矩阵的概念;
  • 能从直观角度对求导、求微与函数的关系有所理解;
  • 并掌握最简单的矩阵运算。

就可以对本课中的经典机器学习模型有一定深度的感性认识了。

本课中的公式都是减了再减的,务必要掌握。如果实在数学工具掌握太少,最次最次,也至少要读懂一组公式推导中的第一个和最后一个式子——

  • 读懂它们都针对哪些变量进行了怎么样的运算;

  • 这些变量和运算对应的物理意义是什么;

  • 第一个式子是对哪种真实场景的数学描述;

  • 最后推导的结果又具备怎样的特征。

    机器学习极简入门课

初次学习者,可以暂且掌握到这个深度。

两条路径反刍数学知识

当然,仅仅这样的程度,套用现成模型还将就,却不可能达到灵活运用的程度。

所以,还是建议同学们力求理解每一步推导过程。

如果有可能,可以事先复习一下大学本科的高数(数学分析)、概率统计和线性代数课本。或者,在学习模型的过程中,一旦遇到了数学上的阻碍,就回头去查找相应知识。

制定数学知识速查手册

很多数学问题,之所以让人头大,其实并不是真的有多难,而是符号系统比较复杂,运算繁复,或者运算所表达的物理意义多样。

很多时候造成困扰是因为想不起来这里用到什么定理,哪个公式,或者这样操作表达的含义是什么了。

如果把常用的细小知识点都记录下来,按主题整理在一起,做成速查手册(小字典),需要用的时候迅速查找一下对应点,效果往往意想不到地好。能让我们学习“机器学习”的道路顺畅不少。

下面是两个我自己制作的例子,大家可以参考一下:

日常学习 Tips

机器学习极简入门课

关联

把新学到的东西和日常的工作、生活联系起来,进行思考。比如:将理论代入现实,不同领域间事物的类比,相似内容的对比等。

以身边的实例来检测理论。不仅能够加深理论知识的理解,而且有助于改进日常事物的处理方法。

记录

准备一个笔记本,纸的或者电子的。有什么发现、感想、疑问、经验等等,全都记下来。

如果是对某个话题、题目有比较完整的想法,最好能够及时整理成文,至少记录下要点。

隔一段时间后把笔记整理一下,把分散的点滴整理成块,一点点填充自己的“思维地图”。

分享

知识技能这种东西,学了,就得“得瑟”——把学习到的新知识、理论、方法,分享给更多的人。如此一来,倒逼自己整理体系、记忆要点,堪称与人方便自己方便的最佳实例。

把自己的感想、体会、经验分享出来也是同理,还多出了锻炼自己逻辑思维能力和归纳总结能力。一举多得,何乐而不为?

第04课:为什么要学 Python 以及如何学 Python
第05课:机器是如何学习的?
第06课:机器学习三要素之数据、模型、算法
第07课:模型的获取和改进
第08课:模型的质量和评判指标
第09课:最常用的优化算法——梯度下降法
第10课:线性回归——从模型函数到目标函数
第11课:线性回归——梯度下降法求解目标函数
第12课:朴素贝叶斯分类器——从贝叶斯定理到分类模型
第13课:朴素贝叶斯分类器——条件概率的参数估计
第14课:逻辑回归——非线性逻辑函数的由来
第15课:逻辑回归——用来做分类的回归模型
第16课:决策树——既能分类又能回归的模型
第17课:决策树——告诉你 Hello Kitty 是人是猫
第18课:SVM——线性可分 SVM 原理
第19课:SVM——直观理解拉格朗日乘子法
第20课:SVM——对偶学习算法
第21课:SVM——线性 SVM,间隔由硬到软

阅读全文: http://gitbook.cn/gitchat/column/5ad70dea9a722231b25ddbf8