0%

机器学习概述

机器学习概述

写这几篇的原因,是因为该复习了…

没错,不然就落下太多了…每次课上一提问就满脑子空白

1. 机器学习

机器学习的种类:

根据处理的数据种类不同,可以分为监督学习、无监督学习和强化学习

1.1 机器学习的概念和种类

监督学习

指计算机算法从监督者(周围的环境)获取知识、信息,并有监督者提供对错指示、告知最终答案的学习过程(训练集、测试集)

泛华能力:根据在学习过程中所获得的经验、技能,对没有学习过的问题也能做出正确解答,使计算机获得某种泛华能力是监督学习的最终目标

应用:预测数值型数据的回归、预测分类标签的分类等

无监督学习

指计算机在没有监督者的情况下,自学获取知识、信息

无监督学习的应用:不仅仅局限于解决像监督学习那样的有明确答案的问题,因而学习目标不必十分明确

在人造卫星故障诊断,视频分析、社交网站分析和声音信号分析等方面应用十分广泛

强化学习

是指在没有监督者提示的情况下,计算机算法对自己预测的结果进行评价的方法

与监督学习的关系:

与监督学习类似,也是使计算机获得对没有学习过的问题作出正确加大的泛化能力为目标,但是在学习过程中,不设置老师提示对错,告知最终答案的环节,然而,如果真的在学习过程中不能从周围环境中获得任何信息的话,强化学习就变成无监督学习了

1.2 机器学习的例子

回归

是对一个或多的自变量和因变量之间的关系进行建模、求解的一种统计方法;即把实函数在样本点附近加以近似的有监督的函数近似方法

以d为实向量x作为输入,实数y作为输出的函数y=f(x)的学习问题

在监督学习力,这里的真实函数关系f是未知的,作为训练集的输入输出样本{(xi,yi)}i=1n\{(x_i, y_i)\}^n_{i=1}是已知的

1574687336324

分类

指对于指定的模式进行识别的有监督的模型识别问题

以d次方的实数向量x作为输入样本,而所有的输入样本,可以被划分为c个类别的问题来进行说明。作为训练集的输入输出样本{(xi,yi)}i=1n\{(xi, yi)\}^n_{i=1}是已知的。但是分类问题中的输出样本yiy_i并不是具体的实数,而是分别代表类别1, 2, …, c

1574687716951

聚类

与分类问题相同,也是模式识别的问题,但是属于无监督学习的一种

即只给出输入样本{xi}i=1n\{x_i\}^n_{i=1},然后判断各个样本分别属于1, 2, …, c中的哪个簇。隶属于相同簇的样本之间具有相似的性质,不同簇的样本之间具有不同的性质。在聚类问题中,如何准确的计算样本之间的相似度是很重要的课题

1574687725551

降维

指从高纬度数据中提取关键信息,将其转换为易于计算的低纬度问题进而求解的方法

当输入样本{xi}i=1n\{x_i\}^n_{i=1}的维数d非常大的时候,可以把样本转换为较低维度的样本{xi}i=1n\{x_i\}^n_{i=1}降维,根据数据种类的不同,可以分为监督学习和无监督学习两种

1574687881922

异常检测

是指寻找输入样本{xi}i=1n\{x_i\}^n_{i=1}中所包含的异常数据的问题

在已知正常数据与异常数据的例子的情况下,其与有监督的分类问题是相同的。但是一般情况下,在异常检测任务重,对于什么样的数据是正常的,在事先是位置的。在这样的无监督的异常检测问题中,一般采用密度估计的方法。把靠近密度中心的数据作为正常的数据,把偏离密度中心的数据作为异常的数据

1.3 机器学习的方法

不同的流派:

产生式分类、判别式分类、频率派、贝叶斯派

1.3.1 生成的分类和识别的分类
判别式的分类

在已知模式x的时候,如果能求得使分类类别y的条件概率p(yx)p(y|x)达到最大值的类别y的话,就可以进行模式识别了

y^=argmaxyp(yx)\hat{y}=\underset{y}{\operatorname{argmax}} p(y | x)

“argmax”是取得最大值时的参数的意思。所以\underset{y}\max p(y | x)是指当y取特定值时p(yx)p(y|x)的最大值,而y^=argmaxyp(yx)\hat{y}=\underset{y}{\operatorname{argmax}} p(y | x)是指当p(yx)p(y|x)取最大值时对应的y的值。在模式识别里,条件概率p(yx)p(y | x)通常也称为后验概率

生成式的分类

在模式识别里,联合概率p(x,y)p(x, y)也称为数据生成概率,通过预测数据生成概率p(x,y)p(x, y)来进行模式识别的分类方法,称为生成的分类

