自学习家庭系统及自主家庭操作框架的制作方法

文档序号:26007812发布日期:2021-07-23 21:27阅读:74来源:国知局
相关申请案交叉申请本申请要求于2018年11月20日提交的标题为“自学习家庭系统及自主家庭操作框架”的第62/770,070号的美国临时申请的优先权和利益,该申请通过引用并入本文。本公开涉及用于控制家庭通信网络中的设备的智能家庭解决方案。一些方面涉及用于控制家庭内设备并为自主家庭操作提供框架的自学习家庭系统。
背景技术
::物联网(internet-of-things,iot)设备和解决方案正越来越广泛地应用于家庭和办公环境。这种连接设备可以以多种方式使用,从提高舒适度到改善家庭的功能集,到提高其它设备的效率和安全性。现有的家庭自动化解决方案将家用电器的控制整合到移动设备应用程序中,并允许用户创建简化的规则,并由用户动作触发。然而,现有家庭自动化解决方案的挑战在于,它们要求用户明确定义电器/设备应如何协同工作的规则,随着可触发电器的数量和复杂性的增加,即使对技术倾向的人来说,这也会变得更加具有挑战性。技术实现要素:现在描述各种示例,以简化形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。
发明内容并不是为了确定所要求保护的主题的关键或必要特征,也不是为了用于限制所要求保护的主题的范围。根据本公开的第一方面,提供了一种用于家庭通信网络内网络设备的自动化操作的计算机实施的方法。所述方法包括检测所述家庭通信网络内的多个致动器的致动器动作,所述多个致动器中的每一个用于改变所述网络设备中的至少一个的状态。所述检测到的致动器动作与来自所述家庭通信网络内的多个传感器的一个或多个传感器值相关联,以生成配置数据。所述配置数据可以包括具有一个或多个触发条件的触发图。所述配置数据也包括对应于所述触发图的动作图。所述动作图指示与所述多个致动器中的至少一个相关联的一个或多个致动器动作。在检测到所述一个或多个触发条件时,可以触发所述多个致动器中的所述至少一个执行所述动作图指示的所述一个或多个动作。在根据所述第一方面的所述方法的第一种实现形式中,所述触发图包括多个触发条件,所述触发条件包括以下一个或多个:所述一个或多个传感器值;所述检测到的致动器动作中的致动器动作;以及从所述家庭通信网络外部的信息源接收的外部信息数据。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第二种实现形式中,所述触发图内的所述多个触发条件通过一个或多个逻辑连接器连接。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第三种实现形式中,在检测到所述多个触发条件时,并进一步基于所述一个或多个逻辑连接器,触发所述多个致动器中的所述至少一个执行所述动作图指示的所述一个或多个动作。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第四种实现形式中,所述动作图包括通过边缘耦合的多个节点。所述多个节点中的每一个对应于与所述多个致动器中的所述至少一个相关联的所述一个或多个致动器动作中的致动器动作。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第五种实现形式中,耦合所述多个节点中的至少两个节点的所述边缘中的每一个与对应于所述至少两个节点的所述一个或多个致动器动作之间的时延相关联。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第六种实现形式中,获取包括多个预定触发条件和对应于所述多个预定触发条件的多个预定致动器动作的训练数据集。至少使用所述训练数据集训练机器学习(machinelearning,ml)程序以生成训练后的ml程序。将所述训练后的ml程序应用于所述检测到的致动器动作以及来自所述收集的传感器数据的所述一个或多个传感器值,以生成所述配置数据。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第七种实现形式中,检索用于所述家庭通信网络内所述网络设备的所述自动化操作的用户定义目标。检索基于公共传感器和致动器位置将所述多个致动器的子集与所述多个传感器的子集分组的预定义的传感器-致动器关系。进一步基于所述用户定义目标和所述预定义的传感器-致动器关系生成所述配置数据。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第八种实现形式中,所述配置数据包括具有多个触发图和相应的多个动作图的自动化规则表。在根据所述第一方面或所述第一方面的任何前述实现形式的所述方法的第九种实现形式中,检索用于第二家庭通信网络的第二自动化规则表。基于所述第二自动化规则表,修改所述配置数据中的所述触发图和所述动作图,或修改所述配置数据中的所述触发图或所述动作图。根据本公开的第二方面,提供了一种包括家庭通信网络内的多个致动器的系统,所述多个致动器中的每一个用于改变所述家庭通信网络内的网络设备中的至少一个的状态。所述系统还包括所述家庭通信网络内的多个传感器,所述多个传感器用于收集传感器数据。所述系统还包括存储指令的存储器。所述系统还包括与所述存储器、所述多个致动器和所述多个传感器通信的一个或多个处理器。所述一个或多个处理器执行所述指令,以检测所述多个致动器的致动器动作并将所述检测到的致动器动作与来自所述收集的传感器数据的一个或多个传感器值相关联,以生成配置数据。所述配置数据包括具有一个或多个触发条件的触发图以及对应于所述触发图的动作图。所述动作图指示与所述多个致动器中的至少一个相关联的一个或多个致动器动作。在检测到所述一个或多个触发条件时,可以触发所述多个致动器中的所述至少一个执行所述动作图指示的所述一个或多个动作。在根据所述第二方面的所述设备的第一种实现形式中,所述触发图包括通过一个或多个逻辑连接器连接的多个触发条件。所述触发条件包括以下一个或多个:所述一个或多个传感器值;所述检测到的致动器动作中的致动器动作;以及从所述家庭通信网络外部的信息源接收的外部信息数据。在根据所述第二方面或所述第二方面的任何前述实现形式的所述设备的第二种实现形式中,所述一个或多个处理器执行所述指令以在检测到所述多个触发条件时,并进一步基于所述一个或多个逻辑连接器,触发所述多个致动器中的所述至少一个执行所述动作图指示的所述一个或多个动作。在根据所述第二方面或所述第二方面的任何前述实现形式的所述设备的第三种实现形式中,所述动作图包括通过边缘耦合的多个节点。所述多个节点中的每一个对应于与所述多个致动器中的所述至少一个相关联的所述一个或多个致动器动作中的致动器动作。耦合所述多个节点中的至少两个节点的所述边缘中的每一个与对应于所述至少两个节点的所述一个或多个致动器动作之间的时延相关联。在根据所述第二方面或所述第二方面的任何前述实现形式的所述设备的第四种实现形式中,所述一个或多个处理器执行所述指令以获取包括多个预定触发条件和对应于所述多个预定触发条件的多个预定致动器动作的训练数据集。至少使用所述训练数据集训练机器学习(machinelearning,ml)程序以生成训练后的ml程序。将所述训练后的ml程序应用于所述检测到的致动器动作以及来自所述收集的传感器数据的所述一个或多个传感器值,以生成所述配置数据。在根据所述第二方面或所述第二方面的任何前述实现形式的所述设备的第五种实现形式中,所述一个或多个处理器执行所述指令以检索用于所述家庭通信网络内所述网络设备的所述自动化操作的用户定义目标。检索基于公共传感器和致动器位置将所述多个致动器的子集与所述多个传感器的子集分组的预定义的传感器-致动器关系。进一步基于所述用户定义目标和所述预定义的传感器-致动器关系生成所述配置数据。在根据所述第二方面或所述第二方面的任何前述实现形式的所述设备的第六种实现形式中,所述配置数据包括具有多个触发图和相应的多个动作图的自动化规则表。在根据所述第二方面或所述第二方面的任何前述实现形式的所述设备的第七种实现形式中,所述一个或多个处理器执行所述指令以检索用于第二家庭通信网络的第二自动化规则表,并基于所述第二自动化规则表,修改所述配置数据中的所述触发图和所述动作图,或修改所述配置数据中的所述触发图或所述动作图。根据本公开的第三方面,提供了一种非瞬时性计算机可读介质,存储用于家庭通信网络内网络设备的自动化操作的指令,当由一个或多个处理器执行时,使得所述一个或多个处理器执行以下操作。所述操作包括检测所述家庭通信网络内的多个致动器的致动器动作,所述多个致动器中的每一个用于改变所述网络设备中的至少一个的状态。所述操作还包括将所述检测到的致动器动作与来自所述家庭通信网络内的多个传感器的一个或多个传感器值相关联,以生成配置数据。所述配置数据包括具有一个或多个触发条件的触发图以及对应于所述触发图的动作图。所述动作图指示与所述多个致动器中的至少一个相关联的一个或多个致动器动作。在检测到所述一个或多个触发条件时,触发所述多个致动器中的所述至少一个执行所述动作图指示的所述一个或多个动作。在根据所述第三方面的所述非瞬时性计算机可读介质的第一种实现形式中,在执行时,所述指令还使所述一个或多个处理器执行以下操作,包括获取包括多个预定触发条件和对应于所述多个预定触发条件的多个预定致动器动作的训练数据集。所述操作还包括至少使用所述训练数据集训练机器学习(machinelearning,ml)程序以生成训练后的ml程序,以及将所述训练后的ml程序应用于所述检测到的致动器动作以及来自所述收集的传感器数据的所述一个或多个传感器值,以生成所述配置数据。上述示例中的任何一个可以与上述其它示例中的任何一个或多个组合,以创建本公开范围内的新实施例。附图说明在不一定按比例绘制的附图中,类似的数字可以在不同的视图中描述类似的部件。附图通过示例的方式,但不是通过限制的方式,一般地示出了在本文件中讨论的各种实施例。图1是根据一些示例性实施例的使用网络设备的自动化操作的家庭通信网络的高级别系统概览图。图2是根据一些示例性实施例的图1的家庭通信网络的高级别架构设计框图。图3是示出根据一些示例性实施例的可与图1的家庭通信网络结合使用的计算设备的实施细节的框图。图4是示出根据一些示例性实施例的可与图1的家庭通信网络结合使用的数据收集流程的框图。图5是示出根据一些示例性实施例的用于创建可用于网络设备的自动化操作的自动化规则表的过程的框图。图6a是示出根据一些示例性实施例的机器学习(machinelearning,ml)程序的训练和使用的框图。图6b是示出根据一些示例性实施例的使用神经网络生成训练后的ml程序的图。图7是示出根据一些示例性实施例的可用于网络设备的自动化操作的自动化规则表的校正/重新训练的流程图。图8是示出根据一些示例性实施例的基于触发条件的匹配执行来自自动化规则表的动作图的流程图。图9a、图9b以及图9c示出了根据一些示例性实施例的用于与一个或多个家庭中网络设备的自动化操作相关的联合计算的各种方法。图10示出了根据一些示例性实施例的具有多个家庭和基于云的ml训练和自动化规则表生成的通信架构。图11a和图11b示出了根据一些示例性实施例的连接到诸如图1的网络的家庭通信网络的第三方设备和第三方应用程序的框图。图12a示出了根据一些示例性实施例的表示自动化规则表的用户接口。图12b示出了根据一些示例性实施例的用于设置与网络设备的自动化操作相关的用户目标的用户接口。图12c示出了根据一些示例性实施例的用于设置与网络设备的自动化操作相关的传感器-致动器分组的用户接口。图12d示出了根据一些示例性实施例的用于向基于自动化规则表执行的致动器动作提供反馈的用户接口。图13是根据一些示例性实施例的适用于家庭通信网络内网络设备的自动化操作的方法的流程图。图14是示出根据一些示例性实施例的代表性软件架构的框图,该代表性软件架构可以与本文描述的各种设备硬件结合使用。图15是示出根据一些示例性实施例的实现算法和执行方法的设备的电路的框图。具体实施方式首先应该理解,尽管以下提供了一个或多个实施例的示意性实施方式,但是参见图1-15描述的公开的系统和/或方法可以使用任何数量的技术来实现,无论目前已知还是尚未存在。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。以下结合附图进行详细描述,所述附图是描述的一部分,并通过图解说明的方式示出可以实施本发明的具体实施例。这些实施例充分详细地描述,以使本领域技术人员能够实践本发明的主题,并且应理解,可以使用其它实施例,并且可以在不脱离本公开的范围的情况下进行结构、逻辑和电性的改变。因此,以下描述的示例性实施例并不当作限定,本发明的范围由所附权利要求书界定。如本文所使用的,术语“致动器”可以指由用户物理操作的设备或设备部件(例如,灯开关、恒温器、设备旋钮)。在一些方面,“致动器”也可以指可以用语音、运动甚至通过诸如脑电波、情绪或网络信令的其它手段控制或操纵的设备。如本文所使用的,术语“传感器”可以指用于感测环境条件(例如,外部温度、湿度、风向等)和非环境条件(例如,运动检测、声音检测等)的设备,并将感测数据提供给一个或多个数据收集模块或处理器。本文公开的用于自主家庭操作的技术可以包括连续监控存在于通信网络(例如,用户家中的家庭通信网络)中的连接传感器和致动器,周期性地收集传感器值和致动器激活,以及执行识别测量的传感器值和致动器激活之间的相关性的学习计算。学习过程的目标是识别测量的传感器值和致动器激活之间的相关性,并通过该相关性识别(1)用户执行的活动,(2)用户如何执行不同活动(即,一系列致动器激活),(3)用户习惯和(4)使用该信息生成用于使用可用致动器设备执行自动化动作的自动化规则表。在一个实施例中,这些自动化动作能够模拟用户在给定活动期间通常执行的致动器激活,但也可以进行活动的不同(例如,更高效的)执行。家庭通信网络的总体目标是逻辑地组合可用的不同传感器和致动器,并创建智能传感和自动化设备激活,从而创建一个自动增强的(在舒适度、功能集、安全性、效率等方面)家庭环境。在一些方面,可以使用机器学习(machinelearning,ml)程序(也称为人工智能(artificialintelligence,ai)引擎)识别相关性,该程序可以使用例如训练数据集进行训练。ml程序可以用于基于识别的相关性生成配置数据(例如,自动化规则表)。配置数据可以包括多个触发图,每个触发图具有相应的动作图。触发图包括一个或多个触发条件,例如传感器值、致动器事件和外部信息值,这些条件都可以通过逻辑运算符连接。当检测到给定触发图(由逻辑运算符修改)中的任何触发事件已完成时,将自动执行相应动作图中的动作。这些动作可以包括执行一个或多个与致动器相关的事件。与用户必须明确提供用于触发系统内一个或多个设备的动作的规则的现有家庭自动化解决方案不同,本文公开的技术可以用于自动生成/更新用于家庭自动化的配置数据(例如,具有多个触发图和相应动作图的自动化规则表),并在从触发图中的一个或多个检测到触发条件时自动执行动作图的动作。此外,机器学习技术能够用于使用本地传感器和执行器数据在家庭内训练ml程序。在一些方面,学习可以联合,以便在远程环境中执行(例如,ml程序可以在云中训练),部分依赖于在家庭中收集的数据,并结合其它训练方法和其它训练数据(例如,在诸如其它家庭的其它地点收集的数据)。本文公开的家庭通信网络还可以为第三方设备和应用供应商提供接口,以将其设备和应用连接到网络,并通过该接口(1)使用家庭网络内的可用的数据、处理能力和模型/算法(例如,训练后的ml程序)以及(2)为自动化家庭环境提供附加能力(例如,附加计算能力或传感能力)。图1是根据一些示例性实施例的使用网络设备的自动化操作的家庭通信网络100的高级别系统概览图。参见图1,家庭通信网络100可以包括传感器102和致动器104,它们可以通信地耦合到计算设备108,例如路由器或手机。在一些方面,传感器102可以包括温度传感器、湿度传感器、运动传感器、热传感器、烟雾传感器或任何其它类型的传感器。致动器104可以包括恒温器、开关、设备旋钮或用户112可以通过动作114与之交互并改变其状态的任何其它类型的设备。如本文所使用的,术语“致动器事件”(或“致动器激活”)表示用户112与致动器104中的一个或多个的交互(例如,通过动作114),该交互改变了致动器状态(例如,开关打开或关闭,恒温器调整,遮光帘升起,等等)。计算设备108能够维护与传感器102相关联的传感器状态以及与致动器104相关联的致动器事件的数据库116。在一些方面,传感器状态和致动器事件可以直接从传感器102和致动器104传送到计算设备108,以便在数据库116中进一步处理和存储。在一些方面,传感器状态和致动器事件可以最初传送到集线器设备106(例如,智能家庭集线器设备),然后传送到计算设备108。计算设备108还可以包括ai引擎118,其可以用于基于传感器数据和致动器事件生成自动化规则表120,如下文进一步所述。在一些方面,ai引擎118还可以通过交互122使用外部信息,例如来自基于云的提供者124的信息。基于云的提供者124可以用于执行例如与强化学习训练和其它联合计算(例如,在多个位置协助多个用户)相关联的自动化规则表120的生成和管理。通信网络100的主要部件包括收集和记录致动器激活值、传感器测量值以及对传感器数据、致动器数据以及附加数据(例如,来自基于云的提供者124的外部可用信息)执行计算的过程,以便创建用于家庭通信网络100内连接的家用电器或其它设备的自动化操作的自动化规则表120或为自动化操作触发动作(例如,基于表120)。负责定义自动化动作的自动化规则表120的创建可以通过统计模型、本地(例如,由设备108)或远程(例如,由基于云的提供者124)执行的不同机器学习方法的训练过程,或以分布式混合方式(例如,由基于云的提供者124和基于云的提供者124的一个或多个客户端)来生成。在一些方面,家庭通信网络100提供附加功能,例如通过联合学习方法的手段个性化计算、向服务提供商和/或不同位置的其它用户共享/分发所学知识的能力以及使用向系统提供附加能力的第三方设备和应用程序来无缝扩展系统的能力。虽然家庭通信网络100的一些方面可以自主地操作并且不需要用户交互,但家庭通信网络100可以用于提供关于其内部的信息,例如它提供的功能和已经学习的自动化动作及其触发,该信息通过用户接口控制台110提供给用户112。用户接口控制台110还可以用作用户通过提供反馈、设置ai引擎118的目标、设置传感器-致动器关系和分组等来影响设备108执行的部分操作的接口。图2是根据一些示例性实施例的图1的家庭通信网络的高级别架构设计200框图。参见图2,ai引擎118可用于接收作为传感器102的传感器输出采样202的结果的传感器数据204和作为致动器104的用户致动器事件206的结果的致动器事件数据208。数据204和208可以标记时间。在一个示例性实施例中,ai引擎118可以使用一个或多个ai相关计算技术210来生成自动化规则表120。例如,技术210可以包括统计模型的使用,例如概率关系模型和模式识别技术。技术210还可以包括机器学习(machinelearning,ml)模型,例如强化学习(reinforcementlearning,rl)、交互式强化学习(interactivereinforcementlearning,irl)、连续学习算法、神经网络(neuralnetwork,nn)、递归神经网络(recurrentneuralnetwork,rnn)、长短期记忆(longshort-termmemory,lstm)、基于注意力的网络(attention-basednetwork,abn)和其它技术。ai引擎118还可以使用来自动作触发日志212的数据以及与基于云的提供者124的交互。动作触发日志212可以包括已经基于自动化规则表120指定的一个或多个触发自动触发的动作(例如,致动器执行的动作)的列表。在一个示例性实施例中,当生成或更新自动化规则表120时,ai引擎118可以进一步考虑用户输入(例如,通过ui控制台110接收的),例如目标214和预定义的传感器-致动器关系216。目标214可以包括用户输入,其指定所需的舒适度、能源效率或经济性、安全性或任何其它用户定义的目标。预定义的传感器-致动器关系216可以包括传感器和致动器的一个或多个分组,其可以基于公共位置(例如,为了提高效率,可以将给定房间或用户家中其它位置内的传感器和致动器分组在一起)。图3是示出根据一些示例性实施例的可与图1的家庭通信网络结合使用的计算设备300的实施细节的框图。参见图3,计算设备300可以与图1的设备108相同。设备300可以实现连接层330,该连接层330可用于与传感器338、致动器340和数据集线器342通信。传感器338、致动器340和数据集线器342的功能可以分别与传感器102、致动器104和集线器106相同。设备300可用于提供运行环境308和存储环境328。运行环境308可用于实现ai引擎306和建议系统304。建议系统304可用于提供用于安装附加传感器和致动器或移除现有传感器和致动器的一个或多个建议,以改善ai引擎性能或基于用户提供的输入(例如214和216)改善ai引擎性能。存储环境328可用于配置算法/模型存储314(用于存储ai引擎118使用的模型,例如210)、传感器日志316(存储来自传感器338的传感器数据)、致动器日志318(存储与致动器340相关联的致动器事件数据)、ai引擎306生成的自动化规则表320、动作触发日志322(类似于列出基于自动化规则表执行的自动化动作的日志212)以及用户定义的策略和目标324(例如214和216)。设备300还可以执行与存储环境328维护的任何数据相关联的数据压缩功能312。此外,由存储环境328维护的数据可以通过访问控制功能310访问。在一些方面,基于云的提供者124可以为ai引擎306提供基于云的训练332。在这方面,与设备300的用户相关联的原始数据(例如,非隐私敏感或清理的数据)可以与基于云的提供者124交换。ai引擎306还可以接收外部信息334,该外部信息334可用于生成自动化规则表320。设备300还可以包括应用程序编程接口(applicationprogramminginterface,api)302。在这方面,第三方设备或应用程序336可以使用api302与设备300连接(例如,使用附加计算能力、附加传感器和致动器数据等协助ai引擎306)。语音助手344还可以使用api302,并提供用于设备300和用户之间基于语音的交互的用户接口。图4是示出根据一些示例性实施例的可与图1的家庭通信网络结合使用的数据收集流程400的框图。更具体地说,流程400可用于获得用于创建用于在家庭通信网络100内执行自动化动作的自动化规则表120的数据。传感器值可以不断监控和记录,以便以后处理。此外,用户或通过一些其它方式(即第三方设备的自动化操作)触发的致动器激活也会受到密切监控和记录。例如,数据收集器模块402可以获得由定时器408标记时间的传感器值410,以及与一个或多个用户激活事件412相关联的致动器值414。数据收集器模块402还可以从外部源418接收外部信息,外部信息由定时器416标记时间。外部信息可以由外部源418推送到数据收集器模块402,或者数据收集器模块402可以通过拉功能420接收外部数据。致动器激活可以作为对环境变化的响应发生,也可以在不同设备激活之间具有相关性。不同激活之间的相关性可以与(i)相同的环境变化有关,可以是(ii)某种形式的时间相关性(即,由于时间相关的原因而发生),或者(iii)可以与正在执行的相同活动有关。环境中的变化可以通过传感器值感知和记录,传感器值可以在稍后阶段分析,并且环境变化和设备激活之间的关系可以由ai引擎118识别。除了从本地传感器和致动器本地收集的数据之外,家庭通信网络100可以依赖于并从外部源418(收集数据)(例如,数据收集器模块402可以通过互联网从诸如天气预报源、金融市场服务、或包括来自地方政府、市政府、学校的信息服务的其它类型的服务及提供家庭成员位置更新的服务等的来源收集外部数据)。一旦数据收集器模块402接收到数据,就可以转发数据用于处理422。存储器406可用于存储传感器数据424、致动器数据426和外部信息数据428。存储器406可以是本地的和远程的,具有实现的数据隐私约束。此外,存储器406可以包括数据库、文件系统、内存中存储解决方案或一些替代存储解决方案。一旦数据收集器模块402接收到数据,数据可以直接移动到数据存储器406,或者通过数据压缩、过滤、清洗、编码、数据清理404进行预处理,以获得更高效或更安全的存储。在底层数据存储器406处,由于ai引擎118的不同格式化要求和使用,传感器数据424、致动器数据426和来自外部源428的数据可以存储在单独的结构中。即使图4示出了数据收集器模块402与数据处理422和404功能分开,但在示例性实施例中,数据收集和诸如422和404的附加处理可以由单个模块(例如,图14中的数据收集和管理模块1464或图15中的1570)执行。图5是示出根据一些示例性实施例的用于创建可用于网络设备的自动化操作的自动化规则表的过程500的框图。参见图5,数据存储模块508用于存储传感器数据502、致动器数据504和外部信息数据506,这些数据可以预处理(例如,在404)。在一些方面,数据收集模块510(其可以与数据收集器模块402相同)可以直接将收集的传感器和致动器数据传送到数据存储模块508。在计算/训练过程512中,不同的数学、统计或机器学习模型可以由ai引擎118执行或训练,以便生成自动化规则表514。在一个示例性实施例中,自动化规则表514可以包括触发图516和相应的动作图524。触发图516包括描述一个或多个触发事件的节点,触发事件例如某些传感器值518(例如,节点s0)、致动器事件520(例如,节点a5)、外部信息值522(例如,节点ei3)及其任何组合。例如,触发图516内的节点可以通过诸如530a和530b的逻辑操作连接。在这方面,当传感器值s0与致动器事件a5一起检测到时,或接收到外部信息值ei3时,图5中所示的触发图516可以触发执行动作图524指定的动作。当数据存储模块508存储传感器值518、致动器事件520和外部信息值522时,可以索引传感器值518、致动器事件520和外部信息值522。在一个示例性实施例中,动作图524可以包括与一个或多个诸如528的逻辑运算符耦合的多个节点526a-526g。一旦检测到由触发图516指定的触发事件(例如,s0和a5,或仅仅ei3),则可以自动执行动作图524内的各个节点指定的动作。在这方面,动作图524可用于描述在检测到触发图指定的触发事件时要执行的动作。节点526a-526g中的每一个可以指定必须执行的致动器事件。动作图524可以进一步定义要执行的不同动作的顺序,并且还可以指定动作之间的定时约束或不同动作之间的其它条件值。例如,每两个连接节点之间的链路/边缘可以用与每个节点相关联的致动器事件执行之间的时延来标注。作为替代方案,一对连接节点之间的每个链路/边缘的长度可以与时延成正比。在一个示例性实施例中,自动化规则表514可以包括多个触发图,每个触发图具有相应的动作图。此外,自动化规则表514可以基于传感器数据502、致动器数据504、外部信息数据506、用户输入(例如214和216)或其它标准连续更新。图6a是示出根据一些示例性实施例的机器学习(machinelearning,ml)程序626的训练和使用的框图600a。在一些示例性实施例中,机器学习程序(machine-learningprogram,mlp),也称为机器学习算法或工具,用来执行与关联数据以及与生成和维护与自主家庭操作相关的自动化规则表,例如表514相关联的操作。如图6a所示,机器学习程序训练624可以基于训练数据628执行。例如,训练数据628可以包括一个或多个诸如516的初始触发图和相应的动作图524,516和524可以预定义(例如,从基于云的提供者接收或由家庭通信网络100的用户生成)。在机器学习程序训练624期间,为了进一步训练机器学习程序,可以基于训练数据628评估特征602。机器学习程序训练624产生训练后的机器学习程序626,该机器学习程序626可以包括一个或多个分类器634,该分类器634可以用于基于新数据630提供评估632。例如,在生成训练后的ml程序626之后,新的传感器数据、致动器事件数据和外部信息数据可以由训练后的ml程序626评估,以便生成评估632。评估632可以包括不同传感器数据和致动器事件数据之间的相关性,这些相关性可以用于生成自动化规则表,例如表514。机器学习程序训练624和训练后的ml程序626可以是ai引擎118的一部分。在一些方面,在机器学习程序训练624期间使用的特征602可以包括以下的一个或多个:来自多个传感器1、……、n的传感器状态数据604、……、606;多个致动器1、……、k的致动器事件数据610、……、612;来自多个外部源1、……、l的外部信息源数据614、……、616;与传感器状态数据、致动器事件数据或外部信息源数据相关联的定时器数据608;用户通信信息618;用户数据620;以及过去用户行为数据622(例如过去用户偏好、手动致动器调整等等)。机器学习是一个研究领域,它赋予计算机在不显式编程的情况下学习的能力。机器学习探索算法的研究和构建,机器学习在此也称为机器学习工具,可以从现有数据中学习,关联数据,并对新数据进行预测。这种机器学习工具通过从示例性训练数据(例如,628)构建模型来操作,以便做出数据驱动的预测或决策,表示为输出或评估632。虽然关于几个机器学习工具提出了示例性实施例,但本文提出的原理可以应用于其它机器学习工具。在一些示例性实施例中,可以使用不同的机器学习工具。例如,逻辑回归(logisticregression,lr)、朴素贝叶斯、随机森林(randomforest,rf)、神经网络(neuralnetwork,nn)、矩阵分解和支持向量机(supportvectormachine,svm)工具可用于关联传感器数据、致动器数据,外部信息数据,并生成与自主家庭操作相关的自动化规则表。机器学习中常见的两种问题是分类问题和回归问题。分类问题,也称为归类问题,旨在将项目分类为几个类别值之一(例如,此对象是苹果还是桔子?)。回归算法旨在量化一些项目(例如,通过提供实数的值)。在一些实施例中,示例性机器学习算法提供传感器数据、致动器数据和外部信息数据之间的相关性。机器学习算法利用训练数据628来找到影响结果的已识别特征602之间的相关性。机器学习算法利用特征602分析新数据630以生成评估632(例如,传感器数据和致动器事件数据的数据相关性)。特征602包括正在观察和用于训练ml程序的现象的单个可测量性质。特征的概念与线性回归等统计技术中使用的解释变量的概念有关。选择信息性、鉴别性和独立特征对于mlp在模式识别、分类和回归中的有效操作非常重要。特征可以是不同类型的,如数字特征、字符串和图形。机器学习算法利用训练数据628来找到影响结果或评估632的已识别特征602之间的相关性。在一些示例性实施例中,训练数据628包括标记数据,其是一个或多个已识别特征602和一个或多个结果的已知数据,例如指定传感器值、致动器事件和外部信息值的已知触发图,以及对应于触发图的已知动作图,该触发图指定在满足触发图的条件时将自动执行的致动器事件。利用训练数据628和已识别特征602在操作624训练机器学习程序。训练的结果是训练后的机器学习程序626。当机器学习程序626用于执行评估时,新数据630提供为训练后的机器学习程序626的输入,并且机器学习程序626生成评估632作为输出。图6b是示出根据一些示例性实施例的使用神经网络642生成训练后的ml程序644的图600b。参见图6b,源数据640可以由神经网络642(或机器学习算法或技术的另一种类型)分析,以生成训练后的机器学习程序644(其可以与训练后的ml程序626相同)。源数据640可以包括训练数据集,例如628,以及由特征602中的一个或多个所标识的数据。机器学习技术训练模型,以准确地预测馈送到模型的数据(例如,用户在给定的话语中所说的话;名词是人、地方还是事物;明天的天气怎么样)。在学习阶段,针对输入的训练数据集开发模型,以优化模型,从而正确预测给定输入的输出。一般来说,学习阶段可以是有监督的、半监督的或无监督的,指示对应于训练输入提供“正确”输出的下降水平。在监督学习阶段,所有输出都提供给模型,引导模型开发将输入映射到输出的一般规则或算法。相反,在无监督学习阶段,不为输入提供所需的输出,以便模型可以开发自己的规则来发现训练数据集中的关系。在半监督学习阶段,提供了一个不完全标记的训练集,训练数据集的一些输出已知,一些输出未知。模型可以针对训练数据集运行几个阶段(例如迭代),在此期间训练数据集重复馈送到模型中,以细化其结果。例如,在监督学习阶段,开发模型以预测给定输入集(例如,数据640)的输出,并在几个阶段中进行评估,以更可靠地提供输出,该输出指定为对应于训练数据集的最大输入数量的给定输入。在另一个示例中,对于无监督学习阶段,开发了一个模型,以将数据集聚类到n个组,并在几个阶段评估模型将给定输入放置到给定组的一致性,以及它在每个阶段产生n个所需聚类的可靠性。一旦运行了一个阶段,就评估模型,并调整其变量的值,以尝试以迭代的方式更好地细化模型。在各个方面,评估对假阴性有偏差,对假阳性有偏差,或对模型的整体精度有均匀偏差。根据所使用的机器学习技术,可以以多种方式调整值。例如,在遗传或进化算法中,在预测所需输出方面最成功的模型的值用于开发模型在后续阶段使用的值,其中可能包括随机变化/突变,以提供附加数据点。本领域普通技术人员将熟悉可应用于本发明的几种其它机器学习算法,包括线性回归、随机森林、决策树学习、神经网络、深度神经网络等。每个模型通过改变影响输入的一个或多个变量的值,以更接近地映射到所需结果,从而在几个阶段开发规则或算法,但由于训练数据集可能会变化,并且优选是很大的变化,因此可能无法实现完美的准确性和精度。因此,构成学习阶段的一些阶段可以设定为给定数量的试验或固定的时间/计算量,或者,当给定模型的准确性足够高或足够低或达到准确性平台期时,可以在达到该数字/量之前终止这些阶段。例如,如果训练阶段设计为运行n个阶段并生成具有至少95%准确性的模型,并且这样的模型是在第n个阶段之前生成的,学习阶段可以提前结束,并使用满足最终目标准确性阈值的生成模型。类似地,如果给定模型的不准确性足以满足随机机会阈值(例如,模型在确定给定输入的真/假输出时仅有55%的准确性),则该模型的学习阶段可以提前终止,尽管学习阶段的其它模型可以继续训练。类似地,当给定模型继续提供相似的准确性或在多个阶段的结果中摇摆不定-已经达到性能平台期-给定模型的学习阶段可以在达到阶段编号/计算量之前终止。一旦学习阶段完成,模型就会最终确定。在一些示例性实施例中,评估针对测试标准评估最终确定的模型。在第一个示例中,包括其输入的已知输出的测试数据集馈送到最终确定的模型中,以确定模型在处理尚未训练的数据时的准确性。在第二个示例中,假阳性或假阴性可用于评估最终确定后的模型。在第三个示例中,每个模型中数据集群之间的描述用于选择为其数据集群生成最清晰边界的模型。在一些示例性实施例中,机器学习程序644由神经网络642(例如,深度学习、深度卷积或递归神经网络)训练,该神经网络包括一系列“神经元”,例如布置在网络中的长短期记忆(longshorttermmemory,lstm)节点。神经元是用于数据处理和人工智能特别是机器学习的架构元素,包括可以根据提供给给定神经元的输入的权重确定何时“记住”和何时“忘记”其保存的值的存储器。这里使用的神经元中的每一个用于接受来自网络中其它神经元的预定数量的输入,从而为分析的帧的内容提供关系和子关系输出。单个神经元可以链接在一起和/或组织成神经网络的各种配置中的树结构,以提供交互和关系学习建模,以确定话语中的帧中的每一个如何相互关联。例如,作为神经元的lstm包括几个门,用于处理输入向量(例如,来自话语的音素)、存储单元和输出向量(例如,上下文表征)。输入门和输出门分别控制流入和流出存储单元的信息,而遗忘门可选地基于神经网络中早期链接单元的输入从存储单元中删除信息。在训练阶段的过程中调整各种门的权重和偏差矢量,一旦训练阶段完成,这些权重和偏差将最终确定用于正常操作。本领域技术人员将理解,神经元和神经网络可以编程地构建(例如,通过软件指令)或通过链接每个神经元以形成神经网络的专用硬件构建。神经网络利用特征来分析数据从而生成评估(例如,识别语音单位)。特征是观察到的现象的单个可测量性质。特征的概念与线性回归等统计技术中使用的解释变量的概念有关。此外,深度特征表示深度神经网络隐藏层中节点的输出。神经网络神经网络(例如,642),有时称为人工神经网络,是一种基于动物大脑的生物神经网络的考虑的计算系统。这些系统逐步提高性能,即学习,以执行任务,通常不需要任务特定编程。例如,在图像识别中,可以教导神经网络通过分析已标记有对象名称的示例性图像来识别包含对象的图像,并且在学习了对象和名称后,可以使用分析结果来识别未标记图像中的对象。神经网络是基于称为神经元的连接单元的集合,其中神经元之间的每个连接,称为突触,可以传输单向信号,其激活强度随连接强度而变化。接收神经元可以激活和传播信号到连接它的下游神经元,通常基于来自潜在许多传递神经元的组合输入信号是否具有足够的强度,其中强度是一个参数。深度神经网络(deepneuralnetwork,dnn)是一个由多层组成的堆叠神经网络。这些层由节点组成,这些节点是计算发生的位置,在人脑中的神经元上松散地图案化,当节点遇到足够的刺激时就会触发。节点将来自数据的输入与一组系数或权重组合在一起,这些系数或权重放大或抑制输入,这为算法试图学习的任务的输入赋予重要性。这些输入权重乘积求和,所得的和通过节点的激活函数传递,以确定信号是否以及在多大程度上进一步通过网络来影响最终结果。dnn使用许多层的非线性处理单元的级联进行特征提取和转换。每个连续层都使用上一层的输出作为输入。更高级别的特征从更低级别的特征派生,以形成分层表示。输入层之后的层可以是卷积层,其产生特征映射,这些特征映射是输入的过滤结果,并由下一个卷积层使用。在dnn架构的训练中,回归构造为一组统计过程,用于估计变量之间的关系,可以包括成本函数的最小化。成本函数可以实现为一个函数,以返回表示神经网络在映射训练示例中表现如何的数字以校正输出。在训练中,如果成本函数值不在预定范围内,基于已知的训练图像,则使用反向传播,其中反向传播是训练人工神经网络的常见方法,人工神经网络与诸如随机梯度下降(stochasticgradientdescent,sgd)方法的优化方法一起使用。反向传播的使用可以包括传播和权重更新。当输入呈现给神经网络时,它通过神经网络逐层向前传播,直到到达输出层。然后,使用成本函数将神经网络的输出与所需输出进行比较,并为输出层中的节点中的每一个计算误差值。误差值从输出开始向后传播,直到每个节点都有一个关联的误差值,该误差值大致表示其对原始输出的贡献。反向传播可以使用这些误差值来计算成本函数相对于神经网络中权重的梯度。计算的梯度馈送到选定的优化方法,以更新权重,从而尝试最小化成本函数。作为上述训练ml程序626和生成自动化规则表514的结果,ai引擎118和设备108可以在达到训练后的ml程序626的一定准确性水平所需的一定时间之后逐渐接管家庭通信网络100的一些部分的操作。然而,基于自动化规则表514执行的自动化动作可能不准确,也可能不符合用户的喜好或用户的要求。此外,用户例程可能会随着时间的推移而改变,因此用户可以显式激活一些致动器,尽管系统最近激活了相同的致动器。如果这些设备激活响应于基于自动化规则表514的自动化动作,则ai引擎118可以将设备激活视为对自动化动作的“校正动作”。在这方面,设备激活可以由训练后的ml程序626使用来重新训练或重新校准自身,如图7所示,以在未来进行更准确的自动化设备操作。图7是示出根据一些示例性实施例的可用于网络设备的自动化操作的自动化规则表的校正/重新训练过程700的流程图。参见图7,当可以检测到用户触发的致动器激活事件时,校正/重新训练过程700可以由ai引擎118执行,并且可以在操作702开始。在一些方面,致动器激活事件可以由用户在基于自动化规则表自动触发的不同致动器事件的特定时间之后触发。一旦用户在自动化动作发生后的特定时间框架内触发致动器激活,在操作704,可以确定用户触发的致动器激活事件是否响应于自动化动作,例如基于自动化规则表自动触发的致动器事件。在操作708,如果确定用户触发的致动器激活事件响应于自动化规则表定义的自动化动作,则ai引擎118可以调用函数并运行可以在重新训练过程期间执行的算法,这将细化自动化规则表514的规则,以更准确地进行未来操作,并将在操作710使用调整后的规则更新自动化规则表。图7的右侧更详细地示出了用于重新训练ml程序626和细化自动化规则表514的操作708。一旦检测到用户触发的致动器激活702作为对系统执行的自动化动作的响应,ml程序626的重新训练过程开始。训练引擎712可以是ai引擎118的一部分,可以使用用户执行的致动器激活,并基于完成用户发起的致动器激活所需的变化量,训练引擎712可以创建奖励(从负奖励值开始),以使ml程序714改变其行为使得更接近所需动作。作为响应,ml程序714将输出它在相同触发情况下下次将采取的调整动作。训练引擎712评估调整后的动作,并输出新的奖励函数,并声明调整后的动作导致的仿真环境。该过程可以继续,直到ml程序714创建的调整后的动作在训练引擎712基于用户的激活702确定的期望动作的某个阈值内。图8是示出根据一些示例性实施例的基于触发条件的匹配推理和执行来自自动化规则表的动作图的过程800流程图。图8中所示的功能可以由自动化规则表生成和管理模块(例如,图14中的1462或图15中的1565)或由设备108中的另一个模块执行。参见图8,传感器数据802、致动器事件数据804和外部信息数据806可以在操作808连续监控变化或更新。在检测到这样的变化或更新时,在操作810,监控数据可以与在自动化规则表514中的触发图内指定的一个或多个触发条件匹配。在操作812,可以确定是否在自动化规则表514内找到具有匹配触发条件的规则。如果这样的规则在自动化规则表内的触发图中具有匹配的触发条件,则在操作816,可以执行与所定位的触发图对应的动作图。如果这样的规则不位于自动化规则表内,则在操作814,处理可以在没有任何致动器激活的情况下结束。在一些方面,本文公开的技术可用于以跨多个家庭位置以及云架构的联合方式支持学习活动和用户习惯。更具体地说,规则或模型,例如一个家庭创建的自动化规则表,可以传递给另一个家庭,以加快甚至消除学习或重新学习过程,并提高用于生成表的规则和ml模型的准确性。图9a、图9b以及图9c示出了根据一些示例性实施例的用于与一个或多个家庭中网络设备的自动化操作相关的联合计算的各种方法。图9a示出了实施例900a,其中服务提供商(例如云架构906)将新模型908传送到家庭902。如本文所使用的,术语“模型”表示可用于生成自动化规则表的训练后的机器学习程序。在家庭902中,新模型90可以基于家庭902的居住者触发的致动器激活在操作910重新训练/校正。在服务提供商906没有提供初始模型的方面,可以由家庭902生成新模型。在操作912,家庭902可以将其新构建的模型或由提供商906提供的初始模型与其重新训练后的模型的结果之间的差异传送给服务提供商906。提供商906可以在操作914执行进一步的计算,例如基于家庭902提供的差异调整其初始模型,清理或删除模型的一些部分,并最终将调整后的模型916传送到家庭904以采用。图9b示出了不同的实施例900b,其中家庭可以以更直接的方式向其它家庭提供更新,不需要通过服务提供商去提供更新。参见图9b,新模型920可以由服务提供商906传送到家庭902和家庭904。可以在家庭902内的操作922执行重新训练/校正。在操作924,家庭902可以将新构建的模型或初始模型和重新训练后的模型之间的差异传送到家庭904。在操作926,家庭904处的计算资源可以基于从服务提供商906接收的初始模型920以及在操作924由家庭902传送的模型之间的差异,执行用于使家庭通信网络内的设备自动化的模型的本地计算。图9c示出了实施例900c,其中家庭902在其场所生成新模型930,并在操作932与服务提供商906共享新模型930。服务提供商906可以执行与接收到的模型相关的附加处理934(例如,验证、清理、微调和个性化),以生成更新的模型936。服务提供商906然后可以与不同的家庭,例如家庭904共享更新的模型936。图10示出了根据一些示例性实施例的具有多个家庭和基于云的ml训练和自动化规则表生成的通信架构1000。参见图10,来自多个家庭1002、1004、……1006的数据1018传送到服务提供商1008(例如,基于云的架构),使得训练和ml程序创建由服务提供商1008执行。数据1018可以包括传感器数据、用户激活事件数据、外部信息数据等,这些数据可以由单个家庭用于由训练后的ml程序生成自动化规则表。在一些方面,服务提供商1008可以预处理数据,例如在训练引擎1010使用数据之前对其进行清理。训练引擎1010可以完全依赖于来自家庭的数据1018,或者还可以使用服务提供商提供的附加数据1016作为合成数据,用于训练ml程序1012。在训练过程期间,服务提供商1008可以验证训练后的模型(即ml程序1012)的准确性或置信水平,并且只能将训练后的模型发送到家庭中的一个或多个,从而一旦训练后的模型已经达到高于阈值的置信度1014,预测和生成各个家庭位置处的自动化规则表。图11a和图11b示出了根据一些示例性实施例的连接到诸如图1的网络的家庭通信网络的第三方设备和第三方应用程序的框图。参见图11a,图1100示出了连接到诸如网络100的家庭通信网络的第三方设备1102和第三方应用程序1104。例如,第三方设备1102和第三方应用程序1104可以通过api302连接到家庭通信网络100。在这方面,第三方设备1102和第三方应用程序1104可以访问网络资源1106、数据1108、机器学习模型1110、ai引擎1112,以及应用程序注册表1114,应用程序注册表1114可以在与本文讨论的配置家庭自动化功能相关的家庭通信网络中维护。在一些方面,第三方设备1102可以包括在家庭通信网络内收集和发送数据的附加传感器或致动器。第三方应用程序1104可以利用家庭通信网络内可用的数据和知识,在其之上提供增值服务(例如,通过向一些部分或整个ai引擎提供增强的ai能力)。在这种情况下,家庭通信网络可以用于提供它所拥有的一些可用的服务和资源,例如到网络的其它部件(即传感器、致动器、数据存储器、计算引擎等)的网络连接,访问数据的一些部分、访问训练后的ai模型、访问计算资源以及访问簿记组件,如应用程序注册表1114。图11b示出了与第三方设备和第三方应用程序安装和注册过程的示例实施例相关联的状态图。对于第三方设备1102,第一步骤1120包括通过将设备连接到外部电源或激活其自己的电源来给设备上电。在操作1122,设备可以连接到家庭通信网络,以能够与网络的其余部分通信。在操作1124,设备1102可以发布关于自身的信息,并可以注册在家庭通信网络100内提供的服务。正在发布的关于设备的信息可以包括设备及其在操作期间提供的数据的描述,例如设备类型、功能、服务类型、数据类型和结构。在操作1126,第三方设备1102可以开始在家庭通信网络100内操作。当应用程序加载到家庭通信网络内的适当部件上时,例如应用程序执行引擎,第三方应用程序1104的注册过程可以在操作1130开始,然后通过诸如api302的api将应用程序连接到网络(在操作1132)。在操作1134,第三方应用程序1104向家庭通信网络100注册一些信息,例如可以由应用程序执行的一个或多个功能的功能类型、功能集、数据要求等。在操作1136,家庭通信网络可以启用和设置与应用程序1104相关联的各种权限。即使家庭通信网络100和ai引擎118的目标是在提供家庭自动化方面完全自主地操作,而不需要任何人工干预(除了在ai引擎和训练集的初始系统安装期间安装和启动必要的系统部件),设备108可以用于提供概览和/或解释它在其操作期间所学到的知识和/或规则。该信息可以通过一个或多个用户接口(例如,家庭网络设备显示器、手机应用程序、网络服务等)提供给用户112。提供给用户的信息可以包括触发规则的传感器值和致动器事件,以及自动化规则表中规则的描述,例如触发特定规则时正在采取哪些自动化动作。此外,系统可能会提供关于规则在什么时间以什么概率触发的统计信息(例如,基于自动化规则表中的致动器事件的先前自动执行)。图12a示出了根据一些示例性实施例的表示自动化规则表的用户接口1200a。例如,当外部光传感器的光强度传感器读数为“4”,并且一天中的时间在指示的范围内时,可以激活用于打开用餐灯的致动器事件。另一个触发图可以基于外部温度低于60°f,并且一天中的时间在指定的范围内,从而从相应的动作图中产生事件执行(例如,将恒温器和室内温度调到72°f)的致动器。除了提供关于ai引擎118所学到的信息外,设备108还可以为用户提供接口,以设置关于ai引擎118应该如何调整其决策的目标。这些目标可能与安全性、舒适性、节能等有关。图12b示出了根据一些示例性实施例的用于设置与网络设备的自动化操作相关的用户目标(比如目标214)的用户接口1200b。在一个实施例中,用户可以仅使用接口1202b来指定具有最高标准的目标,而在另一个实施例中,并结合用户接口1204b,用户可能为每个目标设置重要性级别。除了指定ai引擎118的目标之外,用户还可以提供关于传感器和致动器之间关系的信息(例如,信息216)。训练子系统可以使用该分组信息来创建更准确的模型或在更短的时间内完成训练。所提供的信息可能包括不同传感器和致动器之间的逻辑或物理连接。逻辑连接可以包括它们位于相同的物理位置(即房间)或与相同的服务(即家庭功能)相关。物理连接可以意味着它们物理相连,以便直接通信或合作,以集体执行一些功能或服务。图12c示出了根据一些示例性实施例的用于设置与网络设备的自动化操作相关的传感器-致动器分组1200c的用户接口。例如,家庭安全系统1212c可以与时间传感器1202c、星期几传感器1204c、光传感器1206c、运动检测器1208c和外部摄像头1210c配置在同一分组中。从用户那里获得输入以提高训练的准确性和速度的另一种方法可以是接受“喜欢”或“不喜欢”类型的反馈。此类反馈可以通过传统用户接口或语音控制收集。反馈可用于指导训练以便更准确的预测,从而在更短的时间内实现更好的预测能力。除了请求/接受“喜欢”和“不喜欢”类型反馈外,用户还可以指定有关他们喜欢或不喜欢的内容以及系统可能如何纠正动作(例如,比先前自动化操作期间提升更高的温度)的细节。图12d示出了根据一些示例性实施例的用于向基于自动化规则表执行的致动器动作提供反馈的用户接口1202d和1204d。图13是根据一些示例性实施例的适用于家庭通信网络内网络设备的自动化操作的方法的流程图。方法1300包括操作1302、1304和1306。作为示例而非限制,方法1300描述为由设备108使用图14的模块1460-1464(或图15的模块1560、1565和1570)执行。在操作1302,检测家庭通信网络(例如100)内多个致动器(例如104)的致动器动作。多个致动器中的每一个可以用于改变家庭通信网络内的至少一个网络设备的状态。在操作1304,检测到的致动器动作可以与来自家庭通信网络内的多个传感器的一个或多个传感器值相关联,以生成配置数据。例如,训练后的ml程序626可以将致动器事件数据504与来自多个传感器102的传感器数据502相关联,以生成配置数据(例如,自动化规则表514)。配置数据(例如,表514)可以包括具有一个或多个触发条件(例如,518-522)的触发图(例如,516)。配置数据还可以包括对应于触发图(例如,516)的动作图(例如,524)。动作图可以指示与多个致动器(例如104)中的至少一个相关联的一个或多个致动器动作(例如,526a-526g)。在操作1306,当检测到触发图中的一个或多个触发条件时,可以触发多个致动器中的至少一个以执行动作图指示的一个或多个动作。图14是示出根据一些示例性实施例的代表性软件架构1400的框图,该代表性软件架构可以与本文描述的各种设备硬件结合使用。图14仅仅是软件架构1402的非限制性示例,并且将理解,可以实现许多其它架构以实现本文描述的功能。软件架构1402可以在硬件上执行,例如图15的设备1500,包括处理器1505、存储器1510、存储器1515和1520以及i/o部件1525和1530等。示出了代表性硬件层1404,其可以表示例如图15的设备1500。代表性硬件层1404包括一个或多个具有关联的可执行指令1408的处理单元1406。可执行指令1408表示软件架构1402的可执行指令,包括图1-13的方法、模块等的实现。硬件层1404还包括存储器和/或存储模块1410,它们也具有可执行指令1408。硬件层1404还可以包括其它硬件1412,其表示硬件层1404的任何其它硬件,例如作为设备1500的一部分示出的其它硬件。在图14的示例性架构中,软件架构1402可以概念化为层的堆栈,其中每个层提供特定的功能。例如,软件架构1402可以包括诸如操作系统1414、库1416、框架/中间件1418、应用程序1420和表示层1444等层。在操作上,层内的应用程序1420和/或其它部件可以通过软件堆栈调用应用程序编程接口(applicationprogramminginterface,api)调用1424,并接收响应、返回值等,如消息1426所示,以响应api调用1424。图14中所示的层在本质上是代表性的,并且并非所有的软件架构1402都具有所有的层。例如,一些移动或专用操作系统可以不提供框架/中间件1418,而另一些操作系统可以提供这样的层。其它软件架构可以包括附加或不同的层。操作系统1414可以管理硬件资源并提供公共服务。操作系统1414可以包括例如内核1428、服务1430、驱动器1432、ai引擎管理模块1460、自动化规则表(tableofautomatedrules,tar)生成和管理模块1462以及数据收集和管理模块1464。内核1428可以充当硬件和其它软件层之间的抽象层。例如,内核1428可以负责存储器管理、处理器管理(例如,调度)、部件管理、组网、安全设置等。服务1430可以为其它软件层提供其它公共服务。驱动器1432可以负责控制或与底层硬件连接。例如,驱动器1432可以包括显示驱动器、摄像头驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(universalserialbus,usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等,取决于硬件配置。在一些方面,ai引擎管理模块1460可以包括适当的电路、逻辑、接口和/或代码,并且可以用于执行本文中描述的与ai引擎118相关的功能,例如训练ml程序、生成训练后的ml程序,重新训练训练后的ml程序(例如,如图7中描述的),并管理与训练后的ml程序相关的联合功能(例如,如结合图9a-9c描述的)。tar生成和管理模块1462可以包括适当的电路、逻辑、接口和/或代码,并且可以用于执行与tar相关联的功能,例如使用训练后的ml程序(例如,626)生成tar(例如,514),监控传感器值以检测与tar内的触发图的匹配,并执行tar内的相应动作图指定的一个或多个致动器事件(例如,如结合图8所描述的)。数据收集和管理模块1464可以包括适当的电路、逻辑、接口和/或代码,并且可以用于执行数据相关的功能,例如数据收集(例如,由模块402和510执行)、数据处理(例如,如在操作404和422执行的),以及数据存储(例如,如在操作406由模块508执行的)。在一些方面,模块1460、1462和1464中的一个或多个可以组合成单个模块。库1416可以提供可由应用程序1420和/或其它组件和/或层使用的公共基础设施。库1416通常提供允许其它软件模块以比直接与底层操作系统1414功能(例如,内核1428、服务1430、驱动器1432和/或模块1460-1464)连接更容易的方式执行任务。库1416可以包括系统库1434(例如,c标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库1416可以包括api库1436,例如媒体库(例如,支持诸如mpeg4、h.264、mp3、aac、amr、jpg、png的各种媒体格式的呈现和操作的库),图形库(例如,可用于在显示器上渲染图形内容中的2d和3d的opengl框架)、数据库库(例如,可提供各种关系数据库功能的sqlite)、网络库(例如,可以提供网络浏览功能的webkit)等。库1416还可以包括各种各样的其它库1438,以向应用程序1420和其它软件部件/模块提供许多其它api。框架/中间件1418(有时也称为中间件)可以提供可由应用程序1420和/或其它软件部件/模块利用的更高级别的公共基础设施。例如,框架/中间件1418可以提供各种图形用户接口(graphicuserinterface,gui)功能、高级别资源管理、高级别位置服务等。框架/中间件1418可以提供可由应用程序1420和/或其它软件部件/模块使用的广泛的其它api,其中一些可以特定于特定操作系统1414或平台。应用程序1420包括内置应用程序1440和/或第三方应用程序1442。代表性内置应用程序1440的示例可以包括但不限于联系人应用程序、浏览器应用程序、图书阅读器应用程序、位置应用程序、媒体应用程序、消息传递应用程序和/或游戏应用程序。第三方应用程序1442可以包括任何内置应用程序1440以及广泛的其它应用程序。在特定示例中,第三方应用程序1442(例如,由特定平台的供应商以外的实体使用androidtm或iostm软件开发工具包(softwaredevelopmentkit,sdk)开发的应用程序)可以是在诸如iostm、androidtm、phone的移动操作系统上或其它移动操作系统上运行的移动软件。在本示例中,第三方应用程序942可以调用由诸如操作系统1414的移动操作系统提供的api调用1424,以实现本文描述的功能。应用程序1420可以利用内置操作系统功能(例如,内核1428、服务1430、驱动器1432和/或模块1460-1464)、库(例如,系统库1434、api库1436和其它库1438),以及框架/中间件1418,以创建用户接口以与系统的用户交互。或者,或者附加地,在一些系统中,与用户的交互可以通过表示层,例如表示层1444发生。在这些系统中,应用程序/模块“逻辑”可以与与用户交互的应用程序/模块的方面分开。一些软件架构使用虚拟机。在图14的示例中,这由虚拟机1448示出。虚拟机创建软件环境,在此环境中应用程序/模块可以像在硬件机器(例如,图15的设备1500)上执行一样执行。虚拟机1448由主机操作系统(图14中的操作系统1414)托管,并且通常地,尽管并不总是,具有虚拟机监视器1446,其管理虚拟机1448的操作以及与主机操作系统(即操作系统1414)之间的接口。诸如操作系统1450、库1452、框架/中间件1454、应用程序1456和/或表示层1458的软件架构1402在虚拟机1448内执行。在虚拟机1448内执行的这些软件架构层可以与先前描述的相应层相同,或者可以不同。图15是示出根据一些示例性实施例的实现算法和执行方法的设备的电路的框图。不需要在各种实施例中使用所有的部件。例如,客户端、服务器和基于云的网络设备可以各自使用一组不同的部件,或者比如服务器使用更大的存储设备。计算机1500形式的一个示例性计算设备(也称为计算设备1500、计算机系统1500或计算机1500)可以包括处理器1505、内存存储器1510、可移动存储器1515、不可移动存储器1520、输入接口1525、输出接口1530和通信接口1535,都由总线1540连接。虽然示例性计算设备图示和描述为计算机1500,但计算设备在不同的实施例中可以是不同的形式。内存存储器1510可以包括易失性存储器1545和非易失性存储器1550,并且可以存储程序1555。计算机1500可以包括-或有权访问包括-各种计算机可读介质,例如易失性存储器1545、非易失性存储器1550、可移动存储器1515和不可移动存储器1520的计算环境。计算机存储器包括随机存取存储器(random-accessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)和电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、闪存或其它存储器技术,光盘只读存储器(compactdiscread-onlymemory,cdrom)、数字多用盘(digitalversatiledisk,dvd)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备,或任何其它能够存储计算机可读指令的介质。存储在计算机可读介质上的计算机可读指令(例如,存储在存储器1510中的程序1555)可由计算机1500的处理器1505执行。硬盘、cd-rom和ram是包括非瞬时性计算机可读介质例如存储设备的物品的一些示例。术语“计算机可读介质”和“存储设备”不包括载波,因为载波被认为太过短暂。“计算机可读非瞬时性介质”包括所有类型的计算机可读介质,包括磁存储介质、光存储介质、闪存介质和固态存储介质。应该理解的是,软件可以安装在计算机中,并与计算机一起销售。或者,软件可以获取并加载到计算机中,包括通过物理介质或分发系统获取软件,包括例如从软件创建者拥有的服务器或从软件创建者不拥有但使用的服务器获取软件。例如,软件可以存储在服务器上,以便通过互联网分发。如本文所使用的,术语“计算机可读介质”和“机器可读介质”是可互换的。程序1555可以使用客户偏好结构,该结构使用本文讨论的模块,例如ai管理模块1560、tar生成和管理模块1565以及数据收集和管理模块1570。ai管理模块1560、tar生成和管理模块1565和数据收集和管理模块1570可以分别与ai管理模块1460、tar生成和管理模块1462和数据收集和管理模块1464相同,如结合图14所讨论的。在一个示例性实施例中,计算机1500包括检测器模块,其检测家庭通信网络内的多个致动器的致动器动作,多个致动器中的每一个用于改变网络设备中的至少一个的状态,关联模块,其将检测到的致动器动作与来自家庭通信网络内的多个传感器的一个或多个传感器值相关联,以生成配置数据,配置数据包括具有一个或多个触发条件的触发图以及对应于触发图的动作图,动作图指示与多个致动器中的至少一个相关联的一个或多个致动器动作,以及触发模块,其在检测到一个或多个触发条件时触发多个致动器中的至少一个执行动作图指示的一个或多个致动器动作。在一些实施例中,计算机1500可以包括用于执行实施例中描述的步骤中的任何一个或组合的其它或附加模块。此外,如任何附图中所示或任何权利要求中所述的方法的任何附加或替代实施例或方面也设想为包括类似的模块。本文描述的模块中的任何一个或多个可以使用硬件(例如,机器的处理器、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或其任何适当的组合)来实现。此外,这些模块中的任何两个或多个可以组合成单个模块,并且这里描述的单个模块的功能可以在多个模块之间细分。此外,根据各种示例性实施例,本文描述为在单个机器、数据库或设备内实现的模块可以分布在多个机器、数据库或设备上。在一些方面,模块1560-1570中的一个或多个可以集成为单个模块,执行集成模块的相应功能。虽然上面已经详细描述了一些实施例,但其它修改是可能的。例如,图中所示的逻辑流程不要求所示的特定顺序或先后顺序来获得理想的结果。可以提供其它步骤,或从所示流程中删除步骤,并且可以将其它部件添加到所示系统中或从所示系统中删除。其它实施例可以在以下权利要求的范围内。还应理解,包括有助于上文参考本公开的任何一个或所有步骤描述的处理和操作的一个或多个计算机可执行指令的软件可以安装在与本公开一致的一个或多个计算设备中并与之一起销售。或者,软件可以获取并加载到一个或多个计算设备中,包括通过物理介质或分发系统获取软件,包括例如从软件创建者拥有的服务器或从软件创建者不拥有但使用的服务器获取软件。例如,软件可以存储在服务器上,以便通过互联网分发。此外,本领域技术人员将理解,本公开在其应用中并不限于描述中所述或附图中示出的部件的结构和布置的细节。这里的实施例能够是其它实施例,并且能够以各种方式实践或执行。此外,可以理解,本文使用的措辞和术语是为了描述的目的,不应视为限制。本文使用“包括”、“包含”或“具有”及其变体,旨在包括此后列出的项目及其等效物以及附加项目。除非另有限制,术语“连接”、“耦合”、“安装”及其变体在本文中广泛使用,并包括直接和间接连接、耦合和安装。此外,术语“连接”和“耦合”及其变体不限于物理或机械连接或耦合。此外,上、下、底和顶等术语是相对的,用于帮助说明,但并不限制。根据所示实施例采用的说明性设备、系统和方法的部件可以至少部分地在数字电子电路、模拟电子电路或计算机硬件、固件、软件或它们的组合中实现。这些部件可以例如实现为计算机程序产品,例如有形地体现在信息载体中的计算机程序、程序代码或计算机指令,或体现在机器可读存储设备中,用于由诸如可编程处理器、计算机或多台计算机的数据处理装置执行或控制其操作。计算机程序可以以任何形式的编程语言编写,包括编译或解释的语言,并且可以以任何形式部署,包括作为独立程序或作为模块、部件、子例程或其它适合在计算环境中使用的单元。计算机程序可以部署在一台计算机上或一个站点的多台计算机上执行,也可以分布在多个站点上,并通过通信网络互连。此外,用于实现本文描述的技术的功能程序、代码和代码段可以容易地被本领域程序员理解为在权利要求书的范围内,本文描述的技术属于本领域。与说明性实施例相关联的方法步骤可以由一个或多个可编程处理器执行,该处理器执行计算机程序、代码或指令以执行功能(例如,通过操作输入数据和/或生成输出)。方法步骤也可以由专用逻辑电路执行,以及用于执行方法的装置可以实现为专用逻辑电路,例如现场可编程门阵列(fieldprogrammablegatearray,fpga)或专用集成电路(application-specificintegratedcircuit,asic)。结合本文公开的实施例描述的各种说明性逻辑块、模块和电路可以用通用处理器、数字信号处理器(dsp)、asic、fpga或其他可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件、或其设计用于执行本文所述功能的任何组合。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。适用于执行计算机程序的处理器例如包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的所需元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器件。通常,计算机还将包括,或可操作地耦合以从例如磁盘、磁光盘或光盘的一个或多个用于存储数据的海量存储设备接收数据或向其传输数据或接收数据并向其传输数据。适于体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,例如,半导体存储器件,例如,电可编程只读存储器或rom(electricallyprogrammableread-onlymemory,eprom)、电可擦除可编程rom(electricallyerasableprogrammablerom,eeprom)、闪存设备和数据存储磁盘(例如磁盘、内部硬盘或可移动磁盘、磁光盘、cd-rom和dvd-rom)。处理器和存储器可以由专用逻辑电路补充,或结合在专用逻辑电路中。本领域技术人员应当理解,信息和信号可以使用多种不同的技术和方法中的任意一种来表示。例如以上描述提到的数据、指令、命令、信息、信号、比特、符号和芯片可由电压、电流、电磁波、磁场或粒子、光场或粒子、或者任何组合表示。如本文所使用的,“机器可读介质”(或“计算机可读介质”)是指能够临时或永久存储指令和数据的设备,并且可以包括但不限于随机存取存储器(random-accessmemory,ram)、只读存储器(read-onlymemory,rom)、缓冲存储器、闪存、光介质、磁介质、缓存存储器、其它类型的存储器(例如,可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eeprom))和/或其任何适当的组合。术语“机器可读介质”应视为包括能够存储处理器指令的单个介质或多个介质(例如,集中式或分布式数据库,或关联的缓存和服务器)。术语“机器可读介质”还应视为包括能够存储由一个或多个处理器1505执行的指令的任何介质或多个介质的组合,使得当指令由一个或多个处理器1505执行时,使一个或多个处理器1505执行本文描述的方法中的任何一个或多个。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。本文使用的术语“机器可读介质”不包括信号本身。此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其他变化、替代和改变的示例可以由本领域的技术人员在不脱离本文精神和所公开的范围的情况下确定。尽管已经参考本发明的特定特征和实施例描述了本发明,但是明显在不脱离本发明的情况下可以制定本发明的各种修改和组合。例如,其它部件可以添加到所描述的系统中,或从所描述的系统中移除。说明书和附图仅被视为所附权利要求书所定义的本发明的说明并且考虑落于本发明的范围内的任何和所有修改、变体、组合或均等物。其它方面可以在以下权利要求的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1