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

容错深度学习加速器跨层优化

张青, 刘成, 刘波, 黄海同, 王颖, 李华伟, 李晓维

张青, 刘成, 刘波, 黄海同, 王颖, 李华伟, 李晓维. 容错深度学习加速器跨层优化[J]. 计算机研究与发展, 2024, 61(6): 1370-1387. DOI: 10.7544/issn1000-1239.202331005
引用本文: 张青, 刘成, 刘波, 黄海同, 王颖, 李华伟, 李晓维. 容错深度学习加速器跨层优化[J]. 计算机研究与发展, 2024, 61(6): 1370-1387. DOI: 10.7544/issn1000-1239.202331005
Zhang Qing, Liu Cheng, Liu Bo, Huang Haitong, Wang Ying, Li Huawei, Li Xiaowei. Cross-Layer Optimization for Fault-Tolerant Deep Learning Accelerators[J]. Journal of Computer Research and Development, 2024, 61(6): 1370-1387. DOI: 10.7544/issn1000-1239.202331005
Citation: Zhang Qing, Liu Cheng, Liu Bo, Huang Haitong, Wang Ying, Li Huawei, Li Xiaowei. Cross-Layer Optimization for Fault-Tolerant Deep Learning Accelerators[J]. Journal of Computer Research and Development, 2024, 61(6): 1370-1387. DOI: 10.7544/issn1000-1239.202331005
张青, 刘成, 刘波, 黄海同, 王颖, 李华伟, 李晓维. 容错深度学习加速器跨层优化[J]. 计算机研究与发展, 2024, 61(6): 1370-1387. CSTR: 32373.14.issn1000-1239.202331005
引用本文: 张青, 刘成, 刘波, 黄海同, 王颖, 李华伟, 李晓维. 容错深度学习加速器跨层优化[J]. 计算机研究与发展, 2024, 61(6): 1370-1387. CSTR: 32373.14.issn1000-1239.202331005
Zhang Qing, Liu Cheng, Liu Bo, Huang Haitong, Wang Ying, Li Huawei, Li Xiaowei. Cross-Layer Optimization for Fault-Tolerant Deep Learning Accelerators[J]. Journal of Computer Research and Development, 2024, 61(6): 1370-1387. CSTR: 32373.14.issn1000-1239.202331005
Citation: Zhang Qing, Liu Cheng, Liu Bo, Huang Haitong, Wang Ying, Li Huawei, Li Xiaowei. Cross-Layer Optimization for Fault-Tolerant Deep Learning Accelerators[J]. Journal of Computer Research and Development, 2024, 61(6): 1370-1387. CSTR: 32373.14.issn1000-1239.202331005

容错深度学习加速器跨层优化

