一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用可穿戴设备进行推理生成的分布式机器学习模型的制作方法

2021-11-20 07:26:00 来源:中国专利 TAG:


1.本公开一般涉及用于基于传感器数据生成推理的机器学习模型。


背景技术:

2.使用可穿戴设备和可能包括具有有限计算资源(例如,处理能力、存储器等)的计算设备的其他设备来检测手势和其他移动可以呈现许多独特的考虑。机器学习模型通常用作基于输入传感器数据的手势检测和移动识别过程的一部分。诸如响应于触摸输入而生成的触摸数据或响应于用户移动而生成的移动数据之类的传感器数据可以被输入到一个或多个机器学习模型。可以训练机器学习模型以根据输入传感器数据生成一个或多个推理。这些推理可以包括手势和/或移动的检测、分类和/或预测。举例来说,机器学习模型可用于确定输入传感器数据是否对应于滑动手势或其他预期的用户输入。
3.传统上,机器学习模型已经部署在边缘设备(包括其中生成传感器数据的客户端设备)上,或者部署在远程计算设备上,例如与边缘设备相比具有更多计算资源的服务器计算机系统。在边缘设备上部署机器学习模型的好处是不需要将原始传感器数据从边缘设备传输到远程计算设备以便处理。然而,边缘设备通常具有有限的计算资源,其可能不足以用于部署复杂的机器学习模型。此外,边缘设备可能具有有限的电源,其可能不足以支持大型处理操作,同时还提供有用的设备。在许多情况下,将机器学习模型部署在具有比边缘计算设备提供的处理能力更多的处理能力的远程计算设备上可以似乎是一个合乎逻辑的解决方案。然而,在远程计算设备上使用机器学习模型可能需要将传感器数据从边缘设备传输到一个或多个远程计算设备。此类配置可能会导致与从边缘设备传输用户数据相关的隐私问题,以及与可传输的原始传感器数据的量相关的带宽考虑。


技术实现要素:

