技术领域
[0001] 本发明涉及用于动态选择用于传感器装置的学习模型的方法、模型确定器、计算机程序和计算机程序产品。
相关背景技术
[0002] 可穿戴电子装置,通常简称为可穿戴设备,最近已经获得了越来越多的欢迎。现在,随着物联网(IoT)的推进,可穿戴设备的使用将继续增长。从已经长时间使用的运动手表或心率带开始;继续到流行的健身腕带和智能手表;导向一些不久的将来的可穿戴设备,诸如血液分析仪、身体压力传感器、皮肤损伤检测器和大脑读取装置。
[0003] 以前的强烈趋势是将计算移至集中式位置(也称为云计算),以减少分布式低功耗装置中的计算要求和功率使用,并且通过使用更强大的计算机来提高计算速度。
[0004] 考虑数百亿装置的未来,其中大部分是IoT装置和可穿戴设备,容易证明从集中式计算能力和存储移至分布式计算场景的新趋势是合理的。像边缘云、雾云、边缘计算、边缘分析之类术语全都是指处理移至更靠近装置的概念。
[0005] 机器学习ML正在成为分布式处理中的关键技术。机器学习例如可用于来自具有多个传感器的传感器装置(诸如可穿戴设备)的数据的模式识别。这样的传感器装置的传感器能以不同的方式使用。例如,可穿戴设备的加速度计可用于活动跟踪(跑步、骑自行车等)以及用于用户界面。可穿戴设备的每种使用要求单独的ML模型。然而,传感器装置经常是极度受限的,并且一般由于例如存储器、处理和/或功率要求的限制,根据几个不同的ML模型同时执行模式识别经常是不可能的。
具体实施方式
[0032] 现在将在下文参考附图更全面地描述本发明,附图中示出了本发明的某些实施例。然而,本发明可以用许多不同的形式体现,并且不应该被解释为局限于本文阐述的实施例;而是,这些实施例作为示例提供,使得本公开将是透彻且完整的,并且将向本领域技术人员全面传达本发明的范围。相似的标号在说明书通篇指的是相似的元件。
[0033] 根据本文的实施例,提供了一种在传感器装置中动态选择和交换学习模型的方式。与在服务器中实现的学习模型相反,传感器装置是具有用于特征向量的有限数量字节
的存储器的受限的装置,其中特征向量可包括所有传感器数据。基于相关传感器数据的分
析和当前加载的学习模型的性能的信息来执行选择来由此动态地选择最合适的学习模型。
[0034] 图1是图示其中能应用本文呈现的实施例的环境的示意图。还将参考图2描述图1的环境,图2是图示图1的传感器装置的实施例的示意图。
[0035] 用户10使传感器装置2感测一个或多个物理量,例如移动。传感器装置2包括传感器3a-b,其在这个示例中是两个传感器。要注意,传感器装置2可以包括任何合适数量的传感器。传感器3a-b例如可以是加速度计、陀螺仪、血液分析仪、血压传感器等中的任何一个或多个。每个传感器3a或3b提供采用一个或多个特征的形式的传感器数据。例如,当传感器装置2是可穿戴设备时,第一传感器3a可以是加速度计,并且第二传感器3b可以是陀螺仪。
加速度计和陀螺仪两者可以使用IMU(惯性测量单元)来实现。第一传感器3a然后提供采用x加速度、y加速度和z加速度的形式的三个特征。第二传感器3b还提供采用偏转、俯仰和摇摆的形式的三个特征。
[0036] 传感器装置2可以是例如可穿戴装置,诸如腕带、智能手表、项链等,并且可用于例如获得用户10的医疗数据和/或被用作具有基于传感器的输入和合适的输出(例如屏幕、声音、振动等)的计算装置。
[0037] 传感器装置2可以是受限的装置,这意味着传感器装置在例如存储器、处理和/或功率要求方面具有大量限制。
[0038] 传感器装置2可例如借助于任何一种或多种合适的通信技术(例如使用蓝牙或蓝牙低能量(BLE)、ZigBee、任何IEEE 802.11x标准(也称为WiFi)、蜂窝通信标准(例如LTE(长期演进)、利用W-CDMA(宽带码分多址)的UMTS(通用移动电信系统)、CDMA2000(码分多址
2000)等)连接到网络6。
[0039] 传感器装置2包括处理器和模式识别单元。模式识别单元可以使用软件或专用硬件模式识别单元来实现,其具有输入数据的受限大小。模式识别单元的一个示例是由
General Vision提供的CurieNeurons。CurieNeurons有128字节用于输入数据,并提供有界限的执行时间,其是k最近邻(k-NN)或RBFN(径向基函数网络)匹配算法的恒定执行时间。由于并行数据识别引擎,时间与学习模型的大小无关。输入向量包括所有活动传感器的输入
值或所选择的传感器的所选择的输入值。
[0040] 传感器装置2中的学习模型(本文中有时简称为模型)可以是本地存储的,或者可在需要时从服务器7下载。
[0041] 服务器7还连接到网络6。服务器7可以在能够执行本文公开的服务器功能的任何合适的计算机上实现。
[0042] 如上文所提到的,存在将智能移至网络6的边缘的趋势。可穿戴设备是趋势的一部分,并且可实现机器学习(ML)来解释来自传感器3a-b的数据。大多数用于执行活动检测、手势识别、异常检测等的处理和决策算法(例如使用ML)要求计算成本,可将该计算成本卸载到单独的处理单元,例如,Intel Quark微控制器具有CurieNuerons作为模式识别引擎。在下文中,使用术语ML;然而,要注意,所呈现的实施例也可适用于其他学习模型。统计建模的范围以外的其他学习模型包括例如静态模型和动态模型。动态模型用于使用具有运行时间
的给定输入来描述给定环境的输出,这通常由差分方程或微分方程来描述。这种模型结构
的示例为:线性模型和非线性模型、块联模型(block-oriented model)、时间或参数变化模型。
[0043] ML算法通常涉及学习阶段,并且在可穿戴设备的情况下,它们可以取决于使用可穿戴设备的人以及传感器装置2相对于用户身体的位于哪里。考虑在智能手表中将ML算法
用于手势识别的情况。如果ML算法是针对戴在左手腕的人A训练的,并且如果人A将智能手
表换到右手腕,则有高可能性手势将被错误分类或根本不被分类。而且,如果人B使用相同的智能手表,则人B的手势将很可能不被正确分类,即错误分类或不被分类。
[0044] 在现有技术中,假定根据训练数据(例如,相同的人,相同的身体部分)使用经训练的模型,并且经训练的模型对来自训练数据的大的输入数据变化不是鲁棒的。而且,尚未在传感器装置2中对传感器装置2中使用的模型在传感器装置2中表现得如何进行检测和分析。
[0045] 许多传感器装置2的有限处理器能力对计算算法所花的时间有大的影响。在通用处理器上用软件实现的ML算法通常具有至少O(n)或更差的复杂度,其中O()是指复杂度,
而n是指例如以神经元的数量表示(对于神经元的描述见下文)的模型的大小。在通用处理器上的软件实现中,输入数据大小也有线性复杂度。这意味着模型和数据越大,计算所花的时间越长。因此,硬件加速器通常被用作传感器装置2的一部分,或者被包括在微处理器中,或者被包括在独立的ASIC(专用集成电路)或其他独立的单元中,它们可通过将输入数据并行化来提供O(1)算法,如图3A-C中所图示的和下面所描述的。例如,具有模式识别单元的
Intel Quark为具有某个输入数据大小的k最近邻和RFBN(径向基函数网络)提供O(1)算法,即复杂度不取决于神经元的数量。
[0046] 当在传感器装置2上以软件实现ML算法时,有限的处理器能力限制了能被处理的数据量,并且从而对模型和输入特征向量的大小有影响。这是由于算法的软件实现具有O
(n)复杂度。另一方面,当使用硬件加速器时,形成硬件实现的一部分的芯片集具有有限的可用存储器。硬件加速器是针对特定任务构建以使其非常高效地运行的芯片集。当前用于
模式识别和学习模型的硬件加速器在以下方面受到限制:用于输入向量/参考向量的字节
数量(这限制了能使用的传感器数据)、与输入数据相比的参考向量(或此上下文中的神经元)的数量以及分类输出的数量。因此,硬件实现的存储器限制了模型和输入特征向量的大小,使其难以处理具有所有传感器数据和所有期望的分类输出的大模型,这是强大的服务
器中的模型能容易处理的。
[0047] 由于模型和输入特征向量的大小的限制,需要划分和缩小模型以适合硬件加速器或其他模式识别单元的存储器。由于不同的模型能与不同的输入数据相关,因此在任一时
间应用的模型应该反映当前的传感器数据。
[0048] 处理器和传感器3a-b的电池消耗在受限装置(即传感器装置2)中扮演重要角色。如果多用途传感器装置2使其所有传感器3a-b甚至在不使用时连续启用,那么电池将快速
耗尽。
[0049] 因此,根据本文的实施例,提供了一种动态选择和交换传感器装置2中的学习模型的方式。与在服务器7中实现的模型(其中特征向量可包括所有传感器数据)相反,传感器装置2具有用于特征向量的有限数量字节的存储器。根据本文的实施例,模型的交换和选择基于相关传感器数据的分析和当前加载的学习模型的性能的信息来由此动态地选择最合适
的学习模型。
[0050] 本文呈现的实施例允许具有用于ML模型的输入向量的有限大小的传感器装置2在需要时交换ML模型。交换ML模型的能力在传感器装置2中是相关的,因为模型的有限大小意味着模型是为特定应用而训练的。例如,具有所有加速度计和陀螺仪数据的模型能用于:手势识别、活动跟踪、计步器等。然而,在传感器装置2上,相同的模型被划分以能够遵守资源限制。因此,动态交换ML模型的能力使传感器装置2能够被用于多种类型的应用,而没有任何外部干预。
[0051] 如下面更详细描述的,能够使用当前ML模型的性能和传感器数据的动态的实时分析来选择和交换ML模型。该过程在模型确定器中执行,如下面更详细描述的。整个过程能够以分类输出的最少中断和停机时间来实时执行,并且在无需任何用户交互的情况下操作。
[0052] 如果需要新模型,则从所有可用的特征中检测相关的特征,如下文更详细解释的。这样,将仅使用提供相关数据的传感器3a-b。从而,可通过禁用任何未使用的传感器3a-b来增加传感器装置2的电池寿命。此外,当传感器3a-b为模型未使用的特征提供传感器数据
时,可从多特征传感器3a-b中选择特征的子集。通过仅使用相关特征,降低了计算成本和电池消耗。
[0053] 在确定了相关特征候选的情况下,如下文更详细描述的那样执行新模型的选择。该选择基于特征候选以及它们的特性。如果模型确定器具有存储单元,则可在没有与其他
装置的任何交互的情况下执行该步骤。如果模型确定器具有通信部件,则它能受益于来自
其他装置(诸如在传感器装置2的范围内并且被用于相同目的的相邻装置)的信息。
[0054] 在传感器装置2中,仅使用相关传感器数据或传感器数据的子集是至关重要的。传感器装置2在存储器中具有有限数量的字节用于特征向量,因此是有限的模型。
[0055] 当选择新模型时,该模型被加载到传感器装置2的模式识别单元中,使得该模型能够以模型使用的最小停机时间来被使用。该解决方案允许模型交换快速发生并且没有任何
用户输入,并且从而对用户10是透明的。从而,本文呈现的实施例可应用于没有人机接口的可穿戴设备中,或者应用在不由人使用但由机器使用的传感器装置,例如对工业机器、车辆组件或家用电器的行为或故障进行分类的装置。
[0056] 图3A-C是图示能应用于图1的实施例中的机器学习模型的使用的示意图。首先,将解释神经元在机器学习模型中的使用。传感器装置的存储设备中的可用模型是预先训练
的。传感器装置所使用的所有参数、阈值和模型也可被预先定义。
[0057] 模式识别中使用的内部数据可被定义为输入数据。
[0058] 输入数据是要与加载的参考向量进行比较的数据。例如,对于手势识别,如果使用加速度计 和陀螺仪 ,则输入数据被定义为输入数据的长度,即数据大小,可由 (两组三个输入数
据值)来定义,其中T是时间间隔,并且h是样本之间的时间。
[0059] 在此上下文中,神经元被认为是包含与参考向量、输出值和使神经元被激发的相关数据相关的信息的数据。在传感器装置中存在有限数量的可用神经元。神经元的组成及
其定义如下:
· 参考向量(RV):要与输入进行比较的数据向量。例如,对于手势X,参考向量之一可
被定义为 ,其中 。
[0060] · 大小S,定义为 ,是模式识别单元的关键特性(限制),其中#sensors指示输入数据中表示的传感器数量。指示输入数据和参考向量(RV)的大小。
[0061] · 活动影响域(AIF):定义参考数据和输入数据之间的最大距离值的数字,使得神经元被激发,即被激活,以便提供输出值。例如,如果 ,则
神经元被激发。
[0062] · 最小影响域:活动影响域可能得到的最小值。min(AIF)=MIF。它是神经元的特性。
[0063] · 上下文标识符(CID):如果模式识别单元中多个上下文可用,则该标识符指示模式属于哪个上下文。上下文用于区分多个独立场景,例如,CID=X用于手势识别,并且CID=Y用于心率脉搏监测。
[0064] · 分类器:当参考向量和输入数据之间的距离低于活动影响域(AIF)时选择的输出值。当这种情况发生时,我们说模式/神经元已经被激发有输出值。
[0065] · 输出值:是标识神经元结果的值。例如,手势X得到值X,并且手势Y得到值Y。多个神经元可能具有相同的输出值。
[0066] 参考模型(也称为模型或ML模型):要与输入数据进行比较以能够对输入进行分类的一组神经元。
[0067] 上下文:一组参考模型。根据模式识别的能力,多个上下文能用于不同的分类问题(顺序或并行)。例如,一个上下文用于对来自IMU的数据进行分类并识别手势,而另一使用可以将基于IMU监测活动(行走、跑步、骑自行车等)。
[0068] 此外,本文使用以下概念:特征:用作模式识别单元的输入的一组数据。当触发分类时,输入数据与神经元中的参
考向量(RV)进行比较。特征的一个示例是x方向上的加速度accx。特征的另一示例是用户的当前脉搏。
[0069] 相关传感器:传感器装置2中提供相关信息的传感器3a-b。这对应于用于新模型的特征候选。例如,当传感器3a-b在其值上具有很大变化;这些值超过某个阈值;或者在特征比其他特征更相关的情况下,该传感器3a-b可以被认为是相关的。
[0070] 相关传感器数据:单个传感器3a-b可能提供多个传感器数据,所述传感器数据对于某个应用来说可能是冗余的或不相关的。例如,提供所有坐标的加速度计
和陀螺仪 数据的IMU,但只有子集accx、accy和gx、gz可能对于
特定模型是相关的。
[0071] 激发的神经元:具有低于活动影响域的输入数据和参考向量之间的距离的神经元。 。如果神经元被激发,则给出分类值作为输出。若干种距离函
数能够可用于模式识别单元中。例如,CurieNeurons提供L1范数(Manhattan)和LSUP范数。
[0072] 正确分类:在上下文C中,当所有激发神经元都具有相同的分类值时,分类被认为是正确的。
[0073] 错误分类:在上下文C中,当不是所有的神经元都具有相同的分类值时,分类被认为是错误分类。
[0074] 无分类:在上下文C中,当没有神经元被激发时,分类被认为是无分类。
[0075] 现在看图3A-C,在那里图示了当加载特定模型时的分类过程。模型被布置成在顶部接受输入数据13。相同的数据被提供给四个神经元12a-d。每个神经元12a-d提供特定的
分类。可以提供比图3A-C中所示的简单示例中的四个多得多的神经元。
[0076] 图3A图示了当没有提供输入数据时的情况,其中第一神经元12a和第三神经元12c各自在被激发时提供第一分类15a。此外,第二神经元12b和第四神经元12d各自在被激发时提供第二分类15b。
[0077] 在图3B中,输入数据由d1表示,其包含在特定时间点来自传感器装置2的传感器的所有传感器数据。输入数据d1由所有神经元分析,并且在图3B中,在此之后,这导致仅激发第一神经元12a,其由被强调的神经元边界指示。因此,来自基于输入数据d1的模型的唯一分类是第一分类15a。这被认为是正确分类。
[0078] 在图3C中,输入数据由d2表示,其包含在特定时间点来自传感器装置2的传感器3a-b的所有传感器数据。输入数据d2由所有神经元分析,并且在图3C中,在此之后,这导致激发第一神经元12a和第四神经元12d,这由被强调的相应神经元边界指示。因此,来自基于输入数据d2的模型的分类是第一分类15a和第二分类15b两者。如上面所定义的,这种不一
致被认为是错误分类。
[0079] 图4A-E是图示用于动态选择用于传感器装置2的学习模型的方法的实施例的流程图,其中传感器装置2包括至少一个传感器(3a或3b)。如上面所解释的,学习模型(例如,ML模型)被配置用于基于来自至少一个传感器(3a或3b)的传感器数据来确定输出数据。
[0080] 在检测对新模型的需要的步骤42中,模型确定器检测对用于传感器装置2的新学习模型的需要。这可基于传感器装置2中当前加载的学习模型的性能。备选地,需要新模型,例如在当前没有加载模型时,例如在工厂重置之后,当传感器装置2可能没有任何模型被加载到模式识别单元中,而在存储设备中许多模型可用时。
[0081] 在此步骤中,执行对(一个或多个)当前加载的模型的性能的分析,以标识是否发生了正确的装置操作,或是否应该触发模型交换。收集性能的实时数据,有可能标识所选择的模型是否在起作用。为传感器(3a或3b)中的每个传感器单独定义了在该步骤中提到的参数(阈值/模型)。可在模型构建过程中基于实验来定义这些参数。
[0082] 在一个实施例中,当传感器装置2中的模型在T秒内没有激发任何神经元时,标识对新模型的需要。当没有神经元被激发时,这指示错误的模型已经被加载到传感器装置2
中。在这样的实施例中,周期T可以是活动的模型的函数,T=f(model),例如标识手势的模型的动态与室温的改变不同。通过定义每个模型的定制的周期T,我们确保分类器(神经元/模式的集合)根据其动态得到其统计。作为示例,给定未激发的神经元(NNF)的数量和阈值Lh,则在NNF>Lh时执行新模型需要的标识。可例如根据模型构建时的实验定义阈值Lh。
[0083] 在确定特征候选的步骤44中,模型确定器基于来自至少一个传感器(3a或3b)的传感器数据来确定至少一个特征候选。至少一个特征候选中的每一个特征候选是单独的特征,并且从而与不同的传感器数据源关联。
[0084] 在标识对新模型的需要之后,该步骤提供了一种从传感器装置2中可用的所有传感器数据检测提供相关数据并且潜在地能成为新模型的特征(即,是特征候选)的传感器
3a-b的方法。在该步骤,所有传感器3a-b都被启用并通电。
[0085] 在一个实施例中,通过将在时刻t在传感器装置2中可用的传感器数据与阈值Lv进行比较来推断特征候选(FC)。作为示例,给定传感器数据点D,如果D>Lv,则选择传感器的特征作为特征候选。在这样的实施例中,可根据在分类中使用的模型来定义阈值。
[0086] 在另一实施例中,通过将每个特征的传感器数据的(时间序列)向量的特性与定义的阈值Lv进行比较来推断特征候选(FC)。特性可以是统计度量,如传感器数据的均值、中值或标准偏差。作为示例,给定在间隔T期间的具有采样周期h的传感器数据向量D(t) = [d(t-T) d(t-T+h) d(t-T+2h) .....d(t)];如果均值(D)>Lv,则选择该传感器数据的特征作为特征候选。在这样的实施例中,可根据使用传感器数据的所存储的所有模型的预期数据
值来定义阈值。
[0087] 在另一实施例中,基于模式识别单元中的另一上下文来推断特征候选。此类上下文仅被用于推断特征候选。它由数量为N的模型组成,其中N是传感器装置2中可用的传感器数据的数量。作为示例,特征F1、F2、F3的传感器数据向量被用作模式识别单元的顺序输入。
如果F1得到正确的分类,则选择特征“1”作为特征候选;同样适用于F2和F3。在这样的实施例中,模式识别的存储器使用增加,但是在没有任何其他外部信息源的情况下,特征选择将更准确。
[0088] 在另一实施例中,通过将之前的实施例应用于传感器数据的子集来推断特征候选(FC)。作为示例,给定提供加速度计 和陀螺仪
数据的IMU传感器 ,Facc和Fgir在前面的实施
例中作为独立特征来被分析。
[0089] 在另一实施例中,在确定所述至少一个特征候选之前,针对每个传感器3a-b随时间对传感器数据进行归一化。传感器数据的向量能例如使用z分数(z-score)来被标准化
(归一化)。这提供了一种使用如均值、均值或标准偏差等通用度量来比较所有传感器数据的方式。给定有限的存储器和计算整个传感器数据的标准偏差的资源要求,可通过获取传
感器的范围进行近似。作为示例,给定向量D(t) = [d(t-T) d(t-T+h) d(t-T+2h).....d
(t)][d (t-T) d (t -T+h) d (t-T+2h) .....d (t)],我们应用变换
,其中 。
[0090] 在另一实施例中,通过计算传感器数据(时间序列数据)的向量的特性来推断特征候选(FC)。一些度量可提供归一化值,其指示传感器数据包含的信息等级。于是,该实施例提供了基于传感器数据的相关性的FC的经排序的列表。并且它提供了一种在没有任何先前数据知识的情况下标识相关特征的方式。作为示例,给定在间隔T期间的具有采样周期h不
同传感器数据的N个向量Dn(t)=[d_n(t-T) d_n(t-T+h) d_n(t-T+2h) .....d_n(t)];计算这样的向量的近似熵以提供按降序排序的FC的列表。可使用用于测量连续数据的离散度的
其他度量,如具有离群值检测的四分位距(Q1,Q3)。
[0091] 在选择新模型的步骤46中,模型确定器从候选学习模型的集合中选择新学习模型。该选择基于至少一个特征候选和候选学习模型中的每一个候选学习模型的输入特征。
作为示例,如果FA= {F1,F2}⊂FC,则选择具有特征FA={F1,F2}的模型A。
[0092] 在一个实施例中,从候选学习模型的集合中选择与至少一个特征候选具有最大数量的重叠特征的候选学习模型。换句话说,选择其特征属于特征候选并且交集的基数是所
有模型中的最大值的新模型。这在下面的公式中被描述:作为示例,给定具有特征FA={F1,F2}的模型A,具有FB={F2,F3}的模型B,和FC={F1,F2};选择模型A,因为|FA∩FC|>|FB∩FC|。在这样的实施例中,我们确保选择具有最多特征候选的模型。
[0093] 在另一实施例中,如果对于模型“i”的每个特征集合(Fi),不存在属于FC的Fi(),则当Fi的至少一个特征属于FC( )时,完成新模型的选择。作为示例,给定具有特征FA={F1}的模型A,具有特征FB={F3}的模型B,和FC={F1,F2};选择模型A,因为它是具有来自FC的特征的唯一模型。
[0094] 在一个实施例中,选择的模型使用传感器数据的子集。作为示例,模型使用IMU传感器数据的子集(FA’)。给定提供加速度计 和陀螺仪
数据的 ,该模型仅使用例如子集
。在这样的实施例中,可减少用于输入数据的存储器字节数量,
从而获得由于减少所需计算而引起的能量减少。这也是重要的,因为模式识别单元通常在
用于输入数据的存储器字节数量上受限。例如,在来自通用视觉的CurieNeutons中,输入数据(和模型)的大小被限制为128字节。
[0095] 在触发新模型的加载的步骤48中,模型确定器触发新学习模型加载到传感器装置2上,替换当前加载的学习模型。当模型确定器被提供为传感器装置2的一部分时,不需要外部通信;模型确定器简单地本地确保加载新学习模型。当模型确定器被提供为服务器的一
部分时,该步骤包括向传感器装置2传送命令以加载新学习模型。新学习模型随后被用在传感器装置2中的模式识别单元中。
[0096] 在一个实施例中,为了加载模型,从存储设备接收新模型。当接收到模型时,处理单元将新模型加载到模式识别单元中。作为示例,模型可被加载到模式识别中,并且可被存储在与先前模型相同的上下文中。由于仅使用本地存储设备,因此存储设备和模式识别单元之间的转移时间被认为可忽略,并且因此停机时间可忽略。
[0097] 在附加的实施例中,如果多个上下文可用,并且模式识别单元中有足够的空间(例如,就神经元而言)可用,则可在模式识别单元中同时加载多个模型。
[0098] 现在看图4B,将仅描述与图4A的步骤相比是新的或修改的步骤。
[0099] 在可选的确定正确分类和错误分类的步骤40中,模型确定器确定当前加载的学习模型在一时间段期间的正确分类的数量和错误分类的数量。可选地,这个步骤进一步包括
确定当前加载的学习模型在该时间段期间的无分类的数量。
[0100] 当执行步骤40时,检测对新模型的需要的步骤42至少部分建立在基于正确分类的数量和错误分类的数量的性能的基础上。当无分类的数量被确定时,这也能形成性能的基
础的一部分。
[0101] 因此,对新模型的需要被定义为在时间段T期间的错误分类(MC)的数量和正确分类(CC)的数量的函数。在这样的实施例中,周期T可能是活动的模型(上下文)的函数T=f(model)。错误分类导致非结论性结果,并且因此导致指示使用了错误的模型。作为示例,给定CC和MC,关于对新模型的需要的判定是与两个值相关的函数;如果CCLh,给定Lh是阈值,则标识对新模型的需要。
[0102] 在另一实施例中,基于与在时间段T期间的具有采样周期h的正确分类(CC)、错误分类(MC)和无分类(NC)的数量的样本的向量相关的函数来标识对新模型的需要。该函数可能是可应用于向量的任何特性,如均值、中值、标准偏差、方差、熵等。作为示例,给定采用Vx=[a, b, c, d,… ]的形式的向量Vcc、VMC和VNC,其中 元素,其中a、b、c、d是在周期T内出现的CC、MC或NC的数量,如果这样的特性高于VNC和VMC的定义的阈值或低于Vcc的阈值,则标识对新模型的需要。例如,如果 或
或 ,则标识对新模型的需要。
[0103] 在另一实施例中,基于与在间隔T期间的具有采样周期h的正确分类(CC)、错误分类(MC)和无分类(NC)的数量的样本的向量相关的函数来标识对新模型的需要。作为示例,给定向量Vcc、VMC和VNC;如果 ,则标识对新模型的需要。
[0104] 在另一实施例中,基于模式识别单元中的另一上下文来标识对新模型的需要。这样的上下文预期向量VCC、VMC和VNC或者它们的特性的任何组合作为神经元的输入数据。在使用用于检测新模型的上下文之后,模型确定器切换回到先前的上下文,并继续其正常操作,或者如果标识了对新模型的需要,则切换到下一步骤。作为示例,上下文X用于手势识别,而上下文Y用于检测对新模型的需要;为了改变上下文,应用将模式识别单元中的上下文寄存器设置为X或Y。上下文切换时间可忽略,通过改变寄存器中的值,可切换上下文。
[0105] 图4C图示了根据其中应用候选特征权重的一个实施例的选择新模型的步骤46的可选子步骤。
[0106] 在可选的获得候选特征权重的步骤46a中,模型确定器获得每个特征候选的候选特征权重。
[0107] 在附加的实施例中,FC的列表包含每个值的归一化权重。可选地,FC的列表也按相关性的等级来被排序。该实施例允许基于每个传感器数据的权重更准确选择模型。作为示例,FC向量将如下所示:C =[{权重:1,值:“F1”},{权重:0.5,值:“F2”},{权重:0.1,值:
“F3”}]。
[0108] 在一个实施例中,通过执行具有n个最相关特征的匹配算法(如上面所呈现的)来完成利用按权重排序的FC的列表的新模型的选择。作为示例,给定经排序的列表=[{权重:
1,值:“F1”},{权重:0.5,值:“F3”},{权重:0.1,值:“F2”},{权重:0.01,值:“F4”}],通过三个最相关特征来截取列表,产生 ,在此之后对可用的模型执行匹配。
[0109] 在附加的实施例中,可通过选择给定特定阈值权重的特征来执行特征的选择。
[0110] 在可选的发现(一个或多个)重叠特征的步骤46b中,模型确定器对于每个候选学习模型,发现由与输入特征重叠的任何特征候选组成的重叠特征的集合。换句话说,重叠特征的集合是特征候选和输入特征的交集。
[0111] 在可选的将权重相加的步骤46c中,模型确定器对于每个候选学习模型,将形成重叠特征的集合的一部分的候选特征的候选特征权重相加。这产生加权的候选特征分数。
[0112] 在可选的选择模型的步骤46d中,模型确定器将新学习模型选择为具有最大加权的候选特征分数的候选学习模型。
[0113] 图4D图示了根据其中应用输入特征权重的一个实施例的选择新模型的步骤46的可选子步骤。
[0114] 在可选的获得输入特征权重的步骤46e中,模型确定器对于每个候选学习模型获得每个输入特征的输入特征权重。因此,模型具有输入特征的列表,所述输入特征具有定义模型中相应重要性的权重。该信息能被用于优化算法以选择适当的模型。作为示例,给定模型 和 ,其中特征按相关性排序,并且给定
,选择的模型将是M1。
[0115] 在一个实施例中,可以使用预先训练的模型来为应用选择新模型。该实施例假定给FC的列表提供权重。这可以在模型选择中提供更高的精度,而且意味着更长的持续时间
(因为神经元被复制到模式识别单元中)。此外,在设计阶段期间需要额外的努力来构建预先训练的模型。作为示例,用于模式识别的输入向量被定义为 ,其具
有N个特征(Fn)中的每个特征的权重,并且基于权重给出模型的模型更接近于模式。在这种情况下,选择总是提供最接近于输入模式的算法,例如k最近邻。
[0116] 在可选的发现(一个或多个)重叠特征的步骤46f中,模型确定器对于每个候选学习模型发现重叠特征的集合,所述重叠特征是与至少一个特征候选重叠的输入特征。换句
话说,重叠特征的集合是特征候选和输入特征的交集。
[0117] 在可选的将权重相加的步骤46g中,模型确定器对于每个候选学习模型,将重叠特征的输入特征的输入特征权重相加。这产生加权的输入特征分数。
[0118] 在可选的选择模型的步骤46h中,模型确定器将新学习模型选择为具有最大加权的输入特征分数的候选学习模型。
[0119] 现在看图4E,示出了包括简化的迭代的实施例。选择新模型的步骤46在此包括可选的存储权重的步骤46i,其中模型确定器存储与相应输入特征关联的输入特征权重作为
输入特征权重的集合。
[0120] 在触发新模型的加载的步骤48之后,存在可选的有条件的下一迭代简化的步骤49,其中模型确定器评估该方法的下一迭代将是完整迭代还是简化迭代。这种评估可基于
超时,例如在某个周期期间完整迭代需要被执行至少一次。备选地,评估可基于迭代的次
数,例如每N次有一个完整迭代,其中是任何自然数。
[0121] 当下一迭代是简化迭代时,该方法可选地经由延迟步骤(未示出)返回到可选的将权重相加的步骤46g(其中使用存储的权重)。否则,该方法返回到检测对新模型的需要的步骤42。
[0122] 用这种方式,简单的迭代包括对不同输入特征的加权评估。然而,简单的迭代不包括资源密集的(一个或多个)确定特征候选的步骤44和发现重叠特征的步骤46f。用这种方式,模型确定在简化迭代中更有效得多。然而,由于重叠特征在简化迭代中不改变,所以有时应该执行完整方法。
[0123] 因此,如果从先前步骤中选择了多个模型作为候选,则该列表可被存储并且根据先前模型的性能顺序地使用。例如,如果选择了模型[A,B],则A将被加载,并且B待决直到超时周期到期,或模型A得到预期性能。
[0124] 实现场景现在将描述示例实现场景,以说明本文呈现的实施例的使用。该场景在包括用户的腕
带的系统中执行。腕带包括心率监测器(F1)和IMU传感器(F2)。在这个应用中存在三个模型。
对于手势识别,存在用于左手腕使用的具有特征F2的第一模型A和用于右手腕使用的第二
模型B。此外,存在使用特征F1和F2的用于活动跟踪的第三模型C。
[0125] 由此存在两个示例应用。第一应用是人机界面,其中传感器装置2(具有F2)用于借助于用户手势与应用交互。例如,具有放大/缩小的图像处理应用。第二应用是运动活动跟踪,其中传感器装置2(具有特征F1和F2)用于监测用户执行的运动活动。
[0126] 假定传感器装置2最初由具有用于左手腕的手势识别模型(模型A)的腕带加载。
[0127] 最初,用户在他的左手腕上有腕带。在将传感器装置2通电之后,步骤42检查是否已经加载模型,发现模型A正在被加载。
[0128] 在这点,使用模型A,并启用IMU传感器(F2),而F1保持禁用,不消耗任何电池。
[0129] 还作为步骤42的一部分,传感器装置2监测模型的性能并同时执行分类。
[0130] 使用模式识别单元,在恒定时间内执行分类(O(1)算法),并且以可忽略的处理时间自动获取模型的实时性能度量。如果使用其他上下文来检测对新模型的需要,则增加分类时间。上下文切换时间可忽略。
[0131] 在该示例中,模式识别没有检测到任何触发,因为用户没有使用腕带作为手势识别。在这点,触发步骤44。步骤44用于分析哪些特征候选可以用在传感器装置2中。
[0132] 在这点,将所有传感器(F1和F2)启用以标识应该使用的传感器数据。在此周期期间,分类未被启用。因此,在该阶段的时间保持较短,但同时,给出特征候选的良好估计。
[0133] 在执行该步骤之后,基于归一化度量(诸如z分数、四分位距、熵等)的计算来选择特征列表。基于其相关性的特征的经排序的列表简化了模型的选择,允许算法跳过这个步骤(见图4E)。
[0134] 在此示例中,用户开始行走,这意味着心率的增加(F1)和IMU传感器数据的改变(F2)。从而,F1和F2被选择作为特征候选(FC=[{权重:1,值:“F1”},{权重:0.5,值:“F2”}])。
在选择了FC的情况下,触发步骤46。
[0135] 在选择了特征候选(FC)的情况下,系统准备好选择可以使用哪个(哪些)模型。该步骤的实现取决于传感器装置2:存储设备/存储器单元:所有模型被本地存储,并在传感器装置2中做出判定。时间可忽
略。
[0136] 通信单元:模型可存储在另一传感器装置/服务器中,并与另一装置/网关协作完成判定。当模型的转移通过空中执行,并且基于所有其他装置响应作出判定时,用于此的持续时间相当长。
[0137] 为了基于在先前步骤的FC来选择最佳模型,步骤46将FC与存储单元中可用的模型进行比较。由于模型C具有F1和F2作为特征,因此选择模型C。在选择之后,触发步骤48以将模型C加载到模式识别单元中。
[0138] 在这点,模型C在主处理器中可用(从存储设备或通信单元),并且然后移至模式识别单元。时间是可忽略的,因为其正在从主处理器的存储器向模式识别单元加载模型副本。
[0139] 在步骤48之后,该方法继续进行新模型的监测(步骤42),并且一旦模型C没有如预期那样执行,就标识对新模型的需要。
[0140] 一旦模型被加载,分类输出就被启用。每个分类花费恒定的时间,与上下文中使用的神经元数量或数据大小无关。
[0141] 在这点,如果在短间隔内检测到差的性能,则该方法继续加载在步骤46中生成的列表中可用的下一模型。
[0142] 图5A-B是图示被实现为主机装置的一部分的模型确定器的实施例的示意图。
[0143] 在图5A中,示出了实施例,其中在传感器装置2中实现模型确定器1,即传感器装置2是模型确定器1的主机装置。这允许模型确定器1在本地执行,消除了对用于执行本文呈现的实施例的通信的任何需要。
[0144] 在图5B中,示出了实施例,其中在服务器7中实现模型确定器1,即服务器7是模型确定器1的主机装置。这降低了对传感器装置2的资源要求,因为本文呈现的实施例的处理
在服务器7上实现。
[0145] 图6是图示根据一个实施例的图5A-B的模型确定器1的组件的示意图。要注意,当模型确定器1在主机装置中实现时,图6的一些或所有组件可以与主机装置共享。使用能够
执行存储在存储器64中的软件指令67的合适的中央处理单元(CPU)、多处理器、微控制器、数字信号处理器(DSP)、专用集成电路等中的一个或多个的任何组合来提供处理器60,存储器64从而可以是计算机程序产品。处理器60能被配置成执行上面参考图4A-E描述的方法。
[0146] 存储器64可以是随机存取存储器(RAM)和只读存储器(ROM)的任意组合。存储器64还包括永久存储设备,其例如可以是磁存储器、光存储器、固态存储器或甚至远程安装的存储器中的任何单个存储器或其组合。
[0147] 还提供了数据存储器66,以用于在处理器60中执行软件指令期间读取和/或存储数据。数据存储器66可以是随机存取存储器(RAM)和只读存储器(ROM)的任意组合。
[0148] 模型确定器1的其他组件被省略,以便不模糊本文呈现的概念。
[0149] 图7是示出根据一个实施例的图5A-B的模型确定器1的功能模块的示意图。这些模块使用软件指令(诸如在模型确定器1中执行的计算机程序)来实现。备选地或附加地,这些模块使用硬件(诸如ASIC、FPGA(现场可编程门阵列)或分立逻辑电路中的任何一种或多种)实现。模块对应于在图4A-4D中图示的方法中的步骤。
[0150] 分类评估器70对应于步骤40。新模型需要检测器72对应于步骤42。特征候选确定器74对应于步骤44。新模型选择器76对应于步骤46。权重获得器76a对应于步骤46a和46e。
重叠发现器76b对应于步骤46b和46f。权重相加器76c对应于步骤46c和46g。模型选择器76d对应于步骤46d和46h。权重存储器76i对应于步骤46i。
[0151] 图8示出了包括计算机可读部件的计算机程序产品的一个示例。在这个计算机可读部件上,能存储计算机程序91,该计算机程序能使处理器执行根据本文描述的实施例的
方法。在该示例中,计算机程序产品是光盘,诸如CD(压缩盘)或DVD(数字多功能光盘)或蓝光盘。如上文所解释的,计算机程序产品也可能被体现在装置的存储器中,诸如图6的计算机程序产品64中。虽然计算机程序91在此被示意性地示出为所描绘的光盘上的轨道,但是
计算机程序能以适合于计算机程序产品(诸如可移除固态存储器,例如通用串行总线(USB)驱动器)的任何方式存储。
[0152] 已经主要参考几个实施例在上面描述了本发明。然而,如由本领域技术人员容易认识到的,除了上面公开的实施例之外的其它实施例同样有可能在如由所附专利权利要求
所定义的发明范围内。