![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习极简入门
最基本的原理 / 最经典的案例 / 极小数据样本
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
叶锦鲤
微信公众号:yuesiyuedu,微信个人号:julia_li_2013
展开
-
第01课:为什么要学原理和公式推导
机器学习最直接的应用,就是把模型运用到实际业务上去解决问题。本课所讲到的几个经典模型,是机器学习发展的几十年间,由前辈总结出的解决特定问题的固定模式,已经在实践中证明有效。学会这些模型,一则可以以它们为载体理解“机器学习”这件事情本身是一种怎样的机制;二则掌握了模型,也就掌握了当前许多实际问题有效的解决方案。学模型就要学公式推导吗?在实际应用中,如果我们要运用一种模型,那么其实有很多现...原创 2020-09-22 12:24:28 · 765 阅读 · 0 评论 -
开篇词 | 入门机器学习,已迫在眉睫
大家好,我是李烨。现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师。先后参与过聊天机器人、大数据分析平台等项目的开发。在未来的 10 周里,我将通过“机器学习极简入门课”与同学们分享关于机器学习方面的一些心得。课程背景首先,我们来看一下当前机器学习领域招聘市场的行情。上面表格中所有带有“算法”、“人工智能”、“数据挖掘”、...原创 2020-09-22 12:24:26 · 417 阅读 · 0 评论 -
第02课:学习机器学习原理,改变看待世界的方式
学习机器学习,除了有上一篇中讲述的那些务实的作用,在务虚方面同样有用。学习一个个模型运作的原理,看到现实的事物如何转化为数字被计算,结果又如何映射回现实世界来影响我们的生活。对机器学习的掌握,能为我们客观认识现实带来下面这些帮助。破除迷信在这个人工智能看起来要席卷一切的年代,不光是正在或者立志于在 AI 领域做技术工作的人,任何人都有必要从原理角度了解一下机器学习、深度学习是干什么的,如...原创 2020-09-22 12:24:24 · 386 阅读 · 0 评论 -
第03课:如何学习“机器学习”
学习“机器学习”这件事,我走过很长的一段弯路。有一些心得、体会和方法,在此和大家分享。以模型为驱动,了解“机器学习”的本质本课力图引导大家以模型为驱动,进行学习。我选择了几种经典模型(例如:线性回归,逻辑回归,决策树,支持向量机,条件随机场,K 均值等),作为入门的进阶。初次学习模型,不必贪多。但就这些选定的模型,一定要搞清楚其问题域、模型函数、目标函数、训练算法……潜入到数学公式推导的...原创 2020-09-22 12:24:23 · 317 阅读 · 0 评论 -
第04课:为什么要学 Python 以及如何学 Python
学了模型,还需要学习编程吗?对这个问题,答案是肯定的!虽然我们学习的是机器学习原理,但是,并不等于说就可以停留在“原理”层面,彻底 Hands-Off。恰恰是为了学好原理,我们需要具备最基本的编程能力。原因在于:在讲述过程中,对于原理细节的展现,经常会以代码形式出现。在这个时候,就算是仅仅为了理解,也得能读得懂代码。想要真的理解原理,就会涉及动手实践的问题。一般来说,经过自己去训练一...原创 2020-09-22 12:24:21 · 253 阅读 · 0 评论 -
第05课:机器是如何学习的?
什么是机器学习?字面理解,就是让机器自己学会某种东西。更准确一点,机器学习就是:让计算机程序(机器),不是通过人类直接指定的规则,而是通过自身运行,习得(学习)事物的规律,和/或事物间的关联。对人类而言,一个概念对应的是具体的事物,一般而言,人类对其有所认知的事物,都不是孤立的,互相之间有着各种各样的关联。比如说: 当我们对一个人说“苹果”的时候,TA 可能马上就会想到那个圆圆的,香甜...原创 2020-09-22 12:24:20 · 329 阅读 · 0 评论 -
第06课:机器学习三要素之数据、模型、算法
机器学习三要素包括数据、模型、算法。简单来说,这三要素之间的关系,可以用下面这幅图来表示:总结成一句话:算法通过在数据上进行运算产生模型。下面我们先分别来看三个要素。数据关于数据,其实我们之前已经给出了例子。源数据上一篇中,图1老鼠和其他动物和图2小马宝莉六女主就是现实中的两份样本集合。如果我们要训练“老鼠分类器”,或者做“小马种族聚类” 分析的话,它们就是原始数据(Raw Dat...原创 2020-09-22 12:24:18 · 568 阅读 · 0 评论 -
第07课:模型的获取和改进
前面两篇文章,我们从直观的角度讲解了机器学习的最基本原理,并且解释了机器学习三要素:数据、算法和模型。“应用机器学习技术”这件事情,具体到微观的行为,其实就是:使用机器学习模型来预测数据,得到预测结果。然后,预测结果可能会作为下一步业务逻辑的依据。要使用机器学习模型,首先要获得它。在有了数据和算法的情况下,我们需要通过一个过程来获得模型,这个过程就叫做:训练。获取模型的过程在前面讲述三要素...原创 2020-09-22 12:24:17 · 573 阅读 · 0 评论 -
第08课:模型的质量和评判指标
衡量模型质量通过训练得到模型后,我们就可以用这个模型,来进行预测了(也就是把数据输入到模型中让模型吐出一个结果)。预测肯定能出结果,至于这个预测结果是否是你想要的,就不一定了。一般来说,没有任何模型能百分百保证尽如人意,但我们总是追求尽量好。什么样的模型算好呢?当然需要测试。当我们训练出了一个模型以后,为了确定它的质量,我们可以用一些知道预期预测结果的数据来对其进行预测,把实际的预测结...原创 2020-09-22 12:24:15 · 451 阅读 · 0 评论 -
第09课:最常用的优化算法——梯度下降法
在这里,我们有必要从抽象角度,先好好解释一下优化算法。学习的目标在前面,我们讲到,每一个机器学习模型都有一个目标函数,而学习的目标,就是最小化目标函数。直观而言,当我们已经获得了一个函数,最小化该函数其实就是,在其自变量取值范围内,找到使得因变量最小的那个自变量取值点。是不是所有函数都能够在自变量取值范围内找到因变量最小值呢?显然不是。 比如,这个多项式函数:y=x,x 属于实数—...原创 2020-09-22 12:24:13 · 346 阅读 · 0 评论 -
第10课:线性回归——从模型函数到目标函数
从数据反推公式假设我们获得了这样一张表格,上面列举了美国纽约若干程序员职位的年薪:大家可以看到,表格中列举了职位、经验、技能、国家和城市几项特征。除了经验一项,其他都是一样的。不同的经验(工作年限),薪水不同。而且看起来,工作年头越多,工资也就越高。那么我们把 Experience 与 Salary 抽取出来,用 x 和 y 来分别指代他们。它们是不是成正比的呢?y 与 x 没有比例关...原创 2020-09-22 12:24:12 · 421 阅读 · 0 评论 -
第11课:线性回归——梯度下降法求解目标函数
y = a + bx 的目标函数上一篇文章,我们解释了线性,本文我们回到求解线性回归目标函数的问题上。前面已知,线性回归的目标函数为:$J(a,b) = \frac{1}{2m}\sum_{i=1}^{m}(a + bx^{(i)} - y^{(i)})^2$J(a,b) 是一个二元函数。我们要求的是:两个参数 a 和 b 的值。要满足的条件是:a 和 b 取这个值的时候,J(a,b) 的...原创 2020-09-22 12:24:11 · 907 阅读 · 0 评论 -
第12课:朴素贝叶斯分类器——从贝叶斯定理到分类模型
前面有关线性回归的课程中,我们讲了一个回归模型,我们现在来讲一个分类模型。分类 vs 回归分类模型 VS 回归模型,最根本的不同:前者是预测一个标签(类型、类别);后者则是预测一个量。换一个角度来看,分类模型输出的预测值是离散值;而回归模型输出的预测值则是连续值。也就是说输入一个样本给模型,回归模型给出的预测结果是在某个值域(一般是实数域或其子集)上的任意值;而分类模型则是给出特定的某几...原创 2020-09-22 12:24:09 · 323 阅读 · 0 评论 -
第13课:朴素贝叶斯分类器——条件概率的参数估计
不再简单地将频率当作概率已知朴素贝叶斯公式:$P(C|F_1,F_2,…, F_n) =\frac{1}{Z}P(C) \prod_{i=1}^{n} P(F_i|C)$其中,$F_i$ 表示样本的第 $i$ 个特征,$C$ 为类别标签。$P(F_i | C)$ 表示样本被判定为类别 $C$ 前提下,第 $i$ 个特征的条件概率。之前,对于 $P(F_i |C)$ 我们用频率来作为概率的...原创 2020-09-22 12:24:07 · 898 阅读 · 0 评论 -
第14课:逻辑回归——非线性逻辑函数的由来
逻辑回归今天我们要讲的模型叫做 Logistic Regression (LR),一般翻译为逻辑回归。LR 是一种简单、高效的常用分类模型——有点奇怪是吧,为什么名字叫做“回归”却是一个分类模型,这个我们稍后再讲。先来看看这个 LR 本身。LR 的模型函数记作:$y=h(x)$,具体形式如下:$h_\theta(x) = \frac{1}{1 + e^{-\theta^Tx }} $对应...原创 2020-09-22 12:24:06 · 394 阅读 · 0 评论 -
第15课:逻辑回归——用来做分类的回归模型
现在我们回到 LR 模型本身。回归模型做分类从前面关于分类与回归的定义来看,分类模型和回归模型似乎是泾渭分流的。输出离散结果的就是用来做分类的,而输出连续结果的,就用来做回归。我们前面讲的两个模型:线性回归的预测结果是一个连续值域上的任意值,而朴素贝叶斯分类模型的预测结果则是一个离散值。但 LR 却是用来做分类的。它的模型函为:$h_\theta(x) = \frac{1}{1 + e^...原创 2020-09-22 12:24:04 · 555 阅读 · 0 评论 -
第16课:决策树——既能分类又能回归的模型
决策树前面我们讲了线性回归和朴素贝叶斯分类模型。前者只能做回归,后者只能做分类。但本文中要讲的决策树模型,却既可以用于分类,又可以用于回归。什么是决策树决策树是一种非常基础又常见的机器学习模型。一棵决策树(Decision Tree)是一个树结构(可以是二叉树或非二叉树),每个非叶节点对应一个特征,该节点的每个分支代表这个特征的一个取值,而每个叶节点存放一个类别或一个回归函数。使用决策树...原创 2020-09-22 12:24:03 · 883 阅读 · 0 评论 -
第18课:SVM——线性可分 SVM 原理
注意:从今天开始,我们的学习之旅进入了一个新的阶段。 之前我们讲过的几个模型:线性回归、朴素贝叶斯、逻辑回归和决策树,其背后数学原理的难度属于初级。而接下来要讲的 SVM 和 SVR 则上升到了中级。 在下面的 7 篇课程中,我们将不会再看到可爱、搞笑的图片和轻松的调剂,而要一步步剥离清楚 SVM/SVR 的出发点与运作过程。线性可分和超平面二分类问题在机器学习的应用中,至少...原创 2020-09-22 12:24:01 · 404 阅读 · 0 评论 -
第17课:决策树——告诉你 Hello Kitty 是人是猫
Hello Kitty 的种族问题Hello Kitty,一只以无嘴造型40年来风靡全球的萌萌猫,在其40岁生日时,居然被其形象拥有者宣称:Hello Kitty 不是猫!2014年八月,研究 Hello Kitty 多年的人类学家 Christine R. Yano 在写展品解说时,却被 Hello Kitty 持有商三丽鸥纠正:Hello Kitty 是一个卡通人物,她是一个小女孩,是一位...原创 2020-09-22 12:24:00 · 364 阅读 · 0 评论 -
第19课:SVM——直观理解拉格朗日乘子法
上一篇,我们获得了线性可分 SVM 的目标函数:一个带约束条件的求极值问题。而拉格朗日乘子法,恰恰是一种多元函数在变量受到条件约束时,求极值的方法。正好可以用来解决 SVM 的目标函数最优化。我们在此不做严格的拉格朗日乘数法正确性的数学证明,而是以最简单的函数形式为例,从直观带大家来领略整个方法的每一个步骤。换句话说,本文是帮我们积累一些对于“为什么将目标函数转化成拉格朗日函数再最优化是可行...原创 2020-09-22 12:23:58 · 417 阅读 · 0 评论 -
第20课:SVM——对偶学习算法
对偶问题上一篇我们用 x 和 y 各代表一个维度,用 $z = f(x,y)$ 和 $g(x,y) = 0$ 分别代表一个二元函数和一个一元函数。这样做是为了和图形对比的时候能看得清楚,为了可视化方便。一般情况下,我们就用 $x$ 代表一个函数的自变量。这个 $x$ 本身可以是多维的。而且,同一个函数可能同时既有等式约束条件,又有不等式约束条件。主问题现在我们考虑在 $d$ 维空间上有 ...原创 2020-09-22 12:23:57 · 376 阅读 · 0 评论 -
第21课:SVM——线性 SVM,间隔由硬到软
从线性可分 SVM 到线性 SVM从现实情况引出线性 SVM前面连续三篇讲得都是线性可分 SVM,这种 SVM 学习的训练数据本身就是线性可分的——可以很清晰地在特征向量空间里分成正集和负集。线性可分 SVM 正负样本之间的间隔叫做“硬间隔”,也就是说在这个“隔离带”里面,肯定不会出现任何训练样本。我们不难想到,这种情况在现实生活中其实是很少见的。更多的时候,可能是像下面这个样子: 如...原创 2020-09-22 12:23:55 · 336 阅读 · 0 评论 -
第22课:SVM——非线性 SVM 和核函数
非线性分类问题遇到分类问题的时候,最理想的状态,当然是样本在向量空间中都是线性可分的,我们可以清晰无误地把它们分隔成不同的类别——线性可分 SVM。如果实在不行,我们可以容忍少数不能被正确划分,只要大多数线性可分就好——线性 SVM。可是,如果我们面对的分类问题,根本就是非线性的呢?比如像下面这样:图中红色的点是正类样本,蓝色的点是负类样本。通过我们的观察可知,它们之间的界限是很分明的,...原创 2020-09-22 12:23:54 · 514 阅读 · 0 评论 -
第23课:SVR——一种“宽容”的回归模型
严格的线性回归之前我们讲过线性回归:在向量空间里用线性函数去拟合样本。该模型以所有样本实际位置到该线性函数的综合距离为损失,通过最小化损失来求取线性函数的参数。参见下图: 对于线性回归而言,一个样本只要不是正好落在最终作为模型的线性函数上,就要被计算损失。如此严格,真的有利于得出可扩展性良好的模型吗?宽容的支持向量回归(SVR)今天我们来介绍一种“宽容的”回归模型:支持向量回归(Su...原创 2020-09-22 12:23:52 · 1616 阅读 · 0 评论 -
第24课:直观认识 SVM 和 SVR
SVM 实例前面我们学习了 SVM 的理论,讲了线性可分 SVM、线性 SVM、非线性 SVM 和核函数。在本文,我们将通过几个例子,来直观了解一下这些概念。我们采用一维特征,这样可以将样本直接对应到直角坐标中的点,看起来非常直观,便于理解。线性可分 SVM先来看一个最简单的例子:线性可分 SVM: import numpy as np import matplotlib...原创 2020-09-22 12:23:51 · 625 阅读 · 0 评论 -
第25课:HMM——定义和假设
一些基本概念在正式讲解隐马尔可夫模型(Hidden Markov Model,HMM)之前,有几个概念需要搞清楚。概率模型(Probabilistic Model)所谓概率模型,顾名思义,就是将学习任务归结于计算变量的概率分布的模型。概率模型非常重要。在生活中,我们经常会根据一些已经观察到的现象来推测和估计未知的东西——这种需求,恰恰是概率模型的推断(Inference)行为所做的事情。...原创 2020-09-22 12:23:49 · 340 阅读 · 0 评论 -
第26课:HMM——三个基本问题
上一篇我们讲了什么是 HMM。和我们之前学习过的几个模型对比,HMM 挺别扭的。其他模型都是直接把特征对应成一个结果,当然,这个结果的取值本身可以是连续的(回归模型)或者离散的(分类模型),不过整个过程里涉及到的也就是输入变量(特征)和预测结果两部分数据。HMM 却是变量自己就分成两类:状态变量和观测变量,而且,模型的运行过程也是来来回回在这两类变量之间转圈圈,这到底有什么用呢?三个基本问题...原创 2020-09-22 12:23:48 · 1084 阅读 · 0 评论 -
第27课:HMM——三个基本问题的计算
概率计算问题继续上一篇的例子。现在模型已经给定,观测序列也已经知道了,我们要计算的是 $O$ = (红宝石,珍珠,珊瑚) 的出现概率,我们要求的是 $P(O|\lambda)$。直接计算用直接计算法来求 $\lambda$ 情况下长度为 $T$ 的观测序列 $O$ 的概率:$P(O|\lambda) = \sum_{S \in S_T} P(O,S|\lambda)$其中 $S_T$ ...原创 2020-09-22 12:23:47 · 520 阅读 · 0 评论 -
第28课:CRF——概率无向图模型到线性链条件随机场
概率无向图定义概率无向图模型(Probabilistic Undirected Graphical Model)是一个可以用无向图表示的联合概率分布。它的整体结构是一张图(Graph),图中每一个节点表示一个或者一组变量,节点之间的边表示这两个/组变量之间的依赖关系。概率无向图模型还有一个名字——马尔可夫随机场。下图就是一个简单的马尔可夫随机场:势函数和团关于马尔可夫随机场,有几个...原创 2020-09-22 12:23:45 · 499 阅读 · 0 评论 -
第29课:CRF——三个基本问题
线性链 CRF 的形式化表示一般形式设 $P(Y|X)$ 为线性链 CRF,在随机变量 $X$ 取值为 $x$ 的条件下,随机变量 $Y$ 取值为 $y$ 的条件概率具有如下形式:$P(y|x) =\frac{1}{Z(x)} \exp(\sum_{i,k} \lambda_k t_k (y_{i-1}, y_i, x, i) + \sum_{i,l}\mu_l s_l (y_i, x, i...原创 2020-09-22 12:23:44 · 500 阅读 · 0 评论 -
第30课:从有监督到无监督:由 KNN 引出 KMeans
从有监督学习到无监督学习有监督学习和无监督学习,是机器学习两个大的类别。我们之前一直讲得都是有监督学习,毕竟有监督学习还是现阶段机器学习在实际应用中的主流。关于有监督学习和无监督学习的区别,在第5课里有过讲解。在此,进一步说明下。有监督学习(Supervised Learning)所谓有监督学习,即:训练数据同时拥有输入变量($x$)和输出变量($y$);用一个算法把从输入到输出的映...原创 2020-09-22 12:23:43 · 534 阅读 · 0 评论 -
第31课:KMeans——最简单的聚类算法
什么是聚类(Clustering)聚类并非一种机器学习专有的模型或算法,而是一种统计分析技术,在许多领域受到广泛应用。广义而言,聚类就是通过对样本静态特征的分析,把相似的对象,分成不同子集(后面我们将聚类分出的子集称为“簇”),被分到同一个子集中的样本对象都具有相似的属性。在机器学习领域,聚类属于一种无监督式学习算法。许多聚类算法在执行之前,需要指定从输入数据集中产生的分簇的个数。除非事先...原创 2020-09-22 12:23:41 · 491 阅读 · 0 评论 -
第32课:谱聚类——无需指定簇数量的聚类
无须事先指定簇数量的聚类说到聚类,最常见的模型当然是 KMeans。不过如果使用 KMeans 的话,需要在算法运行前指定 $k$ 的值——也就是要在训练前指定最后的结果被分为几簇。现实中有相当多的聚类问题,无法在事先指定簇的数量。KMeans 就无法完成这类任务。好在聚类方法有很多,有一种算法,不仅不需要事先指定 $k$ 值,还可以在结果中保证每个簇中的个体数量低于某个量值,这就是——基于...原创 2020-09-22 12:23:40 · 3337 阅读 · 0 评论 -
第33课:EM算法——估计含有隐变量的概率模型的参数
含有隐变量的概率模型通过极大化对数似然函数求解概率模型参数设有概率模型,${X}$ 表示其样本变量,$\Theta$ 表示其参数。我们知道这个概率模型的形式,又有很多的样本数据($X$ 取值已知),但是却不知道概率模型的具体参数值($\Theta$ 取值未知)。有没有办法求出 $\Theta$ 的取值呢?早在学习朴素贝叶斯模型的时候,我们就知道:当一个概率模型参数未知,但有一系列样本数据时...原创 2020-09-22 12:23:38 · 818 阅读 · 0 评论 -
第34课:GMM——将“混”在一起的样本各归其源
个体 vs 集体前面我们讲的 KMeans 和谱聚类都是将特征空间中的一个个个体,依据它们相互之间的关系,归属到不同的簇中。用个形象点的比喻,我们将特征空间想象成一个二维的平面,样本数据则是“散落”在这个平面上的一颗颗“豆子”。前面讲的聚类方法就好像:我们根据某种原则(KMeans 和谱聚类的具体原则不同),把这些“散落在地”的“豆子”捡到一个个“筐”里。这些“豆子”原本并没有一个特定的归...原创 2020-09-22 12:23:37 · 311 阅读 · 0 评论 -
第35课:GMM——用 EM 算法求解 GMM
所谓高斯混合模型(GMM),顾名思义,就是将若干个概率分布为高斯分布的分模型混合在一起的模型。在具体讲解 GMM 之前,我们先来看看高斯分布。高斯分布高斯分布密度函数高斯分布(Gaussian Distribution),又名正态分布(Normal distribtion),它的密度函数为:$f(x;\mu,{\sigma^2}) = \frac{1}{\sqrt{2\pi{\sigma...原创 2020-09-22 12:23:35 · 453 阅读 · 0 评论 -
第36课:PCA——利用数学工具提取主要特征
泛滥成灾的特征维度维度灾难维数灾难(Curse of Dimensionality,也可以直接翻译为“维度诅咒”)是一种在分析或组织高维(通常是几百维或者更高维度)数据时会遇到的现象。既然叫灾难或者诅咒,可见不是好现象。这个说法,最早是由理查德·贝尔曼(Richard E. Bellman)——美国应用数学家,同时也是动态规划算法的创始人——提出来的。他是在思考动态优化的过程中发现了这件事...原创 2020-09-22 12:23:34 · 481 阅读 · 0 评论 -
第37课:PCA——用 SVD 实现 PCA
PCA 优化算法已知 PCA 的目标函数是:$\arg{\min_W {-\mathbf {tr}(W^TXX^TW)}}$$s.t. W^TW = I$PCA 的优化算法要做的就是最优化上面这个函数。算法一既然优化目标有等式约束条件,那么正好用我们之前学过的拉格朗日乘子法。我们令:$L(W) =\mathbf {tr}(W^TXX^TW)+\lambda (W^TW−I) $...原创 2020-09-22 12:23:33 · 873 阅读 · 0 评论 -
第38课:人工智能和神经网络
人工智能、机器学习和深度学习人工智能(Artificial Intelligence,AI)人工智能的字面意义就已经解释了它的内在含义,所谓人工智能,包括两个部分:人工:人造的,非天生的(非生物的);智能:能够独立完成一件事情。AI 的载体必须是纯粹由人类设计制造出来的,天生拥有部分智能,经过人类训练加深的情况不算在内。比如一个狗或者一只猩猩被训练得能够做一些原本人类才能做的事情,...原创 2020-09-22 12:23:31 · 469 阅读 · 0 评论 -
第39课:几种深度学习网络
神经网络的历史沿革缘起1943年,神经生理学家和神经元解剖学家 Warren McCulloch 和数学家 Walter Pitts 提出了神经元的数学描述和结构,并且证明了只要有足够的简单神经元,在它们互相连接并同步运行的情况下,可以模拟任何计算函数。这样开创性的工作被认为是 NN 的起点。几度兴衰1958年,计算机学家 Frank Rosenblatt 提出了一种具有三级结构的 N...原创 2020-09-22 12:23:30 · 338 阅读 · 0 评论