Loading [MathJax]/jax/output/SVG/jax.js
  • 中国精品科技期刊
  • CCF推荐A类中文期刊
  • 计算领域高质量科技期刊T1类
高级检索

一种新的半监督归纳迁移学习框架:Co-Transfer

文益民, 员喆, 余航

文益民, 员喆, 余航. 一种新的半监督归纳迁移学习框架:Co-Transfer[J]. 计算机研究与发展, 2023, 60(7): 1603-1614. DOI: 10.7544/issn1000-1239.202220232
引用本文: 文益民, 员喆, 余航. 一种新的半监督归纳迁移学习框架:Co-Transfer[J]. 计算机研究与发展, 2023, 60(7): 1603-1614. DOI: 10.7544/issn1000-1239.202220232
Wen Yimin, Yuan Zhe, Yu Hang. A New Semi-Supervised Inductive Transfer Learning Framework: Co-Transfer[J]. Journal of Computer Research and Development, 2023, 60(7): 1603-1614. DOI: 10.7544/issn1000-1239.202220232
Citation: Wen Yimin, Yuan Zhe, Yu Hang. A New Semi-Supervised Inductive Transfer Learning Framework: Co-Transfer[J]. Journal of Computer Research and Development, 2023, 60(7): 1603-1614. DOI: 10.7544/issn1000-1239.202220232
文益民, 员喆, 余航. 一种新的半监督归纳迁移学习框架:Co-Transfer[J]. 计算机研究与发展, 2023, 60(7): 1603-1614. CSTR: 32373.14.issn1000-1239.202220232
引用本文: 文益民, 员喆, 余航. 一种新的半监督归纳迁移学习框架:Co-Transfer[J]. 计算机研究与发展, 2023, 60(7): 1603-1614. CSTR: 32373.14.issn1000-1239.202220232
Wen Yimin, Yuan Zhe, Yu Hang. A New Semi-Supervised Inductive Transfer Learning Framework: Co-Transfer[J]. Journal of Computer Research and Development, 2023, 60(7): 1603-1614. CSTR: 32373.14.issn1000-1239.202220232
Citation: Wen Yimin, Yuan Zhe, Yu Hang. A New Semi-Supervised Inductive Transfer Learning Framework: Co-Transfer[J]. Journal of Computer Research and Development, 2023, 60(7): 1603-1614. CSTR: 32373.14.issn1000-1239.202220232

一种新的半监督归纳迁移学习框架:Co-Transfer

基金项目: 国家自然科学基金项目(61866007);广西自然科学基金项目(2018GXNSFDA138006);广西重点研发计划项目(桂科AB21220023);广西图像图形与智能处理重点实验室项目(GIIP2005,GIIP201505)
详细信息
    作者简介:

    文益民: 1969年生. 博士,教授,博士生导师. CCF杰出会员. 主要研究方向为机器学习、推荐系统和大数据分析

    员喆: 1995年生. 硕士研究生. 主要研究方向为机器学习和数据挖掘

    余航: 1991年生. 博士,教授,博士生导师. IEEE和CCF会员. 主要研究方向为在线机器学习、知识图谱和多智能体系统

  • 中图分类号: TP391

A New Semi-Supervised Inductive Transfer Learning Framework: Co-Transfer

