一种聚合方法、装置、电子设备及存储介质与流程

文档序号:18704561发布日期:2019-09-17 23:28阅读:151来源:国知局
一种聚合方法、装置、电子设备及存储介质与流程

本申请涉及数据分类技术领域,特别是涉及一种聚合方法、装置、电子设备及存储介质。



背景技术:

当前,在大数据的环境下,视频分类对于视频的存储管理以及兴趣推荐具有十分重要的作用。

目前主流的视频分类方法都是基于神经网络对视频分类,在需要对视频分类时,通常需要对视频采样,得到若干张图像,并根据每一张图像分别获取一个固定长度的特征向量,然后将提取出的多个特征向量聚合为一个特征向量,再将聚合得到的特征向量输入神经网络中,得到神经网络输出的视频的分类。

然而,现有技术中的对视频分类的准确率较低。



技术实现要素:

本申请示出了一种聚合方法、装置、电子设备及存储介质。

第一方面,本申请示出了一种聚合方法,所述方法包括:

获取多个第一矩阵;

对每一个第一矩阵分别进行注意力池化操作和转置操作,得到多个第二矩阵;

将多个第二矩阵聚合为三维的第三矩阵;

对每一个第一矩阵分别进行时序平均池化操作,得到多个第一向量;

将多个第一向量聚合为第二向量;

将所述第二向量输入第一全连接层,并对所述第一全连接层的输出进行重组,得到第四矩阵;

对所述第四矩阵进行逐行软最大softmax操作,得到第五矩阵;

根据所述第三矩阵和所述第五矩阵获取第六矩阵;

对所述第六矩阵进行逐列的范数归一化操作以及展开操作得到第三向量;

对所述第三向量进行范数归一化操作,得到目标向量。

在一个可选的实现方式中,所述根据所述第三矩阵和所述第五矩阵获取第六矩阵,包括:

将所述第三矩阵与所述第五矩阵逐元素相乘,得到三维中间矩阵;

将所述三维中间矩阵拟合为二维矩阵,并作为第六矩阵。

在一个可选的实现方式中,所述将所述三维中间矩阵拟合为二维矩阵,并作为第六矩阵,包括:

沿着所述三维中间矩阵的预设维度,将相同位置上的数值进行加权求和,将加权求和后得到的数值组成二维矩阵,并作为所述第六矩阵。

在一个可选的实现方式中,所述将第二向量输入预设全连接层,并对预设全连接层的输出进行重组,得到第四矩阵,包括:

将第二向量输入所述第一全连接层,得到所述第一全连接层的输出;

对所述第一全连接层的输出进行层归一化操作,得到归一化后的输出;

将归一化后的输出重组为第四矩阵。

在一个可选的实现方式中,所述获取多个第一矩阵,包括:

获取输入矩阵;

对所述输入矩阵分别进行多次特征处理操作,得到多个不同的第一矩阵。

在一个可选的实现方式中,所述对所述输入矩阵分别进行多次特征处理操作,得到多个不同的第一矩阵,包括:

根据所述输入矩阵和预设线性投影层获取第一中间矩阵;

将所述第一中间矩阵进行时序平均池化操作,得到第一中间向量;

根据所述第一中间向量和第二全连接层获取第二中间向量;

根据所述第二中间向量和第三全连接层获取所述第三中间向量;

根据所述第一中间矩阵和所述第三中间向量获取第一矩阵。

在一个可选的实现方式中,所述根据第一中间向量和第二全连接层获取第二中间向量,包括:

将所述第一中间向量输入所述第二全连接层;

对所述第二全连接层的输出进行层归一化操作,得到层归一化向量;

将所述层归一化向量进行整流线性单元激活操作,得到第二中间向量。

在一个可选的实现方式中,所述根据第二中间向量和第三全连接层获取所述第三中间向量,包括:

将所述第二中间向量输入所述第三全连接层;

对所述第三全连接层的输出进行层归一化操作,得到层归一化向量;

将所述层归一化向量进行双弯曲函数sigmoid激活操作,得到第三中间向量。

在一个可选的实现方式中,所述根据所述第一中间矩阵和所述第三中间向量获取第一矩阵,包括:

将所述第一中间矩阵与所述第一中间向量逐元素相乘,得到所述第一矩阵。

在一个可选的实现方式中,所述对每一个第一矩阵分别进行注意力池化和转置操作,得到多个第二矩阵,包括:

对于任意一个第一矩阵,对所述第一矩阵进行注意力池化操作,得到第二中间矩阵,对所述第二中间矩阵进行转置操作,得到一个第二矩阵。

在一个可选的实现方式中,所述对所述第一矩阵进行注意力池化操作,得到第二中间矩阵,包括:

根据所述第一矩阵与预设注意力矩阵获取第三中间矩阵;

对所述第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到第四中间矩阵;

根据所述第一矩阵和所述第四中间矩阵获取所述第二中间矩阵。

在一个可选的实现方式中,所述根据所述第一矩阵和所述第四中间矩阵获取所述第二中间矩阵,包括:

对所述第一矩阵进行转置操作,得到所述第五中间矩阵;

