《统计学习方法》笔记——什么是机器学习

知识背景

在经过了一个月的时间完成了吴恩达的《机器学习》公开课后,对于机器学习这个概念,其涉及的一些方法都有了一些模糊的认识,但是由于是公开课的性质,Ng只是简单介绍了关于机器学习的典型模型和方法,以及一些工程实践经验。因此,为了对机器学习有一个更加深入的研究,在接下来的时间里,我将利用《统计学习方法》(李航)对于机器学习背后的数学理论进行学习,利用《机器学习实战》对机器学习中的经典算法进行实践。

统计学习

我们人类是怎样学习的

以我们的语言能力为例吧,相信许多人都看过一个段子:“研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的”。尽管这段文字中出现语序颠倒的情况,但是我们却可以理解这句话的含义,为什么呢?

  1. 首先,由于我们背古文的时候背半天都无法完全记忆下来,因此肯定不是我们在学习语言时把所有可能的组织形式(甚至包括顺序颠倒的情况)都记忆下来。
  2. 其次,中文中存在大量的多义词,因此在我们理解一句话时肯定不会是把简单的把每个字替换成其含义来解读一句话。关于这个我也能给出一个例子:南京市/长江大桥 & 南京/市长/江大桥。

数学给了我们一种解释:统计规律
当我们在阅读时,我们通过眼睛这个传感器,将文字的图像输入大脑,大脑根据过去学习到的统计规律,通过一句话中出现的各个单字和单词,自动选择了一种使用频率最大的解释方式;而对于上述第二种情况,则是通过上下文来确定两种解读方式的可能性大小,从而让我们能够准确理解二义的句子。(这里说的统计规律是一种解释,并在诸多工程实践中表现优良,但大脑到底是怎么工作的?这还得靠生物医学工作者去寻找解答,这也就是为什么说机器学习中的神经网络并不是模仿真正的大脑)
因此统计学习和机器学习其实是一回事。(其实这里直接得出这个结论有些牵强,在后文中我还会有解释)

什么是统计学习

在有了上面的思考后,就可以解释统计学习是什么了。采用李航《统计学习方法》书中的解释:

统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。

这条定义虽然很短,但是涵盖了非常丰富的内容。从中我们可以抽出几个关键字来理解统计学习:数据、概率模型、预测。

数据

统计这门学科的基础就是数据,我们熟悉的平均数、方差、中位数、众数等统计量都是用来描述数据的统计量,统计学之所以搞出这么多的统计量就是希望能够找出看似杂乱无章的数据中的不变量,换言之,就是数据的统计规律。当我们希望能够把握某一现实问题的规律时,必须要有强大的数据支撑,反过来,如果没有数据,那就没有所谓的客观规律。

概率模型

在统计的过程中,人们会发现尽管每一个样本的具体情况在抽样前都是不确定的,但是随着抽样数目的增加,有一些量会逐步趋于稳定,于是人们就从统计这个实践过程中结合这种稳定的现象,抽象出了概率这一概念。然后反过来利用概率这个数学概念来指导我们的统计过程。
上面关于概率的讨论其实是十分空洞的,下面结合例子来解释概率的重要性。
当我们面对一个苹果的时候,我们怎么能知道是苹果而不是梨或者其他东西呢?我们分辨苹果的一般过程如下:

  1. 利用眼睛,确认到目标是一个近似球形的东西;并且颜色为红色(或者黄绿色)
  2. 用手可以确认到其表面相对光滑;硬度适中,既不像棉花一般软绵绵的,也不像石头一般坚硬
  3. 要下一块后,味道是甜的