4.本公开实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中获悉,或者可以通过实施例的实践获悉。
5.本公开的一个示例方面涉及一种交互对象,该交互对象包括一个或多个传感器,该一个或多个传感器被配置为响应于交互对象的移动或提供给交互对象的触摸输入中的至少一个来生成传感器数据。交互对象至少包括被通信地耦合到一个或多个传感器的第一计算设备。第一计算设备包括存储多头机器学习模型的第一模型头的一个或多个非暂时性计算机可读介质,该多头机器学习模型被配置为跨包括第一计算设备的多个计算设备分布。多头机器学习模型被配置用于与交互对象相关联的手势检测或移动识别中的至少一个。第一模型头被配置为至少部分地基于传感器数据和一个或多个推理标准选择性地生成至少一个推理。
6.本公开的一个示例方面涉及一种计算机实现的方法,该方法包括由第一计算设备获得指示多头机器学习模型的至少一部分的数据,该多头机器学习模型被配置为跨包括第一计算设备和第二计算设备的多个计算设备分布。多头机器学习模型被配置用于与交互对
象相关联的手势检测或移动识别中的至少一个。该方法包括由第一计算设备将输入数据输入到多头机器学习模型中。该方法包括由第一计算设备使用多头机器学习模型的第一模型头基于输入数据生成一个或多个特征表示。该方法包括至少部分地基于输入数据和一个或多个推理标准选择性地生成至少一个推理。
7.本公开的一个示例方面涉及一种交互对象,其包括基板和被物理地耦合到基板的一个或多个电子模块。一个或多个电子模块包括第一计算设备和传感器。第一计算设备包括存储多头机器学习模型的第一模型头的一个或多个非暂时性计算机可读介质,该多头机器学习模型被配置为跨包括第一计算设备的多个计算设备分布。多头机器学习模型被配置用于与交互对象相关联的手势检测或移动识别中的至少一个。第一模型头被配置为接收与传感器相关联的传感器数据,基于传感器数据生成一个或多个特征表示,并基于特征表示和一个或多个机器学习的推理标准确定是由第一计算设备还是多个计算设备中的另一个计算设备生成一个或多个推理。
8.本公开的其他示例方面涉及系统、装置、计算机程序产品(例如有形的、非暂时性计算机可读介质,但也例如可通过通信网络下载而不必以非临时形式存储的软件)、用户界面、存储器设备和用于与触摸传感器通信的电子设备,触摸传感器包括一组与绣花线图案共形的导电线。
9.参考以下描述和所附权利要求,将更好地理解各种实施例的这些和其他特征、方面和优点。包含在本说明书中并构成其一部分的附图示出了本公开的实施例,并且与说明书一起用于解释相关原理。
附图说明
10.在说明书中阐述了参考附图的、针对本领域普通技术人员的实施例的详细讨论,在附图中:
11.图1描绘了其中可以实现根据本公开的示例实施例的分布式机器学习模型的示例计算环境的框图。
12.图2描绘了根据本公开的示例实施例的包括交互对象的示例计算环境的框图。
13.图3描绘了根据本公开的示例实施例的电容式触摸传感器的示例。
14.图4示出了根据本公开的示例实施例的导电线的示例。
15.图5描绘了根据本公开的示例实施例的包括多头机器学习模型的计算环境的示例,该多头机器学习模型具有分布在多个计算设备处的多个辅助头和至少一个主要头。
16.图6描绘了根据本公开的示例实施例的多头机器学习模型的辅助头的示例。
17.图7描绘了描述根据本公开的示例实施例的由多头机器学习模型的辅助头选择性地生成推理数据的示例方法的流程图。
18.图8描绘了包括通过子梯度的反向传播训练多头机器学习模型的多头机器学习模型的框图。
19.图9描绘了描述根据本公开的示例实施例的训练多头机器学习模型的示例方法的流程图。
20.图10描绘了根据本公开的示例实施例的用于训练和部署多头机器学习模型的示例计算系统的框图。
21.图11描绘了可用于实现根据本公开的示例实施例的示例计算设备的框图。
22.图12描绘了可用于实现根据本公开的示例实施例的示例计算设备的框图。
具体实施方式
23.现在将详细参考实施例,在附图中示出了实施例的一个或多个示例。各示例通过实施例的解释,并非对本发明的限制而被提供。事实上,对于本领域技术人员来说显而易见的是,在不脱离本公开的范围或精神的情况下,可以对实施例进行各种修改和变化。例如,作为一个实施例的一部分示出或描述的特征可以用于另一实施例以产生又一实施例。因此,本公开的方面旨在涵盖此类修改和变化。
24.一般而言,本公开涉及机器学习模型,例如神经网络、非线性模型和/或线性模型,其例如分布在多个计算设备上以基于在交互对象处生成的传感器数据检测用户移动。更具体地,多头机器学习模型被配备(provision)在多个计算设备处并且被配置为基于在交互对象处获得的传感器数据生成一个或多个推理。多头机器学习模型可以包括多个模型头。每个模型头可以被配备在多个计算设备中的至少一个之处或之上。模型头中的至少一个可以被配置为至少部分地基于由机器学习模型提供的推理标准来选择性地生成推理。例如,至少一个模型头可以被配置为基于推理标准将推理数据或特征表示数据传输到多个计算设备中的另一个计算设备处的附加模型头。
25.根据一些实现方式,可以训练多头机器学习模型以在机器学习模型的最佳头处生成推理。以此方式,可以潜在地减少计算设备和/或其他资源利用之间传输的数据量。例如,如果生成了足够数量的特征数据,则可以训练多头机器学习模型以在多头机器学习模型的任何早期阶段生成推理,而无需将特征数据传递给在另一个计算设备上的额外的模型头。这可以与传统的机器学习模型形成对比,传统的机器学习模型包括其中生成推理的单个输出位置,而不考虑对生成此类推理的位置进行优化。
26.根据一些示例实施例,可以训练机器学习的模型头以至少部分地基于传感器数据和一个或多个推理标准选择性地生成至少一个推理。例如,机器学习模型可以确定一组特征表示是否包括用于生成推理的阈值数据量。如果一组特征表示包括阈值数据量,则机器学习模型可以生成推理,或者如果一组特征表示不包括阈值数据量,则可以传输指示一组特征表示的数据。可以使用其他类型的推理标准,例如已生成的特征表示的质量的度量。可以通过端到端地训练多头机器学习模型来学习一个或多个推理标准,例如阈值量和/或数据质量。在一些示例中,多头机器学习模型可以学习可变阈值。
27.根据一些实现方式,多头机器学习模型的至少一个模型头可以被配置为至少部分地基于从传感器接收的输入数据和/或多头机器学习模型的一个或多个其他模型头生成一组特征表示。至少一个模型头可以基于一组特征表示来确定是否应该在本地生成推理。例如,至少一个模型头可以利用一个或多个推理标准来确定它是否应该在本地生成推理,或者是否应该将表示一组特征表示的数据传输到其中配备有多头机器学习模型的一个或多个其他计算设备。如果一组特征表示满足一个或多个推理标准,则可以在本地生成推理。如果该组特征表示未能满足一个或多个推理标准,则可以将指示该组特征表示的数据传输到在其他计算设备处配备的多头机器学习模型的一个或多个附加模型头。
28.在一些示例中,特定计算设备处的多头机器学习模型的部分可以生成特征的少于
所有的数据和/或由模型确定的少于所有特征的数据。如果特征数据足以生成推理,则多头模型可以在模型的较早阶段生成推理。例如,用于图像分类的多头模型的一部分可以跨设备分布。第一模型头可能能够通过计算比纯色图像的所有特征数据少的特征数据来确定图像中不存在面部。在这样的示例中,第一模型头可以在不向另一个模型头传输特征数据的情况下生成没有面部检测的推理。然而,如果图像是更复杂的场景,则第一模型头可以生成每个特征的百分比或特征的子集,然后将基于这些特征的数据传输到另一个模型头以进行额外处理。
29.根据一些实现方式,至少一个模型头可以生成一组压缩特征表示,该组压缩特征表示被传输到存储模型的后期阶段的另一个计算设备。例如,多头机器学习模型可以在计算设备之间传输之前使用压缩参数来压缩特征表示。例如,在模型头确定不应基于一组特征表示在本地生成推理的情况下,它可以使用一个或多个压缩参数来压缩特征表示。可以生成一组压缩特征表示并将其传输到另一个计算设备。
30.可以针对多头机器学习模型的模型头中的各个头来学习不同的压缩参数。例如,可以训练被配置为在第一计算设备处配备的第一模型头以学习一个或多个压缩参数以生成被传输到第二计算设备的一组压缩特征表示。可以针对第一计算设备和/或第二计算设备优化一个或多个压缩参数。在一些示例中,例如通过基于计算设备之间的可用带宽进行优化,将一个或多个压缩参数进行优化以用于计算设备之间的转换。类似地,可以训练其他模型头,例如在第二计算设备处配备的第二模型头,以学习第二组压缩参数。可以针对第二计算设备和/或诸如存储模型的一个或多个模型头的第三计算设备之类的另一计算设备优化第二组压缩参数。
31.根据一些实现方式,多头机器学习模型可以分布在包括在交互对象处的一个或多个计算设备的多个计算设备上。例如,多头机器学习模型可以被配置为检测一个或多个手势或对与交互对象相关联的一个或多个用户移动进行分类。多个计算设备可以另外包括在本地计算设备(例如智能电话、台式机、平板计算机等)处的一个或多个计算设备。附加地或替代地,多个计算设备可以包括一个或多个远程计算设备,例如云计算系统的一个或多个计算设备。
32.可以在交互对象的第一计算设备处配备多头机器学习模型的第一辅助头。第一辅助头可以被配置为从交互对象的一个或多个传感器(例如电容式触摸传感器和/或惯性测量单元)接收传感器数据。第一辅助头可以基于传感器数据生成一个或多个特征表示。第一辅助头可以确定一个或多个特征表示是否足以在第一计算设备处生成推理。
33.第一辅助头可以利用一个或多个推理标准来确定是否在第一计算设备处生成推理。举例来说,第一辅助头可以确定一个或多个特征表示是否包括阈值数据量。在一些示例中,多头机器学习模型被训练以确定第一辅助头的阈值数据量。在另一示例中,第一辅助头可以确定一个或多个特征表示是否满足一个或多个阈值质量标准。如果第一辅助头确定应该在第一计算设备处生成推理,则第一辅助头可以生成推理。第一计算设备可以利用在第一计算设备处生成的推理,以例如基于检测到手势或用户移动在第一计算设备处发起动作。附加地或替代地,第一计算设备可以将指示推理的数据传输到附加计算设备。
34.如果第一模型头确定不应在第一计算设备处生成推理,则第一辅助头可以压缩一组特征表示。在一些示例中,可以利用一个或多个压缩参数来将一组特征表示压缩成一组
压缩特征表示。在一些实施例中,可以通过训练多头机器学习模型来学习一个或多个压缩参数。在一些示例中,一个或多个压缩参数至少部分地基于一组压缩特征表示将被传送到的第一计算设备或第二计算设备。一个或多个压缩参数可以附加地或替代地基于第一计算设备和第二计算设备之间的转换。例如,一个或多个压缩参数可以基于计算设备之间的带宽和/或计算设备之间的距离。第一模型头可以将一组压缩特征表示从第一计算设备传输到第二计算设备。第二计算设备可以存储模型的一个或多个后期阶段,例如模型的第二辅助头。可以在第二计算设备处配备多头机器学习模型的第二辅助头。
35.在一些示例中,第二计算设备可以是交互对象的附加计算设备。例如,交互对象可以包括包含第二计算设备的可移除电子模块。在其他示例中,第二计算设备可以是本地计算设备,例如智能电话、台式机等,或可以是远程计算设备,例如云计算系统的计算设备。响应于从第一计算设备接收到指示一组压缩特征表示的数据,第二模型头可以计算第二组特征表示。在一些示例中,第二组特征表示可以包括第一组压缩特征表示。
36.类似于第一模型头,第二模型头可以确定是否应该在第二计算设备处生成推理,或者是否应该将指示第二组特征表示的数据传输到存储模型的另一个模型头的另一个计算设备。可以训练第二模型头以确定是否基于第二组推理标准生成推理。例如,第二模型头可以利用第二阈值数据量来确定第二组特征表示是否足以生成推理。
37.如果第二模型头确定不应在第二计算设备处生成推理,则第二辅助头可以压缩第二组特征表示。第二模型头可以使用一个或多个第二压缩参数来生成第二组压缩特征表示。一个或多个第二压缩参数可以不同于第一模型头使用的一个或多个第一压缩参数。可以通过使用第二模型头的训练参数训练多头机器学习模型来学习第二压缩参数。在一些示例中,训练参数与存储模型的一个或多个模型头的第二计算设备或第三计算设备中的一个或多个相关联。在一些示例中,一个或多个压缩参数至少部分地基于与第二组压缩特征表示将被发送到的第二计算设备或第三计算设备相关联的计算参数。第二模型头可以将第二组压缩特征表示从第二计算设备传输到第三计算设备。可以在第三计算设备处配备多头机器学习模型的第三头。
38.第三计算设备可以是远程计算设备,例如云计算系统。在一些示例中,第三模型头可以是多头机器学习模型的主要模型头。响应于从第二计算设备接收到第二组压缩特征表示,第三模型头可以计算第三组特征表示。在一些示例中,第三组特征表示可以包括第一组压缩特征表示和/或第二组压缩特征表示。可以训练主要模型头以基于接收到的一组特征表示生成推理。注意,仅通过示例的方式描述了三个计算设备。例如,可以在其中交互对象包括内部电子模块内的第一计算设备并且第二计算设备是可移除电子模块的一部分的实现方式中利用四个计算设备。第三本地计算设备可以包括第三模型头并且第四远程计算设备(例如,云计算系统的)可以包括第四模型头。设想了许多其他示例,其中,多头机器学习模型可以具有分布在不同位置的模型的部分。
39.根据示例实施例,可以在远离多个计算设备中的至少一个的端到端框架中训练多头机器学习模型,该模型被配置为被配备在该多个计算设备中。例如,可以在训练计算系统时训练模型,该训练计算系统与要配备多头机器学习模型的多个计算设备物理分离。训练计算系统可以包括一个或多个计算设备,例如一个或多个配置为云计算环境的服务器。在一些示例中,一个或多个模型头可以在被配备在计算设备处(例如本地计算设备)或对象的
电子模块处时被附加地或替代地训练。例如,可以基于响应于特定用户和/或特定设备而生成的传感器数据来改进模型头。
40.多头机器学习模型的多个模型头可以在训练计算系统时联合训练,例如通过反向传播来学习单个模型头的一个或多个压缩参数和/或与多个模型头相关联的一个或多个推理标准。通过端到端地训练模型,训练计算系统可以联合优化整个模型以生成推理(例如,手势或移动分类、检测、预测等)。更具体地,可以训练多头机器学习模型以在跨多个计算设备配备的模型内的最佳位置动态生成推理。此外,可以训练模型以确定一个或多个压缩参数,这些参数用于生成一组压缩特征表示以在计算设备之间传输。
41.根据一些实现方式,训练计算系统可以使用模拟多头机器学习模型将在其处配备的多个计算设备的技术端到端地训练多头机器学习模型。附加地或替代地,训练计算系统可以模拟多个计算设备之间的转换。训练计算系统可以获得描述多头机器学习模型的数据,该模型被配置为分布在多个计算设备上。多个计算设备可以至少包括第一计算设备和第二计算设备。多头机器学习模型可以包括被配置用于在第一计算设备处配备的第一模型头,并且可以包括被配置用于在第二计算设备处配备的第二模型头。
42.训练计算系统可以获得与多头机器学习模型的各个模型头相关联的训练约束。单独的模型头被配置为在单独的计算设备处配备。附加地或替代地,训练系统可以获得与分布模型的计算设备之间的转换相关联的训练约束。举例来说,第一组训练约束可以与要在第一计算设备处配备的第一模型头相关联。第一组训练约束可以基于与第一计算设备相关联的计算参数。在一些示例中,第一组训练约束可以另外与第二计算设备或实现模型的一部分的另一计算设备相关联。第二组训练约束可以与要在第二计算设备处配备的第二模型头相关联。第二组训练约束可以基于与第二计算设备相关联的计算参数。在一些示例中,第二组训练约束可以另外与存储模型的一部分的后续计算点处的第三计算设备相关联。以这种方式,训练约束可以模拟单独的计算点和/或计算点内的转换,在这些计算点处将分布多头机器学习模型。
43.模型训练计算系统可以基于一组训练数据和训练约束来训练多头机器学习模型。训练计算系统可以通过基于训练约束和一组训练数据确定损失函数的一个或多个参数来训练多头机器学习模型。模型训练计算系统可以至少部分地基于损失函数的一个或多个参数来修改多头机器学习模型的至少一部分。例如,可以基于损失函数的子梯度的反向传播来修改多头机器学习模型的一个或多个模型头。在一些示例中,可以为多头机器学习模型的各个模型头计算子梯度。在其他示例中,可以基于模型的最终输出计算单个子梯度,并且单个子梯度可以用于训练多个模型头。
44.根据一些示例实施例,多头机器学习模型的一个或多个辅助头可以包括一个或多个特征生成层。在一些示例中,一个或多个特征生成层可以被实现为神经网络的一个或多个层。特征生成层可以被配置为接收:输入数据,例如来自一个或多个传感器的传感器数据;和/或先前计算的特征数据,例如指示由多头机器学习模型的先前模型头生成的一组压缩特征表示的数据。输入数据可以输入到一个或多个特征生成层,该层可以生成一组一个或多个特征表示作为输出。在一些示例中,特征表示包括特征投影。可以将一个或多个特征表示提供给多头机器学习模型的辅助头的一个或多个门层。
45.在一些示例中,一个或多个门层可以被实现为神经网络的一个或多个层。门层可
以分析一组特征表示以确定是否应该由辅助模型头生成推理,或者是否应该将指示特征表示的数据传输到多头机器学习模型的附加部分。例如,门层可以使用通过训练多头机器学习模型学习的一组推理标准来分析一组特征表示。在一些示例中,推理标准可以包括指示在多头机器学习模型的特定头处生成推理之前应该存在的特征表示数据量的阈值。在其他示例中,推理标准可以包括指示与要被呈现以用于生成推理的特征表示相关联的类型或其他属性的数据。门层可以将一组特征表示与推理标准进行比较,以确定是否应该由辅助头生成推理。如果门层确定应该由辅助头本地生成推理,则可以将一组特征表示提供给一个或多个推理生成层。如果门层确定不应在本地生成推理,则可以将特征表示提供给一个或多个压缩层。
46.在一些示例中,一个或多个推理生成层可以被实现为神经网络的一个或多个层。一个或多个推理生成层可以基于一组特征表示生成一个或多个推理。举例来说,在一些示例中,一个或多个推理生成层可以生成与手势检测、手势分类和/或移动识别相关联的推理。
47.在一些示例中,一个或多个压缩层可以被实现为神经网络的一个或多个层。一个或多个压缩层可以基于由特征生成层生成的一组特征表示来生成一组压缩特征表示。在一些示例中,压缩层可以利用一个或多个压缩参数来生成一组压缩特征表示。可以通过训练多头机器学习模型来学习一个或多个压缩参数。在一些示例中,在第一计算设备处使用的压缩参数可以基于配备了多头机器学习模型的多个计算设备中的一个或多个附加计算设备。以这种方式,可以为下一个存储模型的一部分的计算设备生成或优化该组压缩特征表示。可以压缩一组特征表示,同时避免过度压缩,否则过度压缩可能会导致在多头机器学习模型的后续模型头处的特征生成和/或推理生成困难。在一些示例中,特征生成层、门层、压缩层和/或推理生成层可以在神经网络的一个或多个层的单个组内实现。
48.作为特定示例,根据一些示例实施例的交互对象可以包括电容式触摸传感器,该电容式触摸传感器包括诸如导电线的一条或多条导线。可以使用连接到一条或多条导线的感测电路由一条或多条导线检测到电容式触摸传感器的触摸输入。感测电路可以基于触摸输入生成传感器数据。可通过如本文所述的多头机器学习模型分析传感器数据以基于触摸输入检测一个或多个手势。例如,传感器数据可以提供给由交互对象的第一计算设备实现的多头机器学习模型的第一辅助头。第一模型头可以在本地生成一个或多个推理,或者将一组特征表示(例如,压缩特征表示)传输到经过训练的多头机器学习模型的另一个模型头。
49.作为另一个示例,交互对象可以包括惯性测量单元,该惯性测量单元被配置为生成指示加速度、速度和其他移动的传感器数据。可以通过如本文所述的多头机器学习模型分析传感器数据以检测或识别移动,例如跑步、步行、坐下、跳跃或其他移动。在一些示例中,可移除电子模块可以在鞋或其他服装、服装配件或服装容器内实现。传感器数据可以被提供给由在交互对象处的可移除电子模块的计算设备实现的多头机器学习模型的第一辅助头。第一模型头可以基于经过训练的多头机器学习模型生成一个或多个推理或一组压缩特征表示。
50.在一些示例中,可以在配备了多头机器学习模型的一个或多个计算设备处实现手势管理器和/或移动识别管理器。在一些示例中,手势管理器可以包括多头机器学习模型的
一个或多个部分。在一些示例中,手势管理器可以包括在配备了多头机器学习模型的多个计算设备处的多头机器学习模型的部分。手势管理器可以被配置为响应于检测到手势或识别用户移动来发起一个或多个动作。例如,手势管理器可以被配置为向计算设备处的其他应用提供指示检测到的手势或用户移动的数据。举例来说,可以在本地或远程计算设备处实现的健康监测应用或游戏中使用检测到的用户移动。任何数量的应用都可以利用检测到的手势来执行应用内的功能。
51.作为特定示例,多头机器学习模型可以被配置为检测用户移动,例如跑步。在这样的示例中,惯性测量单元可以生成提供给多头机器学习模型的第一辅助头的传感器数据。第一辅助头可以在电子模块处实现,该电子模块被配置为在诸如衣服之类的交互对象之处或之内实现。在许多情况下,出于重量、形状因数、避热、用户方便的原因或其他原因,希望与第一辅助头相关联的电子模块是相对低功率、长电池寿命的设备,并且因此,与其他更高功率的设备相比,它具有有限规模的处理能力。第一模型头可以基于传感器数据生成第一组特征表示。第一模型头可以确定第一组特征表示是否足以生成关于用户是否正在跑步的推理。例如,可以训练第一模型头以基于传感器数据生成第一组特征表示。如果第一组特征表示指示用户行走,则第一模型头可以确定用户没有跑步,因此应该在本地生成推理。然后,第一模型头可以生成用户没有跑步的推理并在本地使用它,或者将其传输到一个或多个其他计算设备。
52.如果第一组特征表示不足以确定用户是在走路还是跑步,则第一模型头可以被配置为生成一组压缩特征表示,该组压缩特征表示被传输到多头机器学习模型的第二模型头。取决于特定期望的实现方式,第二模型头可以是第二辅助头或者可以是主要头。对于第二模型头为第二辅助头的情况,例如可以在智能电话上实现。对于用户而言,这种智能电话通常具有比第一模型头实质上高得多的规模的处理能力。以这种方式,可以基于关于在何处以及由哪个计算设备执行推理生成的智能推断来节省计算资源和带宽。如果可能,并且系统确定本地计算资源适合生成推理,则模型头可以在本地生成推理,而无需传输指示特征表示的数据。然而,如果本地生成的特征表示不够,则模型头可以被配置为将一组压缩特征表示传输到另一个计算设备。此外,可以训练第一模型头以基于与第一计算设备和/或配备了多头机器学习模型的附加计算设备相关联的一个或多个学习的压缩参数来压缩第一组特征表示。
53.根据所公开的技术的系统和方法提供了多个技术效果和益处。作为一个示例,本文描述的系统和方法可以使分布式计算系统能够基于传感器数据最佳地选择计算系统在哪里生成与机器学习模型相关联的推理。这样的系统和方法可以允许使用最少的计算资源,这可以导致相对于在预定位置静态生成推理的系统更快和更有效的执行。例如,在一些实现方式中,本文描述的系统和方法可以由包括分布多头机器学习模型的多个计算设备的计算系统快速有效地执行。由于多头机器学习模型可以在计算系统的最佳位置动态生成推理,因此由于减少了计算需求,可以更快速有效地执行推理生成过程。
54.作为另一个示例,这里描述的系统和方法可以使分布式计算系统能够优化用于在计算设备之间传输特征数据的特征压缩。更具体地说,可以训练机器学习模型来学习计算系统内各种转换的最佳压缩,例如不同计算设备之间的转换。可以基于与计算系统中的多个计算设备相关联的计算参数联合执行优化。更具体地,优化可以基于与模型头的位置相
关联的计算参数,或者与模型头将在其处传输特征表示的计算设备相关联的计算参数。通过优化特征表示的压缩,可以利用最少的计算资源。
55.这样,本公开的方面可以改进手势检测、移动识别和其他机器学习过程,这些过程使用在相对轻量的计算设备处收集的传感器数据执行,例如包括在交互对象中的那些传感器数据。以这种方式,这里描述的系统和方法可以提供跨多个计算设备的机器学习模型的更有效操作,以便有效地执行分类和其他过程。例如,可以针对客户端计算设备处可用的最小计算资源优化第一模型头,而可以针对另一计算设备处可用的更大量计算资源优化另一个模型头。通过优化每个模型头,推理生成的位置被优化。此外,可以最小化带宽使用和其他计算资源。
56.在一些实现方式中,为了获得本文描述的技术的益处,可能要求用户允许收集和分析与用户或她的设备相关联的位置信息。例如,在一些实现方式中,可以向用户提供控制程序或特征是否收集此类信息的机会。如果用户不允许收集和使用此类信号,则用户可能无法获得这里描述的技术的好处。还可以向用户提供撤销或修改同意的工具。此外,某些信息或数据可以在存储或使用之前以一种或多种方式进行处理,从而删除个人身份信息。例如,计算系统可以获得可以指示位置的实时位置数据,而无需识别任何特定用户或特定用户计算设备。
57.现在参考附图,将更详细地讨论本公开的示例方面。
58.图1是根据本公开的示例实施例的包括与多头机器学习模型相关联的交互对象的示例环境100的图示。环境100包括各种交互对象104,其可以包括电容式触摸传感器102或其他输入设备。电容式触摸传感器102可以被集成为被配置为感测触摸输入(例如,多触摸输入)的交互式纺织品或其他柔性交互式材料。如本文所述,纺织品可包括由天然或人造纤维(通常称为线或纱线)网络组成的任何类型的柔性编织材料。纺织品可以通过编织、针织、钩编、打结、将线压在一起或以非织造方式将纤维或长丝固结在一起而形成。
59.在环境100中,交互对象104包括“柔性”对象,例如衬衫104

