您当前的位置:首页 > 电脑百科 > 人工智能

数学证明深度学习激活函数从Softmax到Sparsemax

时间:2020-09-14 11:32:42  来源:  作者:

Sparsemax封闭形式解及其损失函数的推导

数学证明深度学习激活函数从Softmax到Sparsemax

 

本文目标是三个方面。第一部分讨论了sparsemax背后的动机及其与softmax的关系,首次介绍了该激活函数的原始研究论文摘要,以及使用sparsemax的优点概述。第二部分和第三部分专门讨论数学推导,具体地找到闭合形式的解以及适当的损失函数。

1.Sparsemax概述

Martins等人通过论文《From Softmax to Sparsemax: A Sparse Model of Attention and Multi-Label Classification》引入Sparsemax,提出了一种替代众所周知的softmax激活函数的新方法

虽然softmax是输出在K个概率上归一化的概率分布的多类分类的适当选择,但在许多任务中,我们希望获得一个更稀疏的输出。Martins引入了一个新的激活函数sparsemax,该函数输出多项式分布的稀疏概率,因此从分布的质量中滤除了噪声。

这意味着sparsemax将为某些类分配恰好为0的概率,而softmax会保留这些类并为它们分配非常小的值,如10-3。在大型分类问题中,稀疏最大值可能特别有利;例如在自然语言处理(NLP)任务中,其中softmax层正在非常大的词汇集上进行多项分布建模。

但是,实际上,将softmax函数更改为稀疏估计器并不是一件容易的事。在保持softmax的一些基本属性的同时获得这种转换(例如,易于评估,易于微分并容易转换为凸损失函数)变得非常具有挑战性。

机器学习中解决该问题的传统方法是使用L1惩罚,该惩罚在神经网络中的输入变量和/或深层方面允许一定程度的稀疏性。虽然这种方法相对简单,但是L1惩罚会影响神经网络的权重,而不是作为稀疏概率的目标输出

因此,论文作者认识到需要补充激活功能, sparsemax,他们将其公式化为可解决的二次问题,并在一组约束条件下找到一个解决方案,以获得与softmax类似的性质。

在深入研究sparsemax实现背后的证据之前,让我们首先讨论论文中的一些重要的高级发现。以下要点总结了一些主要内容:

 Sparsemax是分段线性激活函数

尽管softmax形状等效于传统的S型函数,但Sparsemax在一个维度上却是"硬"的S型。此外,在两个维度上,sparsemax是具有整个饱和区域(0或1)的分段线性函数。这是论文中的图表,可帮助可视化softmax和sparsemax。

数学证明深度学习激活函数从Softmax到Sparsemax

 

 

Sparsemax Loss与分类Huber Loss有关

在二元情况下,导出的稀疏极大损失函数与用于分类的修正的Huber损失直接相关(定义在张童论文《基于凸风险优化的分类方法的统计特征和一致性》和邹惠,朱季,和黑斯,特雷弗论文《基于边缘向量、容许损失和多类边缘的分类器》,斯坦福大学2006年技术报告)。也就是说,如果xy是sparsemax之前的两个分数,则使用sparsemax层和sparsemax损失,且t = x-y,并且在不失一般性的前提下,假设正确的标签为1,我们可以证明:

数学证明深度学习激活函数从Softmax到Sparsemax

 

这是一个很好的性质,证明了sparsemax的理论基础;Huber损失是L1和L2惩罚之间的折衷,这正是我们试图从softmax激活中获得的结果,同时包括稀疏性。此外,可以通过将损失与其他标准分类损失进行比较来证明与Huber损失的相似性:

数学证明深度学习激活函数从Softmax到Sparsemax

 

在上图中,您可以看到,对于t的负值,对于大误差,损耗与误差呈线性比例关系,类似于铰链损失。但是,随着t收敛到1,误差减小,我们观察到平方关系,类似于最小二乘损失

 随着类数的增加,稀疏极大可以提高性能

sparsemax框架已显示在带有大量标签的数据集上表现特别出色。在下面的示例中,您可以在表1中看到几个数据集及其详细信息,并在表2中看到了不同激活函数( S型,softmax和sparsemax)的微平均/宏平均F1分数。标签的数量(即较低的行数),与softmax相比,sparsemax性能的提升变得越来越明显。

数学证明深度学习激活函数从Softmax到Sparsemax

表1:数据集说明


数学证明深度学习激活函数从Softmax到Sparsemax

表2:不同数据集的性能基准

Sparsemax可以用于注意力模型,以提高潜在的性能和更好的解释性