p(yx)=p(x,y)p(x)p(x,y)p(y | \boldsymbol{x})=\frac{p(\boldsymbol{x}, y)}{p(\boldsymbol{x})} \propto p(\boldsymbol{x}, y)

通过上式,我们可以发现模式xx和类别yy的联合概率p(x,y)p(x, y)与后验概率p(yx)p(y|x)是成比例的。正因为有这样的关系,我们可以通过使联合概率p(x,y)p(x, y)达到最大值的方法,来得到使后验概率p(yx)p(y|x)达到最大值的类别y^\hat y

1574688708591

判别式VS生成式

在实际问题中,信息往往是有限的。在解决一个感兴趣的问题中,不要把解决一个更一般的问题作为一个中间步骤。要试图得到所需要的答案,而不是更一般的答案。很可能你拥有足够的信息来很好的解决一个感兴趣的特定问题,但却没有足够的信息来解决一个一般性的问题

p(yx)=p(x,y)p(x)=p(x,y)yp(x,y)p(y | \boldsymbol{x})=\frac{p(\boldsymbol{x}, y)}{p(\boldsymbol{x})}=\frac{p(\boldsymbol{x}, y)}{\sum_{y} p(\boldsymbol{x}, y)}

即使,手头的信息量不足以解决一般性问题,但对于解决特定问题,很可能信息是足够的

如果数据生成概率p(x,y)p(x, y)是一致的,那么,从上面的式子,就可以推出后验概率p(yx)p(y|x)。然而,如果后验概率已知,却不能由此推导出数据生成概率P(x,y)P(x, y)

1.3.2 统计概率与朴素贝叶斯
统计概率方案

在包含参数θ\theta的模型(x,y)(x, y)为例,将模式θ\theta作为决定论的变量,使用手头的训练样本D={xi,yi}i=1nD=\{x_i, y_i\}^n_{i=1}对模式θ\theta进行学习。开入没在最大似然估计算法中,一般对生成训练集D的最容易的方法所对应的模式θ\theta进行学习

maxθi=1yq(xi,yi;θ)\max _{\boldsymbol{\theta}} \prod_{i=1}^{y} q\left(\boldsymbol{x}_{i}, y_{i} ; \boldsymbol{\theta}\right)

在统计概率方法中,如何由训练集D得到高精度的模式θ\theta是主要的研究课题

朴素贝叶斯方法

以包含参数θ\theta的模型q(x,y)q(x, y)为例,将模式θ\theta作为概率变量,对其先验概率p(θ)p(\theta)加以考虑,计算与训练集D相对应的后验概率p(θD)p(\theta|D)。通过运用贝叶斯定理,就可以使用先验概率p(θ)p(\theta)来求解后验概率p(θD)p(\theta|D)

p(θD)=p(Dθ)p(θ)p(D)=i=1nq(xi,yiθ)p(θ)i=1nq(xi,yiθ)p(θ)dθp(\boldsymbol{\theta} | \mathcal{D})=\frac{p(\mathcal{D} | \boldsymbol{\theta}) p(\boldsymbol{\theta})}{p(\mathcal{D})}=\frac{\prod_{i=1}^{n} q\left(\boldsymbol{x}_{i}, y_{i} | \boldsymbol{\theta}\right) p(\boldsymbol{\theta})}{\int \prod_{i=1}^{n} q\left(\boldsymbol{x}_{i}, y_{i} | \boldsymbol{\theta}\right) p(\boldsymbol{\theta}) \mathrm{d} \boldsymbol{\theta}}

在朴素贝叶斯算法中,如何精确的计算后验概率是一个主要的研究课题

2. 学习模型——如何使特定函数与数据集相近似

主要学习模型:

线性模型——线性回归模型

核模型——高斯核函数

层次模型——逻辑回归

2.1 线性模型

f_\theta(x)= \underset{j=1} \sum\theta_j\phi_j(x)=\theta^T\phi(x)

在上式中,ϕj(x)\phi_j(x)是基函数向量ϕ(x)=(ϕ1(x),...,ϕb(x))T\phi(x)=(\phi_1(x), ..., \phi_b(x))^T的第jj个因子,θj\theta_j是参数向量θ=(θ1,...,θb)T\theta=(\theta_1, ..., \theta_b)^T的第jj个因子。另外,b是基函数的个数,T表示转置,我们可以看到,虽然上式依然是基于参数向量θ\theta的线性形式,但是,如果把基函数变为多项式的形式

ϕ(x)=(1,x,x2,,xb1)\phi(x)=\left(1, x, x^{2}, \cdots, x^{b-1}\right)^{\top}

或者变成b=2m+1b=2m+1的三角多项式形式:

