0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习中若干典型的目标函数构造方法

深度学习自然语言处理 来源:深度学习自然语言处理 作者:SIGAI 2020-12-26 09:52 次阅读

几乎所有的机器学习算法都归结为求解最优化问题。有监督学习算法在训练时通过优化一个目标函数而得到模型,然后用模型进行预测。无监督学习算法通常通过优化一个目标函数完成数据降维或聚类。强化学习算法在训练时通过最大化奖励值得到策略函数,然后用策略函数确定每种状态下要执行的动作。多任务学习、半监督学习的核心步骤之一也是构造目标函数。一旦目标函数确定,剩下的是求解最优化问题,这在数学上通常有成熟的解决方案。因此目标函数的构造是机器学习中的中心任务。

本文介绍机器学习中若干典型的目标函数构造方法,它们是对问题进行建模的关键环节。针对实际应用问题,在构造目标函数时可以借鉴前人的经验和技巧。接下来将分有监督学习(进一步细分为分类问题,回归问题,概率模型,混合问题),无监督学习(进一步细分为数据降维问题,聚类问题),半监督学习,距离度量学习,以及强化学习进行介绍。

对于最优化方法与目标函数数学原理的详细讲解可以阅读人民邮电出版社本月或者下个月将出版的《机器学习的数学》,雷明著。全书由一元函数微积分,线性代数与矩阵论,多元函数微积分,最优化方法,概率论,信息论,随机过程,图论8章构成。精准地覆盖了机器学习的数学知识,讲解清晰透彻。

对于各类机器学习算法原理的详细讲解,可以阅读清华大学出版社《机器学习-原理,算法与应用》,雷明著。全书系统得讲述了有监督学习,无监督学习,半监督学习,强化学习的算法的原理与典型应用。

有监督学习

有监督学习算法有训练过程,算法用训练集进行学习,然后用学习得到的模型进行预测。典型的应用,如图像识别、语音识别等都属于有监督学习问题。有监督学习的样本由输入值与标签值组成

6e0f36a0-4691-11eb-8b86-12bb97331649.png

其中x为样本的特征向量,是机器学习模型的输入值;y为标签值,是模型的输出值。标签值可以是整数也可以是实数,还可以是向量。训练时的目标是给定训练样本集

6e59cb98-4691-11eb-8b86-12bb97331649.png

,根据它确定一个函数

6ea47d1e-4691-11eb-8b86-12bb97331649.png

实现从输入值x到输出值的y映射。确定此函数的依据是它能够很好地预测这批训练样本,72e2edf2-4691-11eb-8b86-12bb97331649.png734030ac-4691-11eb-8b86-12bb97331649.png尽可能的接近。这通过优化某一目标函数实现。大多数算法事先确定函数的形式,训练时确定函数的参数736e4f46-4691-11eb-8b86-12bb97331649.png

如果样本标签是整数,则称为分类问题。此时的目标是确定样本的类别,以整数编号。预测函数是向量到整数的映射。分类问题的样本标签通常从0或1开始,以整数编号。

如果标签值是连续实数则称为回归问题。此时预测函数是向量到实数的映射。某些实际应用问题可能既包含分类问题,又包含回归问题。计算机视觉中的目标检测问题是典型代表。算法要找出图像中所有给定类型的目标,判断它们的类别,确定其位置与大小。检测问题包含分类和定位两部分,分类用于判定某一图像区域的目标类型;定位则确定物体的位置与大小,是回归问题。

分类问题

下面介绍分类问题的典型目标函数。感知器算法的是最简单的线性分类器训练算法,它的目标是让所有样本尽可能分类正确。对于二分类问题,线性分类器的判别函数为

740c6f82-4691-11eb-8b86-12bb97331649.png

样本的标签值为+1或-1,分别对应正样本和负样本。如果函数预测出来的值和样本的真实标签值不同号,预测错误;如果同号,预测正确。感知器算法的目标函数为

744f9794-4691-11eb-8b86-12bb97331649.png

此损失函数的意义为对于每个训练样本,如果预测正确即74b878d6-4691-11eb-8b86-12bb97331649.png与标签值74e444f2-4691-11eb-8b86-12bb97331649.png同号,则会有一个负的损失,否则有一个正的损失。这里的目标是将损失最小化。

与感知器损失类似的是合页损失函数。对于二分类问题,定义为

76f13b2e-4691-11eb-8b86-12bb97331649.png

这是一种截断函数。其意义为当

77d5aaa2-4691-11eb-8b86-12bb97331649.png

即当模型的预测值与样本标签值同号且预测值的绝对值非常大

783c0be4-4691-11eb-8b86-12bb97331649.png

样本的损失是0。否则样本的损失是787d89d4-4691-11eb-8b86-12bb97331649.png。这种函数迫使模型的预测值有大的间隔,即距离分类界线尽可能远。支持向量机的目标函数可以用合页损失函数进行解释。

离散型AdaBoost算法采用了指数损失函数,对于二分类问题,定义为

7b84b7ba-4691-11eb-8b86-12bb97331649.png

如果标签值74e444f2-4691-11eb-8b86-12bb97331649.png与强分类器的预测值7f8434da-4691-11eb-8b86-12bb97331649.png同号,且强分类器预测值的绝对值越大,损失函数的值越小,反之越大。

对于二分类和多分类问题,都可以用欧氏距离作为分类的损失函数。对于多分类问题,一般不直接用类别编号作为预测值,而是为类别进行向量化编码,如one-hot编码。因为类别无法比较大小,直接相减没有意义。如果样本属于第i个类,则其向量化的标签值为