1、帽子104

2、手提包104

3和鞋104

6。然而,要注意的是,电容式触摸传感器102可以集成在由织物或类似的柔性材料制成的任何类型的柔性对象内,例如服装或服装制品、服装配件、服装容器、毯子、浴帘、毛巾、单子、床单或家具的织物外壳,仅举几例。服装配件的示例可以包括戴在头部、手腕或二头肌周围的吸汗松紧带。在各种手腕、手臂、肩部、膝盖、腿部和臀部支架或压缩袖中可以找到服装配件的其他示例。头饰是服装配件的另一个示例,例如遮阳板、帽子和保暖头套。服装容器的示例可以包括腰包或臀包、背包、手提包、挎包、挂衣袋和手提袋。服装容器可以由用户穿戴或携带,如在背包的情况下,或者可以保持其自身的重量,如在滚动行李中。电容式触摸传感器102可以以各种不同的方式(包括编织、缝纫和胶粘等)集成在柔性对象104内。
60.在该示例中,对象104还包括“硬”对象,例如塑料杯104

4和硬智能电话外壳104

5。然而,应注意,硬对象104可包括由非柔性或半柔性材料制成的任何类型的“硬”或“刚性”对象,例如塑料、金属和铝等。例如,硬对象104还可包括塑料椅子、水瓶、塑料球或汽车零件,仅举几例。在另一个示例中,硬对象104还可以包括服装配件,例如胸甲、头盔、护目镜、护胫和护肘。或者,硬的或半柔性的服装配件可由鞋、防滑钉、靴子或凉鞋体现。电容式触摸传感器102可以使用多种不同的制造工艺集成在硬对象104内。在一种或多种实现方式中,
注射成型用于将电容式触摸传感器集成到硬对象104中。
61.电容式触摸传感器102使用户能够控制与电容式触摸传感器102集成的对象104,或者经由网络108控制各种其他计算设备106。计算设备106被利用以下各种非限制性示例设备图示:服务器106

1、智能电话106

2、笔记本计算机106

3、计算眼镜106

4、电视106

5、相机106

6、平板计算机106

7、台式机106

8和智能手表106

9,但也可以使用其他设备,例如家庭自动化和控制系统、音响或娱乐系统、家用电器、安全系统、上网本和电子阅读器。请注意,计算设备106可以是可穿戴的(例如,计算眼镜和智能手表)、不可穿戴但可移动的(例如,膝上型计算机和平板计算机)或相对固定的(例如,台式机和服务器)。计算设备106可以是本地计算设备,例如可以通过蓝牙连接、近场通信连接或其他本地网络连接访问的计算设备。计算设备106可以是远程计算设备,例如云计算系统的计算设备。
62.网络108包括多种类型的无线或部分无线通信网络中的一种或多种,例如局域网(lan)、无线局域网(wlan)、个域网(pan)、广域网(wan)、内联网、互联网、对等网络、点对点网络和网状网络等。
63.电容式触摸传感器102可以通过经由网络108传输触摸数据或其他传感器数据来与计算设备106交互。附加地或替代地,电容式触摸传感器102可以传输手势数据、移动数据或从由电容式触摸传感器102生成的传感器数据导出的其他数据。计算设备106可以使用触摸数据来控制计算设备106或计算设备106处的应用。例如,考虑集成在衬衫104

