用于生成可编程激活函数的方法和使用该方法的装置制造方法及图纸

技术编号:37874029 阅读:15 留言:0更新日期:2023-06-15 21:02
提供了一种用于对激活函数进行编程的方法。该方法包括生成用于将激活函数分段的分段数据;使用分段数据将激活函数分段为多个分段;以及将多个分段中的至少一个分段近似为可编程分段。用于执行该方法的装置可以包括可编程激活函数生成器,其被配置为生成用于将激活函数分段的分段数据;使用生成的分段数据将激活函数分段为多个分段;以及将所述多个分段中的至少一个分段近似为可编程分段。通过使用分段数据,各种非线性激活函数,特别是新提出的激活函数或进行一些修改的已知激活函数,可以被编程为可在硬件中进行处理。被编程为可在硬件中进行处理。被编程为可在硬件中进行处理。

【技术实现步骤摘要】
用于生成可编程激活函数的方法和使用该方法的装置
相关申请的交叉引用本申请要求韩国知识产权局的于2021年12月1日提交的韩国专利申请号10

2021

0170058和于2022年3月25日提交的韩国专利申请号10

2022

0037489的优先权,通过引用将所述韩国专利申请的公开内容并入本文。


[0001]本专利技术涉及一种用于生成可编程激活函数的方法和使用该方法的装置。

技术介绍

[0002]人类拥有可以执行识别、分类、推理、预测和控制/决策的智能。人工智能(AI)是指人工模仿人类智能。
[0003]人脑由许多称为神经元的神经细胞组成,并且每个神经元通过称为突触的连接与数百到数千个其他神经元相连。为了模仿人类智能,对生物神经元的工作原理和神经元之间的连接关系进行建模,称为人工神经网络(ANN)模型。也就是说,ANN是一种连接在层结构中模拟神经元的节点的系统。
[0004]这些ANN模型按照层数分为“单层神经网络”和“多层神经网络”。
[0005]一般的多层神经网络由输入层、隐藏层和输出层组成,其中(1)输入层是接收外部数据的层,并且输入层中的神经元数量与输入变量的数量相同,(2)隐藏层位于输入层和输出层之间,从输入层接收信号,提取特性,并将其传输到输出层,以及(3)输出层接收来自隐藏层的信号并将其输出到外部。
[0006]当信号在人脑的神经元之间传输时,信号传输强度会变化。模仿这一点,在ANN模型中,层间传输的信号的传输强度,即激活,是由激活函数确定的。
[0007]根据激活函数的特性,ANN模型的推理特性和准确性可能变化。也就是说,可以根据激活函数的特性来确定ANN模型的性能和效率。此外,当处理复杂公式的激活函数的人工神经网络用硬件(例如专用于人工神经网络的处理器)实现时,需要相当大的芯片面积(即逻辑门的数量)并且功耗可能很大。
[0008]在增加隐藏层数量以在多层神经网络中实现更高人工智能的深度神经网络(DNN)中,激活函数用于确定加权和偏置输入值的传输强度。
[0009]有几种类型的DNN,但已知卷积神经网络(CNN)更擅长从输入数据中提取特征并识别所提取的特征的模式。CNN由卷积运算、激活函数运算、池化运算等按特定顺序处理的形式组成。
[0010]例如,在CNN的每一层中,输入数据和权重核可以是由多个通道组成的矩阵。执行对输入数据和核的卷积运算,通过从每个通道中提取输入数据(例如图像、视频等)的特征来生成特征图,并通过将激活函数应用于特征图来生成对应通道的激活图。此后,可以将池化运算应用于激活图。
[0011]激活函数可以被配置为包括对应于输入数据的X轴值和对应于输出数据的Y轴值。
激活函数用于将卷积值的数学线性组合转换为各种类型的线性或非线性组合。因此,多层人工神经网络模型可以设计为通过对每一层应用适当的激活函数来执行各种推理功能。
[0012]要由人工神经网络实现的复杂函数大多具有非线性,而要实现这些函数,大多数激活函数都是具有非线性的函数。
[0013]在硬件中处理的ANN模型的性能和效率可能因应用于ANN模型的激活函数的非线性而变化。
[0014]激活函数可以通过强调或不强调已完成卷积的特征图数据的其他区域的特征来提高或降低推理准确性。

技术实现思路