将所述第四中间矩阵与所述第五中间矩阵相乘,得到所述第二中间矩阵。

在一个可选的实现方式中,所述对所述第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到第四中间矩阵,包括:

对所述第三中间矩阵进行层归一化操作,得到层归一化后的第三中间矩阵;

将层归一化后的第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到所述第四中间矩阵。

第二方面,本申请示出了一种聚合装置,所述装置包括:

第一获取模块,用于获取多个第一矩阵;

第一操作模块,用于对每一个第一矩阵分别进行注意力池化操作和转置操作,得到多个第二矩阵;

第一聚合模块,用于将多个第二矩阵聚合为三维的第三矩阵;

第二操作模块,用于对每一个第一矩阵分别进行时序平均池化操作,得到多个第一向量;

第二聚合模块,用于将多个第一向量聚合为第二向量;

重组模块,用于将所述第二向量输入第一全连接层,并对所述第一全连接层的输出进行重组,得到第四矩阵;

第三操作模块,用于对所述第四矩阵进行逐行软最大softmax操作,得到第五矩阵;

第二获取模块,用于根据所述第三矩阵和所述第五矩阵获取第六矩阵;

第四操作模块,用于对所述第六矩阵进行逐列的范数归一化操作以及展开操作得到第三向量;

第五操作模块,用于对所述第三向量进行范数归一化操作,得到目标向量。

在一个可选的实现方式中,所述第二获取模块包括:

相乘单元,用于将所述第三矩阵与所述第五矩阵逐元素相乘,得到三维中间矩阵;

拟合单元,用于将所述三维中间矩阵拟合为二维矩阵,并作为第六矩阵。

在一个可选的实现方式中,所述拟合单元包括:

求和子单元,用于沿着所述三维中间矩阵的预设维度,将相同位置上的数值进行加权求和;

组成单元,用于将加权求和后得到的数值组成二维矩阵,并作为所述第六矩阵。

在一个可选的实现方式中,所述重组模块包括:

输入单元,用于将第二向量输入所述第一全连接层,得到所述第一全连接层的输出;

第一操作单元,用于对所述第一全连接层的输出进行层归一化操作,得到归一化后的输出;

重组单元,用于将归一化后的输出重组为第四矩阵。

在一个可选的实现方式中,所述第一获取模块包括:

获取单元,用于获取输入矩阵;

第二操作单元,用于对所述输入矩阵分别进行多次特征处理操作,得到多个不同的第一矩阵。

在一个可选的实现方式中,所述第二操作单元包括:

第一获取子单元,用于根据所述输入矩阵和预设线性投影层获取第一中间矩阵;

第一操作子单元,用于将所述第一中间矩阵进行时序平均池化操作,得到第一中间向量;

第二获取子单元,用于根据所述第一中间向量和第二全连接层获取第二中间向量;

第三获取子单元,用于根据所述第二中间向量和第三全连接层获取所述第三中间向量;

第四获取子单元,用于根据所述第一中间矩阵和所述第三中间向量获取第一矩阵。

在一个可选的实现方式中,所述第二获取子单元具体用于:将所述第一中间向量输入所述第二全连接层;对所述第二全连接层的输出进行层归一化操作,得到层归一化向量;将所述层归一化向量进行整流线性单元激活操作,得到第二中间向量。

在一个可选的实现方式中,所述第三获取子单元具体用于:将所述第二中间向量输入所述第三全连接层;对所述第三全连接层的输出进行层归一化操作,得到层归一化向量;将所述层归一化向量进行双弯曲函数sigmoid激活操作,得到第三中间向量。

在一个可选的实现方式中,所述第四获取子单元具体用于:将所述第一中间矩阵与所述第一中间向量逐元素相乘,得到所述第一矩阵。

在一个可选的实现方式中,所述第一操作模块包括:

第三操作单元,用于对于任意一个第一矩阵,对所述第一矩阵进行注意力池化操作,得到第二中间矩阵,第四操作单元,用于对所述第二中间矩阵进行转置操作,得到一个第二矩阵。

在一个可选的实现方式中,所述第三操作单元包括:

第五获取子单元,用于根据所述第一矩阵与预设注意力矩阵获取第三中间矩阵;

第二操作子单元,用于对所述第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到第四中间矩阵;

第六获取子单元,用于根据所述第一矩阵和所述第四中间矩阵获取所述第二中间矩阵。

在一个可选的实现方式中,所述第六获取子单元具体用于:对所述第一矩阵进行转置操作,得到所述第五中间矩阵;将所述第四中间矩阵与所述第五中间矩阵相乘,得到所述第二中间矩阵。

在一个可选的实现方式中,所述第二操作子单元具体用于:对所述第三中间矩阵进行层归一化操作,得到层归一化后的第三中间矩阵;将层归一化后的第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到所述第四中间矩阵。

第三方面,本申请示出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的聚合方法的步骤。

第四方面,本申请示出了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的聚合方法的步骤。

本申请包括以下优点:

