5.1 半监督学习
5.2 主动学习
5.3 代价敏感学习
5.4 多标签学习
5.5 多示例学习
用无标签的数据提升学习器的效果.
半监督学习强调的是一种学习场景, 在该场景下, 无标签数据可以协助带标签数据提升预测质量.
监督学习: 训练数据都有标签, 相应的任务为分类、回归等.
无监督学习: 训练数据都没有标签, 相应的任务为聚类、特征提取 (如 PCA) 等.
半监督学习: 部分训练数据没有标签, 相应任务与监督学习一致.
从三者的关系可以看出, 半监督学习是从监督学习与无监督学习自然推导出来的.
半监督学习的一大意义在于, 它导出了学习场景这个概念.
图 1中, + 表示正例, - 表示负例. 问: A, B 分别为正例还是负例?
直观来看, 应将 A 预测为负例, B 预测为正例. 如果你有机器学习的基础, 还可以用 kNN, SVM 之类进行强行解释, 不过这些不重要.
图 2 在图 1 的基础上增加了很多实例, 但我们不知道它们为正还是负. 现在重新判断A, B 分别为正例还是负例?
直观来看, A 与正例通过很多未标记数据 “连接” 起来, 而 B 与负例也通过很多未标记数据 “连接” 起来. 因此, 这个图中, 我们愿意相信 A 为正例, B 为负例.
为什么未标记数据让我们改变了主意? 因为他们带来了 数据分布 的巨大改变.
人机交互获得专家的指导.
主动学习是人机交互支撑的学习场景.
动机. 要想获得良好的学习效果, 通常需要大量的带标签数据. 在有些领域, 标签易于获取; 但在另外的领域, 打标签是专家的事情, 耗时耗力. 能不能使用更少的标签, 训练良好的学习器呢?
基本要求. 交互式的学习场景. 即: 人类专家根据机器的指定, 对相应数据打标签.
归属. 可以看作半监督学习的一种, 因为训练数据的一部分提供了标签.
冷启动封闭世界主动学习. 有 500 个样本, 先都没有给标签. 现在专家答应给其中 100 个打标签, 但其它 400 个需要机器预测.
冷启动开放世界主动学习. 有 500 个样本, 先都没有给标签. 现在专家答应给其中 100 个打标签. 机器需要对另外的一些样本 (未知样本) 进行预测.
一般情况下的封闭世界主动学习. 有 500 个样本, 其中 20 个标签已知. 现在专家答应给 80 个打标签, 但其它 400 个需要机器预测.
一般情况下的开放世界主动学习. 自己补上.
哪些样本的标签更有价值?
代表性强的样本. 把数据进行聚类, 聚类中心的样本具有良好的代表性. 其它样本很可能与它有相同的标签. 用这种思想可以设计出"基于聚类的主动学习方法".
不确定性强的样本. 有些样本有墙头草的潜质, 难于界定正负. 如果知道它们的标签, 就可以使用 SVM 进行分类, 相应地, 这次样本可能成为支撑向量 (support vector).
我们还是来谈钱吧.
代价敏感学习是将代价作为输入与优化目标时的机器学习.
代价是基础数据, 与应用有紧密联系.
代价是一类数据, 而且与其它数据处于不同维度, 本质上与机器学习: 数据的类型应该放在一起讨论. 可以把它当成一副狗皮膏药, 与不同的机器学习问题结合, 形成相应的代价敏感学习问题.
代价敏感分类问题:
对于二分类问题, 当c(FN)=c(FP)>0 时, 代价敏感二分类问题退化为最大化准确率的二分类问题 (即不考虑代价).
代价敏感冷启动封闭世界主动学习问题:
输入: 数据, 标记代价, 误分类代价矩阵;
输出: 查询的标签, 分类器, 以及相应的预测值;
优化目标: 总代价;
假设总共有 800 个样本, 如果全让专家 (主治医生) 来打标签, 就要花 800×100=80,000 元. 正确的做法是让专家给某些重要样本打标签, 建立一个好的分类器, 冒着一定的误分类的风险, 对其它样本打标签.
测试代价敏感的特征选择问题:
输入: 数据, 标签, 各特征的测试代价;
输出: 特征子集;
优化目标: 最小化特征子集的测试代价之和.
约束条件: 特征子集与特征全集有相同的信息.
单位需要到组织 200 名 45 - 55 周岁的职工到医院进行体检, 确定检测的项目 (体检套餐) 就是一个测试代价敏感的特征选择问题.
首先要明确两点:
一种常见的、错误的代价敏感学习概念如下: 由于数据中正负样本不平衡 (如1:99), 导致学习器偏向负样本. 为此, 将正例数量扩充至99 倍, 这样比例就变成 1:1, 可以愉快地进行学习了.
考虑两种情况:
数据不平衡在现实很常见.
在极限多标签学习中, 正标签所占比例可以小到 0.1% 以下, 这时可以采用如下几种方式:
反正不可以在没有代价数据的时候谈论代价敏感学习, 更不可以从数据中“学习”出各种代价设置. 再强调一遍: 作为“设置”, 它只可以是输入, 不可以是输出!
既感冒又肠炎, 真是一个悲伤的故事.
多标签学习从标签个数上来扩展数据模型, 进一步还有标签分布学习.
将训练数据的标签表示为 Y \mathbf{Y} Y.
这几个概念都是从标签的角度来定义的.
数据矩阵 X ∈ R n × m \mathbf{X} \in \mathbb{R}^{n \times m} X∈Rn×m,标签矩阵 Y ∈ { 0 , 1 } n × l \mathbf{Y} \in \{0, 1\}^{n \times l} Y∈{0,1}n×l, 则可以学习权重矩阵 W ∈ R m × l \mathbf{W} \in \mathbb{R}^{m \times l} W∈Rm×l, 使得
X W ≈ Y . \mathbf{X}\mathbf{W} \approx \mathbf{Y}. XW≈Y.
这种方案中, W \mathbf{W} W的第 i i i 列对应于第 i i i 个标签, 无法利用标签相关性.
标签相关性. 例如, 从训练数据看, 有猫和狗的时候, 多半也有老鼠. 根据这种规律就可以把一些图片中不明显的老鼠找出来. 如何有效利用标签相关性, 是多标签学习的核心问题.
标签稀疏性. 共有 100 种可能的动物, 但每张图片里一般只出现 1–5 种, 或者某些动物仅在少于 10 张图片里出现. 在极限多标签中, 标签稀疏性可能低于1%.
数据稀疏性. 数据的多个属性值为空, 或者无效. 在极限多标签中很严重.
我知道某堆蘑菇里有些有毒, 但不清楚是哪几个.
多示例学习按照“包-样本”的方式组织数据, 并在包的级别上给标签.
与多标签学习类似, 多示例学习从数据的角度进行概念的扩展.
一个数据集由若干包 (bag) 组成, 每个包有若干示例 (即样本、对象, sample). 如果某个包中含有至少一个正样本, 则它为正包, 否则为负包.
说明:
包映射. 将一个包映射为一个对象.
新的距离计算方式. 两个包的距离可以定义为: