机器学习(Machine Learning,ML)就是让计算机从数据中进行自动学习,得到某种知识(或规律)。
以市场上的芒果为例,介绍机器学习中的基本概念。
从市场上随机挑选出一批芒果。
芒果的特征(Feature) ,包括颜色、大小、形状、产地、品牌。
预测的标签(Label),标签可以是连续值(比如关于芒果的甜度、水分以及成熟度的综合打分),也可以是离散值(比如“好”“坏”两类标签)。
将一个标记好特征以及标签的芒果堪称一个样本(Sample)。
一组样本构成的集合称为为数据集(Data Set)。在很多领域,数据集也经常称为语料库(Corpus)。
一般将数据集分为两部分: 训练集和测试集。训练集(Training Set)中的样本是用来训练模型的,也叫训练样本(Training Sample),而测试集(Test Set)中的样本是用来检验模型好坏的,也叫测试样本(Test Sample)。
一个𝐷 维向量𝒙 = [𝑥1 , 𝑥2 , ⋯ , 𝑥𝐷] ^T 表示一个芒果的所有特征构成的向量,称为特征向量(Feature Vector),其中每一维表示一个特征,而芒果的标签通常用y来表示。
给定训练集D,希望让计算机从一个函数集合F中,自动寻找一个“最优”的函数f来近似地表达样本的特征x和标签y之间的真实映射关系。
如何寻找这个“最优”的函数是机器学习的关键,一般需要学习算法来完成,这个寻找最优函数的过程称之为学习(Learning)或训练(Training)。
机器学习方法可以粗略地分 为三个基本要素:模型、学习准则、优化算法。
机器学习的目标是找到一个模型来近似真实映射函数f(x)或真实条件概率分布p(y|x)。
因为不知道真实的映射函数或条件概率分布的具体形式,因此只能根据经验来假设一个函数集合,称为假设空间,然后通过观测其在训练集伤的特征,从假设空间中选择一个理想的假设f,称之为模型。
常见的假设空间分为线性和非线性两种,对应的模型f也分别称为线性模型和非线性模型。
线性模型的假设空间为一个参数化的线性函数族,即
w:权重向量,b:偏置。
广义的非线性模型可以写成多个非线性基函数的线性组合。
一个好的模型f(x)应该在所以(x,y)的可能取值上都与真实映射函数或真实条件概率分布一致。
模型的好坏可以通过期望风险来衡量。
损失函数是一个非负实数函数,用来量化模型预测和真实标签之间的差异。
ℒ(𝑦, 𝑓(𝒙; 𝜃))=0 if 𝑦 = 𝑓(𝒙; 𝜃)
=1 if 𝑦 ≠ 𝑓(𝒙; 𝜃)
ℒ(𝑦, 𝑓(𝒙; 𝜃)) = 𝐼(𝑦 ≠ 𝑓(𝒙; 𝜃)),
ℒ(𝑦, 𝑓(𝒙; 𝜃)) = 1/2 (𝑦 − 𝑓(𝒙; 𝜃))^2
一个好的模型应该有比较小的期望错误,但由于不知道真实的数据分布和映射函数,实际上是无法计算其期望风险的,但我们能计算的是经验风险,即在训练集上的平均损失。
因此一个可行的学习准则是找到一组参数使得经验风险最小。这就是经验风险最小化准则。
过拟合问题往往是由于训练数据少和噪声以及模型能力强等原因造成的. 为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化 (Regularization)来限制模型能力,使其不要过度地最小化经验风险。这种准则就是结构风险最小化准则。
在确定了训练集 𝒟、假设空间 ℱ 以及学习准则后,如何找到最优的模型 𝑓(𝒙, 𝜃∗ ) 就成了一个最优化(Optimization)问题。
机器学习的训练过程其实就是最优化问题的求解过程.
参数和超参数
模型 𝑓(𝒙; 𝜃)中的𝜃 称为模型的参数,可以通过优化算法进行学习。
超参数是用来定义模型结构或优化策略的,常见的超参数包括:聚类算法中的类别个数、梯度下降法中的步长、正则化项的系数、神经网络的层数、支持向量机中的核函数等。
最简单最常用的优化算法,首先初始化参数,然后通过迭代公式来计算训练集上风险函数的最小值。
需要定义一个学习率(Learning Rate)。
使用一 个验证集(Validation Set)来进行模型选择,测试模型在验证集上是否最优。验证集也叫作开发集 (Development Set)。 在每次迭代时,把新得到的模型 𝑓(𝒙; 𝜃) 在验证集上进行测试,并计算错误率。如果在验证集上的错误率不再下降,就停止迭代。这种策略叫提前停止(Early Stop)。
为了减少每次迭代的计算复杂度,我们也可以在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,即随机梯度下降法。当经过足够次数的迭代时,随机梯度下降也可以收敛到局部最优解。
小批量梯度下降法(Mini-Batch Gradient Descent)是批量梯度下降和随机梯度下降的折中。
每次迭代时,我们随机选取一小部分训练样本来计算梯度并更新参数,这样既可以兼顾随机梯度下降法的优点,也可以提高训练效率 。
为了在模型的拟合能力和复杂度之间取一个较好的平衡,减少过拟合或欠拟合的发生。
第一项为偏差(Bias),是指一个模型在不同训练集上的平均性能和最优模型的差异,可以用来衡量一个模型的拟合能力;
第二项是方差(Variance),是指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合。
方差一般会随着训练样本的增加而减少。当样本比较多时,方差比较少,这时可以选择能力强的模型来减少偏差。
当一个模型在训练集上的错误率比较高时,说明模型的拟合能力不够,欠拟合,偏差比较高。这种情况可以通过增加数据特征、提高模型复杂度、 减小正则化系数等操作来改进;
当模型在训练集上的错误率比较低,但验证集上的错误率比较高时,说明模型过拟合,方差比较高。这种情况可以通过降低模型复杂度、加大正则化系数、引入先验等方法来缓解。
按照训练样本提供的信息以及反馈方式的不同,将机器学习算法分为以下几类:
如果机器学习的目标是建模样本的特征 𝒙 和标签 𝑦 之间的关系:𝑦 = 𝑓(𝒙; 𝜃) 或 𝑝(𝑦|𝒙; 𝜃),并且训练集中每个样本都有标签,那么这类机器学习称为监督学习(Supervised Learning)。
根据标签类型的不同,监督学习又可以分为回归问题、分类问题和结构化学习问题。
标签y是连续值(实数或连续整数), 𝑓(𝒙; 𝜃) 的输出也是连续值。
标签 𝑦 是离散的类别(符号)。在分类问题中,学习到的模型也称为分类器(Classifier)。
分类问题根据其类别数量又可分为二分类(Binary Classification)和多分类(Multi-class Classification) 问题。
是一种特殊的分类问题.在结构化学习中,标签 𝒚 通常是结构化的对象,比如序列、树或图等。
指从不包含目标标签的训练样本中自动学习到一些有价值的信息。典型的无监督学习问题有聚类、 密度估计、特征学习、降维等。
是一类通过交互来学习的机器学习算法。在强化学习中,智能体根据环境的状态做出一个动作,并得到即时或延时的奖励。智能体在和环境的交互中不断学习并调整策略,以取得最大化的期望总回报。
数据的类型多种多样,比如文本、音频、图像、视频等。不同类型的数据,其原始特征(Raw Feature)的空间也不相同。
一个成功的机器学习系统通常需要尝试大量的特征,称为特征工程(Feature Engineering)。但即使这样,人工设计的特征在很多任务上也不能满足需要。因此,如何让机器自动地学习出有效的特征也成为机器学习中的一项重要研究内容,称为特征学习 (Feature Learning),也叫表示学习(Representation Learning)。特征学习在 一定程度上也可以减少模型复杂性、缩短训练时间、提高模型泛化能力、避免过拟合等。
传统的特征学习一般是通过人为地设计一些准则,然后根据这些准则来选取有效的特征,具体又可以分为两种:特征选择和特征抽取。
特征选择(Feature Selection)是选取原始特征集合的一个有效子集,使得基于这个特征子集训练出来的模型准确率最高。
简单地说,特征选择就是保留有用特征,移除冗余或无关的特征。
子搜索 一种直接选择特征的方法,常用贪心策略:由空集开始,每一轮添加该轮最优的特征,称为前向搜索(Forward Search);或者从原始特征集合 开始,每次删除最无用的特征,称为反向搜索(Backward Search) 。
正则化 可以通过 l1 正则化来实现特征选择。由于 l1 正则化会导致稀疏特征,因此间接实现了特征选择。
特征抽取(Feature Extraction)是构造一个新的特征空间,并将原始特征投影在新的空间中得到新的表示。
特征抽取又可以分为监督和无监督的方法。
监督的特征学习的目标是抽取对一个特定的预测任务最有用的特征,比如线性判别分析(Linear Discriminant Analysis,LDA);
无监督的特征学习和具体任务无关,其目标通常是减少冗余信息和噪声,比如主成分分析(Principal Component Analysis,PCA)和自编码 器(Auto-Encoder,AE) 。
将特征的表示学习和机器学习的预测学习有机地统一到一个模型中,建立一个端到端的学习算法,就可以有效地避免它们之间准则的不一致性。这种表示学习方法称为深度学习(Deep Learning,DL)。
深度学习方法的难点是如何评价表示学习对最终系统输出结果的贡献或影响,即贡献度分配问题。
目前比较有效的模型是神经网络,即将最后的输出层作为预测学习,其他层作为表示学习。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。