810ff640-4691-11eb-8b86-12bb97331649.png

向量的第i个分量为1,其余的均为0。假设类别标签向量为y。欧氏距离损失函数定义为

81c1dacc-4691-11eb-8b86-12bb97331649.png

是向量二范数的平方,衡量了两个向量之间的差异。在人工神经网络发展的早期,这种函数被广泛使用,但后来对于多分类问题,更多的采用交叉熵损失函数。

回归问题

对于回归问题,通常采用欧氏距离作为损失函数。除此之外还可以使用绝对值损失,以及Huber损失。欧氏距离损失定义为

81fc0f94-4691-11eb-8b86-12bb97331649.png

它迫使所有训练样本的预测值与真实标签值尽可能接近。绝对值损失定义为

823354c2-4691-11eb-8b86-12bb97331649.png

与欧氏距离类似,预测值与真实标签值越接近,损失函数的值越小。对单个样本的Huber损失定义为

82b45edc-4691-11eb-8b86-12bb97331649.png

当预测值与真实标签值接近即二者的差的绝对值不超过时使用欧氏距离损失,如果二者相差较大时使用绝对值损失。这种做法可以减小预测值与真实标签值差距较大时的损失函数值,因此Huber损失对噪声数据有更好的健壮性。此外,Huber损失更利于梯度下降优化。远离目标值时有较大的梯度,接近目标值时梯度较小。分类问题和回归问题目标函数的细节可以阅读《机器学习的数学》第4.9节“目标函数的构造”。

概率模型

机器学习算法有时候需要估计概率分布的参数,典型的方法是最大似然估计,最大后验概率估计,贝叶斯估计,以及核密度估计。

最大似然估计为样本集构造一个似然函数,通过让似然函数最大化,求解出参数833bda6a-4691-11eb-8b86-12bb97331649.png。直观解释是,寻求参数的值使得给定的样本集出现的概率(或概率密度函数值)最大。最大似然估计认为使得观测数据出现概率最大的参数为最优参数,这一方法体现了“存在的就是合理的”这一朴素的哲学思想:既然这组样本出现了,那它们出现的概率理应是最大化的。

假设样本服从的概率分布为837c43d4-4691-11eb-8b86-12bb97331649.png,其中x为随机变量,833bda6a-4691-11eb-8b86-12bb97331649.png为要估计的参数。给定一组样本873648f8-4691-11eb-8b86-12bb97331649.png,它们都服从这种分布且相互独立。它们的联合概率为

877f89dc-4691-11eb-8b86-12bb97331649.png

这个联合概率也称为似然函数。似然函数是优化变量88c3ceca-4691-11eb-8b86-12bb97331649.png的函数,目标是让该函数的值最大化,即求解如下最优化问题

89192bea-4691-11eb-8b86-12bb97331649.png

乘积求导不易处理且数值计算时不稳定,将似然函数取对数,得到对数似然函数

8a30e996-4691-11eb-8b86-12bb97331649.png

最后要求解的问题为

8df855d2-4691-11eb-8b86-12bb97331649.png

贝叶斯分类器,概率图模型(包括贝叶斯网络,隐马尔可夫模型,条件随机场),高斯混合模型与EM算法,logistic回归,softmax回归,受限玻尔兹曼机,变分自动编码器等机器学习算法均采用了最大似然估计。

最大似然估计将参数736e4f46-4691-11eb-8b86-12bb97331649.png看作固定值(普通的变量),但其值未知。最大后验概率估计则将参数833bda6a-4691-11eb-8b86-12bb97331649.png看作随机变量,假设它服从某种概率分布,通过最大化后验概率8f833962-4691-11eb-8b86-12bb97331649.png确定其值。其核心思想是使得在样本出现的条件下参数的后验概率最大化。求解时需要假设参数88c3ceca-4691-11eb-8b86-12bb97331649.png服从某种分布(称为先验分布)。

假设参数服从概率分布918b2fbc-4691-11eb-8b86-12bb97331649.png。根据贝叶斯公式,参数对样本集的后验概率(即已知样本集x的条件下参数736e4f46-4691-11eb-8b86-12bb97331649.png的条件概率)为

943050a8-4691-11eb-8b86-12bb97331649.png

如果确定了概率密度函数的形式,8f833962-4691-11eb-8b86-12bb97331649.png可以根据样本的值x进行计算,与最大似然估计相同,833bda6a-4691-11eb-8b86-12bb97331649.png是未知量。因此最大化该后验概率等价于

98b9a7e6-4691-11eb-8b86-12bb97331649.png

上式第二步忽略了分母的值,因为它和参数736e4f46-4691-11eb-8b86-12bb97331649.png无关且为正。对最大似然估计与贝叶斯估计等参数估计算法的详细了解可以阅读《机器学习的数学》第5.7节“参数估计”。

有些时候,机器学习模型的输出是一个概率分布,此时我们要拟合一个概率分布,让它和目标概率分布尽可能接近。这就需要用到衡量两个概率分布差距的指标,典型的是交叉熵,KL散度,JS散度等。

交叉熵定义在两个概率分布之上,衡量了二者的差异程度。对于离散型随机变量X,p(x)和q(x)是两个概率分布的概率质量函数,交叉熵定义为

99b5b9f0-4691-11eb-8b86-12bb97331649.png