稀疏输出的想法也可以在具有注意力机制的深度学习模型中加以利用-一种用于计算潜在大量实体的注意力权重的神经网络。事实证明,这种注意力机制在NLP任务(例如翻译或语言建模)中特别有效,这导致了所谓的Transformers的创建,利用自我注意力的非循环模型体系结构,广泛用于诸如BERT的最新语言模型。从sparsemax中获得严格的空概率的优势在于,如果某些隐藏状态(单词)被判断为不相关,则可以完全消除它们的影响--与softmax相比,softmax最终累积了所有不相关状态的无穷小和,并可能影响模型性能。此外,在概率为零的情况下,我们扩大了注意力的一个主要优势:可解释性。使用稀疏分数有助于清理注意力图,并阐明注意力系统的工作方式。

然而,根据经验,由于自然语言推理任务中的关注稀疏,本文仅报告了少量的性能提升。

数学证明深度学习激活函数从Softmax到Sparsemax

表3:SNLI数据集上注意力模型的性能

既然我们已经强调了sparsemax的一些优点和关键发现,现在让我们继续进行sparsemax背后的两个重要推导:即找到其闭式解以及其损失函数方程。

2.稀疏激活函数

回顾Softmax

Softmax是S形到多类分类的概括。它采用了对数变换把所有得分ž映射到概率p∈[0,1]:

数学证明深度学习激活函数从Softmax到Sparsemax

 

从概念上讲,对于一组K类,softmax是一个把K维实数向量映射到K-1维概率分布Δ(即到K-1维概率单纯形)的函数。更准确地说:

数学证明深度学习激活函数从Softmax到Sparsemax

 

重要的是要注意,只有K-1自由度是必要的,因为概率总和为1。

Softmax被定义为具有完全支持,非零值输出,数学上定义为

数学证明深度学习激活函数从Softmax到Sparsemax

 

修改此属性以允许零输出正是使我们能够获得稀疏概率的原因。

Sparsemax的定义

作者将sparsemax激活函数公式化为二次约束优化问题:

数学证明深度学习激活函数从Softmax到Sparsemax

 

这等同于将其定义为的欧几里得投影Ž到概率单纯Δᴷ ¯ ¹。稀疏性是通过在投影过程中碰到单纯形边界的概率很高而引起的,从而使某些尺寸为零。

封闭式解决方案

上面的sparsemax定义可以用其封闭形式的解决方案编写为

数学证明深度学习激活函数从Softmax到Sparsemax

 


数学证明深度学习激活函数从Softmax到Sparsemax

 

代表阈值函数。我们将在第3节中逐步推导该方程式。

类似地,也可以在其闭式解中表示为

数学证明深度学习激活函数从Softmax到Sparsemax

 


数学证明深度学习激活函数从Softmax到Sparsemax

 

下面的算法1的伪代码总结了这组方程,可以帮助更好地理解向量z的sparsemax计算的步骤:

数学证明深度学习激活函数从Softmax到Sparsemax

 

最具挑战性的部分是确定阈值 (z) ; 我们将我们在第3节最后证明时再回到这个,每个类的输出概率ž减去阈值τ (Z),如果该值为正,且0,如果是负的。

稀疏最大损失函数

最后,我们还想导出对应于sparsemax的损失函数。虽然封闭形式解的第一个证明是直接根据sparsemax的原始定义确定的,但是损失函数是一个优先问题,可以采取不同的形式。让我们解释一下原因。

可以证明,结合使用交叉熵损失(多项式分布上的负对数似然率)和softmax,损失函数简化为

数学证明深度学习激活函数从Softmax到Sparsemax

 

其中k等于真实标签的索引。

交叉熵损失和softmax结合使用所产生的优势简化了梯度到

数学证明深度学习激活函数从Softmax到Sparsemax

 

这意味着在反向传播期间,评估softmax(z)足以进行正向和反向传递,并且不需要额外的计算。这种行为是我们也想在sparsemax框架中维护的属性。

但是,根据经验,这种设置对于sparsemax来说是不可行的。尝试将sparsemax与交叉熵结合在一起产生的一个问题是,此损失函数现在将需要全支持,仅需要非零值的输出。但是,由于损失函数采用概率的对数,因此,如果概率严格为空,则不会定义其对数。这就是为什么交叉熵损失不能用于sparsemax激活函数的原因。作者建议找到一个满足相似梯度表达式的可微分损失函数,即

数学证明深度学习激活函数从Softmax到Sparsemax

 

通过添加另外的约束sparsemax损耗的最小值为0,当获得S(z)的= {K} 只有正确的类是非零的,我们可以表明sparsemax损失函数具有如下形式

数学证明深度学习激活函数从Softmax到Sparsemax

 

3.证明I:Sparsemax闭式解的推导

目的

