一句话:提出将CNN按输出类分解为模块,使其可复用、替换,并显著减少重训成本与碳排放。
本文关注卷积神经网络(CNN)模型的重用与替换问题:能否不从头训练,而是把已有模型按输出类别拆分为模块,再复用或替换目标类别模块来构建新模型?已有工作仅针对全连接网络,依赖相邻层节点一一对应,无法直接处理具有共享架构的 CNN。作者提出将图像分类 CNN 分解为每个输出类别对应的模块,并支持模块级复用与替换。在 CIFAR-10、CIFAR-100 与 ImageNet tiny 上,使用三种 ResNet 变体评估:分解带来 top-1 1.77%、top-5 0.85% 的精度损失;通过复用/替换模块构建模型平均损失 2.3% 和 0.5%;相比从头训练减少约 37 倍 CO2e 排放。
Training from scratch is the most common way to build a Convolutional Neural Network (CNN) based model. What if we can build new CNN models by reusing parts from previously built CNN models? What if we can improve a CNN model by replacing (possibly faulty) parts with other parts? In both cases, instead of training, can we identify the part responsible for each output class (module) in the model(s) and reuse or replace only the desired output classes to build a model? Prior work has proposed decomposing dense-based networks into modules (one for each output class) to enable reusability and replace ability in various scenarios. However, this work is limited to the dense layers and is based on the one-to-one relationship between the nodes in consecutive layers. Due to the shared architecture in the CNN model, prior work cannot be adapted directly. In this paper, we propose to decompose a CNN model used for image classification problems into modules for each output class. These modules can further be reused or replaced to build a new model. We have evaluated our approach with CIFAR-10, CIFAR-100, and ImageNet tiny datasets with three variations of ResNet models and found that enabling decomposition comes with a small cost (1.77% and 0.85% for top-1 and top-5 accuracy, respectively). Also, building a model by reusing or replacing modules can be done with a 2.3% and 0.5% average loss of accuracy. Furthermore, reusing and replacing these modules reduces CO2e emission by ~37 times compared to training the model from scratch.