一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于0标签和多标签分类的批softmax的制作方法

2022-07-11 12:27:25 来源:中国专利 TAG:

用于0标签和多标签分类的批softmax
1.相关申请
2.本技术要求于2019年11月15日提交的名称为“batch softmax for 0-label and multilabel classification(用于0标签和多标签分类的批softmax)”的希腊申请号20190100516的优先权权益,所述希腊申请的全部内容通过引用结合在此。
3.背景
4.在实际应用中,总是预期模型具有较高的预测准确度并且提供可靠的置信度分数。来自具有概率解释的softmax(归一化指数函数)分类器的分数是得到模型置信度的主要来源。然而,基于softmax的置信度分数具有明显的缺点。基于softmax的置信度分数可能是不可信的。特别地,据观察,深度神经网络倾向于对分布内数据过度自信,并对分布外数据(远离训练数据的数据)产生高置信度。还已知的是,深度神经网络容易受到对抗性攻击,在这种攻击中,只要对正确分类的示例进行轻微更改就会导致错误分类。进一步地,softmax被设计成对单标签分类问题的分类分布进行建模,其中输出空间是概率单纯形。但是分类假设不适用于0标签问题或n标签问题,其中,n》1。
5.概述
6.所公开的各个方面可以包括装置和方法。各个方面可以包括:使用来自神经网络中的层的多个logit的多个logit值来生成批softmax归一化因子;使用所述批softmax归一化因子对所述多个logit值进行归一化;以及将归一化后的多个logit值中的每一个映射到坐标空间中的多个流形之一。在一些方面,所述多个流形中的每一个表示logit可以被分类到的标签数量,并且所述多个流形中的至少一个表示除一个标签之外的标签数量。
7.一些方面可以进一步包括计算所述归一化后的多个logit值与所述logit被分类到的标签的真值数量相比较的损失值。
8.一些方面可以进一步包括在对所述logit进行归一化之前,使用所述损失值训练所述神经网络以生成被映射到所述坐标空间中的适当流形的logit。在一些方面,所述logit是基于所述logit可以被分类到的所述标签数量来映射的。
9.在一些方面,生成所述批softmax归一化因子可以包括约束所述批softmax归一化因子,使得由使用依赖于数据点的归一化常数对所述多个logit值进行归一化产生的预测值的总和等于所述多个logit值的所有标签的总和。
10.在一些方面,生成所述批softmax归一化因子可以包括:标识所述多个logit的最大logit值,以及去除所述最大logit值。在一些方面,所述多个logit值包括在去除所述最大logit值之后剩余的logit值。
11.在一些方面,生成所述批softmax归一化因子可以包括约束所述批softmax归一化因子,使得所述多个logit值中的任何logit值的指数函数都小于或等于依赖于数据点的归一化常数。
12.在一些方面中,所述多个流形可以包括针对n个标签的n 1个流形,其中,所述多个流形中的第一流形表示零个标签,所述多个流形中的第二流形表示一个标签,并且所述多个流形中的第三流形表示n个标签。
13.在一些方面中,所述第一流形可以是所述坐标空间的原点,所述第二流形可以是所述坐标空间中的单纯形,所述第三流形可以是所述坐标空间中与所述原点相对的点,并且使用来自所述神经网络中的层的多个logit的所述多个logit值来生成所述批softmax归一化因子可以包括使用来自所述神经网络中的最后一个隐藏层的多个logit的所述多个logit值来生成所述批softmax归一化因子。
14.各个方面包括计算设备,所述计算设备具有处理器,所述处理器被配置成执行上文概述的任何方法的操作。各个方面包括计算设备,所述计算设备具有用于执行上文概述的任何方法的功能的装置。各个方面包括非暂态处理器可读介质,其上存储有处理器可执行指令,所述处理器可执行指令被配置成使处理器执行上文概述的任何方法的操作。
15.附图简述
16.纳入于本文且构成本说明书一部分的附图解说了各个实施例中的示例实施例,并与以上给出的一般描述和下面给出的详细描述一起用来解释权利要求的特征。
17.图1是展示了适合于实施实施例的计算设备的组件框图。
18.图2是展示了适合于实施实施例的示例多核处理器的组件框图。
19.图3是展示了softmax的示例的图示。
20.图4是展示了softmax置信度的示例的图示。
21.图5是展示了softmax系数的示例的图示。
22.图6是展示了适合于实施实施例的示例神经网络的组件流程框图。
23.图7是展示了适合于实施实施例的批softmax的示例的过程流程图。
24.图8是展示了适合于实施实施例的批softmax的示例的图示。
25.图9是展示了适合于实施实施例的批softmax置信度的示例的图示。
26.图10是展示了适合于实施实施例的批softmax因子的示例的图示。
27.图11是展示了根据一些实施例的用于实施批softmax的方法的过程流程图。
28.图12是展示了根据一些实施例的用于生成批softmax归一化因子的方法的过程流程图。
29.图13是展示了适合于与各种实施例一起使用的示例移动计算设备的组件框图。
30.图14是展示了适合于与各种实施例一起使用的示例移动计算设备的组件框图。
31.图15是展示了适合于与各种实施例一起使用的示例服务器的组件框图。
32.详细描述
33.将参照附图来详细地描述各个实施例。在可能之处,相同附图标记将贯穿附图用于指代相同或类似部分。对特定示例和实现作出的引述用于解说性目的,而无意限定权利要求的范围。
34.各种实施例包括用于0标签和多标签分类的批softmax的方法和实施这样的方法的设备。用于0标签和多标签分类的批softmax的设备和方法可以包括基于对输入数据集实施神经网络产生的一批logit来生成批softmax归一化因子。一些实施例可以包括将批softmax归一化后的logit映射到坐标空间中的多个流形。在文章“batch softmax for out-of-distribution and multi-label classification(用于分布外和多标签分类的批softmax)”的草稿中也描述了各种实施例,所述文章作为附录附于本文并且是本公开的一部分。
35.术语“计算设备”和“移动计算设备”在本文可互换地使用以指代以下各项中的任一个或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(pda)、膝上型计算机、平板计算机、可转换膝上型/平板计算机(2合1计算机)、智能本、超级本、上网本、掌上计算机、无线电子邮件接收器、启用因特网的多媒体蜂窝电话、移动游戏控制台、无线游戏控制器、以及包括存储器和可编程处理器的类似的个人电子设备。术语“计算设备”可以进一步指代固定的计算设备,包括个人计算机、台式计算机、一体式计算机、工作站、超级计算机、大型计算机、嵌入式计算机、服务器、家庭影院计算机和游戏控制台。
36.本文中的术语“标签”、“类”和“分类”可互换使用。本文中的术语“预测值”和“概率”可互换使用。
37.图1展示了包括适合于与各种实施例一起使用的计算设备10的系统。计算设备10可以包括片上系统(soc)12,所述soc具有处理器14、内存16、通信接口18和存储内存接口20。计算设备10可以进一步包括诸如有线或无线调制解调器等通信组件22、存储内存24和用于建立无线通信链路的天线26。处理器14可包括各种处理设备(例如数个处理核)中的任何一种。
38.术语“片上系统”(soc)在本文中用于指代一组互连的电子电路,通常但不排他地,所述电子电路包括处理设备、存储器和通信接口。处理设备可以包括各种不同类型的处理器14和处理器核,诸如通用处理器、中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)、加速处理单元(apu)、辅助处理器、单核处理器和多核处理器。处理设备可以进一步实施其他硬件和硬件组合,诸如现场可编程门阵列(fpga)、专用集成电路(asic)、其他可编程逻辑器件、离散门逻辑、晶体管逻辑、性能监测硬件、看门狗硬件和时间参考。集成电路可被配置成使得该集成电路的组件驻留在单片半导体材料(诸如硅)上。
39.soc 12可包括一个或多个处理器14。计算设备10可包括不止一个soc12,由此增加处理器14和处理器核的数目。计算设备10还可包括不与soc12相关联的处理器14。各个处理器14可以是多核处理器,如下面参考图2所描述的。处理器14可以各自被配置用于可与计算设备10的其他处理器14相同或不同的特定目的。相同或不同配置的处理器14和处理器核中的一个或多个处理器和处理器核可被编组在一起。一组处理器14或处理器核可被称为多处理器群集。
40.soc 12的内存16可以是易失性内存或非易失性内存,所述内存被配置用于存储数据和处理器可执行代码以供处理器14访问。计算设备10和/或soc12可包括被配置用于各种目的的一个或多个存储器16。一个或多个存储器16可包括易失性存储器,诸如随机存取存储器(ram)或主存储器,或高速缓存存储器。这些存储器16可被配置成临时保存从数据传感器或子系统接收的有限量的数据,从非易失性存储器请求的、从非易失性存储器加载到存储器16以基于各种因素预期将来访问的数据和/或处理器可执行代码指令,和/或由处理器14产生并临时存储以供将来快速访问而不存储在非易失性存储器中的中间处理数据和/或处理器可执行代码指令。
41.内存16可以被配置成至少暂时地存储数据和处理器可执行代码,所述数据和处理器可执行代码从诸如另一内存16或存储内存24的另一内存设备加载到内存16以供处理器14中的一个或多个访问。加载到内存16的数据或处理器可执行代码可以响应于处理器14对功能的执行而被加载。响应于功能的执行而将数据或处理器可执行代码加载到内存16可能
是由于对内存16的内存访问请求不成功或“未命中”导致的,而所述不成功或“未命中”是因为所请求的数据或处理器可执行代码不在内存16中。响应于未命中,可以进行对另一内存16或存储内存24的内存访问请求,以将所请求的数据或处理器可执行代码从所述另一内存16或存储内存24加载到内存设备16。响应于功能的执行而将数据或处理器可执行代码加载到内存16可能是由于对另一内存16或存储内存24的内存访问请求而导致的,并且数据或处理器可执行代码可以被加载到内存16以供稍后访问。
42.存储内存接口20和存储内存24可以协同工作以允许计算设备10将数据和处理器可执行代码存储在非易失性存储介质上。存储内存24可以被配置成非常类似于内存16的实施例,其中存储内存24可以存储数据或处理器可执行代码以供处理器14中一个或多个访问。存储内存24是非易失性的,其可以在计算设备10的电源已经关闭之后保留信息。当电源重新打开并且计算设备10重新启动时,存储在存储内存24上的信息可供计算设备10使用。存储内存接口20可以控制对存储内存24的访问并且允许处理器14从存储内存24读取数据和向所述存储内存写入数据。
43.计算设备10的一些或所有组件可以被不同地布置和/或组合,同时仍然提供所述各种实施例的功能。计算设备10可以不限于每个组件中的一者,并且每个组件的多个实例可被包括在计算设备10的各种配置中。
44.图2展示了适合于实施实施例的多核处理器。多核处理器14可以包括多种处理器类型,包括例如中央处理单元、图形处理单元和/或数字处理单元。多核处理器14还可以包括定制硬件加速器,所述硬件加速器可以包括定制处理硬件和/或被配置成实施一组专门功能的通用硬件。
45.多核处理器可以具有多个同构或异构处理器核200、201、202、203。同构多核处理器可以包括多个同构处理器核。处理器核200、201、202、203可以是同构的,因为多核处理器14的处理器核200、201、202、203可以被配置用于相同目的并且具有相同或相似的性能特性。例如,多核处理器14可以是通用处理器,并且处理器核200、201、202、203可以是同构通用处理器核。多核处理器14可以是图形处理单元或数字信号处理器,并且处理器核200、201、202、203可以分别是同构图形处理器核或数字信号处理器核。多核处理器14可以是具有同构处理器核200、201、202、203的定制硬件加速器。为了便于参考,术语“定制硬件加速器”、“处理器”和“处理器核”在本文中可以互换使用。
46.异构多核处理器可以包括多个异构处理器核。处理器核200、201、202、203可以是异构的,因为多核处理器14的处理器核200、201、202、203可以被配置用于不同的目的和/或具有不同的性能特性。这种异构处理器核的异构性可以包括不同的指令集架构、流水线、操作频率等。这种异构处理器核的示例可以包括所谓的“big.little(大小核)”架构,在所述架构中,可以将较慢的低功率处理器核与更强大并且更耗电的处理器核耦合。在类似的实施例中,soc(例如,图1的soc 12)可以包括任何数量的同构或异构多核处理器14。在各种实施例中,并非所有的处理器核200、201、202、203都需要是异构处理器核,因为异构多核处理器可以包括处理器核200、201、202、203的包括至少一个异构处理器核的任何组合。
47.可以为多核处理器14的每个处理器核200、201、202、203指定一个私有高速缓存210、212、214、216,所述私有高速缓存专用于供所指定的处理器核200、201、202、203进行读访问和/写访问。私有高速缓存210、212、214、216可以存储数据和/或指令,并且使所存储的
数据和/或指令可供私有高速缓存210、212、214、216的专用处理器核200、201、202、203使用,以便由处理器核200、201、202、203在执行时使用。私有高速缓存210、212、214、216可以包括如本文参考图1的内存16所描述的易失性内存。
48.多核处理器14可以进一步包括共享高速缓存230,所述共享高速缓存可以被配置成供处理器核200、201、202、203进行读访问和/或写访问。私有高速缓存210、212、214、216可以存储数据和/或指令,并且使所存储的数据和/或指令可供处理器核200、201、202、203使用,以便由处理器核200、201、202、203在执行时使用。共享高速缓存230还可以用作输入到多核处理器14和/或从所述多核处理器输出的数据和/或指令的缓冲器。共享高速缓存230可以包括如本文参考图1的内存16所描述的易失性内存。
49.在图2所示的示例中,多核处理器14包括四个处理器核200、201、202、203(即,处理器核0、处理器核1、处理器核2和处理器核3)。在此示例中,为每个处理器核200、201、202、203指定相应的私有高速缓存210、212、214、216(即,处理器核0和私有高速缓存0,处理器核1和私有高速缓存1,处理器核2和私有高速缓存2,处理器核3和私有高速缓存3)。为了便于解释,本文的示例可以参考图2所示的四个处理器核200、201、202、203和四个私有高速缓存210、212、214、216。然而,在图2中展示并且在本文中描述的四个处理器核200、201、202、203和四个私有高速缓存210、212、214、216仅作为示例提供,并且决不意味着将各种实施例限制为具有四个指定的私有高速缓存的四核处理器系统。计算设备10、soc 12或多核处理器14可以单独地或组合地包括少于或多于本文中所展示和描述的四个处理器核200、201、202、203和私有高速缓存210、212、214、216。
50.图3展示了softmax的示例。softmax函数可以用于将神经网络输出的分类分布近似为如下等式:
[0051][0052]
其中,z=[z0,...,zk]是深度神经网络对于给定输入数据“x”的logit嵌入。softmax函数将指数函数和l1归一化应用于logit向量z,这会产生概率向量p=[p0,

,pn],所述概率向量表示每个类应用于每个logit的概率,即,pk=p(y=k|x)。通常,概率分数可以用作模型置信度分数,以用于各种目的,诸如用于在决策中的作为阈值或用于在排名中检索项目。
[0053]
softmax函数使用依赖于数据点的归一化常数(c
归一化
):
[0054][0055]
这是等式1的归一化函数中的除数。依赖于数据点的c
归一化
可能会导致logit嵌入歧义,并且不能应用于正确处置0标签和n标签问题。
[0056]
使用softmax函数,多个不同的logit嵌入点,例如,z1、z2和z3会被投影在同一输出点“p”处。这可以称为未校准的logit问题。会出现这个问题是因为虽然每个logit嵌入点的c
归一化
不同,但它们都取决于给定输入的特定数据样本。图300展示了logit嵌入点z1、z2和z3投影到欧几里得空间302中的单纯形304上的输出点p处。softmax函数将logit嵌入点z1、z2和z3沿着从原点“o”通过logit嵌入点z1、z2和z3的射线306投影到单纯形304。每个logit嵌
入点可以具有不同的c
归一化
,其通过依赖于数据点的因子对logit嵌入点z1、z2和z3进行归一化,因而会将logit嵌入点z1、z2和z3投影到相同的输出点p,例如,对于z1,c
归一化
=0.1,对于z2,c
归一化
=1.1,并且对于z3,c
归一化
=100,而对于输出点p,c
归一化
=1。因此,沿射线306的所有logit嵌入点z1、z2和z3都会被投影到单纯形304上的同一输出点p处,所述输出点位于射线306与单纯形304相交处。softmax所引入的问题是:更远的logit嵌入点z1和z3在输出空间单纯形304上具有与接近最优的logit嵌入点z2相似的概率输出,所述概率输出被用作更远的logit嵌入点z1和z3的置信度分数。
[0057]
进一步地,图4示出了softmax置信度映射的示例,并且图5展示了softmax归一化系数c
归一化
映射的示例。图400、500进一步展示了softmax函数的上述问题。在这些示例中,深度神经网络在双月形数据集上进行训练。图400展示了使用softmax仅用分布内数据训练的深度神经网络对于远离训练数据点的数据点会产生高置信概率输出。换言之,与训练数据迥异的数据——诸如与训练数据不属于同一类的数据——仍可能被经训练的深度神经网络指示为以高置信度属于所述类。图500展示了数据的softmax归一化系数随一系列归一化系数值变化。softmax归一化系数的这种变化允许与训练数据迥异的数据——诸如与训练数据不属于同一类的数据——仍可能被经训练的深度神经网络指示为以高置信度属于所述类。
[0058]
图6展示了用于实施实施例的示例神经网络。参考图1至图5,具有m个隐藏层的神经网络600可以具有输入层602、任意数量m个隐藏层以及输出层608,所述m个隐藏层包括m-1个隐藏层604和第m个隐藏层606。具有m个隐藏层的神经网络600可以是任何类型的神经网络,包括深度神经网络、卷积神经网络、多层感知器神经网络、前馈神经网络等。
[0059]
输入层602可以接收输入数据集的数据并将输入数据传递到m-1个隐藏层604中的第一隐藏层。数据集的数据可以包括任何类型和组合的数据,诸如图像数据、视频数据、音频数据、文本数据、模拟信号数据、数字信号数据等。m-1个隐藏层604可以是任何类型和组合的隐藏层,诸如卷积层、全连接层、稀疏连接层等。m-1个隐藏层604可以通过将权重、偏差和激活函数应用于m-1个隐藏层604中的每个隐藏层接收到的数据,对来自输入层602的输入数据和来自m-1个隐藏层604中的较前隐藏层的激活值进行操作。类似地,第m个隐藏层606可以对从m-1个隐藏层604接收到的任何激活值进行操作。
[0060]
具有第m个隐藏层606的激活值的节点在本文中可以被称为logit,其可以表示给定数据集的原始的、无界的预测值。预测值可以是表示数据集中的数据可能是分类的一部分的概率的值。然而,logit的无界值可能难以解释,因为可能没有可以用于确定与每个logit相关联的概率程度的尺度。例如,logit值之间的比较可以指示与logit相关联的分类中的哪一个更大概率或更小概率可能适用于数据集。然而,可能无法确定与logit相关联的分类适用于数据集的总体概率程度。
[0061]
输出层608和第m个隐藏层606可以具有相同数量的节点。输出层608的节点可以表示logit值可以被分类到其中的类。输出层608的节点可以从第m个隐藏层606的logit接收logit值。输出层608可以通过应用本文进一步描述的批softmax函数对logit值进行操作,以计算logit值被分类到每个类中的概率。批softmax函数可以取决于全局归一化因子而不是传统softmax的依赖于数据点的归一化常数c
归一化
。实施具有的批
softmax函数而不是具有c
归一化
的softmax函数可以解决softmax函数的logit嵌入歧义问题,因为批softmax函数不依赖于单个数据点。
[0062]
批softmax函数可以为被分类到每个类中的logit值的概率值定界,使得批softmax函数所生成的概率值可在有限的概率值范围内解释。然而,与传统的softmax不同,批softmax函数不会将所有概率值的总和限制为等于1。例如,批softmax函数可以将每个概率值的范围定界在[0,1]之间,并且所有概率值的总和可以是从0到具有m个隐藏层的神经网络600的标签或分类的数量。因此,除了softmax函数可以建模的1标签分类问题之外,批softmax函数还可以建模0标签和n标签分类问题。输出层608可以输出logit值被分类到每个类中的概率值。
[0063]
图7展示了用于实施实施例的批softmax的示例。参考图1至图6,批softmax函数可以用以下简化等式表达:
[0064][0065]
其中,被除数与softmax函数(等式1)的被除数相同,但除数是可以是依赖于数据集的全局归一化因子而不是依赖于数据点的归一化常数c
归一化
。与softmax函数相比,批softmax函数使用来对神经网络(例如,图6中的具有m个隐藏层的神经网络600)的logit全集进行归一化,而不是使用单独的c
归一化
对神经网络的每个logit进行归一化。
[0066]
在示例中,神经网络可以将输入数据x(i)映射到logit z(i)的k路输出。一批b个输入数据x(i)可以产生logit矩阵700,z
bxk
=[z
(1)
,

,z
(b)
]。在logit矩阵700中,可以是一批b个输入数据x(i)中的第i个输入数据的第k个logit。进一步地,的阴影暗度可以表示的激活值。批softmax函数可以应用于logit矩阵700并使用将映射到预测值矩阵p 702或概率矩阵的预测值或概率值。预测值可以定界在0到1之间,并且可以近似于被分类到特定类k中的概率即,
[0067]
事实是可以不依赖于神经网络的任何特定测试或训练数据点来对特定logit进行归一化,可以通过使用来自一整批b个输入数据x(i)的logit来估计。的估计可以约束如下:
[0068][0069][0070]
换言之,预测值矩阵702中所有预测值的总和应该等于真值标签矩阵y704中的所
有标签的总和。真值标签矩阵704可以示出在一批b个输入数据x(i)中哪里存在0标签样本、1标签样本和n标签样本。真值标签矩阵704中的每个阴影标签可以表示单个标签,并且可以将一行中标签的数量相加以确定输入数据x(i)的标签数量。进一步地,logit矩阵700中任何logit的指数值应该小于或等于c
归一化
。这些约束可以确保概率的值不会超过1。
[0071]
根据约束1,一批b个输入数据x(i)的批归一化值可以计算为的估计值:
[0072][0073]
真值标签矩阵y 704可以用于使用批softmax函数来训练神经网络。可以在预测值矩阵702与用于使用批softmax函数来训练神经网络的真值标签矩阵704之间计算诸如交叉熵损失、负对数似然(nll)损失等损失函数。约束2可以不作为用于对logit z(i)进行归一化的批softmax函数的一部分而实施。相反,约束2可以是在神经网络训练期间实施的损失项。
[0074]
批softmax函数可以用于对logit z(i)进行归一化和确定训练神经网络的损失。在应用批softmax函数之前,可以已知一批logit z=[z
(1)
,...,z
(b)
]和一批标签y=[y
(1)
,...,y
(b)
]。可以对logit z(i)进行预处理以实现数值稳定性,例如,通过去除一些最大logit z(i):
[0075][0076][0077]
去除最大logit可以使浮点计算不太可能溢出。
[0078]
这批标签y中的标签y(i)的总数可以计数为:
[0079][0080]
对于每批logit z和标签y,可以使用来估计:
[0081][0082]
使用可以计算损失函数中的项,包括每个概率的对数值:
[0083][0084]
损失函数的项可以用于计算损失函数中的损失,诸如nll损失:
[0085]
[0086]
其中,从损失项中减去正常的nll损失项(yi·
log pi)以实施约束2(max(log pi,0))。nll损失l可以生成梯度:
[0087][0088]
这个梯度几乎与softmax函数一样,这可以表明批softmax函数的梯度与softmax函数的一样稳定。不同之处可以在于,对于0标签问题,softmax函数将始终具有零梯度,从而导致神经网络停止训练。批softmax函数的梯度可以去除这个限制,并且梯度可以保持相同的形式,而不管是0标签、1标签还是n标签问题。
[0089]
图8展示了用于实施实施例的批softmax的示例。参考图1至图7,批softmax函数(等式3)可以用于近似神经网络的分类分布。批softmax函数可以使用将指数函数和l1归一化应用于神经网络(例如,图6中的具有m个隐藏层的神经网络600)的logit,这会产生概率向量p=[p0,

,pn],所述概率向量表示每个类应用于每个logit的概率,即,pk=p(y=k|x)。
[0090]
图800展示了欧几里得空间302中的n 1个流形304、802、804、806,其中可以包括原点流形802、作为流形304的单纯形304、另一个单纯形流形804和在欧几里得空间302中与原点流形相对的点流形806。在softmax中,多个不同的logit可能会被投影到同一输出点,因为softmax只能准确地建模1标签分类问题,与之对比,批softmax可以用于将不同的logit投影到n 1个流形304、802、804、806,以用于多达n标签的分类问题。与softmax进一步对比,代替表示单纯形流形304上的单个点的归一化因子c
归一化
,批softmax可以使用表示整个单纯形流形304的归一化因子
[0091]
批softmax可以用于基于logit可以分类到的标签数量来将logit投影到流形304、802、804、806。批softmax和nll损失函数可以用于训练神经网络以产生logit值,从而可以将logit可以分类到的标签数量与针对该标签数量的流形304、802、804、806进行关联。与softmax相比,将logit可以被分类到的标签数量与针对该标签数量的流形304、802、804、806进行关联可以减少由softmax将分布外数据投影到单纯形流形304导致的歧义。通过将logit投影到更接近其在欧几里得空间302中的坐标的流形304、802、804、806,批softmax提供了对logit被分类到特定标签的概率的更准确表示。
[0092]
例如,在图800中建模的3标签问题中,在欧几里得空间302中具有坐标(p
x
,py,pz)的点p(未示出)可以表示多达3个类的概率。使用批softmax,在神经网络的训练期间,可以基于点p可以被分类到与流形304、802、804、806相关联的一定标签数量的概率来将点p投影到流形304、802、804、806。所述概率可以由点p到流形304、802、804、806的距离来表示。神经网络可以被训练成在稍后的迭代中对点p的位置实施约束,使得点p可以越来越准确地定位在适当的流形304、802、804、806处或附近。例如,这样的约束可以包括:
[0093][0094]
在神经网络的训练期间,点p可以越来越准确地定位在适当的流形304、802、804、806处或附近,而在神经网络的测试和应用期间,点p可以位于欧几里得空间302内的任何地方。
[0095]
进一步地,图9展示了用于实施实施例的批softmax置信度映射的示例,并且图10展示了用于实施实施例的批softmax归一化因子映射的示例。图900、1000进一步展示了批softmax函数的益处。在这些示例中,深度神经网络在双月形数据集上进行训练。
[0096]
图900展示了使用批softmax仅用分布内数据训练的深度神经网络对于接近训练数据点的数据点会产生高置信概率输出,而对于远离训练数据点的数据点会产生低置信概率输出。换言之,经训练的深度神经网络比使用softmax时(参见图4中的图400)更不可能将与训练数据迥异的数据——诸如与训练数据不属于同一类的数据——指示为属于所述类。
[0097]
图1000展示了数据的批softmax归一化因子是恒定的。这些恒定的批softmax归一化因子允许识别与训练数据迥异的数据——诸如与训练数据不属于同一类的数据,并通过经训练的深度神经网络适当地提供低置信度分数,即,所述迥异的数据可以按某个标签进行分类。
[0098]
图11展示了根据一些实施例的用于实施批softmax归一化函数的方法1100。方法1100可以在计算设备中以在处理器(例如,图1和图2中的处理器14和图2中的处理器核200、201、202、203)中执行的软件、通用硬件、专用硬件、或软件配置的处理器和专用硬件的组合来实施,所述组合诸如是执行用于神经网络(例如,图6中的具有m个隐藏层的神经网络600)的软件的处理器,包括其他单独的组件。为了涵盖在各种实施例中实现的替代性配置,实施方法1100的硬件在本文中被称为“处理设备”。
[0099]
在框1102中,处理设备可以从输入数据集生成logit。例如,输入数据集可以产生logit矩阵(例如,图7中的logit矩阵700)。来自输入数据集的输入数据可以被提供给神经网络的输入层(例如,图6中的输入层602),通过任何数量的隐藏层(例如,图6中的m-1个隐藏层604)进行处理,并在最终隐藏层(例如,图6中的第m个隐藏层606)处输出为logit。
[0100]
在框1104中,处理设备可以生成批softmax归一化因子。本文中将参考图12在方法12中进一步描述生成批softmax归一化因子。批softmax归一化因子在本文中也可以称为全局归一化因子
[0101]
在框1106中,处理设备可以使用批softmax归一化因子对logit值进行归一化。例如,批softmax函数可以应用于logit矩阵并使用将logit映射到预测值矩阵(例如,图7中的预测值矩阵702)或概率矩阵的预测值或概率值。处理设备可以使用批softmax归一化因子作为除数并且使用logit值作为被除数来实施logit值的l1归一化。
[0102]
在框1108中,处理设备可以将归一化后的logit值映射到坐标空间(例如,图8中的欧几里得空间302)中的流形(例如,图8中的流形304、802、804、806)。处理设备可以基于归一化后的logit值在坐标空间中最接近哪个与一定标签数量相对应的流形来映射归一化logit值。归一化后的logit值可以表示logit可以被分类到与坐标空间相关联的标签中的任一个的概率。归一化后的logit越接近流形,logit越有可能按流形所对应的标签数量分类。
[0103]
在框1110中,处理设备可以计算归一化后的logit值对于logit的标签的损失。每个logit可以实际上被分类到特定的标签。例如,真值标签矩阵(例如,图7中的真值标签矩阵704)可以示出在输入数据集中哪里存在不同的标签样本,诸如0标签样本、1标签样本和n标签样本。logic可以实际上被分类到的标签数量可能会偏离归一化后的logit值表示为logit被分类到其的概率的标签数量。这种偏离可能是由于神经网络对输入数据的不准确识别和分类造成的。在一些实施例中,可以在预测值矩阵与用于使用批softmax函数来训练神经网络的真值标签矩阵之间计算诸如交叉熵损失、负对数似然(nll)损失等损失函数。所述损失可以如本文参考等式9和10所描述地计算。
[0104]
在框1112中,处理设备可以使用归一化后的logit值对于logit的标签的损失来训练神经网络。处理设备可以使用损失值,诸如通过梯度下降等来训练神经网络。处理设备可以基于损失值更新神经网络的诸如权重等值,以减少神经网络的连续实施的损失值。
[0105]
图12展示了根据一些实施例的用于生成批softmax归一化因子的方法1100。方法1200可以在计算设备中以在处理器(例如,图1和图2中的处理器14和图2中的处理器核200、201、202、203)中执行的软件、通用硬件、专用硬件、或软件配置的处理器和专用硬件的组合来实施,所述组合诸如是执行用于神经网络(例如,图6中的具有m个隐藏层的神经网络600)的软件的处理器,包括其他单独的组件。为了涵盖在各种实施例中实现的替代性配置,实施方法1200的硬件在本文中被称为“处理设备”。在一些实施例中,方法1200可以被实施为本文参考图11描述的方法1100的框1104的一部分。
[0106]
在框1202中,处理设备可以约束批softmax归一化因子,使得由使用依赖于数据点的归一化常数对logit值进行归一化产生的预测值的总和等于logit值的所有标签的总和(参见约束1)。logit值可以实际上被分类到任何标签数量,无论神经网络是否成功地将logit值分类到正确的标签都如此。为了为由神经网络的实施而产生的所有logit生成批softmax归一化因子,由对logit值的归一化产生的预测值或概率值的总和可以等于logit值实际上被分类到的标签数量的总和。例如,预测值矩阵(例如,图7中的预测值矩阵702)中的所有预测值的总和应该等于真值标签矩阵(例如,图7中的真值标签矩阵704)中的所有标签的总和。
[0107]
在框1204中,处理设备可以约束批softmax归一化因子,使得任何logit值的指数函数都小于或等于依赖于数据点的归一化常数(参见约束2)。该约束可以用作损失项并在神经网络的训练期间实施。
[0108]
在框1206中,处理设备可以去除最大logit值(参见等式5和6)。为了提高数值稳定性,可以从用于生成批softmax归一化因子的一组logit值中去除最大logit值。去除最大logit可以使浮点计算不太可能溢出。
[0109]
在框1208中,处理设备可以使用所有剩余的logit值来估计批softmax归一化因子
(参见等式4、7和8)。处理设备可以对用于对输入数据集的神经网络实施的一批标签内的标签数量进行计数。处理设备可以对由神经网络的实施产生并且在框1206中未被去除的每个剩余的logit的指数函数值进行求和。这些剩余的logit值可以称为一批logit值。处理设备可以将剩余的logit的指数函数值的总和除以标签的数量。
[0110]
各种实施例(包括但不限于上文参考图1至图12所描述的实施例)可以在包括移动计算设备的各种计算系统中实施,图13展示了适合于与各种实施例一起使用的移动计算设备的示例。移动计算设备1300可包括处理器1302,该处理器1304耦合到触摸屏控制器1306和内部存储器806。处理器1302可以是被指定用于一般或特定处理任务的一个或多个多核集成电路。内部存储器1306可以是易失性或非易失性存储器,并且还可以是安全和/或加密的存储器、或者不安全和/或未加密存储器,或其任何组合。可被利用的存储器类型的示例包括但不限于ddr、lpddr、gddr、wideio、ram、sram、dram、p-ram、r-ram、m-ram、stt-ram以及嵌入式dram。触摸屏控制器1304和处理器1302还可以耦合到触摸屏面板1312,诸如电阻感测式触摸屏、电容感测式触摸屏、红外感测式触摸屏等。另外,计算设备1300的显示器不一定具有触摸屏能力。
[0111]
移动计算设备1300可具有彼此耦合和/或耦合到处理器1308的一个或多个无线电信号收发机1310(例如,peanut、蓝牙、zigbee、wi-fi、rf无线电)以及天线1302以用于发送和接收通信。收发机1308和天线1310可与以上提及的电路系统一起使用以实现各种无线传输协议栈和接口。移动计算设备1300可包括蜂窝网络无线调制解调器芯片1316,该芯片实现经由蜂窝网络的通信并且耦合到处理器。
[0112]
移动计算设备1300可包括耦合到处理器1302的外围设备连接接口1318。外围设备连接接口1318可被单独地配置成接纳一种类型的连接,或者可被配置成接纳共用的或专有的各种类型的物理和通信连接,诸如通用串行总线(usb)、火线(firewire)、雷电(thunderbolt)或pcie。外围设备连接接口1318还可耦合到类似地配置的外围设备连接端口(未示出)。
[0113]
移动计算设备1300还可包括用于提供音频输出的扬声器1314。移动计算设备1300还可包括用于容纳本文所描述的组件中的全部或一些组件的外壳1320,该外壳由塑料、金属或各材料的组合来构造。移动计算设备1300可包括耦合到处理器1302的电源1322,诸如一次性或可再充电电池。可再充电电池还可耦合到外围设备连接端口以从移动计算设备1300外部的源接收充电电流。移动计算设备1300还可包括用于接收用户输入的物理按钮1324。移动计算设备1300还可包括用于开启和关闭移动计算设备1300的电源按钮1326。
[0114]
各种实施例(包括但不限于上文参考图1至图12所描述的实施例)可以在包括膝上型计算机1400的各种计算系统中实施,图14展示了所述膝上型计算机的示例。许多膝上型计算机包括触摸板触摸表面1417,其充当计算机的指向设备,并且由此可接收与在装备有触摸屏显示器的计算设备以及上述计算设备上实现的那些手势类似的拖拽、滚动和轻弹手势。膝上型计算机1400将通常包括耦合到易失性存储器1412和大容量非易失性存储器(诸如闪存的硬盘驱动器1413)的处理器1411。另外,计算机1400可具有用于发送和接收电磁辐射、可连接到无线数据链路的一个或多个天线1408和/或耦合到处理器1411的蜂窝电话收发机1416。计算机1400还可包括耦合到处理器1411的软盘驱动器1414和压缩碟(cd)驱动器1415。在笔记本配置中,计算机外壳包括均耦合到处理器1411的触摸板1417、键盘1418、和
显示器1419。计算设备的其他配置可包括如众所周知地耦合到处理器(例如,经由usb输入)的计算机鼠标或轨迹球,这也可结合各个实施例来使用。
[0115]
各种实施例(包括但不限于上文参考图1至图12所描述的实施例)可以在固定计算系统中实施,所述固定计算系统诸如是各种可商购服务器中的任何一种。图15中解说了示例服务器1500。此类服务器1500典型地包括耦合到易失性存储器1501和大容量非易失性存储器(诸如盘驱动器1502)的一个或多个多核处理器组装件1504。如图15中所解说的,可通过将多核处理器组装件1501插入组装件的机架中来将多核处理器组装件1500添加到服务器1000。服务器1500还可包括耦合到处理器1506的软盘驱动器、压缩碟(cd)或数字多用碟(dvd)碟驱动器1501。服务器1500还可以包括网络接入端口1503,所述网络接入端口耦合到多核处理器组件1501,用于建立与网络1505的网络接口连接,所述网络诸如是耦合到其他广播系统计算机和服务器的局域网、互联网、公共交换电话网络和/或蜂窝数据网络(例如,cdma、tdma、gsm、pcs、3g、4g、lte或任何其他类型的蜂窝数据网络)。
[0116]
在以下段落中描述了各实现示例。虽然以下实现示例中的一些是以示例方法的形式来描述的,但是进一步示例实现可以包括:以下段落中讨论的示例方法由计算设备实现,所述计算设备包括处理器,所述处理器配置有处理器可执行指令以执行示例方法的操作;以下段落中讨论的示例方法由计算设备实施,所述计算设备包括用于执行示例方法的功能的装置;并且以下段落中讨论的示例方法被实施为非暂态处理器可读存储介质,其上存储有处理器可执行指令,所述处理器可执行指令被配置成使计算设备的处理器执行示例方法的操作。
[0117]
示例1.一种方法,包括:使用来自神经网络中的层的多个logit的多个logit值来生成批softmax归一化因子;使用所述批softmax归一化因子对所述多个logit值进行归一化;以及将归一化后的多个logit值中的每一个映射到坐标空间中的多个流形之一,其中,所述多个流形中的每一个表示logit可以被分类到的标签数量,并且其中,所述多个流形中的至少一个表示除一个标签之外的标签数量。
[0118]
示例2.如示例1所述的方法,进一步包括计算所述归一化后的多个logit值与所述logit被分类到的标签的真值数量相比较的损失值。
[0119]
示例3.如示例2所述的方法,进一步包括在对所述logit进行归一化之前,使用所述损失值训练所述神经网络以生成被映射到所述坐标空间中的适当流形的logit,其中,所述logit是基于所述logit可以被分类到的所述标签数量来映射的。
[0120]
示例4.如示例1至3中任一项所述的方法,其中,生成所述批softmax归一化因子可以包括约束所述批softmax归一化因子,使得由使用依赖于数据点的归一化常数对所述多个logit值进行归一化产生的预测值的总和等于所述多个logit值的所有标签的总和。
[0121]
示例5.如示例1至3中任一项所述的方法,其中,生成所述批softmax归一化因子可以包括:标识所述多个logit的最大logit值,以及去除所述最大logit值,其中,所述多个logit值包括在去除所述最大logit值之后剩余的logit值。
[0122]
示例6.如示例1至3中任一项所述的方法,其中,生成所述批softmax归一化因子可以包括约束所述批softmax归一化因子,使得所述多个logit值中的任何logit值的指数函数都小于或等于依赖于数据点的归一化常数。
[0123]
示例7.如示例1至6中任一项所述的方法,其中,所述多个流形可以包括针对n个标
签的n 1个流形,其中,所述多个流形中的第一流形表示零个标签,所述多个流形中的第二流形表示一个标签,并且所述多个流形中的第三流形表示n个标签。
[0124]
示例8.如示例7所述的方法,其中,所述第一流形是所述坐标空间的原点,所述第二流形是所述坐标空间中的单纯形,所述第三流形是所述坐标空间中与所述原点相对的点,并且使用来自所述神经网络中的层的多个logit的所述多个logit值来生成所述批softmax归一化因子可以包括使用来自所述神经网络中的最后一个隐藏层的多个logit的所述多个logit值来生成所述批softmax归一化因子。
[0125]
用于在可编程处理器上执行以执行各个实施例的操作的计算机程序代码或“程序代码”可用高级编程语言(诸如c、c 、c#、smalltalk、java、javascript、visual basic)、结构化查询语言(例如transact-sql)、perl、或以各种其他编程语言来编写。如本技术中所使用的存储在计算机可读存储介质上的程序代码或程序可指其格式能被处理器理解的机器语言码(诸如,对象码)。
[0126]
前述方法描述和过程流程图仅作为解说性示例而提供,且并非旨在要求或暗示各个实施例的操作必须按所给出的次序来执行。如本领域技术人员将领会的,前述各实施例中的操作次序可按任何次序来执行。诸如“其后”、“然后”、“接着”等的措辞并非旨在限定操作的次序;这些措辞仅是简单地用以指引读者遍历方法的描述。此外,对单数形式的权利要求元素的任何引述(例如使用冠词“一”、“某”或“该”的引述)不应解释为将该元素限定为单数。
[0127]
结合各个实施例来描述的各种解说性逻辑框、模块、电路、和算法操作可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路和操作在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离权利要求的范围。
[0128]
用于实现结合本文所公开的实施例描述的各种解说性逻辑、逻辑框、模块、以及电路的硬件可用设计成执行本文所描述的功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如,dsp与微处理器的组合、多个微处理器、与dsp核心协同的一个或多个微处理器、或任何其他此类配置。替换地,一些操作或方法可由专用于给定功能的电路系统来执行。
[0129]
在一个或多个实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则各功能可作为一条或多条指令或代码存储在非瞬态计算机可读介质或非瞬态处理器可读介质上。本文所公开的方法或算法的操作可在处理器可执行软件模块中实施,该处理器可执行软件模块可驻留在非瞬态计算机可读或处理器可读存储介质上。非瞬态计算机可读或处理器可读存储介质可以是能被计算机或处理器访问的任何存储介质。作为示例而非限定,此类非瞬态计算机可读或处理器可读介质可包括ram、rom、eeprom、闪存、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令
或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、压缩碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据而碟(disc)用激光以光学方式再现数据。以上的组合也被包括在非瞬态计算机可读和处理器可读介质的范围内。附加地,方法或算法的操作可作为一条代码和/或指令或者任何代码和/或指令组合或集合而驻留在可被纳入计算机程序产品中的非瞬态处理器可读介质和/或计算机可读介质上。
[0130]
提供所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使用本权利要求。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文所定义的普适原理可被应用于其他实施例和实现而不会脱离各权利要求的范围。由此,本公开并非旨在被限定于本文中所描述的实施例和实现,而是应被授予与所附权利要求以及本文所公开的原理和新颖特征一致的最广义的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献