在本申请中,在进行范数归一化操作时,往往是使用范数归一化对应的模型进行,范数归一化对应的模型中包括参数,将一个矩阵输入至范数归一化对应的模型中,得到范数归一化对应的模型输出的范数归一化后的另一矩阵,其中,范数归一化对应的模型对输入的该一个矩阵处理时,往往需要使用范数归一化对应的模型中的参数对输入的该一个矩阵处理,其中,范数归一化对应的模型中的参数的数量往往需要与输入的该一个矩阵中的参数的数量相匹配,例如,如果输入的该一个矩阵中的参数的数量越多,范数归一化对应的模型中的参数的数量就需要越多,否则就无法需要使用范数归一化对应的模型中的参数成功地对输入的该一个矩阵处理,如果输入的该一个矩阵中的参数的数量越少,范数归一化对应的模型中的参数的数量就可以越少。

在本申请中,第三矩阵为三维矩阵,将第三矩阵与第五矩阵拟合为一个作为二维矩阵的第六矩阵,作为二维矩阵的第六矩阵中的参数的数量小于三矩阵与第五矩阵中的的参数的数量,如此可以降低范数归一化操作对应的模型中的参数的数量,节省范数归一化操作对应的模型所占的存储空间,以及,由于范数归一化操作对应的模型中的参数的数量越多,则使用范数归一化操作对应的模型进行范数归一化操作时的过拟合风险越高,因此,本申请可以降低过拟合风险。

其中,将相同位置上的数值进行加权求和时,不同位置上的数值对应的权重是可以通过自学习得到的,且权重依赖于第三矩阵,也即,会依赖于第一矩阵,由于不同的第一矩阵不同,因此不同的第一矩阵中可以表达出的视频的特征的力度是不同的,因此,不同位置上的数值对应的权重是可以通过自学习得到,在自学习过程中,往往可以将表达出的视频的特征的力度较高的第一矩阵对应的权重设置的较高,以及将表达出的视频的特征的力度较低的第一矩阵对应的权重设置的较低,从而可以使得的第六矩阵可以尽可能地表达出视频的特征,进而之后在根据目标向量来获取视频的分类时可以提高分类的准确率。

通过本申请,可以将输入矩阵转换为多个不同的第一矩阵,然后基于多个不同的第一矩阵,从而可以提高多个第一矩阵的表达能力,以使多个第一矩阵能够尽可能地表达出视频的特征,如此,可以提高根据图1所示的流程获取到的目标向量的表达能力,以使目标向量能够尽可能地表达出视频的特征,进而之后在根据目标向量来获取视频的分类时可以提高分类的准确率。

附图说明

图1是本申请的一种聚合方法的步骤流程图。

图2是本申请的一种聚合方法的步骤流程图。

图3是本申请的一种获取第一矩阵的方法的步骤流程图。

图4是本申请的一种获取第一矩阵的方法的步骤流程图。

图5是本申请的一种获取第二矩阵的方法的步骤流程图。

图6是本申请的一种获取第二矩阵的方法的步骤流程图。

图7是本申请的一种聚合装置的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1和2,示出了本申请的一种聚合方法的步骤流程图,具体可以包括如下步骤:

在步骤s101中,获取多个第一矩阵。

在本申请中,当需要处理视频时,例如当需要对视频分类时,可以获取视频的特征,然后将视频的特征输入至分类模型中,得到分类模型输出的视频的类型。

其中,在获取视频的特征时,可以根据视频中的图像获取一个输入矩阵,然后根据输入矩阵获取多个第一矩阵,再根据本申请之后的步骤来将多个第一矩融合为一个目标向量,并作为视频的特征。

其中,根据输入矩阵获取多个第一矩阵的具体获取方法可以参见图3和图4所示的实施例,在此不做详述。

在本申请中,为了提高多个第一矩阵的表达能力,以使多个第一矩阵能够尽可能地表达出视频的特征,本申请获取的多个第一矩阵可以不全相同。

其中,可以将每一个第一矩阵分别看做由多个向量组成的矩阵,多个第一矩阵分别包括的向量的维度均相同且多个第一矩阵分别包括的向量的数量均相同,然而,多个第一矩阵包括的向量中的元素可以不同。向量的维度可以为向量中包括的元素的数量,元素可以为数值等等。

例如,每一个第一矩阵包括的向量的数量可以为n,每一个向量的维度可以为d,则第一矩阵可以表示为d*n的矩阵。

在步骤s102中,对每一个第一矩阵分别进行注意力池化操作和转置操作,得到多个第二矩阵。

在本申请中,对于任意一个第一矩阵,可以对该第一矩阵进行注意力池化操作,得到一个矩阵,然后对得到的该矩阵进行转置操作,得到另一个矩阵,并作为第二矩阵d*k。

对于其他每一个第一矩阵,同样执行上述操作,如此可以得到多个第二矩阵d*k。

其中,本步骤具体的流程可以参见之后图5和图6所示的实施例,在此不做详述。

在步骤s103中,将多个第二矩阵聚合为三维的第三矩阵。

