2. 机器学习概述

机器学习是对能通过经验自动改进的计算机算法的研究。 ---汤姆. 米切尔 1997

        通俗来讲,机器学习就是让计算机从数据中进行自动学习,得到某种知识(或规律)。在早期的工程领域,机器学习也经常被称为模式识别(Pattern Recognition), 但模式识别更偏向于具体的应用任务,比如语音识别,字符识别,人脸识别等。现在机器学习的概念已经逐渐替代模式识别。

         假设我们要训练一个芒果分类的机器学习模型,首先我们列出每个芒果的特征(feature),包括颜色,大小,形状,产地,品牌等,以及我们需要预测的标签(label)。标签可以是连续值也可以是离散值。一个标记好特征以及标签的芒果可以看作是一个样本(sample).一组样本构成的集合称为数据集(data set)。一般将数据集分为两部分:训练集和测试集。我们通产公用一个D维向量x = [x1,x2,x3...,xd]T表示一个芒果的所有特征构成的向量,称为特征向量,其中每一维代表一个特征。而芒果的标签通常用标量y来表示。下面是机器学习学习系统的示例。

        机器学习可以粗略地分为三个基本要素:模型,学习准则,优化算法。 

一. 模型

1.1 线性模型

        线性模型的假设空间为一个参数化的线性函数族,即:

f(x;\Theta ) = w^{T}x + b,

其中参数\Theta 权重向量w和偏置b。

1.2 非线性模型

        广义的非线性模型可以写为多个非线性基函数\o\phi (x)的线性组合

                f(x;\theta ) = w^{T} \phi (x) +b,

其中\phi (x) = [\phi _{1}(x), \phi _{2}(x), ... \phi _{K}(x) ]^{T}为K个非线性基函数组成的向量,参数\theta包含了权重向量w和偏置b。 

二. 学习准则

         模型f(x; \theta )的好坏可以通过期望风险R(\theta )来衡量,它的定义是:

 其中Pr(x,y)为真实的数据分布,\iota (y, f(x;\theta ))为损失函数,用来量化两个变量之间的差异。

2.1 损失函数

        损失函数是一种非负实数函数,用来量化模型预测和真实标签之间的差异。几种常用的损失函数如下:

2.1.1 0-1损失函数:最直观的损失函数是模型在训练集上的错误率。

        其中I(\bullet )是指示函数。虽然0-1损失函数可以客观评价模型的好坏,但其缺点是数学性质不太好,不连续且导数为0,难以优化。因此常用连续可微的损失函数替代。

2.1.2 平方损失函数: 经常用在预测标签y为实数值的任务中,定义为:

        平方损失函数一般不适用于分类问题。

2.1.3 交叉熵损失函数:一般用于分类问题。

 2.1.4 Hinge 损失函数: 对于二分类问题

2.1.5 风险最小化准则: 一个好的模型f(x;\theta )应当有一个比较小的期望错误,但由于不知道真实的数据分布和映射函数,实际上无法计算其期望风险R(\theta ).给定一个训练集,我们可以计算的是经验风险。因此一个切实可行的学习准则是找到一组参数\theta ^{\ast }使得经验风险最小。这就是经验风险最小化准则。

2.1.6 过拟合:根据大数定理可知,当训练集大小|D|趋向于无穷大时,经验风险就趋向于期望风险。然而通常情况下,我们无法获取无限的训练样本,并且训练样本往往是真实数据的一个很小的子集或者包含一定的噪声数据,不能很好地反映全部数据的真实分布。经验风险最小化原则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高。这就是所谓的过拟合(Overfitting).

        过拟合问题往往是因为训练数据少以及模型能力强等原因造成的。为了解决过拟合问题,一般是在经验风险最小化准则的基础上引入参数的正则化来限制模型能力,使其不要过度地最小化经验风险。这种准则就是结构风险最小化准则。

其中||\theta|| 是\iota _{2}范数的正则化项,用来减少参数空间,避免过拟合;\lambda用来控制正则化的强度。

        正则化项也可以使用其他函数,L1范数的引入通常会使得参数有一定稀疏性,因此在很多算法中也经常使用。和过拟合相反的一个概念是欠拟合,即模型不能很好的拟合训练数据,在训练集的错误率比较高。欠拟合一般是由于模型能力不足造成的。

        总之,机器学习的学习准则并不仅仅是拟合训练集上的数据,同时也要使泛化错误最低。因此机器学习可以看作使一个从有限,高维,有噪声的数据上得到更一般性规律的泛化问题。

三. 优化算法

