
本书从初学者角度出发,以"讲课”的形式,归纳分析各类迁移学习方法,使读者能快速理解迁移学习的本质问题、抓住重点、举一反三、迅速入门。它的一大亮点是对"两头"的把握:一是源头,抓问题和场景,做到"师出有名”,讲清楚针对什么问题、用在哪里;二是笔头,抓代码与实践,做到"落地结果”,在实战中巩固和深化对技术的理解。本书同时配套丰富的在线学习资源。
《迁移学习导论》的初版于2021 年初夏时节问世。看到《导论》受到众多读者的喜爱,笔者亦觉十分欣喜和感激。显然,这并不是结束,而是另一个开始。我们持续秉承着精益求精、事无巨细的态度在微信群、微信公众号、知乎、GitHub 等平台解答读者的疑问;同时,我们也一直倾听读者的反馈,务求使本书变得更好。经过将近一年的总结、思考和倾听,我们意识到现在有必要对此书重新进行整理,以求读者能看到更加完美的版本。 在此新版本中,我们基于初版读者的反馈对初版进行了大刀阔斧的修改:添加了新的内容、调整了内容结构使其更易阅读、加入了新的应用实践代码使其更易上手、并重新整理修改了所有代码保证了可复现性。 新版本对比初版有诸多不同。从大的方面讲,新版只包括三大部分:第1章为“迁移学习的基础”部分,第8 章到第14 章为“现代迁移学习”部分,第15 章到第19 章为“迁移学习的应用实践”部分。简单来说,新版比初版有着更好的结构、更多的内容、更精炼的语言、以及更多的实例。 具体而言,新版本和初版的不同之处主要有: ? 新增:“安全鲁棒的迁移学习”一章,包括安全迁移学习、无需源数据的迁移学习等新主题和联邦学习等更丰富的内容,在新版第12 章; ? 新增:“复杂环境中的迁移学习”一章,包括迁移学习模型压缩等新内容及修改的“迁移学习热门研究领域”一章的内容,在新版第13 章; ? 新增:“低资源学习”一章,包括新增的迁移学习模型压缩、半监督学习、以及自监督学习等新主题,以及修改了第一版元学习一章的内容,在新版第14 章; ? 新增:迁移学习在计算机视觉、自然语言处理、语音识别、行为识别、健康监护五个方面的代码实践,在新版第15 至19 章。 ? 新增:迁移学习模型评测,在新版第7 章; ? 新增:迁移学习中的正则,在新版第8 章; 第二版前言 ? 新增:基于最大分类器差异的对抗迁移方法,在新版第10 章; ? 新增:更全面的领域泛化的方法,在新版第11 章; ? 新增:领域泛化的理论介绍,在新版第11 章; ? 调整:全新整理的每章代码和数据集仓库,更好地上手实践复现; ? 调整:将初版的2、3、4 章部分内容合并为一章,在新版第2 章; ? 调整:将初版的第15 章调整到第1 章的应用部分; ? 调整:将初版第4 章“迁移学习理论”部分与第14 章“迁移学习模型选择”部分合并为一章,在新版第7 章; ? 调整:为方便参考,将每章的参考文献单独放在章节之后; ? 修改:修改了所有之前的内容表述和存在的错误之处。 我们衷心地希望新版本的《迁移学习导论》能够成为每一个对迁移学习感兴趣的人最喜欢的读物。愿“导论如解意,陪你上青云”。 作者 2022 年3 月
第I 部分迁移学习基础 1 绪论3 1.1 迁移学习3 1.2 相关研究领域7 1.3 迁移学习的必要性8 1.3.1 大数据与少标注之间的矛盾9 1.3.2 大数据与弱计算能力的矛盾9 1.3.3 有限数据与模型泛化能力的矛盾.10 1.3.4 普适化模型与个性化需求的矛盾.11 1.3.5 特定应用的需求 11 1.4 迁移学习的研究领域12 1.4.1 按特征空间分类 13 1.4.2 按目标域有无标签分类 13 1.4.3 按学习方法分类 13 1.4.4 按离线与在线形式分类 14 1.5 学术界和工业界中的迁移学习15 1.6 迁移学习的应用18 1.6.1 计算机视 觉19 1.6.2 自然语言处理 21 1.6.3 语音识别与合成 23 1.6.4 普适计算与人机交互25 1.6.5 医疗健康 28 1.6.6 其他应用领域30 参考文献 2 从机器学习到迁移学习48 2.1 机器学习基础48 2.1.1 机器学习概念48 2.1.2 结构风险最小化 49 2.1.3 数据的概率分布 50 2.2 迁移学习定义52 2.3 迁移学习基本问题 55 2.3.1 何时迁移 55 2.3.2 何处迁移 56 2.3.3 如何迁移 58 2.4 失败的迁移:负迁移 58 2.5 一个完整的迁移学习过程 60 参考文献61 3 迁移学习方法总览63 3.1 分布差异的度量 63 3.2 分布差异的统一表征66 3.2.1 分布自适应因子的计算 67 3.3 迁移学习方法统一表征68 3.3.1 样本权重迁移法 70 3.3.2 特征变换迁移法 70 3.3.3 模型预训练迁移法 71 3.4 上手实践72 3.4.1 数据准备 .73 3.4.2 基准模型构建:KNN 75 参考文献76 4 样本权重迁移法78 4.1 问题定义78 4.2 基于样本选择的方法 80 4.2.1 基于非强化学习的样本选择法 81 4.2.2 基于强化学习的样本选择法82 4.3 基于权重自适应的方法 83 4.4 上手实践 85 4.5 小结 88 参考文献88 5 统计特征变换迁移法93 5.1 问题定义93 5.2 最大均值差异法94 5.2.1 基本概念 94 5.2.2 基于最大均值差异的迁移学习96 5.2.3 求解与计算 99 5.2.4 应用与扩展 101 5.3 度量学习法102 5.3.1 度量学习 102 5.3.2 基于度量学习的迁移学习 104 5.4 上手实践 105 5.5 小结108 参考文献108 6 几何特征变换迁移法 111 6.1 子空间变换法111 6.1.1 子空间对齐法112 6.1.2 协方差对齐法113 6.2 流形空间变换法 114 6.2.1 流形学习 114 6.2.2 基于流形学习的迁移学习方法 115 6.3 最优传输法 118 6.3.1 最优传输 118 6.3.2 基于最优传输法的迁移学习方法 119 6.4 上手实践 121 6.5 小结 122 参考文献 123 7 迁移学习理论、评测与模型选择125 7.1 迁移学习理论 125 7.1.1 基于H-divergence 的理论分析 126 7.1.2 基于HΔH-distance 的理论分析.128 7.1.3 基于差异距离的理论分析 129 7.1.4 结合标签函数差异的理论分析 130 7.2 迁移学习评测 131 7.3 迁移学习模型选择132 7.3.1 基于密度估计的模型选择 133 7.3.2 迁移交叉验证133 7.4 小结134 参考文献 135 第II 部分现代迁移学习 8 预训练– 微调 139 8.1 深度神经网络的可迁移性 140 8.2 预训练??微调 143 8.2.1 预训练– 微调的有效性 144 8.3 迁移学习中的正则 145 8.4 预训练模型用于特征提取148 8.5 学习如何微调 149 8.6 上手实践 151 8.7 小结 155 参考文献155 9 深度迁移学习 158 9.1 总体思路159 9.2 深度迁移学习的网络结构160 9.2.1 单流结构 161 9.2.2 双流结构 161 9.3 数据分布自适应方法163 9.4 结构自适应的深度迁移学习方法165 9.4.1 基于批归一化的迁移学习 165 9.4.2 基于多表示学习的迁移网络结构.166 9.4.3 基于解耦的深度迁移方法 168 9.5 知识蒸馏 169 9.6 上手实践170 9.6.1 网络结构 171 9.6.2 迁移损失 174 9.6.3 训练和测试 179 9.7 小结183 参考文献184 10 对抗迁移学习 187 10.1 生成对抗网络与迁移学习187 10.2 数据分布自适应的对抗迁移方法189 10.3 基于最大分类器差异的对抗迁移方法192 10.4 基于数据生成的对抗迁移方法 194 10.5 上手实践195 10.5.1 领域判别器 195 10.5.2 分布差异计算 .196 10.5.3 梯度反转层 197 10.6 小结198 参考文献198 11 迁移学习的泛化200 11.1 领域泛化200 11.2 基于数据操作的领域泛化方法203 11.2.1 数据增强和生成方法 203 11.2.2 基于Mixup 的数据生成方法 .205 11.3 领域不变特征学习206 11.3.1 核方法:领域不变成分分析 .206 11.3.2 深度领域泛化方法.208 11.3.3 特征解耦 210 11.4 用于领域泛化的不同学习策略212 11.4.1 基于集成学习的方法 212 11.4.2 基于元学习的方法213 11.4.3 用于领域泛化的其他学习范式 215 11.5 领域泛化理论215 11.5.1 平均风险预估误差上界 215 11.5.2 泛化风险上界217 11.6 上手实践17 11.6.1 数据加载 218 11.6.2 训练和测试 220 11.6.3 示例方法:ERM 和CORAL.222 11.7 小结225 参考文献225 12 安全和鲁棒的迁移学习232 12.1 安全迁移学习232 12.1.1 迁移学习模型可以被攻击吗233 12.1.2 抵制攻击的方法233 12.1.3 ReMoS:一种新的安全迁移学习方法 235 12.2 联邦学习和迁移学习 238 12.2.1 联邦学习 238 12.2.2 面向非独立同分布数据的个性化联邦学习 241 12.2.3 模型自适应的个性化迁移学习 242 12.2.4 基于相似度的个性化联邦学习 243 12.3 无需源数据的迁移学习244 12.3.1 信息最大化方法 246 12.3.2 特征匹配方法 247 12.4 基于因果关系的迁移学习248 12.4.1 什么是因果关系 248 12.4.2 因果关系与迁移学习 250 12.5 小结254 参考文献254 13 复杂环境中的迁移学习 260 13.1 类别非均衡的迁移学习260 13.2 多源迁移学习263 13.3 开放集迁移学习265 13.4 时间序列迁移学习267 13.4.1 AdaRNN:用于时间序列预测的迁移学习 269 13.4.2 DIVERSIFY:用于时间序列分类的迁移学习271 13.5 在线迁移学习 273 13.6 小结276 参考文献276 14 低资源学习281 14.1 迁移学习模型压缩 281 14.2 半监督学习284 14.2.1 一致性正则化方法285 14.2.2 伪标签和阈值法 287 14.3 元学习290 14.3.1 基于模型的元学习方法 .292 14.3.2 基于度量的元学习方法 .293 14.3.3 基于优化的元学习方法 .295 14.4 自监督学习 297 14.4.1 构造辅助任务 .298 14.4.2 对比自监督学习 .299 14.5 小结300 参考文献301 第III 部分迁移学习的应用与实践 15 计算机视觉中的迁移学习实践309 15.1 目标检测309 15.1.1 任务与数据 309 15.1.2 加载数据 310 15.1.3 模型 313 15.1.4 训练和测试 313 15.2 神经风格迁移315 15.2.1 数据加载 315 15.2.2 模型 316 15.2.3 训练 317 参考文献319 16 自然语言处理中的迁移学习实践320 16.1 情绪分类任务及数据集320 16.2 模型322 16.3 训练和测试323 16.4 预训练??微调324 参考文献325 17 语音识别中的迁移学习实践326 17.1 跨领域语音识别 326 17.1.1 语音识别中的迁移损失 327 17.1.2 CMatch 算法实现.328 17.1.3 实验及结果 332 17.2 跨语言语音识别333 17.2.1 适配器模块 334 17.2.2 基于适配器进行跨语言语音识别335 17.2.3 算法:MetaAdapter 和SimAdapter .336 17.2.4 结果与讨论 337 参考文献339 18 行为识别中的迁移学习实践340 18.1 任务及数据集340 18.2 特征提取341 18.3 源域选择342 18.4 使用TCA 方法进行非深度迁移学习344 18.5 深度迁移学习用于跨位置行为识别345 参考文献350 19 医疗健康中的联邦迁移学习实践351 19.1 任务和数据集351 19.1.1 模型结构 355 19.2 联邦学习基础算法FedAvg 356 19.2.1 客户端更新 357 19.2.2 服务器端更新 .357 19.2.3 结果 358 19.3 个性化联邦学习算法AdaFed 359 19.3.1 相似度矩阵计算 .359 19.3.2 服务器端通信 .361 19.3.3 结果 362 参考文献362 20 回顾与展望364 参考文献367 附录368 常用度量准则368 常见的几种距离 .368 余弦相似度 .369 互信息.369 相关系数 .369 KL 散度与JS 距离 370 最大均值差异MMD .370 Principal Angle .371 A-distance 371 Hilbert-Schmidt Independence Criterion 371 Wasserstein Distance 372 常用数据集372 手写体识别图像数据集 373 对象识别数据集 .374 图像分类数据集 .374 通用文本分类数据集.375 行为识别公开数据集.375 相关期刊会议376 迁移学习资源汇总377 参考文献378