在本申请中,假设第一矩阵为g个,则第二矩阵也为g个,对于任意一个第二矩阵d*k,可以将该第二矩阵d*k扩展为三维矩阵d*k*1,对于其他每一个第二矩阵,同样执行上述操作,如此,可以得到g个三维矩阵d*k*1,然后将g个三维矩阵d*k*1按照第三个维度组成一个三维的矩阵d*k*g,即为第三矩阵。

在步骤s104中,对每一个第一矩阵分别进行时序平均池化操作,得到多个第一向量。

在本申请中,对于任意一个第一矩阵,对于该第一矩阵中的任意一个向量,该向量中的每一个元素在该向量中都具备特定的位置,例如第几列等,对于该第一矩阵中的其他每一个向量,同样如此。

因此,对于任意一个位置,可以计算该第一矩阵中的每一个向量中该位置中的元素之间平均值,然后将这些平均值按照其对应的位置组成一个向量,并作为第一向量。

对于其他每一个第一矩阵,同样执行上述操作,如此可以得到多个第一向量。

例如,假设第一矩阵包括的向量的维度为d,则第一向量可以用d*1来表示。

在步骤s105中,将多个第一向量聚合为第二向量。

在本申请中,可以将多个第一向量依次首尾相连,组成第二向量。

例如,假设有三个第一向量,分别为[03245815]、[45859324]以及[47121026]、将这三个第一向量首尾相连,得到第二向量[032458154585932447121026]。

例如,假设第一矩阵为g个,则第一向量的数量也为g个,将g个第一向量d*1依次首尾相连,得到第二向量dg*1。

在步骤s106中,将第二向量输入第一全连接层,并对第一全连接层的输出进行重组,得到第四矩阵。

在本步骤中,可以将第二向量输入第一全连接层,从而可以得到第一全连接层的输出。第一全连接层的输出即为一个向量,为了将该向量中的参数统一至一个区间内,可以对第一全连接层的输出进行层归一化操作,得到归一化后的输出,归一化后的输出也为一个向量,然后将归一化后的输出重组为第四矩阵。

例如,假设第二向量为dg*1的向量,第一全连接层包括维度为k*g的向量,k为注意力向量的数量,注意力向量的维度与第一矩阵中的向量的维度相同,注意力向量的数量是一个可选择的数值,例如64、128或256等,本申请对此不加以限定。第一矩阵的数量为g,因此,第一全连接层的输出即为包括k*g个元素的向量,然后将该向量中每k个数值作为一个向量,将g个向量组成一个矩阵,即为第四矩阵k*g。

例如,将第1~k个元素构成矩阵的第1列,第k+1~2k个元素构成矩阵的第2列,依次类推,从而得到第四矩阵k*g。

其中,事先在训练第一全连接层的过程中,可以样本向量输入第一全连接层,从而可以得到第一全连接层的样本输出,样本输出即为一个向量,为了加速第一全连接层中的参数的收敛,以提高训练效率,以及为了将样本输出中的参数统一至一个区间内,可以对第一全连接层的样本输出进行层归一化操作,得到归一化后的样本输出,归一化后的样本输出也为一个向量,然后将归一化后的样本输出重组。

在步骤s107中,对第四矩阵进行逐行softmax操作,得到第五矩阵。

在本步骤中,对于第四矩阵中的任意一行,可以计算该行中的各个元素的指数,然后计算各个元素的指数之间的和值,然后计算各个元素的指数与该和值之间的比值,再将各个元素的指数与该和值之间的比值组成新的一行。

对于第四矩阵中的每一行,同样执行上述操作,从而可以得到多个新的一行,然后将多个新的一行组成一个新的矩阵,即为第五矩阵。

其中,在对第四矩阵进行逐行softmax操作时,并未对第四矩阵的行数和列数进行改变,因此,第五矩阵也可以使用k*g来表示。

在步骤s108中,根据第三矩阵和第五矩阵获取第六矩阵。

本步骤具体可以通过如下流程实现,包括:

1081、将第三矩阵与第五矩阵逐元素相乘,得到三维中间矩阵。

在本申请中,第三矩阵为三维矩阵,可以按照其中一个特定的维度,将第三矩阵看做多个二维矩阵,对于任意一个二维矩阵,将该二维矩阵与第五矩阵逐元素相乘,得到一个新的二维矩阵,对于其他每一个二维矩阵,同样执行上述操作,从而可以得到多个新的二维矩阵,多个新的二维矩阵组成的矩阵即为三维中间矩阵。

例如,在本申请中,可以将第三矩阵d*k*g看成d个二维矩阵k*g,然后对于任意一个二维矩阵k*g,将该二维矩阵k*g与第五矩阵k*g逐元素相乘,得到新的二维矩阵k*g,对于其他每一个二维矩阵k*g,同样执行上述操作,从而可以得到多个新的二维矩阵k*g,多个新的二维矩阵k*g组成的矩阵即为三维中间矩阵d*k*g。

1082、将三维中间矩阵拟合为二维矩阵,并作为第六矩阵。

在本申请中,可以按照步骤1081中的特定的维度,将三维中间矩阵看做多个二维矩阵,对于任意一个二维矩阵,该二维矩阵中的每一个元素在该二维矩阵中都就具备各自的位置,例如第几行第几列,对其他每一个二维矩阵,同样如此。

