雷郭出品
zero shot指的是在分类任务中
训练集中没有A类的样本,只有B,C,D等类的样本
然后我们希望训练好的网络可以识别出A类
这有点骚
强行叫网络去识别它所没有见过的类别
这感觉不可能实现,毕竟常见的神经网络就是具有这种局限性(没见过就不认识)
资料中显示可以提取出A,B,C,D类的一些共有属性
然后不同属性值的组合可以对应不同的类别
比方说以马,老虎,熊猫为B,C,D类(资料中全是举得这种例子)
以斑马为A类
然后人类根据经验可以使用三种属性来辅助网络识别斑马
- 像不像马
- 有没有条纹
- 是不是黑白相间
根据“马”,“老虎”,“熊猫”的训练样本训练一个mapping,这个mapping能将图片feature映射到对应的描述(这个mapping理应关注到图片的动物有没有像马,有没有条纹,是不是黑白的,只有这样才能得到正确的描述,从而在训练集上得分)
当mapping训练好之后,就可以使用这个mapping对未知的类别进行识别
如果x类满足mapping中的某个组合
如像马,有条纹,黑白相间,就可以预测其为斑马
我现在只能理解到这种程度
我的疑惑是这种预测未知类别是假的
因为人是知道这种未知类别的属性
所以可以人为地制造mapping
如果未知的类别连人类都无法知道其属性(比如PA types)
那这种mapping又从何学起
one shot(few shot)指的是训练集中只有一个或少量样本
感觉可以从跟现有已知的类别的相似度来分析
比如斑马跟马很像,跟熊猫,老虎就没那么像
来自网络:
One-shot learning 指的是我们在训练样本很少,甚至只有一个的情况下,依旧能做预测。如何做到呢?可以在一个大数据集上学到general knowledge(具体的说,也可以是X->Y的映射),然后再到小数据上有技巧的update。相关的名词还有 transfer learning , domain adaption。其实Zero/One-shot learning都属于transfer learning,要点在于先学到好的X->Y的关系,希望能应用到其他问题上。