1处的电容式触摸传感器102可以被配置为控制用户口袋中的用户的智能电话106

2、用户家中的电视106

5、用户手腕上的智能手表106

9或用户家中的各种其他设备,例如恒温器、灯和音乐等等。例如,用户可能能够在集成在用户衬衫104

1内的电容式触摸传感器102上向上或向下滑动以导致电视106

5上的音量升高或降低,导致由用户家中的恒温器控制的温度增加或减少,或打开和关闭用户家中的灯。注意,电容式触摸传感器102可以识别任何类型的触摸、轻敲、轻扫、保持或敲击手势。
64.更详细地,考虑图2,图2示出了示例系统200,其包括交互对象104、可移除电子模块150、本地计算设备170和远程计算设备180。在系统200中,电容式触摸传感器102集成在对象104中,该对象可以被实现为柔性对象(例如,衬衫104

1、帽子104

2或手提包104

3)或硬对象(例如,塑料杯104

4或智能电话外壳104

5)。
65.电容式触摸传感器102被配置为当用户的手的一个或多个手指触摸电容式触摸传感器102时感测来自用户的触摸输入。电容式触摸传感器102可以被配置为感测来自用户的单触摸、多触摸和/或全手触摸输入。为了能够检测触摸输入,电容式触摸传感器102包括导线110,其可以形成为网格、阵列或平行图案以检测触摸输入。在一些实现方式中,导线110不改变电容式触摸传感器102的柔性,这使得电容式触摸传感器102能够容易地集成在交互对象104内。
66.交互对象104包括嵌入交互对象104内并直接耦合到导线110的内部电子模块124。内部电子模块124可以经由通信接口162被通信地耦合到可移除电子模块150。内部电子模块124包含用于交互对象104的电子电路或组件的第一子集,并且可移除电子模块150包含用于交互对象104的电子电路或组件的第二不同子集。如本文所述,内部电子模块124可以物理地和永久地嵌入交互对象104中,而可移除电子模块150可以可移除地耦合到交互对象104。
67.在环境190中,包含在内部电子模块124内的电子组件包括感测电路126,其耦合到形成电容式触摸传感器102的导线110。在一些示例中,内部电子模块包括柔性印刷电路板(pcb)。印刷电路板可以包括用于附接到导电线的一组接触垫。在一些示例中,印刷电路板包括微处理器。例如,来自导电线的线路可以使用柔性pcb、起绉、用导电胶粘合和焊接等连接到感测电路126。在一个实施例中,感测电路126可以被配置为检测被预编程以指示特定请求的导电线上的用户输入的触摸输入。在一个实施例中,当导电线形成网格或其他图案时,感测电路126可以被配置为还检测导线110上的触摸输入的位置以及触摸输入的移动。例如,当诸如用户的手指之类的对象接触导线108时,可以由感测电路126通过检测导线110的网格或阵列上的电容变化来确定触摸的位置。然后,可以使用触摸输入来生成可用于控制计算设备106的触摸数据。例如,触摸输入可以用于确定各种手势,例如单指触摸(例如,触摸、轻敲和保持)、多指触摸(例如,两指触摸、两指轻敲、两指按住和捏合)、单指和多指滑动(例如,向上滑动、向下滑动、向左滑动、向右滑动)和全手交互(例如,用用户的整个手触摸纺织品、用用户的整个手覆盖纺织品、用用户的整个手按压纺织品、手掌触摸以及在触摸纺织品的同时滚动、扭曲或旋转用户的手)。
68.通信接口162使得能够在内部电子模块124和可移除电子模块150之间传送电力和数据(例如,感测电路126检测到的触摸输入)。在一些实现方式中,通信接口162可以被实现为一种包括连接器插头和连接器插座的连接器。连接器插头可以在可移除电子模块150处实现并且被配置为连接到连接器插座,其可以在交互对象104处实现。
69.在系统200中,可移除电子模块150包括微处理器152、电源154、网络接口156和惯性测量单元158。电源154可以经由通信接口162耦合到感测电路126以为感测电路126提供电力以启用触摸输入的检测,并且可以实现为小电池。在一个或多个实现方式中,通信接口162被实现为连接器,该连接器被配置为将可移除电子模块150连接到交互对象104的内部电子模块124。当内部电子模块124的感测电路126检测到触摸输入时,表示触摸输入的数据可以经由通信接口162传送到可移除电子模块150的微处理器152。微处理器152然后可以传输触摸输入数据和/或分析触摸输入数据以生成一个或多个控制信号,然后可以经由网络接口156将其传送到计算设备106(例如,智能电话)以使得计算设备106启动特定功能。通常,网络接口156被配置为通过有线、无线或光网络向计算设备106传输数据,例如触摸数据。作为示例而非限制,网络接口156可以通过局域网(lan)、无线局域网(wlan)、个域网(pan)(例如bluetooth
tm
)、广域网(wan)、内联网、互联网、对等网络、点对点网络和网状网络等(例如,通过网络108)传输数据。
70.惯性测量单元(imu)158可以生成指示交互对象的位置、速度和/或加速度的传感器数据。imu 158可以产生描述交互对象104的一个或多个三维移动的一个或多个输出。imu可以可移除地或不可移除地紧固到内部电子模块124,例如,其具有零自由度,使得惯性测量单元随着交互对象104平移和重新定向而平移和重新定向。在一些实施例中,惯性测量单元158可以包括陀螺仪或加速度计(例如,陀螺仪和加速度计的组合),例如三轴陀螺仪或加速度计,其被配置为感测沿着和围绕三个通常是正交的轴的旋转和加速度。在一些实施例中,惯性测量单元可以包括:被配置为检测交互对象的速度变化或旋转速度变化的传感器;以及,积分器,被配置为对来自传感器的信号进行积分,从而可以例如通过惯性测量单元的处理器基于围绕或沿着多个轴中的每一个轴的集成移动计算净移动。
71.虽然内部电子模块124和可移除电子模块150被图示和描述为包括特定的电子组件,但是应当理解,这些模块可以以多种不同的方式加以配置。例如,在一些情况下,被描述为包含在内部电子模块124内的电子组件可以至少部分地被实现在可移除电子模块150处,反之亦然。此外,内部电子模块124和可移除电子模块150可以包括除图2中所示的那些之外的电子组件,例如传感器、光源(例如led)、显示器和扬声器等。
72.手势管理器可由计算环境190中的一个或多个计算设备实现。手势管理器能够与计算设备170和180、电容式触摸传感器102和/或imu 158处的应用交互。手势管理器可有效地通过电容式触摸传感器102接收的触摸输入(例如,手势)和/或imu 158检测到的移动来激活与计算设备(例如,计算设备106)和/或应用相关联的各种功能。手势管理器可在对象104本地或远离对象104的计算设备处实现。附加地或替代地,移动管理器可由计算系统200实现。移动管理器可能够与在计算设备和惯性测量单元158处的应用交互,以通过由惯性测量单元158检测的移动有效地激活与计算设备和/或应用相关联的各种功能。移动管理器可以在位于对象104本地(例如,本地计算设备170)或远离对象104(例如,远程计算设备180)的计算设备106处实现。
73.手势管理器和/或移动管理器可以利用一个或多个机器学习模型来检测与交互对象104相关联的手势和移动。如下文更详细描述的,一个或多个机器学习模型可以跨多个计算设备分布。例如,机器学习模型可以分布在微处理器128、微处理器152、本地计算设备170和/或远程计算设备180处。
74.图3示出了根据一种或多种实现方式的包括用导电线形成的电容式触摸传感器102的交互对象104的示例300。在该示例中,交互对象104包括形成电容式触摸传感器102的柔性基板的非导电线109。非导电线109可以对应于任何类型的非导电线、纤维或织物,例如棉、羊毛、丝绸、尼龙、聚酯等。虽然图3提供了关于导电线的示例,但是应当理解,可以以类似方式形成诸如导电纤维、细丝、片材、光纤等的其他导线。
75.图4图示了根据一个或多个实施例的导线的示例200。在示例200中,导线110是导电线。导电线包括与一根或多根柔性线117结合的导电线118。导电线118可以以诸如下述方式的多种不同的方式与柔性线117结合:将柔性线117与导电线118扭绞、用导电线118缠绕柔性线117以及交织或编织柔性线117以形成覆盖导电线118的覆盖物,等等。导电线118可以使用多种不同的导电材料来实现,例如铜、银、金、铝或涂有导电聚合物的其他材料。柔性线117可以实现为任何类型的柔性线或纤维,例如棉、羊毛、丝绸、尼龙和聚酯等。
76.将导电线118与柔性线117结合使导线110具有柔性和伸展性,这使得导线110能够容易地使用一根或多根非导电线109(例如,棉、丝或聚酯)编织。在一种或多种实现方式中,导电线包括导电芯,该导电芯包括至少一根导电线118(例如,一根或多根铜线)和被配置为覆盖导电芯的覆盖层,该覆盖层由柔性线117构成。在某些情况下,导电芯的导电线118是绝缘的。或者,导电芯的导电线118不绝缘。
77.在一种或多种实现方式中,导电芯可以使用单根直导电线118来实现。或者,导电芯可以使用导电线118和一根或多根柔性线117来实现。例如,导电芯可以通过将一根或多根柔性线117(例如,丝线、聚酯线或棉线)与导电线118扭绞而形成,或者通过将柔性线308缠绕在导电线306周围来形成。
78.图5是描绘了根据本公开的示例实现方式的配备多头机器学习模型的示例计算环
境500的框图。计算环境500包括:内部电子模块124,其可以包括包括微处理器128的一个或多个计算设备;以及可移除电子模块150,其可以包括包括微处理器152的一个或多个计算设备,如前所述。此外,计算环境500包括本地计算设备170和远程计算设备180。多头机器学习模型510跨多个计算设备分布。更具体地,多头机器学习模型510包括在内部电子模块124的第一计算设备处配备的第一辅助模型头512、在可移除电子模块150的第二计算设备处配备的第二辅助模型头514、在本地计算设备170处配备的第三辅助模型头516和在远程计算设备180处配备的主要模型头518。注意,四个计算设备和四个模型头仅作为示例提供。例如,多头机器学习模型可以包括在第一计算设备处配备的单个辅助头和在第二计算设备处配备的单个主要头。在其他示例中,可以使用额外的计算设备来配备多于三个的辅助头。
79.内部电子模块124处的辅助模型头512可以包括至少一个神经网络或其他机器学习网络的一层或多层。类似地,辅助模型头514包括至少一个神经网络或其他机器学习网络的一层或多层,辅助模型头516包括至少一个神经网络或其他机器学习网络的一层或多层,以及主要模型头518包括至少一个神经网络或其他机器学习网络的一层或多层。
80.第一辅助模型头512被配置为接收由感测电路126生成的传感器数据522。例如,辅助模型头512可以接收响应于提供给电容式触摸传感器102的触摸输入而生成的传感器数据522。在另一个示例中,辅助模型头512可以接收响应于惯性测量单元158检测到的移动而生成的传感器数据522。辅助模型头512被配置为接收传感器数据并且基于传感器数据生成一个或多个特征表示513。例如,被配置用于手势检测的多头机器学习模型510的辅助模型头512可以生成一个或多个特征表示513,其代表提供给电容式触摸传感器102的触摸输入。在另一示例中,被配置用于移动识别的多头机器学习模型510的辅助模型头512可以被配置用于生成一个或多个特征表示513,所述特征表示513代表由惯性测量单元158检测到的用户的移动。值得注意的是,第一组特征表示526包括少于全部的多头机器学习模型510被配置为生成以便基于输入数据做出一个或多个推理的特征表示数据。例如,辅助模型头512可以包括一个或多个层,其被配置为基于输入传感器数据生成预定量的特征表示数据。例如,辅助模型头512可以表示包括在多头机器学习模型510内的特征生成层的大约20%。因此,第一组特征表示513可以表示大约20%的可以由多头机器学习模型510生成的特征表示数据。在一些示例中,辅助模型头512可以生成多个特征中的每一个的20%。在其他示例中,辅助模型头512可以生成特征总数的20%的所有特征数据。
81.辅助模型头512被配置为基于由辅助模型头512生成的特征表示选择性地生成一个或多个推理524。例如,辅助模型头512可以将辅助模型头512生成的特征表示与一个或多个推理标准进行比较。如果特征表示满足一个或多个推理标准,则辅助模型头512可以基于特征表示生成一个或多个推理。然而,如果特征表示不满足一个或多个推理标准,则辅助模型头512可以将一个或多个特征表示513压缩为一组一个或多个压缩特征表示526。辅助模型头512可以将一组压缩特征表示526传输到包括辅助模型头514的可移除电子模块150。在另一个示例中,辅助模型头512可以将压缩特征表示526直接传输到本地计算设备170处的辅助模型头516和/或远程计算设备180处的主要模型头518。
82.在可移除电子模块150处配备的辅助模型头514从内部电子模块124接收压缩特征表示526。压缩特征表示526可以被输入到辅助模型头,辅助模型头可以执行附加处理以在辅助模型头514处生成另一组特征表示515。在一些示例中,第二组特征表示515可以包括第
一组特征表示513中的一个或多个。可移除电子模块150作为向多头机器学习模型510的输入提供压缩特征表示组526。可以在辅助模型头514处提供一个或多个特征生成层并且将其配置为生成第二组特征表示515。第二组特征表示530可以包括少于所有的多头机器学习模型510被配置为生成以便基于初始输入做出一个或多个推理的特征表示数据。例如,辅助模型头514可以包括一个或多个层,其被配置为基于第一组特征表示生成预定量的特征表示数据。例如,辅助模型头514可以表示包括在多头机器学习模型510中的特征生成层的大约20%。第二组特征表示可以表示第一组特征表示数据以及由辅助模型头514生成的特征数据的组合。因此,第二组特征表示530可以表示由多头机器学习模型510生成的特征表示数据的大约40%。
83.辅助模型头514基于第二组特征表示515确定是否生成一个或多个推理528。例如,辅助模型头514可以利用一个或多个推理标准来确定是否生成一个或多个推理528。在一些示例中,一个或多个推理标准是机器学习的推理标准。举例来说,辅助模型头514可以利用一个或多个阈值,该阈值指示在计算一个或多个推理528之前应该存在的数据量。在另一示例中,一个或多个推理标准可以包括阈值,其指示与在生成一个或多个推理528之前应该存在的一个或多个特征表示相关联的质量水平。注意,由辅助模型头514使用的一个或多个推理标准可以不同于由辅助模型头512使用的一个或多个推理标准。更具体地,可以通过基于与辅助模型头514相关联的特定训练约束训练多头机器学习模型510来生成辅助模型头514使用的一个或多个推理标准。类似地,可以通过基于与辅助模型头512相关联的训练约束训练多头机器学习模型510生成辅助模型头512使用的一个或多个推理标准。
84.如果第二组特征表示满足一个或多个推理标准,则辅助模型头514可以基于特征表示生成一个或多个推理528。然而,如果特征表示不满足一个或多个推理标准,则辅助模型头514可以将一个或多个特征表示515压缩为一组一个或多个压缩特征表示530。辅助模型头514可以将一组压缩特征表示530传输到包括辅助模型头516的本地计算设备170。在另一个示例中,辅助模型头514可以将压缩特征表示530直接传输到远程计算设备180处的主要模型头518。
85.辅助模型头516被配置为接收由辅助模型头514生成的第二组压缩特征表示530。辅助模型头516被配置为基于第二组压缩特征表示530生成一个或多个特征表示517。第三组特征表示571包括少于全部的多头机器学习模型510被配置为生成以便基于输入数据做出一个或多个推理的特征表示数据。例如,辅助模型头516可以包括一个或多个层,其被配置为基于输入传感器数据生成预定量的特征表示数据。例如,辅助模型头516可以表示包括在多头机器学习模型510内的特征生成层的大约30%。第三组特征表示517可以表示第一组特征表示513、第二组特征表示515以及由辅助模型头516生成的特征表示数据的组合。因此,第三组特征表示517可以表示由多头机器学习模型510生成的特征表示数据的大约70%。
86.辅助模型头516被配置为基于由辅助模型头516生成的特征表示选择性地生成一个或多个推理532。例如,辅助模型头516可以将辅助模型头516生成的特征表示与一个或多个推理标准进行比较。如果特征表示满足一个或多个推理标准,则辅助模型头516可以基于特征表示生成一个或多个推理。然而,如果特征表示不满足一个或多个推理标准,则辅助模型头516可以将一个或多个特征表示517压缩为第三组一个或多个压缩特征表示534。辅助
模型头516可以将一组压缩特征表示534传输到包括主要模型头518的远程计算设备180。
87.主要模型头518被配置为接收由辅助模型头516生成的第三组压缩特征表示534。主要模型头518被配置为基于第三组压缩特征表示534生成一个或多个特征表示519。第三组特征表示519包括多头机器学习模型510被配置为生成以便基于输入数据做出一个或多个推理的完整特征表示数据。例如,主要模型头518可以包括一个或多个层,其被配置为生成多头机器学习模型510的特征表示的最终部分。主要模型头518可以表示包括在多头机器学习模型510中的另外30%的特征生成层。第四组特征表示519可以表示第一组特征表示513、第二组特征表示515、第三组特征表示517和由主要模型头518生成的特征表示数据的组合。因此,第四组特征表示519可以包括由多头机器学习模型510生成的100%的特征表示数据。主要模型头518被配置为基于由主要模型头518生成的特征表示生成一个或多个推理536。
88.在另一个示例(未示出)中,传感器数据可以被直接提供给可移除电子模块150的辅助模型头514。例如,惯性测量单元158可以在可移除电子模块150处本地生成传感器数据。来自惯性测量单元的传感器数据可被直接提供给可移除电子模块150的辅助模型头514。
89.图6是描绘根据本公开的示例实施例的多头机器学习模型的辅助模型头的示例的框图。在计算设备605处配备辅助模型头602。计算设备605可以包括在内部电子模块124、可移除电子模块150处的计算设备、本地计算设备170或远程计算设备180。辅助模型头602被配置为接收特征表示数据604和/或传感器数据606。在一些示例中,多头机器学习模型510可以是多模态的,使得它可以接收不同数据类型的输入数据。例如,多头机器学习模型510可以被配置为接收来自一个或多个传感器的传感器数据和可以在多机器学习模型的较早阶段从一个或多个模型头生成的特征表示。附加地或替代地,多头机器学习模型510可以被配置为接收不同类型的传感器数据,例如来自不同类型传感器(例如,电容式触摸传感器和惯性测量单元)的传感器数据。
90.特征表示数据604和/或传感器数据606作为一个或多个输入提供给一个或多个特征生成层612。特征生成层612被配置为响应于输入数据(例如特征表示数据和/或传感器数据)生成包括一个或多个特征表示的特征表示数据614。特征生成层612可以包括一个或多个神经网络或其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、循环神经网络(例如,长短期记忆循环神经网络)、卷积神经网络或其他形式的神经网络。特征表示数据614可以包括与由多头机器学习模型执行的整体推理过程有关的各种中间阶段信息。举例来说,特征表示数据614可以包括表示移动特征、位置特征、物理特征、定时特征、面部特征或适合与具体示例的多头机器学习模型相关联的推理过程的任何其他类型的特征的数据。
91.在一些示例中,多头机器学习模型可以被配置为生成指示手势检测的推理。更具体地,推理可以是基于输入传感器数据或响应于提供给电容式触摸传感器的触摸数据而生成的特征表示是否检测到相应手势的指示。在这样的示例中,特征表示数据614可以包括与提供给电容式触摸传感器的触摸输入相关联的检测特征。特征可以代表检测触摸输入、与触摸输入相关联的定时、与触摸输入相关联的速度或与手势检测过程相关联的任何其他合适的特征的一条或多条导线。这样的特征可以包括在机器学习模型的早期与一个或多个层
相关联的早期特征,或者在机器学习模型的后期与一个或多个层相关联的后期特征。作为具体示例,早期特征可以指示与触摸输入相关联的一个或多个导电线,而一个或多个后期特征可以指示与触摸输入相关联的移动或其他运动。
92.将一个或多个特征表示作为输入提供给一个或多个门层616。一个或多个门层被配置为接收特征表示作为输入并将特征表示与一个或多个推理标准进行比较。一个或多个推理标准可以是与辅助模型头的推理生成相关联的一个或多个机器学习的推理标准。一个或多个门层可以确定特征表示数据614的一个或多个特征表示是否满足一个或多个推理标准618。例如,门层可以确定与一个或多个特征表示相关联的数据量是否满足阈值数据量。在另一示例中,门层616可以确定特征表示数据614是否包括足够数量的特征或用于生成一个或多个推理的阈值质量的特征。可以基于与配备了辅助模型头的计算设备106相关联的训练约束和/或与配备多头机器学习模型的一个或多个附加计算设备相关联的训练约束来训练一个或多个门层616。
93.如果门层616确定一个或多个推理应该由辅助模型头602本地生成,则特征表示数据614可以被传递到一个或多个推理生成层620。推理生成层处理一个或多个特征表示以生成一个或多个推理630。推理生成层620可以包括神经网络或其他类型的机器学习模型的一层或多层,其他类型的机器学习模型包括非线性模型和/或线性模型。推理生成层620可以被训练以基于特征表示数据614生成一个或多个推理。
94.如果门层616确定特征表示数据614不满足推理标准618,则特征表示数据614可以被传递到一个或多个压缩层624。压缩层624可以应用一个或多个机器学习的压缩参数以生成压缩特征表示数据640。可以通过使用与计算设备605和/或配备了多头机器学习模型的另一个计算设备相关联的一个或多个训练约束来训练辅助模型头602而学习一个或多个压缩参数。举例来说,压缩层624可以被训练来基于计算设备之间的带宽、计算设备的处理能力、计算设备处可用的存储器等确定导致最佳压缩的一个或多个压缩参数。举例来说,并参考图5,本地计算设备170的辅助模型头516处的一个或多个压缩层624可以利用通过基于与远程计算设备180的计算参数相关联的训练约束而训练辅助模型头602生成的压缩参数。以这种方式,辅助模型头602可以被配置为基于特征表示将被传输到的计算设备来压缩特征表示。
95.图7是描绘通过包括至少一个模型头的多头机器学习模型处理传感器数据的示例方法700的流程图,该模型头被配置为基于传感器数据和/或由模型头和/或模型的其他模型头生成的特征表示选择性地生成推理。方法700的一个或多个部分可以由一个或多个计算设备(例如,如图1所示的计算环境100的一个或多个计算设备)、如图2所示的计算环境190或图10所示的计算环境1000实现。方法700的一个或多个部分可以实现为本文所述的设备的硬件组件上的算法,以例如利用多头机器学习模型来处理传感器数据、生成特征表示和选择性地在模型的特定位置生成推理。在示例实施例中,方法700可以由如图5、6和/或8所示的多头机器学习模型的辅助模型头或主要模型头执行。模型头可以在可移除电子模块、内部电子模块的计算设备、本地计算设备或远程计算设备处实现,如本文所述。
96.在(702)处,传感器数据和/或特征数据可由第一计算设备获得,在该第一计算设备处配备多头机器学习模型的模型头。传感器数据可以由诸如电容式触摸传感器和/或惯性测量单元的一个或多个传感器生成。输入特征数据可以由多头机器学习模型的另一个模
型头生成,例如模型早期的模型头。例如,特征数据可以代表在多头机器学习模型的早期由模型头生成的一组压缩特征表示。
97.在(704)处,传感器数据和/或特征数据被输入到第一计算设备处的多头机器学习模型的模型头中。在一些示例中,可以作为一组传感器数据或特征数据表示顺序地输入传感器数据和/或特征数据。在一些示例中,可以作为代表传感器数据输入序列的多个数据帧输入传感器数据和/或特征数据。
98.在(706)处,模型头可以至少部分地基于输入传感器数据和/或特征数据生成一个或多个特征表示。可以将一个或多个特征表示生成为第一计算设备处的模型头的一个或多个阶段或层的输出。例如,特征表示可以由作为模型头的一部分包括的神经网络的一个或多个特征生成层生成。在此类示例中,特征表示可能不作为多头机器学习模型的外部输出提供。在其他示例中,可以将一个或多个特征表示提供为多头机器学习模型的模型头的输出。
99.在(708)处,可以将一个或多个特征表示与一个或多个推理标准进行比较。在一些示例中,第一计算设备的模型头可以将特征表示与一个或多个推理标准进行比较。在一些示例中,推理标准可以是机器学习的推理标准,例如在生成推理数据之前应该存在于一个或多个特征表示中的机器学习的阈值数据量。在其他示例中,一个或多个推理标准可以包括指示在生成推理数据之前应该存在的特征表示的质量的阈值。附加地或替代地,在一些示例中,可以使用模型头外部的附加逻辑来将特征表示与推理标准进行比较。
100.在(710)处,计算设备基于将一个或多个特征表示与一个或多个推理标准进行比较来确定是否生成推理数据。计算设备可以确定一个或多个特征表示是否满足一个或多个推理标准。在一些示例中,计算设备处的模型头可以在(710)处确定是否生成推理数据。在其他示例中,模型头外部的附加逻辑可用于确定是否在(710)处生成推理数据。
101.如果计算设备在(710)处确定生成推理数据,则方法700在(712)处继续。在(712)处,可以至少部分地基于在(706)处生成的一个或多个特征表示来生成一个或多个推理。作为示例,在一些示例中可以生成关于是否基于由电容式触摸传感器生成的触摸数据检测特定手势的推理。在另一示例中,惯性测量单元可以生成指示用户移动的传感器数据,并且一个或多个推理可以包括关于特定移动是否被识别或检测的指示。
102.在(714)处,可以基于生成的推理在本地发起一个或多个动作。附加地或替代地,可以在(714)处将一个或多个推理传输到另一计算设备。例如,可以向第一计算设备处的一个或多个应用提供表示手势检测或移动识别的数据,该一个或多个应用可以处理手势检测或移动识别以生成输出。举例来说,可以响应于手势检测来操纵用户界面。作为另一示例,表示手势检测或移动识别的数据可以被传送到可以处理手势检测或移动识别以生成输出的另一计算设备。
103.如果在(710)处计算设备确定不应在第一计算设备本地生成推理数据,则方法(700)在(716)处继续。在(716)处,模型头可以基于一个或多个机器学习的压缩参数来压缩特征表示。可以通过使用训练约束来训练多头机器学习模型来生成机器学习的压缩参数,该训练约束对应于将在其处配备了多头机器学习模型的第一计算设备或一个或多个附加计算设备。作为具体示例,可以训练第一计算设备的模型头以根据与计算设备相关联的压缩参数来压缩特征表示,在该计算设备处配备了多头机器学习模型的后期阶段的模型头。
104.在(718)处,指示压缩特征表示的数据被传输到在其处配备了多头机器学习模型的另一计算设备。压缩特征表示可以被输入到其他计算设备处的多头机器学习模型的另一个模型头。多头机器学习模型的下一个计算设备也可以生成特征表示并确定是选择性地在本地生成推理还是将特征表示传输到另一个计算设备。
105.图8是描绘根据本公开的示例实施例的多头机器学习模型的示例的框图。更具体地,图8描绘了在训练阶段期间的多头机器学习模型810,其可用于生成推理标准、压缩参数以及调整用于生成推理850的多头机器学习模型810。多头机器学习模型810被配置为接收训练数据,该训练数据可以包括传感器数据和/或特征表示数据,例如可以在多头机器学习模型的先前阶段由一个或多个模型头生成的。在该示例中,多头机器学习模型810包括辅助模型头812、辅助模型头814、辅助模型头816和主要模型头818。然而,将注意到仅作为示例提供使用三个辅助模型头和单个主要头。在其他示例中,多头机器学习模型810可以包括少于或多于三个的辅助模型头。辅助模型头812、814、816中的每一个以及主要模型头818被配置为在单独的计算设备处配备。如前所述,辅助模型头812可以被配置用于在交互对象的内部电子模块的计算设备处配备,而辅助模型头814可以被配置用于在交互对象的可移除电子模块处配备。辅助模型头816可以被配置用于在诸如智能电话等的本地计算设备处配备,而主要模型头818可以被配置用于在诸如云计算系统的远程计算系统处配备。其他实现方式是可能的。
106.在训练阶段期间,多头机器学习模型810可以被配置在与在使用期间配备多头机器学习模型的计算设备物理分离的单个计算设备处。例如,可以使用与交互对象物理分离的训练计算系统、本地计算设备和远程计算设备来训练多头机器学习模型810。值得注意的是,多头机器学习模型810可以在训练计算系统处被端到端地训练。多头机器学习模型可以学习以将训练数据820与推理850相关联。此外,多头机器学习模型810可以学习如何将训练数据820与合适的位置或头之特定的一个相关联以生成推理850。
107.机器学习模型810可以被端到端地训练以联合优化每个模型头以基于由这样的辅助模型头生成的特征表示选择性地生成推理,以及生成压缩特征表示。举例来说,可以基于由特定模型头生成的推理中检测到的错误来训练每个模型头。此外,可以基于在关于是否在辅助模型头处生成推理或是否将指示特征表示的数据传输到另一个模型头的决定中检测到的错误来训练每个模型头。最后,可以基于代表与一个或多个计算设备相关联的计算参数的训练约束来训练每个模型头,将在一个或多个计算设备处配备多头机器学习模型。
108.可以使用反向传播单元840通过多头机器学习模型810反向传播在由多头机器学习模型810生成的推理中检测到的错误。在一些示例中,多头机器学习模型810的整体输出可用于训练每个辅助模型头和主要模型头。例如,主要模型头818的输出可以作为输入提供给反向传播单元840。反向传播单元840可以基于主要模型头818生成的推理中检测到的错误生成子梯度848。反向传播单元840可以将子梯度848反向传播到辅助模型头812、辅助模型头814、辅助模型头816和/或主要模型头818,以便基于在推理850中检测到的错误来训练多头机器学习模型810。
109.在另一个示例中,各个辅助模型头和/或主要模型头的输出可用于训练多机器学习模型。例如,多头机器学习模型810的辅助模型头812的输出可以作为输入提供给反向传播单元840。反向传播单元840可以基于辅助模型头812生成的推理中检测到的错误和训练
数据中表示的实际推理来计算子梯度842。附加地或替代地,反向传播单元840可以基于辅助模型头814的决定中检测到的错误来计算子梯度842以生成推理。此外,反向传播单元840可以基于在生成传递到辅助模型头814的一组压缩特征表示时辅助模型头812施加的压缩量中检测到的错误来计算子梯度842。计算的子梯度842可以反向传播到多头机器学习模型810中以训练一个或多个模型头用于推理生成。在一些示例中,子梯度842由反向传播单元840激活并作为输入提供给辅助模型头812。在其他示例中,反向传播单元840可以将子梯度842传播到多头机器学习模型的一个或多个附加头。
110.类似地,辅助模型头814的输出可以作为输入提供给反向传播单元840,反向传播单元840可以基于在辅助模型头814生成的推理中检测到的错误和/或通过辅助模型头814生成推理的决定来计算子梯度844。附加地或替代地,反向传播单元840可以基于在生成传递到辅助模型头816的一组压缩特征表示时辅助模型头814应用的压缩量中检测到的错误来计算子梯度844。反向传播单元840可以将子梯度844传播到在一个或多个辅助模型头和/或主要头处的机器学习模型810中。辅助模型头816的输出可以作为输入提供给反向传播单元840,反向传播单元840可以基于辅助模型头816生成的推理中检测到的错误和/或辅助模型头816生成推理的决定来计算子梯度846。附加地或替代地,反向传播单元840可以基于在生成传递到主要模型头818的一组压缩特征表示时辅助模型头816应用的压缩量中检测到的错误来计算子梯度846。反向传播单元840可以将子梯度846传播到在辅助模型头和/或主要头中的一个或多个处的机器学习模型810中。主要模型头818的输出可以作为输入提供给反向传播单元840,反向传播单元840可以基于主要模型头818生成的推理中检测到的错误来计算子梯度848。反向传播单元840可以将子梯度848传播到位于一个或多个辅助模型头和/或主要头处的机器学习模型810。
111.可以使用训练数据训练多头机器学习模型810,训练数据包括传感器数据和/或特征表示数据,其已经被注释以指示通过数据所表示的推理(例如,检测、分类等)、模型中应生成推理的位置、压缩参数或其他信息中的一个或多个。反向传播单元840可以检测与由多头机器学习模型810生成的推理相关联的错误、与生成推理的位置相关联的错误和/或与压缩特征表示相关联的错误。可以通过将多头机器学习模型生成的推理与训练数据序列上的注释的传感器数据进行比较来检测错误。与模型生成的推理相关联的错误可以被反向传播到一个或多个辅助模型头和/或主要模型头,以联合训练和优化机器学习模型,以便在模型内的适当位置生成推理。基于反向传播错误,可以修改多头机器学习模型以在模型中的最佳位置生成推理。
112.在一些示例中,可以基于指示应该在多头机器学习模型内生成推理的位置的训练数据来训练多头机器学习模型810。可以训练多头机器学习模型810以对于每个辅助模型头生成一个或多个推理标准823、825、827,以用于生成确定是否基于输入数据生成推理。在这样的示例中,可以将辅助模型头的输出提供给反向传播单元840,反向传播单元840可以基于辅助模型头是否正确选择是否生成推理或是否生成一组压缩特征表示来计算子梯度。举例来说,包括传感器数据和/或特征表示数据的一组训练数据可以被注释以指示多头机器学习模型内的位置,在该位置应该基于这样的训练数据生成推理。对于特定的模型头,注释可以指示模型头是否生成推理或一组压缩特征表示。作为特定示例,可以训练手势检测模型以基于传感器数据在模型的早期阶段生成推理,该传感器数据被注释以指示足以生成推
理数据。例如,指示不足以满足任何手势标准的移动的移动数据可以被注释以指示不应在模型早期例如由辅助模型头812生成没有手势检测的推理。相比之下,指示复杂移动的传感器数据可以被注释以指示应该在模型的后期阶段例如在主要模型头818处生成推理生成。
113.在一些示例中,可以训练多头机器学习模型810以生成用于每个辅助模型头的一个或多个压缩参数822、824、826以用于生成针对在模型头之间的传输的压缩特征表示。每个辅助模型头的一组训练约束可用于训练辅助模型头以生成一组压缩参数。例如,一组训练约束832可以在训练期间作为输入提供给辅助模型头812。该组训练约束832可以基于与要配备辅助模型头812的计算设备相关联的一个或多个计算参数。附加地或替代地,训练约束832可以基于与将配备多头机器学习模型810的附加计算设备相关联的计算参数。例如,一个或多个训练约束832可以基于计算设备的一个或多个计算参数,后期阶段的辅助模型头814将在该计算设备处被配备。以此方式,辅助模型头812可以被训练以生成适合于将接收一组压缩特征表示的计算设备的压缩参数822。训练约束包括但不限于带宽约束、存储器约束、处理能力约束等。
114.类似地,可以使用第二组训练约束834训练辅助模型头814以生成一个或多个压缩参数824。第二组训练约束834可以不同于第一组训练约束832。训练约束834可以表示与要在其处配备辅助模型头812的计算设备、要在其处配备辅助模型头814的计算设备和/或要在其处配备辅助模型头816的计算设备相关联的一个或多个计算参数。以此方式,辅助模型头814可基于与模型中早期阶段的计算设备、后期阶段的计算设备和模型和/或要在其处配备辅助模型头814的计算设备相关联的计算参数生成压缩参数824。以此方式,可训练辅助模型头814以生成压缩参数824,以为将接收一组压缩特征表示的计算设备生成压缩特征表示。
115.可以使用第三组训练约束836训练辅助模型头816以生成一个或多个压缩参数826。第三组训练约束836可以不同于第一组和/或第二组训练约束。训练约束834可以表示与要在其处配备辅助模型头816的计算设备、要在其处配备辅助模型头814的计算设备和/或要在其处配备主要模型头818的计算设备相关联的一个或多个计算参数。以这种方式,辅助模型头816可以基于与模型中的早期阶段的计算设备、模型中的后期阶段的计算设备以及要在其处配备辅助模型头816的计算设备相关联的计算参数来生成压缩参数826。以此方式,辅助模型头816可被训练以确定压缩参数826,该压缩参数826在模型的后期阶段生成针对计算设备优化的特征表示。
116.可以使用一个或多个训练约束838来训练主要模型头818。训练约束838可以基于与将配备主要模型头818的计算设备和/或要配备一个或多个辅助模型头的一个或多个计算设备相关联的一个或多个计算机参数。
117.图9是描绘训练多头机器学习模型的示例方法900的流程图,该多头机器学习模型包括被配置为选择性地生成推理的至少一个模型头。可以训练模型头以基于由模型头和/或模型的其他模型头生成的传感器数据和/或特征表示来选择性地生成推理。方法900的一个或多个部分可以由一个或多个计算设备实现,一个或多个计算设备例如是如图1所示的计算环境100、如图2中所示的计算环境190或如图10中所示的计算环境1000的一个或多个计算设备。方法900的一个或多个部分可以实现为本文所述的设备的硬件组件上的算法,以例如训练多头机器学习模型来处理传感器数据、生成特征表示和在模型的特定位置处选择
性地生成推理。在示例实施例中,方法900可以由模型训练器1060使用如图10所示的训练1062来执行。
118.在(902)处,生成描述多头机器学习模型的数据。多头机器学习模型被配置为跨多个计算设备分布。在一些示例中,多个计算设备包括具有不同的计算资源,例如不同的处理能力。例如,多个计算设备可以包括相对轻量级的计算设备(例如可以在交互对象中的计算设备)、可以包括在用户计算设备中的具有稍大处理能力的计算设备或者可以在包括服务器计算系统的云计算环境中提供的相对健壮的计算设备等。在一些示例中,在第一计算设备(例如训练计算系统1050,在该第一计算设备处多头机器学习模型可以被端到端地训练)处生成描述多头机器学习模型的数据。在其他示例中,可以生成或否则向其他计算设备提供描述多头机器学习模型的数据的一个或多个部分,其他计算设备例如为要在其处配备多头机器学习模型的边缘或客户端计算设备。
119.在(904)处,基于要在其处配备多头机器学习模型的一个或多个计算设备的计算参数来制定一个或多个训练约束。在一些示例中,可以针对多头机器学习模型的每个模型头单独制定训练约束。可以基于将在其处配备模型头的计算设备和/或用于多头机器学习模型的早期或后期阶段的其他计算设备的计算资源来确定特定模型头的训练约束。特定模型头的训练约束还可以包括基于计算设备之间的转换的训练约束。例如,可以基于配备了模型头的计算设备与在多头机器学习模型的早期或后期阶段的模型头的计算设备之间的带宽来训练特定模型头。
120.在(906)处,将训练数据提供给多头机器学习模型。训练数据可以包括传感器数据和/或特征表示数据。传感器数据和/或特征表示数据可以被注释以指示与对应的传感器数据和/或特征表示数据相关联的推理。例如,数据可以被注释以指示由传感器数据或特征表示数据表示的手势或移动。在一些示例中,训练数据可以另外包括关于应在何处生成对相应数据的推理的指示。例如,训练数据可以指示多头机器学习模型内的最佳位置,在该处基于对应的传感器数据和/或特征表示数据生成推理。
121.在(908)处,基于训练约束在多头机器学习模型的各个模型头处生成一个或多个推理和一个或多个压缩特征。例如,响应于传感器数据或特征数据的特定帧,可以在多头机器学习模型的模型头之一处生成推理。此外,多头机器学习模型的另一个模型头可以生成压缩特征表示,这些压缩特征表示被在不同的模型头之间传输。
122.在(910)处,检测与推理和/或压缩特征表示相关联的一个或多个错误。例如,模型训练器可以检测关于生成推理的位置的错误。模型训练器可以确定推理不是由应该已经生成推理的特定模型头生成的。在另一个示例中,模型训练器可以确定推理是由特定的模型头生成的,在该处不应该生成推理。作为另一个示例,可以检测到关于推理内容的错误。例如,模型训练器可以确定模型头对传感器数据和/或特征数据的特定帧生成了不正确的推理。作为另一示例,可以检测关于一个或多个特征表示的压缩的错误。例如,模型训练器可以确定模型头在生成压缩特征表示时使用了不适当的压缩参数。模型训练器可以确定模型头使用压缩参数,其包括相对于最佳压缩更大或更小的压缩。
123.在(912)处,可以基于检测到的错误为一个或多个模型头确定一个或多个损失函数参数。在一些示例中,损失函数参数可以基于多头机器学习模型的整体输出。损失函数参数可以应用于每个模型头。在其他示例中,损失函数参数可以基于单个模型头的输出。在这
样的示例中,损失函数参数可以代表特定模型头的损失函数参数。在一些示例中,损失函数参数可以包括子梯度。可以单独为每个模型头计算子梯度,或作为整体为多头机器学习模型计算子梯度。
124.在(914)处,一个或多个损失函数参数被反向传播到一个或多个模型头。例如,为特定模型头计算的子梯度可以作为(914)的一部分反向传播到该模型头。在另一个示例中,为整个多头机器学习模型计算的子梯度可以反向传播到每个模型头。
125.在(916)处,可以基于在914处的反向传播来修改多头机器学习模型的一个或多个部分。在一些示例中,可以基于损失函数参数的反向传播修改多头机器学习模型的单个模型头。在其他示例中,可以基于一个或多个损失函数参数的反向传播来修改多头机器学习模型的多个模型头。
126.图10描绘了根据本公开的示例实施例的执行推理生成的示例计算系统1000的框图。系统1000包括通过网络1080被通信地耦合的用户计算设备1002、服务器计算系统1030和训练计算系统1050。
127.用户计算设备1002可以是任何类型的计算设备,例如个人计算设备(例如,膝上型或台式机)、移动计算设备(例如,智能电话或平板计算机)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
128.用户计算设备1002包括一个或多个处理器1012和存储器1014。一个或多个处理器1012可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等)并且可以是一个处理器或多个可操作地连接的处理器。存储器1014可以包括一个或多个非暂时性计算机可读存储介质,例如ram、rom、eeprom、eprom、闪存设备、磁盘等以及它们的组合。存储器1014可以存储由处理器1012执行以使用户计算设备1002执行操作的数据1016和指令1018。
129.用户计算设备1002可以包括多头机器学习模型的一个或多个部分,例如一个或多个模型头。例如,用户计算设备1002可以包括多头机器学习模型的辅助模型头或主要模型头。多头机器学习模型的一个或多个模型头1020可以执行推理生成,例如本文所述的手势检测和/或移动识别。图6中示出了多头机器学习模型的一个或多个模型头1020的一个示例。然而,也可以使用除了图6中所示的示例系统之外的系统。
130.在一些实现方式中,多头机器学习模型的一个或多个模型头1020可以存储或包括手势检测和/或移动识别模型的一个或多个部分。例如,多头机器学习模型可以是或可以否则包括:各种机器学习模型,例如神经网络(例如,深度神经网络);或,其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络可以包括前馈神经网络、循环神经网络(例如,长短期记忆循环神经网络)、卷积神经网络或其他形式的神经网络。
131.参考图5讨论了一个示例多头机器学习模型510。然而,仅作为一个示例提供示例模型510。一个或多个模型头1020可以类似于或不同于示例模型510。
132.在一些实现方式中,多头机器学习模型的一个或多个模型头1020可以通过网络1080从服务器计算系统1030加以接收,被存储在用户计算设备存储器1014中,然后由一个或多个处理器1012加以使用或否则实现。在一些实现方式中,用户计算设备1002可以实现多头机器学习模型的模型头1020的多个并行实例(例如,跨传感器数据的多个实例执行并行推理生成)。
133.作为多头机器学习模型的模型头1020的补充或替代,服务器计算系统1030可以包括多头机器学习模型的一个或多个模型头1040。模型头1040可以执行如本文所述的推理生成。模型头1040的一个示例可以与图5所示的系统相同。然而,也可以使用除图5中所示的示例系统之外的系统。
134.作为多头机器学习模型的模型头1020的补充或替代,多头机器学习模型的一个或多个模型头1040可以被包括在服务器计算系统中或否则由服务器计算系统130加以存储和实现(例如,作为多头机器学习模型的组件),服务器计算系统130根据客户端