如此,可以沿着三维中间矩阵的该特定的维度,将相同位置上的数值进行加权求和,将加权求和后得到的数值组成一个二维矩阵,并作为第六矩阵。

例如,沿着三维中间矩阵d*k*g的该特定的维度g,将相同位置上的数值进行加权求和,将加权求和后得到的数值组成二维矩阵d*k,并作为第六矩阵d*k。

在步骤s109中,对第六矩阵进行逐列的范数归一化操作以及展开操作得到第三向量。

对于第六矩阵中的任意一列,计算该列中的各个元素之间的平方和的开方,然后将各个元素除以该开方,对于第六矩阵中的其他每一列,同样执行上述操作,如此,得到一个新矩阵,然后将该矩阵展开为一个向量,即为第三向量。

例如,对第六矩阵d*k进行逐列的范数归一化操作并未改变第六矩阵的维度,因此,得到的新的矩阵可以用d*k表示,然后将新的矩阵d*k中的任意相邻的两行中的靠上方的行的尾部与靠下方的行的首部相连,得到第三向量dk*1。

在步骤s110中,对第三向量进行范数归一化操作,得到目标向量。

在本申请中,可以计算第三向量中的各个元素之间的平方和的开方,然后将第三向量中的各个元素除以该开方之间的比值,从而得到目标向量。

例如,对第三向量dk*1进行范数归一化操作并未改变第三向量的维度,因此,目标向量也可以用dk*1表示。

进一步地,可以将目标向量输入分类模型中,得到视频的分类。

在本申请中,在进行范数归一化操作时,往往是使用范数归一化对应的模型进行,范数归一化对应的模型中包括参数,将一个矩阵输入至范数归一化对应的模型中,得到范数归一化对应的模型输出的范数归一化后的另一矩阵,其中,范数归一化对应的模型对输入的该一个矩阵处理时,往往需要使用范数归一化对应的模型中的参数对输入的该一个矩阵处理,其中,范数归一化对应的模型中的参数的数量往往需要与输入的该一个矩阵中的参数的数量相匹配,例如,如果输入的该一个矩阵中的参数的数量越多,范数归一化对应的模型中的参数的数量就需要越多,否则就无法需要使用范数归一化对应的模型中的参数成功地对输入的该一个矩阵处理,如果输入的该一个矩阵中的参数的数量越少,范数归一化对应的模型中的参数的数量就可以越少。

在本申请中,第三矩阵为三维矩阵,将第三矩阵与第五矩阵拟合为一个作为二维矩阵的第六矩阵,作为二维矩阵的第六矩阵中的参数的数量小于三矩阵与第五矩阵中的的参数的数量,如此可以降低范数归一化操作对应的模型中的参数的数量,节省范数归一化操作对应的模型所占的存储空间,以及,由于范数归一化操作对应的模型中的参数的数量越多,则使用范数归一化操作对应的模型进行范数归一化操作时的过拟合风险越高,因此,本申请可以降低过拟合风险。

其中,将相同位置上的数值进行加权求和时,不同位置上的数值对应的权重是可以通过自学习得到的,且权重依赖于第三矩阵,也即,会依赖于第一矩阵,由于不同的第一矩阵不同,因此不同的第一矩阵中可以表达出的视频的特征的力度是不同的,因此,不同位置上的数值对应的权重是可以通过自学习得到,在自学习过程中,往往可以将表达出的视频的特征的力度较高的第一矩阵对应的权重设置的较高,以及将表达出的视频的特征的力度较低的第一矩阵对应的权重设置的较低,从而可以使得的第六矩阵可以尽可能地表达出视频的特征,进而之后在根据目标向量来获取视频的分类时可以提高分类的准确率。

在本申请另一实施例中,参见图3和4,步骤s101包括:

在步骤s201中,获取输入矩阵。

在本申请中,当需要处理视频时,例如当需要对视频分类时,可以获取视频的特征,然后将视频的特征输入至分类模型中,得到分类模型输出的视频的类型。

其中,由于视频包括多帧按照时间顺序排列的图像,因此,可以每间隔一段时间采集视频中的一帧图像,例如,共采集到视频中的n帧图像,然后提取每一帧图像的特征向量,每一个特征向量可以包括d’个元素,也即,每一个特征向量的维度为d’,然后将每一帧图片的特征向量组成视频的特征矩阵,该特征矩阵即为本步骤中的输入矩阵,输入矩阵可以用于d’*n来表示。

其中,在提取每一帧图像的特征向量时,可以将图像输入神经网络中,神经网络中包括多个级联的层,相邻的顺序靠前的层的输出即为顺序靠后的层的输入,多个级联的层除了输入层和输出层都是隐藏层,本申请可以将神经网络中的最后一个隐藏层输出的向量作为图像的特征向量等。

在步骤s202中,对输入矩阵分别进行多次特征处理操作,得到多个不同的第一矩阵。

