用于联邦学习的方法和设备与流程

文档序号:29039219发布日期:2022-02-25 20:07阅读:317来源:国知局
用于联邦学习的方法和设备与流程

1.本公开一般地涉及机器学习方法,以及更加具体地涉及用于联邦学习(federated learning)中的改进的公平性(fairness)的方法和装置。


背景技术:

2.联邦学习是在其中由于数据敏感性或者隐私而禁止数据离开本地客户端装置的领域中使用的训练范式。但是,在分布式场景下,本地客户端装置可能显示出高统计异质性。追求单个模型的许多联邦学习方法忽视向着占优势的数据分布生成的偏离,这产生公平性的问题。
3.如果模型关于m个不同装置或者类别的性能(例如,准确性)比其他模型在相同装置或者类别上的性能更均匀,则认为该模型比其他模型更公平。特别地,当跨m个类别或装置测量时,更公平的模型的性能的结果方差小于其他模型的性能的结果方差。
4.通过在每个本地客户端装置上保持用户数据和仅与全局服务器共享模型更新,联邦学习可以以保留隐私的方式在异构分布式网络上实现机器学习模型的训练。服务器通过取本地客户端模型的加权平均来生成平均模型。在生成平均时,目标是最小化以下等式(1)中提到的以下目标函数:
[0005][0006]
其中,fk(w):=e
x
~dk[fk(w;x_k)]是本地目标函数,n是装置或者客户端的数目,且pk≥0是每个装置的权重。
[0007]
客户端装置的数据分布的统计异质性是联邦学习中的挑战。当联邦学习聚焦于学习单个全局模型时,因为本地客户端模型可能显著地变化,所以其通常受困于模型的差异(divergence)。


技术实现要素:

