机器学习概述

一、什么是机器学习

在解释机器学习之前,我们先想想什么是学习?学习是从观察(视觉、听觉和触觉等)出发,经过大脑的内化过程变成有用的技巧、技能。

学习的过程

机器学习则是把学习的主体替换为计算机。即计算机利用数据通过某种模型或学习算法来增进某种表现,如下图所示。其中数据是多样的。包括存在于计算机及网络上的各种数字、文字、图像、视频数据以及它们的组合。机器学习即设计一种“模型”,通过输入的数据来训练模型,产生一个适用于该输入数据的模型来增进某种性能(即当有新的数据到来时,该模型可以较好地进行预测或判断)。

机器学习的过程

Tom Mitchell对机器学习进行了如下定义:给定一个任务 T,一个性能测量方法 P,在经验 E 影响下,P 对 T 的测量结构得到了改进。

二、机器学习基本概念

1. 数据

机器学习的对象是数据(data)。我们把用来训练和测试模型的全部数据称为数据集(data set)。数据集是由若干个“样本”(sample)构成。能反应样本中某方面表现或性能的事项称为“特征”(feature)。特征上的取值称为特征值。由特征张成的空间称为“特征空间”。关于样本结果的信息称为“标记”(label)。所有标记的集合称为“输出空间”拥有标记信息的示例称为“样例”(example)。我们以预测狗的类别作为例子解释上面的术语。想一想我们平常是怎么判断一只狗的类别的?我们可以通过体型、叫声、毛色来判断吧。这时体型、叫声、毛色就是特征。特征空间则可以想象为把体型作为xx轴、叫声作为yy轴、毛色作为zz轴所形成的三维空间。特征值为这三维空间中某一点的坐标位置。标记即为狗的类别(是哈士奇还是泰迪)。数据集可分为训练数据、验证数据和测试数据。训练数据和验证数据是在训练过程中需要用到的数据,其中训练数据更新参数,验证数据更新超参数。测试数据用来评价模型的泛化能力。

2. 机器学习

机器学习的目的是对新的数据进行预测和分析。机器学习可以分为监督学习(supervised learning)、非监督学习(unsupervised learning)、半监督学习(semi-supervised learning)和强化学习(reinforcement learning)。简单地区分就是,监督学习的每一个样本都对应一个标记;非监督学习没有标记;半监督学习则介于监督和非监督之间,有些样本有标记有些没有。

虽然机器学习的算法多种多样,但都每一种算法都离不开三样东西:模型(model)、策略(strategy)和算法(algorithm)。下面以监督学习讲一讲这三个东西。

模型

监督学习中的模型就是所要学习的条件概率分布或决策函数。所有可能的条件概率和决策函数构成了模型假设空间(hypothesis space)。机器学习就是在假设空间中找到一个函数可以拟合所有的训练数据并且在测试数据中的误差很小(即泛化能力强)。这时,我们可以通过训练误差和测试误差来对模型进行评估。

训练误差的计算。对所有的训练数据中的数据 {x1,x2,,xn}\{x_1, x_2,\cdots, x_n\},假设样本个数为NN,给定一个预测的函数f()f(\ast)(即模型),则预测结果为f^(xi)\widehat{f}(x_i)(一般预测值都会在上方加个帽子)。定义一个损失函数L()L(\ast),通过将输出值(标记)yiy_i与预测值f^(xi)\widehat{f}(x_i)作比较,得到训练误差:

Remp(f^)=1Ni=1NL(yi,f^(xi))R_{emp}(\widehat{f})=\frac{1}{N}\sum_{i=1}^NL(y_i,\widehat{f}(x_i))

同样的,测试误差只是把样本换成了测试数据集中的样本。

Rtest(f^)=1Ni=1NL(yi,f^(xi))R_{test}(\widehat{f})=\frac{1}{N^\prime}\sum_{i=1}^{N^\prime}L(y_i,\widehat{f}(x_i))

策略

确定了模型后,需要根据一个准则在假设空间中找到一个决策函数使模型有较好的表现。这个准则就是结构风险最小化:

minfF1Ni=1NL(yi,f(xi))+λJ(f)\mathop{\min}\limits_{f{\in}F} \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+{\lambda}J(f)

上式的左边一项是经验风险,左边一项是正则化项。为什么要加上正则化项呢?因为当样本数据较少时,如果模型过于复杂,则会造成模型过拟合(即对于已知的数据来说,通过该模型计算出来的损失函数很小;但是对于我们需要预测的预测,损失函数很大)。通过加入与模型复杂度正相关的正则化项J(f)J(f),在优化结构风险时,同时最小化经验风险和模型复杂度,以使模型有较好的泛化能力。

算法

在已经定义了模型以及结构风险之后,需要使用某种计算方法求解最优模型。所谓最优模型就是找出模型中参数的最优值使该模型在测试数据中有好的表现。每一种模型的计算方法都有区别,比如感知机中使适用感知机学习算法;支持向量机中的SMO算法;神经网络中的反向传播算法。

三、模型评估方法

通过数据集求得一个模型后。如何判断该模型泛化能力强不强呢?这时就需要性能度量来作为衡量模型的泛化能力的评价标准。对于不同的任务选取不同的性能度量。

1. 回归任务

在回归任务中,通常采用均方误差作为性能度量。给定样例集DD,其表达式如下:

E(f;D)=1mi=1m(f(xi)yi)2E(f;D)=\frac{1}{m}\sum_{i=1}^{m}(f(x_i)-y_i)^2

2. 分类任务

错误率:

E(f;D)=1mi=1mI(f(xi)yi)E(f;D)=\frac{1}{m}\sum_{i=1}^{m}I(f(x_i){\neq}y_i)

精度:

acc(f;D)=1mi=1mI(f(xi)=yi)=1E(f;D)acc(f;D)=\frac{1}{m}\sum_{i=1}^{m}I(f(x_i)=y_i)\\=1-E(f;D)

准确率:

P=TPTP+FPP=\frac{TP}{TP+FP}

召回率:

R=TPTP+FNR=\frac{TP}{TP+FN}

TPTP(true positive)为真正例,即预测结果为正例,实际label值也为正例的样本数。

FPFP(false positive)为假正例,即预测结果为正例,实际的label值为反例的样本数。

FNFN(false negative)为假反例,即预测结果为反例,实际的label值为正例的样本数。

参考文献

[1]李航. 统计学习方法[M]. 清华大学出版社, 2012.

[2]周志华. 机器学习[M]. 清华大学出版社, 2016.


机器学习概述
https://weijinkang.github.io/2019/03/28/overview-of-machine-learning/
作者
Jinkang_Wei
发布于
2019年3月28日
许可协议