ML——直推式学习和归纳式学习

本文解释 直推式学习(Transductive Learning)归纳式学习(Inductive Learning) 的区别


归纳式学习 (Inductive Learning)

  • 一句话定义 :通过训练数据学习一个通用的模型 ,然后将该模型应用于未知的测试数据
  • 目标 :从具体样本中归纳(名字来源)出一般规律,适用于任何未来的数据
  • 特点
    • 训练阶段和测试阶段是分开的
    • 模型在训练时不知道测试数据的具体情况
  • 典型场景 :大多数监督学习任务(如图像分类、文本分类等)
  • 核心特点训练时测试数据不可见

直推式学习 (Transductive Learning)

  • 一句话定义 :利用训练数据和特定的测试数据(未标注)共同学习,直接(名字来源)预测这些测试数据的标签
  • 目标 :针对当前已知的测试数据优化预测,而非构建通用模型
  • 特点
    • 训练时已知测试数据的特征(但无标签),利用这些信息优化预测
    • 模型仅适用于当前的测试数据,不能直接泛化到新数据
  • 典型场景 :半监督学习、图节点分类(如社交网络用户分类)
  • 核心特点训练时测试数据可见

附录:举例-垃圾邮件分类

  • 任务定义 :判断邮件是否为垃圾邮件

归纳式学习

  • 仅用已标注的训练数据(带“垃圾/正常”标签的邮件)训练一个模型(如SVM、神经网络)
  • 将模型应用于未来收到的任何新邮件

直推式学习

  • 同时利用已标注邮件未标注邮件特征分布(如词频、发件人)训练模型
  • 模型发现未标注邮件中某些特征与训练数据中的垃圾邮件相似,直接预测它们的标签
  • 特别说明 :模型针对这批特定的测试邮件优化 ,但不保证新邮件效果

为什么需要直推式学习?

  • 一般来说,大部分场景都使用归纳式学习即可
  • 测试数据分布训练数据分布不同时,直推式学习可以通过利用测试数据的特征分布提升当前任务的性能,但牺牲泛化性
  • 特别地,当训练数据和测试数据本身具有一定结构(如图数据、时空数据)时,直推式学习可以利用这些结构信息对无标签的测试数据做预测