服务器关系与用户计算设备1002通信。例如,多头机器学习模型的模型头1040可以由服务器计算系统1030实现为web服务(例如,图像处理服务)的一部分。因此,可以在用户计算设备1002处存储和实现一个或多个模型头和/或可以在服务器计算系统1030处存储和实现一个或多个模型头。一个或多个模型头1040可以与一个或多个模型头1020相同或类似。
135.用户计算设备1002还可包括接收用户输入的一个或多个用户输入组件1022。例如,用户输入组件1022可以是对用户输入对象(例如,手指或触控笔)的触摸敏感的触敏组件(例如,电容式触摸传感器102)。触敏组件可用于实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可以用来提供用户输入的其他装置。
136.服务器计算系统1030包括一个或多个处理器1032和存储器1034。一个或多个处理器1032可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等)并且可以是一个处理器或多个可操作地连接的处理器。存储器1034可以包括一个或多个非暂时性计算机可读存储介质,例如ram、rom、eeprom、eprom、闪存设备、磁盘等以及它们的组合。存储器1034可以存储由处理器1032执行以使服务器计算系统1030执行操作的数据1036和指令1038。
137.在一些实现方式中,服务器计算系统1030包括一个或多个服务器计算设备或者否则由一个或多个服务器计算设备实现。在服务器计算系统1030包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或它们的某种组合进行操作。
138.如上所述,服务器计算系统1030可以存储或否则包括多头机器学习模型的一个或多个模型头1040。例如,模型头可以是或可以否则包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、循环神经网络和卷积神经网络。参考图5讨论了一个示例模型。
139.用户计算设备1002和/或服务器计算系统1030可以经由与通过网络1080被通信地耦合的训练计算系统1050的交互来训练模型头1020和1040。训练计算系统1050可以与服务器计算系统1030分离或者可以是服务器计算系统1030的一部分。
140.训练计算系统1050包括一个或多个处理器1052和存储器1054。一个或多个处理器1052可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等)并且可以是一个处理器或多个可操作地连接的处理器。存储器1054可以包括一个或多个非暂时性计算机可读存储介质,例如ram、rom、eeprom、eprom、闪存设备、磁盘等以及它们的组合。存储器1054可以存储由处理器1052执行以使训练计算系统1050执行操作的数据1056和指令1058。在一些实现方式中,训练计算系统1050包括一个或多个服务器计算设备或否则由一个或多个服务器计算设备实现。
141.训练计算系统1050可以包括模型训练器1060,该模型训练器使用各种训练或学习技术(例如错误的反向传播)来训练多头机器学习模型,该模型包括存储在用户计算设备1002和/或服务器计算系统1030处的模型头1020和1040。在如本文所述的其他示例中,训练计算系统1050可以在部署之前训练多头机器学习模型(例如,模型510或810)以在用户计算设备1002或服务器计算系统1030处配备多头机器学习模型。包括模型头1020和模型头1040的多头机器学习模型可以被存储在训练计算系统1050中以用于训练,然后被部署到用户计算设备1002和服务器计算系统1030。在一些实现方式中,执行错误的反向传播可以包括通过时间执行截断的反向传播。模型训练器1060可以执行多种泛化技术(例如,权重衰减、放弃等)以提高被训练的模型的泛化能力。
142.特别地,模型训练器1060可以基于一组训练数据1062来训练模型头1020和1040。训练数据1062可以例如包括传感器数据的多个实例,其中,传感器数据的每个实例已被标记为基础真实推理,例如手势检测和/或移动识别。例如,每个训练图像的标签可以描述触摸输入或对象移动的位置和/或移动(例如,速度或加速度)。在一些实现方式中,标签可以由人类手动应用于训练数据。在一些实现方式中,可以使用损失函数来训练模型,该损失函数测量在预测推理和基础真实推理之间的差异。在包括多头模型的实现方式中,可以使用组合损失函数来训练多头模型,该组合损失函数在每个头处组合损失。例如,组合的损失函数可以将来自辅助头的损失与来自主要头的损失相加,以形成总损失。可以通过模型反向传播总损失。
143.在一些实现方式中,如果用户已经提供同意,则训练示例可以由用户计算设备1002提供。因此,在这样的实现方式中,可以通过训练计算系统1050,关于从用户计算设备1002接收到的用户特定数据来训练提供给用户计算设备1002的模型头1020。在一些情况下,这个过程可以被称为个性化模型。
144.模型训练器1060包括用于提供所需功能的计算机逻辑。可以在控制通用处理器的硬件、固件和/或软件中实现模型训练器1060。例如,在一些实现方式中,模型训练器1060包括存储在存储设备上、加载到存储器中并且由一个或多个处理器执行的程序文件。在其他实现方式中,模型训练器1060包括一组或多组计算机可执行指令,这些指令存储在有形计算机可读存储介质中,例如ram硬盘或光学或磁性介质。
145.网络1080可以是任何类型的通信网络,例如局域网(例如,内联网)、广域网(例如,因特网)或其某种组合,并且可以包括任意数量的有线或无线链路。通常,可以使用多种通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml)和/或保护方案(例如,vpn、安全http、ssl),通过任何类型的有线和/或无线连接进行网络1080上的通信。
146.图10图示了可以用于实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实现方式中,用户计算设备1002可以包括模型训练器1060和训练数据1062。在这样的实现方式中,模型头1020可以在用户计算设备1002本地被训练和使用。在这样的一些实现方式中,用户计算设备1002可以实现模型训练器1060以基于用户特定数据个性化模型头1020。
147.图11描绘了根据本公开的示例实施例执行的示例计算设备1110的框图。计算设备1110可以是用户计算设备或服务器计算设备。
148.计算设备1110包括多个应用(例如,应用1到n)。每个应用都包含其自己的机器学
习库和机器学习模型。例如,每个应用都可以包括机器学习模型。示例应用包括文本消息传送应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。
149.如图11所示,每个应用可以与计算设备的多个其他组件通信,例如一个或多个传感器、上下文管理器、设备状态组件和/或附加组件。在一些实现方式中,每个应用可以使用api(例如,公共api)与每个设备组件进行通信。在一些实现方式中,每个应用使用的api特定于该应用。
150.图12描绘了根据本公开的示例实施例执行的示例计算设备1150的框图。计算设备1150可以是用户计算设备或服务器计算设备。
151.计算设备1150包括多个应用(例如,应用1到n)。每个应用都与中央智能层进行通信。示例应用包括文本消息传送应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。在一些实现方式中,每个应用可以使用api(例如,跨所有应用的通用api)与中央智能层(和存储在其中的模型)进行通信。
152.中央智能层包括多个机器学习模型。例如,如图12所示,可以为每个应用提供相应的机器学习模型(例如,模型)并由中央智能层加以管理。在其他实现方式中,两个或多个应用可以共享单个机器学习模型。例如,在一些实现方式中,中央智能层可以为所有应用提供单个模型(例如,单个模型)。在一些实现方式中,中央智能层被包括在计算设备1150的操作系统内或否则由计算设备1150的操作系统实现。
153.中央智能层可以与中央设备数据层通信。中央设备数据层可以是计算设备1150的集中式数据存储库。如图12所示,中央设备数据层可以与计算设备的多个其他组件通信,该其他组件例如是一个或多个传感器、上下文管理器、设备状态组件和/或其他组件。在一些实现方式中,中央设备数据层可以使用api(例如,私有api)与每个设备组件进行通信。
154.这里讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统以及采取的动作和发送到这些系统和从这些系统发送的信息。本领域的普通技术人员将认识到,基于计算机的系统的固有灵活性允许在组件之间和之中的多种可能的配置、组合和任务和功能的划分。例如,可以使用单个服务器或组合工作的多个服务器来实现这里讨论的服务器进程。数据库和应用可以在单个系统上实现或分布在多个系统上。分布式组件可以顺序或并行地运行。
155.虽然已经关于本主题的具体示例实施例详细描述了本主题,但是应当理解,本领域技术人员在获得对前述内容的理解之后可以容易地产生对这样的实施例的更改、变化和等同物。因此,本公开的范围是示例性的而不是限制性的,并且本主题公开不排除包括对于本领域的普通技术人员将是显而易见的对本主题的此类修改、变化和/或添加。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献