其值越大,两个概率分布的差异越大;其值越小,则两个概率分布的差异越小。交叉熵常用于构造机器学习的目标函数,如logistic回归与softmax回归。此时可从最大似然估计导出交叉熵损失函数的形式。

对于softmax回归,对数似然函数为

9a08d482-4691-11eb-8b86-12bb97331649.png

让对数似然函数取极大值等价于让下面的损失函数取极小值

9a62b006-4691-11eb-8b86-12bb97331649.png

这就是交叉熵损失函数,反映了预测值与真实标签值的差距,二者均为多项分布。

KL散度也称为相对熵,同样用于衡量两个概率分布之间的差距。其值越大则说明两个概率分布的差距越大;当两个分布完全相等时KL散度值为0。

对于两个离散型随机概率分布p和q,它们之间的KL散度定义为

9dae1db8-4691-11eb-8b86-12bb97331649.png

其中p(x)和q(x)为这两个概率分布的概率质量函数。对于两个连续型概率分布p和q,它们之间的KL散度定义为

9f11ad5a-4691-11eb-8b86-12bb97331649.png

其中p(x)和q(x)为这两个概率分布的概率密度函数。变分推断,变分自动编码器的目标函数均使用了KL散度,具体可以阅读《机器学习的数学》第6.3.5节“应用-变分推断”。

JS散度衡量两个概率分布之间的差异。对于两个概率分布和,它们的JS散度定义为

9f97e582-4691-11eb-8b86-12bb97331649.png

其中概率分布m为p和q的平均值,概率质量函数或概率密度函数的均值。生成对抗网络的训练目标可以用JS散度进行解释,最小化生成器生成的样本的概率分布与真实样本概率分布之间的JS散度。具体可以阅读《机器学习的数学》第6.4.3节“应用-生成对抗网络”。

混合任务

下面介绍既有分类问题又有回归问题的情况。对于目标检测问题,算法要找出图像中各种大小、位置、种类的目标,即要同时判断出每个目标的类型以及目标所在的位置、大小。

目标的位置和大小通常用矩形框来定义目标,称为外接矩形(bounding box),用参数表示为(x,y,w,h),其中(x,y)是矩形左上角的坐标,w为宽度,h为高度。判定物体的类别是一个分类问题,确定物体的位置与大小是一个回归问题。为了同时完成这些目标,设计出了多任务损失函数。此函数由两部分构成,第一部分为分类损失,即要正确的判定每个目标的类别;第二部分为定位损失,即要正确的确定目标所处的位置。以Fast R-CNN为例,它的损失函数为

a30f4df4-4691-11eb-8b86-12bb97331649.png

前半部分为分类损失,可以采用交叉熵损失函数。后半部分为定位损失,确定矩形框的大小和位置,采用了smooth L1 损失,定义为

a37775c8-4691-11eb-8b86-12bb97331649.png

这是一种Huber损失,其优点在前面已经介绍。之后的Faster R-CNN,YOLO,SSD等目标检测算法都采用了多任务损失函数的思路。

无监督学习

无监督学习对无标签的样本进行分析,发现样本集的结构或者分布规律,它没有训练过程。其典型代表是数据降维,以及聚类。

数据降维问题

数据降维算法将n维空间中的向量x通过函数映射到更低m维的维空间中,在这里m<

a40dab24-4691-11eb-8b86-12bb97331649.png

降维之后的数据要保持原始数据的某些特征。通过降维可以使得数据更容易进一步处理。如果降维到2维或3维空间,则可将数据可视化。

主成分分析是一种无监督线性降维方法,它通过线性变换将向量投影到低维空间。对向量进行投影就是对向量左乘一个矩阵,得到结果向量

a69dead4-4691-11eb-8b86-12bb97331649.png

降维要确保的是在低维空间中的投影能很好的近似表达原始向量,即重构误差最小化。如果要将向量降到a6f50968-4691-11eb-8b86-12bb97331649.png维,每个向量可以表示成

a739768e-4691-11eb-8b86-12bb97331649.png

在这里a7b3f508-4691-11eb-8b86-12bb97331649.png都是单位向量,并且相互正交,是要寻找的低维空间中的标准正交基。重构误差函数为

a82f80ce-4691-11eb-8b86-12bb97331649.png

使得该函数取最小值的a88f3ed8-4691-11eb-8b86-12bb97331649.png为散度矩阵最大的a6f50968-4691-11eb-8b86-12bb97331649.png个特征值对应的单位长度特征向量。即求解下面的优化问题

aa73cd7c-4691-11eb-8b86-12bb97331649.png

其中tr为矩阵的迹,I为单位矩阵,该等式约束保证投影基向量是标准正交基。矩阵W的列a88f3ed8-4691-11eb-8b86-12bb97331649.png是要求解的基向量。

线性判别分析是一种有监督的数据降维算法,其基本思想是通过线性投影来最小化同类样本间的差异,最大化不同类样本间的差异。具体做法是寻找一个向低维空间的投影矩阵W,样本的特征向量x经过投影之后得到新向量

aaf90aa0-4691-11eb-8b86-12bb97331649.png

同一类样本投影后的结果向量差异尽可能小,不同类的样本差异尽可能大。直观来看,就是经过这个投影之后同一类的样本尽量聚集在一起,不同类的样本尽可能离得远。

最后的目标为求解下面的最优化问题

ab4a7322-4691-11eb-8b86-12bb97331649.png