ϕ(x)=(1,sinx,cosx,sin2x,cos2x,,sinmx,cosmx)\phi(x)=(1, \sin x, \cos x, \sin 2 x, \cos 2 x, \cdots, \sin m x, \cos m x)^{\top}

上述的线性模型就可以表示复杂的非线性模型了

在上述模型中,一维的输入x还可以扩展为d维的向量形式

x=(x(1),,x(d))\boldsymbol{x}=\left(x^{(1)}, \cdots, x^{(d)}\right)^{\top}

乘法模型:把一维的基函数作为因子,通过使其相乘而获得多维基函数的方法

fθ(x)=j1=1bjd=1bθj1,,jdϕj1(x(1))ϕjd(x(d))f_{\boldsymbol{\theta}}(\boldsymbol{x})=\sum_{j_{1}=1}^{b^{\prime}} \cdots \sum_{j_{d}=1}^{b^{\prime}} \theta_{j_{1}, \cdots, j_{d}} \phi_{j_{1}}\left(x^{(1)}\right) \cdots \phi_{j_{d}}\left(x^{(d)}\right)

加法模型:把一维的基函数作为因子,通过使其相加而获得多维基函数的方法

fθ(x)=k=1dj=1bθk,jϕj(x(k))f_{\theta}(x)=\sum_{k=1}^{d} \sum_{j=1}^{b^{\prime}} \theta_{k, j} \phi_{j}\left(x^{(k)}\right)

乘法模型 VS 加法模型

1574694623618

乘法模型的表现力丰富,但是参数的个数会随着输入维数d呈指数增长。另一方面,虽然加法模型的参数个数是随着输入维数d呈线性增长,但其表现力又相对较弱

线性模型——回归模型

回归:属于监督学习中的一种方法。该方法的核心思想是从连续型统计数据中得到数学模型,然后将该数学模型用于预测或者分类

回归方法能够解决特征多维,结果是一维多离散值或一维连续值的问题

学习过程

首先给出一个输入数据,算法通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型

1574732837157

线性回归

线性回归是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析

线性回归属于监督学习,因此方法和监督学习是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数即可

如何评判函数拟合的好不好?

代价函数:对假设的函数进行评价,cost function越小的函数,说明拟合训练数据拟合的越好

代价函数与参数的关系

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}

1574733110185

注意:如果是线性回归,则costfunctionJcost function Jθ\thetaθ1\theta_1的函数一定是碗状的,即只有一个最小点

一般情况:

x(i)Rnx^{(i)} \in R^n hθ(x)=θ0+θ0x1+θnxn=θXh_{\theta}(x)=\theta_{0}+\theta_{0} x_{1}+\cdots \theta_{\mathrm{n}} x_{n}=\boldsymbol{\theta} X

J(θ)=12i=1m(hθ(x(i))y(i))2minθJθ\begin{array}{l}{J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}} \\ {\min _{\theta} J_{\theta}}\end{array}

最小二乘损失函数

求解方法
  • 最小二乘法:θ=(XTX)1XTy\theta=\left(X^{T} X\right)^{-1} X^{T} \vec{y}

    是一个直接的数学求解公式,不过它要求X是列满秩的

  • 梯度下降法

    • 先确定向下一步的步伐大小,我们称为learning rate

    • 任意给定一个初始值:θ0,θ1\theta_0, \theta_1

    • 确定一个向下的方向,并向下走预先规定的步伐,并更新θ0,θ1\theta_0, \theta_1

    • 当下降的高度小于某个定义的值,则停止下降

1574733439432

特点
  • 初始点不同,获得的最小值可能也不同,因此梯度下降求得的只是局部最小值
  • 越接近最小值时,下降速度越慢
如何取α\alpha值?

随时观察α\alpha值,如果cost function变小了,则OK,反之,再取一个更小的值

注意:下降的步伐代销非常重要,因为如果太小,则得到函数最小值的速度就很慢,如果太大,则可能会出现overshoot the minimum的现象

1574733668371

如果Learning rate取值后,发现J function增长了,则需要减小Learning rate的值

2.2 核模型

在线性模型中,多项式或者三角多项式等基函数与训练样本{(x1,yi)}j=1n\{(x_1, y_i)\}^n_{j=1}是毫不相关的。而核模型在进行基函数的设计时就要用到输入样本{xi}j=1n\{x_i\}^n_{j=1}

核模型:以使用被称为核函数的二元函数K(,...)K(, ...),以K(x,x)j=1n\boldsymbol{K}(\boldsymbol{x}, \boldsymbol{x})^{\mathrm{n}}_{j=1}的线性结合方式加以定义

