One-Shot Learning

一、One-Shot Learning的意义

1. 减少训练数据
  • 深度学习需要大量的数据
  • 例:MNIST为了10个类别的区分,需要60000张训练图像,平均一个类别需要6000张训练图像
  • One-Shot试图将一个类别的训练图像减少,极端情况时只有一张图片
2. 在新类别的数据出现时,无需重新训练
  • 传统的神经网络无法处理没有出现在训练集中的类别
  • 例:以员工刷脸打卡为例,使用深度神经网络,每一个新员工入职,都是一个类别,需要重新训练深度神经网络。如果每天都有新员工入职,每天都要重新训练网络,成本非常高
  • One-Shot Learning可以无需重新训练即可应用于新的类别的数据

二、One-Shot Learning的原理

1. One-Shot与传统神经网络的区别
  • 传统的神经网络试图学习某一个类别图像的内部表达
  • One-Shot Learning试图学习不同图像之间的区别(可以是同一类别or不同类别)
3. 图像之间的相似度
  • 图像相似度
    1)给定图片A和图片B,将A转换为一个表达P(embedding vector) ,将B转换一个表达Q
    2)如果AB属于同一个类别,那么我们希望PQ相似
    3)如果AB不属于同一个类别,那么我们希望PQ不相似

  • 相似度度量
    1)可以采用欧几里得距离,但是一般不选用这种度量方式

欧几里得距离.png



2)Siamese Network方式

Siamese网络结构.png

你可能感兴趣的:(One-Shot Learning)