该证明的目的是证明以下等效:

数学证明深度学习激活函数从Softmax到Sparsemax

 

换句话说,我们要解决概率p和得分z之差的平方欧几里德范数的arg min优化问题。这可以理解为在选择的最近点Δᴷ ¯ ¹从得分矢量Ž。

关于Karush-Kush-Tucker(KKT)条件的提醒

Karush–Kuhn–Tucker(KKT)条件是数学优化中的一个概念。给定一组特定约束,它们表示满足非线性编程解决方案的一阶必要条件。在我们的sparsemax的设置,我们要找到一些功能的最低点F:在一定条件下ℝⁿ→ℝ。

然后可以将优化问题写成如下形式:找到使函数f最小的x,使得满足g (x)和h (x)的条件,即:

数学证明深度学习激活函数从Softmax到Sparsemax

 

为了解决这个问题,我们首先需要定义拉格朗日函数L(x,μ,λ)

数学证明深度学习激活函数从Softmax到Sparsemax

 

的KKT方法的状态(处于高电平),其给出的拉格朗日函数L,如果(X *,μ*)是一个鞍点大号μ≥0和互补松弛μᵢgᵢ(X *)≥0 ∈i∈[0,n],则x *是上述优化问题的最优向量。

以一种具体的方式,我们简单地寻找拉格朗日梯度为零的值,即:

数学证明深度学习激活函数从Softmax到Sparsemax

 

推导

鉴于sparsemax是一个约束优化问题,我们用KKT的早期符号重写它,使用fgh如下:

数学证明深度学习激活函数从Softmax到Sparsemax

 

然后,拉格朗日采用

数学证明深度学习激活函数从Softmax到Sparsemax

 

现在,我们可以针对x区分拉格朗日函数:

数学证明深度学习激活函数从Softmax到Sparsemax

 

该解决方案成为一个包含三个方程式的系统:

数学证明深度学习激活函数从Softmax到Sparsemax

 

第一个方程式(1)来自拉格朗日为零的梯度。第二等式(2)来自于原来的松弛条件μ≥0和从p是概率的正矢量。最后,等式(3)是互补松弛条件。

随后,我们根据方程式(2)和(3)区分两种情况。对于每个维度i∈[0,n]pᵢ*> 0从而μᵢ* = 0,或者μᵢ*> 0从而pᵢ* = 0。更确切地说,这意味着我们考虑两种情况:支撑S(z)的元素,其中p> 0,以及支撑S(z)之外的元素,其中p = 0。

在继续进行sparsemax证明时,我们需要记住,我们的目标是两件事:确定非零概率的值,以及确定概率为0的条件。因此:

数学证明深度学习激活函数从Softmax到Sparsemax

 

在1.和2.中,zᵢ大于 *,因此pᵢ*等于它们的正差,或者pᵢ*为零。因此,pᵢ* =(zᵢ- (z))⁺。

此外,从等式(2)我们知道∑ᵢpᵢ* = 1,并且存在| S(z)|,非零pᵢ*,因此:

数学证明深度学习激活函数从Softmax到Sparsemax

 

这是sparsemax封闭形式解推导的第一个证明。

4.证明II:稀疏极大损失函数的推导

目的

第二个证明的目的是证明以下等效性:

数学证明深度学习激活函数从Softmax到Sparsemax

 

换句话说,我们要导出sparsemax损失函数的梯度与sparsemax损失函数本身之间的等价关系。

引理

在开始证明之前,我们需要定义一些重要的符号并建立两个重要的结果:

数学证明深度学习激活函数从Softmax到Sparsemax

 

对于引理1,我们可以直接计算关于z的²的偏导数。

数学证明深度学习激活函数从Softmax到Sparsemax

 

事实上,如果žᵢ是在S(z)的,那么这将是存在于分子和的导数将尺度成反比| S(z) |; 否则,导数将为null。

接下来,使用链式法则,我们可以推断出衍生τ²与问候ž

数学证明深度学习激活函数从Softmax到Sparsemax

 

请注意,如果j∉S(z)(z)= 0

在引理2,我们感兴趣的是所谓的自信 sparsemax当预测受让人重量的100%至只有真正类ķ。在这种情况下,我们有spar semax(z,k)=δ_k。这有两个结果,即:

数学证明深度学习激活函数从Softmax到Sparsemax

 

推导

我们想要获得sparsemax的损失函数,使得

数学证明深度学习激活函数从Softmax到Sparsemax

 

首先,让我们以非矢量形式查看关于zᵢ的sparsemax的偏导数:

数学证明深度学习激活函数从Softmax到Sparsemax

 


数学证明深度学习激活函数从Softmax到Sparsemax

 

