当前位置: 首页 > article >正文

【王树森】Few-Shot Learning (2/3): Siamese Network 孪生网络(个人向笔记)

Learning Pairwise Similarity Scores

Training Data

  • 训练集有很多个类别的图片,每个类别的图片都有标注
    在这里插入图片描述

  • Positive Sample:我们需要正样本来告诉神经网路什么东西是同一类

  • Negative Sample:负样本可以告诉神经网路事物之间的区别
    在这里插入图片描述

  • 我们用CNN来提取图片的特征:
    在这里插入图片描述

  • 把两张图片用同一个CNN提取特征向量,然后把得到的两个特征向量取差的绝对值: z = ∣ h 1 − h 2 ∣ z=|h_1-h_2| z=h1h2,然后通过一个全连接层变为一个数后放到 Sigmoid 激活函数里面。我们的标签是 1,可以利用交叉熵损失函数来反向传播计算梯度,然后梯度下降来更新参数。
    在这里插入图片描述

  • 其中的参数有CNN的参数和全连接层的参数
    在这里插入图片描述

  • 训练的时候我们要准备同样数量的正样本和负样本


TripLet Loss

  • 随机选择一张图片作为锚点anchor,抽取它同种类的一张图为正样本,不同种类的一张图为负样本

在这里插入图片描述

  • 把三张图片都放入一个CNN里面提取特征向量,然后分别计算锚点与正样本和负样本的二范数平方,我们期望 d + d^+ d+ 很小,因为锚点和正样本属于同类别。期望 d − d^- d 很大,因为锚点与负样本不是同类别

在这里插入图片描述

  • CNN 可以把图片提取特征向量投射到特征空间中,两张相似图片在特征空间的距离应该尽可能接近,而不同种图片的距离应该尽可能远离,这样才能够比较好区分
    在这里插入图片描述
  • 由上我们可以得出损失函数:如果 d + d^+ d+ d − d^- d 差别足够大,那么 Loss 为 0。但是如果差别没有那么大就会有 Loss,那么我们就可以通过这个损失来更新 CNN 的参数了

在这里插入图片描述

  • 在做预测的时候,我们计算 Query 和 Support Set 的距离即可
    在这里插入图片描述

http://www.kler.cn/a/287481.html

相关文章:

  • DataStream编程模型之数据源、数据转换、数据输出
  • 支付域——新零售支付
  • Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系
  • 《Django 5 By Example》阅读笔记:p645-p650
  • 项目配置文件选择(Json,xml,Yaml, INI)
  • UE5运行时创建slate窗口
  • 软件功能测试的重要性简析,好用的功能测试工具有哪些?
  • 衡石科技产品手册-指标分析
  • SprinBoot+Vue超市管理系统的设计与实现
  • Java-List分批多线程执行
  • 计算机毕业设计 | SpringBoot+vue移动端音乐网站 音乐播放器(附源码)
  • 【0320】Postgres内核之 vacuum heap relation (15)
  • 实训day41(9.2)
  • Flask-RESTFul 之 RESTFul 在蓝图中的使用
  • Android12 添加设置控制导航栏显示和状态栏下拉
  • 【实用干货】5大自动化测试的Python框架!
  • 【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果
  • Kaggle竞赛——手写数字识别(Digit Recognizer)
  • 【第三版 系统集成项目管理工程师】第14章 收尾过程组
  • gateway的学习
  • 深度学习中Embedding的理解
  • pod进阶:
  • [M二叉树] lc199. 二叉树的右视图(dfs+自顶向下+好题)
  • 使用 SASS 编写高效 CSS
  • CentOS 7安装和配置 NFS
  • [Doc][px4][ros2][gazebo][yolov8]PX4-ROS2-Gazebo-YOLOv8