3.1 参数与超参数:在机器学习过程中,优化可以分为参数优化和超参数优化。 模型f(𝒙;𝜃)中的𝜃称为模型的参数,可以通过优化算法进行学习. 除了可学习的参数\theta之外,还有一类参数是用来定义模型结构或优化策略的,这类参数叫做超参数 (Hyper-Parameter)。

        常见的超参数包括:聚类算法中的类别个数、梯度下降法中的步长,正则化项的系数,神经网络的层数,支持向量机中的核函数等。超参数的选取一般都是组合优化问题,很难通过优化算法来自动学习。因此超参数优化是机器学习的一个经验性很强的技术,通常是按照人的经验设定,或者通过搜索的的方法对一组超参数组合进行不断试错调整。

3.2 梯度下降法:为了充分利用凸优化中一些高效、成熟的优化方法,比如共轭梯度,拟牛顿法等,很多机器学习方法倾向于选择合适的模型和损失函数以构造一个凸函数作为优化目标。但也有很多模型(比如神经网络)的优化目标是非凸的,智能退而求其次找到局部最优解。

        在机器学习中,最简单和常用的优化算法是梯度下降法,即首先初始化参数\theta _{0},然后按下面的迭代公式来计算训练集D上面风险函数的最小值:

        其中\theta _{t} 为第t次迭代时的参数值,\alpha为搜索步长。在机器学习中,\alpha一般称为学习率。

3.3 提前停止:针对梯度下降的优化算法,除了加正则化项之外,还可以通过提前停止来防止过拟合。在梯度下降训练的过程中,由于过拟合的原因,在训练样本上收敛的参数不一定在测试集上最优。因此除了训练集和测试集之外,有时也会使用一个验证集来进行模型选择。每次迭代时,把新模型在验证集上测试,并计算错误率,如果错误率连续N次不再下降,就停止迭代,这种策略叫提前停止。 

3.4 随机梯度下降法

        当目标函数是整个训练集上的风险函数时,这种方式称为批量梯度下降法(Batch Gradient Descent, BGD).批量梯度下降法在每次迭代时需要计算每个样本上损失函数的梯度并求和。当训练集中的样本数量N很大时,空间复杂度很高,每次迭代的计算开销很大。

        为了减少每次迭代的计算复杂度,我们也可以在每次迭代时只采集一个样本,计算每个样本损失函数的梯度并更新参数,这种方法叫随机梯度下降法(Stochastic Gradient Descent, SGD). 当经过足够次数的迭代时,随机梯度下降也可以收敛倒局部最优解。

         批量梯度下降和随机梯度下降的区别在于每次迭代的优化目标是对所有样本的平均损失函数还是单个样本的损失函数。随机梯度下降的优点是实现简单,收敛速度快,因此使用非常广泛。随机梯度下降相当于在批量梯度下降的梯度上引入了随机噪声,当目标函数非凸时,反而可以使其逃离局部最优点。

        小批量梯度下降法: 随机梯度下降法的缺点是无法充分利用计算机的并行计算能力。小批量梯度下降法是批量梯度下降和随机梯度下降的折中。每次迭代时,我们随机选取一小部分训练样本来计算梯度并更新参数,这样既可以兼顾随机梯度下降法的优点,也可以提高训练效率。    

        在实际应用中,小批量随机梯度下降法具有收敛快,计算开销小的优点,因此逐渐成为大规模的机器学习中的主要优化算法。

3.5 偏差和方差

        为了避免过拟合,我们经常会在模型拟合能力和复杂度之间进行权衡,拟合能力强的模型一般复杂度会比较高,容易发生过拟合。相反如果限制模型的复杂度,降低拟合能力,又可能导致欠拟合。偏差-方差分解可以对这种平衡提供分析和指导工具。

        偏差:指一个模型在不同训练集上的平均性能和最优模型的差异,可以用来衡量一个模型的拟合能力。

        方差:指 一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合。

四. 机器学习算法分类

        按函数f(x;\theta )的不同,机器学习算法可以分为线性模型和非线性模型;按照学习准则的不同,可以分为统计方法和非统计方法。一般来说,我们按照训练样本提供的信息以及反馈方式的不同,将机器学习算法分为以下几类:

4.1 监督学习:如果机器学习的目标是通过建模样本的特征x和标签y的关系,并且训练集中的每个样本都有标签,那么这类机器学习称为监督学习。根据标签类型的不同,监督学习又可以分为回归问题,分类问题和结构化学习问题。

4.1.1 回归问题:回归问题中的标签y是连续值(实数或者连续整数),f(x;\theta )的输出也是连续值。

4.1.2 分类问题:分类问题中的标签y是离散的类别(符号)。在分类问题中,学习到的模型也被称为分类器。分类问题根据其类别数量又可以分为二分类和多分类问题。