然后,我们可以推断,对于K∈ ℝ 

数学证明深度学习激活函数从Softmax到Sparsemax

 

剩下的最后一步是确定积分常数。我们可以简单地挑K = 0和梯度仍然是正确的,但我们或许能有更合适的解决方案。这是我们使用上面定义的第二个引理的地方。在完美预测的情况下,我们希望损失等于零,类似于softmax或其他损失函数(如MAE / MSE)。

更准确地说,我们需要满足以下要求:

数学证明深度学习激活函数从Softmax到Sparsemax

 

从而:

数学证明深度学习激活函数从Softmax到Sparsemax

 

最后,我们获得:

数学证明深度学习激活函数从Softmax到Sparsemax

 

得出关于稀疏最大损失函数推导的第二个证明。

5.结论

在本文中,我们介绍了sparsemax激活函数背后的思想和数学公式,该函数与传统的softmax相比,允许稀疏输出域。我们首先总结了Martins等人的一些关键发现。本文认为,从经验上讲,随着类数的增加,sparsemax可以提高分类模型的性能。此外,在使用sparsemax训练的NLP注意模型中,性能提升以及更好的解释能力十分普遍。最后,主要部分专门介绍了sparsemax背后的两个重要证明;即闭合形式解的推导和潜在的损失函数。



Tags:深度学习   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
现如今,谈起人工智能我们都会想到的是“深度学习”(deep learning),无论是战胜李世石的AlphaGo,还是能够随意写出人类水平文章的GPT-3,它们的背后都依托的是这套算法。 它具有很好...【详细内容】
2021-09-14  Tags: 深度学习  点击:(104)  评论:(0)  加入收藏
0 前言大家好,欢迎来到“自由技艺”的知识小馆。今天我们来探讨下深度学习中的 Attention 机制,中文名为“注意力”。本文内容结构组织如下:1 为什么需要引入 Attention 机制?2...【详细内容】
2021-06-09  Tags: 深度学习  点击:(149)  评论:(0)  加入收藏
微信正用着的深度学习框架,现在你也可以上手试一试了。 就在最近,腾讯把这个名叫deepx_core的深度学习基础库正式对外开源。 相比于PyTorch、TensorFlow等流行深度学习框架,这位选手不仅具有通用性,还针对高维稀疏数据...【详细内容】
2021-04-06  Tags: 深度学习  点击:(205)  评论:(0)  加入收藏
为深度学习项目建立一个良好的环境不是一件容易的任务。因为需要处理的事情太多了:库必须匹配特定的版本,整个环境需要可以复制到其他机器上,所有东西都需要能够机器中的所有...【详细内容】
2021-03-05  Tags: 深度学习  点击:(96)  评论:(0)  加入收藏
深度学习是机器学习的一个子领域,它采用了一个特定的模型:一族通过某种方式连接起来的简单函数。由于这类模型的结构是受到人类大脑结构的启发而创造出来的...【详细内容】
2021-02-26  Tags: 深度学习  点击:(269)  评论:(0)  加入收藏
基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今,它被用于图像分类、人脸识别、图像中物体的识别、视频分析和分类以及机器人和自动驾驶车辆的图像处理等应用上。...【详细内容】
2021-01-07  Tags: 深度学习  点击:(87)  评论:(0)  加入收藏
什么是深度学习深度学习有如下一些众所周知且被广泛接受的定义。(1)深度学习是机器学习的子集。(2)深度学习使用级联的多层(非线性)处理单元,称为人工神经网络(ANN),以及受大脑结构和...【详细内容】
2020-12-07  Tags: 深度学习  点击:(184)  评论:(0)  加入收藏
本文将介绍在 Windows 计算机上配置深度学习环境的全过程,其中涉及安装所需的工具和驱动软件。出人意料的是,即便只是配置深度学习环境,任务也不轻松。你很有可能在这个过程中犯错。我个人已经很多次从头开始配置深度学...【详细内容】
2020-12-02  Tags: 深度学习  点击:(97)  评论:(0)  加入收藏
一代深度学习框架研究于璠华为技术有限公司摘要:从人工智能的历史出发,简述深度学习发展历程以及目前的挑战,通过介绍新一代深度学习框架的特点,分析总体框架,阐述自动并行、自动...【详细内容】
2020-11-10  Tags: 深度学习  点击:(94)  评论:(0)  加入收藏
HelloGitHub 推出的《讲解开源项目》 系列。这一期是由亚马逊工程师:Keerthan Vasist,为我们讲解 DJL(完全由 Java 构建的深度学习平台)系列的第 4 篇。...【详细内容】
2020-11-03  Tags: 深度学习  点击:(86)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(15)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(48)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条