其中tr为矩阵的迹。分母是类内差异,分子是类间差异。这个问题等价于优化下面的问题

ac2ecf9a-4691-11eb-8b86-12bb97331649.png

接下来介绍流形学习数据降维算法的目标函数。

局部线性嵌入将高维数据投影到低维空间中,并保持数据点之间的局部线性关系。其核心思想是每个点都可以由与它相邻的多个点的线性组合来近似重构,投影到低维空间之后要保持这种线性重构关系,即有相同的重构系数。

假设数据集由n个D维向量ac84d840-4691-11eb-8b86-12bb97331649.png组成,它们分布在D维空间中的一个流形附近。每个数据点和它的邻居位于或者接近于流形的一个局部线性片段上,即可以用邻居点的线性组合来重构

ad18d66c-4691-11eb-8b86-12bb97331649.png

权重系数通过最小化下面的重构误差确定

adccab74-4691-11eb-8b86-12bb97331649.png

假设算法将向量从D维空间的x映射为d维空间的y。每个点在d维空间中的坐标由下面的最优化问题确定

ae13bad2-4691-11eb-8b86-12bb97331649.png

这里的权重和上一个优化问题的值相同,在前面已经得到,是已知量。这里优化的目标是ae6776a4-4691-11eb-8b86-12bb97331649.png,此优化问题等价于求解稀疏矩阵的特征值问题。得到y之后,即完成了从D维空间到d维空间的非线性降维。

拉普拉斯特征映射是基于图论的方法。它为样本点构造带权重的图,然后计算图的拉普拉斯矩,对该矩阵进行特征值分解得到投影变换结果。这个结果对应于将样本点投影到低维空间,且保持样本点在高维空间中的相对距离信息

算法为样本点构造加权图,图的节点是每一个样本点,边为每个节点与它的邻居节点之间的相似度,每个节点只和它的邻居有连接关系。算法的目标是投影之后保持在高维空间中的距离关系,假设投影后到低维空间后的坐标为y,它通过最小化如下目标函数实现

b039b0f0-4691-11eb-8b86-12bb97331649.png

此函数的含义是如果样本ac84d840-4691-11eb-8b86-12bb97331649.pngb0d81254-4691-11eb-8b86-12bb97331649.png的相似度很高即在高维空间中距离很近,则它们之间的边的权重b12111de-4691-11eb-8b86-12bb97331649.png很大,因此投影到低维空间中后两个点要离得很近,即b167ecd0-4691-11eb-8b86-12bb97331649.pngb33eb3d6-4691-11eb-8b86-12bb97331649.png要很接近,否则会产生一大个的损失值。求解该目标函数等价于下面的优化问题

b5187994-4691-11eb-8b86-12bb97331649.png

其中

b87867f2-4691-11eb-8b86-12bb97331649.png

为投影后的坐标按列构成的矩阵,这里加上了等式约束条件以消掉y的冗余,选用矩阵D来构造等式约束是因为其主对角线元素即节点的加权度反映了图的每个节点的重要性。

局部保持投影通过最好的保持一个数据集的邻居结构信息来构造投影映射,其思路和拉普拉斯特征映射类似。

假设有样本集bbb85710-4691-11eb-8b86-12bb97331649.png,它们是bed01136-4691-11eb-8b86-12bb97331649.png空间中的向量。这里的目标是寻找一个变换矩阵bef6d17c-4691-11eb-8b86-12bb97331649.png,将这些样本点映射到更低维的bf27c552-4691-11eb-8b86-12bb97331649.png空间,得到向量bf69ae18-4691-11eb-8b86-12bb97331649.png,使得bf862d9a-4691-11eb-8b86-12bb97331649.png能够代表bfb506f6-4691-11eb-8b86-12bb97331649.png,其中

bfe4db4c-4691-11eb-8b86-12bb97331649.png

c004f760-4691-11eb-8b86-12bb97331649.png

假设

c03be13a-4691-11eb-8b86-12bb97331649.png

,其中M是bf27c552-4691-11eb-8b86-12bb97331649.png空间中的一个流形。

目标函数与拉普拉斯特征映射相同,定义为

c0c1e9ec-4691-11eb-8b86-12bb97331649.png

所有矩阵的定义与拉普拉斯特征映射相同。投影变换矩阵为

c110e25e-4691-11eb-8b86-12bb97331649.png

c144608e-4691-11eb-8b86-12bb97331649.png

假设矩阵X为所有样本按照列构成的矩阵。这等价于求解下面的问题

c168be02-4691-11eb-8b86-12bb97331649.png

等距映射使用了微分几何中测地线的思想,它希望数据在向低维空间映射之后能够保持流形上的测地线距离。

在这里测地线距离通过图构造,是图的两个节点之间的最短距离。算法的第一步构造样本集的邻居图,第二步计算图中任意两点之间的最短路径长度,可以通过经典的Dijkstra算法实现。假设最短路径长度为c19f9670-4691-11eb-8b86-12bb97331649.png,由它构造如下矩阵:

c1dd6c52-4691-11eb-8b86-12bb97331649.png

其元素是所有节点对之间的最短路径长度。算法的第三步根据矩阵c20a90ec-4691-11eb-8b86-12bb97331649.png构造d维嵌入y,这通过求解如下最优化问题实现

c23cbe78-4691-11eb-8b86-12bb97331649.png

这个问题的解y即为降维之后的向量。这个目标函数的意义是向量降维之后任意两点之间的距离要尽量的接近在原始空间中这两点之间的最短路径长度,因此可以认为降维尽量保留了数据点之间的测地距离信息。