在本申请中,输入矩阵是由多个向量组成,如此,对输入矩阵进行一次特征处理操作时,可以提高输入矩阵中的各个向量的维度,例如,在输入矩阵中的每一个向量中的任意位置增加随机元素。或者,降低输入矩阵中的向量的的维度,例如,删除输入矩阵中的每一个向量中的任意位置处的元素。或者,可以提高输入矩阵中的向量的数量,例如,在输入矩阵中的任意位置处增加一个随机向量。或者,减少输入矩阵中的向量的数量,例如,在数据矩阵中随机删除一个向量等。如此,在对输入矩阵分别进行多次特征处理操作之后,可以得到多个不同的第一矩阵。

具体地,对输入矩阵进行一次特征处理操作的流程可以包括:

2021、根据输入矩阵和预设线性投影层获取第一中间矩阵。

在本申请中,可以将输入矩阵d’*n的输入至预设线性投影层,得到d*n的第一矩阵。

其中,预设线性投影层的维数可以与输入矩阵的维度相同,也可以大于或小于输入矩阵的维数,预设线性投影层可以采用tensorflow中的1x1卷积等方式来实现线性投影层。

其中,预设线性投影层包括y=wx+b,其中,w是投影矩阵,x是输入向量,b是偏置向量,y是输出向量,投影矩阵w中的参数和偏置向量b中的参数均是可学习的。

在本申请中,可以将输入矩阵拆分为多个列向量,对于任意一个列向量,可以将该列向量作为x与投影矩阵w逐点相乘,再将相乘结果与偏置向量b相加,得到一个新的列向量,即得到一个输出向量y。对于其他每一个列向量,同样执行上述操作,从而得到多个新的列向量,新的列向量的数量与拆分得到的列向量的数量相同,可以将多个新的列向量组成一个矩阵,作为第一中间矩阵。然后,重复多次上述过程,每一次的过程中的投影矩阵w不同和/或偏置向量b不同,例如,投影矩阵w的维度不同等。

2022、对第一中间矩阵进行时序平均池化操作,得到第一中间向量。

在本申请中,对于第一中间矩阵中的任意一个向量,该向量中的每一个元素在该向量中都具备特定的位置,例如第几列等,对于第一中间矩阵中的其他每一个向量,同样如此。

因此,对于任意一个位置,可以计算第一中间矩阵中的每一个向量中该位置中的元素之间平均值,然后将这些平均值按照对应的位置组成一个向量,作为第一中间向量。

例如,假设第一中间矩阵可以用d*n来表示,则第一中间向量可以用d*1来表示。

2023、根据第一中间向量和第二全连接层获取第二中间向量。

在本步骤中,可以将第一中间向量输入第二全连接层,从而可以得到第二全连接层的输出,第二全连接层的输出即为一个向量,为了将该向量中的参数统一至一个区间内,然后可以对第二全连接层的输出进行层归一化操作,得到层归一化向量,之后将层归一化向量进行整流线性单元激活操作,得到第二中间向量。

例如,假设第一中间向量为d*1的向量,第二全连接层为(d/2)*1的向量,则最终得到的第二中间向量可以用(d/2)*1表示。

其中,事先在训练第二全连接层的过程中,可以样本向量输入第二全连接层,从而可以得到第二全连接层的样本输出,样本输出即为一个向量,为了加速第二全连接层中的参数的收敛,以提高训练效率,以及为了将样本输出中的参数统一至一个区间内,可以对第二全连接层的样本输出进行层归一化操作,得到归一化后的样本输出,归一化后的样本输出也为一个向量。

2024、根据第二中间向量和第三全连接层获取第三中间向量。

在本步骤中,可以将第二中间向量输入第三全连接层,从而可以得到第三全连接层的输出,第三全连接层的输出即为一个向量,为了将该向量中的参数统一至一个区间内,可以对第三全连接层的输出进行层归一化操作,得到层归一化向量,之后将层归一化向量进行双弯曲函数sigmoid激活操作,得到第三中间向量。

例如,假设第二中间向量为(d/2)*1的向量,第三全连接层包括d*1的向量,其最终输出的第三中间向量可以用d*1表示。

其中,事先在训练第三全连接层的过程中,可以样本向量输入第三全连接层,从而可以得到第三全连接层的样本输出,样本输出即为一个向量,为了加速第三全连接层中的参数的收敛,以提高训练效率,以及为了将样本输出中的参数统一至一个区间内,可以对第三全连接层的样本输出进行层归一化操作,得到归一化后的样本输出,归一化后的样本输出也为一个向量。

2025、根据第一中间矩阵和第三中间向量获取第一矩阵。

可以将第一中间矩阵与第一中间向量逐元素相乘,得到第一矩阵。

例如,将第一中间矩阵d*n与第一中间向量d*1逐元素相乘,得到第一矩阵d*n。

通过本申请,可以将输入矩阵转换为多个不同的第一矩阵,然后基于多个不同的第一矩阵,从而可以提高多个第一矩阵的表达能力,以使多个第一矩阵能够尽可能地表达出视频的特征,如此,可以提高根据图1所示的流程获取到的目标向量的表达能力,以使目标向量能够尽可能地表达出视频的特征,进而之后在根据目标向量来获取视频的分类时可以提高分类的准确率。

