用于训练神经网络的方法转让专利

申请号 : CN202210859174.8

文献号 : CN115700603A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·乌塔西

申请人 : 大陆智行德国有限公司

摘要 :

本发明涉及用于训练人工神经网络的一种方法,其包括:提供待训练的神经网络,所述神经网络在训练后待基于第一激活函数进行操作;基于第二激活函数执行神经网络的初始训练,第二激活函数不同于第一激活函数,第二激活函数是包括至少一个待改变的参数的参数化的激活函数,第二激活函数的至少一参数被选择为使得第二激活函数等于或基本上等于第一激活函数,初始训练使用起始参数设置来执行,起始参数设置被选择为使得第二激活函数不同于第一激活函数;在过渡阶段,执行进一步的训练步骤,在前后连续的训练步骤中,改变第二激活函数的至少一个参数,以使第二激活函数接近第一激活函数;以及基于第一激活函数执行最后的训练步骤。

权利要求 :

1.用于训练人工神经网络(1)的方法,其中,所述方法包括以下步骤:‑提供待训练的神经网络(1),在训练后该神经网络(1)待基于第一激活函数进行操作(S10);

‑基于第二激活函数执行神经网络(1)的初始训练,其中,第二激活函数不同于第一激活函数,其中,第二激活函数是包括至少一个待改变的参数的参数化的激活函数,其中,所述第二激活函数的至少一参数能够被选择为使得第二激活函数等于或基本上等于第一激活函数,其中,初始训练使用起始参数设置来执行,其中,起始参数设置被选择为使得第二激活函数不同于第一激活函数(S11);

‑在过渡阶段,执行进一步的训练步骤,其中,在前后连续的训练步骤中,改变第二激活函数的至少一个参数,以使第二激活函数接近第一激活函数(S12);以及‑基于第一激活函数执行最后的训练步骤(S13)。

2.根据权利要求1所述的方法,其中,在过渡阶段中,将至少一个参数从起始参数设置调整适配为结束参数设置。

3.根据权利要求2所述的方法,其中,将至少一个参数非线性地从起始参数设置调整适配为结束参数设置。

4.根据上述权利要求中任一权利要求所述的方法,其中,调度器(2)动态地调整适配至少一个参数,以使第二激活函数朝向第一激活函数调整适配。

5.根据权利要求4所述的方法,其中,调度器(2)如何对第二激活函数的至少一个参数进行调整适配的动态调整适配功能是基于超参数搜索方法来确定的。

6.根据上述权利要求中任一权利要求所述的方法,其中,第一激活函数是一RELU激活函数,它通过下列公式描述:y(x)=max(0、x)。

7.根据上述权利要求中任一权利要求所述的方法,其中,第二激活函数从以下激活函数的列表中选择:Swish激活函数、Mish激活函数、GELU激活函数、ELU激活函数。

8.根据上述权利要求中任一权利要求所述的方法,其中,第二激活函数是Swish激活函数,它通过下列公式描述:y(x)=x·sigmoid(β·x)

9.根据权利要求1到7中任一权利要求所述的方法,其中,第二激活函数是Mish激活函数,它通过下列公式描述:y(x)=x·tanh(softplus(β·x));

其中,

x

softplus(x)=ln(1+e)。

10.根据权利要求1到7中任一权利要求所述的方法,其中,第二激活函数是GELU激活函数,它通过下列公式描述:

11.根据权利要求1到7中任一权利要求所述的方法,其中,第二激活函数是ELU激活函数,它通过下列公式描述:

12.根据上述权利要求中任一权利要求所述的方法,其中,用于训练神经网络(1)的训练环境包括不同于在生产阶段中所用的生产硬件的计算硬件。

13.根据权利要求12所述的方法,其中,训练环境包括对Swish激活函数、Mish激活函数、GELU激活函数和/或ELU激活函数的硬件支持,生产硬件包括对RELU激活函数的硬件支持,但不包括对Swish激活函数、Mish激活函数、GELU激活函数和/或ELU激活函数的硬件支持。

