本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】孪生网络实现小数据学习!如何找两张图片的相似点

时间:2017-07-19 06:01来源:118图库 作者:本港台直播 点击:
原文来源:hackernoon 作者:Harshvardhan Gupta 「机器人圈」编译:嗯~阿童木呀、多啦A亮 深度神经网络是涉及图像分类问题的重要算法。这其中的部分原因是,它们具有大量的可训练的参

【j2开奖】孪生网络实现小数据学习!如何找两张图片的相似点

  原文来源:hackernoon

  作者:Harshvardhan Gupta

  「机器人圈」编译:嗯~阿童木呀、多啦A亮

  深度神经网络是涉及图像分类问题的重要算法。这其中的部分原因是,它们具有大量的可训练的参数。然而,这是以需要大量的数据为代价的,而这有时是不可获得的。那么接下来,我就将讨论小样本学习(One Shot Learning),其旨在缓解诸如此类的问题,以及如何在PyTorch中实现一个使用它的神经网络

  本文假设你对神经网络知识有所了解。

  本文相关材料线索来自于此篇论文

  标准分类vs小样本分类

  几乎所有分类模型使用的都是标准分类。输入被馈送到一系列层,最后输出类概率。如果你想通过猫来预测出狗,你可以在你所期望的预测时间内训练相似的(但不相同的)狗/猫图片模型。当然,这要求你有一个数据集,与你使用模型进行预测时所期望的数据集类似。

  另一方面,小样本分类模型的要求就是,你只要有一个你想要预测的每个类的训练样本就可以。该模型仍然在几个实例上进行训练,但是它们只需要与你的训练样本相类似。

  可以说明此问题的一个很好的例子就是面部识别。你可以在一个包含少数人的各种角度、拍摄光线等数据的数据集上训练此小样本分类模型。然后,如果你想要判别某人X是否在图像中,那么就可以拍摄该人的一张照片,然后询问模型该人物是否在该图像中(请注意,该模型没有使用某人X的任何照片进行训练)。

  作为人类,我们往往只需要一次会面就可以通过面部识别出一个人,而且对于计算机来说,这是很可取的,因为大多数情况下数据处于最小值。

  孪生网络

  孪生网络是一种特殊类型的神经网络架构。与一个学习对其输入进行分类的模型不同,该神经网络是学习在两个输入中进行区分。它学习了两个输入之间的相似之处。

  架构

  孪生网络由两个完全相同的神经网络组成,每个都采用两个输入图像中的一个。然后将两个网络的最后一层馈送到对比损失函数,用来计算两个图像之间的相似度。我已经做了一个图解用来帮助解释这个架构。

  它具有两个姐妹网络,它们是具有完全相同权重的相同神经网络。

  图像对中的每个图像将被馈送到这些网络中的一个。

  使用对比损失函数优化网络(我们将获得确切的函数)。

  对比损失函数(Contrastive Loss function)

  孪生架构的目的不是对输入图像进行分类,而是区分它们。因此,开奖,分类损失函数(如交叉熵)不是最合适的选择。相反,这种架构更适合使用对比函数。根据直觉而言,这个函数只是评估网络区分一对给定的图像的效果如何

  点击此处链接获取更多详情

  对比损失函数如下:

  等式1.0

  其中Dw被定义为姐妹孪生网络的输出之间的欧氏距离(euclidean distance)。数学上欧氏距离是:

  等式1.1

  其中Gw是其中一个姐妹网络的输出。X1和X2是输入数据对。

  等式1.0说明

  Y值为1或0。如果模型预测输入是相似的,j2直播,那么Y的值为0,否则Y为1。

  max()是表示0和m-Dw之间较大值的函数。

  m是大于0的边际价值(margin value)。有一个边际价值表示超出该边际价值的不同对不会造成损失。这是有道理的,因为你只希望基于实际不相似对来优化网络,但网络认为是相当相似的。

  数据集

  我们将使用两个数据集,经典的MNIST和OmniGlot。 MNIST将用于训练模型以了解如何区分字符,然后我们将在OmniGlot上测试该模型。

  OmniGlot数据集

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容