通过模块化与组合复用卷积神经网络模型
摘要
随着深度学习技术的广泛成功,许多训练好的深度神经网络(DNN)模型现已公开可用。然而,由于功能或性能不匹配,直接复用公开的DNN模型用于新任务常常失败。受软件复用中模块化与组合概念的启发,我们研究了以更细粒度提高DNN模型复用性的可能性。具体而言,我们提出两种名为CNNSplitter和GradSplitter的模块化方法,它们可将训练好的用于类分类的卷积神经网络(CNN)模型分解为个小的可复用模块。每个模块识别类中的一类,并包含训练好的CNN模型的一部分卷积核。然后,所得模块可通过组合用于修补现有CNN模型或构建新的CNN模型。CNNSplitter与GradSplitter的主要区别在于其搜索方法:前者依赖遗传算法探索搜索空间,后者利用基于梯度的搜索方法。我们在三个广泛使用公开数据集上对三种代表性CNN的实验证明了所提方法的有效性。与CNNSplitter相比,GradSplitter引起的精度损失更小,产生的模块更小(卷积核减少19.88%),并在修补弱模型上取得更好结果。特别地,GradSplitter上的实验表明:(1)通过修补弱模型,精确率、召回率和F1-score的平均提升分别为17.13%、4.95%和11.47%;(2)对于新任务,与从头训练的模型相比,复用模块在不付出昂贵训练过程的情况下达到了相似精度(平均精度损失仅2.46%)。我们的方法为CNN模型的快速开发与改进提供了可行方案。
引用
@article{arxiv.2311.04438,
title = {Reusing Convolutional Neural Network Models through Modularization and Composition},
author = {Binhang Qi and Hailong Sun and Hongyu Zhang and Xiang Gao},
journal= {arXiv preprint arXiv:2311.04438},
year = {2023}
}
备注
Accepted by ACM Transactions on Software Engineering and Methodology (TOSEM). arXiv admin note: substantial text overlap with arXiv:2209.06116