技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种智能车联网多模态学习方法及相关装置与流程  >  正文

一种智能车联网多模态学习方法及相关装置与流程

  • 国知局
  • 2024-09-05 15:01:27

本技术涉及物联网和智能车联网,尤其涉及一种智能车联网多模态学习方法及相关装置。

背景技术:

1、在当今快速发展的物联网(iot)和智能车联网领域,移动传感系统已成为关键技术。通过这些系统,可以从多种传感器(如摄像头、麦克风、加速度计、gps等)收集大量数据。这些数据通常呈现多模态特性,意味着来自不同传感器的数据类型各异。例如,视频数据是视觉模态,音频数据是听觉模态,而位置信息则是空间模态。随着传感器数量和种类的增加,多模态数据分析的重要性日益凸显。然而,多模态数据通常面临缺失模态的问题。例如,由于传感器故障、传输延迟或带宽限制,有些车辆可能无法提供完整的数据模态。针对这一问题,联邦学习(federated learning,fl)作为一种分布式机器学习方法,允许多个节点在不共享原始数据的前提下共同训练模型,因其隐私保护和通信效率的优势,逐渐被应用于多模态数据的隐私保护学习分析。

2、在传统的多模态联邦学习框架中,处理不完全模态数据主要通过单模态子系统训练技术和插值技术;然而这些方法通常忽略了跨节点共享潜在特征空间的可能性,也未能有效评估和区分节点的质量,导致整体系统的鲁棒性和性能受到限制。

3、而在现有技术方案中,有一些具体的研究和实现试图解决上述传统方法存在的问题:主要包括:multimodal federated learning with missing modalities:提出了一种针对缺失模态的多模态fl方法,通过在服务器端进行特征对齐和模态补全。然而,该方法主要依赖于全局模型的优化,对于异构节点的处理能力不足。data imputation techniquesfor federated learning:使用数据插值技术来填补缺失数据模态,尽管可以在一定程度上提高模型的完整性,但其效果依赖于插值方法的质量,且未能利用跨节点的潜在特征共享。node contribution evaluation in federated learning:提出了一种节点贡献评估机制,通过评估节点的数据质量和模型更新贡献度来优化全局模型。然而,该方法主要针对单模态数据,对于多模态数据的适应性较差。显然,以上方法都有各自的局限性,主要体现在未能有效结合跨节点多模态信息,且缺乏对节点质量的全面评估机制。

技术实现思路

1、本技术提供了一种智能车联网多模态学习方法及相关装置,用于解决智能车联网中模态缺失问题的同时可以选择高质量的车辆来执行聚合和学习,以提高性能。

2、有鉴于此,本技术第一方面提供了一种智能车联网多模态学习方法,所述方法包括:

3、通过各节点接收服务器发送的初始化的特征生成器和全局模型,得到本地特征生成器和本地全局模型,基于本地特征生成器,通过重建诱导分布在一个潜在空间,对缺失模态进行插补,从而实现利用跨节点的公共特征子空间迭代重建缺失模态的特征信息,其中,所述节点为车辆;

4、对本地特征生成器进行优化,并通过授权所述诱导分布学习各模态的知识从而对齐缺失模态,最后进行耦合训练完成模态重建,同时将本地特征生成器参数和更新后的本地全局模型至服务器;

5、通过服务器根据改进后的shapley value算法对接收得到的特征生成器进行质量评估得到特征生成器用于聚合的参数权重,并将节点的贡献划分为局部贡献和全局贡献,通过计算当地和全球的贡献确定局部贡献和全局贡献,从而得到节点贡献;

6、设计知识贡献感知聚合规则,并基于所述知识贡献感知聚合规则,根据所述节点贡献进行节点贡献感知聚合,从而输出最终的全局模型。

7、可选地,所述进行耦合训练完成模态重建表示为:

8、;

9、式中,为所述节点,为所述特征生成器,为所述全局模型,表示节点的局部模型参数,为所述对本地特征生成器进行优化的优化过程,为模态的在对齐缺失模态中的学习过程,模态在对齐缺失模态中的学习过程。

10、可选地,所述改进后的shapley value算法的计算过程表示为:

11、<mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>φ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ℱ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>=</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true"><munder><mo>∑</mo><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>⊆</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>∖</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>{</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mover accent="true"><mi>ψ</mi><mo>^</mo></mover></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>}</mi></mstyle></mstyle></munder><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mfrac><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>!</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mn>1</mn></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>!</mi></mstyle></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>!</mi></mstyle></mstyle></mfrac></mstyle></mstyle></mstyle></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>[</mo><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>ℱ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ψ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>y</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>∪</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>{</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mover accent="true"><mi>ψ</mi><mo>^</mo></mover></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>}</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ℱ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ψ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>y</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle></mstyle><mo>]</mo></mstyle></mstyle>;

12、式中,表示全局模型,是随机生成的标签。

13、可选地,所述知识贡献感知聚合规则形式化为:

14、;

15、式中,,为二进制标志变量,为所述全局模型,表示节点的局部模型参数。

