智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习

简介: Siamese network就是“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的,如下图所示。共享权值意味着两边的网络权重矩阵一模一样,甚至可以是同一个网络。

1.Siamese网络


Siamese network就是“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的,如下图所示。共享权值意味着两边的网络权重矩阵一模一样,甚至可以是同一个网络。


873c5c9da2a94b9c9236bc80293c508b.png


如果左右两边不共享权值,而是两个不同的神经网络,叫伪孪生网络(pseudo-siamese network,伪孪生神经网络),对于pseudo-siamese network,两边可以是不同的神经网络(如一个是lstm,一个是cnn),也可以是相同类型的神经网络。


3304ce1e711a44e1b49745492dcef4c8.png


1.1 原理


Siamese网络衡量两个输入的相似程度,输出是一个[0,1]的浮点数,表示二者的相似程度。孪生神经网络有两个输入(Input1 and Input2),将两个输入feed进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。


传统的siamese network使用Contrastive Loss(对比损失函数),如下所示:


46b41d31059a46be868de18b4ec2320c.png


  • 其中Dw被定义为姐妹孪生网络的输出之间的欧氏距离。Dw欧式距离公式如下:


f518d2a78aad44d7973493555bf27ca8.png


也可以是其他的距离度量方法,比如Cosine距离主要用于词汇级别的语义相似度度量。


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


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


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


  • m是大于0的边际价值(margin value),边际价值表示超出该边际价值的不同不会造成损失,因为希望基于实际不相似对网络进行优化。


1.2 用途


孪生神经网络用于处理两个输入“比较类似"的情况。


伪孪生神经网络适用于处理两个输入"有一定差别”的情况。


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


  • 词汇的语义相似度分析,QA中question和answer的匹配,签名/人脸验证。
  • 手写体识别也可以用siamese network。
  • 还有kaggle上Quora的question pair的比赛,即判断两个提问是不是同一问题。
  • 在图像上,基于Siamese网络的视觉跟踪算法也已经成为热点。
  • 单样本学习


2.单样本学习


2.1 原理


传统的神经网络试图学习某一个类别的图像的表达,而One-Shot Learning 试图学习不同图像(可以同一类别或者不同类别) 的区别。


给定图片A和图片B, 将A转换为一个表达(embedding vector) p, 将B转换为 一个表达(embedding vector) q


• 如果 A 和 B 属于同一个类别, 那么我们希望 p 和 q 是相似的


1dcfbd8b9bcf4efda26a4d8d028edcb7.png


• 如果 A 和 B 不属于同一个类别, 那么我们希望 p 和 q 是不相似的


dde7479732e14860be246c2d4ca53c42.png


• 相似度的度量, 欧几里得距离:


7a398d71fa49462d9a63271a925a6feb.png


2.2 意义


1.减少训练数据


• 深度学习需要大量的数据, MNIST 为了 10 个类别的区分, 需要 60,000 张训练图像, 平均一个类别需要6000 张训练图像


• One-Shot 试图将一个类别的训练图像减少, 极端情况时减小到一张图片


2.在新类别的数据出现时, 无需重新训练


• 传统的深度神经网络无法处理没有出现在训练集中的类别


• 以员工刷脸打卡为例, 使用传统深度神经网络, 每一个新员工入职, 都是一个新的 类别, 需要重新训练深度神经网络


• 如果每天都有新员工入职, 每天都要重新训练网络, 成本非常高


• One-Shot learning 可以无需重新训练即可应用于新的类别的数据

目录
相关文章
|
4月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
174 0
|
2月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
344 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
3月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
3月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
3月前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
128 2
|
3月前
|
机器学习/深度学习 数据采集 资源调度
基于长短期记忆网络定向改进预测的动态多目标进化算法(LSTM-DIP-DMOEA)求解CEC2018(DF1-DF14)研究(Matlab代码实现)
基于长短期记忆网络定向改进预测的动态多目标进化算法(LSTM-DIP-DMOEA)求解CEC2018(DF1-DF14)研究(Matlab代码实现)
107 0
|
10月前
|
计算机视觉 Perl
RT-DETR改进策略【Backbone/主干网络】| 替换骨干网络为CVPR-2024 PKINet 获取多尺度纹理特征,适应尺度变化大的目标
RT-DETR改进策略【Backbone/主干网络】| 替换骨干网络为CVPR-2024 PKINet 获取多尺度纹理特征,适应尺度变化大的目标
285 10
RT-DETR改进策略【Backbone/主干网络】| 替换骨干网络为CVPR-2024 PKINet 获取多尺度纹理特征,适应尺度变化大的目标
|
9月前
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
344 12
|
10月前
|
人工智能 网络协议 IDE
使用通义灵码AI高效学习muduo网络库开发指南
Muduo 是一个基于 C++11 的高性能网络库,支持多线程和事件驱动,适用于构建高效的服务器和应用程序。它提供 TCP/IP 协议支持、异步非阻塞 I/O、定时器、异步日志等功能,并具备跨平台特性。通过 Git 克隆 muduo 仓库并切换至 C++17 分支可开始使用。借助 AI 工具如 Deepseak-v3,用户可以更便捷地学习和理解 Muduo 的核心模块及编写测试用例,提升开发效率。
|
11月前
|
机器学习/深度学习 人工智能 搜索推荐
PaSa:字节跳动开源学术论文检索智能体,自动调用搜索引擎、浏览相关论文并追踪引文网络
PaSa 是字节跳动推出的基于强化学习的学术论文检索智能体,能够自动调用搜索引擎、阅读论文并追踪引文网络,帮助用户快速获取精准的学术文献。
802 15

热门文章

最新文章