训练字幕模型的方法和装置、计算机设备及存储介质

文档序号:956377 发布日期:2020-10-30 浏览:3次 >En<

阅读说明:本技术 训练字幕模型的方法和装置、计算机设备及存储介质 (Method and apparatus for training caption model, computer device and storage medium ) 是由 宫博庆 于 2020-03-19 设计创作,主要内容包括:本申请的实施例提供一种训练字幕模型的方法,所述字幕模型用于对输入视频执行自动视频字幕,所述方法包括:使用交叉熵损失初始化包括在所述字幕模型中的多个长短期记忆(LSTM)单元;使用强化学习训练所述LSTM单元;使用多任务训练对包括在所述字幕模型中的LSTM单元和多个卷积神经网络(CNN)进行训练;以及使用所述字幕模型生成对应于所述输入视频的视频字幕。(An embodiment of the present application provides a method of training a caption model for performing automatic video captioning on an input video, the method comprising: initializing a plurality of Long Short Term Memory (LSTM) units included in the caption model using cross-entropy loss; training the LSTM unit using reinforcement learning; training LSTM units and a plurality of Convolutional Neural Networks (CNNs) included in the caption model using multitask training; and generating a video subtitle corresponding to the input video using the subtitle model.)

训练字幕模型的方法和装置、计算机设备及存储介质

优先权信息

本申请要求于2019年4月29日递交的、申请号为16/396,924、发明名称为”具有多任务强化学习的端到端视频字幕”的美国申请的优先权,其全部内容通过引用并入本申请中。

技术领域

本申请涉及视频字幕技术。具体地,本申请涉及训练字幕模型的方法和装置、计算机设备及存储介质。

背景技术

视频字幕对于诸如视频检索、索引、浏览等许多下游应用是至关重要的。现有的视频字幕方法是逐个组件进行训练的,整个系统的质量受到每个单独组件的性能的影响。

相关技术的端到端(E2E)训练经常受到硬件约束(例如,图形处理单元(GPU)内存)的阻碍,并且容易过拟合。关于视频字幕,由于输入视频和输出字幕都是冗长序列这一事实,这些限制被格外放大了。事实上,最新的视频字幕方法通过卷积神经网络来处理视频帧,并且通过展开递归神经网络来生成字幕。如果它们以E2E方式连接,则生成的模型既消耗内存又消耗数据,使得训练极其困难。

发明内容

本申请的实施例提供了一种训练字幕模型的方法和装置、计算机设备及存储介质,旨在解决现有的字幕模型的训练方法既消耗内存又消耗数据、且训练难度大、训练质量不高的问题。

在一个实施例中,提供了一种训练字幕模型的方法,所述字幕模型用于对输入视频执行自动视频字幕,所述方法包括:至少一个处理器使用交叉熵损失初始化包括在所述字幕模型中的多个长短期记忆(LSTM)单元;所述至少一个处理器使用强化学习训练所述LSTM单元;所述至少一个处理器使用多任务训练对包括在所述字幕模型中的所述LSTM单元和多个卷积神经网络(CNN)进行训练;以及所述至少一个处理器使用所述字幕模型生成与所述输入视频对应的视频字幕。

在一个实施例中,提供了一种训练字幕模型的装置,所述字幕模型用于对输入视频执行自动视频字幕,所述装置包括:初始化模块,用于使用交叉熵损失初始化包括在所述字幕模型中的多个长短期记忆(LSTM)单元;第一训练模块,用于使用强化学习训练所述LSTM单元;第二训练模块,用于使用多任务训练对包括在所述字幕模型中的所述LSTM单元和多个卷积神经网络(CNN)进行训练;以及生成模块,用于使用所述字幕模型生成与所述输入视频对应的视频字幕。

在一个实施例中,提供了一种非易失性计算机可读存储介质,用于存储指令,当所述指令由计算机设备执行时,使得所述计算机设备执行所述训练字幕模型的方法。