[0008]
根据一个实施例,提供一种用于在客户端装置执行联邦学习的方法。客户端装置从服务器接收全局模型。客户端装置对全局模型执行模型反演(inversion),以生成用于全局模型中的数据的一个或多个类别的合成数据。客户端装置用合成数据增强客户端装置的数据集中的已收集数据,以生成比该数据集具有跨类别的数据的更均匀分布的增强的数据集。客户端装置在增强的数据集上训练全局模型以生成客户端模型。客户端装置将客户端模型从客户端装置发送到服务器。
[0009]
根据一个实施例,提供一种用于在服务器执行联邦学习的方法。服务器将全局模型从服务器分发到多个客户端装置。服务器从多个客户端装置接收客户端模型。每个客户端模型从多个客户端装置中的相应客户端装置接收。服务器对每个客户端模型执行模型反演,以生成用于每个客户端模型的合成数据。服务器使用来自客户端模型的合成数据生成
合成数据集。服务器对客户端模型进行平均以生成平均模型。服务器使用合成数据集训练平均模型以生成更新的全局模型。
[0010]
根据一个实施例,提供一种客户端装置用于执行联邦学习。客户端装置包括处理器和存储指令的非瞬时计算机可读存储介质。当被运行时,指令使得处理器从服务器接收全局模型,和对全局模型执行模型反演,以生成用于全局模型中的数据的一个或多个类别的合成数据。指令还使得处理器用合成数据增强客户端装置的数据集中的已收集数据,以生成比该数据集具有跨类别的数据的更均匀分布的增强的数据集。指令进一步使得处理器在增强的数据集上训练全局模型以生成客户端模型,和发送客户端模型到服务器。
[0011]
根据一个实施例,提供一种服务器用于执行联邦学习。服务器包括处理器和存储指令的非瞬时计算机可读存储介质。当被运行时,指令使得处理器将全局模型分发到多个客户端装置,并从多个客户端装置接收客户端模型。每个客户端模型从多个客户端装置中的相应客户端装置接收。指令还使得处理器对每个客户端模型执行模型反演,以生成用于每个客户端模型的合成数据,并使用来自客户端模型的合成数据生成合成数据集。指令进一步使得处理器对客户端模型进行平均以生成平均模型,并使用合成数据集训练平均模型以生成更新的全局模型。
附图说明
[0012]
从结合附图的以下详细说明,本公开的某些实施例的上述及其他方面、特征和优点将更为明显,在附图中:
[0013]
图1是图示根据一个实施例的联邦学习系统的图;
[0014]
图2是图示根据一个实施例的、用于使用零样本数据生成(zsdg)的在本地节点的联邦模型反演(fmil)的方法的流程图;
[0015]
图3是图示根据一个实施例的、用于使用zsdg的在联邦服务器的本地模型反演(lmif)的方法的流程图;和
[0016]
图4是根据一个实施例的网络环境中的电子装置的框图。
具体实施方式
[0017]
在下文中,将参考附图具体描述本公开的实施例。应当注意,相同的元件将由相同的附图标记指定,虽然它们在不同附图中示出。在下面的描述中,仅提供比如具体配置和组件的特定细节以帮助本公开的实施例的全面理解。因此,对本领域技术人员应该明显,可以在不脱离本公开的范围的情况下做出在这里描述的实施例的各种改变和修改。另外,为了清楚和简明,省略公知的功能和结构的描述。以下描述的术语是考虑在本公开中的功能定义的术语,且可以是根据用户、用户的意图或者习惯而不同的。因此,应该基于遍及本说明书的内容来确定术语的定义。
[0018]
本公开可以具有各种修改和各种实施例,以下参考附图具体地描述其中的实施例。但是,应当理解本公开不限于实施例,而是包括本公开的范围内的所有修改、等效和替代。
[0019]
虽然包括比如第一、第二等的序数的术语可以用于描述各种元件,但是结构元件不由该术语限制。该术语仅用于区分一个元件与另一元件。例如,在不脱离本公开的范围的
情况下,第一结构元件可以被称为第二结构元件。类似地,第二结构元件也可以被称为第一结构元件。如在此使用的,术语“和/或”包括一个或多个关联的项的任意和所有组合。
[0020]
在这里使用的术语仅用于描述本公开的各种实施例,但是不意在限制本公开。单数形式意在包括复数形式,除非上下文清楚地另外指示。在本公开中,应当理解术语“包括”或者“具有”指示特征、数目、步骤、操作、结构元件、部分或者其组合的存在,且不排除一个或多个其他特征、数目、步骤、操作、结构元件、部分或者其组合的存在或者增加的可能性。
[0021]
除非不同地定义,在这里使用的所有术语具有与本公开所属的本领域的技术人员理解的含义相同的含义。比如在通常使用的词典中定义的术语要被解释为具有如本技术的相关领域中的上下文含义相同的含义,且不被解释为具有理想或者过度形式化的含义,除非在本公开中清楚地限定。
[0022]
根据一个实施例的电子装置可以是各种类型的电子装置之一。电子装置例如可以包括便携式通信装置(例如,智能电话)、计算机、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或者家用电器。根据本公开的一个实施例,电子装置不限于如上所述的那些。
[0023]
本公开中使用的术语不意在限制本公开,而是意在包括用于相应的实施例的各种改变、等效或者替代。关于附图的说明,类似的附图标记可以用于指代类似的或者有关的元件。与项对应的名词的单数形式可以包括一个或多个该事物,除非相关上下文清楚地另外指示。如在此使用的,比如“a或者b”、“a和b中的至少一个”、“a或b中的至少一个”、“a、b或者c”、“a、b和c中的至少一个”和“a、b或c中的至少一个”的每一个短语可以包括在相应的短语之一中一起列举的项的所有可能的组合。如在此使用的,比如“第1”、“第2”“第一”和“第二”的术语可以用于区分相应的组件与另一组件,但是不意在以其他方面(例如,重要性或者次序)限制组件。意在如果元件(例如,第一元件)在有或者没有术语“操作地”或者“通信地”的情况下被称为“与另一元件(例如,第二元件)耦合”、“耦合到另一元件(例如,第二元件)”、“与另一元件(例如,第二元件)连接”或者“连接到另一元件(例如,第二元件)”,它指示该元件可以直接(例如,有线地)、无线地或者经由第三元件与其他元件耦合。
[0024]
如在此使用的,术语“模块”可以包括以硬件、软件或者固件实现的单元,且可以与其他术语,例如,“逻辑”、“逻辑块”、“部分”和“电路系统”可互换地使用。模块可以是适于执行一个或多个功能的单个集成组件、或者最小单元或者其一部分。例如,根据一个实施例,模块可以以专用集成电路(asic)的形式实现。
[0025]
联邦学习是将模型适配于具有分布式方式的数据的场景的训练范式。图1是图示根据实施例的联邦学习系统的图。联邦服务器102将全局模型分发到客户端装置104-1到104-n。客户端装置104-1到104-n将具有本地更新的客户端模型返回到联邦服务器,同时保持它们的本地数据。
[0026]
虽然模型可以维持跨客户端装置的可接受的平均性能,但是在单个客户端装置上的模型的性能可能变化。例如,当已收集数据向着多数组或者类别偏斜(skrewed)时,与类别不足的数据比较,模型易于在这种类别的数据上实现更好性能。因此,联邦学习算法可能导致具有高平均性能但是在跨不同客户端装置的性能也具有的高方差(variance)的模型。
[0027]
如在此使用的,术语“已收集数据”通常可以指正在处理的数据。已收集数据不需要是经由进行该处理的装置的传感器捕获的数据。已收集数据可能已经经历某些处理。
[0028]
由偏斜的已收集数据分布引起不公平性,或者高性能方差。在这里,提供平均化方法,其减轻分布的训练/已收集数据内的偏离以训练更公平的模型。该方法以zsdg(即,没有数据的明确共享的数据增强)解决联邦学习的统计异质性,并实现跨不同客户端装置的更公平的模型。
[0029]
本公开的实施例提供关于不足的数据分布采用zsdg以减轻统计异质性的联邦学习方法。这鼓励跨联邦网络中的客户端装置的更均匀的性能精度。这种方法同时改进精度和公平性。
[0030]
提供第一方法以改进经由fmil的联邦学习的公平性,其中,客户端装置(例如,本地节点)对从联邦服务器传送的全局模型执行模型反演(model inversion)。因此,即使不共享其他客户端装置的训练数据,也在客户端装置推导出数据。
[0031]
提供第二方法以改进经由lmif的联邦学习的公平性,其中,联邦服务器对接收到的客户端模型执行模型反演以生成合成数据,且由此,在联邦服务器生成要在额外的训练步骤中使用的平衡的数据集。因此,即使不共享客户端装置的训练数据,也在服务器推导出数据。
[0032]
根据第二方法,假定联邦服务器例如已经使用lmif提供公平的模型,也可以训练客户端装置以匹配联邦服务器的层统计。这防止客户端装置向它们自己的数据过度偏离。
[0033]
根据第一和第二方法两者,通过在不访问实际训练数据的情况下从训练的模型生成伪数据或者合成数据来执行没有数据的模型反演。每个数据样本具有类别标签。
[0034]
在模型反演的第一实施例中,模型m设置为包括l层的神经网络。为了简单,假定模型m具有l个批归一化(batch nomalization,bn)层,且在第i个bn层之前的激活表示为zi。
[0035]
在前向传播期间,zi由第i个bn层中参数化的均值μi和方差σi归一化。注意到,给定预训练的模型m,所有bn层的bn统计被存储且是可访问的。因此,为了生成最好地匹配bn层中存储的bn统计和给定的目标类别的伪输入可以如以下等式(2)所提出的,求解优化问题。
[0036][0037]
为了求解等式(2),固定模型参数且通过梯度下降更新来自随机样本的输入。因为输入重建不需要训练数据,所以它被称为zsdg。因为预训练的模型m固定,所以生成的伪输入的视觉质量高度取决于m的性能。
[0038]
在模型反演的另一实施例中,训练生成器以使用无数据的对抗知识蒸馏来生成合成数据。以对抗损失训练生成器以迫使生成器产生合成数据,这类似于针对从参考网络(老师)到另一网络(学生)的知识蒸馏的已收集数据(例如,真实数据或者原始数据)来执行。训练生成器以迫使其合成数据产生统计,该统计匹配以已收集数据预训练的参考模型中存储的bn统计。还训练生成器以使得其合成图像从参考预训练的网络产生小的分类熵(categorical entropy)和高批分类熵。条件生成器可以用于生成与特定标签对应的数据。
[0039]
根据提供以改进经由fmil的联邦学习的公平性的实施例,客户端装置(例如,本地节点)通过对由联邦服务器传送的模型进行反演来推导出数据。该生成的数据用于数据增
强以改进本地客户端模型的训练。
[0040]
在这里,(x;y)设置为真实本地训练输入/标签对,且设置为生成的合成数据(例如,伪数据)。为减轻统计异质性,每个客户端装置对于具有不足的已收集数据的类别通过合成数据增强其训练集。
[0041]
特别地,服务器将模型m分发到每个客户端装置,且客户端装置通过迭代所有可能的来执行zsdg以生成使本地训练能够基于更平衡的数据集。例如,如果(xi,yi)是用于第i个客户端装置的数据,且是在第i个客户端装置生成的合成数据,则第i个客户端装置将使用增强的数据在本地训练之后,客户端装置将更新的模型m返回到服务器用于聚合。
[0042]
每个客户端装置具有它自己的具有不同统计特性的训练/已收集数据(xi,yi)的集合,且在每个客户端生成的合成数据由于模型反演处理中的图像生成中的随机性而不相同。
[0043]
图2是图示根据实施例的用于使用zsdg的fmil的方法的流程图。为描述的简单,去除与数据元素x对应的标签y。
[0044]
在202,在通信回合(communicationround)t,联邦服务器将联邦全局模型m
f,t-1
分发到客户端装置的子集s
t
。在204,客户端装置的子集s
t
中的每个客户端装置i通过对联邦全局模型执行模型反演(例如,通过使用图像蒸馏或者zsdg),生成用于联邦全局模型mf中的所有类别、或者用于其中已收集数据不足的类别的子集的合成数据在206,每个客户端装置i以合成数据增强其已收集数据xi,以生成跨联邦全局模型mf的类别比已收集数据xi具有更均匀分布的增强的数据集
[0045]
通常,在判决数据集是否具有跨类别的更均匀分布时,数据集中的类别的频率分布用作量度。如果类别分布接近离散均匀分布,则数据集更均匀。例如,如果数据集的大小(例如,标记的数据集点的数目)是s,且存在n个类别,则如果对于n个类别中的每一个存在s/n个标记的点,则数据集是均匀的。
[0046]
在208,每个客户端装置i在它的增强的数据集训练联邦全局模型m
f,t-1
,并生成更新的客户端模型在210,每个客户端装置i将更新的客户端模型发送到联邦服务器。在212,联邦服务器使用加权平均来对从客户端装置的子集s
t
接收到的客户端模型进行平均,并生成可以重新分发到客户端装置的新的联邦平均模型,该方法返回到202。
[0047]
在测试关于fmil的方法时,服务器可以在每个通信回合期间选择100个客户端装置的分数c=0:1,其中总共回合t=100个。每个所选的客户端装置可以以最小批大小b=10训练它自己的模型e=5个本地时期(epoch)。每个客户端装置具有至多2个类别的图像且每个类别包括250个图像。起始于第80个回合,zsdg可以启动用于本地训练。每个增强的类别的量是64。在数据增强的联邦学习之后,测试最后的聚合模型,且获得跨所有客户端装置的测试准确性和方差。fmil方法的最后聚合的模型与标准联邦平均模型相比具有更高的测试准确性和更小的方差(更大的公平性)。特别地,同时改进性能与公平性。
[0048]
当客户端装置具有足够的计算和存储复杂性时,例如,当客户端装置是不访问来其他医院的数据,但是对来自这种数据的学习感兴趣的医院时,可以适当地使用关于fmil的该方法。
[0049]
根据提供以改进经由lmif的联邦学习的公平性的实施例,在联邦服务器对从本地节点传送的模型进行反演以推导出合成数据。该生成的合成数据由联邦服务器使用以改进本地客户端模型的组合,或者模型平均化处理。
[0050]
对本地客户端装置的约束包括有限的计算资源和存储容量,其可能限制如上所述相对于fmil的数据增强的应用。另外,第i个客户端装置可能更关心在它自己的已收集数据(xi,yi)上的模型性能,而不是对于所有数据工作的通用模型。因此,在该实施例中,在联邦服务器端提出zsdg和联邦学习。
[0051]
特别地,联邦服务器将联邦全局(平均)模型m分发到每个客户端装置。每个客户端装置i使用它的已收集本地数据(xi,yi)训练联邦全局模型m。每个客户端装置i将更新的模型mi返回到联邦服务器。服务器针对每个更新的模型mi执行zsdg,以便生成用于每个客户端装置i的合成数据,并以平衡的方式混合合成数据。服务器使用平均化算法将新接收的模型聚合为更新的平均联邦模型中。服务器精细地调谐平均模型的权重,以便经由以混合的合成数据进行训练来生成公平的联邦模型。
[0052]
根据另一实施例,服务器对接收到的客户端模型运行化平均算法以生成第一平均联邦模型。服务器从第一平均联邦模型生成合成数据(例如,伪数据)。服务器基于生成的合成数据评估第一平均联邦模型,并确定不足的类别。服务器针对不足的类别从它的第一平均联邦模型生成更多的数据,并将另外生成的合成数据与先前数据混合,生成具有不足的类别中的更多样本的数据集。服务器使用新生成的数据精细地调谐它的第一平均模型。
[0053]
与客户端装置端的数据增强(fmil)相比,服务器端的增强(lmif)避免了本地装置上的计算和存储限制。另外,每个客户端装置从相同的初始化点更新接收到的模型,作为整体鼓励公平的模型性能。
[0054]
图3是图示根据实施例的用于使用zsdg的lmif的方法的流程图。
[0055]
在302,在通信回合(round)t,联邦服务器将联邦全局模型m
f,t-1
分发到客户端装置的子集s
t
。在304,客户端装置的子集s
t
中的每个客户端装置i在它的真实数据{xi}
t
训练联邦全局模型m
f,t-1
,并生成更新的客户端模型在306,每个客户端装置i将它的更新的客户端模型发送到联邦服务器。
[0056]
在308,联邦服务器对每个接收到的客户端模型执行模型反演,并生成合成数据以便生成具有跨联邦全局模型mf的类别的均匀分布的平衡的合成联邦数据集在另一实施例中,如果服务器具有客户端数据分布的先验知识,则服务器可以生成偏斜的数据集以补偿不足的类别。
[0057]
如上所述,如果类别分布接近离散均匀分布,则数据集具有跨类别的更均匀分布。例如,如果数据集的大小(例如,标记的数据集点的数目)是s,且存在n个类别,则如果对于n个类别中的每一个存在s/n个标记的点,则数据集是均匀的。
[0058]
在310,联邦服务器使用加权平均来对接收到的客户端模型进行平均。在另一实施例中,联邦服务器针对不足的类别形式(form)从它的第一平均联邦模型生成更多数据,以使得数据集具有不足的类别的更多样本。在又一实施例中,类别服务器以从先前的联邦训练时期生成的数据增强它的数据集。
[0059]
在312,服务器在平衡的合成联邦数据集上训练或者精细地调谐平均联邦模型以生成更新的联邦模型m
f,t
。该更新的联邦模型然后可以通过返回到302来重新分发到客户端装置。
[0060]
在同一联邦学习时期中,或者在交替的联邦学习时期中,图3的实施例(lmif)和图2的实施例(fmil)可以同时执行。
[0061]
当在服务器端生成公平的模型时,在本地客户端装置(例如,本地节点)的训练算法可以改变,且假定联邦服务器模型更好或更公平,可以正则化训练以使得在客户端装置的模型权重的统计接近联邦服务器的模型权重的统计,由此鼓励公平的本地模型。在实施例中,使用存储的联邦模型的bn统计。在另一实施例中,对于在每个训练批的输入数据,第k客户端模型和联邦模型f的第l层的统计匹配。
[0062]
更新在训练时期(t+1)的第k用户的权重以最小化目标函数,其中fk(.)是主要训练目标。μ
k,l
,μ
f,l
分别是第k用户和联邦模型的第l层(或者存储在其相应的批归一化层中)的平均。类似地,σ
k,l
,σ
f,l
分别是第k用户和联邦模型的第l层的标准差或者其相应的bn层的标准差。目标函数在以下等式(3)中阐述。
[0063][0064]
因此,客户端装置匹配在联邦模型的统计,且隐含地假定联邦模型是公平的。可以与在联邦服务器的lmif一起在客户端装置部署该训练过程,这保证分发到客户端装置的联邦模型是公平的。
[0065]
在另一实施例中,代替如上所述的最小化均值和方差之间的距离,通过最小化具有相应的均值和方差的两个高斯分布之间的kl散度来最小化分布之间的距离,如以下等式(4)中提出的。
[0066][0067]
图4是根据一个实施例的网络环境中的电子装置的框图。相对于图2的实施例,图4的电子装置401可以具体实现为客户端装置,且图4的服务器408可以具体实现为联邦服务器。相对于图3的实施例,图4的电子装置401可以具体实现为联邦服务器,且外部电子装置402和404可以具体实现为客户端装置。
[0068]
参考图4,网络环境400中的电子装置401可以经由第一网络498(例如,短距离无线通信网络)与外部电子装置402通信,或者经由第二网络499(例如,远程无线通信网络)与外部电子装置404或者服务器408通信。电子装置401可以经由服务器408与外部电子装置404通信。电子装置401可以包括处理器420、存储器430、输入装置450、声音输出装置455、显示装置460、音频模块470、传感器模块476、接口477、触觉模块479、相机模块480、电力管理模块488、电池489、通信模块490、用户识别模块(sim)496或者天线组件497。在一个实施例中,组件中的至少一个(例如,显示装置460或者相机模块480)可以从电子装置401省略,或者一个或多个其他组件可以添加到电子装置401。组件中的某些可以实现为单个集成电路(ic)。例如,传感器模块476(例如,指纹传感器、虹膜传感器或者照度传感器)可以实现为嵌入显示装置460(例如,显示器)中。
[0069]
处理器420例如可以运行软件(例如,程序440)以控制与处理器420耦合的电子装置401的至少一个其他组件(例如,硬件或者软件组件),且可以执行各种数据处理或者计算。作为数据处理或者计算的至少一部分,处理器420可以在易失性存储器432中加载从另一组件(例如,传感器模块476或者通信模块490)接收到的命令或者数据,处理易失性存储器432中存储的命令或者数据,和在非易失性存储器434中存储产生的数据。处理器420可以包括主处理器421(例如,中央处理单元(cpu)或者应用处理器(ap)),和可操作地独立于主处理器421或者与主处理器421结合的辅助处理器423(例如,图形处理单元(gpu)、图像信号处理器(isp)、传感器集线器处理器、或者通信处理器(cp))。另外地或者替代地,辅助处理器423可以适于消耗比主处理器421更少的电力,或者运行特定功能。辅助处理器423可以实现为与主处理器421分开或者主处理器421的一部分。
[0070]
在主处理器421处于禁用(例如,睡眠)状态时代替主处理器421,或者在主处理器421处于活动状态(例如,运行应用)时与主处理器421一起,辅助处理器423可以控制与电子装置401的组件当中的至少一个组件(例如,显示装置460、传感器模块476或者通信模块490)有关的功能或者状态中的至少一些。辅助处理器423(例如,图像信号处理器或者通信处理器)可以实现为功能上与辅助处理器423有关的另一组件(例如,相机模块480或者通信模块490)的一部分。
[0071]
存储器430可以存储由电子装置401的至少一个组件(例如,处理器420或者传感器模块476)使用的各种数据。各种数据例如可以包括用于与其有关的命令的软件(例如,程序440)和输入数据或者输出数据。存储器430可以包括易失性存储器432或者非易失性存储器434。
[0072]
程序440可以作为软件存储在存储器430中,且例如可以包括操作系统(os)442、中间件444或者应用446。
[0073]
输入装置450可以从电子装置401的外部(例如,用户)接收要由电子装置401的另一组件(例如,处理器420)使用的命令或者数据。输入装置450例如可以包括麦克风、鼠标或者键盘。
[0074]
声音输出装置455可以输出声音信号到电子装置401的外部。声音输出装置455例如可以包括扬声器或者接收器。扬声器可以用于通用目的,比如播放多媒体或者记录,且接收器可以用于进入的呼叫。接收器可以实现为与扬声器分开或者扬声器的一部分。
[0075]
显示装置460可以视觉地提供信息到电子装置401的外部(例如,用户)。显示装置
460例如可以包括显示器、全息图装置或者投影仪,以及控制显示器、全息图装置和投影仪中相应的一个的控制电路系统。显示装置460可以包括适于检测触摸的触摸电路系统,或者适于测量由触摸引起的力的强度的传感器电路系统(例如,压力传感器)。
[0076]
音频模块470可以将声音转换为电信号,反之亦然。音频模块470可以经由输入装置450获得声音,或者经由声音输出装置455或者直接(例如,有线地)或者无线地与电子装置401耦合的外部电子装置402的耳机输出声音。
[0077]
传感器模块476可以检测电子装置401的操作状态(例如,电力或者温度)或者电子装置401外的环境状态(例如,用户的状态),且然后生成与检测到的状态对应的电信号或者数据值。传感器模块476例如可以包括手势传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、抓握传感器、接近传感器、颜色传感器、红外(ir)传感器、生物测定传感器、温度传感器、湿度传感器或者照度传感器。
[0078]
接口477可以支持要用于电子装置401直接(例如,有线地)或者无线地与外部电子装置402耦合的一个或多个指定协议。接口477例如可以包括高清晰度多媒体接口(hdmi)、通用串行总线(usb)接口、安全数字(sd)卡接口或者音频接口。
[0079]
连接端子478可以包括电子装置401可以经由其与外部电子装置402物理地连接的连接器。连接端子478例如可以包括hdmi连接器、usb连接器、sd卡连接器或者音频连接器(例如,耳机连接器)。
[0080]
触觉模块479可以将电信号转换为可以由用户经由触觉或者肌肉运动感觉识别的机械刺激(例如,振动或者移动)或者电刺激。触觉模块479例如可以包括马达、压电元件或者电激励器。
[0081]
相机模块480可以捕获静止图像或者运动图像。相机模块480可以包括一个或多个镜头、图像传感器、图像信号处理器或者闪光灯。
[0082]
电力管理模块488可以管理供应到电子装置401的电力。电力管理模块488例如可以实现为电力管理集成电路(pmic)的至少一部分。
[0083]
电池489可以向电子装置401的至少一个组件供应电力。电池489例如可以包括不可充电的初级电池,可充电的次级电池或者燃料电池。
[0084]
通信模块490可以支持在电子装置401和外部电子装置(例如,外部电子装置402、外部电子装置404或者服务器408)之间建立直接(例如,有线)通信信道或者无线通信信道,和经由建立的通信信道执行通信。通信模块490可以包括独立于处理器420(例如,ap)可操作的并支持直接(例如,有线)通信或者无线通信的一个或多个通信处理器。通信模块490可以包括无线通信模块492(例如,蜂窝通信模块、短距离无线通信模块或者全球导航卫星系统(gnss)通信模块494)或者有线通信模块494(例如,局域网(lan)通信模块或者电力线通信(plc)模块)。这些通信模块中相应的一个可以经由第一网络498(例如,短距离通信网络,比如蓝牙tm、无线高保真(wi-fi)直通、或者红外数据协会(irda)的标准)或者第二网络499(例如,长距离通信网络,比如蜂窝网络、因特网或者计算机网络(例如,lan或者广域网(wan))与外部电子装置通信。这些各种类型的通信模块可以实现为单个组件(例如,单个ic),或者可以实现为彼此分开的多个组件(例如,多个ic)。无线通信模块492可以使用用户识别模块496中存储的用户信息(例如,国际移动用户标识(imsi))来标识和验证通信网络(比如第一网络498或者第二网络499)中的电子装置401。
[0085]
天线模块497可以发送信号或者电力到电子装置401的外部(例如,外部电子装置)或者从其接收信号或者电力。天线模块497可以包括一个或多个天线,且例如可以由通信模块490(例如,无线通信模块492)从其中选择适于通信网络(比如第一网络498或者第二网络499)中使用的通信方案的至少一个天线。信号或者电力然后可以经由所选的至少一个天线在通信模块490和外部电子装置之间发送或者接收。
[0086]
上述组件中的至少一些可以经由外围间通信方案(例如,总线、通用输入和输出(gpio)、串行外围接口(spi)或者移动产业处理器接口(mipi))相互耦合和在其间传送信号(例如,命令或者数据)。
[0087]
命令或者数据可以经由与第二网络499耦合的服务器408在电子装置401和外部电子装置404之间发送或者接收。外部电子装置402和404中的每一个可以是与电子装置401相同类型或者不同类型的装置。要在电子装置401运行的操作的全部或者某些可以在一个或多个外部电子装置402、404或者服务器408运行。例如,如果电子装置401应该自动地,或者响应于来自用户或者另一装置的请求执行功能或者服务,则替代或者除了运行该功能或者服务,电子装置401可以请求一个或多个外部电子装置执行功能或者服务的至少一部分。接收请求的一个或多个外部电子装置可以执行请求的功能或者服务的至少一部分,或者与请求有关的附加功能或者附加服务,和将执行的结果传送到电子装置401。电子装置401可以在对或者不对结果进一步处理的情况下,提供结果作为对请求的答复的至少一部分。为此,例如可以使用云计算、分布式计算或者客户端-服务器计算技术。
[0088]
一个实施例可以实现为包括一个或多个指令的软件(例如,程序440),该一个或多个指令存储在可由机器(例如,电子装置401)读取的存储介质(例如,内部存储器436或者外部存储器438)中。例如,电子装置401的处理器可以在处理器的控制下使用或者不使用一个或多个其他组件的情况下,调用存储在存储介质中的一个或多个指令中的至少一个,并运行它。因此,机器可以操作以根据调用的至少一个指令执行至少一个功能。该一个或多个指令可以包括由编译器生成的代码或者可由解释器执行的代码。机器可读的存储介质可以以非瞬时存储介质的形式提供。术语“非瞬时”指示存储介质是有形的装置,且不包括信号(例如,电磁波),但是该术语不区分在存储介质中半永久地存储数据和在存储介质中临时地存储数据。
[0089]
根据一个实施例,本公开的方法可以包括和提供在计算机程序产品中。计算机程序产品可以作为产品在销售者和购买者之间交易。计算机程序产品可以以机器可读的存储介质(例如,致密盘只读存储器(cd-rom))的形式分发,或者经由应用商店(例如,play storetm)在线分发(例如,下载或者上载),或者在两个用户装置(例如,智能电话)之间直接分发。如果在线分发,则计算机程序产品的至少一部分可以在机器可读的存储介质(比如制造商的服务器的存储器,应用商店的服务器的存储器,或者中继服务器的存储器)中临时生成或者至少临时存储。
[0090]
根据一个实施例,上述组件中的每个组件(例如,模块或者程序)可以包括单个实体或者多个实体。可以省略上述组件中的一个或多个,或者可以添加一个或多个其他组件。替代地或者另外地,多个组件(例如,模块或者程序)可以集成为单个组件。在该情况下,集成组件仍然可以以与一个或多个功能由集成之前的多个组件中的相应的一个组件执行的相同或者类似的方式执行多个组件中的每一个的一个或多个功能。由模块、程序或者另一
组件执行的操作可以顺序地、并行地、重复地或者启发式地进行,或者操作中的一个或多个可以以不同次序运行或者省略,或者可以添加一个或多个其他操作。
[0091]
虽然在本公开的详细说明中已经描述了本公开的某些实施例,但是本公开可以以各种形式修改而不脱离本公开的范围。因此,本公开的范围不应该仅基于描述的实施例确定,而是应该基于所附的权利要求及其等效确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1