4.1.3 结构化学习:输出y通常是结构化的对象,比如序列,树和图等。由于结构化学习的输出空间比较大,因此我们一般定义一个联合特征空间,将x,y映射为该空间中的联合特征向量\phi(x,y),预测模型可以写为:

4.2 无监督学习: 指从不包含目标标签的训练样本中自动学习到一些有价值的信息。典型的无监督学习问题有聚类,密度估计,特征学习,降维等。

4.3 强化学习:指一类通过交互来学习的机器学习算法。在强化学习中,智能体根据环境的状态做出一个动作,并得到即时或延时的奖励。智能体在和环境的交互中不断学习并调整策略,以取得最大化的期望总回报。这是一种在线的学习机制,它不需要显式地以“输入/输出对”的方式给出训练样本。

4.4 弱监督学习和半监督学习:不需要所有的训练数据都为有标注的,它可以从大规模的五标注数据中充分挖掘出有用的信息,降低对标注样本数量的要求。

 五. 数据的特征表示

        在实际应用中,数据的类型有很多,比如文本,音频,图像,视频等。不同类型的数据,其原始特征的空间也不相同。很多机器学习算法的输入要求是数学上可计算的,需要将这些不同类型的数据转换为向量表。但也有一些不需要,比如决策树。

5.1 图像特征:在手写数字识别数据集(Mnist)中,样本x为待识别的图像。这个图像是灰白图像,其通道数为1,则一张大小为M x N的图像,其特征向量可以简单地表示为M x N 维的向量,每一维的值为图像中对应像素的灰度值。为了提高模型准确率,还会假如一些额外的特征,比如直方图,宽高比,笔画数,纹理特征,边缘特征。假设我们总共抽取了D个特征,这些特征就可以组成一个输入向量X。

5.2 文本特征:在文本情感分类任务中,样本x为自然语言文本,类别y\in\begin{Bmatrix} +1, & -1 \end{Bmatrix}分别表示正面和负面的评价。为了将样本从文本形式转为向量形式,一种简单的方式是使用词袋模型(BoW)。向量x中第i维的值表示词表中的第i个词是否在x中出现。如果出现,值为1,否则为0.

        词袋模型将文本看作是词的集合,不考虑词序信息,不能精确地表示文本信息。一种改进方式是使用N元组合特征,即每N个连续词构成一个基本单元。

5.3 表示学习: 如果直接使用数据的原始特征来进行预测,对机器学习的模型的要求较高,原始特征可能存在以下不足:1.特征比较单一,需要进行非线性的组合才能发挥其作用;2.特征之间的冗余度较高;3.并不是所有的特征都对预测有用;4.很多特征通常是易变的;5.特征中往往存在一些噪声。

        为了提高机器学习算法的能力,我们需要抽取有效的稳定的特征。传统的特征提取需要人工方式进行,需要大量的人工和专家知识。但人工设计的特征在很多任务上也不能满足需要,让机器自动地学习出有效的特征称为特征学习,也叫表示学习。特征学习在一定程度上可以减少模型复杂性,缩短训练时间,提高模型泛化能力,避免过拟合等。

        传统的特征学习具体可以分为:特征选择和特征抽取。

5.3.1 特征选择:选取原始特征集合的一个有效子集,使得基于这个特征子集训练出来的模型的准确率最高。特征选择就是保留有用特征,移除冗余或者无关特征。具体的经典方法有LASSO,弹性网络,最小冗余最大相关方法等。

        最直接的特征选择方法有子集搜索,暴力测试每个特征子集,看机器学习模型中哪个子集上的准确率最高。常用贪心策略,由空集合开始,每一轮添加该轮最优的特征,称为前向搜索;或者从原始特征集合开始,每次删除最无用的特征,称为反向搜索。

        此外,还可以通过L1正则化的方法来实现特征选择,由于L1正则化会导致稀疏特征,因此间接实现了特征选择。

5.3.2 特征抽取:特征抽取是构造一个新的特征空间,并将原始特征投影在新的空间中得到新的表示。以线性投影为例,令x\in R^{D}为原始特征向量,x\acute{}\in R^{K}为经过线性投影后得到的在新空间中的特征向量,有

x\acute{} = Wx

其中W\in R^{^{K * D}}为映射矩阵。

        特征抽取又可以分为监督和无监督的方法。监督的特征学习的目标是抽取对一个特定的预测任务最有用的特征,比如线性判别分析(LDA).而无监督的特征学习和具体任务无关,其目标是减少冗余信息和噪声,比如主成分分析(PCA).

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trouville01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值