14.一种包括指令、用于训练人工神经网络的计算机程序,当计算机执行所述程序时,所述指令使计算机执行以下步骤:‑接收与待训练神经网络(1)有关的信息,其中,在训练后,该神经网络(1)待基于第一激活函数进行操作;

‑基于第二激活函数执行神经网络(1)的一初始训练,其中,第二激活函数不同于第一激活函数,其中,第二激活函数是包括至少一个待改变的参数的参数化的激活函数,其中,第二激活函数的至少一参数被选择为使得第二激活函数等于或基本上等于第一激活函数,其中,初始训练使用起始参数设置来执行,其中,起始参数设置被选择为使得第二激活函数不同于第一激活函数;

‑用进一步的训练步骤实施过渡阶段,其中,在过渡训练阶段的前后连续的训练步骤中,改变第二激活函数的至少一个参数,以使第二激活函数接近第一激活函数;

‑基于第一激活函数执行最后的训练步骤。

说明书 :

用于训练神经网络的方法

技术领域

[0001] 本发明大体涉及人工神经网络领域。更具体地说,本发明涉及使用多个不同激活函数训练卷积神经网络的一种方法。

背景技术

[0002] 深度学习和神经网络是目前最先进的机器学习解决方案,用于许多不同输入领域的各项任务,包括视觉、音频和时间序列数据的处理。激活函数通常用于将非线性引入神经网络。
[0003] 目前,最流行的激活函数是ReLU(修正线性单元)激活,它被定义为y=max(0、x),即把输入负值剪切为零。还有其他的ReLU(修正线性单元)演变形式,例如ReLU6将数值最大限度地剪切为6。
[0004] 大多数现代GPU(图形处理单元)/TPU(张量处理单元)/CPU(中央处理单元)芯片都提供硬件支持,以有效计算不同的流行激活函数。然而,在嵌入式系统中,支持激活函数的数量非常有限(通常只支持ReLU(修正线性单元)或其演变形式)。另一方面,与使用最近提出的最先进激活函数(如GELU(高斯误差线性单元)激活函数、ELU(指数线性单元)激活函数、Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)等)的网络相比,这些激活函数通常性能较差。可惜,这些最先进激活函数的硬件支持是非常有限的,嵌入式芯片中是完全缺失的。
[0005] 因此,使用最先进激活函数的神经网络在大多数嵌入式系统上不能有效执行,因为这些激活函数不被硬件支持,因为在大多数情况下,只有一些ReLU(修正线性单元)演变形式得到支持。

发明内容