在本申请另一实施例中,参见图5和6,对于任意一个第一矩阵,可以通过如下流程来根据该第一矩阵获取一个第二矩阵,对于其他每一个第一矩阵,同样如此。

在步骤s301中,对第一矩阵进行注意力池化操作,得到第二中间矩阵。

本步骤具体可以通过如下流程实现,包括:

3011、根据第一矩阵与预设注意力矩阵获取第三中间矩阵。

在本申请中,预设注意力矩阵的维度可以为k*d。

可以将预设注意力矩阵与第一矩阵相乘,得到第三中间矩阵。

例如,第一矩阵为d*n,将注意力矩阵k*d与第一矩阵d*n相乘,得到第三中间矩阵k*n。

3012、对第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,随机失活操作就是在训练的过程中将其操作的向量或矩阵按照一个预设的比例随机置成0值,得到第四中间矩阵。

本步骤可以通过如下流程实现,包括:

11)、对第三中间矩阵进行层归一化操作,得到层归一化后的第三中间矩阵。

在本申请中,为了将第三中间矩阵中的参数统一至一个区间内,可以对第三中间矩阵进行层归一化操作,得到层归一化后的第三中间矩阵。

12)、将层归一化后的第三中间矩阵进行逐行softmax操作。

在本步骤中,对于层归一化后的第三中间矩阵中的任意一行,可以计算该行中的各个元素的指数,然后计算各个元素的指数之间的和值,然后计算各个元素的指数与该和值之间的比值,再将各个元素的指数与该和值之间的比值组成新的一行。

对于层归一化后的第三中间矩阵中的每一行,同样执行上述操作,从而可以得到多个新的一行,然后将多个新的一行组成一个新的矩阵,即为softmax操作后的输出。

13)、对softmax操作后的输出进行随机失活dropout操作,得到第四中间矩阵。

例如,对softmax操作后的输出进行随机失活dropout操作,得到第四中间矩阵k*n。

3013、根据第一矩阵和第四中间矩阵获取第二中间矩阵。

在本步骤中,可以对第一矩阵进行转置操作,得到第五中间矩阵。然后将第四中间矩阵与第五中间矩阵相乘,得到第二中间矩阵。

例如,对第一矩阵d*n进行转置操作,得到第五中间矩阵n*d。然后将第四中间矩阵k*n与第五中间矩阵n*d相乘,得到第二中间矩阵k*d。

在步骤s302中,对第二中间矩阵进行转置操作,得到一个第二矩阵。

例如,对第二中间矩阵k*d进行转置操作,得到第二矩阵d*k。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本申请所必须的。

参照图7,示出了本申请的一种聚合装置的结构框图,该装置具体可以包括如下模块:

第一获取模块01,用于获取多个第一矩阵;

第一操作模块02,用于对每一个第一矩阵分别进行注意力池化操作和转置操作,得到多个第二矩阵;

第一聚合模块03,用于将多个第二矩阵聚合为三维的第三矩阵;

第二操作模块04,用于对每一个第一矩阵分别进行时序平均池化操作,得到多个第一向量;

第二聚合模块05,用于将多个第一向量聚合为第二向量;

重组模块06,用于将所述第二向量输入第一全连接层,并对所述第一全连接层的输出进行重组,得到第四矩阵;

第三操作模块07,用于对所述第四矩阵进行逐行软最大softmax操作,得到第五矩阵;

第二获取模块08,用于根据所述第三矩阵和所述第五矩阵获取第六矩阵;

第四操作模块09,用于对所述第六矩阵进行逐列的范数归一化操作以及展开操作得到第三向量;

第五操作模块10,用于对所述第三向量进行范数归一化操作,得到目标向量。

在一个可选的实现方式中,所述第二获取模块08包括:

相乘单元081,用于将所述第三矩阵与所述第五矩阵逐元素相乘,得到三维中间矩阵;

拟合单元082,用于将所述三维中间矩阵拟合为二维矩阵,并作为第六矩阵。

在一个可选的实现方式中,所述拟合单元082包括:

求和子单元,用于沿着所述三维中间矩阵的预设维度,将相同位置上的数值进行加权求和;

组成单元,用于将加权求和后得到的数值组成二维矩阵,并作为所述第六矩阵。

在一个可选的实现方式中,所述重组模块06包括:

输入单元061,用于将第二向量输入所述第一全连接层,得到所述第一全连接层的输出;

第一操作单元062,用于对所述第一全连接层的输出进行层归一化操作,得到归一化后的输出;

重组单元063,用于将归一化后的输出重组为第四矩阵。

在一个可选的实现方式中,所述第一获取模块01包括:

获取单元011,用于获取输入矩阵;

第二操作单元012,用于对所述输入矩阵分别进行多次特征处理操作,得到多个不同的第一矩阵。

在一个可选的实现方式中,所述第二操作单元012包括:

第一获取子单元,用于根据所述输入矩阵和预设线性投影层获取第一中间矩阵;