随机近邻嵌入基于如下思想:在高维空间中距离很近的点投影到低维空间中之后也要保持这种近邻关系,在这里距离通过概率体现。假设在高维空间中有两个点样本点bfb506f6-4691-11eb-8b86-12bb97331649.pngc2b4de08-4691-11eb-8b86-12bb97331649.pngc2b4de08-4691-11eb-8b86-12bb97331649.pngc2feb2b2-4691-11eb-8b86-12bb97331649.png的概率作为c32f0070-4691-11eb-8b86-12bb97331649.png的邻居,将样本之间的欧氏距离转化成概率值,借助于正态分布,此概率的计算公式为

c39af262-4691-11eb-8b86-12bb97331649.png

在低维空间中对应的近邻概率记为c3e54a60-4691-11eb-8b86-12bb97331649.png,计算公式与上面的相同。

上面定义的是点c40244ee-4691-11eb-8b86-12bb97331649.png与它的一个邻居点的概率关系,如果考虑所有其他点,这些概率值构成一个离散型概率分布c43b3678-4691-11eb-8b86-12bb97331649.png,是所有样本点成为c40244ee-4691-11eb-8b86-12bb97331649.png的邻居的概率。在低维空间中对应的概率分布为c48eb9c4-4691-11eb-8b86-12bb97331649.png,投影的目标是这两个概率分布尽可能接近,因此需要衡量两个概率分布之间的相似度或距离。这里用KL散度衡量两个概率分布之间的距离。由此得到投影的目标为最小化如下函数

c4b2bbc6-4691-11eb-8b86-12bb97331649.png

这里对所有样本点的KL散度求和,为样本数。SNE的改进型算法-t-SNE同样采用了KL散度作为目标函数。具体的原理可以阅读《机器学习的数学》第6.3.4节“应用-流形降维”以及《机器学习-原理,算法与应用》第7.2节“流形学习”。

聚类问题

下面介绍聚类算法的目标函数。聚类算法将一组样本划分成k个类

c4fbe120-4691-11eb-8b86-12bb97331649.png

,确保同一类中的样本差异尽可能小,而不同类的样本之间尽量不同。K均值算法基于这一思想构造损失函数

c51f7d38-4691-11eb-8b86-12bb97331649.png

其含义是每一类样本距离它的类中心要近,可以理解为每个类的方差。所有类的方差之和要尽可能小。

基于图的聚类算法把样本数据看作图的顶点,根据数据点之间的距离构造边,形成带权重的图。通过图的切割实现聚类,即将图切分成多个子图,这些子图就是对应的簇。这类算法的典型代表是谱聚类算法。谱聚类算法首先构造样本集的邻接图,得到图的拉普拉斯矩阵,接下来对矩阵进行特征值分解,通过对特征向量进行处理构造出簇。

算法首先根据样本集构造出带权重的图G,聚类算法的目标是将其切割成多个子图,每个子图即为聚类后的一个簇。假设图的顶点集合为V,边的集合为E。聚类算法将顶点集合切分成k个子集,它们的并集是整个顶点集

c544b738-4691-11eb-8b86-12bb97331649.png

任意两个子集之间的交集为空

c5bf4296-4691-11eb-8b86-12bb97331649.png

对于任意两个子图,其顶点集合为和,它们之间的切图权重定义为连接两个子图节点的所有边(即跨两个子图的边)的权重之和

c619aa2e-4691-11eb-8b86-12bb97331649.png

这可以看作两个子图之间的关联程度,如果两个子图之间没有边连接,则该值为0。从另一个角度看,这是对图进行切割时去掉的边的权重之和。

对图顶点子集c6583e56-4691-11eb-8b86-12bb97331649.png,定义这种分割的代价为:

c6951416-4691-11eb-8b86-12bb97331649.png

其中c6c90884-4691-11eb-8b86-12bb97331649.pngc6f36c14-4691-11eb-8b86-12bb97331649.png的补集。该值与聚类的目标一致,即每个子图内部的连接很强,而子图之间的连接很弱,换一种语言来表述就是同一个子图内的样本相似,不同子图之间的样本不相似。但直接通过最小化这个值实现聚类还有问题,它没有考虑子图规模对代价函数的影响,使得这个指标最小的切分方案不一定就是最优切割。

解决这个问题的方法是对代价函数进行归一化。第一种方法是用图的顶点数进行归一化,由此得到优化的目标为

c7211c72-4691-11eb-8b86-12bb97331649.png

其中c767023c-4691-11eb-8b86-12bb97331649.png为子集的元素数,称为RatioCut。另外一种归一化方案为

c812702c-4691-11eb-8b86-12bb97331649.png

其中vol是图中所有顶点的加权度之和

c8b60e76-4691-11eb-8b86-12bb97331649.png

称为NCut。这两种情况都可以转化成求解归一化后的拉普拉斯矩阵的特征值问题。对谱聚类算法的详细了解可以阅读《机器学习-原理,算法与应用》第18.6节“基于图的算法”。

半监督学习

半监督学习的训练样本中只有少量带有标签值,算法要解决的核心问题是如何有效的利用无标签的样本进行训练。

有监督学习中一般假设样本独立同分布。从样本空间中抽取l个样本用于训练,他们带有标签值。另外从样本空间中抽取u个样本,它们没有标签值。半监督学习要利用这些数据进行训练,得到比只用l个样本更好的效果。下面介绍半监督学习中的生成模型,半监督支持向量机,基于图的模型的目标函数。

