本文解释 直推式学习(Transductive Learning) 和 归纳式学习(Inductive Learning) 的区别
归纳式学习 (Inductive Learning)
- 一句话定义 :通过训练数据学习一个通用的模型 ,然后将该模型应用于未知的测试数据
- 目标 :从具体样本中归纳(名字来源)出一般规律,适用于任何未来的数据
- 特点 :
- 训练阶段和测试阶段是分开的
- 模型在训练时不知道测试数据的具体情况
- 典型场景 :大多数监督学习任务(如图像分类、文本分类等)
- 核心特点 :训练时测试数据不可见
直推式学习 (Transductive Learning)
- 一句话定义 :利用训练数据和特定的测试数据(未标注)共同学习,直接(名字来源)预测这些测试数据的标签
- 目标 :针对当前已知的测试数据优化预测,而非构建通用模型
- 特点 :
- 训练时已知测试数据的特征(但无标签),利用这些信息优化预测
- 模型仅适用于当前的测试数据,不能直接泛化到新数据
- 典型场景 :半监督学习、图节点分类(如社交网络用户分类)
- 核心特点 :训练时测试数据可见
附录:举例-垃圾邮件分类
- 任务定义 :判断邮件是否为垃圾邮件
归纳式学习
- 仅用已标注的训练数据(带“垃圾/正常”标签的邮件)训练一个模型(如SVM、神经网络)
- 将模型应用于未来收到的任何新邮件
直推式学习
- 同时利用已标注邮件和未标注邮件的特征分布(如词频、发件人)训练模型
- 模型发现未标注邮件中某些特征与训练数据中的垃圾邮件相似,直接预测它们的标签
- 特别说明 :模型针对这批特定的测试邮件优化 ,但不保证对新邮件的效果
为什么需要直推式学习?
- 一般来说,大部分场景都使用归纳式学习即可
- 当测试数据分布与训练数据分布不同时,直推式学习可以通过利用测试数据的特征分布提升当前任务的性能,但牺牲泛化性
- 特别地,当训练数据和测试数据本身具有一定结构(如图数据、时空数据)时,直推式学习可以利用这些结构信息对无标签的测试数据做预测