上述过程就是从数据中寻找特征的一个过程,从一个苹果(抽样样本)中获得关于这个苹果的一些特征,然后传递给大脑进行处理,最终完成识别的过程。
换个方式,假如我们只给出关于苹果的部分特征信息:近似球形,黄绿色(不熟的苹果),你能给出这是个苹果的判断吗?但从特征看起来,似乎部分品种的梨也符合上述两个特征。
关于上述的识别过程,统计学习给出了一个概率模型来解释:
设x为一个特征向量
x = [ x 1 x 2 ⋯ x n ] , n ∈ R x=[\begin{matrix} x_1& x_2&\cdots&x_n\end{matrix}],n\in R x=[x1x2xn],nR
这里的向量x的每一维度对应一个具体的特征,可以是颜色、大小、形状等任何特征。当我们获得一个充分的特征向量,这个特征向量中的每一项都是典型的苹果应有的特征时,我们就可以100%确认,拥有这些特征的物品是个苹果。用数学语言来表达就是:
p ( y ∣ x ) = 1 x = 苹 果 的 典 型 特 征 , y = 苹 果 p(y|x) = 1 \\ x=苹果的典型特征,y=苹果 p(yx)=1x=,y=
但是如果如上面只给出如下特征,
x = [ 近 似 球 形 黄 绿 色 ] x=[\begin{matrix} 近似球形 & 黄绿色\end {matrix}] x=[绿]
我们则不能确认这到底是什么东西,用数学语言表达则是
p ( y = 苹 果 ∣ x ) = 0.3 p ( y = 梨 ∣ x ) = 0.3 p ( y = 塑 料 模 型 ∣ x ) = 0.1 ⋮ p(y=苹果|x) = 0.3 \\ p(y=梨|x) = 0.3 \\ p(y=塑料模型|x) = 0.1 \\ \vdots p(y=x)=0.3p(y=x)=0.3p(y=x)=0.1
上面的概率的具体取值有待商榷,但是这个基本过程确实很好的描述了我们识别物体的一般过程,因此概率是个非常好的工具。
上面主要讨论了概率可以用来描述一些现实问题,下面将解释如何用概率模型来完成预测的目的。

概率说到底只是一个数学概念,获得概率后我们也只是知道一个可能性的大小,如果希望能得到一个预测,还需要一步判决。

假设我们已知条件概率:
p ( y ∣ x ) p(y|x) p(yx)

分类问题
当面对分类问题时,我们就可以通过这个概率分布确认y是什么(取何值)概率最大,然后将满足这个特征的物品(数据)判定为对应的类别。

数学语言描述为:
Y = arg ⁡ max ⁡ y p ( y ∣ x ) Y = \arg \max_y{p(y|x)} Y=argymaxp(yx)

回归问题
比如预测房价,x为某一个房子的所有属性,y为房价,那么可以采用 E p ( y ∣ x ) [ Y ] E_{p(y|x)}[Y] Ep(yx)[Y]
来作为最终判决。

上面关于分类问题和回归问题只是给出两种最常见的判决方式,当面对不同问题时,是可以选择其他的判决方式的。

总结一下什么是模型,模型就是接受一个输入x,并输出一个对应的y。

其中x为某一组特征,y为该模型对于已知特征x做出的预测。

所以,所谓的模型,就是建立特征x和目标y之间的一个映射关系,这个映射关系是基于概率的。

训练

训练是什么?训练就是从数据中学习的过程,学习到的东西就是概率模型中的基础——统计规律。(关于训练这里不展开讨论,下文中将会有解释)

统计学习怎么学习的

概率真的存在吗

从数学角度来看频率是一个统计量,而概率是一个客观存在。频率会随着抽样的过程不断变化,而概率则是一个客观存在,永远不会变化。因此概率蕴含着规律,而频率不行。这就是为什么分析问题时,我们往往使用概率而不会使用频率的原因。但是,概率如何得知呢? 稍微有点统计学常识的人都知道,频率会随着样本的增加而逼近概率,但是概率的准确值如何得知呢?

对于这个问题,数学方面只给出了极限情况下频率等于概率(大数定律),但是在我们的现实中,不可能达到极限,换句话说,我们实际能得到的永远都是频率。

举个例子:抛硬币这个经典概率事件,我们似乎都默认了正反的概率为[0.5,0.5],但是从未有过证明,也许有人会用古典概型来证明,但是古典概型的使用有着重要前提——所有情况等可能,如何证明抛硬币满足这个条件呢?0.5似乎仅仅只是人们的经验概率分布。

统计来解决

幸运的是,实际问题也不会像数学那么严谨,我们也许无法使用真实的概率来建立模型,但是我们可以通过不断增加样本来不断优化我们的模型,尽管极限我们达不到,但是我们可以通过不断统计新样本的过程来不断逼近概率。

举个例子:比如我们希望知道抛硬币,硬币实验朝上的概率。我们不妨记总试验次数为N,硬币正面朝上的次数记做x,那么我们就可以使用 x N \frac{x}{N} Nx作为概率的估计值。