生成模型假设每个类的样本服从概率分布c8e9a510-4691-11eb-8b86-12bb97331649.png,其中833bda6a-4691-11eb-8b86-12bb97331649.png是概率密度函数的参数。如果无标签样本与有标签样本来自同一概率分布,则将这些无标签样本加上推测出来的标签值之后作为训练样本能够提高模型的准确率。如果这一假设不正确,用推理出来的错误标签进行模型训练反而会降低模型的准确率。

无标签样本由每个类的概率分布的混合来生成,常用的是高斯混合模型,假设每个类的数据服从正态分布。样本数据与标签值的联合概率密度函数可以由类的条件概率密度函数得到:

c958dca0-4691-11eb-8b86-12bb97331649.png

每个类的参数向量736e4f46-4691-11eb-8b86-12bb97331649.png的值是要确定的参数,利用有标签样本和无标签样本得到,即求解下面的最优化问题(对数似然函数)

c9ceeb84-4691-11eb-8b86-12bb97331649.png

半监督支持向量机是标准支持向量机的半监督学习版本,它可以用部分标注的样本进行训练,找到的分界面是样本稀疏的地方,使用了低密度分割假设。半监督支持向量机的目标是对无标签样本进行预测,使得分类间隔对所有样本最大化。在这里用有标签样本集进行训练,对无标签集进行测试

c9febad0-4691-11eb-8b86-12bb97331649.png

训练时求解的问题为

ca1dbfe8-4691-11eb-8b86-12bb97331649.png

实现时首先用带标签的样本进行训练,然后用得到的模型对无标签样本进行预测,得到这些样本的伪标签值ca5cca4e-4691-11eb-8b86-12bb97331649.png。接下来再用这无标签的样本进行训练得到新的模型。

基于图的算法为样本构造带权重的无向图,用图表示有标签和无标签样本数据,图的构造和流形降维算法相同。图的顶点是有标签和无标签样本,边的权重为样本之间的相似度。建立图之后可以得到它的拉普拉斯矩阵,通过优化某一目标函数得到模型参数。分类函数要保证对有标签样本预测正确,对于图的点的预测结果是连续的,这通过引入正则化项来实现。

流形正则化算法假设每个类的有标签样本和无标签样本分布在同一个流形M上。训练时要求解的问题为

ca7c338e-4691-11eb-8b86-12bb97331649.png

其中l为有标签的训练样本数,M为样本所在的流形。损失函数的第一项是对有标签样本的分类损失。第二项是预测函数的正则化项,用于控制预测函数的复杂度。第三项是流形正则化项,用于实现流形假设,即有标签样本与无标签样本分布在同一个流形上。其中H为再生核希尔伯特空间,cabf4ab6-4691-11eb-8b86-12bb97331649.pngcaf8d614-4691-11eb-8b86-12bb97331649.png是正则化项系数。

对半监督学习的进一步了解可以阅读《机器学习-原理,算法与应用》的第19章“半监督学习”。

距离度量学习

通常情况下,距离函数是人工定义的。也可以通过机器学习来学习得到一个距离函数,一般是Mahalanobis距离中的矩阵S,这称为距离度量学习。距离度量学习通过样本集学习到一种线性或非线性变换,目前有多种实现。

距离度量学习可形式化的定义为根据一组样本

cb2d4700-4691-11eb-8b86-12bb97331649.png

确定距离函数

cb731230-4691-11eb-8b86-12bb97331649.png

cbaaba1e-4691-11eb-8b86-12bb97331649.png

距离度量学习的经典实现有ITML,NCA,LMNN等。下面对这些算法的原理进行介绍。

LMNN寻找一个变换矩阵,使得变换后每个样本的个最近邻居都和它是同一个类,而不同类型的样本通过一个大的间隔被分开,这和线性判别分析的思想类似。

假设原始的样本点为x,变换之后的点为y,在这里要寻找的是如下线性变换

cbde6d50-4691-11eb-8b86-12bb97331649.png

其中L为线性变换矩阵。训练时优化的损失函数由推损失函数和拉损失函数两部分构成。拉损失函数的作用是让和样本标签相同的样本尽可能与它接近

cc042c2a-4691-11eb-8b86-12bb97331649.png

推损失函数的作用是把不同类型的样本推开

cc61cb50-4691-11eb-8b86-12bb97331649.png

如果cca8ae4e-4691-11eb-8b86-12bb97331649.png,则ccebcb2a-4691-11eb-8b86-12bb97331649.png,否则cd0ab846-4691-11eb-8b86-12bb97331649.png。函数cd4e943a-4691-11eb-8b86-12bb97331649.png

定义为:

cd754f44-4691-11eb-8b86-12bb97331649.png

如果两个样本类型相同,则有cda09b0e-4691-11eb-8b86-12bb97331649.png因此推损失函数只对不同类型的样本起作用。总损失函数由这两部分的加权和构成

cdd69e5c-4691-11eb-8b86-12bb97331649.png

ITML的优化目标是在保证同类样本距离相近,不同类样本之间距离远的约束条件下,迫使度量矩阵所代表的正态分布接近于某一先验概率分布。算法使用了信息论中的KL散度,因此得名。