f_{\theta}(x)=\underset{j=1}\sum(\theta_jK(x, x_j))

在众多的核函数中,以高斯核函数的使用,最为广泛

K(x,c)=exp(xc22h2)K(x, c) = exp(- \frac{||x-c||^2} {2h^2})

1574734055109

x||x||表示2范数,即x=xTx||x||=\sqrt {x^Tx}。h和c分别对应于高斯核函数的带宽与均值

1574734188553

只在训练集的输入样本附近对函数进行近似,可以减轻维数灾难的影响:

1574734267528

2.3 层次模型

与参数相关的非线性模型,称之为非线性模型

层次模型是常用的非线性模型,在神经网络中应用广泛

(逻辑回归也是一种层次模型)

逻辑回归(Logistic Regression)

sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤、算法都是线性回归的,但是sigmoid可以轻松处理0/1分类问题

Logistic函数

如果我们忽略二分类问题中y的取值是一个离散的取值(0或1),我们继续使用线性回归来预测y的取值。这样做会导致y的取值并不为0或1。逻辑回归使用一个函数来归一 化y值,使y的取值在区间(0,1)内,这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下:

g(z)=11+ezg(z)=\frac {1} {1+e^{-z}}

1574734548274

性质

g(z)=g(z)(1g(z))g'(z) = g(z)(1-g(z))

分类问题

1574734653196

线性决策边界

对于线性决策边界的情况,边界形式如下:

θ0+θ1x1+,...+θnxn=i=1nθixi=θTx\theta_0+\theta_1x_1+,...+\theta_{n} x_{n}= \sum_{i=1}^n\theta_ix_i=\theta^Tx

构造预测函数为:hθ(x)=g(θTx)=11+eθTh_\theta(x)=g(\theta^Tx)=\frac{1} {1+e^{-\theta^T}}

函数hθ(x)h_\theta(x)的值有着特殊的含义,它表示结果取1个概率,因此对于输入x分类结果为类别1的概率和类别为0的概率分别为

P(y=1x;θ)=hθ(x)P(y=1|x;\theta)=h_\theta(x)

P(y=0x;θ)=1hθ(x)P(y=0|x;\theta)=1-h_\theta(x)

构造损失函数

它们是基于最大似然估计推导得到的:

1574735271784

1574735278632

正则化(Regularization)
过拟合问题

对于线性回归或逻辑回归的损失函数构成的模型,可能会有些权重很大,有些权重很小,导致过拟合(就是过分拟合了训练数据),使得模型的复杂度提高,泛 化能力较差(对未知数据的预测能力)。

1574735342490

问题的主因:过拟合问题往往源自过多的特征

解决方法:

  • 减少特征数量(减少特征会失去一些信息,即使特征选的很好)

  • 可用人工选择要保留的数据

  • 模型选择算法

    • 正则化(特征较多时比较有用)
    • 保留所有特征,但减少θ\theta的大小
正则化方法

正则化是结构风险最小化策略的实现,是在经验风险上增加一个正则化项或惩罚项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化项就越大

例如,在房价预测问题上,多项式回归:

1574735634696

直观上来看,如果我们想解决这个例子中的过拟合问题,最好能将x3x^3x4x^4的影响消除,也就是让θ30,θ40\theta_3 \approx 0, \theta_4 \approx 0,假设我们对θ3,θ4\theta_3, \theta_4进行惩罚,并且令其很小,一个简单的办法就是给原有的Cost函数加上两个略大的惩罚项

mθin12mi=1n(hθ(xi)yi)2+1000θ32+1000θ42\underset{\theta} min \frac{1}{2m} \sum_{i=1}^n (h_{\theta}(x_i)-y_i)^2+1000\theta_3^2+1000\theta_4^2

这样在最小化cost函数的时候,θ30,θ40\theta_3 \approx 0, \theta_4 \approx 0

正则项可以取不同的形式,在回归问题中取平方损失,就是参数的L2范数,也可以取L1范数。取平方损失时,模型的损失函数变为

J(θ)=12mi=1n(hθ(xi)yi)2+λj=1nθj2J(\theta) = \frac{1}{2m} \sum_{i=1}^n(h_\theta(x_i)-y_i)^2+\lambda\sum_{j=1}^n\theta_j^2

如果λ\lambda是正则项系数:

  • 如果它的值很大,说明对模型的复杂惩罚大,对拟合数据的损失惩罚小,这样它就不会过拟合数据,在训练数据上的偏差越大,在未知数据上的方差越小,但是可能出现欠拟合的现象
  • 如果它的值很大,说明比较注重对训练数据的拟合,在训练数据上的偏差小,但是可能会导致过拟合

有监督回归