16、本技术第二方面提供一种智能车联网多模态学习系统,所述系统包括:

17、插补单元,用于通过各节点接收服务器发送的初始化的特征生成器和全局模型,得到本地特征生成器和本地全局模型,基于本地特征生成器,通过重建诱导分布在一个潜在空间,对缺失模态进行插补,从而实现利用跨节点的公共特征子空间迭代重建缺失模态的特征信息,其中,所述节点为车辆;

18、重建单元,用于对本地特征生成器进行优化,并通过授权所述诱导分布学习各模态的知识从而对齐缺失模态,最后进行耦合训练完成模态重建,同时将本地特征生成器参数和更新后的本地全局模型至服务器;

19、计算单元,用于通过服务器根据改进后的shapley value算法对接收得到的特征生成器进行质量评估得到特征生成器用于聚合的参数权重,并将节点的贡献划分为局部贡献和全局贡献,通过计算当地和全球的贡献确定局部贡献和全局贡献,从而得到节点贡献;

20、聚合单元,用于设计知识贡献感知聚合规则,并基于所述知识贡献感知聚合规则,根据所述节点贡献进行节点贡献感知聚合,从而输出最终的全局模型。

21、可选地,所述进行耦合训练完成模态重建表示为:

22、;

23、式中,为所述节点,为所述特征生成器,为所述全局模型,表示节点的局部模型参数,为所述对本地特征生成器进行优化的优化过程,为模态的在对齐缺失模态中的学习过程,模态在对齐缺失模态中的学习过程。

24、可选地,所述改进后的shapley value算法的计算过程表示为:

25、<mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>φ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ℱ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>=</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true"><munder><mo>∑</mo><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>⊆</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>∖</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>{</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mover accent="true"><mi>ψ</mi><mo>^</mo></mover></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>}</mi></mstyle></mstyle></munder><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mfrac><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>!</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mn>1</mn></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>!</mi></mstyle></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>n</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>|</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>!</mi></mstyle></mstyle></mfrac></mstyle></mstyle></mstyle></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mo>[</mo><mstyle displaystyle="true" mathcolor="#000000"><mstyle displaystyle="true" mathcolor="#000000"><mi>ℱ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ψ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>y</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>∪</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>{</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mover accent="true"><mi>ψ</mi><mo>^</mo></mover></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>i</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>}</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>−</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ℱ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>ψ</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>(</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>y</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><msub><mrow /><mstyle displaystyle="true" mathcolor="#000000"><mi>s</mi></mstyle></msub></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle><mstyle displaystyle="true" mathcolor="#000000"><mi>)</mi></mstyle></mstyle><mo>]</mo></mstyle></mstyle>;

26、式中,表示全局模型,是随机生成的标签。

27、可选地,所述知识贡献感知聚合规则形式化为:

28、;

29、式中,,为二进制标志变量,为所述全局模型,表示节点的局部模型参数。

30、本技术第三方面提供一种智能车联网多模态学习设备,所述设备包括处理器以及存储器:

31、所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

32、所述处理器用于根据所述程序代码中的指令,执行如上述第一方面所述的智能车联网多模态学习方法的步骤。

33、本技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的智能车联网多模态学习方法。

34、从以上技术方案可以看出,本技术具有以下优点:

35、1)跨节点特征重建:

36、本技术能够利用跨节点的多模态特征信息重建缺失模态的特征。相比于现有方法只在节点侧应用插值技术或训练单模式子系统,本技术更有效地捕捉了不同模态之间的潜在关联,从而提高了模型的整体性能和鲁棒性。

37、2)知识贡献感知的节点评估:

38、本技术引入严格的节点贡献评估机制,动态调整节点在模型聚合中的权重。通过评估节点的数据质量和模型更新效果,可以有效区分高质量和低质量节点,增强系统对模态异构性的抵御能力。

39、3)知识贡献感知的聚合规则:

40、在模型聚合过程中,本技术采用知识贡献感知的聚合规则,根据各节点的知识贡献度分配权重,优化全局模型性能。这种方法保证了高质量节点对全局模型的更大影响,有效提高了整体系统的性能。

41、4)高效的知识转移机制:

42、本技术优先实现从本地到全局的知识转移,利用跨节点多模态特征信息指导本地模型的更新和特征重建,增强模型的学习能力。即使在高达90%模态信息缺失的情况下,仍能保持稳健的学习效果。

43、5)无额外计算或通信开销:

44、本技术在不引入额外计算或通信开销的情况下,实现了稳健的多模态联邦学习。系统架构设计和算法优化使其在实际应用中更具可行性和高效性。

45、6)更高的鲁棒性和性能:

46、通过以上多个创新点的结合,本技术展示了在多个广泛认可的多模态基准数据集上的卓越表现,即使在高模态信息缺失率的情况下,仍能优于最先进的基线方法,体现了其鲁棒性和性能优势。

本文地址:https://www.jishuxx.com/zhuanli/20240905/289046.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。