掌桥专利:专业的专利平台
掌桥专利
首页

用于机器学习的同步输入反馈

文献发布时间:2023-06-19 12:07:15


用于机器学习的同步输入反馈

技术领域

本公开涉及产生用于机器学习的数据集。特别地,本公开涉及产生具有同步输入反馈的数据集以用于训练神经网络。

背景技术

软件的质量保证和发行测试通常需要数个人花费许多天来发现漏洞并确保内容符合质量标准。已经提出了机器学习作为减少执行质量保证和发行测试任务所需的工作人员数量和时间的一种方式。在该领域中使用机器学习的当前困难是,对机器进行训练需要工作人员在机器接收测试人员输入的同时重复测试过程很多次。

正是在这种背景下提出本公开的实施方案。

附图说明

通过考虑下面结合附图的具体实施方式可以很容易理解本公开的各方面,在附图中:

图1描绘了根据本公开的各方面的用于同步输入反馈的方法的框图。

图2A示出了根据本公开的各方面的用于将输入反馈与音频输出流同步的方法的框图。

图2B描绘了根据本公开的各方面的用于将输入反馈作为视频输出流中的水印进行同步的方法的框图。

图2C示出了根据本公开的各方面的用于将输入反馈作为视频流中的元数据进行同步的方法的框图。

图3描绘了根据本公开的各方面的用于使用具有编码的输入事件的输出流进行机器学习的方法的框图。

图4示出了根据本公开的各方面的用于将输入反馈与音频输出流同步的方法的图示。

图5A是根据本公开的各方面的在具有同步输入反馈的系统中使用的递归神经网络的简化节点图。

图5B是根据本公开的各方面的在具有同步输入反馈的系统中使用的展开递归神经网络的简化节点图。

图5C是根据本公开的各方面的在具有同步输入反馈的系统中使用的卷积神经网络的简化图。

图5D是根据本公开的各方面的用于在具有同步输入反馈的系统中训练神经网络的方法的框图。

图6描绘了根据本公开的各方面的利用神经网络实现同步输入反馈的系统的框图。

具体实施方式

虽然出于说明目的,以下详细说明包含许多具体细节,但是本领域的普通技术人员将会了解,以下细节的许多变化和更改在本公开的范围内。因此,下面描述的本公开的实施方案的示例在不失一般性并且未对要求保护的本公开施加限制的情况下进行阐述。

尽管阐述了许多具体细节以便提供对本公开的实施方案的透彻理解,但是本领域技术人员将理解,可以在没有这些具体细节的情况下实践其他实施方案。在其他实例中,公知方法、过程、部件和电路没有被详细描述以免模糊本公开。本文描述的一些部分以计算机存储器内的数据位或二进制数字信号的运算的算法和符号表示呈现。这些算法描述和表示可以是数据处理领域技术人员用来将其工作的实质传达给本领域其他技术人员的技术。

如本文所使用的算法是导致期望结果的动作或操作的自洽序列。这些动作或操作包括对物理量进行的物理操纵。通常,尽管并非必要,但这些量采取能够被存储、转移、组合、比较以及以其他方式操控的电信号或磁信号的形式。已经证实,主要出于普遍使用原因,有时可以适宜地将这些信号称为比特、值、元素、符号、字符、项、数字等。

除非明确说明或从以下讨论中显而易见,否则应理解,在整个说明书中,使用诸如“处理”、“计算”、“转换”、“协调”、“确定”或“识别”的术语的讨论是指计算机平台的动作和过程,该计算机平台是一种电子计算装置,其包括处理器,该处理器将在处理器寄存器以及可访问的平台存储器内表示为物理(例如,电子)量的数据操纵并转换为类似地在计算机平台存储器、处理器寄存器或显示屏中表示为物理量的其他数据。