假设有n个ce089c72-4691-11eb-8b86-12bb97331649.png中的样本点ce29e27e-4691-11eb-8b86-12bb97331649.png。度量矩阵为ce55e57c-4691-11eb-8b86-12bb97331649.png,这里的距离采用马氏距离的平方和。如果两个样本点之间相似,则有如下的不等式约束

ce8bb238-4691-11eb-8b86-12bb97331649.png

即它们之间的距离小于某一较小的阈值u。这一约束通常用于同类的样本点之间。反之如果两个样本点之间不相似,则有如下不等式约束

cec37d4e-4691-11eb-8b86-12bb97331649.png

其中l为一个较大的阈值。这一约束通常用于不同类的样本点之间。

矩阵ce55e57c-4691-11eb-8b86-12bb97331649.png通常要符合某些先验知识。例如,如果数据服从正态分布,则该矩阵为正态分布协方差矩阵的逆矩阵;而对有些场景,欧氏距离平方作为距离函数有很好的效果,此时该矩阵为单位矩阵。因此可以对矩阵ce55e57c-4691-11eb-8b86-12bb97331649.png正则化,迫使其尽可能接近于某一已知的马氏距离矩阵cf6450d4-4691-11eb-8b86-12bb97331649.png

因此需要衡量ce55e57c-4691-11eb-8b86-12bb97331649.pngcf6450d4-4691-11eb-8b86-12bb97331649.png之间的接近程度。如果以度量矩阵作为协方差矩阵的逆矩阵,则此多维正态分布为

d028f024-4691-11eb-8b86-12bb97331649.png

其中Z为归一化常数,μ为均值向量,d05f234c-4691-11eb-8b86-12bb97331649.png为协方差矩阵。如果将马氏距离所作用的样本集看作服从正态分布,则可以用KL距离衡量二者的差异。根据KL散度的定义,这两个度量矩阵所代表的正态分布之间的KL散度为

d10aa7a8-4691-11eb-8b86-12bb97331649.png

因此得到如下优化问题

d13a177c-4691-11eb-8b86-12bb97331649.png

其中S为相似的样本对的集合,D为不相似的样本对的集合。目标函数为两个矩阵之间的KL散度,实现先验知识。

与LMNN类似,NCA同样与近邻算法有关。在保证其优化目标是使得每个样本的同类样本被近邻算法正确分类的概率最大化,以此构造目标函数。

首先定义每个样本点的邻居的概率分布,是其他样本所有样本是此样本邻居的概率。样本c2b4de08-4691-11eb-8b86-12bb97331649.pngbfb506f6-4691-11eb-8b86-12bb97331649.png的邻居的概率定义通过下式计算

d1a5f4a6-4691-11eb-8b86-12bb97331649.png

这两个样本点经过变换之后相距越远则此概率值越小;反之则越大。样本成为其自身的邻居的概率定义为0,即d23a22c0-4691-11eb-8b86-12bb97331649.png。在对样本点进行分类时,如果采用这些邻接作为其标签值,则可以计算出样本点被正确分类的概率。定义d255955a-4691-11eb-8b86-12bb97331649.png为样本点i被正确的分类的概率,是它所有同类样本成为其邻居的概率之和

d28aded6-4691-11eb-8b86-12bb97331649.png

其中d2ca7f50-4691-11eb-8b86-12bb97331649.png为i 的同类样本集合,即

d2e497fa-4691-11eb-8b86-12bb97331649.png

。为样本的类别标签值。NCA的优化目标是所有样本的d255955a-4691-11eb-8b86-12bb97331649.png之和

d35cfc68-4691-11eb-8b86-12bb97331649.png

强化学习

强化学习类似于有监督学习,其目标是在当前状态s下执行某一动作d3b93a3c-4691-11eb-8b86-12bb97331649.png,反复执行这一过程,以达到某种目的。算法需要确定一个称为策略函数的函数,实现从状态到动作的映射

d3f271da-4691-11eb-8b86-12bb97331649.png

对于某些实际问题,动作的选择是随机的,策略函数给出在状态下执行每种动作的条件概率值d423e5da-4691-11eb-8b86-12bb97331649.png在每个时刻t,算法在状态d46f6898-4691-11eb-8b86-12bb97331649.png下执行动作d4d6ab0c-4691-11eb-8b86-12bb97331649.png之后,系统随机性地进入下一个状态d513462a-4691-11eb-8b86-12bb97331649.png,并给出一个奖励值d53ad2f8-4691-11eb-8b86-12bb97331649.png。强化学习算法在训练时通过随机地执行动作,收集反馈。系统对正确的动作做出奖励(reward),对错误的动作进行惩罚,训练完成之后用得到的策略函数进行预测。这里的奖励(也称为回报)机制类似于有监督学习中的损失函数,用于对策略的优劣进行评估。

强化学习的目标是最大化累计奖励

d5603188-4691-11eb-8b86-12bb97331649.png

其中d5c669f8-4691-11eb-8b86-12bb97331649.png称为折扣因子,用于体现未来的不确定性,使得越远来的未来所得到的回报具有越高的不确定性;同时保证上面的级数收敛。

算法需要确保在所有状态按照某一策略执行,得到的累计回报均最大化。因此可以定义状态价值函数。在状态d5fe0412-4691-11eb-8b86-12bb97331649.png下反复地按照策略Π执行,所得到的累计奖励的数学期望称为该状态的价值函数

d63eea9a-4691-11eb-8b86-12bb97331649.png

使用数学期望是因为系统具有随机性,需要对所有情况的累计奖励计算均值。类似的可以定义动作价值函数,它是在当前状态d5fe0412-4691-11eb-8b86-12bb97331649.png下执行动作d6951bae-4691-11eb-8b86-12bb97331649.png,然后按照策略Π执行,所得到的累计奖励的数学期望

d6b3d1ac-4691-11eb-8b86-12bb97331649.png

构造出目标函数之后,寻找最优策略Π可以通过优化算法实现。如果用神经网络表示策略,则可以将这些目标函数作为神经网络的目标函数,使用梯度下降法完成训练。对强化学习的进一步了解可以阅读《机器学习-原理,算法与应用》的第22章“强化学习”。

参考文献

[1]机器学习原理、算法与应用

[2] 机器学习的数学.

责任编辑:xj

原文标题:机器学习中的目标函数总结

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 目标函数
    +关注

    关注

    0

    文章

    2

    浏览量

    6098
  • 机器学习
    +关注

    关注

    66

    文章

    8126

    浏览量

    130571

原文标题:机器学习中的目标函数总结

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    机器视觉常用的三种目标识别方法解析

    随着机器视觉技术的快速发展,传统很多需要人工来手动操作的工作,渐渐地被机器所替代。传统方法目标识别大多都是靠人工实现,从形状、颜色、长度、宽度、长宽比来确定被识别的
    的头像 发表于 03-14 08:26 285次阅读
    <b class='flag-5'>机器</b>视觉常用的三种<b class='flag-5'>目标识别方法</b>解析

    典型环节的传递函数介绍

    电子发烧友网站提供《典型环节的传递函数介绍.pdf》资料免费下载
    发表于 03-01 10:28 0次下载

    LabVIEW调用库函数节点无法显示DLL函数

    函数都无法选中呢? 解答: 调用的DLL可能是通过.NET封装的,即使它也具有.dll的后缀。可是,.NET封装的dll与其它dll拥有本质的区别,因此需要在LabVIEW通过另一种方法来调用该
    发表于 11-09 19:08

    全面总结机器学习中的优化算法

    几乎所有的机器学习算法最后都归结为求一个目标函数的极值,即最优化问题,例如对于有监督学习,我们要找到一个最佳的映射
    发表于 11-02 10:18 271次阅读
    全面总结<b class='flag-5'>机器</b><b class='flag-5'>学习</b>中的优化算法

    BlockingQueue主要属性和构造函数

    InterruptedException ; boolean remove (Object o) ; 一起来看看,ArrayBlockingQueue 是如何实现的吧。 初识 首先看一下 ArrayBlockingQueue 的主要属性和构造函数
    的头像 发表于 10-13 11:36 198次阅读

    super调用父类的构造方法

    我们分析这句话“父类对象的引用”,那说明我们使用的时候只能在子类中使用,既然是对象的引用,那么我们也可以用来调用成员属性以及成员方法,当然了,这里的 super 关键字还能够调用父类的构造方法。具体
    的头像 发表于 10-10 16:42 524次阅读
    super调用父类的<b class='flag-5'>构造</b><b class='flag-5'>方法</b>

    静态代码块、构造代码块、构造函数及普通代码块的执行顺序

    在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。 1、静态代码块 ①、格式 在java类中(方法
    的头像 发表于 10-09 15:40 434次阅读
    静态代码块、<b class='flag-5'>构造</b>代码块、<b class='flag-5'>构造</b><b class='flag-5'>函数</b>及普通代码块的执行顺序

    机器学习与数据挖掘方法和应用

    机器学习与数据挖掘方法和应用(经典)
    发表于 09-26 07:56

    基于机器学习的车位状态预测方法

    本发明公开一种基于机器学习的车位状态预测方法,基于历史数据,建立回归决策树模型进而构建改进决策树模型,对每个区域的停车率进行预测,基于停车率和用户喜好度为用户推荐相应的停车区域,获取相应停车区域
    发表于 09-21 07:24

    机器学习可以分为哪几类?机器学习技术有哪些?

    机器学习可以分为哪几类?机器学习技术有哪些 机器学习(Machine Learning,ML)是
    的头像 发表于 08-17 16:11 4392次阅读

    机器学习和深度学习的区别

      机器学习是一种方法,利用算法来让机器可以自我学习和适应,而且不需要明确地编程。在许多应用中,需要机器
    发表于 08-02 17:36 388次阅读

    如何使用Arm CMSIS-DSP实现经典机器学习

    和循环,而那很难解释它们是如何达到它们的结论。 机器学习领域包括神经网络以外的技术。其他技术可能以不同的名称使用,例如统计机器 学习。在本指南中,我们使用经典
    发表于 08-02 07:12

    机器学习之人工神经网络(感知机算法)

    1957年,弗兰克·罗森布拉特(Frank Rosenblatt)从数学角度考察MP模型,并提出可以通过若干成对的输入输出数据和机器学习方法获得ω和b的值,罗森布拉特依此提出感知机算法(Perceptron Algorithm)
    发表于 07-15 12:56 324次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>之人工神经网络(感知机算法)

    典型机器学习过程#机器学习

    机器学习
    未来加油dz
    发布于 :2023年07月14日 16:09:16

    联合学习在传统机器学习方法中的应用

    联合学习在传统机器学习方法中的应用
    的头像 发表于 07-05 16:30 546次阅读
    联合<b class='flag-5'>学习</b>在传统<b class='flag-5'>机器</b><b class='flag-5'>学习方法</b>中的应用