第一操作子单元,用于将所述第一中间矩阵进行时序平均池化操作,得到第一中间向量;

第二获取子单元,用于根据所述第一中间向量和第二全连接层获取第二中间向量;

第三获取子单元,用于根据所述第二中间向量和第三全连接层获取所述第三中间向量;

第四获取子单元,用于根据所述第一中间矩阵和所述第三中间向量获取第一矩阵。

在一个可选的实现方式中,所述第二获取子单元具体用于:将所述第一中间向量输入所述第二全连接层;对所述第二全连接层的输出进行层归一化操作,得到层归一化向量;将所述层归一化向量进行整流线性单元激活操作,得到第二中间向量。

在一个可选的实现方式中,所述第三获取子单元具体用于:将所述第二中间向量输入所述第三全连接层;对所述第三全连接层的输出进行层归一化操作,得到层归一化向量;将所述层归一化向量进行双弯曲函数sigmoid激活操作,得到第三中间向量。

在一个可选的实现方式中,所述第四获取子单元具体用于:将所述第一中间矩阵与所述第一中间向量逐元素相乘,得到所述第一矩阵。

在一个可选的实现方式中,所述第一操作模块02包括:

第三操作单元021,用于对于任意一个第一矩阵,对所述第一矩阵进行注意力池化操作,得到第二中间矩阵,第四操作单元022,用于对所述第二中间矩阵进行转置操作,得到一个第二矩阵。

在一个可选的实现方式中,所述第三操作单元021包括:

第五获取子单元,用于根据所述第一矩阵与预设注意力矩阵获取第三中间矩阵;

第二操作子单元,用于对所述第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到第四中间矩阵;

第六获取子单元,用于根据所述第一矩阵和所述第四中间矩阵获取所述第二中间矩阵。

在一个可选的实现方式中,所述第六获取子单元具体用于:对所述第一矩阵进行转置操作,得到所述第五中间矩阵;将所述第四中间矩阵与所述第五中间矩阵相乘,得到所述第二中间矩阵。

在一个可选的实现方式中,所述第二操作子单元具体用于:对所述第三中间矩阵进行层归一化操作,得到层归一化后的第三中间矩阵;将层归一化后的第三中间矩阵进行逐行softmax操作以及随机失活dropout操作,得到所述第四中间矩阵。

第三方面,本申请示出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的聚合方法的步骤。

第四方面,本申请示出了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的聚合方法的步骤。

本申请包括以下优点:

在本申请中,在进行范数归一化操作时,往往是使用范数归一化对应的模型进行,范数归一化对应的模型中包括参数,将一个矩阵输入至范数归一化对应的模型中,得到范数归一化对应的模型输出的范数归一化后的另一矩阵,其中,范数归一化对应的模型对输入的该一个矩阵处理时,往往需要使用范数归一化对应的模型中的参数对输入的该一个矩阵处理,其中,范数归一化对应的模型中的参数的数量往往需要与输入的该一个矩阵中的参数的数量相匹配,例如,如果输入的该一个矩阵中的参数的数量越多,范数归一化对应的模型中的参数的数量就需要越多,否则就无法需要使用范数归一化对应的模型中的参数成功地对输入的该一个矩阵处理,如果输入的该一个矩阵中的参数的数量越少,范数归一化对应的模型中的参数的数量就可以越少。

在本申请中,第三矩阵为三维矩阵,将第三矩阵与第五矩阵拟合为一个作为二维矩阵的第六矩阵,作为二维矩阵的第六矩阵中的参数的数量小于三矩阵与第五矩阵中的的参数的数量,如此可以降低范数归一化操作对应的模型中的参数的数量,节省范数归一化操作对应的模型所占的存储空间,以及,由于范数归一化操作对应的模型中的参数的数量越多,则使用范数归一化操作对应的模型进行范数归一化操作时的过拟合风险越高,因此,本申请可以降低过拟合风险。

其中,将相同位置上的数值进行加权求和时,不同位置上的数值对应的权重是可以通过自学习得到的,且权重依赖于第三矩阵,也即,会依赖于第一矩阵,由于不同的第一矩阵不同,因此不同的第一矩阵中可以表达出的视频的特征的力度是不同的,因此,不同位置上的数值对应的权重是可以通过自学习得到,在自学习过程中,往往可以将表达出的视频的特征的力度较高的第一矩阵对应的权重设置的较高,以及将表达出的视频的特征的力度较低的第一矩阵对应的权重设置的较低,从而可以使得的第六矩阵可以尽可能地表达出视频的特征,进而之后在根据目标向量来获取视频的分类时可以提高分类的准确率。

通过本申请,可以将输入矩阵转换为多个不同的第一矩阵,然后基于多个不同的第一矩阵,从而可以提高多个第一矩阵的表达能力,以使多个第一矩阵能够尽可能地表达出视频的特征,如此,可以提高根据图1所示的流程获取到的目标向量的表达能力,以使目标向量能够尽可能地表达出视频的特征,进而之后在根据目标向量来获取视频的分类时可以提高分类的准确率。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种聚合方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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