在一个实施例中,提供了一种计算机设备,包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现所述训练字幕模型的方法。

在本申请的实施例中,使用强化学习和多任务学习对字幕模型进行训练,并使用训练好的字幕模型生成与输入视频对应的视频字幕。这种字幕模型的训练方法可以节省内存和数据消耗、简化了训练过程、并且提高了训练质量。

附图说明

图1是用于视频字幕的输入视频的示意图。

图2是根据实施例的可以实施本文所描述的方法、装置和系统的环境的示意图。

图3是图2的一个或多个设备的示例组件的示意图。

图4是根据一个实施例示出的视频字幕模型的示意图,其中该视频字幕模型用于对输入视频执行自动视频字幕。

图5是根据一个实施例的训练字幕模型的方法的流程图,其中该字幕模型用于对输入视频执行自动视频字幕。

具体实施方式

目前,在图像和视频字幕方面已经取得了很大的进展。其中很大一部分是由于机器翻译的进步。例如,编码器-解码器框架和注意机制首先在机器翻译中引入,然后扩展到字幕。图像字幕方法和视频字幕方法都遵循其流程(pipeline),并且在字幕生成中应用注意机制。与图像字幕相比,视频字幕描述的是动态场景而不是静态场景。

从图1中可以看出,由于外观变化较大,视频字幕要困难得多。一些相关技术提出了边界感知长短期记忆(LSTM,long short-term memory)单元以自动检测时间视频片段。一些相关技术通过在大型外部文本数据集上训练语言LSTM模型,将自然语言知识集成到其网络中。一些相关技术将门控循环单元(GRU)扩展为多速率GRU,以处理不同的视频帧速率。一些相关技术提出了深度合成字幕机,以借助外部图像描述数据集上的词汇分类器训练来描述新对象。最近,在视频字幕中使用了最大似然估计算法,该算法根据先前的标注单词(ground truth words)将当前单词的概率最大化。然而,所有这些方法都有两个主要问题。

首先是曝光偏差,这是训练和推理中的输入不匹配。在训练中,解码器的输出取决于标注单词而不是模型预测。而在推理中,解码器只能访问预测。一些相关技术安排采样,以便通过在开始时更多地从标注数据(ground truth)中选择而在结束时更多地从模型预测中采样来减轻训练和推理之间的差距。然而,这种技术仍然在单词级别进行优化。

另一个问题是训练和推理之间的目标不匹配。在训练中,在单词级别对损失进行优化。而在推理中,可以使用例如BLEU4、METEOR、CIDEr和ROUGE-L的离散度量进行评估。已经提出了一些图像字幕作品来解决该问题,其在强化学习的帮助下表现出了卓越的性能。一些相关技术将动作-评价方法(actor-critic method)引入图像字幕,并且还提出了一种新的前瞻推理算法(lookahead inference algorithm),该算法具有比集束搜索(beamsearch)更好的性能。一些相关技术采用策略梯度方法(policy gradient method)来优化SPIDEr分数。一些相关技术将条件生成式对抗网络(conditional generativeadversarial network)与策略梯度相结合,可以产生自然而多样的语句。然而,在视频字幕中使用强化学习的作品要少得多。

许多视频字幕模型实际上可以以E2E方式部署。一些相关技术提出了两个长短期记忆(LSTM)网络的堆栈。一些相关技术提出了将语义概念馈送到LSTM的传输单元。一些相关技术开发了高级单词检测器和语义注意机制,其将概念与字幕解码器相结合。然而,它们实际上是将卷积神经网络(CNN)视为特征提取器,并且不训练其框架的CNN部分,并且不将CNN和其它部分一起训练。

多任务学习是一种机器学习技术。在多任务学习期间,利用共享表示同时解决多个任务,并且对于有限数量的原始数据尤其有用。它不仅用于计算机视觉,而且用于自然语言处理。然而,很少有相关技术在视频字幕中使用多任务学习。

