Processing math: 9%
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

MC-RHotStuff:面向多链基于信誉的HotStuff共识机制

路宇轩, 孔兰菊, 张宝晨, 闵新平

路宇轩, 孔兰菊, 张宝晨, 闵新平. MC-RHotStuff:面向多链基于信誉的HotStuff共识机制[J]. 计算机研究与发展, 2024, 61(6): 1559-1572. DOI: 10.7544/issn1000-1239.202330195
引用本文: 路宇轩, 孔兰菊, 张宝晨, 闵新平. MC-RHotStuff:面向多链基于信誉的HotStuff共识机制[J]. 计算机研究与发展, 2024, 61(6): 1559-1572. DOI: 10.7544/issn1000-1239.202330195
Lu Yuxuan, Kong Lanju, Zhang Baochen, Min Xinping. MC-RHotStuff: Multi-Chain Oriented HotStuff Consensus Mechanism Based on Reputation[J]. Journal of Computer Research and Development, 2024, 61(6): 1559-1572. DOI: 10.7544/issn1000-1239.202330195
Citation: Lu Yuxuan, Kong Lanju, Zhang Baochen, Min Xinping. MC-RHotStuff: Multi-Chain Oriented HotStuff Consensus Mechanism Based on Reputation[J]. Journal of Computer Research and Development, 2024, 61(6): 1559-1572. DOI: 10.7544/issn1000-1239.202330195
路宇轩, 孔兰菊, 张宝晨, 闵新平. MC-RHotStuff:面向多链基于信誉的HotStuff共识机制[J]. 计算机研究与发展, 2024, 61(6): 1559-1572. CSTR: 32373.14.issn1000-1239.202330195
引用本文: 路宇轩, 孔兰菊, 张宝晨, 闵新平. MC-RHotStuff:面向多链基于信誉的HotStuff共识机制[J]. 计算机研究与发展, 2024, 61(6): 1559-1572. CSTR: 32373.14.issn1000-1239.202330195
Lu Yuxuan, Kong Lanju, Zhang Baochen, Min Xinping. MC-RHotStuff: Multi-Chain Oriented HotStuff Consensus Mechanism Based on Reputation[J]. Journal of Computer Research and Development, 2024, 61(6): 1559-1572. CSTR: 32373.14.issn1000-1239.202330195
Citation: Lu Yuxuan, Kong Lanju, Zhang Baochen, Min Xinping. MC-RHotStuff: Multi-Chain Oriented HotStuff Consensus Mechanism Based on Reputation[J]. Journal of Computer Research and Development, 2024, 61(6): 1559-1572. CSTR: 32373.14.issn1000-1239.202330195

MC-RHotStuff:面向多链基于信誉的HotStuff共识机制

基金项目: 国家重点研发计划项目(2021YFB2700102);国家社会科学基金项目(20BJY131);山东省重大科技创新项目(2020CXGC010106,2021CXGC010108)
详细信息
    作者简介:

    路宇轩: 1999年生. 硕士研究生. CCF学生会员. 主要研究方向为区块链共识、节点治理

    孔兰菊: 1978年生. 博士,教授,博士生导师. CCF高级会员. 主要研究方向为区块链共识、多链体系结构、大规模数据管理

    张宝晨: 1992年生. 博士研究生. CCF学生会员. 主要研究方向为区块链分片架构、区块链交易验证、区块链共识算法

    闵新平: 1993年生. 博士,教授. 主要研究方向为区块链共识、数字资产的一致性

    通讯作者:

    孔兰菊(klj@sdu.edu.cn)

  • 中图分类号: TP391

MC-RHotStuff: Multi-Chain Oriented HotStuff Consensus Mechanism Based on Reputation