为什么频率可以用来估计概率?(选读)
因为频率是概率的无偏估计。
证明:
p ( x ) = p x ( 1 − p ) N − x p(x) = p^x (1-p)^{N-x} p(x)=px(1p)Nx
E [ x N ] = E [ x ] N E[\frac{x}{N}]=\frac{E[x]} {N} E[Nx]=NE[x]
由于x符合二项分布,X~B(n,p),有E[x]=Np
E [ x N ] = E [ x ] N = p E[\frac{x}{N}]=\frac{E[x]} {N}=p E[Nx]=NE[x]=p

假如我们只进行一次抛硬币的实验,且得到的结果为正面朝上,那么我们得到的估计概率值为 p ^ 1 = 1 \hat{p}_1=1 p^1=1,当我们不断增加试验次数,估计的概率值也在不断变化,这个变化的过程,就是频率逼近概率的过程。

这里用的逼近的说法不太准确
根据切比雪夫不等式有 P { ∣ 1 N ∑ i = 1 N X i − E X ∣ ≤ ϵ } ≥ 1 − D X N 2 ϵ 2 P\{|\frac{1}{N}\sum_{i=1}^{N}{X_i}-EX|\le\epsilon\}\ge 1-\frac{DX}{N^2\epsilon^2} P{N1i=1NXiEXϵ}1N2ϵ2DX
因此 lim ⁡ x → ∞ P { ∣ 1 N ∑ i = 1 N X i − E X ∣ ≤ ϵ } = 1 {\lim_{x \to \infty}}{P\{|\frac{1}{N}\sum_{i=1}^{N}{X_i}-EX|\le\epsilon\}=1} limxP{N1i=1NXiEXϵ}=1
使参数 ϵ = 0 \epsilon=0 ϵ=0
lim ⁡ x → ∞ P { ∣ 1 N ∑ i = 1 N X i − E X ∣ ≤ 0 } = 1 {\lim_{x \to \infty}}{P\{|\frac{1}{N}\sum_{i=1}^{N}{X_i}-EX|\le0\}=1} limxP{N1i=1NXiEX0}=1
这种收敛形式被称为依概率收敛,和高等数学中的极限的趋向于是不同的

从机器学习的角度来说,就是训练的过程,伯努利模型从多次实验结果(训练数据)中学习到概率p取值的过程。

数据很重要

还是以抛硬币为例,假设其正面朝上的概率是0.5,那么理论上来说在连续抛100次硬币的试验中得到100次正面朝上的概率不为0,也就是可能发生的。在实际的统计过程中,我们无法避免这种样本的出现,我们所能做的,只有保证数据采样的无偏向性和保证数据的完整性。也因此,当你有一组极具代表性的数据(其统计值和被估计值相同或相近)更容易快速的建立一个性能优良的模型。

模型选择也很重要

比如说当我们希望建立一个预测房价的模型,如果我们只采用房子的地段作为唯一特征,那么预测结果往往不会那么精确(根据常识,地段只影响每平方米的价格,总价还需要房子的大小才能确定),这个模型无论学习多少数据都会有着较大的预测误差。

如何选择合适的模型

选择模型的问题就是去比较不同模型之间优劣的问题,由于我们的最终目的是利用模型去进行预测,因此可以采用预测的准确率、预测值和真实值之间的差距大小等来作为评判标准。在统计学习中,提出了一个损失函数的概念:
L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))
损失函数用来描述对于样本X,模型的预测值f(X)和实际值Y的差距,这个函数的具体定义方式并没有固定形式。损失函数最小的模型,就是最优模型。

总结

上面的分析目的是解释概率模型是如何从统计中得到的,用统计去逼近概率模型的过程中可能存在的问题,以及如何评价不同模型之间的优劣。

概率的两种流派

在学习机器学习中,不可避免的要学习两种理解随机变量的流派——频率派和贝叶斯派,由于本人目前能力有限,很难给出一个直观的解释,此处只给出一个我认为讲的很好的博客点击此处

结语

这篇关于《统计学习方法》笔记的开篇博文写了整整两天,开始时,我总是想通过这篇博文把我从吴恩达视频课程中、以及过去一个月的学习中对于机器学习的理解全部写出来。但是在实际书写过程中发现总是会陷入探究具体问题的泥潭中,经过反复思考,我最终将本文的重点聚焦在概率与频率以及数据、模型和训练两个视角上,希望能够通过此文让自己能够梳理知识框架,让感兴趣的人了解机器学习大概是怎么实现的,让初学者大概了解所谓的机器学习中的一些核心思想是什么。
当然,本人能力有限,文章中不免出现错误,也烦请各位读者指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值