计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘(例如,光盘只读存储器(CD-ROM)、数字视频光盘(DVD)、Blu-Ray Discs

术语“耦接的”和“连接的”以及它们的派生词在本文中可以用于描述用于执行本文中的操作的设备的部件之间的结构关系。应当理解,这些术语并不旨在彼此之间是同义词。而是,在特定实施方案中,“连接的”可以用于指示两个或更多个元件彼此直接物理或电接触。在一些实例中,“连接的”、“连接”及其派生词用于指示逻辑关系,例如在神经网络(NN)中的节点层之间。“耦接的”可用于指示两个或更多个元件彼此直接或间接(利用它们之间的其他居间元件)物理或电接触,和/或两个或更多个元件彼此协作或通信(例如,在因果关系中)。

当前,训练用于视频游戏和其他软件测试的人工代理需要许多工作人员执行并重复测试协议以生成足够数量的训练数据。同步是主要问题,对于当前的方法,必须在测试人员执行其测试协议时使用接收测试人员输入的机器学习算法实时进行所有训练。无法对记录的测试性能进行测试,因为当前机器无法将来自用户的输入与软件环境中发生的特定事件进行同步。因此,本公开的各方面旨在创建一种用于将来自用户的输入事件编码为输出流以使得机器学习将能够使输入与软件环境中发生的特定事件同步的系统和方法。在一些实现方式中,通过将输入和输出时间信息组合成单个输出文件,可以大大简化输入与所得输出的时间的同步。

图1描绘了根据本公开的各方面的用于同步输入反馈的方法。该方法开始于从输入装置接收输入事件101。输入事件可以是按钮按下、操纵杆输入、模拟手柄输入、方向盘输入、电位计输入等。在一些实现方式中,输入事件与软件环境内发生的特定事件同步。在某些情况下,特定事件是输出流中的输出事件或一系列输出事件。例如但不限于在视频游戏中,按键(输入事件)可以被同步为在游戏内的化身进行的动作(特定事件)之前。作为另一示例,在音乐播放器中,电位计的移动(输入事件)可以在振幅增加(特定事件)之前。输入事件与一个或多个特定事件的同步对于测试某些应用程序(诸如视频游戏)和用户界面非常重要,因为发生故障的应用程序可能会显示错误的行为、较长的停留时间或对按键没有响应。然后将输入事件编码为输出流102。输出流可以包括音频流、视频流等。在编码102期间,输入事件与特定事件之间的同步应当保持在输出流内。作为示例而非作为对视频游戏的限制,将在视频流中的化身的动作之前的输入事件在化身的动作发生之前一次放置在视频游戏的音频流中。在此示例中,音频流和视频流是同步的,这在大多数类型的多媒体演示中很常见。然后,输出装置可以利用编码的输入来再现输出流,并传输该输出流,如103处所指示。作为示例而非限制,输出装置可以是扬声器、显示屏或电视屏幕。当由输出装置再现时,在103处再现期间嵌入在输出流中的编码输入对于用户是不可检测的或至少不可感知的,其中用户是具有平均视觉和听觉能力的人。

图2A和图4示出了用于使输入反馈与音频输出流同步的方法。从输入装置接收201输入事件401、402。如上所述,在大多数多媒体演示期间,音频流404和视频流是同步的。这样,可以将在视频输出流或音频输出流中发生的特定事件与在适当时间放置在任一输出流中的编码输入事件同步。在音频流中对输入事件进行编码的好处是音频输出流与视频输出流相比具有相对高的采样率。在编码期间,通过应用高通或低通频率滤波器来去除202音频流的低频率部分406或上频率部分。音频流的低频率部分对应于次声,即20Hz以下的声音振动。音频流的上频率部分对应于超声,即20kHz以上的声音振动。通常,次声和超声对于成年人是不可检测的,或者至少是不可察觉的。可以将输入事件转换为音频音调403,然后通过在频域中相加并将总数除以在每个时间步处加在一起的声音频率总数,将其混合到音频流203、407中,如式1所示。其中f(a)是时间步t处输出流的频率,并且f(b

[(f(a)+f(b

如图4所示,按钮按下401、402的长度可以由音调406的长度来编码。每种类型的按钮按下可被编码为不同的频率音调。具有编码音调的输出音频流可以被分解,例如通过傅立叶变换,并且被分析以确定输入音调的存在。在输出音频流与输出视频流同步的情况下,可以将同步的音频和视频流保存到单个输出文件中,这大大简化了输入事件和特定输出事件之间的时序。在所示的示例中,向下箭头按钮401的按下可以比右箭头按钮按下402更高的频率406编码,并且在按钮按下之间没有音调被编码。在回放过程中,编码到音频数据中的音调对于用户来说是不可检测的,但是为可解码的以供神经网络使用。具体地,根据本公开的各方面,神经网络可以使用从音调解码的信息来确定在玩游戏期间发生的哪些特定事件与和编码的音调相关联的输入事件相关联。

图2B描绘了用于将输入反馈作为视频输出流中的水印进行同步的方法。从输入装置接收输入事件204。输入事件可以与在视频输出流或音频输出流中发生的特定事件同步。然后,在保持同步的同时,将输入事件编码为视频流205中的水印。例如,可以在视频输出流中的移动(例如,视频游戏中的化身的移动)或输出音频流的振幅增加之前,在视频输出流中对按键进行编码。水印可以但不限于位于a通道、屏幕位置或看不见的透明位置。

图2C示出了用于将输入反馈作为视频流中的元数据进行同步的方法。如前所述,从输入装置接收同步输入事件206。然后,将同步输入事件与视频流同步编码到视频流的元数据中。元数据可以是视频流的每个帧的头、补充增强信息等。当在视频输出流中对输入事件进行编码时,在输出流中编码的输入事件的速率被锁定到视频流的帧速率。因此,编码输入的速率可以限制为60到120Hz,这是视频流的典型帧速率。相反,将输入编码到音频流中的限制较少,因为音频流的采样率远高于视频的采样率。

通常,需要大量的训练数据来训练机器学习系统(诸如NN)以测试软件。软件测试的关键组成部分是确保输入事件对应于正确的软件行为,并且不会导致崩溃或不利于用户体验的其他不良事件。如上所述,用于软件测试NN的当前训练方法要求测试人员在NN正在学习的同时执行测试协议。此实时测试数据用作标记的数据集。测试必须实时进行,因为当前没有简便的方法来在软件环境中提供同步输入事件信息,该软件环境未被配置为向NN提供此类信息。此类软件环境包括视频游戏和用户界面。

根据本公开的各方面,输入反馈机制可以通过提供与在系统的音频输出流或视频输出流内发生的特定事件同步的输入事件信息来改善对神经网络(NN)的训练。图3所示的下图描绘了使用具有编码输入事件的输出流来改善NN训练的方法。该方法开始于接收具有在流内编码的同步输入事件的输出流301。接收的输出流被拆分,并且将滤波器应用于拆分的输出流中的一个,以将输入事件与实际输出分离302。在一些实现方式中,可以训练NN以将输入事件与输出流分离。替代地,解码器应用程序可以拉出输入事件,并将它们分别馈送给NN。在一些实现方式中,可以复制输出流,并且将低通滤波器应用于一个复制输出流,而将高通滤波器应用于另一个复制输出流。在另一个实现方式中,可以将输出流的通道拆分,从而将输出流的a通道与其他通道分离。在一些实现方式中,帧元数据可以与视频数据分离。

一旦将编码输入事件与输出流分离,就可以使用编码输入事件表示真实输入事件来训练NN 303。该方法是有利的,因为编码输入事件与特定事件同步。该同步可以在输出流中的事件之间或者在与包括编码输入事件的输出流不同的输出流中的事件之间。例如但不限于,同步可以在音频流中被编码为音调的输入事件与视频流中的用户界面元素的激活之间。在易于访问的介质(诸如输出流)中保持此同步改善了对NN的训练,因为它允许使用记录的数据集进行训练,而无需对主机系统的配置进行重大更改。如本文所使用的,术语“主机系统”是指在其上再现输出流并且训练NN的装置。作为示例而非限制,可以根据以下讨论的方法对NN进行训练以用于软件测试。

实现软件测试的神经网络、深度学习或其他机器学习可以包括几种不同类型的神经网络中的一种或多种,并且可以具有许多不同的层。作为示例而非限制,神经网络可以包括卷积神经网络(CNN)、递归神经网络(RNN)和/或动态神经网络(DNN)中的一者或多者。

图5A描绘了具有节点520的层的RNN的基本形式,节点中的每个节点的特征在于激活函数S、一个输入权重U、递归隐藏节点转移权重W和输出转移权重V。激活函数S可以是本领域中已知的任何非线性函数,并且不限于(双曲正切(tanh)函数。例如,激活函数S可以是S形或ReLu函数。与其他类型的神经网络不同,RNN在整个层具有一组激活函数和权重。如图5B所示,RNN可以被认为是在时间T和T+1中移动的具有相同激活函数的一系列节点520。因此,RNN通过将来自先前时间T的结果馈送到当前时间T+1来维持历史信息。

可以通过多种方式来配置权重U、W、V。例如,可以基于视频像素值、声音样本值、输入事件值等来应用输入权重U。这些不同输入的权重可以存储在查找表中,并根据需要应用。可能存在系统最初应用的默认值。然后,用户可以手动修改这些值,也可以通过机器学习自动修改这些值。

在一些实施方案中,可以使用卷积RNN(CRNN)。可以使用的另一种类型的RNN是长短期记忆(LSTM)神经网络,它在具有输入门激活函数、输出门激活函数和忘记门激活函数的RNN节点中添加存储块,从而形成门控存储器,其允许网络在更长的时间内保留一些信息,如Hochreiter和Schmidhuber的“Long Short-term memory”(神经计算9(8):1735-1780(1997))中所述,其以引用方式并入本文。

图5C描绘了根据本公开的各方面的卷积神经网络诸如CRNN的示例布局。在该描绘中,针对图像532生成了卷积神经网络,所述图像532具有高度为4个单位并且宽度为4个单位的大小从而给出16个单位的总面积。所描绘的卷积神经网络具有高度为2个单位并且宽度为2个单位的大小的滤波器533,其跳跃值为1并且通道536的大小为9。为了清楚起见,在图5C中仅描绘了第一列通道与其滤波窗口之间的连接534。然而,本公开的各方面不限于此类实现方式。根据本公开的各方面,实现软件测试529的卷积神经网络可以具有任意数量的附加神经网络节点层531并且可以包括诸如附加卷积层、全连接层、池化层、最大池化层、局部对比度归一化层等任何大小的此类层类型。

如在图5D中看到的,训练神经网络(NN)始于NN的权重的初始化541。通常,初始权重应随机分配。例如,具有tanh激活函数的NN应该具有分布在

初始化后,定义激活函数和优化程序。然后向NN提供特征或输入数据集542。在一些实现方式中,可以向软件测试NN提供与具有已知标记的输入相对应的特征向量。NN然后预测特征或输入的标签或类别543。将预测的标签或类别与已知的标签或类别(也称为地面实况)进行比较,并且损失函数测量所有训练样本上的预测与地面实况之间的总误差544。作为示例而非作为限制,损失函数可以是交叉熵损失函数、二次代价函数、三重态对比函数、指数代价函数等。可以根据目的使用多个不同的损失函数。然后使用损失函数的结果并使用已知的神经网络训练方法(诸如,具有随机梯度下降的反向传播等)对NN进行优化和训练545。在每个训练时期,优化程序都会尝试选择使训练损失函数(即总误差)最小化的模型参数(即权重)。数据分为训练样本、验证样本和测试样本。

在训练过程中,优化程序最小化训练样本的损失函数。在每个训练时期之后,通过计算验证损失和准确性,在验证样本上评估模式。如果没有显著变化,则训练可能会停止,并且所得的训练模型可用于预测测试数据的标签。

因此,可以根据具有已知标签或类别的音频、视频和编码输入事件流来训练软件测试神经网络,以在给定已知目标标签的情况下通过最小化交叉熵损失来识别和归类异常软件活动。

图6描绘了根据本公开的各方面的用于提供同步输入反馈的系统。该系统可以包括耦接到用户输入装置602的计算装置600。用户输入装置602可以是控制器、触摸屏、麦克风、键盘、鼠标、操纵杆或其他类似装置。

计算装置600可包括一个或多个处理器单元603,所述一个或多个处理器单元可根据熟知的架构(诸如例如,单核、双核、四核、多核、处理器-协处理器、单元处理器等)来配置。计算装置还可包括一个或多个存储器单元604(例如,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)等)。

处理器单元603可以执行一个或多个程序,所述程序的部分可以被存储在存储器604中,并且处理器603操作性地耦接到存储器(例如,经由数据总线605访问存储器)。程序可以被配置为将滤波器608实现为与输出流分离的输入事件。另外,存储器604可以包含实现NN621的训练的程序。存储器604还可包含诸如编码模块610之类的软件模块,其实现将来自用户输入装置602的输入事件编码到输出流中。输出流可以通过执行大容量存储装置615中的程序617来生成,或者可以从网络620接收,并且可以在对输入事件进行编码之前或之后将其保存在存储器604中的缓冲器中。

NN的整体结构和可能性也可以作为数据618存储在大容量存储装置615中。处理器单元603被进一步配置为执行存储在大容量存储装置615或存储器604中的一个或多个程序617,其使处理器执行将来自输入装置602的输入事件编码到输出流610中的方法100。另外,处理器单元604可以被配置为执行用于根据以上讨论的方法300和500训练NN的方法。该系统可以生成神经网络作为NN训练过程的一部分。这些神经网络可以存储在声音分类NN模块621中的存储器604中。完整的NN可以存储在存储器604中或作为数据618存储在大容量存储装置615中。程序617(或其部分)也可以被配置为例如通过适当的编程,将适当的滤波器608应用于输出流以生成编码输入事件和单独的输出流,用编码输入事件训练NN 621并以同步方式将输入事件编码到输出流610中。

计算装置600还可以包括公知的支持电路,诸如输入/输出(I/O)607、电路、电源(P/S)611、时钟(CLK)612和高速缓存613,它们可以例如经由总线605与系统的其他部件进行通信。计算装置可包括网络接口614。处理器单元603和网络接口614可以被配置为实现局域网(LAN)或个人局域网(PAN),经由用于PAN的合适网络协议(例如,蓝牙)。计算装置可任选地包括大容量存储装置615(诸如,磁盘驱动器、CD-ROM驱动器、磁带驱动器、快闪存储器等),并且大容量存储装置可存储程序和/或数据。计算装置还可包括用于促进系统与用户之间的交互的用户界面616。用户界面可以包括监视器、电视屏幕、扬声器、耳机或向用户传达信息的其他装置。

计算装置600可以包括网络接口614以促进经由电子通信网络620的通信。网络接口614可被配置为通过局域网和诸如互联网的广域网实现有线或无线通信。装置600可以通过网络620经由一个或多个消息包发送和接收数据和/或请求。通过网络620发送的消息包可以被临时存储在存储器604中的缓冲器609中。可以通过网络620接收输出流,或者可以从程序617本地生成输出流。

虽然以上为本公开的优选实施方案的完整描述,但是使用各种替代、修改和等效物是可能的。因此,应理解以上描述旨在为说明性的并非限制性的。例如,尽管附图中的流程图示出了由本公开的某些实施方案执行的操作的特定顺序,但是应当理解,这种顺序不是必需的(例如,替代实施方案可以以不同的顺序执行操作、将某些操作组合在一起、重叠某些操作等等)。此外,在阅读和理解以上描述之后,许多其他实施方案对于本领域技术人员将是显而易见的。尽管已经参考特定示例性实施方案描述了本公开,但是将认识到,本公开不限于所描述的实施方案,而是可以在所附权利要求的精神和范围内以修改和变型来实践。因此,本公开的范围应参考所附权利要求以及此类权利要求被授权的等效物的全部范围来确定。本文所述的任何特征(不论是否优选)可与本文所述的任何其他特征(不论是否优选)组合。在随附权利要求书中,

相关技术
  • 用于机器学习的同步输入反馈
  • 应用于大数据推送服务的反馈处理方法及机器学习服务器
技术分类

06120113170664