[0006] 本发明实施方式的一项任务是公布训练神经网络的一种方法,即使在目标硬件仅为有限数量的激活函数提供硬件支持的情况下,所述方法作为训练结果也能提供高效的神经网络。
[0007] 该任务通过独立权利要求的特征解决。优选实施方式在从属权利要求中给出。如果没有其他的明确指出,本发明实施方式可彼此自由组合。
[0008] 根据一观点,本发明涉及的是用于训练人工神经网络的一种方法。所述方法包括以下步骤:
[0009] 首先,提供待训练的神经网络。训练后,该神经网络待基于第一激活函数进行操作。换句话说,在生产阶段神经网络使用第一激活函数,将非线性引入神经网络。神经网络在生产阶段基于下文中被称为目标硬件的嵌入式硬件运行,目标硬件为所述第一激活函数提供硬件支持。
[0010] 基于第二激活函数执行神经网络的初始训练。第二激活函数不同于第一激活函数。第二激活函数是参数化的激活函数,它包括至少一个需改变的参数,其中,第二激活函数的至少一个参数可以选择为,使得第二激活函数等于或基本等于第一激活函数。然而,初始训练是利用起始参数设置来实施的。起始参数设置选择为使得第二激活函数不同于第一激活函数。
[0011] 执行初始训练后,在过渡阶段执行进一步的训练。在所述过渡阶段,执行进一步的训练步骤,其中,在前后连续的训练步骤中,第二激活函数的至少一个参数被改变,使得第二激活函数接近第一激活函数。换句话说,在过渡阶段,第二激活函数的参数设置被调整以使得第二激活函数逐渐朝向第一激活函数发展。
[0012] 最后,基于第一激活函数执行最后的训练步骤。
[0013] 所提出的训练方法是有益的,因为在开始时使用最先进的激活函数进行神经网络训练,并将激活函数更改为另一可通过目标硬件提供硬件支持的激活函数,以获得更好的训练结果,从而提高训练后神经网络的效率。值得一提的是,从目标硬件的角度看,这类性能改进是免费的,因为只涉及模型训练,但网络架构保持不变。
[0014] 所提出的方法优选可用于训练汽车应用领域中致力于图像处理任务的神经网络。除了目标识别、车道识别和语义分割等最常见的深度学习任务外,所提出的方法也可用于训练致力于例如基于单目摄像装置的深度估计、表面法线估计、用于例如人的姿势估计的关键点检测等其他二维图像处理任务的神经网络。
[0015] 根据一示例性实施方式,在过渡阶段,将至少一参数从起始参数设置调整适配成结束参数设置。起始参数设置可被选择为使得第二激活函数明显不同于第一激活函数。起始参数设置例如可以是通常用于第二激活函数的标准参数。在Swish激活函数(搜索激活函数)情况下,起始参数设置例如可以是β=1。结束参数设置可被选择为使得第二激活函数基本上满足第一激活函数。在Swish激活函数(搜索激活函数)中,结束参数设置例如可以是β=30或更高。
[0016] 根据一示例性实施方式,至少一个参数从起始参数设置被非线性地调整适配到结束参数设置。例如,在过渡阶段开始时,改变的参数的或步长可比过渡阶段结束时小。由此,可提高训练效率。
[0017] 根据一示例性实施方式,调度器动态地调整适配至少一个参数,使得第二激活函数调整适配于第一激活函数。调度器可以是一配置为自动地实施至少一个需改变的参数的调整适配的实体。调度器可包括一个用于输出参数的接口。接口可与实施神经网络训练的训练环境耦合。以此方式,可获得对第二激活函数参数设置的自动调整适配。
[0018] 根据一示例性实施方式,调度器根据其对第二激活函数的至少一个参数进行调整适配的动态调整函数是基于超参数搜索方法确定的。实验表明,调整函数,即第二激活函数的至少一个参数的调整适配方式对训练后神经网络的效率有重大影响。基于超参数搜索方法,可确定导致最佳或基本最佳训练结果的调整适配过程。
[0019] 根据一示例性实施方式,第一激活函数是RELU(修正线性单元)激活函数,它通过下列公式描述:
[0020] y(x)=max(0、x)。
[0021] 作为替代选择,第一激活函数可以是RELU(修正线性单元)激活函数的演变形式,例如具有特定量化的RELU(修正线性单元)激活函数(例如RELU6、RELU8等)或leaky RELU(带遗漏单元的修正线性单元)激活函数/参数化RELU(修正线性单元)激活函数。
[0022] 根据一示例性实施方式,第二激活函数从以下激活函数列表中选择:Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)、GELU(高斯误差线性单元)激活函数、ELU(指数线性单元)激活函数。所述激活函数可被参数化,以通过适当选择第二激活函数的参数,使第二激活函数接近第一激活函数。
[0023] 根据一示例性实施方式,第二激活函数是Swish激活函数(搜索激活函数),它通过下列公式描述:
[0024] y(x)=x·sigmoid(β·x)
[0025] 其中,β是可改变以使Swish激活函数(搜索激活函数)接近RELU(修正线性单元)激活函数的参数。
[0026] 根据一示例性实施方式,第二激活函数是Mish激活函数(一种自正则化的非单调激活函数),它通过下列公式描述:
[0027] y(x)=x·tanh(softplus(β·x));
[0028] 其中,softpius(x)=ln(1+ex)。
[0029] 其中,β是可改变以使Mish激活函数(一种自正则化的非单调激活函数)接近RELU(修正线性单元)激活函数的参数。
[0030] 有关softplus函数请参考以下资料:Dugas等人在2000年第13届国际神经信息处理系统大会上发表的论文“Incorporating Second‑Order Functional Knowledge for Better Option Pricing(结合二阶函数知识以获得更好期权定价)”。
[0031] 根据一示例性实施方式,第二激活函数是GELU(高斯误差线性单元)激活函数,它通过下列公式描述:
[0032]
[0033] 其中,β是可改变以使GELU(高斯误差线性单元)激活函数接近RELU(修正线性单元)激活函数的参数。
[0034] 根据一示例性实施方式,第二激活函数是ELU(指数线性单元)激活函数,它通过下列公式描述:
[0035]
[0036] 其中,β是可改变以使ELU(指数线性单元)激活函数接近RELU(修正线性单元)激活函数的参数。
[0037] 根据一示例性实施方式,用于训练神经网络的训练环境包括不同于生产阶段所用生产硬件的计算硬件。为训练神经网络,可使用比生产硬件更多的、对多个激活函数提供硬件支持的,尤其是对用于汽车应用的嵌入式硬件提供硬件支持的训练环境。训练环境的扩展可能性可用于通过使用最先进的激活函数来确定神经网络的改进的加权因子。
[0038] 根据一示例性实施方式,训练环境包括对Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)、GELU(高斯误差线性单元)激活函数和/或ELU(指数线性单元)激活函数的硬件支持,而生产硬件包括对RELU(修正线性单元)激活函数的硬件支持,但不支持Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)、GELU(高斯误差线性单元)激活函数和/或ELU(指数线性单元)激活函数。因此,有可能在训练开始时使用Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)、GELU(高斯误差线性单元)激活函数和/或ELU(指数线性单元)激活函数,并使所述激活函数逐渐调整适配成RELU(修正线性单元)激活函数,以确定比仅基于RELU(修正线性单元)激活函数训练神经网络具有更高的效率的训练后的神经网。
[0039] 根据另一观点,本发明涉及用于训练人工神经网络的一种计算机程序。所述计算机程序包括指令,当计算机执行所述程序时,所述指令使计算机执行以下步骤:
[0040] ‑接收与待训练的神经网络有关的信息,所述神经网络在训练后待基于第一激活函数进行操作;
[0041] ‑基于第二激活函数执行神经网络的初始训练,其中,第二激活函数不同于第一激活函数,其中,第二激活函数是参数化的激活函数,它包括至少一个需改变的参数,其中,第二激活函数的至少一参数可以被选择为使得第二激活函数等于或基本上等于第一激活函数,其中,初始训练使用起始参数设置来执行,其中,起始参数设置被选择为使得第二激活函数不同于第一激活函数;
[0042] ‑用进一步的训练步骤实施过渡阶段,其中,在过渡训练阶段的前后连续的训练步骤中,第二激活函数的至少一个参数被改变以使得第二激活函数接近第一激活函数;以及[0043] ‑基于第一激活函数执行最后的训练步骤。
[0044] 在本发明中使用的术语“车辆”可指一汽车、一卡车、一巴士、一有轨车辆或一任意其他交通工具。
[0045] 本发明中使用的术语“基本上”或“大约”是指与精确值偏差+/‑10%,优选+/‑5%和/或变化形式对功能和/或对交通规则不重要的偏差。

