首页> 中国专利> 使用非对称双曲正切激活函数改进预测性能

使用非对称双曲正切激活函数改进预测性能

摘要

根据本公开的至少一个方面提供了一种非对称双曲正切函数,该函数不管神经网络的结构如何都可以用作激活函数。所提供的激活函数将其输出范围限制在预测的变量的最大值与最小值之间。所提供的激活函数适用于回归问题,该回归问题需要基于输入数据预测多种多样的实数值。代表性附图:图3。代表性附图:图3。

著录项

  • 公开/公告号CN112889075A

    专利类型发明专利

  • 公开/公告日2021-06-01

    原文格式PDF

  • 申请/专利权人 SK电信有限公司;

    申请/专利号CN201980067494.6

  • 发明设计人 韩勇熙;

    申请日2019-10-11

  • 分类号G06N3/08(20060101);G06N3/04(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人刘久亮;黄纶伟

  • 地址 韩国首尔

  • 入库时间 2023-06-19 11:11:32

说明书

技术领域

在一些实施方式中,本公开涉及人工神经网络。

背景技术

这一部分中的声明仅仅提供与本公开有关的背景信息,并且不一定构成现有技术。

人工神经网络具有主要的应用领域,应用领域中的一个是预测连续目标变量(诸如,电力使用预测和天气预测)的回归分析。

根据输入到神经网络的数据的特性,回归分析中的预测值可以在[0,1]或[-1,1]的范围内,或者它们可以是包含负数的实数,而没有特定的限制。

在神经网络的组件当中,激活函数是对输入数据执行线性或非线性变换的组件。根据预测值的范围选择适当的激活函数以应用于神经网络的末端,并利用具有与预测值相同的输出范围的激活函数来产生减小的预测误差。例如,在输入值可能发生任何变化的情况下,S型函数会将输出值抑制或压缩为[0,1],而双曲正切函数将其限制为[-1,1]。因此,使用预测值在[0,1]范围内的S型函数(如图1中的(a)所示)、预测值在[-1,1]范围内的双曲正切函数(如图1中的(b)所示)和用于预测实数且对其范围没有限制的线性函数(如在图1中(c)所示)作为末端激活函数是典型的实践。然而,与S型函数或双曲正切函数不同,由于函数值的无限制范围,当将线性函数用作输出层的神经元的激活函数时,线性函数可能会产生增加的预测误差。

当预测范围超出要使用的激活函数的输出范围时,可以考虑进行数据预处理(诸如,归一化)来缩放输入数据的范围以减小预测范围,从而将预测值的范围限制为[0,1]或[-1,1]。然而,缩放可能会导致数据方差严重失真,从而常常难以将预测值的范围限制为[0,1]或[-1,1],导致预测值的范围经常变为具有大体上实数值的范围。

因此,需要进行回归分析以面对根据输入数据预测多种多样的实数值的频繁情况。

发明内容

技术问题

在至少一个实施方式中,本公开试图引入一种新的激活函数,该新的激活函数与具有如此宽的预测范围的数据的现有激活函数相比能够减小预测误差。

技术方案

本公开的至少一个方面提供了一种由计算机实现的方法,该方法用于通过使用神经网络来处理表示实际现象的数据,该神经网络被配置为对实际数据模式进行建模,所述方法包括:在神经网络的输出层的各个节点处,计算输入值的加权和,在神经网络的输出层的各个节点处的输入值是来自神经网络的至少一个隐藏层中的最后一个隐藏层的节点的输出值,并且在神经网络的输出层的各个节点处;将非线性激活函数应用于输入值的加权和以生成输出值,其中,非线性激活函数的输出范围的上限和下限分别通过输入到神经网络的输入层的相关节点的数据的最大值和最小值来界定。

本公开的另一方面提供了一种用于通过使用神经网络来处理表示实际现象的数据的装置,该神经网络被配置为对实际数据模式进行建模,该装置包括至少一个处理器和至少一个记录有指令的存储器。当在处理器中执行所述指令时,使得处理器执行如上所述的方法。

本公开的又一方面提供了一种用于执行神经网络的神经网络操作的装置,该神经网络被配置为对实际数据模式进行建模以处理表示实际现象的数据。该装置包括加权和运算单元和输出运算单元。加权和运算单元被配置为接收神经网络的输出层的节点的输入值和权重,并基于接收到的输入值和权重为神经网络的输出层的节点生成多个加权和,神经网络的输出层的各个节点处的输入值是神经网络的至少一个隐藏层中的最后一个隐藏层的节点的输出值。输出运算单元被配置为将激活函数应用于神经网络的输出层的各个节点的加权和,以生成神经网络的输出层的各个节点的输出值。这里,非线性激活函数的输出范围的上限和下限分别通过在神经网络的输出层的相关节点处预测的变量的最大值和最小值来界定。

在一些实施方式中,非线性激活函数由以下等式表示:

在等式中,x是神经网络的输出层的相关节点处的输入值的加权和,max和min分别是在神经网络的输出层的相关节点处预测的变量的最大值和最小值,并且‘s’是调节非线性激活函数的导数的参数。参数‘s’可以是开发人员可以根据先前知识进行设置或调整的超参数,或者参数‘s’可以与主变量(即,各个节点的权重集)一起通过神经网络的训练进行优化(即,训练)。

有益效果

如上所述,本公开使用非对称双曲正切函数作为激活函数,其可以反映要预测的变量的最小值和最大值。因此,通过将预测值的范围限制为预测变量的最小值和最大值,可以减小预测误差。

另外,根据本公开的至少一个方面,激活函数包括可以调节激活函数的导数的参数‘s’,并且导数越陡,神经网络的权重的范围越小,使得参数‘s’可以针对神经网络执行正则化功能。该正则化具有减少仅在经学习的数据上表现出良好的预测结果的过拟合问题的效果。

附图说明

图1是众所周知作为示例激活函数的S型函数、双曲正切函数和线性函数的曲线图。

图2是最简单形式的代表性自动编码器的图。

图3是由本公开的至少一个实施方式提供的针对在[-5、3]的范围内变化的变量x的示例性最终激活函数的曲线图。

图4示出了针对“信用卡欺诈检测”数据集的一部分的统计分析结果。

图5是用于“信用卡欺诈检测”的堆叠式自动编码器的结构的示意图。

图6是分别根据将线性函数应用于自动编码器的最终激活函数的常规方法以及根据应用了非对称双曲正切函数的本公开的方法的信用卡欺诈交易检测性能的图。

图7是当超参数值改变时的非对称双曲正切的曲线图。

图8是通过超参数值示出神经元权重的方差和编码数据的方差的表。

图9是使对超参数的改变的正则化效果可视化的图。

图10是可以实现本公开的至少一个实施方式的示例性系统的图。

图11是通过使用被配置为对实际数据模式进行建模的神经网络来处理表示实际现象的数据的方法的流程图。

图12是用于执行神经网络操作的神经网络处理装置的示例性功能框图。

具体实施方式

在下文中,将参照附图来详细地描述本发明的一些实施方式。在以下描述中,尽管在不同附图中示出元件,但是相同的附图标记优选地指示相同元件。此外,在一些实施方式的以下描述中,为了清楚和简洁起见,将省略在此并入的已知功能和配置的详细描述。

另外,诸如第一、第二、A、B、(a)、(b)等各种术语仅用于区分一个组件与另一个组件,而不是隐含或暗示组件的实质、顺序或序列。在整个说明书中,当部件“包括”或“包含”一个组件时,意味着该部件还包括其他组件,除非有相反的明确说明,否则不排除其他组件。诸如“单元”、“模块”的术语是指用于处理至少一个功能或操作的一个或更多个单元,其可以通过硬件、软件或其组合来实现。

根据至少一个方面,本公开提供了一种非对称双曲正切(tanh)函数,该非对称双曲正切函数不管神经网络的结构(诸如,自动编码器、卷积神经网络(CNN)、递归神经网络(RNN)、完全连接的神经网络等)如何可用作它们的激活函数。在下文中,例示了作为神经网络中的一个的自动编码器以限定由本公开提供的激活函数,并且展现了其在实际应用中的实用性。

图2是最简单形式的代表性自动编码器的图。

自动编码器的输入和输出维度相同,其学习目标是使输出最好地接近输入。如图2所示,自动编码器由编码器和解码器组成。编码器接收高维数据并将其编码为低维数据。解码器用于对低维数据进行解码以重建原始的高维数据。在该过程中,对自动编码器进行训练,以减少原始输入数据与重建的数据之间的差异。因此,自动编码器成为将输入数据压缩为低维数据并且然后使低维数据回归至原始数据的网络。

自动编码器可以收敛到可以随着训练进行而重现输入数据的分布和特性的网络。收敛的网络可以用于两个目的。

收敛的网络的第一个用途是维度减少。在图2的示例中,高维(D维)数据已通过编码器缩减为低维(d维)数据。缩减的数据可以被解码器回归到高维数据的事实意味着:尽管缩减的数据处于低维状态,但缩减的数据仍然包含可以再现输入数据的重要信息(通常称为“潜在信息”)。换句话说,通过使用在从输入层编码到隐藏层的过程中将信息压缩的这种特性,自动编码器有时被用作特征提取器。该编码数据(即,提取的特征)具有低维状态,使得与高维原始数据相比,在诸如聚类的附加数据分析中,可以实现更高的精度。这里,神经网络可以被认为具有数据的代表性或概括性。

自动编码器作为收敛的网络的第二个用途是异常检测。例如,自动编码器被广泛地用于解决类别不平衡问题,且在数据中每个类别的数量上具有显著差异,例如,当使用安装在制造设备中的各种传感器的传感器数据作为输入时,具有约0.1%的失败率。在通过仅使用制造设备正常运行期间获取的传感器数据对自动编码器进行训练的情况下,自动编码器可能会对失败时输入的数据进行响应,以从具有比正常时相对大的这种回归误差(即,输入数据与经解码的数据之间的差异)的自动编码器中检测异常状态。这是因为已经对自动编码器进行了训练,以很好地唯一地再现正常数据(即,执行回归)。

自动编码器对变量x进行编码然后解码的操作可以看成是在变量x变化的范围内执行值的预测(回归)。如本公开的背景技术中所提到的,在自动编码器的输出层中,利用具有与预测值相同的输出范围的激活函数实现减小的预测误差。

本公开的至少一个方面向具有宽的预测范围的数据引入了新的激活函数,该新的激活函数与现有的线性激活函数相比允许具有更小误差的预测。新的激活函数将其输出范围限制在要预测的变量的最大值与最小值之间。

所提供的激活函数如下。

[等式1]

这里,max和min是相关节点(神经元)中要预测的变量的最大值和最小值,x是相关节点的输入值的加权和。

根据等式1,如果x大于零,则因为tanh(x/max)乘以变量的最大值‘max',所以激活函数的输出范围的上限为变量x的最大值‘max'。当x小于或等于零时,因为tanh(x/min)乘以变量x的最小值“min”,所以激活函数的输出范围的下限为变量x的最小值“min”。这里,在tanh()的输入处使用x/max和x/min代替x是为了使x=0附近的导数具有与现有双曲正切函数相同的值(约为1)。

假设变量x在[-5,3]范围内变化。参照等式1,由本公开提供的针对在[-5,3]的范围内变化的变量x的示例性最终激活函数可以表示为:

[等式2]

图3是由本公开的至少一个实施方式提供的针对在[-5、3]的范围内变化的变量x的示例性最终激活函数的曲线图。与图1所示的双曲正切函数(图1所示的双曲正切函数是关于0反对称的,且输出的值在-1到1之间)不同,如图3所示的激活函数是非对称的,且具有输出范围的上限和下限。换句话说,只要要预测的变量的最大值和最小值彼此不相等,由本公开提供的激活函数就以0为中心非对称。因此,所提供的激活函数可以称为非对称双曲正切(tanh)函数。

下面描述了由本公开提供的非对称双曲正切函数在与异常检测相关的实际应用中的效用。在将欺诈交易数据视为某种异常数据时,通过使用自动编码器进行检测欺诈交易的各种尝试。换句话说,当欺诈交易数据被输入到仅利用正常交易数据训练的自动编码器时,回归误差大于正常交易的回归误差,因此将其确定为欺诈交易。

图4示出了针对“信用卡欺诈检测”数据集的一部分的统计分析结果。“信用卡欺诈检测”数据集是混合了欺诈交易数据和正常交易数据的信用卡交易数据,并在“https://www.kaggle.com/mlg-ulb/creditcardfraud”上发布以供研究。

图5是用于“信用卡欺诈检测”的堆叠式自动编码器的结构的示意图。堆叠规则自动编码器是具有多个隐藏层的结构,与图2的结构相比,它可以表示更多不同的功能。图5所示的堆叠式自动编码器包括:编码器,所述编码器分别接收30维变量并将该30维变量缩减(编码)为20维和10维编码数据;以及解码器,所述解码器将10维编码数据分别重建为20维和30维变量。由最低10维层(即,10个节点)组成的第二隐藏层在三个隐藏层当中具有最低的维度,并且通常被称为“瓶颈隐藏层”。神经网络中瓶颈隐藏层的输出值是最抽象的特征,也称为瓶颈特征。

根据本公开,考虑到每个变量的最小值和最大值确定的非对称双曲正切函数被用作应用于相关最终节点(神经元)的激活函数。

在图4所示的数据统计中,变量V1的最小值“min”和最大值“max”分别为-5.640751e+01和2.45930。将其应用于等式1,可以用等式3表示根据本公开的用于与变量V1相关联的最终节点的激活函数。

[等式3]

以这种方式,将非对称双曲正切函数应用于自动编码器的最终节点的激活函数,每一个非对称双曲正切函数针对三十个变量中的每一个。

图6是分别根据将线性函数用作自动编码器的最终激活函数的常规方法以及根据将非对称双曲正切函数用作最终激活函数的本公开的方法的信用卡欺诈交易检测性能的图。

图6在(a)处示出了为使用常规线性函数作为最终激活函数的堆叠式自动编码器的导致的性能的混淆矩阵,并且在(b)处示出了使用本非对称双曲正切函数作为最终激活函数的堆叠式自动编码器的导致的性能的混淆矩阵。对于表示将正常交易检测为欺诈交易的“假阳性错误”,传统方法表现出712个错误,而根据本公开的方案表现出578个错误,减少134个。这证实了“假阳性错误”已大大减少了约18.8%。根据本公开,将欺诈交易检测为正常交易(即,“假阴性错误”)已经从19个错误略微减少到18个错误,而正确检测到欺诈交易的次数从79次略微增加到80次。附带说明一下,欺诈检测方法是获取针对各个经学习的自动编码器模型的非欺诈数据(正常交易)的重建误差的平均值和标准差的总和,并将该总和用作确定欺诈/非欺诈的阈值。如果重建误差大于阈值,则将其确定为欺诈交易。在这种情况下,均方误差(MSE)用于重建误差。

如上所述,自动编码器的主要用途之一是维度减少。编码器的输出的维度低于输入数据的维度。如果训练自动编码器以拥有输入数据的概括性,则低维中间输出也将具有可表示输入数据的重要信息。

使中间输出(即,编码数据)具有概括性的常用方法是L1正则化或L2正则化。这旨在使神经元的权重“w”聚合为较小范围内的值,从而防止过拟合和泛化模型以实现更好的概括性。

至少一个实施方式中的本公开提供了一种能够调节非对称双曲正切函数的导数的参数作为新颖的正则化手段。等式4定义了加上参数“s”的非对称双曲正切函数。

[等式4]

这里,max和min是要由输出层的相关节点预测的变量x的最大值和最小值。因此,对于自动编码器,max和min各是输入到自动编码器的输入层的相关节点的数据的最小值和最大值。s是调节非线性激活函数的导数的参数。

根据等式4,如果x(双曲正切运算的输入)大于0,则将x替换为x/(max/s)作为输入,并且当x等于或小于0时,将x替换为x/(min/s)以执行双曲正切运算。

图7是参数‘s’改变时的非对称双曲正切的曲线图。‘s’越大,曲线图的导数就越大,从而导致有用范围按比例缩小,进而降低了神经元的权重“w”的变化。结果获得类似于现有L1正则化或L2正则化的效果。

正规化的效果可以由神经元的权重和编码器输出的方差确定。可以看出,方差越小,正则化的效果越大。如在图8的表中所示,当s=2而不是s=1时,权重w和编码数据的方差二者都减小了。

图9是使超参数‘s’的改变的正则化效果可视化的图。通过利用t随机邻居嵌入(t-SNE)来处理编码的10维数据获得图9的可视化。图9在(a)处示出了在‘s’为1时由于欺诈交易和正常交易存在混合,因此很难对欺诈交易和正常交易进行区分(执行聚类),而在(b)处示出了在‘s’为2时以容易区分欺诈交易和正常交易为特征的改进。这表明可以通过调整或优化参数‘s’利用更好地概括来确保低维编码数据。

该参数‘s’可以是开发人员可以根据先前知识进行设置或调整的超参数,或者参数‘s’可以与主变量(即,相应节点的权重集)一起通过神经网络的训练进行优化(即,训练)。图9在(c)处示出了根据神经网络和归一化训练的‘s’的可视化图,该图的特征是欺诈交易和正常交易之间的聚类比利用(a)和(b)的参数的情况更好。

图10是可以实现本公开的至少一个实施方式的示例性系统的图。

该系统包括数据源1010。数据源1010可以是例如数据库、通信网络等。输入数据1015从数据源1010被发送到服务器1020以进行处理。输入数据1015可以是例如数值、语音、文本、图像数据等。服务器1020包括神经网络1025。输入数据1015被提供给神经网络1025以进行处理。神经网络1025提供预测或解码的输出1030。神经网络1025代表了表征输入数据1015与预测输出1030之间的关系的模型。

根据本公开的示例性实施方式,神经网络1025包括输入层和至少一个隐藏层以及输出层,其中,来自至少一个隐藏层中的最后一个隐藏层的节点的输出值被输入到输出层的各个节点。输出层的各个节点将非线性激活函数应用于输入值的加权和以生成输出值。这里,非线性激活函数的输出范围的上限和下限分别通过输入到神经网络的输入层的相关节点的输入数据的最大值和最小值来界定。非线性激活函数可以由上述等式1或等式4表示。在与特征提取有关的应用中,来自神经网络的任何隐藏层的节点的输出值可以用作为输入到神经网络的输入层的节点的数据的压缩表示的特征。

图11是通过使用被配置为对实际数据模式进行建模的神经网络来处理表示实际现象的数据的方法的流程图。图11例示了与神经网络的输出层的相应节点相关联的处理,省略了与神经网络的至少一个隐藏层中的各个节点相关联的处理。

在步骤S1110,神经网络的输出层的各个节点计算输入值的加权和。在输出层的各个节点处的输入值是来自神经网络的至少一个隐藏层中的最后一个隐藏层的节点的输出值。

在步骤S1120,神经网络的输出层的各个节点将非线性激活函数应用于输入值的加权和以生成输出值。这里,非线性激活函数的输出范围的上限和下限分别通过输入到神经网络的输入层的相关节点的输入数据的最大值和最小值来界定。非线性激活函数可以由上述等式1或等式4表示。

在与异常检测有关的应用中,该方法还可以包括步骤S1130,该步骤S1130基于输入到神经网络的输入层的各个节点的数据与在神经网络的输出层的各个节点处生成的输出值之间的差异来检测表示实际现象的数据中的异常数据。

在一些示例中,本公开中描述的过程可以由专用逻辑电路(诸如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))执行,并且本公开中描述的单元可以利用专用逻辑电路实现。将参照图12描述这种实现方式的示例。

