用于生成可编程激活函数的方法和使用该方法的装置与流程

文档序号:34478353发布日期:2023-06-15 14:16阅读:40来源:国知局
用于生成可编程激活函数的方法和使用该方法的装置与流程

本发明涉及一种用于生成可编程激活函数的方法和使用该方法的装置。


背景技术:

1、人类拥有可以执行识别、分类、推理、预测和控制/决策的智能。人工智能(ai)是指人工模仿人类智能。

2、人脑由许多称为神经元的神经细胞组成,并且每个神经元通过称为突触的连接与数百到数千个其他神经元相连。为了模仿人类智能,对生物神经元的工作原理和神经元之间的连接关系进行建模,称为人工神经网络(ann)模型。也就是说,ann是一种连接在层结构中模拟神经元的节点的系统。

3、这些ann模型按照层数分为“单层神经网络”和“多层神经网络”。

4、一般的多层神经网络由输入层、隐藏层和输出层组成,其中(1)输入层是接收外部数据的层,并且输入层中的神经元数量与输入变量的数量相同,(2)隐藏层位于输入层和输出层之间,从输入层接收信号,提取特性,并将其传输到输出层,以及(3)输出层接收来自隐藏层的信号并将其输出到外部。

5、当信号在人脑的神经元之间传输时,信号传输强度会变化。模仿这一点,在ann模型中,层间传输的信号的传输强度,即激活,是由激活函数确定的。

6、根据激活函数的特性,ann模型的推理特性和准确性可能变化。也就是说,可以根据激活函数的特性来确定ann模型的性能和效率。此外,当处理复杂公式的激活函数的人工神经网络用硬件(例如专用于人工神经网络的处理器)实现时,需要相当大的芯片面积(即逻辑门的数量)并且功耗可能很大。

7、在增加隐藏层数量以在多层神经网络中实现更高人工智能的深度神经网络(dnn)中,激活函数用于确定加权和偏置输入值的传输强度。

8、有几种类型的dnn,但已知卷积神经网络(cnn)更擅长从输入数据中提取特征并识别所提取的特征的模式。cnn由卷积运算、激活函数运算、池化运算等按特定顺序处理的形式组成。

9、例如,在cnn的每一层中,输入数据和权重核可以是由多个通道组成的矩阵。执行对输入数据和核的卷积运算,通过从每个通道中提取输入数据(例如图像、视频等)的特征来生成特征图,并通过将激活函数应用于特征图来生成对应通道的激活图。此后,可以将池化运算应用于激活图。

10、激活函数可以被配置为包括对应于输入数据的x轴值和对应于输出数据的y轴值。激活函数用于将卷积值的数学线性组合转换为各种类型的线性或非线性组合。因此,多层人工神经网络模型可以设计为通过对每一层应用适当的激活函数来执行各种推理功能。

11、要由人工神经网络实现的复杂函数大多具有非线性,而要实现这些函数,大多数激活函数都是具有非线性的函数。

12、在硬件中处理的ann模型的性能和效率可能因应用于ann模型的激活函数的非线性而变化。

13、激活函数可以通过强调或不强调已完成卷积的特征图数据的其他区域的特征来提高或降低推理准确性。


技术实现思路

1、各种激活函数中的至少一些的非线性包括对数运算、指数运算等。在数字逻辑设计方面,在硬件中实现包括对数和指数运算的激活函数非常复杂。例如,硬件运算符的配置对于对数和指数运算变得非常复杂。因此,本发明的发明人已经认识到硬件的功耗可能增加并且运算速度可能变慢。

2、此外,本发明的发明人已经认识到存在以下缺点:硬连线处理器只能分别使用硬连线专用激活函数处理逻辑单元来处理预定义的激活函数,以及根据激活函数的计算复杂度,逻辑门的数量在硬连线处理器中迅速增加。

3、硬连线处理器无法在不修改硬件的情况下独立处理新的激活函数,并且硬连线处理器无法处理的激活函数别无选择而只能由单独的软件计算。例如,硬连线处理器可以是专用于人工智能的专用集成电路(asic)。

4、传统上,为了处理硬连线处理器中的各种激活函数,用过使用查找表(lut)的方法、使用非线性近似方程的方法、使用多项式近似的方法等。

5、然而,本发明的发明人已经认识到以下问题:使用多项式近似等在硬件中处理激活函数的传统激活函数近似方法需要来自处理器的大量计算以提高准确性。

6、因此,本发明的发明人已经认识到需要改进以解决应用传统激活函数近似技术的人工神经网络(ann)模型的推理准确性劣化的问题、增加处理器的激活函数处理单元中的门数的问题,以及增加处理器功耗的问题。

7、此外,本发明的发明人已经认识到需要一种编程方法,其能够对任何激活函数进行近似,以便处理器独立地处理不包括在预设数据中的激活函数(例如查找表),该激活函数不能由使用传统的激活函数处理方法、新颖的激活函数或其中其至少一部分被修改的激活函数的处理器处理。

