IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Siamese Network 孪生网络基础学习笔记 -> 正文阅读

[人工智能]Siamese Network 孪生网络基础学习笔记

Siamese Network 孪生网络基础学习笔记


本笔记主要是对相关文章的摘录梳理,作为小白学习目标跟踪的学习笔记。

孪生网络在目标跟踪中有很重要的应用,故特作此整理,希望为后续的学习打好基础。

整理的比较仓促,后续会修改完善。


参考文章链接:

  1. Siamese network 孪生神经网络:一个简单神奇的结构
  2. Siamese network总结
  3. [视觉跟踪] Siamese Network方法概述:从SiamFC到SiamRPN系列
  4. 卷积神经网络学习笔记——Siamese networks(孪生神经网络)

一. Siamese Network 名字的由来

Siamese在英语中是“孪生”、“连体”的意思。具体由来参见Siamese network 孪生神经网络:一个简单神奇的结构

二. 孪生网络的主要特点

  1. Siamese 网络采用两个不同的输入,通过两个具有相同架构、参数和权重的相似子网络。

  2. 这两个子网互为镜像,就像连体双胞胎一样。 因此,对任何子网架构、参数或权重的任何更改也适用于其他子网。

  3. 两个子网络输出一个编码来计算两个输入之间的差异。

  4. Siamese 网络的目标是使用相似度分数对两个输入是相同还是不同进行分类。可以使用二元交叉熵、对比函数或三元组损失来计算相似度分数,这些都是用于一般距离度量学习方法的技术。

  5. Siamese 网络是一种one-shot分类器,它使用判别特征从未知分布中概括不熟悉的类别。

三. Siamese Network的模型架构

  1. 将输入pair送入编码器,映射到新的空间,得到编码后的向量化表示。需要注意的是,在Siamese Network中,输入pair是共用编码器参数的,不论在训练还是在测试过程中,编码器只有一套,所有输入共用。

  2. 向量特征组合和交叉。这一步的目的是为了让模型能够学习输入pair的“匹配”特征,得到交叉后的特征向量;

  3. 将上一步特征向量送入特征映射层,并设计损失函数来评价两个输入的相似度,使得模型能够完成指定任务。

孪生网络的核心特征是两个子网络的权重是共享的。因为这种共享,两个输入相当于采用了相同的编码机制映射到相同的向量空间。进而我们就能通过对embedding后得到的的向量进行处理,计算两者的相似度。

在这里插入图片描述

四. 孪生神经网络的用途是什么?

孪生网络主要用来衡量两个输入的相似程度。该模型能够处理但不局限于“匹配”问题。
在这里插入图片描述

五. 孪生神经网络和伪孪生神经网络

Pseudo Siamese Network 伪孪生网络

如果两个子体网络不共享权重,即两个子体是不同的神经网络,则称为Pseudo Siamese Network,伪孪生神经网络。伪连体孪生经网络的两个子体,可以是结构相同但权重不同,也可以是完全不同的结构,如一个是CNN,另一个是RNN。CNN和RNN的这种连体网络,可以用来比对不同数据类型的信息所表达的内容的相似性,如一个图片和一段文字。

在这里插入图片描述

孪生神经网络和伪孪生神经网络分别适用的场景

孪生神经网络用于处理两个输入"比较类似"的情况。伪孪生神经网络适用于处理两个输入"有一定差别"的情况。比如,我们要计算两个句子或者词汇的语义相似度,使用siamese network比较适合;如果验证标题与正文的描述是否一致(标题和正文长度差别很大),或者文字是否描述了一幅图片(一个是图片,一个是文字),就应该使用pseudo-siamese network。也就是说,要根据具体的应用,判断应该使用哪一种结构,哪一种Loss。

六. Siamese network 的 loss function

  1. Siamese 网络使用相似度分数来预测两个输入是相似还是不同,使用度量学习方法,该方法找到其输入之间的相对距离。

  2. 可以使用二元交叉熵、对比函数或三重损失计算相似度分数。

  3. Siamese 网络执行二元分类,将输入分类为相似或不相似;因此,默认使用二元交叉熵损失函数。

常用损失

1. contrastive loss 对比损失函数

在这里插入图片描述

在这里插入图片描述

  1. 对比损失函数通过对比两个输入来区分相似和不同的图像。当你在训练时不了解所有类别并且训练数据有限时,它会有所帮助。它创建了一种数据编码,可以在将来有新类时使用。

  2. 对比损失需要一对正负训练数据。 正对包含一个anchor样本和一个正样本,负对包含一个anchor样本和一个负样本。

  3. 对比损失函数的目标是使正对具有较小的距离,对负对具有较大的距离。

2. cosine距离与exp距离

在这里插入图片描述

3. Triplet loss

在 Triplet loss 中,我们使用数据的三元组而不是二元对。 三元组由anchor、正样本和负样本组成,主要用于面部识别。
在这里插入图片描述

在 Triplet loss 中,anchor和正样本编码之间的距离被最小化,而anchor和负样本编码之间的距离被最大化。
在这里插入图片描述

Triplet loss 将 d(a,p) 推到 0 ,并且 d(a,n) 大于 d(a,p)+margin

七. 为什么Siamese神经网络被称为one-shot分类?

  1. one-shot分类模型仅使用每个新类别的单个训练样本即可正确进行预测。

  2. Siamese 网络使用有监督的训练方法来学习通用输入特征,然后根据训练数据对未知的类分布进行预测。

  3. 受过训练的 Siamese 网络使用一次性学习来预测两个输入之间的相似性或不相似性,即使这些新分布中的样本很少。

八. Siamese 网络的优点

  1. Siamese 网络是一种one-shot分类模型,只需一个训练样本即可进行预测。

  2. 对类别不平衡更鲁棒,因为它需要很少的信息。 它可以用于某些类的样本很少的数据集。

  3. Siamese 网络的one-shot学习特性不依赖于特定领域的知识,而是利用了深度学习技术。

九. Siamese 网络的缺点

仅输出相似性分数而不输出概率。(互斥事件的概率总和为 1。而距离不限于小于或等于 1。)

十. Siamese network是双胞胎连体,整一个三胞胎连体行不行?

不好意思,已经有人整过了,叫Triplet network,论文是《Deep metric learning using Triplet network》,输入是三个,一个正例+两个负例,或者一个负例+两个正例,训练的目标是让相同类别间的距离尽可能的小,让不同类别间的距离尽可能的大。Triplet在cifar, mnist的数据集上,效果都是很不错的,超过了siamese network。四胞胎,五胞胎会不会更屌?。。。。。目前还没见过。。。。
在这里插入图片描述

十一. Siamese network的应用

  1. 签名验证

  2. 面部识别

  3. 比较指纹

  4. 根据临床分级评估疾病严重程度

  5. 工作资料的文本相似度以恢复匹配

  6. 用于配对相似问题的文本相似度

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:31:30  更:2021-10-11 17:33:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:25:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码