[0015]各种激活函数中的至少一些的非线性包括对数运算、指数运算等。在数字逻辑设计方面,在硬件中实现包括对数和指数运算的激活函数非常复杂。例如,硬件运算符的配置对于对数和指数运算变得非常复杂。因此,本专利技术的专利技术人已经认识到硬件的功耗可能增加并且运算速度可能变慢。
[0016]此外,本专利技术的专利技术人已经认识到存在以下缺点:硬连线处理器只能分别使用硬连线专用激活函数处理逻辑单元来处理预定义的激活函数,以及根据激活函数的计算复杂度,逻辑门的数量在硬连线处理器中迅速增加。
[0017]硬连线处理器无法在不修改硬件的情况下独立处理新的激活函数,并且硬连线处理器无法处理的激活函数别无选择而只能由单独的软件计算。例如,硬连线处理器可以是专用于人工智能的专用集成电路(ASIC)。
[0018]传统上,为了处理硬连线处理器中的各种激活函数,用过使用查找表(LUT)的方法、使用非线性近似方程的方法、使用多项式近似的方法等。
[0019]然而,本专利技术的专利技术人已经认识到以下问题:使用多项式近似等在硬件中处理激活函数的传统激活函数近似方法需要来自处理器的大量计算以提高准确性。
[0020]因此,本专利技术的专利技术人已经认识到需要改进以解决应用传统激活函数近似技术的人工神经网络(ANN)模型的推理准确性劣化的问题、增加处理器的激活函数处理单元中的门数的问题,以及增加处理器功耗的问题。
[0021]此外,本专利技术的专利技术人已经认识到需要一种编程方法,其能够对任何激活函数进行近似,以便处理器独立地处理不包括在预设数据中的激活函数(例如查找表),该激活函数不能由使用传统的激活函数处理方法、新颖的激活函数或其中其至少一部分被修改的激活函数的处理器处理。
[0022]此外,本专利技术的专利技术人已经认识到,如果提供针对新颖的编程方法优化的硬件,则可在硬件中有效且灵活地处理编程的激活函数。
[0023]此外,本专利技术的专利技术人已经认识到,基于要编程的激活函数的类型来设置每个区段(section),并考虑为每个设置区段编程的激活函数的近似误差,可以更有效地且以较低的近似误差对激活函数进行编程。
[0024]因此,本专利技术的一个方面是提供一种近似方法,其优于传统的近似方法并且可以在硬件中对各种非线性激活函数进行编程。
[0025]此外,本专利技术的另一方面是提供一种在考虑激活函数的特性、近似误差和硬件信
息,同时对各种非线性激活函数进行近似的情况下,由用户以更有效或定制的方式对非线性激活函数进行近似的方法。
[0026]然而,本专利技术不限于上述方面,并且本领域技术人员将根据以下描述清楚地理解未提及的其他方面。
[0027]根据本专利技术一示例,提供了一种用于对激活函数进行编程的方法。该方法可以包括生成用于使激活函数分段的分段数据;使用分段数据将激活函数分段为多个分段;以及将多个分段中的至少一个分段近似为可编程分段。
[0028]多个分段中的至少一个分段可以具有与多个分段中的另一分段不同的宽度。
[0029]使用分段数据将激活函数分段成多个分段可以包括基于分段数据确定多个分段的数量和宽度。
[0030]分段数据可以包括激活函数的导数数据。
[0031]分段数据可以包括关于要在其上处理的激活函数的硬件的信息。
[0032]分段数据可以包括激活函数的导数数据,并且使用分段数据将激活函数分段成多个分段可以包括基于激活函数的导数数据来确定激活函数的基本线性区段或非线性区段。
[0033]将多个分段中的至少一个分段近似到可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对激活函数进行编程的方法,所述方法包含:生成用于将所述激活函数分段的分段数据;使用所述分段数据将所述激活函数分段为多个分段;以及将所述多个分段中的至少一个分段近似为可编程分段。2.如权利要求1所述的方法,其中所述多个分段中的所述至少一个分段具有与所述多个分段中的另一分段不同的宽度。3.如权利要求1所述的方法,其中所述分段包括:基于所述分段数据确定所述多个分段的数量和宽度。4.如权利要求1所述的方法,其中所述分段数据包括所述激活函数的导数数据。5.如权利要求1所述的方法,其中所述分段数据包括关于要在其上处理所述激活函数的硬件的信息。6.如权利要求1所述的方法,其中所述分段数据包括所述激活函数的导数数据,以及其中所述分段包括:基于所述激活函数的所述导数数据确定所述激活函数的基本线性区段或非线性区段。7.如权利要求1所述的方法,其中所述近似包括:将所述至少一个分段近似为特定斜率和特定偏移。8.如权利要求1所述的方法,进一步包含:使用预定的非线性近似方程来对所述多个分段中的所述至少一个分段进行近似。9.如权利要求1所述的方法,其中所述近似包括:确定用于将所述至少一个分段近似为所述可编程分段的斜率和偏移;确定所述至少一个分段与具有所确定的斜率和偏移的至少一个候选分段之间的误差值;以及基于所确定的误差值在所述至少一个候选分段中确定所述可编程分段。10.如权利要求1所述的方法,其中所述近似包括:搜索所述可编程分段与所述激活函数的对应分段之间的至少一个最小误差值;以及基于搜索到的至少一个最小误差值确定所述可编程分段的斜率和偏移。11.一种用于对激活函数进行编程的方法,所述方法包含:选择用于人工神经网络计算的所述激活函数;以及将所述激活函数转换为可编程激活函数,其中所...

【专利技术属性】
技术研发人员:金錄元金浩承
申请(专利权)人:蒂普爱可斯有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1