附图说明

[0046] 从以下详细描述和附图中更容易理解本发明的不同观点,包括其特定特征和优点,其中:
[0047] 图1示出了用于训练神经网络的训练策略的示意图;
[0048] 图2示意性地示出了基于调度器训练神经网络的训练环境,所述调度器承担参数的调整适配工作;以及
[0049] 图3示出了图示基于第一和一第二激活函数训练神经网络的方法步骤的示意性框图。

具体实施方式

[0050] 现参照展示示例性实施方式的附图对本发明进行更详细的描述。附图中的实施方式涉及优选实施方式,同时,已结合实施方式描述的所有要素和特征可尽可能与本文讨论的任何其他实施方式和特征结合使用,尤其是与上面进一步讨论的任何其他实施方式相关联。然而,本发明不应被解释为限于这里所述的实施方式。在后面所有描述中,如果适用的话,相似的参考号用于表示相似的要素、部分、项目或特征。
[0051] 在说明、权利要求、实施例和/或附图中公布的本发明特征既可单独,也可任意组合成各种形式,用于实现本发明。
[0052] 图1示出了用于为神经网络提供改进的训练的基本训练过程的框图,所述神经网络在生产阶段中必须在目标硬件上操作,所述硬件不提供对Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)、GELU(高斯误差线性单元)激活函数和ELU(指数线性单元)激活函数等最先进的激活函数的硬件支持。
[0053] 值得一提的是,用于训练神经网络的计算硬件不同于生产阶段中执行神经网络的、下文中被称为目标硬件的计算硬件。因此,可能出现的情况是,用于训练神经网络的计算硬件提供对Swish激活函数(搜索激活函数)、Mish激活函数(一种自正则化的非单调激活函数)、GELU(高斯误差线性单元)激活函数、ELU(指数线性单元)激活函数和/或RELU(修正线性单元)激活函数等多种不同激活函数的硬件支持,而目标硬件只提供对例如RELU(修正线性单元)激活函数等特定激活函数的有限硬件支持。目标硬件是例如是用于汽车应用的嵌入式计算系统。
[0054] 如图1所示,训练被分成多个训练阶段,即初始训练阶段、过渡训练阶段和最终训练阶段。这种分阶段训练的目的是,在训练开始时使用在目标硬件上不可获得硬件支持的第二激活函数,通过对参数化的第二激活函数至少一个参数的调整适配,使第二激活函数逐步朝向第一激活函数调整适配,最后基于在目标硬件上可获得硬件支持的第一激活函数对神经网络进行训练。
[0055] 更详细地说,在第一训练阶段,基于具有起始参数设置的第二参数化激活函数来训练神经网络。第二激活函数不同于在目标硬件上可获得硬件支持的第一激活函数。然而,第二激活函数的参数化可使第二激活函数向第一激活函数改变,即通过改变第二激活函数的参数设置,使第二激活函数接近第一激活函数。优选地,对参数设置的特定选择使得第二激活函数等于或基本等于第一激活函数。
[0056] 在初始训练阶段,起始参数设置被选择为使得第二激活函数的传递函数不同于第一激活函数的传递函数。
[0057] 在过渡阶段,第二激活函数的参数设置逐步调整适配为使得第二激活函数的传递函数接近第一激活函数的传递函数。更详细地说,在过渡阶段,先后连续执行多个训练步骤。所述训练步骤包括不同的参数设置,其中,后续步骤的参数设置被选择为使得第二激活函数的传递函数变得与第一激活函数的传递函数越来越相似。由此,在用第二激活函数和用第一激活函数进行的训练之间实现平稳过渡。
[0058] 在最后的训练阶段,神经网络用第一激活函数进行训练。最后的训练可基于第一激活函数进行,也可基于第二激活函数进行,其中,第二激活函数的参数设置被选择为使得第二激活函数的传递函数与第一激活函数的传递函数相同。
[0059] 图2示出了用于训练神经网络1的训练环境的示意性框图。神经网络1实现参数化的第二激活函数。由于参数化,第二激活函数的传递函数可被动态地调整适配,以实现动态激活。
[0060] 为了改变第二激活函数的参数设置,训练环境包括调度器2。调度器2被配置为改变第二激活函数的参数设置,以使第二激活函数的传递函数接近第一激活函数的传递函数。
[0061] 在第一实施方式中,将至少一个参数从起始参数设置非线性调整适配到结束参数设置。更具体地说,非线性调整适配是通过参数设置中的至少一个参数的逐步变化来实现的,其中,后续步骤之间参数变化的步长非线性地增加或减少。
[0062] 根据另一实施方式,至少一个参数从起始参数设置改变成结束参数设置。
[0063] 第一激活函数可以是RELU激活函数(RELU:修正线性单元),它由下列公式定义:
[0064] y(x)=max(0、x) (公式1)
[0065] RELU(修正线性单元)激活函数被普通嵌入式硬件广泛地支持,尤其是受到汽车应用领域的嵌入式硬件的支持。
[0066] 关于RELU(修正线性单元)激活函数请参考以下资料:2010年国际机器学习大会(ICML)上Nair和Hinton发表的文章“Rectified Linear Units Improve Restricted Boltzmann Machines(修正线性单元受限玻尔兹曼机)”。
[0067] 在下文中,提供第二激活函数的可能实施示例。第二激活函数例如可是以下激活函数之一:
[0068] ‑Swish(2018年国际学习表征会议(ICLR)上Ramachandran等人提出的Searching for Activation Functions(搜索激活函数);
[0069] ‑Mish(2020年英国机器视觉会议(BMVC)上Misra发表的论文“Mish:A Self Regularized Non‑Monotonic Activation Function(Mish:一种自正则化的非单调激活函数)”;
[0070] ‑GELU(GELU:高斯误差线性单元)(2016年Hendrycks等人提出的高斯误差线性单元(GELU));
[0071] ‑ELU(ELU:误差线性单元)(2016年国际学习表征会议(ICLR)上Clevert等人发表的文章“Fast and Accurate Deep Network Learning by Exponential Linear Units(ELUs)(通过指数线性单元(ELU)快速准确的深度网络学习)”。
[0072] 上述激活函数是可参数化的激活函数。通过对激活函数的至少一个参数的适当选择,激活函数的传递函数可转移到RELU(修正线性单元)激活函数中。
[0073] Swish激活函数(搜索激活函数)可通过以下公式描述:
[0074] y(x)=x·sigmoid(β·x) (公式2)
[0075] 通过选择β→∞,Swish激活函数(搜索激活函数)的传递函数等同于RELU(修正线性单元)激活函数。因此,调度器2可在过渡训练阶段提高β。由此,第二激活函数接近于第一激活函数。
[0076] Mish激活函数(一种自正则化的非单调激活函数)可通过以下公式描述:
[0077] y(x)=x·tanh(softplus(β·x)) (公式3)
[0078] 其中,softmax(x)=ln(1+ex)。
[0079] 通过选择β→∞,Mish激活函数(一种自正则化的非单调激活函数)的传递函数等同于RELU(修正线性单元)激活函数。因此,调度器2可在过渡训练阶段提高β。由此,第二激活函数接近于第一激活函数。
[0080] GELU(高斯误差线性单元)激活函数可通过以下公式描述:
[0081]
[0082] 其中,erf是高斯误差函数。
[0083] 通过选择β→∞,GELU(高斯误差线性单元)激活函数的传递函数等同于RELU(修正线性单元)激活函数。因此,调度器2可在过渡训练阶段提高β。由此,第二激活函数接近于第一激活函数。
[0084] 最后,ELU(指数线性单元)激活函数可通过以下公式描述:
[0085]
[0086] 通过选择β→∞,ELU(指数线性单元)激活函数的传递函数等同于RELU(修正线性单元)激活函数。因此,调度器可在过渡训练阶段提高β。由此,第二激活函数接近于第一激活函数。
[0087] 图3示出了图示用于训练人工神经网络的方法步骤的流程图。
[0088] 首先,提供一待训练的神经网络,该神经网络待基于第一激活函数在目标硬件上操作运行(S10)。
[0089] 随后,在第二激活函数的基础上执行神经网络的初始训练(S11)。第二激活函数不同于第一激活函数。第二激活函数是参数化的激活函数,它包括至少一个需改变的参数。第二激活函数的至少一个参数被选择为使得第二激活函数等于或基本上等于第一激活函数。初始训练是用起始参数设置来实施的,起始参数设置被选择为使得第二激活函数不同于第一激活函数。
[0090] 执行初始训练后,在过渡阶段执行神经网络的进一步训练。在所述训练阶段中实施进一步的训练步骤,其中,在前后连续的训练步骤中,改变第二激活函数的至少一个参数,以使第二激活函数接近第一激活函数(S12)。
[0091] 最后,基于第一激活函数执行最后的训练步骤(S13)。
[0092] 应注意的是,描述和附图仅说明所提出本发明的原理。本领域的技术人员能实施在此没有明确描述或展示,但体现本发明原理的各种设置。
[0093] 附图标记列表
[0094] 1神经网络
[0095] 2调度器。