Funds: The work was supported by the National Natural Science Foundation of China (61866007), the Guangxi Natural Science Foundation (2018GXNSFDA138006), the Key Research and Development Program of Guangxi (桂科AB21220023), and the Program of Guangxi Key Laboratory of Image and Graphic Intelligent Processing (GIIP2005, GIIP201505)
More Information
    Author Bio:

    Wen Yimin: born in 1969. PhD,professor,PhD supervisor. Distinguished member of CCF. His main research interests include machine learning, recommendation systems, and big data analysis

    Yuan Zhe: born in 1995. Master candidate. His main research interests include machine learning and data mining

    Yu Hang: born in 1991. PhD, professor, PhD supervisor. Member of IEEE and CCF. His main research interests include online machine learning, knowledge graph and multi-agent system

  • 摘要:

    在许多实际的数据挖掘应用场景,如网络入侵检测、Twitter垃圾邮件检测、计算机辅助诊断等中,与目标域分布不同但相关的源域普遍存在. 一般情况下,在源域和目标域中都有大量未标记样本,对其中的每个样本都进行标记是件困难的、昂贵的、耗时的事,有时也没必要. 因此,充分挖掘源域和目标域中标记和未标记样本来解决目标域中的分类任务非常重要且有意义. 结合归纳迁移学习和半监督学习,提出一种名为Co-Transfer的半监督归纳迁移学习框架. Co-Transfer首先生成3个TrAdaBoost分类器用于实现从原始源域到原始目标域的迁移学习,同时生成另外3个TrAdaBoost分类器用于实现从原始目标域到原始源域的迁移学习. 这2组分类器都使用从原始源域和原始目标域的原有标记样本的有放回抽样来训练. 在Co-Transfer的每一轮迭代中,每组TrAdaBoost分类器使用新的训练集更新,其中一部分训练样本是原有的标记样本,一部分是由本组TrAdaBoost分类器标记的样本,还有一部分则由另一组TrAdaBoost分类器标记. 迭代终止后,把从原始源域到原始目标域的3个TrAdaBoost分类器的集成作为原始目标域分类器. 在UCI数据集和文本分类数据集上的实验结果表明,Co-Transfer可以有效地学习源域和目标域的标记和未标记样本从而提升泛化性能.

    Abstract:

    In many practical data mining scenarios, such as network intrusion detection, Twitter spam detection, and computer-aided diagnosis, source domain that is different but related to a target domain is very common. Generally, a large amount of unlabeled data is available in both source domain and target domain, but labeling each of them is difficult, expensive, time-consuming, and sometime unnecessary. Therefore, it is very important and worthwhile to fully explore the labeled and unlabeled data in source domain and target domain to handle classification tasks in target domain. To leverage transfer learning and semi-supervised learning, we propose a new inductive transfer learning framework named Co-Transfer. Co-Transfer first generates three TrAdaBoost classifiers for transfer learning from the original source domain to the original target domain, and meanwhile another three TrAdaBoost classifiers are generated for transfer learning from the original target domain to the original source domain by bootstrapping samples from the original labeled data. In each round of Co-Transfer, each group of TrAdaBoost classifiers is refined by using the carefully labeled data, one part of which is the original labeled samples, the second part is the samples labeled by one group of TrAdaBoost classifiers, and the other samples are labeled by another group of TrAdaBoost classifiers. Finally, the group of TrAdaBoost classifiers learned to transfer from the original source domain to the original target domain to produce the final hypothesis. Experimental results on UCI and text classification task datasets illustrate that Co-Transfer can significantly improve generalization performance by exploring labeled and unlabeled data across different tasks.

  • 敏捷开发最初是指以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发. 而近年来随着当今处理器核心设计需求的多样性与复杂性不断增加,一些前沿领域的芯片设计团队也开始尝试借鉴敏捷开发的思想[1-3]. 处理器芯片设计在投片前, 需要基于近似真实的硬件环境,敏捷地进行软硬件系统定义、集成和试错,开展软硬件系统级评估.

    在早期的处理器开发流程中,由于对硬件的依赖,处理器相关软件的开发和验证需要稳定的硬件原型,这种硬件开发和软件开发之间的串行性在一定程度上降低了整体的开发与迭代效率. 为了缩短开发周期,软硬件协同开发[4]的思路被提出. 软硬件协同开发在设计初期将系统功能进行软件和硬件的划分,随后软件和硬件的开发并行进行,验证阶段采用软硬件协同验证的方式. 软硬件协同验证是一种对软硬件设计同时进行验证的方法,要求在验证框架下搭建待验证硬件环境并运行待验证软件,运行过程中软硬件的行为可以彼此提供测试向量,从而将验证工作并行化,缩短验证时间. 同时,软件应根据硬件配置进行设计,综合启动引导固件、操作系统、应用程序等各层次的代码,组织成完整的软件栈. 随着硬件设计的规模逐渐扩大,软件栈需要跟踪各种硬件接口(时钟与复位逻辑、访存接口、各类对外通信设备等)的准确版本以及从固件到用户级应用程序的特性和功能,因此软件栈的开发和测试变得更加复杂. 设计复杂性的不断增加对实验和研究软件工作负载的管理提出了挑战.

    处理器设计的系统性改进升级可能涉及修改任何层次代码,包括从低级电路的硬件描述代码到操作系统和应用程序的软件代码. 综上所述,处理器设计团队需要一个硬件和软件完全集成的原型验证系统. 全系统级验证是对软件或硬件合作的尝试. 系统级验证指对系统层面的硬件设计进行验证,验证对象通常是软硬件整体. 系统级验证的方法主要采用对软硬件整体仿真或模拟的方法,如搭建现场可编程门阵列(field programmable gate array,FPGA)原型系统进行验证,就是一种目前业界广泛采用的基于可编程硬件模拟的方法. 近年来,由于FPGA器件成本的下降和逻辑资源规模的提升,加上FPGA本身与真实电路的近似性,FPGA原型验证作为系统级验证的一种方式,其优势愈加明显.

    现有的系统级原型验证平台主要基于通用型FPGA器件. 通用型FPGA器件以提供可编程逻辑资源为目标,几乎不包含硬核,设计流程上主要通过FPGA制造商提供的电子设计自动化(electronics design automation,EDA)支持工具来构建设计并配置器件,从而构建FPGA原型系统. 各制造商的FPGA开发过程基本相同,但开发过程往往涉及工程方面的繁杂细节. 在基于传统通用型FPGA的原型验证中,除了需要测试的处理器核部署在FPGA上之外,还需要实现一些基本的内存访问接口和I/O外设(包括但不限于网络接口、串行端口、USB、SD/MMC等). 没有FPGA开发经验的人需要相当长的时间来学习掌握,技术门槛较高. 这些接口的实现本身也需要占用FPGA的大量片上逻辑资源,从而挤压待测试的处理器核心的布局和布线自由度空间,带来时序违例等问题. 此外由于芯片底层实现工艺的原因,相较于专用集成电路(application specific integrated circuit,ASIC),通用型FPGA的原型验证场景中处理器核的运行频率低,执行一些计算密集型任务往往需要消耗相当长的时间,而这些等待时间也会间接影响到处理器的验证流程.

    基于面向开放RISC-V指令集[5]的开源处理器在近年来受到广泛关注. 随着开源芯片社区的不断发展和成熟,处理器内部的一些典型基础逻辑功能模块也在历经多次流片验证后趋于稳定,这些基础模块在未来爆发大规模逻辑错误和设计缺陷的可能性已大幅度降低。然而,随着系统整体复杂度的不断提升,目前的处理器集成了越来越多的基础模块部件,因此,未来不仅需要开展面向传统RTL(register transfer logic)逻辑设计描述和门级电路的仿真测试,更需要一种快速构建软硬件原型的平台和方法,以尽快开展系统级测试评估. 设计团队亟需一种利用开源IP快速构建硅前系统级平台的方法,尽快开展硅前硬件纠错和软件调试工作.

    随着片上系统(system-on-a-chip,SoC[6])技术的演进,出现了在同一芯片上集成FPGA可编程逻辑(programmable logic,PL)和硬核处理系统(processing system,PS)的新型SoC-FPGA[7]器件. 以Xilinx的Zynq-7000/MPSoC为例,其硬核处理系统部分是一个以ARM处理器硬核为核心的SoC,它包含硬核ARM处理器、平台管理单元(platform management unit,PMU)协处理器及各类丰富的外设接口资源. SoC-FPGA可以认为是ASIC器件与传统FPGA器件的互补,将一些广泛使用的标准化处理器核与外设接口以硬核的形式直接提供给开发者复用.

    如何充分利用SoC-FPGA提供的各类外设接口及算力资源,为开源RISC-V处理器核提供一套敏捷易用的原型验证环境,以更好地开展软硬件全系统评估工作,是本文着力解决的问题.

    FireMarshal[8]是一个用在全栈SoC上创建和共享可复制和可重复实验的软件工件的工具. 用户可以将配置项写入JSON文件,以快速生成所需的所有级别的软件栈. 然而,FireMarshal侧重于RISC-V软件系统的自动化生成,在硬件上依赖FireSim[9]仿真加速平台,尚未充分考虑如何为RISC-V处理器的完整软硬件系统级验证提供丰富的I/O外设接口.

    Freedom[10]是SiFive设计的一个平台,用于将特定的RISC-V核——Rocketchip[11]部署到传统通用型FPGA设备,为设计者提供一套典型的RISC-V SoC参考系统. 虽然Freedom开源代码仓库中提供了一些简单I/O接口的使用方法,但接口类型和功能极为有限,不能满足目标处理器软硬件系统的完整验证需求. 此外,Freedom提供的I/O接口可选择使用Xilinx FPGA开发工具中提供的IP,但这些IP核仍需要以逻辑电路的形式被部署在FPGA上,占用待验证处理器需要的逻辑资源.

    ESP[12]是用于异构SoC设计的开源研究平台. ESP体系结构具有高度可扩展性,并在规则性和专业性之间取得平衡. 伴随的方法提高了系统级设计的抽象级别,并支持从软件和硬件开发到FPGA上的全系统原型的自动化过程. 对于应用程序开发人员,ESP提供面向特定领域的自动化解决方案,为其软件合成新的加速器,并将复杂的工作负载映射到SoC架构上. 对于硬件工程师来说,ESP提供了将加速器设计集成到完整SoC中的自动化解决方案.

    国内也有团队开始探索基于SoC-FPGA构建RISC-V处理器的测试系统[13]. 其基本思路是通过对RISC-V发起的外设地址访问请求进行捕获,将RISC‑V处理器通过AXI外设控制总线对外设控制器访问产生的相应数据转存,最终通过串口打印. 然而该方法仅能对RISC-V处理器的外设访问通路进行相关访问数据记录的收集,转存机制本身也难以保证数据交互的实时性,同时也未考虑对复杂高速DMA外设的访问支持还无法满足完整的系统级验证需求.

    综上,尽管国内外已开始重视RISC-V有关的软硬件协同验证系统,但主要沿用传统的通用型FPGA模式,测试待验证处理器所需的接口通常需要直接在FPGA上实现. 特别是对于一些高速接口,即使能够应用Xilinx或第三方公司提供的IP核保证功能可靠,但这些IP核需要占用大量的逻辑资源,基于Xilinx ZynqMP ZU2EG系列器件测得的各IP以默认配置设置时所需的逻辑资源数量与所占总逻辑资源的比例,如表1所示. 而目前基于SoC-FPGA构建RISC-V处理器测试系统的技术尝试,尚存在一定的局限性.

    表  1  若干外设接口IP所需的逻辑资源
    Table  1.  Logical Resources Required by the IP of Several Peripheral Interfaces
    IP查找表触发器块存储器
    SDIO1097(2.3%)9944(10.5%)1(3.0%)
    Ethernet3106(6.6%)5256(5.5%)4(12.0%)
    USB 2.02388(5.0%)2135(2.2%)3(9.0%)
    PCIe 2.016444(35.0%)12421(13.2%)20(60.0%)
    下载: 导出CSV 
    | 显示表格

    针对传统通用型FPGA在构建复杂系统方面的这些缺点,本文面向RISC-V处理器提出了一种基于SoC-FPGA的RISC-V处理器软硬件系统级平台. 该平台充分发掘可编程SoC-FPGA软硬件协同可编程的潜力,通过构建各级硬件和软件的设计,使部署在硬件可编程逻辑部分的待验证目标RISC-V处理器核能够充分利用硬核SoC侧的I/O外设资源,并与ARM硬核处理器进行协同,以获得较好的仿真验证效果. 最后,通过与一系列定制化软硬件自动化设计框架,用户只需提供几个关键参数即可自动生成可在SoC-FPGA上部署的目标RISC-V开源处理器软硬件镜像文件,降低原型验证环境的构建开销.

    图1所示,待测RISC-V软核处理器位于可编程逻辑侧,可通过不同类型的总线接口(访存接口和外设接口)访问ARM硬核SoC侧的内存与I/O外设资源;同时I/O外设可通过一致性接口向RISC-V可见内存发起DMA访问. 此外,为了提高验证平台在软硬件各个层次上的兼容性,本文提出一种基于Mailbox模块的软硬件协同的验证平台设计框架,通过RISC-V软核与ARM硬核对Mailbox模块的共享访问,实现硬核处理器对RISC-V处理器软硬件验证的高效协同.

    图  1  基于SoC-FPGA的原型验证平台总体示意图
    Figure  1.  Overall schematic diagram of prototype verification platform based on SoC-FPGA

    完整的软硬件协同验证需要待测试RISC-V处理器核与各种总线接口之间进行频繁交互. 一些特定的测试数据、测试结果也需要通过相关的总线接口与待验证处理器进行传输.

    在验证平台框架中如图1所示,待验证的RISC-V处理器核主要包含3类总线接口,分别为访存接口、一致性接口和外设接口,其中外设接口一般使用内存映射输入输出(memory-mapped I/O,MMIO)的方式工作. 为了充分利用硬核处理系统侧的各项资源,本文将可编程逻辑侧待验证处理器的MMIO接口连接到硬核处理系统端,并允许待验证处理器访问硬核处理系统端的各种I/O外设;将待验证处理器通过访存接口访问硬核处理系统侧的内存控制器. 一些具有大量通信数据的外设设备,如用于访问SD/MMC便携存储设备的安全数字输入输出(secure digital input and output,SDIO)接口和以太网,其DMA交互接口也与待验证处理器的缓存一致性接口连接. 此外,Mailbox模块可以像普通外设一样由MMIO接口直接寻址访问,为可编程逻辑侧的待验证处理器提供了一种间接访问PMU的方式在ARM处理器的算力协助工作中发挥重要作用.

    硬核处理系统[14]中的UART、SDIO、网络等外设既可以被可编程逻辑中的待验证处理器通过接口访问,也可以被硬核处理系统中的ARM处理器访问,但不应该被二者同时占用. 在验证平台启动过程中,首先由ARM处理器完成平台初始化和引导文件加载工作,之后各外设的控制权被移交给待验证处理器,以实现外设资源的复用. 各外设资源在平台启动过程中的使用情况为:

    1)UART接口. 在验证平台启动期间,ARM处理器和待验证处理器的各个启动阶段的日志信息,以及挂载文件系统后的交互都可以通过UART接口完成输入输出.

    2)SDIO接口. 在基于SD卡的引导模式下,ARM和待验证处理器引导文件都需要从SD卡移动到内存. 启动Linux内核后,待验证处理器还可能需要在SD卡分区上挂载发行版文件系统,也需要访问SDIO接口.

    3)网络. 在基于网络的启动模式下,ARM和待验证处理器都需要从网络的远端服务器读取启动镜像文件到内存. 启动Linux内核后,待验证处理器还可能需要在网络文件系统(network file system,NFS)服务器上挂载发行版文件系统,这也需要访问网络接口.

    值得注意的是,由于ARM处理器在通电和启动的初始阶段仅暂时使用SDIO或网络接口,一旦开始执行服务程序,ARM将不再访问硬核处理系统端的各类外设资源. 因此,待验证处理器从开始加载启动到挂载发行版文件系统的整个过程,对硬核处理系统端的所有接口资源都具有完全权限.

    硬核处理系统侧的处理器核心主要包括ARM主处理器和PMU协处理器2部分. ARM主处理器作为硬核处理系统的高性能处理器,主频较高,而且上电后立即开始工作,可直接进行访存以及各类外设接口的交互操作,能够向待测RISC-V处理器软核提供算力方面的协助. PMU是一个在SoC-FPGA上执行管理功能的硬核处理器. PMU可以执行其他处理器不被允许的操作,如电源管理、时钟管理和可编程逻辑配置,能够向待测RISC-V处理器软核提供功能上的辅助. 待测RISC-V核对2种硬核处理器资源的利用在结构上均需要基于Mailbox进行关键信息的交互,如图1所示. 3.2.1节将对硬核处理器资源的利用方法,以及不同处理器之间的具体交互流程进行阐述说明.

    基于3.1节的方法虽然能够访问到I/O外设的控制与状态寄存器空间,但无法直接访问一些对系统行为较为敏感的特殊寄存器(如I/O外设的时钟寄存器). 这些特殊寄存器只能由PMU管理,其他处理器核没有直接访问权限. 当待验证RISC-V处理器需要读写特殊寄存器时,需要向PMU发出核间中断请求,委托PMU进行特殊寄存器的读写操作. 因此需要建立待验证RISC-V处理器与PMU的核间中断通信机制. 然而,现有SoC-FPGA器件往往并不允许位于可编程逻辑的待测处理器直接向PMU单元发出核间中断操作.

    为解决这些问题,本文提出一种虚拟核间中断机制,通过ARM硬核处理器作为第三方,对核间中断(inter-processor interrupt,IPI)请求进行转发. 具体地,本文提出一种基于Mailbox的核间中断请求转发流程. 同时,为了对特殊寄存器的操作与普通寄存器操作进行隔离,本文在RISC-V的机器态运行模式(machine mode,M-MODE)下实现了程序调用接口,允许在其他运行模式下通过环境调用(environment call,ECALL)模式访问.

    图2所示,Mailbox主要包括请求标记段和参数段,参数段包括请求类型段、输入参数段与输出参数段3部分,可基于FPGA片上小容量BRAM实现. 请求标记段由RISC-V在需要时进行置位和回读,ARM则在默认情况下循环检测该请求标记. 为了当RISC-V开始执行PMU访问时首先通过ECALL陷入M-MODE,将核间中断的相关信息通过MMIO总线接口写入Mailbox的相应位置. 在Mailbox模块的配合下,RISC-V核对PMU等单元的操作请求将由ARM进行中转,代替RISC-V向PMU发出操作请求从而实现虚拟核间中断机制,最终RISC-V通过Mailbox回读核间中断操作的返回结果,图2中,从平台的角度上,各操作按数字序号的次序依次执行;从RISC-V与ARM处理器的角度上,各自按照其执行步骤箭头依次执行.

    图  2  RISC-V处理器与PMU的交互流程
    Figure  2.  Interaction process between RISC-V processor and PMU

    基于Mailbox构建的虚拟核间中断机制将在平台的操作系统引导过程中起到重要作用. 在待测RISC-V软核启动时,Linux内核的初始化阶段需要陷入M-MODE的管理器二进制接口(supervisor binary interface,SBI)固件代码中执行核间中断请求. RISC-V处理器上的Linux内核运行于S-MODE, 更高级别的M-MODE运行OpenSBI(OpenSBI是SBI的一种开源实现,除了作为引导程序以外, 同时也作为平台管理固件运行于处理器的最高级别). 本文兼容了现有的SoC-FPGA时钟驱动程序,通过添加相应的接口函数来支持RISC-V从内核态陷入M-MODE固件,发起对PMU的虚拟核间中断,如图3所示.

    图  3  RISC-V处理器上运行的Linux驱动程序发起对PMU的虚拟核间中断请求
    Figure  3.  Linux drivers running on RISC-V processor initiate a virtual IPI towards PMU

    在验证平台中,ARM处理器负责为RISC-V处理器核的启动准备内存环境,并将RISC-V的启动镜像文件从SD卡提前移动到内存,完成可编程逻辑端的位流配置等. 并在启动和运行期间最终执行服务程序以协助ECALL和RISC-V的其他操作. 除了RISC-V操作所需的辅助外,ARM处理器还可以承担一些计算任务.

    例如,在涉及RISC-V安全框架的研究中,ARM处理器不仅负责协助RISC-V启动和转发IPI消息,它本身还具有更高的工作时钟频率和更大的计算潜力. 对于一些计算密集型的任务,RISC-V可以通过Mailbox向ARM提交计算辅助请求以及所需要计算的任务类型、原始数据信息等,如图4所示. ARM接收到计算辅助请求后,将通过一致性接口读取所需计算的原始数据,之后将计算结果数据由一致性接口写入共享内存区域,并通过清除请求标记告知RISC-V去回读共享内存中的计算结果,从平台的角度上,各操作按数字序号的次序依次执行;从RISC-V与ARM处理器的角度上,各自按照其执行步骤箭头依次执行.

    图  4  ARM处理器协同运行RISC-V的复杂运算任务
    Figure  4.  ARM processor cooperates to run complex computing tasks of RISC-V

    为了提升软硬件协同验证平台的敏捷性,本文构建了RISC-V处理器软硬件验证的可配置、自动化开发框架.

    验证平台通过多层Git存储库组织,将有关的软件和硬件仓库以高内聚、低耦合的原则组织成一个集成的设计环境. 用户仅需要向平台的接口文件提供关键配置参数,如硬件处理器核的相关配置、软件代码的入口地址等. 如图5所示,平台通过一系列逐层调用并相互协作的Makefile和工具命令语言(tool command language,Tcl)脚本,将这些关键参数配至各个代码仓库的编译传参接口,自动进行各个软硬件模块的参数修改以及FPGA工程的适配工作,而不需要用户深入平台内部进行繁琐的手动修改. 当出现某些模块的更替时仅需要关注关键参数即可,从而使得平台能够快速兼容各个软硬件层次的设计变化.

    图  5  平台软硬件代码组织结构
    Figure  5.  Organization structure of platform on software and hardware codes

    软硬件协同验证平台的敏捷性应该体现在其可以快速高效地集成任何符合标准接口的软件与硬件模块. 软件模块包括软件协议栈的各层次代码,例如启动引导软件、Linux操作系统、应用层可执行程序的不同阶段的软件代码;而硬件模块则主要包括处理器层次的逻辑设计与配置代码与板卡层次的硬件脚本代码. 对于不同的软硬件层次,需要分别配置特定的参数,如表2所示.

    表  2  不同软硬件层次整合时所需要提供的配置参数
    Table  2.  Configuration Parameters Required for Integration of Different Software and Hardware Modules
    软硬件层次配置参数
    处理器核各总线地址范围、核数、内存入口信息
    板卡硬件器件IO物理约束、时钟源、内存映射信息
    启动引导软件起始地址、设备树、总线地址范围、引导方式
    操作系统内核配置项信息
    应用层程序所依赖的操作系统、标准程序库、编译链
    下载: 导出CSV 
    | 显示表格

    考虑到系统级原型验证涉及到很多软硬件各层次代码,本文探索在云端将全栈的代码仓库组织起来,使用户在本地或服务器端,自动化执行编译和测试流程. 由于编译需要许多特定版本的工具链,基于持续集成(continuous integration,CI)的编译方法可以将不同的编译阶段分成特定顺序的job,各个job使用包含所需编译工具链的独立容器镜像,相比本地编译更简单、更可靠. 除了编译阶段,本文也探索了将编译产出的目标文件通过持续部署(continuous deployment,CD)更新到设备.

    平台的硬件环境包括2种自研板卡平台,实物如图6所示,分别是基础实验平台(Plat-B)板卡,以及扩展实验平台(Plat-E)板卡, 2种板卡的各项板载基础配置参数分别如表3所示. Plat-E配备了逻辑资源更大的SoC-FPGA器件,可以提供更多的片上存储资源以支持相对复杂的应用场景(如基于RISC-V的可信执行环境).

    图  6  平台硬件实物照片
    Figure  6.  Physical photos of platform hardware
    表  3  2个实验平台的基本配置
    Table  3.  Basic Configurations of Two Experimental Platforms
    配置项Plat-BPlat-E
    ARM硬核处理器 ARM Cortex-A53 Quad-core @ 1.3GHz
    内存2GiB DDR4-2133内存颗粒16GiB DDR4-2133 SODIMM
    RISC-V可见内存容量/GiB1.7515.75
    UART波特率115200
    SD/MMC32GB,CLASS 10
    以太网网络接口速率/(Mb·s−11000
    ARM和RISC-V间的互连接口时钟频率/MHz100134
    下载: 导出CSV 
    | 显示表格

    在评估实验中,Plat-E板卡与Plat-B板卡上RISC-V软核处理器的基本配置相同,但Plat-E板卡为RISC-V提供的访存空间更大、可编程逻辑侧提供的时钟频率更高,如表4所示.

    表  4  RISC-V软核处理器基础配置
    Table  4.  Basic Configuration of RISC-V Soft Core Processor
    配置项Plat-BPlat-E
    时钟频率/MHz100134
    基本配置Rocketchip v1.2单核
    BaseSubsystemModuleImp
    下载: 导出CSV 
    | 显示表格

    基于表3、表4硬件环境,通过部署并运行一系列软件负载,如表5所示,评估本文提出的验证平台性能.

    表  5  软件工作负载
    Table  5.  Software Workload
    类型基本信息
    引导程序OpenSBI v0.5 + U-Boot v2020.01
    操作系统Linux v5.4.0 + Debian 11
    测试负载①网络性能测试:iperf v3.7
    ②SD/MMC存储性能测试:fio v3.25
    ③复杂运算协同:Keystone可信执行环境,内核驱动v0.3 +
    安全监视器(提交编号adba60d9aa3)
    下载: 导出CSV 
    | 显示表格

    1)验证平台的I/O外设性能

    硬核处理系统侧的各类外设接口在交予可编程逻辑侧的待测试处理器使用时,由于片内通路较长,需要更多的总线中转,可能会产生一定的性能下降. 对于大多数待验证处理器的功能和性能测试,特别是需要运行Linux的场景,考虑到文件系统通常需要放置在SD/MMC卡或NFS服务器上,并且数据输入和输出也取决于SD/MMC存储介质或网络接口. 为了测试本文所述的原型验证平台是否可以提供足够的网络与SD卡访问能力以满足系统级测试的基本需求,本文基于Plat-B板卡的硬件环境设计了一些典型的比较试验,对验证平台的网络与SDIO这2个典型外设接口进行了性能测试和评估.

    2)验证平台的算力辅助

    在原型验证中,待测处理器软核往往不能以高时钟频率运行. 当待测处理器必须执行一些耗时的计算任务时,长时间的等待往往会给其他后续验证过程带来麻烦. 硬核处理系统侧的ARM处理器可以辅助进行一些较为复杂的计算密集型任务.

    如何提供一个安全可信执行环境是未来处理器设计中的重要发展方向. 在现有可信执行框架下,基于第三代安全散列算法[15-16](secure Hash algorithm 3,SHA-3)的度量操作属于一种计算密集型任务,它占整体运行时间的80.4%. 本文在RISC-V开源处理器核上部署UC Berkley发布的开源可信执行环境Keystone[17-18],探索将SHA-3核心计算任务委托到ARM硬核处理器进行处理的方法,并进行性能评估.

    在Xilinx Zynq UltraScale+ MPSoC设备上,本文分别在硬核处理系统侧使用ARM处理器,在可编程逻辑侧使用待验证处理器核来测试两侧处理器访问通信的各项性能. 网络带宽Inbound(验证平台接收来自外界发送的数据)和Outbound(验证平台向外界发送数据)的情况如表6所示. 实验评估了分别由ARM硬核和RISC-V软核访问SDIO接口时的性能参数,如图7所示,从左到右依次为SDIO接口的带宽、每秒读写操作次数、延迟测试结果.

    表  6  原型验证平台的网络性能评估
    Table  6.  Network Performance Evaluation of Prototype Verification Platform
    数据包
    长度/B
    RISC-V
    Inbound/
    (Mb·s−1
    ARM
    Inbound/
    (Mb·s−1
    RISC-V
    Outbound/
    (Mb·s−1
    ARM
    Outbound/
    (Mb·s−1
    6454.32510.47180
    12855.15010.94322
    25655.39011.87447
    51254.58913.78727
    1K54.08938.42810
    2K56.089311.3921
    4K55.389220.4941
    8K54.889130.5941
    16K54.589341.1941
    32K55.889350.2941
    64K55.489051.3941
    128K55.989151.6941
    下载: 导出CSV 
    | 显示表格
    图  7  原型平台的SDIO性能评估
    Figure  7.  SDIO performance evaluation of prototype platform

    从芯片架构来看,硬核处理系统侧的ARM处理器具有更高的运行主频(1.5GHz),其到网络外设设备的数据和控制路径更短. Inbound和Outbound的测试性能均优于被测的RISC-V. 尽管如此,被测的RISC-V仍然可以保证一定的网络传输带宽,在大多数原型验证工作中不会出现明显的瓶颈,可以满足系统级测试的基本需求.

    基于硬核处理系统侧的ARM处理器来进行SHA-3计算的基本思路如图4所示. ARM可以按RISC-V地址空间,以常规访存方式,通过RISC-V缓存一致性接口读取数据. 执行完成后,通过ARM侧显式地执行缓存写回操作,将ARM侧的运算结果主动通过RISC-V一致性接口直接写回RISC-V内存,无需显式地进行结果数据在ARM与RISC-V内存中的搬移.

    逐一运行Keystone的功能测试集进行算力辅助效果测试. 在实验中RISC-V软核处理器通过Mailbox将用于SHA-3计算的数据块的起始地址信息传递给ARM处理器. ARM运行特定的加速程序对该地址的数据块执行SHA-3计算. ARM辅助计算的方法显著加快了SHA-3计算速度,平均将加解密计算运行时间减少了81.13%. 由于SHA-3的计算得以辅助进行,Keystone框架中各功能测试集的执行时间均显著缩短,如图8所示.

    图  8  原型平台的ARM处理器算力辅助效果评估
    Figure  8.  Evaluation of the computing power’s auxiliary effect of the ARM processor on the prototype platform

    为进一步验证本文所提出的平台在敏捷性方面的改进程度,本文在4.1节所述的在基准平台基础上,分别对3个处理器实例进行移植,如表7所示.

    表  7  整合不同软硬件模块所需要的工作量
    Table  7.  Amount of Work Required to Integrate Different Software and Hardware Modules
    目标处理器平台修改项目与手动改动代码行数
    实例I 基础配置开源 “果壳”处理器[19-20]替换处理器核代码子仓库、总线地址范围;替换启动引导软件栈修改代码量:131行
    实例II 支持脉冲神经网络加速的“果壳”处理器[21]替换处理器核代码子仓库修改代码量:12行
    实例III 支持虚拟化扩展的四核Rocketchip[22]替换处理器核代码子仓库、核数配置项;U-Boot与Linux内核配置项修改代码量:77行
    下载: 导出CSV 
    | 显示表格

    表7所示,当需要实现实例I的目标处理器时,平台在基准Rocketchip环境的基础上,仅需将代码仓库中的处理器核子仓库替换为“果壳”处理器子仓库,根据相应的设计要求修改DRAM起始地址与内存范围,此外考虑到“果壳”处理器核不包含硬件浮点计算单元,需要启动引导软件提供浮点模拟辅助,因此增加BBL(Berkeley boot loader )代码仓库到启动引导软件栈路径下,最后修改顶层软件栈相应编译脚本即可.

    当需要实现实例II的目标处理器时,则以实例I为基础,替换支持脉冲神经网络加速的“果壳”处理器子仓库,继续沿用实例I处理器的其他改动即可直接重新编译并部署新的处理器核到平台上.

    当需要实现实例III的目标处理器时,平台首先将虚拟化扩展的四核Rocketchip子仓库替换基准Rocketchip子仓库,再修改U-Boot与Linux的配置项以支持RISC-V的虚拟化功能即可.

    最后,根据3个实例所需的包括对平台脚本的配置项、Makefile与Tcl脚本代码修改等工作量进行了评估,如表7所示.

    综上,对于以上软硬件层次的需求变更,仅需较少的手动修改工作即可快速整合进平台,开启新一轮的部署与验证迭代.

    处理器芯片设计在投片前需要基于近似真实的软硬件环境,敏捷地进行软硬件系统定义、集成和试错. 为更好地支持敏捷的软硬件协同验证技术,本文提出了一套基于SoC-FPGA的系统级全栈平台,支持主流开源RISC-V处理器软硬件栈,支撑软硬件协同的评测工作.

    未来的工作包括进一步提升平台兼容性,以便为设计规模更大、逻辑结构更为复杂的国产香山RISC-V开源处理器项目[23-24]提供系统级原型环境. 对于香山处理器核所需的可编程逻辑资源规模,现有的SoC-FPGA器件尚不足以提供支持,本文正在探索相关解决方案,以构建逻辑资源规模更大的系统级平台.

    本文所述的敏捷软硬件系统级评估平台已经开放 1,并发布了平台的使用说明 2,欢迎申请试用并提出宝贵建议.

    作者贡献声明:齐乐实施实验并撰写论文;常轶松负责提供实验方案与详细工作思路;陈欲晓和张旭提出相关意见并修改论文;陈明宇、包云岗和张科提供总体指导.

  • 图  1   Co-Transfer训练过程的数据流图

    Figure  1.   Data flow diagram of Co-Transfer training process

    图  2   文本分类任务上各对比算法在迭代过程中的错误率

    Figure  2.   Error rates of the comparative algorithms during their iteration on the text classification tasks

    图  3   不同ND条件下Co-Transfer的错误率

    Figure  3.   Error rates of Co-Transfer with different N and D

    表  1   实验数据集

    Table  1   Experimental Data Sets

    数据集属性数|DS|源域正负比|DT|目标域正负比类别数
    Mushroom2246080.5625/0.437535160.4596/0.54042
    Waveform2117220.5081/0.491915820.494 3/0.50572
    Magic1097180.7075/0.292593020.5865/0.41352
    Splice607950.4591/0.54097400.5432/0.45682
    Orgs vs People477112370.5247/0.475312080.5141/0.48592
    Orgs vs Places441510160.5787/0.421310430.5628/0.43722
    People vs Places456210770.6026/0.397410770.5766/0.42342
    下载: 导出CSV

    表  2   各算法的数据使用策略

    Table  2   Data Strategy Used by the Algorithms

    方法训练数据测试数据
    DSLDSUDTLDTU
    DT×××DTest
    TrAdaBoost××DTest
    Tri-training××/DTest
    TrAdaBoostADTest
    Co-TransferS/×DTest
    TrAdaBoostS×DTest
    Co-TransferT×/DTest
    Co-Transfer//DTest
    注:“×”表示未使用该数据;“/”表示使用该数据但未使用样本的类别标记;“√”则表示使用该数据和全部样本的类别标记.
    下载: 导出CSV

    表  3   在原始源域与原始目标域标记比率均为10%下所对比算法的错误率

    Table  3   Error Rates of the Comparative Algorithms Under the Label Rate 10% of Original Source Domain and Target Domain

    数据集DTTrAdaBoostTri-trainingTrAdaBoostACo-TransferCo-TransferSCo-TransferT
    Mushroom0.004 ★0.006 ★0.004 ★0.0 ○0.0060.006 ★0.006 ★
    Waveform0.198 ●0.145 ●0.190 ●0.160 ●0.1360.147 ●0.138 ★
    Magic0.156 ●0.159 ●0.149 ●0.107 ○0.1390.152 ●0.140 ★
    Splice0.134 ●0.118 ●0.112 ●0.056 ○0.0840.103 ●0.094 ●
    Orgs vs People0.264 ●0.216 ●0.258 ●0.158 ○0.1920.209 ●0.199 ★
    Orgs vs Places0.279 ●0.266 ●0.274 ●0.178 ○0.2290.266 ●0.239 ●
    People vs Places0.274 ●0.228 ●0.264 ●0.154 ○0.1980.236 ●0.209 ★
    平均错误率0.1870.1630.1790.1160.1410.1600.146
    赢/平/输的次数6/1/06/1/06/1/01/0/66/1/02/5/0
    注:“●”或“○”表示有95%的置信度,说明Co-Transfer显著优于或差于所比较的算法;“★”表示Co-Transfer没有以95%的置信度优于所比较的算法.
    下载: 导出CSV

    表  4   在原始源域与原始目标域标记比率均为20%下所对比算法的错误率

    Table  4   Error Rates of the Comparative Algorithms Under the Label Rate 20% of Original Source Domain and Target Domain

    数据集DTTrAdaBoostTri-trainingTrAdaBoostACo-TransferCo-TransferSCo-TransferT
    Mushroom0.002 ★0.001 ★0.002 ★0.0 ○0.0020.002 ★0.002 ★
    Waveform0.173 ●0.148 ●0.169 ●0.160 ●0.1260.145 ●0.131 ★
    Magic0.149 ●0.146 ●0.139 ●0.107 ○0.1220.143 ●0.122 ★
    Splice0.104 ●0.096 ●0.095 ●0.056 ○0.0810.101 ●0.085 ★
    Orgs vs People0.208 ●0.18 ●0.198 ●0.158 ★0.1540.181 ●0.157 ★
    Orgs vs Places0.242 ●0.237 ●0.231 ●0.178 ○0.1950.226 ●0.208 ●
    People vs Places0.217 ●0.206 ●0.199 ●0.154 ○0.170.207 ●0.178 ★
    平均错误率0.1560.1450.1480.1160.1210.1440.126
    赢/平/输的次数6/1/06/1/06/1/01/1/56/1/01/6/0
    注:“●”或“○”表示有95%的置信度,说明Co-Transfer显著优于或差于所比较的算法;“★”表示Co-Transfer没有以95%的置信度优于所比较的算法.
    下载: 导出CSV

    表  5   在原始源域与原始目标域标记比率均为40%下所对比算法的错误率

    Table  5   Error Rates of the Comparative Algorithms Under the Label Rate 40% of Original Source Domain and Target Domain

    数据集DTTrAdaBoostTri-trainingTrAdaBoostACo-TransferCo-TransferSCo-TransferT
    Mushroom0.0 ★0.0 ★0.0 ★0.0 ★0.00.0 ★0.0 ★
    Waveform0.165 ●0.145 ●0.165 ●0.160 ●0.1320.145 ●0.131 ★
    Magic0.142 ●0.135 ●0.130 ●0.107 ★0.1090.132 ●0.112 ★
    Splice0.084 ★0.088 ●0.070 ★0.056 ○0.0770.081 ★0.074 ★
    Orgs vs People0.180 ●0.185 ●0.165 ●0.158 ★0.1550.183 ●0.155★
    Orgs vs Places0.197 ●0.219 ●0.190 ★0.178 ★0.1850.220 ●0.192 ★
    People vs Places0.190 ●0.192 ●0.177 ●0.154 ●0.1420.192 ●0.145 ★
    平均错误率0.1370.1380.1280.1160.1140.1360.116
    赢/平/输的次数5/2/06/1/04/3/02/4/15/2/00/7/0
    注:“●”或“○”表示有95%的置信度,说明Co-Transfer显著优于或差于所比较的算法;“★”表示Co-Transfer没有以95%的置信度优于所比较的算法.
    下载: 导出CSV

    表  6   在原始源域与原始目标域标记比率均为50%下所对比算法的错误率

    Table  6   Error Rates of the Comparative Algorithms Under the Label Rate 50% of Original Source Domain and Target Domain

    数据集DTTrAdaBoostTri-trainingTrAdaBoostACo-TransferCo-TransferSCo-TransferT
    Mushroom0.0 ★0.0 ★0.0 ★0.0 ★0.00.0 ★0.0 ★
    Waveform0.169 ●0.151 ●0.167 ●0.160 ●0.1390.152 ●0.139 ★
    Magic0.141 ●0.137 ●0.130 ●0.107 ★0.1080.129 ●0.108 ★
    Splice0.081 ●0.080 ●0.069 ★0.056 ○0.0710.071 ★0.070 ★
    Orgs vs People0.170 ●0.199 ●0.162 ●0.158 ★0.1490.182 ●0.151 ★
    Orgs vs Places0.188 ●0.214 ●0.168 ★0.178 ★0.1760.212 ●0.175 ★
    People vs Places0.183 ●0.200 ●0.166 ●0.154 ●0.1350.183 ●0.143 ★
    平均错误率0.1330.1400.1230.1160.1110.1330.112
    赢/平/输的次数6/1/06/1/04/3/02/4/15/2/00/7/0
    注:“●”或“○”表示有95%的置信度,说明Co-Transfer显著优于或差于所比较的算法;“★”表示Co-Transfer没有以95%的置信度优于所比较的算法.
    下载: 导出CSV

    表  7   不同标记比率下TrAdaBoost与TrAdaBoostS算法的错误率

    Table  7   Error Rates of TrAdaBoost and TrAdaBoostS Under Different Label Rates

    数据集10%标记比例20%标记比例40%标记比例50%标记比例
    TrAdaBoostTrAdaBoostSTrAdaBoostTrAdaBoostSTrAdaBoostTrAdaBoostSTrAdaBoostTrAdaBoostS
    Mushroom0.006 ★0.0050.001 ★0.0020.0 ★0.00.0 ★0.0
    Waveform0.145 ★0.1480.148 ★0.1430.145 ★0.1480.151 ★0.157
    Magic0.159 ★0.1570.146 ★0.1450.135 ★0.130.137 ★0.138
    Splice0.118 ●0.0980.096 ★0.0970.088 ●0.0750.08 ★0.079
    Orgs vs People0.216 ●0.1990.18 ★0.1720.185 ★0.1890.199 ★0.185
    Orgs vs Places0.266 ★0.2620.237 ●0.2150.219 ★0.2260.214 ★0.222
    People vs Places0.228 ★0.2210.206 ○0.2230.192 ★0.1820.2 ●0.175
    平均错误率0.1630.1560.1450.1420.1380.1360.140.137
    注:“●”或“○”表示有95%的置信度,说明TrAdaBoostS显著优于或差于TrAdaBoost;“★”表示TrAdaBoostS没有以95%的置信度优于TrAdaBoost.
    下载: 导出CSV

    表  8   在原始源域标记比率为50%、原始目标域标记比率为10%下所有对比算法的错误率

    Table  8   Error Rates of the Comparative Algorithms Under the Label Rate 50% of the Original Source Domain and 10% of the Original Target Domain

    数据集DTTrAdaBoostTri-trainingTrAdaBoostACo-TransferCo-TransferSCo-TransferT
    Mushroom0.004 ★0.006 ★0.004 ★0.0 ○0.0060.006 ★0.005 ★
    Waveform0.198 ●0.147 ●0.190 ●0.160 ●0.1310.148 ●0.140 ●
    Magic0.156 ●0.156 ●0.149 ●0.107 ○0.1370.154 ●0.140 ★
    Splice0.134 ●0.109 ●0.112 ●0.056 ○0.0790.106 ●0.085 ★
    Orgs vs People0.264 ●0.216 ●0.258 ●0.158 ○0.1860.212 ●0.194 ★
    Orgs vs Places0.279 ●0.254 ●0.274 ●0.178 ○0.2200.257 ●0.234 ●
    People vs Places0.274 ●0.222 ●0.264 ●0.154 ○0.1960.221 ●0.208 ★
    平均错误率0.1870.1590.1790.1160.1360.1580.144
    赢/平/输的次数6/1/06/1/06/1/01/0/66/1/02/5/0
    注:“●”或“○”表示有95%的置信度,说明Co-Transfer显著优于或差于所比较的算法;“★”表示Co-Transfer没有以95%的置信度优于所比较的算法.
    下载: 导出CSV

    表  9   在原始源域标记比率为50%、原始目标域标记比率为20%下所有对比算法的错误率

    Table  9   Error Rates of the Comparative Algorithms Under the Label Rate 50% of the Original Source Domain and 20% of the Original Target Domain

    数据集DTTrAdaBoostTri-trainingTrAdaBoostACo-TransferCo-TransferSCo-TransferT
    Mushroom0.002 ★0.003 ★0.002 ★0.0 ○0.0010.002 ★0.002 ★
    Waveform0.173 ●0.149 ●0.169 ●0.160 ●0.1330.142 ●0.130 ★
    Magic0.149 ●0.143 ●0.139 ●0.107 ○0.1240.144 ●0.123 ★
    Splice0.104 ●0.091 ●0.095 ●0.056 ○0.0820.094 ●0.077 ★
    Orgs vs People0.208 ●0.176 ★0.198 ●0.158 ○0.1680.177 ●0.174 ★
    Orgs vs Places0.242 ●0.234 ●0.231 ●0.178 ○0.1950.231 ●0.2 ★
    People vs Places0.217 ●0.216 ●0.199 ●0.154 ○0.1730.204 ●0.179 ★
    平均错误率0.1560.1450.1480.1160.1270.1420.124
    赢/平/输的次数6/1/05/2/06/1/01/6/05/2/00/7/0
    注:“●”或“○”表示有95%的置信度,说明Co-Transfer显著优于或差于所比较的算法;“★”表示Co-Transfer没有以95%的置信度优于所比较的算法.
    下载: 导出CSV

    表  10   在原始源域标记比率为50%、原始目标域标记比率分别为10%和20%下TrAdaBoost与TrAdaBoostS的错误率

    Table  10   Error Rates of TrAdaBoost and TrAdaBoostS Under the Label Rate 50% of the Original Source Domain and 10% and 20% of the Original Target Domain, Respectively

    数据集源域50%, 目标域10%源域50%, 目标域20%
    TrAdaBoostTrAdaBoostSTrAdaBoostTrAdaBoostS
    Mushroom0.006 ★0.0050.003 ★0.002
    Waveform0.147 ★0.1480.149 ★0.143
    Magic0.156 ★0.1570.143 ★0.145
    Splice0.109 ★0.0980.091 ★0.097
    Orgs vs People0.216 ●0.1990.176 ★0.172
    Orgs vs Places0.254 ★0.2620.234 ●0.215
    People vs Places0.222 ★0.2210.216 ★0.223
    平均错误率0.1590.1560.1450.142
    注:“●”或“○”表示有95%的置信度,说明TrAdaBoostS显著优于或差于TrAdaBoost;“★”表示TrAdaBoostS没有以95%的置信度优于TrAdaBoost.
    下载: 导出CSV
  • [1]

    Pan S, Yang Qiang. A survey on transfer learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10): 1345−1359 doi: 10.1109/TKDE.2009.191

    [2]

    Zhuang Fuzhen, Qi Zhiyuan, Duan Keyu, et al. A comprehensive survey on transfer learning[J]. Proceedings of the IEEE, 2020, 109(1): 43−76

    [3]

    Liu Xiaobo, Zhang H, Cai Zhihua, et al. A Tri-training based transfer learning algorithm[C]//Proc of the 24th Int Conf on Tools with Artificial Intelligence. Piscataway. NJ: IEEE, 2012: 698−703

    [4]

    Tang Yejun, Wu Bin, Peng Liangrui, et al. Semi-supervised transfer learning for convolution neural network based Chinese character recognition[C]//Proc of the 14th IAPR Int Conf on Document Analysis and Recognition (ICDAR). Piscataway, NJ: IEEE, 2017: 441−447

    [5]

    Abuduweili A, Li Xingjian, Shi H, et al. Adaptive consistency regularization for semi-supervised transfer learning[C]//Proc of the 34th IEEE/CVF Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2021: 6923−6932

    [6]

    Wei Wei, Meng Deyu, Zhao Qian, et al. Semi-supervised transfer learning for image rain removal[C]//Proc of the 32nd IEEE/CVF Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2019: 3877−3886

    [7]

    Chebli A, Djebbar A, Marouani H. Semi-supervised learning for medical application: A survey[C]//Proc of the 9th Int Conf on Applied Smart Systems (ICASS). Piscataway, NJ: IEEE, 2018: 1−9

    [8]

    Mohanasundaram R, Malhotra A, Arun R, et al. Deep Learning and Semi-supervised and Transfer Learning Algorithms for Medical Imaging[M]// Deep Learning and Parallel Computing Environment for Bioengineering Systems. New York: Academic Press, 2019: 139−151

    [9]

    Liu Quande, Yu Lequan, Luo Luyang, et al. Semi-supervised medical image classification with relation-driven self-ensembling model[J]. IEEE Transactions on Medical Imaging, 2020, 39(11): 3429−3440 doi: 10.1109/TMI.2020.2995518

    [10]

    Liu Qinhua, Liao Xuejun, Li Hui, et al. Semi-supervised multitask learning[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008, 31(6): 1074−1086

    [11]

    Skolidis G, Sanguinetti G. Semisupervised multitask learning with Gaussian processes[J]. IEEE Transactions on Neural Networks and Learning Systems, 2013, 24(12): 2101−2112 doi: 10.1109/TNNLS.2013.2272403

    [12]

    Naji K, Ulas B. Semi-supervised multi-task learning for lung cancer diagnosis[C]//Proc of the 40th Annual Int Conf of the IEEE Engineering in Medicine and Biology Society. Piscataway, NJ: IEEE, 2018: 710−713

    [13]

    Chu Xu, Lin Yang, Wang Yasha, et al. Mlrda: A multi-task semi-supervised learning framework for drug-drug interaction prediction[C]//Proc of the 28th Int Joint Conf on Artificial Intelligence. New York: ACM, 2019: 4518−4524

    [14]

    Qi Qi, Wang Xiaolu, Sun Haifeng, et al. A novel multi-task learning framework for semi-supervised semantic parsing[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2020, 28: 2552−2560 doi: 10.1109/TASLP.2020.3018233

    [15]

    Van Engelen J, Hoos H. A survey on semi-supervised learning[J]. Machine Learning, 2020, 109(2): 373−440 doi: 10.1007/s10994-019-05855-6

    [16] 许勐璠,李兴华,刘海,等. 基于半监督学习和信息增益率的入侵检测方案[J]. 计算机研究与发展,2017,54(10):2255−2267 doi: 10.7544/issn1000-1239.2017.20170456

    Xu Mengfan, Li Xinghua, Liu Hai, et al. An intrusion detection scheme based on semi-supervised learning and information gain ratio[J]. Journal of Computer Research and Development, 2017, 54(10): 2255−2267 (in Chinese) doi: 10.7544/issn1000-1239.2017.20170456

    [17]

    Dai Wenyuan, Yang Qiang, Xue Guirong, et al. Boosting for transfer learning[C]//Proc of the 24th Int Conf on Machine Learning (ICML '07). New York: ACM, 2007: 193–200

    [18]

    Zhou Zhihua, Li Ming. Tri-training: Exploiting unlabeled data using three classifiers[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(11): 1529−1541 doi: 10.1109/TKDE.2005.186

    [19]

    Bache K, Lichman M. UCI machine learning repository [DB/OL]. 2013[2022-06-08].https://archive.ics.uci.edu/ml/index.php

    [20]

    Scrucca L. A fast and efficient modal EM algorithm for Gaussian mixtures[J]. The ASA Data Science Journal:Statistical Analysis and Data Mining, 2021, 14(4): 305−314 doi: 10.1002/sam.11527

    [21]

    Li Ming, Zhou Zhihua. Improve computer-aided diagnosis with machine learning techniques using undiagnosed samples[J]. IEEE Transactions on Systems, Man, and Cybernetics-Part A:Systems and Humans, 2007, 37(6): 1088−1098 doi: 10.1109/TSMCA.2007.904745

    [22]

    Cervantes J, Garcia-Lamont F, Rodriguez-Mazahua L, et al. A comprehensive survey on support vector machine classification: Applications, challenges and trends[J]. Neurocomputing, 2020, 408: 189−215 doi: 10.1016/j.neucom.2019.10.118

    [23]

    Shimomura L, Oyamada R, Vieira M et al. A survey on graph-based methods for similarity searches in metric spaces[J]. Information Systems, 2021, 95: 101507 doi: 10.1016/j.is.2020.101507

    [24]

    Blum A, Mitchell T. Combining labeled and unlabeled data with co-training[C]//Proc of the 8th Annual Conf on Computational Learning Theory. New York: ACM, 1998: 92−100

    [25]

    Dasgupta S, Littman M, McAllester D. PAC generalization bounds for co-training[C]//Proc of the 14th Int Conf on Neural Information Processing Systems. Cambridge, MA: MIT Press, 2002: 375−382

    [26]

    Triguero I, García S, Herrera F. Self-labeled techniques for semi-supervised learning: Taxonomy, software and empirical study[J]. Knowledge and Information Systems, 2015, 42(2): 245−284 doi: 10.1007/s10115-013-0706-y

    [27]

    Kamishima T, Hamasaki M, Akaho S. TrBagg: A simple transfer learning method and its application to personalization in collaborative tagging[C]//Proc of the 9th IEEE Int Conf on Data Mining. Piscataway, NJ: IEEE, 2009: 219−228

    [28]

    Shi Yuan, Lan Zhenzhong, Liu Wei, et al. Extending semi-supervised learning methods for inductive transfer learning[C]//Proc of the 9th IEEE Int Conf on Data Mining. Piscataway, NJ: IEEE, 2009: 483−492

    [29] 刘壮,刘畅,Wayne L,等. 用于金融文本挖掘的多任务学习预训练金融语言模型[J]. 计算机研究与发展,2021,58(8):1761−1772 doi: 10.7544/issn1000-1239.2021.20210298

    Liu Zhuang, Liu Chang, Wayne L, et al. Pretraining financial language model with multi-task learning for financial text mining[J]. Journal of Computer Research and Development, 2021, 58(8): 1761−1772 (in Chinese) doi: 10.7544/issn1000-1239.2021.20210298

  • 期刊类型引用(4)

    1. 王彦伟,李仁刚,徐冉,刘钧锴. 基于可重构架构的数据中心异构加速软硬件系统级平台. 计算机研究与发展. 2025(04): 963-977 . 本站查看
    2. 刘晨,邱芃尧. 基于无剑100 SoC的双核TEE安全系统构建. 电子器件. 2024(05): 1169-1172 . 百度学术
    3. 叶朝辉,张仁刚,赵腾浩,程雪珂. 基于RISC-V的SOPC电子系统设计实验研究. 实验技术与管理. 2023(11): 71-75 . 百度学术
    4. 王硕,苏峰,黄赜. FPGA软件开发系统布局模块探讨. 电子元器件与信息技术. 2023(09): 26-29 . 百度学术

    其他类型引用(1)

图(3)  /  表(10)
计量
  • 文章访问数:  247
  • HTML全文浏览量:  27
  • PDF下载量:  138
  • 被引次数: 5
出版历程
  • 收稿日期:  2022-03-17
  • 修回日期:  2022-07-12
  • 网络出版日期:  2023-02-28
  • 刊出日期:  2023-06-30

目录

/

返回文章
返回