基金项目: 国家重点研发计划(2022YFB4500405);国家自然科学基金项目(62174162);空间可信计算与电子信息技术实验室开放基金资助(OBCandETL-2022-07)
详细信息
    作者简介:

    张青: 1998年生. 硕士研究生. 主要研究方向为深度学习硬件加速、容错芯片设计

    刘成: 1984年生. 博士,副研究员. 主要研究方向为专用加速器设计、容错计算、近数据计算

    刘波: 1977年生. 博士,研究员. 主要研究方向为容错计算、星载计算

    黄海同: 1999年生. 硕士研究生. 主要研究方向为深度学习算法与加速器设计、深度学习容错

    王颖: 1985年生. 博士,研究员. 主要研究方向为近似/容错计算、VLSI设计、高能效芯片设计

    李华伟: 1974年生. 博士,研究员. 主要研究方向为集成电路设计自动化、近似计算、容错计算、设计验证与测试

    李晓维: 1964年生. 博士,研究员. IEEE会员. 主要研究方向为VLSI测试、容错计算、硬件安全

    通讯作者:

    刘成(liucheng@ict.ac.cn

  • 中图分类号: TP391

Cross-Layer Optimization for Fault-Tolerant Deep Learning Accelerators

Funds: This work was supported by the National Key Research and Development Program of China (2022YFB4500405), the National Natural Science Foundation of China (62174162), and the Spatial Trusted Computing and Electronic Information Technology Lab Open Fund (OBCandETL-2022-07).
More Information
    Author Bio:

    Zhang Qing: born in 1998. Master candidate. His main research interests include deep learning hardware acceleration and fault-tolerant chip design

    Liu Cheng: born in 1984. PhD, associate professor. His main research interests include domain-specific accelerator design, fault-tolerant computing, and near-data computing

    Liu Bo: born in 1977. PhD, professor. His main research interests include fault-tolerant computing and onboard computing

    Huang Haitong: born in 1999. Master candidate. His main research interests include deep learning algorithm and accelerator design, and fault-tolerant deep learning

    Wang Ying: born in 1985. PhD, professor. His main research interests include approximate/error-tolerant computing, VLSI design, and energy-efficient accelerators

    Li Huawei: born in 1974. PhD, professor. Her main research interests include EDA, approximate computing, fault-tolerant computing, and VLSI verification and test

    Li Xiaowei: born in 1964. PhD, professor. Member of IEEE. His main research interests include VLSI test, fault-tolerant computing, and hardware security

  • 摘要:

    容错深度学习加速器是保障高可靠深度学习的基石,也是深度学习应用于安全关键领域如宇航、机器人等面临的一个关键环节. 然而,深度学习计算和访存都非常密集,传统基于冗余计算的容错方法直接应用于深度学习加速器的容错设计会导致严重的功耗、芯片面积等硬件资源开销. 为此,从神经元计算任务和神经元的数据位宽2个维度挖掘深度学习模型对于故障的敏感度差异,并利用这些差异从架构和电路层分别对于敏感的部分提供更多的保护以降低容错代价. 同时,利用深度学习自身的容错特性,通过限制量化缩小电路层需要保护的电路逻辑规模. 最后,利用贝叶斯优化协同优化算法、架构和电路的跨层设计参数,在保障深度学习可靠性、精度以及性能的前提下,最小化硬件资源开销.

    Abstract:

    Fault-tolerant deep learning accelerator is the basis for highly reliable deep learning processing, and is also critical to deploy deep learning in safety-critical applications such as avionics and robotics. Since deep learning is known to be both computing-intensive and memory-intensive, traditional fault-tolerant approaches based on redundant computing will incur substantial overhead including power consumption and chip area. To this end, we propose to characterize deep learning vulnerability difference across both neurons and bits of each neuron, and leverage the vulnerability difference to enable selective protection of the deep learning processing components from the perspective of architecture layer and circuit layer respectively for the sake of lower fault-tolerant design overhead. At the same time, we observe the correlation between model quantization and bit protection overhead of the underlying processing elements of deep learning accelerators, and propose to reduce the bit protection overhead by adding additional quantization constrain without compromising the model accuracy. Finally, we employ Bayesian optimization strategy to co-optimize the correlated cross-layer design parameters at algorithm layer, architecture layer, and circuit layer to minimize the hardware resource consumption while fulfilling multiple user constraints including reliability, accuracy, and performance of the deep learning processing at the same time.

  • 聚类旨在发现数据的内部聚类结构,将相似的样本划分为一类,现已有许多高效的聚类算法被提出,如原型聚类、密度聚类、层次聚类等. 聚类作为机器学习的核心技术之一,已在信息检索[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.   Cross-layer fault-tolerant DLA design framework

    图  2   不同量化约束下,DLA中累加器以及乘法器的重要比特位的范围以及直接关联的计算逻辑差异显著

    Figure  2.   The range of the important bits in accumulators and multipliers in DLA, as well as the directly correlated computational logic, varies substantially over the different quantization constraints

    图  3   FlexHyCA架构

    Figure  3.   FlexHyCA architecture

    图  4   可配置的位保护乘法器原理

    Figure  4.   Principle of configurable bit-protected multiplier

    图  5   不同故障率下深度学习模型不同层/块的敏感度

    Figure  5.   Sensitivity of different layers/blocks of deep learning models under various fault rates

    图  6   不同故障率下敏感度逐层/块保护带来的模型精度变化

    Figure  6.   Mode accuracy variation caused by the gradual protection of layers/blocks at different fault rates

    图  7   不同容错DLA设计策略优化后的模型精度

    Figure  7.   Model accuracy after different fault-tolerant DLA design strategies optimization

    图  8   不同容错DLA设计策略优化后的模型执行时间

    Figure  8.   Excutive time of the model after different fault-tolerant DLA design strategies optimization

    图  9   不同容错DLA对应的芯片相对面积

    Figure  9.   Relative area of chip corresponding to different fault-tolerant DLA

    图  10   重要神经元的比例与神经元重要比特的数量对ResNet50模型精度的影响

    Figure  10.   Influence of the proportion of important neurons and the number of important bits of neurons on accuracy of ResNet50 model

    图  11   Q-scale对于模型精度的影响

    Figure  11.   Influence of Q-scale on model accuracy

    图  12   DPPU尺寸和位保护设置对DLA芯片面积的影响

    Figure  12.   Influence of DPPU size and bit protection configurations on DLA chip area

    图  13   重要神经元的比例对FlexHyCA的I/O影响

    Figure  13.   Influence of the proportion of important neurons on I/O of FlexHyCA

    图  14   不同的位保护设置对应的计算阵列面积

    Figure  14.   Computing array area corresponding to different bit protection configurations

    图  15   贝叶斯优化过程中采样的数据点

    Figure  15.   Sampled data points in Bayesian optimization process

    表  1   跨层设计参数的搜索空间

    Table  1   Search Space of the Cross Layer Design Parameters

    参数 取值范围 含义
    S_TH {5%,10%,15%,20%,25%,30%,
    35%,40%}
    重要神经元百分比
    IN_TH {2,3,4} 重要神经元重要比特位数量
    NB_TH {1,2,3} 普通神经元重要比特位数量
    Q_scale [1, 2, …, 16] 截断约束
    S_policy {层间统一比例,分片统一比例} 重要神经元的选择策略
    Dot_size [8,16, …, 256] 点乘阵列尺寸
    Data_Reuse {True, False} 异构阵列数据重用
    PE_policy {直接冗余可配置冗余} 计算单元位保护策略
    下载: 导出CSV

    表  2   不同模型的最优跨层参数设计

    Table  2   Optimized Crossing Parameters Design of Different Models

    参数 故障率I 故障率II
    S_TH 5% 5%
    IN_TH 2 3
    NB_TH 1 1
    Q_scale 7 8
    S_policy 分层统一比例 分层统一比例
    Dot_size 52 52
    Data_Reuse True True
    PE_policy 可配置冗余 可配置冗余
    下载: 导出CSV
  • [1]

    Seo-Hyun J, Jin-Hee C, Yangjae J, et al. Automotive hardware development according to ISO 26262[C]//Proc of the 13th Int Conf on Advanced Communication Technology (ICACT). Piscataway, NJ: IEEE, 2011: 588−592

    [2]

    Cheng Liu, Zhen Gao, Siting Liu, et al. Special session: Fault-tolerant deep learning: A hierarchical perspective[C]//Proc of the 40th VLSI Test Symp (VTS). Piscataway, NJ: IEEE, 2022: 1−12

    [3]

    Rabe M, Milz S, Mader P. Development methodologies for safety critical machine learning applications in the automotive domain: A survey[C]//Proc of the IEEE/CVF Conf on Computer Vision and Pattern Recognition, Piscataway, NJ: IEEE, 2021: 129−141

    [4]

    Reagen B, Gupta U, Pentecost L, et al. Ares: A framework for quantifying the resilience of deep neural networks[C]//Proc of the 55th ACM/ESDA/IEEE Design Automation Conf (DAC). Piscataway, NJ: IEEE 2018: 1–6

    [5]

    Neggaz M A, I. Alouani I, Lorenzo P R, et al. A reliability study on CNNs for critical embedded systems[C]//Proc of 36th Int Conf on Computer Design (ICCD). Piscataway, NJ: IEEE, 2018: 476–479

    [6]

    Shafique M, Naseer M, Theocharides T, et al. Robust machine learning systems: Challenges, current trends, perspectives, and the road ahead[C]//Proc of IEEE Design & Test. Piscataway, NJ: IEEE 2020: 30–37

    [7]

    Sorin G, Bogdan T, Tiberiu C, et al. A survey of deep learning techniques for autonomous driving[J]. Journal of Field Robotics, 2020, 37(3): 362−386 doi: 10.1002/rob.21918

    [8]

    Mittal S. A survey on modeling and improving reliability of DNN algorithms and accelerators[J]. Journal of Systems Architecture, 2020, 104(10): 10−16

    [9]

    Maksim J, Matteo S R, Aneesh B, et al. Challenges of reliability assessment and enhancement in autonomous systems[C]//Proc of IEEE Int Symp on Defect and Fault Tolerance in VLSI and Nanotechnology Systems (DFT). Piscataway, NJ: IEEE, 2019: 1−6

    [10]

    Chen Yunji, Luo Tao, Liu shaoli et al. Dadiannao: A Machine-learning Supercomputer[C]//Proc of 47th Annual IEEE/ACM Int Symp on Microarchitecture. Piscataway, NJ: IEEE, 2014: 609−622

    [11]

    Chen Y H, Emer J, Sze V. Eyeriss: A spatial architecture for energy-efficient dataflow for convolutional neural networks[C]//Proc of 2016 ACM/IEEE the 43rd Annual Int Symp on Computer Architecture (ISCA). Piscataway, NJ: IEEE, 2016: 367−379

    [12]

    Liu Cheng, Chu Cheng, Xu D, et al. HyCA: A hybrid computing architecture for fault-tolerant deep learning[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2022, 41(10): 3400−3413 doi: 10.1109/TCAD.2021.3124763

    [13]

    Anand D, Alan W. The impact of new technology on soft error rates[C]//Proc of Int Reliability Physics Symp. Piscataway, NJ: IEEE, 2011: 5B.4.1−5B.4.7

    [14]

    Reagen B, Whatmough P, Adolf R, et al. Minerva: Enabling low-power, highly-accurate deep neural network accelerators[C]//Proc of 2016 ACM/IEEE the 43rd Annual Int Symp on Computer Architecture (ISCA). Piscataway, NJ: IEEE, 2016: 267−278

    [15]

    Li W, Ning X, Ge G, et al. FTT-NAS: Discovering FA ApproxABFT ult-tolerant neural architecture[C]//Proc of the 25th Asia and South Pacific Design Automation Conf (ASP-DAC). Piscataway, NJ: IEEE, 2020: 211−216

    [16]

    He Xin, Ke Liu, Lu Wenyan, et al. AxTrain: Hardware-oriented neural network training for approximate inference[C]//Proc of the Int Symp on Low Power Electronics and Design. Piscataway, NJ: IEEE, 2018: 1−6

    [17]

    Schorn C, Guntoro A, Ascheid G. Accurate neuron resilience prediction for a flexible reliability management in neural network accelerators[C]//Proc of 2018 Design, Automation & Test in Europe Conf & Exhibition (DATE). Piscataway, NJ: IEEE, 2018: 979−984

    [18]

    Xu D, Chu Cheng, Wang Qianlong, et al. A hybrid computing architecture for fault-tolerant deep learning accelerators[C]//Proc of the 38th Int Conf on Computer Design (ICCD). Piscataway, NJ: IEEE, 2020: 478−485

    [19]

    Mahdiani H R, Fakhraie S M, Lucas C. Relaxed fault-tolerant hardware implementation of neural networks in the presence of multiple transient errors[J]. IEEE Transactions on Neural Networks and Learning Systems, 2012: 1215−1228

    [20]

    Xue Xinghua, Huang Haitong, Liu Cheng, et al, Winograd convolution: A perspective from fault tolerance[C]//Proc of the 59th ACM/IEEE Design Automation Conf (DAC). New York: ACM, 2022: 853−858

    [21]

    Xu D, Xing K, Liu C, et al. Resilient neural network training for accelerators with computing errors[C]//Proc of the 30th Int Conf on Application-Specific Systems, Architectures and Processors (ASAP). Piscataway, NJ: IEEE, 2019: 99−102

    [22]

    Xu D, He M, Liu C, et al. R2F: A remote retraining framework for AIoT processors with computing errors[J]. IEEE Transactions on Very Large Scale Integration Systems, 2021, 29(11): 1955−1966 doi: 10.1109/TVLSI.2021.3089224

    [23]

    Ruospo A, Gavarini G, Bragaglia I, et al. Selective hardening of critical neurons in deep neural networks[C]//Proc of the 25th Int Symp on Design and Diagnostics of Electronic Circuits and Systems (DDECS). Piscataway, NJ: IEEE, 2022: 136−141

    [24]

    Bertoa T G, Gambardella G N, Fraser N J, et al. Fault tolerant neural network accelerators with selective TMR[C]//Proc of the IEEE Design & Test. Piscataway, NJ: IEEE, 2022: 1−4

    [25]

    Lee V T, Alaghi A, Pamula R, et al. Architecture considerations for stochastic computing accelerators[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2018, 37(11): 2277−2289 doi: 10.1109/TCAD.2018.2858338

    [26]

    Ardakani A, Gross W J. Fault-tolerance of binarized and stochastic computing-based neural networks[C]//Proc of the 2021 IEEE Workshop on Signal Processing Systems (SiPS). Piscataway, NJ: IEEE, 2021: 52−57

    [27]

    Qian W, Li X, Riedel M D, et al. An architecture for fault-tolerant computation with stochastic logic[J]. IEEE Transactions on Computers, 2011, 60(1): 93−105 doi: 10.1109/TC.2010.202

    [28]

    Zhang J J, Gu T, Basu K, et al. Analyzing and mitigating the impact of permanent faults on a systolic array based neural network accelerator[C]//Proc of the 2018 IEEE 36th VLSI Test Symp (VTS). Piscataway, NJ: IEEE, 2018: 1−6

    [29]

    Clemente J A, Mansour W, Ayoubi R, et al. Hardware implementation of a fault-tolerant hopfield neural network on FPGAs[J]. Neurocomputing, 2016, 171(1): 1606−1609

    [30]

    Gao Z, Zhang H, Yao Y et al. Soft error tolerant convolutional neural networks on FPGAs with ensemble learning[J]. IEEE Transactions on Very Large Scale Integration Systems, 2022, 30(3): 219−302

    [31]

    Ozen Z, Orailoglu A. Sanity-Check: Boosting the reliability of safety-critical deep neural network applications[C]//Proc of the 28th Asian Test Symposium (ATS). Piscataway, NJ: IEEE, 2019: 7–75

    [32]

    Wang Hao, Feng Ruibin, Han Zifa, et al. ADMM-based algorithm for training fault tolerant RBF networks and selecting centers[J]. IEEE Transactions on Neural Networks and Learning Systems 2017, 29(8): 3870−3878

    [33]

    Xue Xinghua, Liu Cheng, Liu Bo, et al. Exploring winograd convolution for cost-effective neural network fault tolerance[J], IEEE Transactions on Very Large Scale Integration Systems, 2023, 31(11): 1763−1773

    [34]

    Zhao K, Di S, Li S, et al. FT-CNN: Algorithm-based fault tolerance for convolutional neural networks[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 32(7): 1677−1689

    [35]

    Le H, Muhammad A H, Muhammad S. FT-ClipAct: Resilience analysis of deep neural networks and improving their fault tolerance using clipped activation[C]//Proc of the 2020 Design, Automation & Test in Europe Conf & Exhibition (DATE) . Piscataway, NJ: IEEE, 2020: 1241−1246

    [36]

    Zhan Jinyu, Sun Ruoxu, Jang Wei, et al. Improving fault tolerance for reliable DNN using boundary-aware activation[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2021, 41(10): 3414−3425

    [37]

    Chen Zitao, Li Guanpeng, Karthik P. A low-cost fault corrector for deep neural networks through range restriction[C]//Proc of the 51st Annual IEEE/IFIP Int Conf on Dependable Systems and Networks (DSN). Piscataway, NJ: IEEE 2021: 1−13

    [38]

    Xue Xinghua , Liu Cheng, Huang Haitong, et al. ApproxABFT: Approximate algorithm-based fault tolerance for vision transformers[J]. arXiv preprint, arXiv: 2302.10469, 2023

    [39]

    Xu D, Zhu Ziyang, Liu Cheng, et al. Reliability evaluation and analysis of fpga-based neural network acceleration system[J]. IEEE Transactions on Very Large Scale Integration Systems, 2021, 29(3): 472−484 doi: 10.1109/TVLSI.2020.3046075

    [40]

    Xu D, Zhu Ziyang, Liu Cheng, et al. Persistent fault analysis of neural networks on FPGA-based acceleration system[C]//Proc of the 2020 IEEE 31st Int Conf on Application-Specific Systems, Architectures and Processors (ASAP). Piscataway, NJ: IEEE, 2020: 85−92

    [41]

    Li M L, Ramachandran P, Sahoo S K, et al. Understanding the propagation of hard errors to software and implications for resilient system design[C]//Proc of the ACM Sigplan Notices. New York: ACM, 2008: 265−276

    [42]

    Libano F, Wilson B, Anderson J, et al. Selective hardening for neural networks in FPGAs[J]. IEEE Transactions on Nuclear Science, 2018, 66(1): 216−222

    [43]

    Mahmoud A, Siva K, Sastry H, et al. HarDNN: Feature map vulnerability evaluation in CNNs[J]. arXiv preprint, arXiv: 2020.09786,2020

    [44]

    Samajdar A, Zhu Y, Whatmough P, et al. Scale-Sim: Systolic CNN accelerator simulator[J]. arXiv preprint, arXiv: 1811.02883,2018

    [45]

    Huang Haitong, Liu Cheng, Xue Xinghua, MRFI: An open source multi-resolution fault injection framework for neural network processing[J]. arXiv preprint, arXiv: 2306.11758, 2023

    [46]

    Hanif M A, Hafiz R, Shafique M. Error resilience analysis for systematically employing approximate computing in convolutional neural networks[C]//Proc of the 2018 Design, Automation Test in Europe Conf Exhibition (DATE). Piscataway, NJ: IEEE, 2018: 913−916

    [47]

    Xue Xinghua, Liu Cheng, Wang Ying, et al. Soft error reliability analysis of vision transformers[J], IEEE Transactions on Very Large Scale Integration Systems, 2023, 31(12): 2126−2136

    [48]

    Pandey P, Prabal B, Koushik C, et al. GreenTPU: Improving timing error resilience of a near-threshold tensor processing unit[C]//Proc of the 56th ACM/IEEE Design Automation Conf (DAC). Piscataway, NJ: IEEE, 2019: 1−6

  • 期刊类型引用(3)

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

    其他类型引用(2)

图(15)  /  表(2)
计量
  • 文章访问数:  372
  • HTML全文浏览量:  105
  • PDF下载量:  88
  • 被引次数: 5
出版历程
  • 收稿日期:  2024-01-31
  • 修回日期:  2024-03-13
  • 网络出版日期:  2024-04-14
  • 刊出日期:  2024-05-31

目录

/

返回文章
返回