作者:Gorkem Polat导读
编译:ronghuaiyang
一些最常用的few shot learning的方案介绍及对比 。
文章插图
传统的CNNs (AlexNet, VGG, googleNet, ResNet, DenseNet…)在数据集中每个类样本数量较多的情况下表现良好 。不幸的是,当你拥有一个小数据集时,它们通常不能很好地工作 。但是,在许多真实的场景中,收集数据是很有挑战性的 。例如,在人脸识别系统中,通常每个人的图像都很少,或者在医学领域中,一些罕见疾病的病例也很有限 。
那么,当你的类别中只有5个样本,甚至每个类别只有一个样本时,深度学习能提供什么呢?这个问题被称为few-shot learning 。这是一个活跃的研究领域,有许多成功的方法可以采用 。在本文中,我将只提到一些最有前途的体系结构 。
这篇文章不会深入地解释架构,因为这会使文章变得很长 。相反,我将只介绍架构的主要思想,以便任何希望处理小数据集的人都可以对模型有一个大致的了解 。
Siamese Neural Networks
文章插图
Siamese Neural Networks的结构
Siamese神经网络以两个样本作为输入,输出给定输入是否属于同一类的概率(或损失) 。输入样本通过相同的网络(共享权值),它们的嵌入在损失函数中进行比较(通常使用基于嵌入的差异的度量) 。在训练过程中,“网络”学会以更稳健的方式对输入进行编码 。首先,在支持集(验证步骤)上对模型进行训练,以学习相同/不同的配对 。然后,将测试样本与训练集中的每个样本进行比较,得到基于学习的编码后的测试样本与每个类(o
推荐阅读
- 数据大屏可视化工具篇—DataV
- 爬虫原理与数据抓取
- 一张图理解几个专有网络名词:数据、段、包、帧、比特
- Python数据分析之初识可视化
- Python数据分析之numpy最强攻略
- MySQL的备份与恢复
- excel数据核对一下就搞定,这几种办法你用过吗?
- Vue 中如何从插槽中发出数据
- HBase读取数据快还是写数据快?
- 使用 ZeroMQ 消息库在 C 和 Python 间共享数据