【深度神经网络 One-shot Learning】孪生网络少样本精准分类

本文介绍了深度神经网络在单样本学习(One-shot Learning)中的应用,特别是孪生网络(Siamese Networks)的概念。通过Omniglot数据集,展示了如何利用孪生网络进行少样本精准分类,包括网络架构、训练方法和结果分析。尽管存在过拟合风险,但深度学习仍能在单样本学习任务中展现出潜力。
摘要由CSDN通过智能技术生成

传统观点一般认为,深度神经网络通常比较擅长从高维数据中学习,例如图像或者语言,但这是建立在它们有大量标记的样本来训练的情况下。然而,人类却拥有单样本学习的能力——如果你找一个从来没有见过小铲刀的人,给他一张小铲刀的图片,他应该就能很高效的将它从其他厨房用具里面鉴别出来。

donkey_265cb4c2-df86-4d00-bdd8-693089628


这是一种对人类来说很容易的任务,但是直到我们想写一个算法让它去做这件事……那就GG了 。很明显,机器学习系统很希望拥有这种快速从少量样本中去学习的能力,因为收集和标记数据是一个耗时费力的工作。而且,我认为这是通往通用人工智能的漫漫长路中很重要的一步。

最近涌现出来很多有趣的基于神经网络的单样本学习论文,它们已经得到了一些不错的结果。这是一个让我很激动的新领域,所以我想去对它做一个简要介绍,来让深度学习新手更好的认识它。

在这篇博客中,我想:

  • 介绍并定义单样本学习问题
  • 描述单样本分类问题的基准,并给出一个其性能的baseline
  • 给出一个少样本学习的例子,并部分实现这篇论文中提到的模型
  • 指出一些大家通常不会想到的小点子


定义问题:N类别单样本学习(One-shot Learning)

在我们解决任何问题之前,我们应该精准的定义出这个问题到底是什么,下面是单样本分类问题的符号化表示: 我们的模型只获得了很少的标记的训练样本S,它有N个样本,每个相同维度的向量donkey_edb3b64b-b98f-4c3e-bf87-ebecfa813有一个对应的标签 y

donkey_d1e24619-818c-4f60-b65a-43a02f27fdonkey_c38550c9-f6e7-4721-8f40-564efe2d4


再给出一个待分类的测试样例donkey_60940567-ccdc-43ee-ae24-7d414b4ac。因为样本集中每个样本都有一个正确的类别 donkey_0629beb9-d768-4365-aae4-f1e54b279,我们的目标是正确的预测 y∈S 中哪一个是的正确标签。

这里有很多种定义问题的方式,但上面是我们的定义,注意这里有一些事项需要记录一下:


  • 现实生活中可能约束更少,可能一张图片并不见得只有一个正确的类别
  • 这个问题很容易泛化到 k-shot 学习,我们只需要把每个类别 donkey_371b98a8-570f-430c-9c2d-65c575532仅有单个样本换成 k 个样本就可以了
  • 当N很高时候,donkey_0bb9700d-1b94-4502-ae99-acd0f0a0a 可能有更多可能的类别,所以正确预测类别更难
  • 随机猜的正确率是 donkey_266c8751-8b32-45e2-b16d-36c11f38e

这里有一些在Omniglot数据集上单样本学习的例子,我会在下一部分介绍它。图示分别为9类,25类,36类的单样本学习任务。

donkey_d74f40b7-7ed1-4eda-b100-a2c8c01b1


关于数据集 Omniglot!

Omniglot数据集拥有50种文字,1623类手写字符。对于每类字符仅有20个样本,每个样本分别由不同的人绘制而成,分辨率为105*105。

donkey_20d1a8d7-5b2b-4943-b7c3-c4b250c45

上面是Omniglot数据集的一些例子,如图所示,这里有很多种字符,如果你喜欢机器学习,你肯定听说过 MNIST 数据集。Omniglot有时被成为 MNIST 的转置,因为它有1623类字符,每类只有20个样本,相比 MNIST 的10个类别,每个类别都有上千样本,正好相反。Omniglot 还有创作的笔画数据,但是我们这里用不到它。

通常,我们把样本分为30类训练样本,剩下20类作为评估。所有这些不同的字符可以组成很多种单样本学习任务,所以它确实是单样本学习的一个很好的评估标准。


一个单样本学习的 Baseline:1 近邻

最简单的分类方式是使用 k-近邻方法,但是因为每个类别只有一个样本,所以我们需要用 1近邻。这很简单,只需要计算测试样本与训练集中每个样本的欧式距离,然后选择最近的一个就可以了:

donkey_0733f7d6-dfd9-4de7-be1d-35a786395

根据Koch等人的论文,在Omniglot数据集中的20类上,单样本分类,1-nn可以得到大约28%的精度,28%看起来很差,但是它已经是随机猜测(5%)的 6 倍了。这是一个单样本学习算法最好的baseline 或者“合理性测试”了。

Lake等人的 Hierarchical Bayesian Program Learning,层次贝叶斯程序学习(以下简称 HBPL)得到了大约 95.2%的精度,非常不错。我只看懂了30%,但它非常有趣,它与深度学习直接从原始像素上训练相比,是风马牛不相及的,因为:

  1. HBPL使用笔画数据,而不是仅仅用原始像素;
  2. HBPL在Omniglot数据集上学习一个笔画的生成模型,这个算法需
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值