图12是用于执行神经网络操作的神经网络处理装置的示例性功能框图。神经网络操作可以是用于神经网络的操作,该神经网络被配置为对实际数据模式进行建模以处理表示实际现象的数据。图12所示的装置包括:加权和运算单元1210、输出运算单元1220、缓冲器1230和存储器1240。

加权和运算单元1210被配置为针对神经网络(例如,诸如图5的自动编码器)的多个层顺序地接收多个输入值和多个权重,并且基于多个输入值和多个权重生成多个累积值(即,相关层的各个节点的输入值的加权和)。具体地,基于神经网络的输出层的节点的输入值和权重,加权和运算单元1210可以生成输出层的节点的累积值。这里,神经网络的输出层的相应节点的输入值是来自神经网络的至少一个隐藏层中的最后一个隐藏层的节点的输出值。加权和运算单元1210可以包括多个乘法电路和多个求和电路。

输出运算单元1220被配置为针对神经网络的多个层顺序地进行运算,以将激活函数应用于由加权和运算单元1210生成的各个累积值,从而生成各个层的输出值。具体地,输出运算单元1220将非线性激活函数应用于神经网络的输出层的各个节点的累积和,以生成输出值。这里,非线性激活函数的输出范围的上限和下限分别通过输入到神经网络的输入层的节点的数据的最大值和最小值来界定。非线性激活函数可以由上述等式1或等式4表示。

