Keras 的连体网络

数据挖掘 连体网络 一次性学习
2022-02-15 18:26:29

我正在寻找一个最小的应用示例来实现(一次性)连体网络,最好是在 Keras 中。

我非常了解各种数据科学在线页面以及可以在那里找到的相应示例和练习。但是,到目前为止,我还没有在那里找到有启发性的来源。

如果有人可以向我指出一些 github 源,或者如果有人可以分享一些代码或其他源,我将不胜感激,它们提供了一个关于如何在 Python 或 R 中实现这种架构的合理示例。

4个回答

来自官方 Keras 示例:

使用具有三元组损失的连体网络进行图像相似度估计

训练连体网络以使用三元组损失函数比较图像的相似性。

连体网络是一种网络架构,包含两个或多个相同的子网,用于为每个输入生成特征向量并进行比较。

连体网络可以应用于不同的用例,例如检测重复、发现异常和人脸识别。

此示例使用具有三个相同子网的连体网络。我们将为模型提供三张图像,其中两张相似(锚和正样本),第三张不相关(负样本)。我们的目标是让模型学会估计图像之间的相似性。

使用具有对比损失的 Siamese 网络进行图像相似度估计

使用经过对比损失训练的孪生网络进行相似性学习

连体网络是在两个或多个姐妹网络之间共享权重的神经网络,每个姐妹网络都产生其各自输入的嵌入向量。

在有监督的相似性学习中,然后对网络进行训练以最大化不同类输入的嵌入之间的对比度(距离),同时最小化相似类的嵌入之间的距离,从而产生反映训练输入的类分割的嵌入空间。

这是 Keras 中的 Siamese 网络实现,旨在成为可重用的库:https ://github.com/aspamers/siamese

以下来自英特尔的博客文章也有很好的例子 https://software.intel.com/content/www/us/en/develop/articles/keras-implementation-of-siamese-like-networks.html