监督学习中的损失函数及应用研究
邓建国, 张素兰, 张继福, 荀亚玲, 刘爱琴
太原科技大学计算机科学与技术学院,山西 太原 030024
摘要:监督学习中的损失函数常用来评估样本的真实值和模型预测值之间的不一致程度,一般用于模型的参数估计。受应用场景、数据集和待求解问题等因素的制约,现有监督学习算法使用的损失函数的种类和数量较多,而且每个损失函数都有各自的特征,因此从众多损失函数中选择适合求解问题最优模型的损失函数是相当困难的。研究了监督学习算法中常用损失函数的标准形式、基本思想、优缺点、主要应用以及对应的演化形式,探索了它们适用的应用场景和可能的优化策略。本研究不仅有助于提升模型预测的精确度,而且也为构建新的损失函数或改进现有损失函数的应用研究提供了一个新的思路。
关键词:监督学习 ; 损失函数 ; 相似度度量
论文引用格式:
邓建国, 张素兰, 张继福, 荀亚玲, 刘爱琴.监督学习中的损失函数及应用研究. 大数据[J], 2020, 6(1):60-80
DENG J G, ZHANG S L, ZHANG J F, XUN Y L, LIU A Q.Loss function and application research in supervised learning. Big Data Research[J], 2020, 6(1):60-80
1 引言
随着人工智能在智能制造、智慧农业以及智慧教育等领域的广泛应用,机器学习变得越来越普及,并逐渐成为人工智能研究的重点内容。机器学习以数据为研究内容,使计算机能够自动地从数据中学习规律,并利用规律预测未知数据。机器学习分为监督学习、无监督学习和强化学习。作为机器学习的一个重要类别,监督学习与机器学习同时产生,并伴随着机器学习逐步发展起来。监督学习常用于解决分类或回归问题,是目前研究和应用较为广泛的一种机器学习方法。由于监督学习具有很好的分类和标记能力,被广泛应用于计算机视觉、自然语言、语音识别、目标检测、药物发现和基因组学等多个领域。
监督学习、无监督学习和强化学习都是从数据集中寻找规律,不同的是监督学习从有标记的训练数据集中学习规律,并利用学到的规律预测训练集外的数据的标记,不能预测数据集本身的潜在规律,这在一定程度上限制了监督学习的应用范围。但是,现有的机器学习算法中大多还是基于监督学习的,甚至部分无监督学习和强化学习算法也是基于监督学习并受监督学习思想启发发展起来的。另外,尽管机器学习在多个领域取得了令人瞩目的成绩,但现有机器学习算法的很多结论是通过实验或经验获得的,还有待理论的深入研究与支持。现有机器学习算法无法从根本上解决机器学习面临的技术壁垒,这导致机器学习无法跨越弱人工智能,仍然要依赖监督学习。
监督学习利用有标记的样本调整模型参数,使模型具有正确预测未知数据的能力,其目的是让计算机学习一组有标记的训练数据集,进而获得新的知识或技能,这就要求计算机不断学习样本数据,并依据样本真实值与预测值之间的损失调整模型参数,提升模型的判别能力。显然,衡量样本真实值和预测值不一致程度的损失函数是监督学习研究的重点内容。损失函数是统计学、经济学和机器学习等领域的基础概念,它将随机事件或与其相关的随机变量的取值映射为非负实数,用来表示该随机事件的风险或损失的函数。在监督学习中,损失函数表示单个样本真实值与模型预测值之间的偏差,其值通常用于衡量模型的性能。现有的监督学习算法不仅使用了损失函数,而且求解不同应用场景的算法会使用不同的损失函数。研究表明,即使在相同场景下,不同的损失函数度量同一样本的性能时也存在差异。可见,损失函数的选用是否合理直接决定着监督学习算法预测性能的优劣。
在实际问题中,损失函数的选取会受到许多约束,如机器学习算法的选择、是否有离群点、梯度下降的复杂性、求导的难易程度以及预测值的置信度等。目前,没有一种损失函数能完美处理所有类型的数据。在同等条件下,模型选取的损失函数越能扩大样本的类间距离、减小样本的类内距离,模型预测的精确度就越高。实践表明,在同一模型中,与求解问题数据相匹配的损失函数往往对提升模型的预测能力起着关键作用。因此,如果能正确理解各种损失函数的特性,分析它们适用的应用场景,针对特定问题选取合适的损失函数,就可以进一步提高模型的预测精度。
2 损失函数
监督学习问题是在假设空间F中选取模型f作为决策函数,对于给定的输入x,用损失函数L(Y,f(x))度量该样本经决策函数f计算后的输出预测值f(x)与样本真实值Y之间的不一致程度。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。结构风险最小化策略认为结构风险最小的模型是最优模型,因此求最优模型,就是求解最优化问题:,其中,J(f)为模型的复杂度,λ为系数(λ≥0)。显然,监督学习问题被转化为一个经验风险或结构风险函数的最优化问题。
在监督学习中,损失函数用于评估单个样本经模型计算后输出的预测值与真实值的不一致程度。它是一个非负实值函数,主要特点为:恒非负;误差越小,函数值越小;收敛快。损失函数的值直接影响着模型的预测性能,损失函数值越小,模型的预测性能就越好。另外,作为样本间相似度度量标准,损失函数用来刻画样本真实值与预测值之间的关系,如果损失值小于某一值,则认为样本是相似的,否则认为是不相似的。监督学习算法中的损失函数如图1所示。
图1 监督学习算法中的损失函数
损失函数的标准数学形式(以下简称标准公式)不仅种类多,而且每类损失函数又在其标准形式的基础上演化出许多演化形式。0-1损失函数是最简单的损失函数,在其基础上加入参数控制损失范围,形成感知机损失函数;加入安全边界,演化为铰链损失函数。为解决多分类问题,在铰链损失函数的基础上,加入参数k,组合成top -k铰链损失函数。将对数损失函数与softmax函数的特性结合,构成softmax损失函数;与概率分布相似性融合,构成交叉熵(cross entropy)损失函数。另外,组合不同损失函数的标准形式或演化形式又形成新的损失函数。可见,损失函数的发展不是孤立的,而是随着应用研究的发展进行变革的。
本文依据损失函数度量方式的不同,将主要损失函数分为基于距离度量的损失函数和基于概率分布度量的损失函数。同时,进一步研究了每一类损失函数的基本思想、优缺点、演化形式及演化动机,总结了它们的应用场景、更适用的数据集、可能的优化方向,使监督学习的应用研究尽可能选取最优损失函数,以提高模型预测的精确度。同时,给出了监督学习算法中使用频次低的损失函数和组合损失函数。
3 主要损失函数
3.1 基于距离度量的损失函数
基于距离度量的损失函数通常将输入数据映射到基于距离度量的特征空间上,如欧氏空间、汉明空间等,将映射后的样本看作空间上的点,采用合适的损失函数度量特征空间上样本真实值和模型预测值之间的距离。特征空间上两个点的距离越小,模型的预测性能越好,常用的基于距离度量的损失函数见表1。
(1)平方损失函数
平方损失 (squared loss)函数最早是从天文学和地理测量学领域发展起来的,后来,由于欧氏距离在各个领域的广泛使用,平方损失函数日益受到研究人员的关注。在回归问题中,平方损失用于度量样本点到回归曲线的距离,通过最小化平方损失使样本点可以更好地拟合回归曲线。在机器学习的经典算法(反向传播算法、循环神经网络、流形学习、随机森林和图神经网络)中,常选用平方损失及其演化形式作为模型对误检测样本进行惩罚的依据。
由于平方损失函数具有计算方便、逻辑清晰、评估误差较准确以及可求得全局最优解等优点,一直受到研究人员的广泛关注,其演化形式也越来越多。基于平方损失演化的损失函数有加权平方损失函数、和方误差(sum squared error,SSE)函数、均方误差(mean squared error,MSE)函数、L2损失(L2 loss)函数、均方根误差(root mean squared error,RMSE)函数、x2检验(chi-square test)函数、triple损失函数和对比损失(contrastive loss)函数,见表2。
加权平方损