Funds: This work was supported by the National Key Research and Development Program of China (2021YFB2700102), the National Social Science Fund Project of China (20BJY131), and the Major Science and Technology Innovation Project of Shandong Province (2020CXGC010106, 2021CXGC010108).
More Information
    Author Bio:

    Lu Yuxuan: born in 1999. Master candidates. Student member of CCF. His main research interests include blockchain consensus and node management

    Kong Lanju: born in 1978. PhD, professor, PhD supervisor. Senior member of CCF. Her main research interests include blockchain consensus, multi-chain architecture, and large-scale data management

    Zhang Baochen: born in 1992. PhD candidate. Student member of CCF. Her main research interests include sharding structure of blockchain, verification of blockchain transactions, and blockchain consensus algorithms

    Min Xinping: born in 1993. PhD, professor. His main research interests include blockchain consensus and consistency of digital assets

  • 摘要:

    现有区块链呈现出多链趋势,传统共识算法不具备面向多链的动态扩展性,难以应对大规模联盟链开放使用与封闭运维的矛盾. 对此,提出了一种新颖的多链共识方法MC-RHotStuff:节点划分不同的角色,分为待准入节点、备选节点、共识节点,每条工作链都拥有共识节点和备选节点,待准入节点完成准入验证后将成为备选节点;共识节点拥有其他节点不具备的信誉值,做出正确行为的共识节点将提高信誉值,做出错误行为的共识节点将扣除信誉值,通过节点信誉计算及筛选算法MC-Scan来寻找信誉值异常的节点,并从备选节点中选择新的共识节点与异常节点交换. 此外,还提出了节点动态调整算法MC-Schedule,通过检测每条区块链的交易量从而动态地调整共识节点的数量来达到最优化,既保证区块链系统的高效执行,又提高了节点筛选的速度. 为保证当节点数量变化或共识群组成员发生变化时,共识机制能够正常运转,提出了节点状态同步机制MC-Syn.对此进行了大量的实验来验证MC-RHotStuff性能,与现有系统相比,其交易吞吐量和延迟综合提升约15%.

    Abstract:

    The existing blockchain presents a multi-chain trend. Traditional consensus algorithms do not have dynamic scalability for multi-chain, making it difficult to cope with the contradiction between open use and closed maintenance of large-scale permissioned blockchain. For this problem, a novel multi-chain consensus algorithm, MC-RHotStuff, is proposed: Nodes have different roles, including alternative nodes, candidate nodes, and consensus nodes. Each working chain has consensus nodes and alternative nodes. After the admission verification, the candidate node will become an alternative node; A consensus node has a reputation value that other nodes do not have, and a consensus node that performs the correct behavior will increase the reputation value, while a consensus node that performs the wrong behavior will deduct the reputation value, then the node with abnormal reputation value will be found through the node reputation calculation and filtering algorithm MC-Scan, and a new consensus node will be selected from the alternative nodes to exchange with the abnormal node. In addition, a dynamic node adjustment algorithm, MC-Schedule, is proposed to achieve optimization by detecting the transaction volume of each blockchain and dynamically adjusting the number of consensus nodes, which not only ensures the efficient execution of the blockchain system but also improves the speed of node filtering. MC-RHotStuff proposes a node state synchronization mechanism, MC-Syn, to ensure that the consensus operates normally when the node number change or the consensus group change. Compared with existing systems, transaction throughput and latency have been comprehensively improved by about 15%.

  • 聚类旨在发现数据的内部聚类结构,将相似的样本划分为一类,现已有许多高效的聚类算法被提出,如原型聚类、密度聚类、层次聚类等. 聚类作为机器学习的核心技术之一,已在信息检索[1]、医学诊断[2]、社交网络分析[3]、图像分割[4]等多个领域中发挥着重要作用.

    聚类属于无监督学习,对大量无标签样本进行划分,特别是外观相似、语义不同的样本,是一项重要挑战. 经典聚类算法,如谱聚类[5]、k-means[6]等,由于特征提取能力缺陷导致特征区分性差的问题,已难以满足现有复杂场景上的任务.

    深度聚类方法依靠深度学习[7]强大的特征提取能力,并采用同步式训练策略来解决传统聚类算法的不足. DEC(deep embedding clustering)[8]采用1步策略优化特征学习和聚类分析来解决错误传播. DFCN(deep fusion clustering)[9]将自动编码器和图自动编码器学习的特征信息分别在属性和结构上融合来弥补单个的不足. 但是,文献[8-9]方法学习的特征区分性不强,难以取得优异的聚类性能.

    近些年,改进的对比学习技术[10]在下游任务上取得优异表现,不断缩近无监督与有监督间的差距,并显现出超越有监督学习的潜力. 大部分对比学习方法采用单一、简单的数据增强技术,如MOCO(momentum contrast)[11],SimCLR(simple framework for contrastive learning of visual representation)[12]等,本文称之为弱数据增强,将同一样本的不同数据增强视图视作正样本对、其他为负样本对,利用对比损失将正样本对拉近、负样本对远离,有效提高特征的区分度. 当对比学习和聚类任务结合时,以正负样本为纽带,特征模块和聚类模块呈现较强的相互促进、相互影响的关系. 然而,从特征对比和聚类分析的角度,现有的对比聚类分析仍存在一些不足:1)单一的弱数据增强在保留原始样本大部分特征信息的同时,增强后的视图继承了语义信息和非语义信息相融交织的特性且具有单一的视图模式(本文将聚类主体相关信息视作语义信息,其他无关信息视为非语义信息,如背景信息、噪声信息等),这种特性和视图模式阻碍模型对语义信息的学习能力;2)同一样本的不同数据增强视图组成正样本对,正样本对本质上具有等价的语义概念,降低特征对比的多样性和语义性,同时,这样的正样本对划分到同一类簇也让聚类分析缺乏语义性.

    为提升特征对比、聚类分析的多样性和语义性,从而改善模型的语义感知能力,本文提出了联合数据增强的语义对比聚类方法(semantic contrastive clustering with federated data augmentation,SCCFA),在采用弱数据增强方法的基础上,再引入一类差异化的数据增强方法,称为强数据增强(更大的旋转角度、更综合的属性抖动和CutOut),其增强后的样本称为强视图,弱数据增强生成的样本称为弱视图. 由于强数据增强对图片结构破坏性大,强视图丢失原始样本的许多特征信息,形成与弱视图不同的视图模式,利用2种视图模式的差异降低非语义信息的干扰,提升模型的语义信息学习能力. 此外,基于相邻样本属于同一类别的假设,借助k近邻(k-nearest neighbor, KNN)算法将同一类别的不同样本组成正样本对、其他为负样本对. 如图1所示,基于KNN图提供的类别信息确定锚点样本的邻居样本,锚点样本与邻居样本构建正样本对,其余样本组成负样本对,正样本对靠近用“吸引”表示,负样本对远离用“排斥”表示. 经过强和弱2种数据增强后,锚点样本和邻居样本分别拥有强和弱2种形态,并将两两形态用于对比学习而改善模型所学特征的一致性和语义性. 锚点样本强视图与邻居样本弱视图的对比(“强 vs 弱”)等价于锚点样本弱视图与邻居样本强视图的对比(“弱 vs 强”,其他视图间对比类似),两者是一类视图间的对比,本文将前者以参数形式融合到后者.

    图  1  联合数据增强技术示意图
    Figure  1.  Illustration of federated data augmentation technology

    在公开的6个挑战性数据集上的大量实验结果表明了SCCFA的有效性和优越性.

    综上,本文的主要贡献包括5个方面:

    1)提出了一种语义感知的对比聚类框架,利用联合数据增强技术和KNN算法,赋予特征对比和聚类分析语义性,改善模型的语义感知能力.

    2)采用差异化的强和弱2类数据增强方法,在改善特征多样性和泛化性的同时,利用视图模式差异降低非语义信息的干扰,提高模型对语义信息的学习能力.

    3)利用全局特征构造全局KNN图,将相同语义的不同样本组成正样本对,提升特征对比和聚类分析的多样性和语义性.

    4)在多个挑战性数据集上进行了大量实验,实验结果表明SCCFA在其中大部分数据集上都取得明显的性能提升.

    5)大量消融实验表明联合数据增强技术能够缓解非语义信息的干扰,改善模型对语义信息的学习能力;也表明类别信息能有效改善特征对比和聚类分析的多样性和语义性.

    传统的聚类算法能成熟地应用于简单的低维数据集,取得优异的聚类性能. 但这些算法由于特征提取能力缺陷,无法处理复杂的高维数据集. 深度聚类依靠深度学习强大的特征提取能力,在复杂数据集上不断拉大与传统聚类算法间的性能差距.DEC[8]通过特征嵌入空间的解码和编码进行表征学习. DCCM(deep comprehensive correlation mining)[13]利用多类特征间的相互关系来学习特征信息. 从训练策略划分,这些方法属于交替式训练模型,将特征学习和聚类分析分2步优化,交替式训练模型由于存在错误传播,只能学到次优解. 另一种训练策略称为同步式训练,将特征学习和聚类分析进行1步优化,由于解决了错误传播问题,聚类效果更好. 比如,IIC(invariant information clustering)[14]在概率分布矩阵上提取类别的互信息. PICA(partition confidence maximization)[15]提出划分不确定性指标(partition uncertainty index, PUI)来衡量解的全局语义性,以便找到语义最合理的一个类簇划分. 尽管文献[14-15]方法取得了不错的聚类效果,却忽略了特征学习与聚类分析间的关系. 本文利用正负样本对为桥梁,强化特征学习和聚类分析间相互促进、相互影响的关系,让学习的特征同时具备区分性和聚类友好性.

    对比学习作为一种自监督学习技术,近年来受到广泛关注,许多改进模型在下游任务上取得优异性能,表现出巨大的潜能.MOCO(momentum contrast)[11]将对比学习视作字典查询,以队列存储负样本,以动量编码器保持迭代前后负样本的稳定性. MOCO v2(improved baselines with momentum contrastive learning)[16]在MOCO的结构上添加一个多层感知机(multilayer perceptron,MLP),并将高斯模糊加入到原有数据增强方法中.SimCLR[12]简化网络结构,以big-batch形式增加负样本数量. 这些方法虽然能学习到区分性的特征,但如何与下游任务结合并取得理想性能仍充斥着巨大的挑战. 此外这些方法也存在2点不足:1)数据增强策略单一、简单,导致语义信息学习效率低;2)正负样本对构建策略缺乏语义概念,不利于聚类性能的进一步提升. 针对这2点不足,本文引入差异化的强和弱2类数据增强方法,利用联合数据增强技术降低非语义信息对模型学习语义信息的干扰. 此外借助KNN算法将同类的不同样本组成正样本对,完善正负样本对构建策略.

    数据增强是一种通过让有限的数据产生更多的等价数据来人工扩展数据集的技术. 在对比学习中,数据增强不仅可以生成正样本,也能改善对比学习在源领域与目标领域间的迁移能力[17].

    在传统对比学习方法中,弱数据增强除拥有数据增强的基本特性,如增加训练样本数量外,主要用于生成锚点样本的正样本. 为使网络尽可能学习到正样本对间的共有信息,弱数据增强方法应尽量保留锚点样本的特征信息,因此弱数据增强策略具备变换种类单一、变换力度小的特点,该策略一般由4种基本类型组成,分别是ColorJitter,ResizedCrop,HorizontalFlip,GaussianBlur.

    文献[18]通过实验表明在全监督或半监督学习中,变换力度大的数据增强方法能提升网络性能. 文献[19]通过对多种基本类型的数据增强方法随机组合,探索多种数据增强策略在自监督学习中对网络的影响. 受文献[19]的启发,本文采用相似的数据增强随机组合策略,称之为强数据增强策略. 强数据增强策略由14种基本类型组成,分别是Sharpness,Brightness,Rotate,TranslateX,TranslateY,Color,Solarize,Invert,Equalize,Contrast,Posterise,AutoContrast,ShearX,ShearY.强数据增强对样本的破坏程度高于弱数据增强,导致增强后的视图丢失原始样本的较多特征信息,产生与弱数据增强不同的视图模式. 为了与弱数据增强形成差异性以及限制强数据增强对样本的破坏程度,本文的强数据增强由5种基本类型的数据增强方法组成,共有C(14,5)种形态应用在数据集上. 强数据增强策略和弱数据增强策略对样本的影响可视化具体如图2所示. 强数据增强样本称为强视图,如图2(b);弱数据增强样本称为弱视图,如图2(c). 强视图和弱视图明显地体现出强数据增强和弱数据增强的特性. 另外从图2(b)中可以看到,某些随机组合的强数据增强对样本的特征破坏大,有些样本的内在结构甚至被完全破坏,如图2(b)右下角样本所示. 如果只存在强数据增强,网络无法从强视图模式中学习到样本间的相似性和差异性,导致网络无法收敛,但是强数据增强和弱数据增强的联合能达到预期目标,即利用强视图和弱视图间的模式差异作为监督信息,引导模型学习嵌入在强视图中的特征信息,提高网络的学习能力.

    图  2  强数据增强和弱数据增强的比较
    Figure  2.  The comparison of strong data augmentation and weak data augmentation

    SCCFA的网络结构如图3所示,输入样本由锚点样本和邻居样本组成. 联合数据增强器(union data augmentor,UDA)对样本进行强和弱2种数据的增强. 第1个MLP产生嵌入空间,用于特征学习;第2个MLP产生概率分布空间,用于聚类分析. 联合特征对比器(federated feature comparator,FFC)和联合类别对比器(federated category comparator,FCC)分别对应特征对比和类别对比.

    图  3  SCCFA的网络框架
    Figure  3.  The network framework of SCCFA

    假设小批次为n的锚点样本集合为X={xi},i{1,2,,n},邻居样本集合为Y={yij},i{1,2,,n},j{1,2,,k},其中yij表示锚点样本xi的第j个邻居样本,邻居样本借助KNN图确定,则输入样本集合为XY. 集合XY在UDA下进行强数据增强和弱数据增强,生成强视图XsYs和弱视图XwYw(其中s和w分别表示强和弱的含义)后输入卷积网络进行特征提取. 为便于表达,锚点样本集合和邻居样本集合的强视图、弱视图分别用Xa,a{s,w}Yb,b{s,w}表示. 特征矩阵生成后,FFC和FCC在KNN图的指导下分别进行特征学习和聚类分析,FFC和FCC这2个模块以正负样本对为纽带,彼此形成较强的相互促进、相辅相成的关系. KNN图的质量好坏直接影响网络性能的高低,因此在训练的过程中,利用迭代的全局特征库更新KNN图,使KNN图的质量随着迭代而改善.

    假设锚点样本和邻居样本的视图集合XaYb的特征空间分别是 {{{{\boldsymbol{F}}}}^a} \in {\mathbb{R}^{n \times m}},a \in \{ {\text{s,w}}\} {{{\tilde {\boldsymbol{F}}}}^b} \in {\mathbb{R}^{n \times m}}{\text{,}} b∈{s,w},m为卷积网络所提特征的维度,在MLP的非线性变换下, {{{{\boldsymbol{F}}}}^a} {{{\tilde {\boldsymbol{F}}}}^b} 对应的嵌入矩阵分别是 {{{{\boldsymbol{Z}}}}^a} \in {\mathbb{R}^{n \times d}} a \in \{ {\text{s,w}}\} {\tilde{{\boldsymbol{Z}}}}^{b}\in \mathbb{R}^{n\times d}\text{,} b \in \{ {\text{s,w}}\} d是特征维度m降维后的大小,那么 {{{{\boldsymbol{Z}}}}^a} {{{\tilde {\boldsymbol{Z}}}}^b} 的矩阵形式为

    {{\boldsymbol{Z}}}^{a}={\left(\begin{array}{c} {{\boldsymbol{z}}}_{1}^{a} \\ {{\boldsymbol{z}}}_{2}^{a} \\ \vdots \\ {{\boldsymbol{z}}}_{n}^{a} \end{array}\right)}_{ n\times d}和{\tilde{{\boldsymbol{Z}}}}^{b}={\left(\begin{array}{c} {\tilde{{\boldsymbol{z}}}}_{1}^{b} \\ {\tilde{{\boldsymbol{z}}}}_{2}^{b} \\ \vdots \\ {\tilde{{\boldsymbol{z}}}}_{n}^{b} \end{array}\right)}_{ n\times d} .

    本文采用余弦相似性度量特征间的相似程度,相似性函数为:

    sim(\boldsymbol{z}_i^a,\tilde{\boldsymbol{z}}_j^b)=\frac{\boldsymbol{z}_i^a\cdot\tilde{\boldsymbol{z}}_j^b}{ \left\| \boldsymbol{z}_i^a \right\| \times \left\| \tilde{\boldsymbol{z}}_j^b \right\| }\text{.} (1)

    为改善聚类准确率而对特征进行归一化[20],有 \left\| {{{{\boldsymbol{z}}}}_i^a} \right\| = 1 \left\| {{{\tilde {\boldsymbol{z}}}}_j^b} \right\| = 1 ,则式(1)转化为

    sim(\boldsymbol{z}_i^a,\tilde{\boldsymbol{z}}_j^b)=\boldsymbol{z}_i^a\cdot\tilde{\boldsymbol{z}}_j^b\text{.} (2)

    再引入温度超参 \tau ,相似性函数的最终形式为

    sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_j^b) = \frac{{{{{\boldsymbol{z}}}}_i^a \cdot {{\tilde {\boldsymbol{z}}}}_j^b}}{\tau } . (3)

    采用和GCC(graph contrastive clustering)[21]相似的损失函数形式,FFC的特征对比损失函数定义为:

    \mathcal{L}_{{\text{ins}}}^{a,b} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_r^b)}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_g^a)}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^a,{{\tilde {\boldsymbol{z}}}}_t^b)}}} }}} \text{,} (4)

    其中 a,b \in \{ {\text{s,w}}\} R(i) 表示锚点样本 {x_i} 的邻居样本, G(i) 表示锚点样本 {x_i} 所在集合下的负样本, T(i) 表示邻居样本所在集合下的负样本. R(i) G(i) T(i) 的数学表达为:

    \left\{ {\begin{array}{*{20}{l}} {R(i) = \{ {y_{ij}}|j \in \{ 1,2, \cdots ,k\} \} {\text{,}}} \\ {G(i) = \{ {x_t}|t \ne i \wedge t \in \{ 1,2, \cdots ,n\} \} {\text{,}}} \\ {T(i) = \{ {y_{tj}}|t \ne i \wedge t \in \{ 1,2, \cdots ,n\} \wedge j \in \{ 1,2, \cdots ,k\} \} {\text{. }}} \end{array}} \right.

    那么锚点样本与邻居样本间“弱 vs 弱”的损失函数为

    \mathcal{L}_{{\text{ins}}}^{{\text{w,w}}} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_r^{\text{w}})}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_g^{\text{w}})}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_t^{\text{w}})}}} }}} \text{,} (5)

    同理,“弱 vs 强”和“强 vs 强”的损失分别为:

    \mathcal{L}_{{\text{ins}}}^{{\text{w,s}}} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_r^{\text{s}})}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_g^{\text{w}})}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{w}},{{\tilde {\boldsymbol{z}}}}_t^{\text{s}})}}} }}} \text{,} (6)
    \mathcal{L}_{{\text{ins}}}^{{\text{s,s}}} = - \frac{1}{n}\sum\limits_{i = 1}^n {{\text{ln }}\frac{{\sum\limits_{r \in R(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{s}},{{\tilde {\boldsymbol{z}}}}_r^{\text{s}})}}} }}{{\sum\limits_{g \in G(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{s}},{{\tilde {\boldsymbol{z}}}}_g^{\text{s}})}}} + \sum\limits_{t \in T(i)} {{{\text{e}}^{sim({{{\boldsymbol{z}}}}_i^{\text{s}},{{\tilde {\boldsymbol{z}}}}_t^{\text{s}})}}} }}} . (7)

    因此,FFC的总的损失函数为

    {\mathcal{L}_{{\text{FFC}}}} = \mathcal{L}_{{\text{ins}}}^{{\text{w,w}}} + 2 \times \mathcal{L}_{{\text{ins}}}^{{\text{w,s}}} + \mathcal{L}_{{\text{ins}}}^{{\text{s,s}}} . (8)

    假设锚点样本和邻居样本的特征空间 {{{{\boldsymbol{F}}}}^a} {{{\tilde {\boldsymbol{F}}}}^b} 对应的概率分布矩阵分别是 {{{{\boldsymbol{P}}}}^a} \in {\mathbb{R}^{n \times c}},a \in \{ {\text{s,w}}\} {{{\tilde {\boldsymbol{P}}}}^b} \in {\mathbb{R}^{n \times c}}, b \in \{ {\text{s,w}}\} ,其中 c 是类别数量, {{{{\boldsymbol{P}}}}^a} {{{\tilde {\boldsymbol{P}}}}^b} 的矩阵表现形式为

    {{\boldsymbol{P}}}^{a}={\left(\begin{array}{c} {{\boldsymbol{p}}}_{1}^{a} \\ {{\boldsymbol{p}}}_{2}^{a} \\ \vdots \\ {{\boldsymbol{p}}}_{n}^{a} \end{array}\right)}_{ n\times c}和{\tilde{{\boldsymbol{P}}}}^{\text{b}}={\left(\begin{array}{c} {\tilde{{\boldsymbol{p}}}}_{1}^{b} \\ {\tilde{{\boldsymbol{p}}}}_{2}^{b} \\ \vdots \\ {\tilde{{\boldsymbol{p}}}}_{n}^{b} \end{array}\right)}_{ n\times c} .

    和CC[22]的思想相似,本文将标签信息视作一种特殊的特征信息,为便于计算,将 {{{{\boldsymbol{P}}}}^a} {{{\tilde {\boldsymbol{P}}}}^b} 转置,得到 {{{{\boldsymbol{Q}}}}^a} \in {{{\boldsymbol{R}}}^{c \times n}} {{{\tilde {\boldsymbol{Q}}}}^b} \in {\mathbb{R}^{c \times n}},a,b \in \{ {\text{s,w}}\}

    \boldsymbol{Q}^a=\left(\begin{array}{*{20}{c}}\boldsymbol{q}_1^a, & \boldsymbol{q}_2^a, & \cdots & ,\boldsymbol{q}_c^a\end{array}\right)_{c\times n}^{\text{T}}\text{,}
    \tilde{\boldsymbol{Q}}^b=\left(\begin{array}{*{20}{c}}\tilde{\boldsymbol{q}}_{1,}^b & \tilde{\boldsymbol{q}}_{2,}^b & \cdots & \tilde{,\boldsymbol{q}}_c^b\end{array}\right)_{c\times n}^{\text{T}}.

    FCC中类别对比损失函数定义为

    \mathcal{L}_{{\text{clus}}}^{a,b} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^a,{{\tilde {\boldsymbol{q}}}}_i^b)}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^a,{{\tilde {\boldsymbol{q}}}}_j^b)}}} }}} ,a,b \in \{ {\text{s,w}}\} . (9)

    和FFC的思路类似,样本间的“弱 vs 弱”“弱 vs 强”“强 vs 强”的类别对比损失分别依次为:

    \mathcal{L}_{{\text{clus}}}^{{\text{w,w}}} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_i^{\text{w}})}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_j^{\text{w}})}}} }}} \text{,} (10)
    \mathcal{L}_{{\text{clus}}}^{{\text{w,s}}} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_i^{\text{s}})}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{w}},{{\tilde {\boldsymbol{q}}}}_j^{\text{s}})}}} }}} \text{,} (11)
    \mathcal{L}_{{\text{clus}}}^{{\text{s,s}}} = - \frac{1}{c}\sum\limits_{i = 1}^c {{\text{ln }}\frac{{{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{s}},{{\tilde {\boldsymbol{q}}}}_i^{\text{s}})}}}}{{\sum\limits_{j = 1}^c {{{\text{e}}^{sim({{{\boldsymbol{q}}}}_i^{\text{s}},{{\tilde {\boldsymbol{q}}}}_j^{\text{s}})}}} }}} . (12)

    因此,总的类别对比损失函数为

    {\mathcal{L}_{{\text{clus}}}} = \mathcal{L}_{{\text{clus}}}^{{\text{w,w}}} + \mathcal{L}_{{\text{clus}}}^{{\text{w,s}}} + \mathcal{L}_{{\text{clus}}}^{{\text{s,s}}} . (13)

    同时,为解决聚类分析中稳定性问题,即避免所有样本划分到同一类别这种极端情况,本文添加一个额外的聚类约束损失:

    {\mathcal{L}_{{\text{cc}}}} = {\text{ln }}c - H({{{\boldsymbol{I}}}}) \text{,} (14)

    其中 H( \cdot ) 为熵函数, {{{\boldsymbol{I}}}} 表示包含 c 个元素的分布. {{{\boldsymbol{I}}}} 中元素定义为:

    I_j=\frac{\sum\limits_{t=1}^nq_{\mathit{jt}}^{\text{w}}}{\sum\limits_{i=1}^c\sum\limits_{t=1}^nq_{it}^{\text{w}}}. (15)

    于是FCC的损失函数由类别对比损失和聚类约束损失2部分组成:

    {\mathcal{L}_{{\text{FCC}}}} = {\mathcal{L}_{{\text{clus}}}} + \lambda \times {\mathcal{L}_{{\text{cc}}}} \text{,} (16)

    其中 \lambda 为平衡超参.

    综合FFC和FCC,SCCFA的目标函数为

    \mathcal{L} = \alpha \times {\mathcal{L}_{{\text{FFC}}}} + {\mathcal{L}_{{\text{FCC}}}} \text{,} (17)

    其中 \alpha 为平衡超参.

    锚点样本的邻居样本准确率(正样本准确率)取决于KNN图的质量. 为创建一个质量较好的KNN图,设计前置任务用于特征学习. 第1阶段进行特征对比学习,同一样本的数据增强视图作为正样本对;第2阶段引入类别对比学习,构建KNN图并不断更新图结构.SCCFA的训练过程具体如算法1所示.

    算法1. SCCFA算法.

    输入:数据集 X ,最小批次 n ,第1阶段次数 t ,迭代次数epochs,类别数量 c ,特征对比中相似性度量的温度超参 {\tau _{{\text{ins}}}} ,类别对比中相似性度量的温度超参 {\tau _{{\text{clus}}}}

    输出:逼近最优解的对比聚类模型 {\varPhi } .

    /*训练阶段*/

    ① for epoch = 1 to epochs do

    ②  从数据集 X 中抽样 n 个随机样本 X'

    ③  if epoch < t /*第1阶段*/

    ④   X' 进行强和弱数据增强处理;

    ⑤   通过式(8)计算损失 {\mathcal{L}_{{\text{FFC}}}}

    ⑥    {\mathcal{L}_{{\text{FCC}}}} = 0

    ⑦  else /*第2阶段*/

    ⑧   if epoch = t

    ⑨    初始化KNN图;

    ⑩   end if

    ⑪  根据KNN,抽样 X' 的邻居样本 Y'

    ⑫  X' \cup Y' 进行强和弱数据增强;

    ⑬  通过式(8)计算损失值 {\mathcal{L}_{{\text{FFC}}}}

    ⑭  通过式(16)计算损失值 {\mathcal{L}_{{\text{FCC}}}}

    ⑮  end if

    ⑯  通过式(17)计算总体损失 \mathcal{L}

    ⑰  SGD算法最小化 \mathcal{L} 来更新网络参数 \theta

    ⑱  重新计算KNN图;

    ⑲ end for

    /*测试阶段*/

    ① for X' in X do

    ②   X' 进行数据增强得 X'' ;/*不同于训练

    阶段的数据增强方法*/

    ③  X'' 输入对比聚类模型 {\varPhi } ,计算软标签;

    ④ end for

    假设算法①第1阶段迭代次数为t1,第2阶段迭代次数为t2,数据集 X 和小批次 X' 大小分别为 N n ,数据集 X 划分为N/n批,近邻样本个数为 k ,类别数量为 c ,嵌入矩阵维度为d,且不考虑神经网络前向和反向传播的时间开销,以及忽略Faiss工具包构建KNN图的时间开销.

    1)第1阶段. 小批次 X' 在每次迭代下,数据增强的时间复杂度为 O(n) ,利用式(8)计算特征对比损失的时间复杂度为 O(d{n^2}) ,因为迭代次数为 {t_1} ,每次迭代有N/n批,所以第1阶段总的时间复杂度为 O({t_1}dnN) .

    2)第2阶段. 计算特征对比损失的总时间复杂度是 O({t_2}kdnN) ,通过式(16)计算类别对比损失的总时间复杂度为 O({t_2}{c^2}N) ,所以第2阶段总时间复杂度为 O({t_2}kdnN + {t_2}{c^2}N) .

    因此算法1的总时间复杂度为 O(({t_1} + k{t_2}) dnN + {t_2}{c^2}N) .

    为充分评估本文方法的有效性和先进性,在6个广泛使用的基准数据集上进行实验以验证本文方法的聚类性能. 表1列出了这些数据集的统计信息.

    表  1  数据集统计
    Table  1.  Statistics of Datasets
    数据集 图片数量 图片尺寸 类别个数
    CIFAR-10 6万 3×32×32 10
    CIFAR-100 6万 3×32×32 20
    STL-10 1.3万 3×96×96 10
    ImageNet-10 1.3万 3×96×96 10
    ImageNet-Dogs 1.95万 3×96×96 15
    Tiny-ImageNet 11万 3×64×64 200
    下载: 导出CSV 
    | 显示表格

    1)CIFAR-10[23]是一个由10个类别的共6万张32×32彩色图片组成的数据集,每类有0.6万张图片.

    2)CIFAR-100[23]包含100个类别,可归纳为20个超类,每类别含600张图片,其中500张用于训练,100张用于测试. 本文将这20个超类作为该数据集的标签信息.

    3)STL-10[24]是一个数量为1.3万的数据集,包含额外10万张无标签信息的图片,挑战性更大. 本文将无标签信息的图片舍弃,只选择有标签信息的1.3万张图片用于网络训练.

    4)ImageNet-10[25]是从ImageNet[26]中挑选10个类别的图片组成的数据集,共包含1.3万张图片.

    5)ImageNet-Dogs[25]与ImageNet-10同出于ImageNet,共1.95万张图片.

    6)Tiny-ImageNet[27]有200个类别,共12万张图片,其中含有10万张训练图片、1万张验证图片以及1万张测试图片,由于测试图片无标签信息被舍弃,只有11万张图片用于本文方法的训练和测试.

    从公平性和全面性的角度出发,本文采用广泛使用的聚类有效性指标:ACC(accuracy),NMI(normalized mutual information),ARI(adjusted rand index)评价本文方法在6个数据集上的性能.

    1)ACC指模型预测的准确率,用于衡量预测标签与真实标签之间一对一关系的正确程度,计算式为:

    ACC(Y,\hat Y) = \frac{1}{n}\sum\limits_{i = 1}^n {\delta ({y_i},{{\hat y}_i})} \text{,} (18)

    其中 Y 表示真实标签, \hat Y 是预测标签, \delta ( \cdot ) 是指示函数,当 {y_i} = {\hat y_i} 时, \delta ( \cdot ) = 1 ,否则 \delta ( \cdot ) = 0 .

    2)NMI用于度量预测标签与真实标签之间的相近程度. 给定数据集 X ,假设真实标签为 Y ,预测标签为 \hat Y NMI的计算式为

    NMI(Y,\hat Y) = \frac{{2 \times MI(Y,\hat Y)}}{{H(Y) + H(\hat Y)}} \text{,} (19)

    其中 H( \cdot ) 表示熵函数, H(Y) H(\hat Y) 的定义为:

    H(Y) = - \sum\limits_{i = 1}^{\left| Y \right|} {P(i) \times {\text{lb (}}P(i))} \text{,} (20)
    H(\hat Y) = - \sum\limits_{j = 1}^{\left| {\hat Y} \right|} {P(j) \times {\text{lb }}(P(j))} \text{,} (21)

    其中P(·)表示联合概率,此外,式(19)中的 MI( \cdot ) 指预测值与真实值间的互信息,定义为

    MI(Y,\hat Y) = \sum\limits_{i = 1}^{\left| Y \right|} {\sum\limits_{j = 1}^{\left| {\hat Y} \right|} {P(i,j) \times {\text{lb }}\left( {\frac{{P(i,j)}}{{P(i) \times P(j)}}} \right)} } . (22)

    3)ARI为调整兰德指数,用于评价预测标签与真实标签间的匹配程度,定义为

    ARI = \frac{{RI - E(RI)}}{{{\text{max}}(RI) - E(RI)}} \text{,} (23)
    RI=\sum\limits_{ij}^{ }C_{n_{ij}}^2, (24)

    其中,E(·)表示期望.

    本文方法采用Python语言和Pytorch框架实现,在Nvidia Geforce RTX 3090 24 GB服务器上运行.

    将残差网络ResNet-18用于特征提取,特征学习和聚类分析MLP的深度分别是2层和1层. 此外,模型采用SGD优化算法,其学习率、权值衰减以及动量系数分别为0.4,1E−4,0.9.考虑收敛的稳定性,学习率以0.1的衰减率进行余弦衰减. 模型的超参共有特征对比中相似性度量的温度超参 {\tau _{{\text{ins}}}} 、类别对比中相似性度量的温度超参 {\tau _{{\text{clus}}}} 以及平衡超参 \alpha \lambda ,它们的初始值分别为0.1,1.0,2.0,3.0.开源库Faiss计算6个数据集的KNN图(k=5),鉴于Faiss高效的特性,KNN图的计算开销可以忽略不计. 由于数据集的图片尺寸、学习难度等各有差异,再加上物理限制,第1阶段次数t、小批次n根据数据集的实际情况而定. 最后,所有数据集上的训练次数为800.

    在相同的6个数据集上,本文方法分别从ACCNMIARI这3个方面与其他17个聚类方法进行对比,实验结果记录在表2~4中. 其他方法数据来源于GCC[21].

    表  2  不同方法在6个数据集上的ACC比较
    Table  2.  ACC Comparison of Different Methods on Six Datasets
    方法 CIFAR-10 CIFAR-100 STL-10 ImageNet-10 ImageNet-Dogs Tiny-ImageNet
    k-means[6] 0.229 0.130 0.192 0.241 0.105 0.025
    SC[5] 0.247 0.136 0.159 0.274 0.111 0.022
    AC[28] 0.228 0.138 0.332 0.242 0.139 0.027
    NMF[29] 0.190 0.118 0.180 0.230 0.118 0.029
    AE[30] 0.314 0.165 0.303 0.317 0.185 0.041
    DAE[31] 0.297 0.151 0.302 0.304 0.190 0.039
    GAN[32] 0.315 0.151 0.298 0.346 0.174 0.041
    DeCNN[33] 0.282 0.133 0.299 0.313 0.175 0.035
    VAE[34] 0.291 0.152 0.282 0.334 0.179 0.036
    JULE[35] 0.272 0.137 0.277 0.300 0.138 0.033
    DEC[8] 0.301 0.185 0.359 0.381 0.195 0.037
    DAC[25] 0.522 0.238 0.470 0.527 0.275 0.066
    DCCM[13] 0.623 0.327 0.482 0.710 0.383 0.108
    IIC[14] 0.617 0.257 0.610
    PICA[15] 0.696 0.337 0.713 0.870 0.352 0.098
    CC[22] 0.766 0.426 0.747 0.895 0.342 0.140
    GCC[21] 0.856 0.472 0.788 0.901 0.526 0.138
    SCCFA(本文) 0.882 0.506 0.802 0.963 0.543 0.132
    注:最好的结果用粗体数字标注.
    下载: 导出CSV 
    | 显示表格
    表  3  不同方法在6个数据集上的NMI比较
    Table  3.  NMI Comparison of Different Methods on Six Datasets
    方法 CIFAR-10 CIFAR-100 STL-10 ImageNet-10 ImageNet-Dogs Tiny-ImageNet
    k-means[6] 0.087 0.084 0.125 0.119 0.055 0.065
    SC[5] 0.103 0.090 0.098 0.151 0.038 0.063
    AC[28] 0.105 0.098 0.239 0.138 0.037 0.069
    NMF[29] 0.081 0.079 0.096 0.132 0.044 0.072
    AE[30] 0.239 0.100 0.250 0.210 0.104 0.131
    DAE[31] 0.251 0.111 0.224 0.206 0.104 0.127
    GAN[32] 0.265 0.120 0.210 0.225 0.121 0.135
    DeCNN[33] 0.240 0.092 0.227 0.186 0.098 0.111
    VAE[34] 0.245 0.108 0.200 0.193 0.107 0.113
    JULE[35] 0.192 0.103 0.182 0.175 0.054 0.102
    DEC[8] 0.257 0.136 0.276 0.282 0.122 0.115
    DAC[25] 0.396 0.185 0.366 0.394 0.219 0.190
    DCCM[13] 0.496 0.285 0.376 0.608 0.321 0.224
    PICA[15] 0.591 0.310 0.611 0.802 0.352 0.277
    CC[22] 0.681 0.424 0.674 0.862 0.401 0.340
    GCC[21] 0.764 0.472 0.684 0.842 0.490 0.347
    SCCFA(本文) 0.808 0.511 0.733 0.910 0.525 0.343
    注:最好的结果用粗体数字标注.
    下载: 导出CSV 
    | 显示表格
    表  4  不同方法在6个数据集上的ARI比较
    Table  4.  ARI Comparison of Different Methods on Six Datasets
    方法 CIFAR-10 CIFAR-100 STL-10 ImageNet-10 ImageNet-Dogs Tiny-ImageNet
    k-means[6] 0.049 0.028 0.061 0.057 0.020 0.005
    SC[5] 0.085 0.022 0.048 0.076 0.013 0.004
    AC[28] 0.065 0.034 0.140 0.067 0.021 0.005
    NMF[29] 0.034 0.026 0.046 0.065 0.016 0.005
    AE[30] 0.169 0.048 0.161 0.152 0.073 0.007
    DAE[31] 0.163 0.046 0.152 0.138 0.078 0.007
    GAN[32] 0.176 0.045 0.139 0.157 0.078 0.007
    DeCNN[33] 0.174 0.038 0.162 0.142 0.073 0.006
    VAE[34] 0.167 0.040 0.146 0.168 0.079 0.006
    JULE[35] 0.138 0.033 0.164 0.138 0.028 0.006
    DEC[8] 0.161 0.050 0.186 0.203 0.079 0.007
    DAC[25] 0.306 0.088 0.257 0.302 0.111 0.017
    DCCM[13] 0.408 0.173 0.262 0.555 0.182 0.038
    PICA[15] 0.512 0.171 0.531 0.761 0.201 0.040
    CC[22] 0.606 0.282 0.606 0.825 0.225 0.071
    GCC[21] 0.728 0.305 0.631 0.822 0.362 0.075
    SCCFA(本文) 0.777 0.347 0.680 0.920 0.368 0.062
    注:最好的结果用粗体数字标注.
    下载: 导出CSV 
    | 显示表格

    综合表2~4可知,传统聚类算法在高维数据集上的性能远低于深度聚类方法. 此外,基于互信息的方法比基于重构的方法取得了更优的聚类性能,比如IIC[14]和AE(autoencoder)[30]. 对比聚类方法学习到强区分性的特征,并通过正负样本强化了特征学习和聚类分析间相互促进的关系,进一步提升了聚类效果,如CC[22]比IIC有接近10%的提升. 同时,GCC与CC的对比说明对比学习应用在下游任务时,样本对构建策略应与下游任务实际结合. 更重要的是,相较于已有的对比聚类方法,如PICA[15],GCC,SCCFA在除了Tiny-ImageNet数据集外的其他5个基准数据集上都取得了明显的性能提升,在ImageNet-10数据集上ACCARI的提升分别有6个百分点和10个百分点,且所有数据集上的训练次数缩减了20个百分点. 由此可见,联合数据增强技术和KNN算法有效提升了模型的学习能力和学习效率. 在Tiny-ImageNet数据集上只取得次优结果的可能原因有:

    1)Tiny-ImageNet数据集有200个类别,相对其他数据集拥有更多的语义类别,此时,假负样本对模型性能的影响更大[36],干扰模型学习不同类簇之间的差异性,然而本文方法未对假负样本作进一步处理.

    2)Tiny-ImageNet数据集的正样本对准确率相对其他数据集较低,说明假正样本较多,假正样本会干扰模型对同类样本间一致性的学习.

    图  8  4个数据集的聚类准确率和正样本对准确率的变化过程
    Figure  8.  Variance process of clustering accuracy and positive pairs accuracy on four datasets

    关于联合数据增强的消融实验结果如表5所示. “弱 vs 弱”实验作为对照实验,用以说明弱数据增强尽管保留了原始样本的大部分特征信息,但也继承了语义信息与非语义信息消融交织的特性,在单一的视图模式下,该特性阻碍了模型对语义信息的学习. 从“弱 vs 强”实验可知,由于强数据增强对样本破坏大,生成与弱数据增强不同的视图模式,利用2类差异性的视图模式间的对比缓解“弱 vs 弱”存在的不足. “强vs 强”实验说明在单一的强视图模式下,对比学习范式无法从破坏严重的样本中学习到有效的共有信息. 最后,“弱/强 vs 强/弱”实验是本文方法采用的联合数据增强策略,可以有效解决单个实验的不足,既利用“弱 vs 强”解决“弱vs 弱”中语义学习能力不足的问题,又利用“弱 vs 弱”缓解“弱vs 强”中非语义信息考虑不足的问题,改善模型的泛化性. “强 vs 强”的引入是为了和“弱 vs 弱”“弱 vs 强”相互配合,在保持模型能继续学习的前提下,从多种视图模式对比中捕获更多的语义信息,改善特征一致性.

    表  5  强数据增强和弱数据增强间的不同联合
    Table  5.  Different Combinations Between Strong Data Augmentation and Weak Data Augmentation
    策略 符号表示 ACC NMI ARI
    弱 vs 弱 (w,w) 0.841 0.743 0.704
    弱 vs 强 (w,s) 0.855 0.766 0.733
    强 vs 强 (s,s)
    弱/强 vs 强/弱 (w,w)+(w,s)+(s,s) 0.882 0.808 0.777
    注:最好的结果用粗体数字标注;“vs”的2个对象表示数据增强的类型;“−”表示模型无法学习,聚类失败.
    下载: 导出CSV 
    | 显示表格

    围绕类别信息展开的消融实验结果如表6所示. 第1行实验在特征学习和聚类分析2个模块上都没有引入类别信息,代表传统的正样本对构建策略,即将同一样本的不同数据增强视图作为正样本对. FFC没有引入类别信息时,仅学习语义等价的样本对间的共有信息. FCC没有引入类别信息时,仅具有将同一样本的不同数据增强视图划分为一类的能力. 当FFC和FCC都引入类别信息时,即在2个模块上将同一类的不同样本作为正样本对. 从ACC数据可以看出,这明显改善了模型的语义感知能力,同时,ACC的增长幅度反映了FFC和FCC间相互促进、相辅相成的关系.

    表  6  全局类别信息的影响
    Table  6.  Effect of the Global Category Information
    FFC FCC ACC NMI ARI
    0.852 0.768 0.726
    0.863 0.785 0.744
    0.861 0.777 0.735
    0.882 0.808 0.777
    注:最好的结果用粗体数字标注;“√”表示引入类别信息,“−”表示没有引入类别信息.
    下载: 导出CSV 
    | 显示表格

    为了知晓本文方法在不同类别图像上的预测能力,本文引入聚类结果的混淆矩阵,也通过具体的案例以更加直观的方式分析本文方法在各个类别上的不足. 图4是CIFAR-10数据集、ImageNet-10数据集以及STL-10数据集上聚类结果的混淆矩阵,横坐标和纵坐标分别表示预测类别和真实类别,矩阵元素数字表示预测准确度. 图5是关于CIFAR-10数据集和ImageNet-10数据集上的正样本对案例图,其中“真正样本”表示与锚点样本同类的样本,“假正样本”表示与锚点样本异类的样本. 本文方法借助全局KNN图实现正样本配对,在标签信息缺失的情况下,正样本配对存在一定误差,而正样本对准确与否严重影响本文方法聚类性能的好坏. 综合图4图5可知,在CIFAR-10数据集上,狗的预测准确率较低,而本文方法错误地将猫视作其邻居样本. 另外,本文方法在STL-10数据集上的差异性较大,猫的准确率只有37%,而飞机的准确率高达96%,两者间相差59个百分点. 最后,在ImageNet-10数据集上,尽管差异性不大,却错误地将轮船当作飞机的邻居样本、将企鹅作为足球的邻居样本. 从ImageNet-10数据集可见,本文方法利用联合数据增强技术尽管缓解了非语义信息的干扰,改善模型对语义信息的感知,仍无法避免将语义信息占比少且非语义信息极其相似的样本划分为一类的现象,这也是聚类任务中普遍存在的一个问题. 另外,从CIFAR-10和STL-10数据集中猫和狗2个类别的数据可见,仅从特征相似性匹配正样本可能导致将特征相似、语义不同的2个样本错误匹配,这在一定程度上限制了本文方法的性能.

    图  4  3个数据集的混淆矩阵
    Figure  4.  Confusion matrices of three datasets
    图  5  在2个数据集上的正样本对案例分析
    Figure  5.  Case analysis of positive pairs on two datasets

    为了了解本文方法的特征提取和聚类分析在训练过程中的演变过程,本文在CIFAR-10数据集上借助t-SNE[37]实现特征可视化,具体为随机从每个类别中选择500个样本,用颜色或数字表示类别信息及其对应的特征,详见图6. 从图6可见,类别1~9中每个类别的类内紧凑度以及类间的区分度在训练过程中不断改善. 具体而言,类簇2,3,5在所有类簇中最难以清楚划分. 从图6(d)可知,在训练结束时,类簇3,5的类内紧凑度很好,并且类簇2,3,5之间的区分性也很明显,说明本文方法能有效处理高维的数据集.

    图  6  迭代过程中在CIFAR-10数据集上实例特征和聚类分析的演变
    Figure  6.  The evolution of instance features and clustering analysis on CIFAR-10 dataset during iteration process

    为了分析本文方法结构的合理性,进行了收敛性分析. 在4个数据集上的损失值收敛过程如图7所示,其与图8相对应. 图8展示了这4个数据集上聚类准确率和正样本对准确率的变化过程. 在标签信息缺失情况下,由于借助KNN图寻找正样本存在一定偏误,本文用正样本对准确率描述该偏误,正样本对准确率是top-5准确率,即锚点样本的前5个伪正样本中真实正样本所占的比例. 从图7图8可知,损失值在所有数据集上有效、平稳地收敛,聚类准确率和正样本对准确率有效地上升;此外,整体损失值、聚类准确率和正样本对准确率三者间具有相互影响的关系. 以上分析说明本文方法的结构设计合理,训练稳定;也说明了正样本对的准确率在语义对比学习框架中起着重要的作用.

    图  7  4个数据集的损失收敛过程
    Figure  7.  Loss convergence process of four datasets

    本文提出了一种新颖的语义对比聚类方法,即联合数据增强的语义对比聚类(SCCFA). 与已有的方法相比,本文方法在全局KNN图的指导下,基于近邻样本属于同类样本的假设,寻找锚点样本的top-k近邻样本作为其正样本,改善了特征对比和类别对比的多样性和语义性. 另外,本文采用差异化的强和弱2类数据增强方法,在提升特征的多样性和泛化性的同时,借助强数据增强和弱数据增强生成的模式差异缓解非语义信息对模型的干扰,提升模型对语义信息的学习效率和学习能力. 最后,在6个基准数据集上与已有的多个聚类方法进行性能对比,证明了本文方法的有效性和先进性.

    聚类作为计算机视觉研究中的关键技术,本文所提方法尽管解决了对比聚类中的多个不足,但基于KNN图寻找正样本仍存在一些误差,未来将在这方面进行更深入的研究.

    作者贡献声明:王气洪负责算法模型的提出和实现、实验结果的整理与分析、论文的撰写和修改;贾洪杰提出研究方向,把握论文的创新性并指导和参与论文的修订;黄龙霞和毛启容讨论算法的改进,设计实验方案,并指导论文修改.

  • 图  1   传统区块链管理模式

    Figure  1.   Management mode of traditional blockchain

    图  2   大规模许可区块链多链管理模式

    Figure  2.   Multi-chain management mode of large-scale permissioned blockchain

    图  3   节点角色划分

    Figure  3.   Node role division

    图  4   MC-RHotStuff系统框架

    Figure  4.   MC-RHotStuff system framework

    图  5   基本交易事务流程

    Figure  5.   Basic transaction process

    图  6   节点准入流程

    Figure  6.   Node admission process

    图  7   MC-Schedule节点调度流程

    Figure  7.   MC-Schedule node scheduling process

    图  8   当前共识下产生了新的区块

    Figure  8.   A new block has been generated under the current consensus

    图  9   当前共识下没有产生正确的区块

    Figure  9.   The correct block has not been generated under the current consensus

    图  10   节点状态同步流程

    Figure  10.   Node status synchronization process

    图  11   多链平均吞吐量

    Figure  11.   Average throughput of multiple chains

    图  12   动态共识节点与原共识模式对比

    Figure  12.   Comparison between dynamic consensus node and original consensus mode

    图  13   引入节点替换机制后交易吞吐量对比

    Figure  13.   Comparison of transaction throughput after introducing node replacement mechanism

    图  14   引入节点替换机制后交易时延对比

    Figure  14.   Comparison of transaction latency after introducing node replacement mechanism

    图  15   异常节点持续异常

    Figure  15.   Exception node persistent exception

    图  16   异常节点非持续异常

    Figure  16.   Exception node nonpersistent exception

  • [1]

    Castro M, Liskov B. Practical Byzantine fault tolerance[C]//Proc of the 3rd USENIX Symp on Operating Systems Design and Implementation (OSDI). Berkeley, CA: USENIX Association, 1999: 173−186

    [2]

    Ongaro D, Ousterhout J. In search of an understandable consensus algorithm[C]//Proc of the 2014 USENIX Annual Technical Conf. Berkeley, CA: USENIX Association, 2014: 305−319

    [3]

    Facebook. The diem blockchain[R/OL]. 2020[2022-09-11]. https://www.diem.com/en-us/white-paper/

    [4]

    Lamport L, Shostak R, Pease M. The Byzantine Generals Problem[M]. New York: ACM, 2019

    [5]

    Castro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery[J]. ACM Transactions on Computer Systems, 2002, 20(4): 398−461 doi: 10.1145/571637.571640

    [6]

    Jiang Nianqi, Bai Fenhua, Huang Lin, et al. Reputation-driven dynamic node consensus and reliability sharding model in IoT blockchain[J]. Algorithms, 2022, 15(2): 28−50 doi: 10.3390/a15020028

    [7]

    Aluko O, Kolonin A. PROOF-OF-REPUTATION: An alternative consensus mechanism for blockchain systems[J]. arXiv preprint, arXiv: 2108.03542, 2021

    [8]

    Huang Baohua, Peng Li, Zhao Weihong, et al. Workload-based randomization Byzantine fault tolerance consensus protocol[J]. High-Confidence Computing, 2022, 2(3): 100070 doi: 10.1016/j.hcc.2022.100070

    [9]

    Hasan O, Brunie L, Bertino E. Privacy-preserving reputation systems based on blockchain and other cryptographic building blocks: A survey[J]. ACM Computing Surveys, 2023, 55(2): 1−37

    [10]

    Jin Hai, Dai Xiaohai, Xiao Jiang. Towards a novel architecture for enabling interoperability amongst multiple blockchains[C]//Proc of the 38th Int Conf on Distributed Computing Systems (ICDCS). Piscataway, NJ: IEEE, 2018: 1203−1211

    [11]

    Luo Kan, Yu Wei, Ling Chaogao, et al. A multiple blockchains architecture on inter-blockchain communication[C]//Proc of the 2018 IEEE Int Conf on Software Quality, Reliability and Security Companion (QRS-C). Piscataway, NJ: IEEE, 2018: 139−145

    [12]

    Agrawal K, Aggarwal M, Tanwar S, et al. An extensive blockchain based applications survey: Tools, frameworks, opportunities, challenges and solutions[J]. IEEE Access, 2022, 10: 116858−116906 doi: 10.1109/ACCESS.2022.3219160

    [13]

    Abdo J B, Sibai R E, Demerjian J. Permissionless proof-of-reputation-x: A hybrid reputation-based consensus algorithm for permissionless blockchains[J]. Transactions on Emerging Telecommunications Technologies. 2021, 32(1): e4148

    [14]

    Gueta G G, Abraham I, Grossman S, et al. Sbft: A scalable decentralized trust infrastructure for blockchains[J]. arXiv preprint, arXiv: 1804.01626, 2018

    [15]

    Yin Maofan, Malkhi D, K. Reiter M, et al. HotStuff: BFT consensus with linearity and responsiveness[C]//Proc of the 2019 ACM Symp on Principles of Distributed Computing. New York: ACM, 2019: 347−356

    [16]

    Dwork C, Lynch N, Stockmeyer L. Consensus in the presence of partial synchrony[J]. Journal of the ACM, 1988, 35(2): 288−323 doi: 10.1145/42282.42283

    [17]

    Fischer M J, Lynch N A, Paterson M S. Impossibility of distributed consensus with one faulty process[J]. Journal of the ACM, 1985, 32(2): 374−382 doi: 10.1145/3149.214121

    [18]

    Schneider F. Implementing fault-tolerant services using the state machine approach: A tutorial[J]. ACM Computing Surveys, 1990, 22(4): 299−319 doi: 10.1145/98163.98167

    [19]

    Shoup V. Practical threshold signatures[C]//Proc of the Advances in Cryptology (EUROCRYPT 2000). Berlin: Springer, 2000: 207−220

    [20]

    Ntoanidou S, Polidoros A, Dordas C, et al. Hierarchical clustering methods for binary data from molecular markers[J]. International Journal of Data Analysis Techniques and Strategies, 2020, 12(3): 190−212 doi: 10.1504/IJDATS.2020.108036

    [21]

    Boneh D, Lynn B, Shacham H. Short signatures from the weil pairing[J]. Journal of Cryptology, 2004, 17(4): 297−319 doi: 10.1007/s00145-004-0314-9

    [22]

    Goyal R, Vaikuntanathan V. Locally verifiable signature and key aggregation[C]//Proc of the 42nd Annual Int Cryptology Conf. Berlin: Springer, 2022: 761−791

    [23]

    Lei Hui, Qiu Chao, Yao Haipeng, et al. When blockchain-enabled Internet of things meets cloud computing[J]. Computer, 2019, 52(12): 16−17 doi: 10.1109/MC.2019.2940857

    [24]

    Choi K, Chang B. A theory of RPC calculi for client-server model[J]. Journal of Functional Programming, 2019, 29: e5 doi: 10.1017/S0956796819000029

    [25]

    Brandão D, S. Rosa N. Multiple transport protocols in an adaptive RPC-based framework[C/OL]//Proc of the 55th Hawaii Int Conf on System Sciences. 2022[2022-12-11]. https://scholarspace.manoa.hawaii.edu/items/b0ddbfc9-22f3-4fa0-97e3-a05d3dc810dd

    [26]

    Wang Yinyin, Yang Yuwang, Qiu Xiulin, et al. CCF-LRU: Hybrid storage cache replacement strategy based on counting[J]. Applied Intelligence, 2022, 52(5): 5144−5158 doi: 10.1007/s10489-021-02567-0

    [27]

    Liu Dongxiao, Huang Cheng, Ni Jianbing, et al. Blockchain-cloud transparent data marketing: Consortium management and fairness[J]. IEEE Transactions on Computers, 2022, 71(12): 3322−3335

    [28]

    Xu Cheng, Zhang Ce, Xu Jianliang, et al. Slimchain: Scaling blockchain transactions through off-chain storage and parallel processing[J]. Proceedings of the VLDB Endowment, 2021, 14(11): 2314−2326 doi: 10.14778/3476249.3476283

    [29]

    Cheng Difei, Xu Ruihang, Zhang Bo. Fast density estimation for density-based clustering methods[J]. arXiv preprint, arXiv: 2109.11383, 2021

    [30]

    Hanafi N, Saadatfar H. A fast DBSCAN algorithm for big data based on efficient density calculation[J]. Expert Systems with Applications, 2022, 203: 117501 doi: 10.1016/j.eswa.2022.117501

  • 期刊类型引用(3)

    1. 钱进,王随,吴昊. 基于国产化平台网络异常数据流处理的研究与实现. 雷达与对抗. 2024(02): 60-63 . 百度学术
    2. 尹小康,蔡瑞杰,杨启超,刘胜利. 基于静态和动态混合分析的内存拷贝类函数识别. 软件学报. 2024(07): 3291-3313 . 百度学术
    3. 陈晓武,孙志敬. 信息化技术在空调控制器上的应用. 日用电器. 2022(11): 85-88 . 百度学术

    其他类型引用(2)

图(16)
计量
  • 文章访问数:  154
  • HTML全文浏览量:  46
  • PDF下载量:  65
  • 被引次数: 5
出版历程
  • 收稿日期:  2023-03-26
  • 修回日期:  2023-07-24
  • 网络出版日期:  2024-03-13
  • 刊出日期:  2024-05-31

目录

/

返回文章
返回