缓冲器1230被配置为接收和存储来自输出运算单元的输出,并将接收到的输出作为输入发送至加权和运算单元1210。存储器1240被配置为存储神经网络的相应层的多个权重,并且将所存储的权重发送给加权和运算单元1210。存储器1240可以被配置为存储表示要通过神经网络操作处理的实际现象的数据集。

应当理解,上述示例性实施方式可以以许多不同的方式实现。在一些示例中,可以通过具有处理器、存储器、磁盘或其他大容量存储器、通信接口、输入/输出设备以及其他外围设备的通用计算机来实现本公开中描述的各种方法和装置。通用计算机通过将软件指令加载到处理器中然后执行指令以执行本公开中描述的功能可以用作用于执行上述方法的装置。

图11中所示的步骤可以利用存储在非暂时性记录介质中的指令来实现,所述指令可以由一个或更多个处理器读取和执行。非暂时性存储介质包括例如以计算机系统可读的形式存储数据的各种记录设备。例如,非暂时性记录介质包括磁存储介质(例如,ROM、软盘、硬盘等)和诸如光学可读介质(例如,CD-ROM、DVD等)的存储介质。

尽管出于示例性目的已经描述了本公开的示例性实施方式,但是本领域技术人员将理解的是,在不背离本所要求保护的发明的思想和范围的情况下,可以进行各种修改、添加和替换。因此,为了简要和清楚,描述了本公开的示例性实施方式。本实施方式的技术思想的范围不受图示的限制。因此,普通技术人员将理解所要求保护的发明的范围不限于以上明确描述的实施方式,而是被权利要求及其等同物限制。

相关申请的交叉引用

本申请要求2018年10月29日提交的韩国专利申请号为10-2018-0129587的优先权,通过引用将其公开整体并入本文中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号