独立的应用安全管理的制作方法

文档序号:14353094阅读:147来源:国知局
独立的应用安全管理的制作方法
本公开总体上涉及计算机系统的领域,并且更具体地涉及数据分析。
背景技术
:互联网已经实现了全世界不同的计算机网络的互连。虽然以前互联网连接被限于传统的通用计算系统,但是越来越多数量和类型的产品被重新设计,以适应通过计算机网络(包括互联网)与其他设备的连接。例如,智能电话、平板电脑、可穿戴设备以及其他移动计算设备已经变得非常流行,近年来甚至代替了更大、更传统的通用计算设备,例如传统的桌上型计算机。传统地在通用计算机上执行的任务越来越多地使用具有更小形状因子和更紧凑的特征集和操作系统的移动计算设备来执行。此外,传统的装置和设备变得“更智能”,因为它们无处不在并且配备有连接到或消费来自互联网的内容的功能。例如,诸如电视机、游戏系统、家用装置、恒温器、汽车、手表之类的设备已经配备有网络适配器以允许该设备直接地或通过与连接到网络的另一计算机的连接来与互连网(或另一设备)进行连接。另外,互连的设备的这种日益增长的体系也促进了计算机控制的传感器的增加,这些传感器同样是互连的并且收集新的且大量的数据的集合。越来越多数量的设备或“事物”的互连被认为预示着高级自动化和互连,有时被称为物联网(iot)的新时代。附图说明图1示出了包括多个传感器设备和示例数据管理系统的系统的实施例。图2示出了包括被配置为确定缺失数据值的示例数据管理系统的系统的实施例。图3示出了示例数据集的部分中的缺失数据的表示。图4示出了根据示例数据集生成的张量的使用。图5a-图5b示出了张量中的空平面的表示。图6示出了示例数据集中的缺失数据的补救。图7是示出了根据至少一些实施例的用于使用张量来确定缺失数据的示例技术的流程图。图8是根据一个实施例的示例性处理器的框图;以及图9是根据一个实施例的示例性计算系统的框图。在各个附图中相似的附图标记和标志指示相似的元件。具体实施方式图1是示出了包括部署在整个环境中的一个或多个传感器设备105a-d的系统100的简化表示的框图。每个设备105a-d可以包括各种类型的传感器(例如110a-d)的一个或多个实例。传感器能够检测、测量和生成描述环境特性的传感器数据。例如,给定的传感器(例如,110a)可以被配置为检测诸如运动、重量、物理接触、温度、风、噪声、光、计算机通信、无线信号、湿度、辐射或特定化合物的存在以及若干其他示例等的特性。事实上,如本文中所描述的传感器(例如,110a-d)预期了各种传感器的潜在无限体系的发展,每个传感器被设计为并且能够检测并生成用于新的和已知的环境特性的相对应的传感器数据。在一些实现中,传感器设备105a-d及其组成传感器(例如,110a-d)可并入和/或体现物联网(iot)系统。iot系统可以指代由交互操作并协同工作以传递一个或多个结果或可交付成果的多个不同设备组成的新的或改进的点对点系统和网络。随着越来越多的产品和装置逐渐变得“智能”,这是由于产品由计算处理器控制或监视并且被提供有用于通过计算机实现的机制与其他计算设备(和具有网络通信能力的产品)通信的设施,出现了这样的点对点系统。例如,iot系统可以包括由集成在“事物”中或附接到“事物”的传感器和通信模块构造的网络,所述“事物”例如是设备、玩具、工具、车辆等,并且甚至是生物(例如,植物、动物、人类等)。在一些实例中,iot系统可以有组织地或意外地发展有传感器的集合,所述传感器的集合监测各种事物和相关环境,并且与数据分析系统和/或以下系统进行互连,所述系统控制一个或多个其他智能设备以实现包括先前未知的使用情况的各种使用情况和应用。因此,iot系统通常可以由连接的系统的复杂而多样的集合(例如,来源于实体的不同分组以及通过所述实体的不同分组控制,并且采用各种硬件、操作系统、软件应用以及技术)组成。除了其他示例考虑之外,在构造或定义iot系统时,促进这种多样系统的成功的交互操作是重要的问题。如图1的示例所示,可以提供多个传感器设备(例如,105a-d)。传感器设备可以是包括一个或多个传感器(例如,110a-d)的任何装置。例如,传感器设备(例如,105a-d)可以包括以下示例:例如,移动个人计算设备(例如,智能电话或平板设备)、可穿戴计算设备(例如,智能手表、智能服装、智能眼镜、智能头盔、头戴式耳机等)、以及不太常规的计算机增强产品(例如,智能装置(例如,智能电视、智能冰箱等))、家庭或建筑自动化设备(例如,暖通空调(hvac)控制器和传感器、光检测和控制、能量管理工具等)等等。一些传感器设备可以是针对主传感器专门构造的,例如,包括与天气监测有关的多个传感器(例如,温度、风、湿度传感器等)的天气传感器设备。一些传感器可以是静态定位的,例如,安装在建筑物内的传感器设备、安装在灯柱或其他外部结构上的传感器设备、固定到地板(例如,室内或室外)的传感器设备等等。其他传感器可以监测移动环境的环境特性,例如在车辆内部或外部提供的传感器、包装内的传感器(例如,用于跟踪货物)、活动的人类或动物用户佩戴的可穿戴传感器等等。还有其他传感器可以被设计为在环境内移动(例如,自主地或在用户的控制下),例如,被实现为空中的、基于地面的或水下无人机的传感器设备等等。在传感器设备的集合中的一些传感器设备(例如,105a-d)可以具有相同类型的传感器的不同的实例(例如,110a-d)。例如,在图1所示的特定示例中,传感器设备105a-d中的每一个各自包括传感器110a-c的实例。尽管传感器设备105a、b、d还包括传感器110d的实例,但是传感器设备105c缺少这样的传感器。此外,尽管一个或多个传感器设备105a-d可以共享(即,由特定传感器的相应实例提供的)用于收集相同类型的信息的能力,但是传感器设备(例如,105a-d)的公共传感器(例如,110a-c)的相应实例可以不同,因为它们由不同的实体制造或校准、生成不同的数据(例如,不同的格式、不同的测量单位、不同的灵敏度等)、或者具有不同的物理特性(例如年龄、磨损、操作条件)等等。因此,甚至在多个不同的传感器设备(例如,105a-d)上提供的相同传感器类型的实例(例如,110a)可以不同地或不一致地进行操作。例如,在第一传感器设备(例如,105a)上提供的特定类型的传感器(例如,110a)可以比在另一传感器设备(例如,105b)上提供的相同类型的不同传感器(例如,110a)更可靠地工作。结果,与由第二传感器设备上的相同类型的传感器生成相比,第一传感器设备上的传感器可以更一致地并且更频繁地生成用于相对应的环境特性的传感器数据。另外,由传感器设备(例如,105a-d)提供的特定类型的一些传感器可以生成不同测量单位的数据,尽管表示可比较的语义含义或状态。例如,来自温度传感器的数据可以用摄氏、华氏或开氏中的任何一种来表示。类似地,托管一个或多个传感器的一些传感器设备可以比其它传感器设备更可靠地工作,导致一些传感器设备比其他传感器设备提供对传感器数据更丰富的贡献。考虑到传感器设备和/或所涉及的操作条件的多样性,这种不一致可以被认为在一些iot系统中是固有的。然而,由系统内的传感器设备(例如,105a-d)的集合导致的传感器数据的成品中的不一致可以导致在由传感器设备的集合生成的聚合数据集中的间隙或“缺失数据”,等等问题。继续图1的示例,在一些实现中,一个或多个系统可以控制、监测和/或消费由传感器设备(例如,105a-d)的集合生成的传感器数据。例如,服务器系统(例如,120)可以服务于从由传感器设备(例如,105a-d)的集合生成的传感器数据导出的应用或服务。服务器系统120可以消费由传感器设备的集合生成的数据集,以通过对该数据集的分析来提供附加的效用和见解。这样的服务可以包括(以及潜在的无限制性的可替代示例)基于描述空气质量特性的多个数据点的空气质量分析、基于与安全有关的多个数据点的建筑安全性、基于描述单个或成组的人类用户的健康特性的多个数据点的个人健康,等等。由服务器系统120消费的传感器数据可以通过一个或多个网络(例如,125)被传递到服务器系统120。在其他实例中,在使传感器数据可用于由一个或多个服务器系统(例如,120)消费之前,由传感器设备(例如,105a-d)的集合生成的传感器数据可以由数据管理系统(例如130)来聚合并且预处理。在一些情况下,数据管理系统130可以被实现为与使用由数据管理系统130构建的数据集的服务器系统(例如,120)分开,甚至独立于该服务器系统。在这种情况下,数据集(根据聚合传感器数据生成的)可以通过一个或多个网络(例如,125)被传递到一个或多个服务器系统(例如,120)或以其他方式使其可访问。在其他实现中,数据管理系统130的功能可以与服务器系统120的功能集成在一起,允许单个系统准备、分析和托管来源于一组传感器设备的传感器数据的集合的服务,以及其他示例。示例数据管理系统130可以聚合来自传感器设备的集合的传感器数据,并且对聚合数据执行维护任务,以使其准备好以供一个或多个服务消费。例如,数据管理系统130可以处理数据集以解决上面介绍的缺失数据问题。例如,数据管理系统130可以包括用于确定未观察到的数据点的值以填充根据聚合传感器数据开发的数据集内的空洞的功能。在某些情况下,缺失数据可能损害或破坏整个数据集以及消费或以其他方式取决于该数据集的任何服务或应用的效用。在一个示例中,数据管理系统130可以基于张量因式分解使用空间相干性、时间相干性和多模态相干性等等示例性技术来确定缺失数据的值。一个或多个网络(例如125)可以促进传感器设备(例如,105a-d)与管理和消费传感器设备的数据的系统(例如120、130)之间的通信,一个或多个网络包括局域网、公共网络、广域网、宽带蜂窝网络、互连网等。另外,计算环境100可以包括一个或多个用户设备(例如135、140、145、150),其可以允许用户访问由一个或多个系统(例如,120、130)通过网络125托管的或者至少部分地位于用户设备(例如,145、150)本地的应用、数据和/或服务中的一个或多个,并且与其进行交互。通常,示例计算环境100中的“服务器”、“客户端”、“计算设备”、“网络元件”、“主机”、“系统类型系统实体”、“用户设备”、“传感器设备”以及“系统”(例如,105a-d、120、130、135、140、145、150等)可以包括电子计算设备,该电子计算设备可操作以用于接收、发送、处理、存储或管理与计算环境100相关联的数据和信息。如本文中所使用的,术语“计算机”、“处理器”、“处理器设备”或“处理设备”旨在涵盖任何合适的处理装置。例如,被示为计算环境100内的单个设备的元件可以使用多个计算设备和处理器(例如,包括多个服务器计算机的服务器池)来实现。此外,计算设备中的任何、全部、一些可以适用于执行任何操作系统,包括linux、unix、microsoftwindows、appleos、appleios、googleandroid、windowsserver等,以及适用于包括定制和专有操作系统的特定操作系统的虚拟化执行的虚拟机。虽然图1被描述为包含多个元件或者与其相关联,但是不是图1的计算环境100内示出的所有元件都可以在本公开的每个可替代实现中来利用。另外,结合图1的示例所描述的元件中的一个或多个可以位于计算环境100的外部,而在其他实例中,某些元件可以被包括在其他所描述的元件中的一个或多个内部,或者作为其部分,以及被包括在在所示出的实现中没有描述的其他元件中的一个或多个内或作为其一部分。此外,图1中所示出的某些元件可以与其他组件组合,以及用于除了本文中描述的这些目的之外的可替代或附加的目的。iot系统的潜在承诺是基于多个不同智能设备和传感器的协作和交互操作,增加用于将潜在的无限制性设备和计算机增强的产品进行互连并且传递迄今为止无法想象的创新和解决方案的能力。iot系统的特点是包含显著数量的多样的设备、许多不同的架构、多样的网络以及各种不同的使用情况。iot的成功部署中的挑战是在动态和具有挑战性的操作环境中的当前iot技术的静态本质和不可靠的操作。提供其中每个设备都表现为具有共同且一致的质量和可靠性水平的多样的设备的iot系统对于许多解决方案而言是难以实现的,甚至是成本高昂的。这种时好时坏的交互操作和系统范围性能可以导致缺失数据,因为各种iot设备或其传感器间歇地或定期地不能按设计来运行。这样的缺失数据可以是有问题的,因为iot系统的网络中的其他设备可以取决于缺失数据来生成它们的数据,从而导致跨系统的缺失数据链。在示例实现中,多模态方法被应用于使用时空相干性来补救iot系统中的缺失数据。多模态可以指代彼此互补的、有差异的或不同的多个特性的存在。例如,不同的传感器可以测量若干不同的和有差异的类型的特性,并生成描述多样类型的信息的相对应的数据。作为示例,可以部署iot系统来解决城市环境中的空气质量测量。因此,可以在环境中放置众多传感器,包括非常规区域(例如,在建筑物顶上、灯柱上、用户携带的设备上、车辆上等等)中的传感器。此外,不同的传感器可以测量不同的特性,例如风速、空气气温、湿度、气压、光照水平、表面温度、臭氧水平等等。由于诸如间歇性网络连接、传感器的不可靠操作、软件/硬件故障、电力中断、物联网设备的定期维护、差的环境条件等等之类的问题,缺失数据可以产生,并且缺失数据可以跨越不同类别的数据(即,它不仅仅被包含于什么类型的数据)。这种缺失数据可以危及系统的效用。可以提供一种系统,其包括以硬件和/或软件实现的逻辑,所述逻辑用于通过利用多模态使用时空相干性,来生成替代数据以补充缺失数据,从而恢复缺失数据。这样的替代数据可以恢复针对缺失集合中的大部分(例如,缺失80%或更多)的数据集的缺失数据,其具有高准确度并且不需要先验知识(例如,来自先前观察到的数据的先前确定的趋势或模式)等等示例性优点。例如,系统可以使用协作过滤以利用矩阵或张量因式分解来预测缺失值。协作过滤可以指代使用涉及多个视点当中的协作的技术来针对信息进行过滤的过程。在本示例中,可以使用广义张量因式分解,其考虑空间相干性、时间相干性以及多模态中的每一个。张量可以指代将标量、向量和矩阵泛化为任意数量的索引。张量因式分解以不完整的一组数据作为输入,将不完整的一组数据表示为不完整的张量,并学习模型来预测不完整的张量内的未知值。转到图2,示出了示意性示出如下系统的简化框图200,所述系统包括被配置为使用张量因式分解来确定数据集中的缺失值的数据管理引擎130的示例实现。该系统可以包括数据管理引擎130、一组传感器设备(例如,105a-b)以及服务器120。该数据集可以由传感器设备(例如,105a-b)的集合生成的传感器数据(例如,235)组成。在一个示例中,传感器设备105a、105b可以包括一个或多个处理器设备205、210、一个或多个存储器元件215、220、一个或多个传感器(例如,110a-b)以及以硬件和/或软件实现的一个或多个附加的组件,例如,通信模块225、230。通信模块225、230可以促进传感器设备与一个或多个其他设备之间的通信。例如,通信模块225、230可以用于与数据管理引擎130或服务器120接合,以使由传感器设备生成的传感器数据(例如,235)可用于接合系统。在一些情况下,传感器设备(例如,105b)可以生成传感器数据并且使数据立即被传送或上传到另一设备或系统(例如,数据管理系统(或“引擎”)130)的存储装置,允许传感器设备的数据存储能力得以简化。在其它实例中,传感器设备(例如,105a)可以将其生成的传感器数据(例如,235)高速缓存或存储在数据存储装置(例如240)中。在这样的实例中,传感器数据235可以通过允许访问数据存储装置240的内容,传感器数据的块被报告或上传到消费系统(例如,120、130)而使其可用于其他系统(例如,120、130)。通信模块225、230可以促进附加的通信,例如,用户设备的通信,所述用户设备例如用于管理、维护或以其他方式将可视性提供到传感器设备。在其他实现中,传感器设备(例如,105a-b)可以与其他传感器设备通信并交互操作,并且通信模块225、230可以包括准许传感器设备之间的通信的功能。通信模块225、230可以促进使用一个或多个通信技术的通信,该一个或多个通信技术包括有线和无线通信,例如通过wifi、以太网、近场通信(nfc)、蓝牙、蜂窝宽带和其他网络(例如125)的通信。在图2的特定示例中,数据管理引擎130可以包括一个或多个处理器设备245、一个或多个存储器元件250以及以硬件和/或软件实现的一个或多个组件,例如,传感器管理器255和缺失数据引擎260等等。在一个示例中,传感器管理器255可以被配置为维护用于识别系统内的传感器设备(例如,105a-b)中的每一个的记录。传感器管理器255可以与传感器设备中的每一个进行接合,以获得由每个传感器设备生成的相应传感器数据。如上所提到的,在一些实例中,传感器数据当被生成时可以被传递到传感器管理器255(例如,通过网络125)。在其它情况下,传感器管理器255可以查询传感器设备以获得在传感器设备处生成和存储的传感器数据,以及其他示例。传感器管理器255可以聚合并且组织从(可能多样的)服务器设备(例如,105a-b)的集合获得的传感器数据。传感器管理器255可以检测、维护或以其它方式识别每个传感器设备的特性,并且可以将这些特性(例如,传感器类型、传感器模型、传感器位置等)归属于由相对应的传感器设备生成的传感器数据。传感器管理器还可以管理和控制传感器设备的网络的操作,以执行特定感测或监测会话以及其他示例。在一个示例中,数据管理引擎130可以包括缺失数据引擎260,缺失数据引擎260可以包括用于确定从传感器设备105a-b收集的聚合传感器数据中的缺失数据的值的子组件。例如,在一个实现中,缺失数据引擎260可以包括张量生成器265、张量因式分解引擎270和内插逻辑275、以及以硬件和/或软件实现的其他组件等等。张量发生器265可以被配置为处理具有缺失数据的数据集285,以确定针对数据集285的一个或多个三维张量280。数据集285可以体现从多个不同的传感器设备(例如,105a-b)收集的传感器数据的聚合。张量因式分解引擎270可以利用针对特定数据集285生成的张量280,来确定特定数据集285中的一个或多个缺失数据值的值。在一些情况下,张量因式分解可以准许确定特定数据集中的所有缺失数据值的值。在这样的实例中,数据集可以是“完整的”并且可用于进一步处理(例如,结合由服务器120提供的服务290)。在其他实例中,张量因式分解可以确定数据集中的缺失数据的值中的大部分但不是全部(例如,根据相对应的张量280)。在这样的实例中,内插逻辑275可以用于确定其他缺失数据值。具体而言,张量因式分解引擎270可以完成张量表示内的所有缺失值。然而,在一些情况下,在张量表示内不能被理解的值可以是令人感兴趣的(例如,对应于没有特定部署的传感器类型的地理位置、没有任何观察到的传感器值的时刻等)。内插逻辑275可以在张量因式分解学习之后的部分完整的数据集285上进行操作。换言之,可以对由原始观察到的数据值和合成生成的缺失数据值(即,来自张量因式分解)组成的改进数据集执行由内插引擎275执行的内插。内插可以用于解决在张量因式分解之后剩余的任何缺失数据值,以完成数据集285并使其准备好用于进一步处理。可以提供服务器系统120来消费由数据管理系统130准备的完整的数据集285。在一个示例中,服务器120可以包括一个或多个处理器设备292、一个或多个存储器元件295以及将被执行以提供一个或多个软件服务或应用(统称为290)的代码。服务290可以对数据集285执行数据分析生成结合服务290的一个或多个输出。在一些情况下,服务290可以对数据集285进行操作以基于数据集285中的信息导出结果报告条件或事件。在一些示例中,服务290可以进一步使用这些结果来触发警报或其他事件。例如,服务290可以基于根据完整的数据集285确定的输出将信号发送到计算设备,以使计算设备执行与事件相关的动作。在一些情况下,服务290可以响应于该事件使在特定传感器设备上提供的或结合特定传感器设备的附加功能而执行特定动作,以及其他示例。在一个示例中,为了确定针对数据集的张量,可以分别确定空间相干性、时间相干性和多模态相干性。张量可以表示空间相干性、时间相干性和多模态相干性之间的协同关系。相干性可以以及可以不表示连续性。另一方面,数据内插可以假设当张量因式分解学习相干性时的连续性,该相干性在任何意义上都可以不是连续的。空间相干性可以描述在物理空间(横向或纵向)的不同点处测量的数据之间的相关性。时间相干性可以描述在各种时刻处数据之间的相关性。多模态相干性可以描述从各种异构传感器收集的数据之间的相关性。张量可以由这些相干性生成,并且可以表示包括未知值或缺失值的更广泛的数据集,张量因式分解用于预测缺失值。用于确定缺失数据的传统技术依赖于基于一个或多个函数f的数据模型,每个函数用于根据一个或多个相应的变量或特征x来确定相应的值y。在这样的模型中,值y的确定取决于x,并且因此,对于我们要预测的任何数据点(例如,y的),相对应的特征x必须存在。换言之,特征可以被认为是与特定的一组数据值相关的附加信息。例如,在空气质量推断中,特征可以包括人口、温度、工作日或周末、湿度、气候等,取决于以上各项来定义一个或多个其他值。然而,当特征值在空间和时间上不可用时,取决于该特征的其他数据的值是不可用的。特征的一致可用性并不总是全面的或可用的,导致当特征依赖于各种数据的内插时出现错误。提供基于利用时空相干性的多模态的缺失数据张量因式分解的系统可以执行,而不使用特征(尽管特征可以用于补充解决方案的能力)。相干性可以不假设空间和/或时间中的连续性,而是自动在空间、时间和多模态传感器之中协同地学习相干性。注意张量表示不假设连续性;即,即使事先对超平面(例如,3d张量中的平面)进行混洗,结果也是相同的。虽然内插通常考虑空间连续性和时间连续性,但是数据管理引擎可以共同地和协作地使用张量因式分解来确定(或预测或推断)多模态的数据值。作为示例,在数据集表示空气质量样本的情况下,取决于空间相干性、时间相干性和其他环境因素,粗尘颗粒(pm10)和细颗粒(pm2.5)可以是相关或不相关的。然而,张量因式分解可以学习它们的相关性,如果有的话,而不需要额外的信息或特征(例如,由受监督的学习技术使用的,如要求特征的支持向量机(svm))等等。虽然图2示出了包括示例数据管理引擎的系统的一个示例,但是应当意识到的是,图2中示出的系统被提供作为非限制性示例。实际上,各种可替代实现同样可以应用图2(以及说明书中的其他地方)中引入的一般原理。例如,服务器和数据管理引擎的功能可以被组合。在一些实例中,数据管理引擎可以包括传感器设备的集合中的传感器设备中的一个或结合其来被提供(例如,具有数据管理逻辑的传感器设备充当集合的“主”)。在一些实例中,服务器和数据管理引擎中的一个或两个的功能可以至少部分地由传感器设备中的一个或多个(并且可能还由远程中央服务器系统)来实现。事实上,在一个示例中,数据管理引擎可以通过将多个传感器设备的处理资源集中在一起来实现。又在另一可替代示例中,数据管理引擎的各种组件可以通过由多个不同的主机计算机托管的多个不同的系统(例如,而不是靠单个设备或系统)来提供。此外,虽然图1和图2中表示的传感器设备被示出为具有不同的感测能力,但是在一些实现中,传感器设备中的每一个均可以配备有匹配的感测能力,以及其他可替代示例。转到图3,示出了举例示出由三个传感器设备生成的并且包括缺失数据的数据集的表示的简化框图300。图3表示在三个时刻(即,t-2、t-1和t)处收集的数据集的部分310a、310b、310c。在每个时刻,在三个不同的物理位置处的三个有差异的传感器设备(由分组315a-c、320a-c、325a-c表示)可以尝试使用四个不同的传感器或模态(例如,330a-d)来提供数据。因此,框图300表示数据集内缺失数据的实例。例如,单元330a被表示为填充的以指示数据是由空间上位于第一传感器设备处的第一传感器类型在时间t-2处返回的。类似地,如单元330b所示,数据是由位于第一传感器设备处的不同的第二传感器在时间t-2处返回的。然而,数据是在时间t-2,在第一传感器设备处从第三和第四传感器(如空元素330c-d所示)中缺失的。在图3中进一步示出,在一个示例中,虽然数据由第一传感器设备的第一传感器在时间t-2处成功地生成(如由330a所示),但是相同的传感器的数据在时间t-1处缺失(如由335所示)。实际上,如单元320b所示,位于第二传感器设备处的传感器在时间t-1处不生成数据,而第三传感器设备中的四个传感器中的三个(例如,第一、第三和第四类型的传感器)在时间t-1处生成数据。由于各种原因,传感器设备在特定时刻无法生成针对特定模态的数据,所述原因包括传感器的故障、传感器设备的故障(例如,通信或处理故障)、功率损失等。在一些实例中,传感器设备可以简单地缺少针对特定模态的传感器。作为示例,在图3中,由第二传感器设备(由320a-c表示)生成的数据可以永远不包括第一和第二传感器类型的数据。在一些示例中,这可以是由于第二传感器设备不具有第一和第二类型的传感器,以及其他潜在的原因。如图3所示,每个数据值可以具有至少三个特性:空间位置(可从托管负责生成数据值的传感器的传感器设备的位置辨别)、时间戳、以及模态(例如,传感器的类型或者如何获得数据)。因此,设备位置、传感器类型、以及时间戳可以分别被表示为d、s、t,其中vd,s,t指代在(d,s,t)处的数据点的值。因此,每个数据点的值可以由(d,s,t,vd,s,t)表示,如图3所示。对于缺失数据,相对应的值vd,s,t将是空的。在一个示例中,缺失数据的值(例如,图3中所示)可以通过每个传感器的归一化参数并且学习潜在因子以使用张量因式分解来对每个设备(或空间位置)(d)、传感器(或模态)(s)、时间戳(t)数据点的潜在信息进行建模,来推断。然后,在数据集中的空间或时间间隙中剩余的、不可通过张量因式分解解决的任何缺失数据可以使用基于预测值的内插来补偿训练数据的稀疏。例如,可以使用内插来推断在没有收集到(任何模态的)数据的位置或时刻处的缺失数据。可以通过归一化以解决由不同的传感器生成的不同类型的数据的值范围中的变化,来预处理多模态数据集。在一个示例中,归一化可以根据下面的等式来制定:其中,μs表示平均值,σs表示具有传感器类型或模态s的所有观察到的值的标准差。在一些情况下,归一化可以是可选的。在进行确定数据集中的缺失数据值时,可以构建和学习潜在因素。转到图4,示出了表示缺失数据张量因式分解的高级概念的简化框图400。原始数据(例如,来自310a-c)可以根据设备位置(空间)d、传感器类型(模态)s以及时间戳t的三个维度被转换成张量v(405)。因此,张量v(405)可以具有维度dxsxt,并包括来自原始数据中的缺失值。张量因式分解可以用于将v分解为一组低秩矩阵(例如,410、415、420)d,s,t,使得:vd,s,t=dd·ss·tt,其中d∈rdk,s∈rsk,t∈rtk张量因式分解可以通过生成针对缺失数据的至少一部分的高准确度的预测值来解决多模态缺失数据。具有缺失数据的张量v可以被分解成潜在因子d、s、t。在没有针对每个数据点(d,s,t)的特征的情况下,标准受监督的机器学习技术不能学习特征到值的映射。然而,张量因式分解可以用于对数据进行建模并推断其低秩隐式结构或潜在因子。假设存在针对所有设备位置、传感器类型、以及在所有时间戳处的潜在因素子,则缺失数据可以通过学习来自(当前)观察到的数据的潜在因子来进行建模。因此,可以利用这些潜在因子来进行预测和进一步优化。给定针对每个设备位置、传感器类型和时间戳的维度k的任意潜在因子,针对(缺失)数据点(d,s,t)的预测可以根据以下公式来确定:等式(1)和(2)可以结合使用来导出利用潜在因子的目标函数。在某些情况下,使用等式(1)和(2)之间的均方差可以用来开发优化的训练数据,然而,这种方法可能会过度拟合训练数据并生成次优的泛化结果。因此,在一些实现中,可以将正则项进一步应用于目标函数并应用于潜在因子d、s和t,以调整模型的复杂度。例如,可以采用l2正则项,即潜在因子的frobenius范数,来确保通过目标函数的可微分性。作为示例,正则化可以与归一化(例如,等式(1))组合以生成:在等式(3)中,λ是被选择以用于表示最小化预测误差和复杂度控制之间的权衡的值。为了优化等式(3),可以使用随机梯度下降(sgd)。例如,观察到的数据点可以随机地来选择,并且可以使用目标函数(3)的梯度来进行优化。例如,针对潜在因子的sgd训练算法可以被体现为:输入:一组数据点(d,s,t),其值vd,s,t、迭代n、潜在维度k以及学习速率α输出:训练的潜在因子随机地初始化d,s,t,维度(设备的#,k)、(传感器的#,k)、(时间戳的#,k)得到的潜在因子d、s、t可以被看作是原始观察到的数据集的因式分解。例如,如图4中所表示的,假设原始数据集用公式表述为模型-3张量405,则可以将传感器数据因式分解成三个不相交的低秩表示(例如,410、415、420),例如使用parafac因式分解或另一张量分解技术。在一些情况下,低秩属性还可以表明对来自有限搜索空间的未知数据进行更好的泛化以用于优化模型,以及其他示例。通过张量因式分解,可以恢复张量内的缺失数据条目。然而,在一些情况下,缺失数据值可以位于多模态数据集中的张量之外。例如,如果张量中完全没有针对特定“平面”的值,则相对应的潜在因子不存在(并且实际上在张量中这个平面也不存在)。在一个示例中,如图5a-图5b所示,当在所有设备处在特定时间戳处没有传感器读数时,可以存在张量405中的缺失数据的平面,例如由图5a中所示的平面505表示。另外,在特定设备位置处在任何时刻没有传感器读数时,可以生成张量405中的缺失数据的平面,例如由图5b中所示的平面510表示。可以识别缺失数据的平面(在张量405的生成之前或之后)以触发对张量因式分解的结果的内插步骤。对空间间隙(例如,平面505)进行桥接可以通过内插以近似未观察到的设备d'的值来实现,如下:为了及时桥接间隙,d'可以例如通过学习使得邻近时间潜在因子之间的euclidean距离最小化的目标函数来进行泛化,以及其他示例实现。转到图6,示出了示意性示出对由从多个传感器设备上的多个传感器收集的传感器数据组成的多模态数据集的开发的简化框图600。初始的或原始的数据集285a可以由通过传感器设备生成的观察到的数据值(如被填充的圆所表示的)组成。原始数据集285a中的数据点的相对大的子集可以缺失(如未填充的圆所表示的)。张量可以是基于原始数据集开发的并且用作张量因式分解605的基础。张量因式分解605可以根据上述原理。从张量因式分解中,可以确定或预测最初缺失数据点中的一些或所有的值。例如,张量因式分解605的结果反映在数据集285b的更新的表示中,其示出了更少的“空”数据点值。在其中张量因式分解成功确定缺失数据点中的每一个的值的情况下,数据集可以被认为是完整的并且可用于进一步处理和分析。当张量中没有空“平面”存在时,可以引起上述情况。当在张量因式分解605之后仍剩余空数据点值(如在图6所示的示例中那样)时,可以对更新的数据集285b(即,包括张量因式分解605的结果)执行附加的内插过程610,以预测任何剩余的缺失数据点的值并产生完整的数据集285c。作为说明,本文中所描述的示例张量因式分解过程可以在实验中与其他常规缺失数据解决方案(例如,反距离权重(idw)、k最邻近(knn)和stcdg)进行比较。idw是基于对观察到的训练数据进行反距离权重内插来产生输出的内插方法。knn是基于对观察到的训练数据进行地理上k最邻近的内插来产生输出的内插方法。stcdg是基于矩阵因式分解(但不考虑多模态相干)的现有传感器缺失值完成方法。在第一示例实验中,尝试使用张量因式分解(tf)和idw、knn以及stcdg来确定在已知设备位置处的缺失传感器值。在这个示例中,源数据的2%被采样作为测试数据。对于其余的数据,数据的20%、15%、10%、5%和1%被采样以查看对测试数据进行的各种技术的相应重构误差。这个示例实验的结果如表1所示。从表1的数据中,显而易见的是,张量因式分解大幅度优于其他现有方法(如idw、knn和stcdg)。具体而言,在数据的20%中,张量因式分解相对于现有技术可以表现出超过100%的改进。表1:针对随机丢弃数据点的实验中的示例结果在第二示例实验中,测试用于预测未知设备的缺失值的每个解决方案的能力。在这个示例中,除了未知设备的坐标之外,没有信息是不可用的。在这样的实例中,来自邻近设备的数据用于推断未知设备的传感器值。在该实验中,传感器设备一次一个地(例如,从一组十五(15)个设备中)被移除以用于验证,剩余传感器设备的值用于预测缺失传感器的值。表2反映了来自本实验的实例结果(基于均方差(mse)),再次在测试中示出了张量因式分解方法对于其他解决方案的优越性。msetfidwstcdgknn02.5584123.1643351.6080332.922554110.4509360.6040420.9490030.66256321.1883611.7655721.1339041.52104330.4606830.8879552.1204330.7168340.2998570.4713641.6675520.51078550.595691.0382190.5904311.02782960.7714960.9519231.6890940.93835570.5238350.4787132.8622540.6476480.3692410.4664232.0148030.38699391.844291.8704543.3268161.786087100.4673190.4565292.1797110.548024110.5740680.3798413.3959920.419458121.5388571.9010251.4619161.827771130.696181.2808652.1344890.885716141.7046131.7862563.2310821.779723平均0.9362561.1669012.0243681.105425表2:针对随机丢弃传感器设备的实验中的示例结果尽管本文中描述和示出的系统和解决方案中的一些已经被描述为包含多个元件或者与多个元件相关联,但是并不是明确示出或描述的所有元件都可以用在本公开的每个可替代实现中。另外,本文中描述的元件中的一个或多个可以位于系统外部,而在其他实例中,某些元件可以被包括在其他描述的元件中的一个或多个以及所示的实现中未描述的其他元件内或者作为其部分。此外,某些元件可以与其他组件进行组合,以及除了本文中描述的那些目的之外,还用于可替代或附加的目的。此外,应当认识到,上面呈现的示例是仅仅是为了说明某些原理和特征的目的而提供的非限制性的示例,并且不一定限制或约束本文中描述的概念的潜在实施例。例如,可以利用本文中描述的特征和组件的各种组合来实现各种不同的实施例,所述各种组合包括通过本文中描述的组件的各种实现来实现的组合。其他的实现、特征以及细节应该从本说明书的内容中来意识到。图7是示出了用于找出缺失数据的值的示例技术的简化流程图700。例如,可以识别由位于环境内的不同空间位置的多个传感器生成的一组传感器数据705。多个传感器可以包括多个不同类型的传感器,并且相对应的不同类型的传感器数据可以被包括在该组传感器数据中。可以存在多个潜在的数据点,其中数据点中的一些在该组传感器数据中缺失。对于每个数据点(以及相对应的传感器数据值),可以确定相对应的空间位置、时间戳和模态710。还可以针对具有缺失值的数据点确定位置、时间戳和模态。在一些情况下,可以根据传感器数据中包括的信息来确定空间位置、时间戳和模态710。例如,传感器数据可以由传感器设备一起报告并且包括传感器设备或传感器标识符。根据传感器设备标识符,可以确定传感器数据的属性,例如,传感器的类型和传感器设备的位置。传感器数据还可以包括指示每个数据点何时被收集的时间戳。传感器数据可以是多模态的,并且可以(可选地)执行可选的数据归一化过程715以对数据集内的不同类型的数据值进行归一化。可以根据数据集来确定三维张量720,维度与数据点的相应空间位置、时间戳和模态相对应。可以例如使用张量因式分解来根据张量确定或预测集合中的缺失数据的值。例如,可以确定潜在因子,根据潜在因子可以推断出缺失数据值。然后,可以更新数据集以反映使用张量与原始观察到的数据点值一起确定的缺失数据值。如果仍存在缺失数据值(在730),则可以对更新的数据集执行内插步骤735以完成740数据集(并解决任何剩余的缺失数据值)。可以应用任何合适的内插技术。在其他情况下,可以根据张量确定数据集中的所有缺失数据值,并且可以不再剩余缺失数据(在730)。因此,在这样的情况下,数据集可以是完整的740,之后完成确定集合中所有缺失数据值的值的张量因式分解。图8-图9是根据本文公开的实施例的可以使用的示例性计算机架构的框图。也可以使用本领域已知的用于处理器和计算系统的其他计算机架构设计。通常,用于本文中公开的实施例的合适的计算机架构可以被包括但不限于图8-图9中所示的配置。图8是根据一个实施例的处理器的示例图示。处理器800是可以结合上述实现使用的一类硬件设备的示例。处理器800可以是任何类型的处理器,例如微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、多核处理器、单核处理器或用于执行代码的其他设备。尽管在图8中仅示出了一个处理器800,但是处理元件可以可替代地包括多于一个的图8中所示的处理器800。处理器800可以是单线程核心,或者对于至少一个实施例,处理器800可以是多线程的,因为其可以包括每核心多于一个的硬件线程上下文(或“逻辑处理器”)。图8还示出了根据实施例的耦合到处理器800的存储器802。存储器802可以是本领域技术人员已知的或以其他方式可用的广泛多种存储器(包括存储器层次结构的各种层)中的任何一种。这样的存储器元件可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、现场可编程门阵列(fpga)的逻辑块、可擦除可编程只读存储器(eprom)以及电可擦除可编程rom(eeprom)。处理器800可以执行与本文中详述的算法、过程或操作相关联的任何类型的指令。通常,处理器800可以将元件或物品(例如数据)从一个状态或事物转换为另一状态或事物。代码804可以是要由处理器800执行的一个或多个指令,在适当情况下并基于特定需要,该代码804可以被存储在存储器802中,或者可以被存储在软件、硬件、固件或其任何适当的组合中,或者被存储在任何其他内部或外部组件、设备、元件或对象中。在一个示例中,处理器800可以遵循由代码804指示的指令的程序序列。每个指令进入前端逻辑806并且由一个或多个解码器808处理。解码器可以生成作为其输出的微操作,例如预定义格式的固定宽度的微操作,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑806还包括寄存器重命名逻辑810和调度逻辑812,其通常分配资源并将与用于执行的指令相对应的操作进行排序。处理器800还可以包括具有一组执行单元816a、816b、816n等的执行逻辑814。一些实施例可以包括专用于特定功能或功能的集合的多个执行单元。其他实施例可以只包括一个执行单元或者可以执行特定功能的一个执行单元。执行逻辑814执行由代码指令指定的操作。在完成由代码指令指定的操作的执行之后,后端逻辑818可以退出代码804的指令。在一个实施例中,处理器800允许乱序执行,但是要求有序的指令的退出。引退逻辑820可以采用各种已知的形式(例如,重新排序缓冲器等)。以这种方式,至少依据由解码器生成的输出、由寄存器重命名逻辑810利用的硬件寄存器和表以及由执行逻辑814修改的任何寄存器(未示出),处理器800在代码804的执行期间被变换。尽管在图8中未示出,处理元件可以包括在具有处理器800的芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑以及处理器800。处理元件可以包括i/o控制逻辑和/或可以包括与存储器控制逻辑集成的i/o控制逻辑。处理元件还可以包括一个或多个高速缓存。在一些实施例中,非易失性存储器(例如,闪速存储器或熔丝)也可以被包括在具有处理器800的芯片上。图9示出了根据实施例的以点对点(ptp)配置进行布置的计算系统900。具体而言,图9示出了其中处理器、存储器和输入/输出设备通过多个点对点接口进行互连的系统。通常,本文中描述的计算系统中的一个或多个可以以与计算系统900相同或类似的方式来进行配置。处理器970和980还可以各自包括集成的存储器控制器逻辑(mc)972和982以与存储器元件932和934进行通信。在可替代实施例中,存储器控制器逻辑972和982可以是与处理器970和980分离的分立逻辑。存储器元件932和/或934可以存储各种数据以用于由处理器970和980使用来实现本文中概述的操作和功能。处理器970和980可以是任何类型的处理器,例如结合其他附图所讨论的那些处理器。处理器970和980可以分别使用点对点接口电路978和988经由点对点(ptp)接口950交换数据。处理器970和980可以各自使用点对点接口电路976、986、994以及998经由单独的点对点接口952和954来与芯片组990交换数据。芯片组990也可以使用可以是ptp接口电路的接口电路992经由高性能图形接口939与高速接口电路938交换数据。在可替代实施例中,图9中所示的ptp链路中的任何或全部都可以被实现为多点总线而不是ptp链路。芯片组990可以经由接口电路996与总线920通信。总线920可以具有通过其进行通信的一个或多个设备,例如总线桥918和i/o设备916。经由总线910,总线桥918可以与以下其他设备进行通信:例如用户接口912(例如键盘、鼠标、触摸屏或其他输入设备)、通信设备926(例如调制解调器、网络接口设备、或可以通过计算机网络960通信的其他类型的通信设备)、音频i/o设备914、和/或数据存储设备928。数据存储设备928可以存储可以由处理器970和/或980执行的代码930。在可替代实施例中,总线架构中的任何部分都可以利用一个或多个ptp链路来实现。在图9中描绘的计算机系统是可以用于实现本文中讨论的各种实施例的计算系统的实施例的示意示出。将意识到的是,图9中描绘的系统的各种组件可以以片上系统(soc)架构或者能够实现本文中提供的示例和实现的功能和特征的任何其他合适配置被组合。尽管已经依据某些实现和通常相关联的方法来描述了本公开,但是这些实现和方法的改变和置换对于本领域技术人员而言是显而易见的。例如,本文中描述的动作可以以与所描述的顺序不同的顺序来执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示出的特定顺序或有序的顺序来实现期望的结果。在某些实现中,多任务和并行处理可以是有利的。另外,可以支持其他用户界面布局和功能。其他变化是在以上权利要求的范围内的。一般而言,本说明书中描述的主题的一个方面可以被体现在方法和执行的指令中,所述方法和执行的指令包括或引起如下的动作:识别包括软件代码的样本,生成针对包括在样本中的多个功能中的每一个的控制流程图,以及在功能中的每一个中识别与一组控制流片段类型的实例相对应的特征。所识别的特征可以用于根据所识别的特征来生成针对样本的特征集。这些和其他实施例可以各自可选地包括以下特征中的一个或多个。针对功能中的每一个识别的特征可以组合以生成样本的合并的字符串,并且可以根据合并的字符串生成特征集。可以针对功能中的每一个生成字符串,每个字符串描述针对该功能识别的相应的特征。组合特征可以包括将多个功能中的特定功能中的一个调用识别为多个功能中的另一功能,并且用其他功能的字符串的内容来替代引用其他功能的特定功能的字符串的部分。识别特征可以包括对功能的字符串中的每一个进行抽象,使得只有该组控制流片段类型的特征被描述在字符串中。该组控制流片段类型可以包括由功能访问的存储器和由功能调用的功能。识别特征可以包括识别由功能中的每一个访问的存储器的实例,并识别由功能中的每一个调用的功能的实例。特征集可以识别针对功能中的每一个识别的特征中的每一个。特征集可以是n-图。此外,这些和其它实施例可以各自可选地包括以下特征中的一个或多个。可以提供特征集以用于对样本分类。例如,对样本分类可以包括基于样本的相对应的特征将样本与其他样本聚类。对样本分类可以进一步包括确定与一群样本有关的一组特征。对样本分类还可以包括确定是否将样本分类为恶意的和/或确定样本是否可能是恶意软件的一个或多个家族中的一个。识别特征可以包括对控制流程图中的每一个进行抽象,使得只有该组控制流片段类型的特征在控制流程图中被描述。可以接收多个样本,包括所述样本。在一些情况下,可以从多个来源接收多个样本。特征集可以识别在样本的功能的控制流程图中识别的特征的子集。特征的子集可以与样本代码中的存储器访问和功能调用相关联。虽然本说明书包含许多具体的实现细节,但是这些不应该被解释为对任何发明或者可以要求保护的范围的限制,而是作为特定于具体发明的特定实施例的特征的描述。在本说明书中在独立的实施例的上下文中描述的某些特征也可以在单个实施例的组合中实现。相反,在单个实施例的上下文中描述的各种特征也可以独立地在多个实施例中或以任何合适的子组合来实现。此外,虽然特征可以在上面被描述为在某些组合中起作用并且甚至最初是这样来被要求保护的,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从该组合中删除,并且所要求保护的组合可以是针对子组合或子组合的变体的。类似地,虽然在附图中以特定的顺序描绘了操作,但是这不应该被理解为要求以所示出的特定顺序或以有序的顺序来执行这样的操作,或者所有示出的操作都被执行以达到期望的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各种系统组件的分离不应该被理解为在所有实施例中都需要这样的分离,并且应该理解的是,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。一个或多个实施例可以提供方法、装置、系统、机器可读存储装置、机器可读介质,基于硬件和/或基于软件的逻辑,以用于识别包括由位于多个不同的位置的多个传感器设备生成的多个观察到的值的一组数据,针对所述多个观察到的值中的每一个,确定所述值的模态、所述值的空间位置以及所述值的时间戳,并且根据所述多个观察到的值的模态、空间位置以及时间戳来确定所述一组数据中的一个或多个缺失值的值。在一些示例中,多个传感器设备可以包括多个不同传感器类型的传感器。多个观察到的值可以包括多个不同值类型的值,并且传感器类型中的每一个至少可以与值类型中相应的一个相对应。可基于多个观察到的值的模态、空间位置和时间戳来确定针对一组数据的一个或多个张量,并且可使用所述张量来确定所述一组数据中的一个或多个缺失值的值。张量包含多个观察到的值当中的空间相干性,多个观察到的值当中的时间相干性以及多个观察到的值当中的多模态相干性。空间相干性、时间相干性以及多模态相干性中的至少一个可以是不连续的。可以使用张量因式分解(例如并行因子(parafac)分解)来确定缺失值。确定张量可以包括对多模态值进行归一化。张量可以包括三维张量。在一些示例中,缺失值的子集可以被识别为落在所述张量之外,并且可以执行内插以导出缺失值的子集。缺失值的子集可以与没有值存在的张量内的平面相对应。响应于识别落在张量之外的缺失值的存在,而可以执行内插。可以使用根据张量确定的一个或多个缺失值来执行内插。使用多个观察到的值中的一个或多个来执行内插。确定一个或多个缺失值包括学习张量的潜在值。在某些实例中,缺失值可以占据数据集的值的50%以上,甚至在一些情况下,是数据集的值的80%以上。模态可以与用于生成该值的传感器类型相对应,空间位置可以与用于生成该值的传感器的物理位置相对应,并且时间戳可以指示该值何时被记录。因此,已经描述了主题的特定实施例。其他实施例是在以上权利要求的范围内的。在一些情况下,权利要求中列举的动作可以以不同的顺序来执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示出的特定顺序或有序的顺序来实现期望的结果。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1