多标签学习之白话版

简单的机器学习, 就是把人类的学习方式教给机器 ---- 斯 ⋅ \cdot 沃索迪.

1. 任务的提出

  • 单标签学习
    假设你不知道河豚长什么样子. 给你 1000 张照片, 并标注哪些有河豚. 再给你 100 张新的照片, 你能判断哪些照片里面有河豚吗?
    本例中, 从 1000 张带标签的照片中, 学习到识别河豚的知识, 这个过程就叫做 单标签学习.
    河豚是 标签, 带标注的照片统称 训练集, 学习的过程称为 训练. 学习的结果是能够进行河豚识别的 模型.
  • 多标签学习
    一个照片中可能有多种动物, 现在的任务是将它们全部识别出来, 这个过程就叫做 多标签学习.

2. 核心问题: 有效利用标签相关性

2.1 问题的提出

每次只针对一个标签进行训练. 我们就获得了猫、狗、河豚等等各自的模型. 这样做的缺点在于: 不能有效利用标签之间的相关性.
如: 根据某张照片, 机器不确定里面的动物是 <猫和海狸> 还是 <猫和老鼠>. 由于在训练集中 <猫和老鼠> 更出现次数更多, 模型更愿意做出相应的判断. 在这里, <猫和老鼠> 的相关性, 称为 标签相关性.
因此, 如何有效地利用标签相关性进行模型的训练, 是多标签学习的核心问题.
同时注意, 标签间不但可以正相关, 还可以互斥, 如 <北极甜虾和小丑鱼>.

2.2 技术 1: 结合关联规则

从训练集中, 挖掘动物的成对相关性 (如: 猫与老鼠, 猫与河豚), 如: 60 张图片中有猫, 200 张图片里面有老鼠, 50 张图片同时有猫和老鼠, 则出现猫的时候很可能有老鼠 ( 5 6 ≈ 83.3 % \frac{5}{6} \approx 83.3\% 6583.3%), 但反之不然 ( 50 200 = 25 % \frac{50}{200} = 25\% 20050=25%).
需要注意: 这类信息仅仅是对图片识别结果的一种补充、校正, 而不能代替前者.
还可以挖掘高阶关联, 如: 已知出现猫和狗, 再出现老鼠的可能性有多大?
相应的方法, 都可看作是与关联规则挖掘的结合.

3. 扩展问题: 带标签缺值的学习

3.1 问题的提出

前面假设训练集的标签是完整的, 即我们知道每张照片里面有哪些动物. 但在实际数据中, 仅有少量标签是已知的. 例如: 总共的标签数是 2000 (实际动物类别比这个还多), 但某张图片的标签信息仅为: 有猫、狗、老鼠, 没有河豚、海狸鼠, 其它的不知道有没有. 这是因为打标签需要人工完成, 全部标签信息给出太累了! 另外, 不同的照片, 给的标签不同, 这是因为打标注的人有自己更为熟悉的动物.
如何从具有大量缺失标签的数据集中学习到有效的模型, 是多标签学习通常面临的挑战.

3.2 方案 1: 缺失值填补

采用缺失值填补的方式, 将训练集的标签数所都补上, 然后就可以使用已有的多标签学习方式.
可使用矩阵分解, 我还没想好如何用白话来解释.

3.2 方案 2: 忽略缺失值

如里使用神经网络作为预测模型, 只需要在缺失值相对应的损失设为 0 即可. 这个我也没想好如何写成白话.


未完待续

你可能感兴趣的:(机器学习基础,机器学习,人工智能,深度学习)