本申请的实施例可以涉及一种用于视频字幕的E2E训练方法,该视频字幕具有多任务学习和强化学习的使能因素,其可以是以E2E方式训练的第一视频字幕系统。本申请的实施例可以在几个基准数据集上提供最新的结果。

本申请的实施例涉及一种端到端(E2E)训练方法,该方法用于共同优化视频字幕系统的不同组件,其中该视频字幕系统用于对输入视频执行自动视频字幕。如本文中所描述,视频字幕可以涉及为短视频剪辑自动生成描述性语句或短语。在实施例中,视频剪辑可以是例如10-20秒长。

根据实施例,可以使用用于训练E2E字幕模型(例如,视频字幕模型)的多任务强化学习方法。因为例如当模型的所有权重从原始视频输入更新为字幕输出时,模型容量可能超过现有的数据集,因此可以使用多任务学习。这种多任务强化学习方法可以从人工字幕视频中挖掘和构造有效的任务,例如属性、奖励和字幕,以便它们可以共同调节E2E神经网络的搜索空间,从中可以找到E2E视频字幕模型并将其推广到测试阶段。可以对实施例进行从原始视频输入到字幕输出的端到端训练。视频字幕的相关技术方法可以分别训练系统的组件。然而,本申请的实施例端到端地优化整个系统。实验结果表明,这样的模型在几个基准视频字幕数据集上的表现大大优于相关技术模型。

本文中所描述的E2E训练的视频字幕模型的实施例可以包括S2VT模型的加深版本。尽管其概念简单,但是训练整个模型以在测试集上达到良好的泛化能力是非常具有挑战性的。实验结果表明,如果不使用有效的训练方法,则共同训练卷积神经网络(CNN)和长短期记忆网络(LSTM)所获得的增益与将CNN固定为特征提取器相比可能微不足道。因此,当将本文中所描述的实施例结合起来用于训练E2E视频字幕模型时,这些实施例可能是有用的。

根据实施例,训练视频字幕流程(pipeline)的E2E方法可以包括开发辅助任务以帮助训练主任务,即视频字幕。该方法可以进一步包括从视频字幕自动挖掘属性以构造辅助属性预测任务,以及使用评估指标作为定义辅助强化学习任务的奖励函数。

图2是可以实施本文所描述的系统和/或方法的示例环境200的示意图。如图2所示,环境200可以包括用户设备210、平台220和网络230。环境200的设备可以通过有线连接、无线连接或有线和无线连接的组合进行互连。

用户设备210包括一个或多个设备,该一个或多个设备能够接收、生成、存储、处理和/或提供与平台220相关的信息。例如,用户设备210可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表)或相似设备。在一些实施方式中,用户设备210可以从平台220接收信息和/或向平台220发送信息。

平台220包括一个或多个设备,该一个或多个设备能够选择用于执行自动语音识别的最佳LMW,如本文中其它地方所描述的。在一些实施方式中,平台220可以包括云服务器或云服务器组。在一些实施方式中,平台220可以被设计成模块化的,使得某些软件组件可以根据特定需要被换入或换出。这样,可以容易地和/或快速地重新配置平台220以用于不同的用途。

在一些实施方式中,如图所示,平台220可以被托管(hosted)在云计算环境222中。值得注意的是,虽然本文所述的实施方式将平台220描述为托管在云计算环境222中,但是在一些实施方式中,平台220不是基于云的(即,可以在云计算环境外部实现)或者可以是部分基于云的。云计算环境222包括托管平台220的环境。云计算环境222可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备210)了解托管平台220的系统和/或设备的物理位置和配置。如图所示,云计算环境222可以包括一组计算资源224(统称为“计算资源(computing resources)224”并分别称为“计算资源(computingresource)224”)。

计算资源224包括一个或多个个人计算机、工作站计算机、服务器设备或其它类型的计算和/或通信设备。在一些实施方式中,计算资源224可以托管平台220。云资源可以包括在计算资源224中执行的计算实例、在计算资源224中提供的存储设备、由计算资源224提供的数据传输设备等。在一些实施方式中,计算资源224可以通过有线连接、无线连接或有线和无线连接的组合与其它计算资源224通信。

如图2进一步所示,计算资源224包括一组云资源,例如一个或多个应用程序(“APP”)224-1、一个或多个虚拟机(“VM”)224-2、虚拟化存储(“VS”)224-3、一个或多个管理程序(“HYP”)224-4等。

应用程序224-1包括一个或多个软件应用程序,其可以提供给用户设备210和/或平台220或由用户设备210和/或平台220访问。应用程序224-1可以消除在用户设备210上安装和执行软件应用程序的需要。例如,应用程序224-1可以包括与平台220相关的软件和/或能够通过云计算环境222提供的任何其它软件。在一些实施方式中,一个应用程序224-1可以通过虚拟机224-2向/从一个或多个其它应用程序224-1发送/接收信息。

虚拟机224-2包括机器(例如,计算机)的软件实现,该机器执行程序,类似于物理机。虚拟机224-2可以是系统虚拟机,也可以是进程虚拟机,这取决于虚拟机224-2对任何真实机的使用和对应程度。系统虚拟机可以提供完整系统平台,其支持完整操作系统(“OS”)的执行。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机224-2可以代表用户(例如,用户设备210)执行,并且可以管理云计算环境222的基础架构,例如数据管理、同步或长期数据传输。

虚拟化存储224-3包括一个或多个存储系统和/或一个或多个设备,该一个或多个设备在计算资源224的存储系统或设备内使用虚拟化技术。在一些实施方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储从物理存储的抽象(或分离),以便可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员灵活地管理终端用户的存储。文件虚拟化可以消除在文件级别存取的数据与物理存储文件的位置之间的依赖性。这可以优化存储使用、服务器整合和/或无中断文件迁移的性能。

管理程序(Hypervisor)224-4可以提供硬件虚拟化技术,其允许多个操作系统(例如,“客户操作系统”)在诸如计算资源224的主计算机上同时执行。管理程序224-4可以向客户操作系统提供虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。

网络230包括一个或多个有线和/或无线网络。例如,网络230可以包括蜂窝网络(例如,第五代(5G)网络、长期演进(LTE)网络、第三代(3G)网络、码分多址(CDMA)网络等)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网络(PSTN))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等,和/或这些或其它类型的网络的组合。

图2所示的设备和网络的数量和排列被作为示例来提供。实际上,与图2所示的设备和/或网络相比,可以有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或排列不同的设备和/或网络。此外,图2所示的两个或更多个设备可以在单个设备内实现,或者图2所示的单个设备可以实现为多个分布式设备。另外或可替代地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。

图3是设备300的示例组件的示意图。设备300可以对应于用户设备210和/或平台220。如图3所示,设备300可以包括总线310、处理器320、存储器330、存储组件340、输入组件350、输出组件360和通信接口370。

总线310包括允许设备300的组件之间进行通信的组件。处理器320以硬件、固件或硬件和软件的组合来实现。处理器320是中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或另一类型的处理组件。在一些实施方式中,处理器320包括一个或多个能够被编程以执行功能的处理器。存储器330包括随机存取存储器(RAM)、只读存储器(ROM)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器),其存储供处理器320使用的信息和/或指令。

存储组件340存储与设备300的操作和使用相关的信息和/或软件。例如,存储组件340可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、光盘(CD)、数字通用盘(DVD)、软盘、盒式磁带、磁带和/或另一类型的非易失性计算机可读介质,以及相应的驱动器。

输入组件350包括允许设备300例如通过用户输入接收信息的组件,例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风。另外或可替代地,输入组件350可以包括用于感测信息的传感器(例如,全球定位系统(GPS)组件、加速计、陀螺仪和/或致动器)。输出组件360包括提供来自设备300的输出信息的组件,例如,显示器、扬声器和/或一个或多个发光二极管(LED)。