8、此外,本发明的发明人已经认识到,如果提供针对新颖的编程方法优化的硬件,则可在硬件中有效且灵活地处理编程的激活函数。

9、此外,本发明的发明人已经认识到,基于要编程的激活函数的类型来设置每个区段(section),并考虑为每个设置区段编程的激活函数的近似误差,可以更有效地且以较低的近似误差对激活函数进行编程。

10、因此,本发明的一个方面是提供一种近似方法,其优于传统的近似方法并且可以在硬件中对各种非线性激活函数进行编程。

11、此外,本发明的另一方面是提供一种在考虑激活函数的特性、近似误差和硬件信息,同时对各种非线性激活函数进行近似的情况下,由用户以更有效或定制的方式对非线性激活函数进行近似的方法。

12、然而,本发明不限于上述方面,并且本领域技术人员将根据以下描述清楚地理解未提及的其他方面。

13、根据本发明一示例,提供了一种用于对激活函数进行编程的方法。该方法可以包括生成用于使激活函数分段的分段数据;使用分段数据将激活函数分段为多个分段;以及将多个分段中的至少一个分段近似为可编程分段。

14、多个分段中的至少一个分段可以具有与多个分段中的另一分段不同的宽度。

15、使用分段数据将激活函数分段成多个分段可以包括基于分段数据确定多个分段的数量和宽度。

16、分段数据可以包括激活函数的导数数据。

17、分段数据可以包括关于要在其上处理的激活函数的硬件的信息。

18、分段数据可以包括激活函数的导数数据,并且使用分段数据将激活函数分段成多个分段可以包括基于激活函数的导数数据来确定激活函数的基本线性区段或非线性区段。

19、将多个分段中的至少一个分段近似到可编程分段可以包括将至少一个分段近似到特定斜率和特定偏移。

20、该方法可以进一步包括使用预定的非线性近似方程来对多个分段中的至少一个分段进行近似。

21、将多个分段中的至少一个分段近似到可编程分段可以包括确定用于将至少一个分段近似为可编程分段的斜率和偏移;确定至少一个分段与具有所确定的斜率和偏移的至少一个候选分段之间的误差值;以及基于所确定的误差值确定至少一个候选分段中的可编程分段。

22、将多个分段中的至少一个分段近似到可编程分段可以包括在可编程分段和激活函数的对应分段之间搜索至少一个最小误差值;以及基于搜索到的至少一个最小误差值确定可编程分段的斜率和偏移。

23、根据本发明的另一示例,提供了一种用于对激活函数进行编程的方法。该方法可以包括选择用于人工神经网络计算的激活函数;以及将激活函数转换为可编程激活函数。可编程激活函数可以包括具有预定宽度的多个分段;并且预定宽度可以基于阈值来确定。

24、多个分段可以包括至少一个分段,其宽度不同于多个分段中的另一分段。

25、根据本发明的另一示例,可以提供一种包含可编程激活函数生成器的装置。该装置可以被配置为生成用于使激活函数分段的分段数据,使用生成的分段数据将激活函数分段为多个分段;以及使多个分段中的至少一个分段近似为可编程分段。

26、多个分段中的至少一个分段可以具有与多个分段中的另一分段不同的宽度。

27、可编程激活函数生成器可以被进一步配置为基于分段数据确定多个分段的数量和宽度;以及基于确定的数量和宽度将激活函数分段成多个分段。

28、分段数据可以包括激活函数的导数数据。

29、分段数据可以包括关于要在其上处理激活函数的硬件的信息。

30、分段数据可以包括激活函数的导数数据,并且可编程激活函数生成器可以被进一步配置为基于激活函数的导数数据确定激活函数的基本线性区段和非线性区段;以及基于确定的基本线性区段和非线性区段将激活函数分段成多个分段。

31、可编程激活函数生成器可以被进一步配置为确定用于将至少一个分段近似到可编程分段的斜率和偏移;并且基于所确定的斜率和偏移将至少一个分段近似到可编程分段。

32、该装置可以进一步包括可编程激活函数单元,并且可编程激活函数单元可以被配置为使用预定的非线性近似方程来对多个分段中的至少一个分段进行近似。

33、其他示例的详细描述包括在详细描述和附图中。

34、根据本发明,通过使用分段数据,各种非线性激活函数,特别是新提出的或已知的具有一些修改的激活函数,可以被编程为可在硬件中处理。

35、另外,根据本发明,可以通过使用考虑到激活函数特性、近似误差和硬件信息的分段数据,以更加定制的方式编程非线性激活函数,或者在通过对各种非线性激活函数进行近似来确保人工神经网络(ann)模型的高性能和高效率的同时编程非线性激活函数。

36、另外,根据本发明,可通过使用分段数据来使近似误差最小化,同时使硬件成本最小化,其中在对各种非线性激活函数进行近似时考虑到激活函数的特性、近似误差、硬件的信息等。

37、根据本发明的效果不受以上例示的内容的限制,并且本发明包括更多的各种效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1