知识重组与可迁移性

知识重组与蒸馏

1. Layer-wise Knowledge Amalgamation

逐层的知识重组算法,用于多个同构分类网络的重组,重组网络具备所有输入网络的分类能力。

论文链接:https://arxiv.org/abs/1811.02796v1

Layer-wise Knowledge Amalgamation 算法框架
Layer-wise Knowledge Amalgamation 算法框架

2. Task Branching

适用于多任务场景解析的重组算法,其目标是重组多个独立网络学习到的特征,构建一个更高效的多任务网络。算法的输入是多个独立的场景解析模型,输出是一个分杈的多任务模型,算法会根据不同分杈配置的效果自动搜索合适的分杈结构。

论文链接:https://arxiv.org/abs/1904.10167

Task Branching 算法框架
Task Branching 算法框架

3. Common Feature Learning

共同特征提取算法,用于多个任意结构的分类器重组。输入为任意数量的同构分类器,输出分类器具备所有输入网络的分类能力。

论文链接:https://arxiv.org/abs/1906.10546

共同特征提取
共同特征提取

4. AutoPruning

自动剪枝算法,该算法会根据用户给定的目标模型规模,对输入的模型进行剪枝以及训练。

论文链接:https://arxiv.org/abs/1608.08710

5. Knowledge Distillation

基本的知识蒸馏算法,利用预训练网络对数据进行标注得到软标签,并使用软标签训练新的学生网络。

论文链接:https://arxiv.org/abs/1503.02531

可迁移性度量算法

1. Deep Model Transferability from Attribution Maps

基于模型属性图(Attribution Maps)来估计模型间可迁移性的算法。模型属性图为输入和梯度的点乘,反应了输入图像上各个像素对网络中特征的重要程度,由此属性图之间的差异可以作为一种可迁移性的评估指标。

论文链接:https://arxiv.org/abs/1909.11902

KamalEngine 架构
KamalEngine 架构

2. DEPARA: Deep Attribution Graph for Deep Knowledge Transferability

DEPARA算法在大量的无标注数据上获取属性图(Attribution Maps),并构建属性图之间的距离关系,利用距离关系的相似性来反应不同模型间的可迁移性。

论文链接:https://arxiv.org/abs/2003.07496

KamalEngine 架构
KamalEngine 架构

KamalEngine提供了两种模型度量的计算接口,分别是 AttributionMap 和 AttributionGraph,计算两个模型间的可迁移性需要一组图像数据作为探针(Probe),以下例子使用随机噪声图像作为探针计算两个模型间可迁移性:

from captum.attr import InputXGradient
from torchvision.models import resnet34
from kamal.transferability import depara
import torch
model_A = resnet34(num_classes=10) # 模型A
graph_A = depara.get_attribution_graph( # 计算模型A的AttributionGraph
model_A,
attribution_type=InputXGradient,
with_noise=False,
probe_data=torch.rand(10, 3, 244, 244),
device=torch.device("cpu")
)
model_B = resnet34(num_classes=10) # 模型B
graph_B = depara.get_attribution_graph( # 计算模型B的AttributionGraph
model_B,
attribution_type=InputXGradient,
with_noise=False,
probe_data=torch.rand(10, 3, 244, 244),
device=torch.device("cpu")
)
print(depara.graph_similarity(graph_A, graph_B)) #比较Graph的差异,获得最终的模型相似度

通过计算模型之间的可迁移性,可以得到模型迁移性图谱,通过前端平台对模型图谱进行可视化:

模型图谱可视化
模型图谱可视化
Last updated on