通信接口370包括类似收发器的组件(例如,收发器和/或单独的接收器和发送器),该组件使设备300能够例如通过有线连接、无线连接或有线和无线连接的组合与其它设备通信。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如,通信接口370可以包括以太网接口、光接口、同轴接口、红外接口、射频(RF)接口、通用串行总线(USB)接口、Wi-Fi接口、蜂窝网络接口等。

设备300可以执行本文中所描述的一个或多个过程。设备300可以响应于处理器320执行由非易失性计算机可读介质(例如存储器330和/或存储组件340)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非易失性存储器设备。存储器设备包括单个物理存储设备内的存储空间或分布在多个物理存储设备上的存储空间。

软件指令可以通过通信接口370从另一计算机可读介质或从另一设备读入存储器330和/或存储组件340。当被执行时,存储在存储器330和/或存储组件340中的软件指令可以使处理器320执行本文中所描述的一个或多个过程。另外或可替代地,可以使用硬连线电路来代替软件指令或与软件指令结合以执行本文中所描述的一个或多个过程。因此,本文中所描述的实施方式不限于硬件电路和软件的任何特定组合。

图3所示的组件的数量和排列被作为示例来提供。实际上,与图3所示的组件相比,设备300可能包括更多的组件、更少的组件、不同的组件或排列不同的组件。另外或可替代地,设备300的一组组件(例如,一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一个或多个功能。

图4示出了可以包括三个主要组件的模型架构400的示意图。根据实施例,模型架构400可以对应于本文中所描述的视频字幕模型。

在模型架构400的顶部,可以使用同一Inception-Resnet-v2 CNN的五个副本将原始视频帧转换为高级特征表示。Inception-Resnet-v2的最后一个分类层可以被全连接层代替,该全连接层的输出维数例如是500。模型架构400底部的LSTM可以首先对视频帧的特征表示进行编码,然后对语句进行解码以描述视频中的内容。在模型架构400的左下方,一个分支包括时间平均池化层和属性预测层。模型架构400可以提取多个属性,例如多达400个属性。因此,属性预测层的输出维数可以是400,并且激活函数可以为S形。可以引入该分支以将相关属性分配给输入视频。在实施例中,该分支可以不在视频字幕的测试阶段使用,但是该分支可以在训练阶段生成信息梯度(informative gradients),用于更新除来自LSTM之外的CNN的权重。LSTM的设计,例如隐藏单元的数量、如何计算输入门等,可以从S2VT中借用。

图5是根据实施例的训练视频字幕模型的方法500的流程图,其中视频字幕模型用于对输入视频执行自动视频字幕。在一些实施方式中,图5的一个或多个过程框可以由平台220执行。在一些实施方式中,图5的一个或多个过程框可以由与平台220分离或包括平台220的另一设备或一组设备执行,例如用户设备210。

虽然图5示出了方法500的示例框图,但是在一些实施方式中,与图5所描述的框相比,方法500可以包括更多的框、更少的框、不同的框、或排列不同的框。另外或可替代地,方法500的两个或更多个框可以并行执行。

在实施例中,视频字幕模型可以分三个步骤逐步训练。前两个步骤可用于找到LSTM的良好初始化、以及连接CNN和LSTM的全连接层,这样,最后一个步骤,即整个模型的E2E训练,可以有一个良好的开端。可以将CNN的权重冻结直到第三个步骤。在实施例中,前两个步骤可以对应于例如图5的方法500的操作510和操作520,并且第三个步骤可以对应于图5的操作540。如图5所示,在操作510中,方法500可以包括:至少一个处理器使用交叉熵损失初始化包括在字幕模型中的多个长短期记忆(LSTM)单元。

作为示例,操作510可以包括使用交叉熵损失的基于S2VT的训练方法。在实施例中,在时间步长t的输入帧it可以用深度CNN进行编码并嵌入投影矩阵WI。然后,对于投影特征表示xt,LSTM计算隐藏状态ht和单元状态ct。关于隐藏状态和单元状态的计算细节可以在等式1中示出:

Figure BDA0002416938260000091

其中σ是S形函数,是双曲正切函数,⊙是元素方式乘法(element-wisemultiplication)。除了输入可以是第一LSTM层输出和单词嵌入的组合之外,第二LSTM层可以类似于第一LSTM层。

给定一个描述输入视频的“groundtruth”语句s={w1 ,w2 ,...wT },则交叉熵损失可以被最小化,如等式2所示:

其中θ表示模型参数。

如图5进一步所示,方法500可以包括:在操作520处,至少一个处理器使用强化学习训练LSTM单元。

在实施例中,操作520可以包括LSTM的REINFORCE+训练。在操作510之后,可以将自临界(self-critical)REINFORCE算法引入视频字幕,以便在LSTM的验证和测试集上的泛化性能方面为LSTM寻求更好的权重。交叉熵损失可能在训练和测试阶段曝光不同数据分布下的递归LSTM,因为它会馈送仅在训练中可用的模型标注单词。此外,损失函数可能不能很好地替代评估指标。为了解决这些挑战,可以通过REINFORCE学习直接优化字幕模型。

在强化学习中,可以通过在环境中执行一系列动作来训练代理以完成任务。作为示例,在视频字幕上下文中,字幕模型的目标可以是在观察视频输入时生成适当的语句。字幕模型可以对应于代理,并且动作可以是在每个时间步长预测下一个单词。具有用户注释字幕的输入视频可以对应于环境。对代理的动作的奖励可以被定义为测试阶段使用的实际评估指标。具体地,CIDEr分数可以用作奖励。在实施例中,用于视频字幕的强化学习流程(pipeline)可以操作如下:代理接收关于环境的观察,其包含直到当前步骤的视觉特征和标注单词、以及来自环境的奖励,例如CIDEr分数;然后代理执行动作以预测单词;环境提供另一状态,例如揭示另一个标注单词,以及响应于代理的动作的奖励。

强化学习的目标函数可以在等式3中示出:

Lr(θ)=-E(r(ws)) (等式3)

其中ws是由从网络采样的(w1,w2,...,w)组成的语句,并且r是奖励函数。

为了解决上述问题,可以再次使用REINFORCE算法。参数θ的一般更新可以写为等式4:

Figure BDA0002416938260000101

其中p(ws)基本上由视频字幕模型pθ(ws)确定(参看等式(2))。实际上,期望值是由导致梯度方差的样本均值近似的。为了减小方差,奖励r通常由基线b校准,如等式5所示:

其中,显而易见的是,因为基线b不取决于采样的单词ws,因此梯度保持不变。如何选择基线b会影响REINFORCE算法的性能。我们选择贪婪推理单词(greedily inferredwords)的奖励作为我们的基线。由表示,基线可以是等式5的一个样本近似值可以表示为等式6:

其可以进一步被看作以下的成本函数。

在每次迭代开始时,可以从当前模型中采样多达M个轨迹,例如语句。用s1,···,sM来表示它们,用于生成此次迭代的梯度的成本函数可以表示为等式7:

其中r(sm)是分配给轨迹sm的奖励。下面我们将此算法表示为REINFORCE+或RFC+。

等式7可以作为整个训练过程中的运行损失。它在不同的迭代中发生变化,这是通过采样的轨迹实现的,这与跨不同迭代的交叉熵损失Lx中的恒定标注字幕不同。而且,由基线补偿的奖励动态地衡量轨迹对梯度的贡献。共同地,它们可以将在操作510中训练的模型进一步推到这样的程度:即它可以更好地泛化为不可见数据。

在实施例中,强化学习可以包括:接收输入视频的视觉特征、在前一步骤中由字幕模型提供的至少一个标注单词以及与至少一个标注单词相关联的奖励;提供新的标注单词;接收与新的标注单词相关联的新的奖励;以及基于新的奖励改变多个LSTM的至少一个权重。

如图5进一步所示,方法500可以包括:在操作530处,确定LSTM的训练是否完成。

如图5进一步所示,在操作540处,方法500可以包括:至少一个处理器使用多任务训练对包括在字幕模型中的LSTM单元和多个卷积神经网络(CNN)进行训练。

在实施例中,在LSTM单元的初始化和强化学习期间冻结CNN的权重,并且在多任务训练期间释放CNN的权重。

在实施例中,操作540可以包括共同调整整个模型,释放CNN的权重。作为起点,对于E2E优化而言,重复上述操作(例如操作510和操作520)似乎很自然。然而,根据实验结果,这可能只会增加冻结CNN权重的边际收益。这种精确度的快速饱和对于非常深度神经网络(very deep neural networks)可能是常见的,并且可以通过前馈网络的不同层之间的跳过连接来缓解。然而,LSTM和CNN是异类混合(heterogeneously mixing),因此不清楚如何应用跳过连接。

相反,在实施例中,可以将额外的信息梯度直接提供给CNN,以便补充通过LSTM间接到达CNN的梯度。这种直接梯度由图4所示的属性预测分支提供。

在实施例中,属性预测分支可以根据图像字幕的先前实践来挖掘视频字幕中的属性。在训练集的语句中的单词中,可以提取包括名词、动词和形容词在内的最频繁出现的单词作为属性。因此,属性预测分支可以配备有S形函数,以便预测输入视频中每个属性的存在与否(yi)。该网络分支的二进制交叉熵损失可以由等式8表示:

其中N是属性的总数量,qθ(i)是第i个属性的网络输出。

在实施例中,在操作540中使用的总成本函数可以是属性损失和REINFORCE损失的凸组合(convex combination),如等式9所示:

L(θ)=αLr(θ)+(1-α)La(θ) (等式9)

其中α=0.95是由验证集选择的。

因此,在实施例中,方法500可以进一步包括:所述至少一个处理器接收字幕模型的输出,所述至少一个处理器使用视频字幕模型的属性预测分支挖掘输出的属性,所述至少一个处理器基于所挖掘的属性训练多个CNN,其中,该属性包括输出中包括的名词、动词或形容词中的至少一个。

如图5进一步所示,在操作550处,方法500可以包括:所述至少一个处理器使用字幕模型生成与输入视频对应的视频字幕。

在实施例中,生成视频字幕可以包括:所述至少一个处理器使用多个CNN将输入视频转换为多个特征表示;所述至少一个处理器使用多个LSTM单元对多个特征表示进行编码;以及所述至少一个处理器使用多个LSTM单元对已编码的多个特征表示进行解码,以提供描述输入视频的内容的语句。

本申请实施例还提供了一种训练字幕模型的装置,该字幕模型用于对输入视频执行自动视频字幕,该装置包括:

初始化模块,用于使用交叉熵损失初始化包括在所述字幕模型中的多个长短期记忆(LSTM)单元;

第一训练模块,用于使用强化学习训练所述LSTM单元;

第二训练模块,用于使用多任务训练对包括在所述字幕模型中的所述LSTM单元和多个卷积神经网络(CNN)进行训练;以及

生成模块,用于使用所述字幕模型生成与所述输入视频对应的视频字幕。

在本申请实施例中,在初始化该LSTM单元和使用强化学习训练该LSTM单元期间,冻结该CNN的权重,在多任务训练期间释放该CNN的权重。

在本申请实施例中,该生成模块包括:

转换单元,用于使用该多个CNN将该输入视频转换为多个特征表示;

第一编码单元,用于使用该多个LSTM单元对该多个特征表示进行编码;以及

解码单元,用于使用该多个LSTM单元对已编码的多个特征表示进行解码,以提供描述该输入视频的内容的语句。

在本申请实施例中,该初始化模块包括:

接收单元,用于接收在时间步长t的输入帧it

第二编码单元,用于使用该多个CNN对输入帧it进行编码;

嵌入单元,用于将已编码的输入帧it嵌入投影矩阵Wi

计算单元,用于使用该多个LSTM计算与嵌入的已编码的输入帧it的特征表示xt对应的隐藏状态ht和单元状态ct。

在本申请实施例中,该第一训练模块包括:

第一接收单元,用于接收该输入视频的视觉特征、在前一步骤中由该字幕模型提供的至少一个标注单词以及与该至少一个标注单词相关联的奖励;

提供单元,用于提供新的标注单词;

第二接收单元,用于接收与该新的标注单词相关联的新的奖励;

改变单元,用于基于该新的奖励来改变该多个LSTM的至少一个权重。

在本申请实施例中,用于执行该强化学习的成本函数Lr(θ)表示如下:

其中,p表示字幕模型,θ表示字幕模型的参数,M表示多个轨迹的数量,m表示该多个轨迹的索引,sm表示该多个轨迹的一个轨迹,以及r(sm)表示分配给轨迹sm的奖励。

在本申请实施例中,该装置进一步包括:

接收模块,用于接收该字幕模型的输出;

挖掘模块,用于使用该字幕模型的属性预测分支挖掘所述输出的属性;

第三训练模块,用于基于挖掘的属性训练该多个CNN,

其中,所述属性包括所述输出中包括的名词、动词或形容词中的至少一个。

在本申请实施例中,该属性预测分支中使用的二进制交叉熵损失函数La(θ)表示如下:

其中,θ表示字幕模型的参数,N是所述属性的数量,i表示所述属性的索引,yi指示在该输入视频内存在属性,以及qθ(i)表示针对第i个属性的该字幕模型的输出。

本实施例中所述模块的具体功能及实现可参照上述实施例中的训练字幕模型的方法的具体流程。

本申请实施例还提供了一种计算机设备,所述设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如上所述的训练字幕模型的方法。

本申请实施例还提供了一种非易失性计算机可读存储介质,用于存储指令,当所述指令由计算机设备执行时,使得所述计算机执行如上所述的训练字幕模型的方法。

前述实施例提供了说明和描述,但并不旨在穷举或将实施方式限制为所公开的精确形式。根据上述实施例,可以进行修改和变化,或者可以从实施方式的实践中获得修改和变化。如本文中所使用的术语“组件”旨在被广义地解释为硬件、固件或硬件和软件的组合。

很明显,本文中所述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制实施方式。因此,本文中不参考具体的软件代码而描述了该系统和/或方法的操作和性能——应当理解,可以基于本文中的描述对软件和硬件进行设计以实现该系统和/或方法。即使特征的具体组合在权利要求中叙述和/或在说明书中公开,这些组合也不旨在限制可能的实施方式的公开。实际上,这些特征中的许多特征可以以在权利要求中没有具体叙述和/或在说明书中没有公开的方式组合。虽然下面列出的每个从属权利要求可能直接依赖于仅一个权利要求,但是可能的实施方式的公开包括权利要求集中的每个从属权利要求与每个其它权利要求的组合。

除非明确说明,否则本文中使用的元件、动作或指令不应被解释为关键的或必需的。此外,如本文中所使用的,冠词“一个(a)”和“一个(an)”旨在包括一个或多个项,并且可以与“一个或多个(one or more)”互换使用。此外,如本文中所使用的,术语“集”旨在包括一个或多个项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或多个(one or more)”互换使用。在仅意指一个项的情况下,使用术语“一个(one)”或类似的语言。此外,如本文中所使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在为开放式术语。此外,短语“基于”旨在表示“至少部分地基于”,除非另有明确说明。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种质差的定界方法、装置及设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类