Angular Loss论文理解

Angular Loss论文理解

  • 一、相较于Triplet loss
  • 二、Angular loss的意义
  • 三、Angular loss的优点
  • 四、Angular Loss
  • 五、实施细节
  • 六、训练细节
  • 七、未来构想

一、相较于Triplet loss

Triplet loss在训练时,收敛较难

  1. 每个三元组需要三次抽样,然而将某个数据集中所有三元组罗列出来是不实际的,因此需要高效取样策略。
  2. 目标是将inter-class间的距离推远到margin m以上,然而使用全局统一margin m是不合理的,因为现实世界中,intra-class的距离有很大变化
  3. 从函数的梯度运算公式来看,每个sample的梯度只考虑两个点之间的关联,不会考虑第三个点。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

二、Angular loss的意义

在这里插入图片描述
因为anchor和positive samples属于同一个类别,因此可以对称地推导出
在这里插入图片描述

由于an边和pn边的距离都应该大于ap边,根据余弦定理,最短的变ap对应的角∠n ≤ min(∠a, ∠p)
又因为,三角形内角和=180度,因此∠n 应该小于60度,因此得到一个upper bound:
在这里插入图片描述

三、Angular loss的优点

  1. Angle是一个similarity transform invariant(相似变换不变量) metric,与三角形边的相对关系成比例。用一个固定的α ,能够适用与feature map的任意缩放
  2. 相较于Triplet loss,只考虑两个边。∠n的计算需要同时考虑三个边,提升优化的鲁棒性和高效性
  3. Margin m的选取没有有意义的参考,而 α 的设置有具体且可解释的几何学意义

四、Angular Loss

如图Fig3(a),当∠a大于90度时,减小∠n可能会使negative 靠近anchor,出现不稳定case
因此,通过外界圆C,和垂直于nc边的超平面P,产生两个新的点,圆心Xc 和相交点Xm。通过变换Xa到Xc,和变换Xp到Xm,得到一个新的三角形。
目标变成:减小∠n′ -> 减小 tan∠n′
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对应的梯度计算:
在这里插入图片描述

五、实施细节

  1. 取样策略:采用N-pair loss论文中的取样逻辑,取N/2个classes,每个class随机取2个samples,构成N个tuplets——由同class的2个samples构成anchor和positive,N-1个negatives取自其他不同classes
  2. 平滑loss函数:
    1. 基于以下不等式
      在这里插入图片描述

    2. 假设feature为单元长度:||x|| = 1
      得到:
      在这里插入图片描述
      在这里插入图片描述

    3. 结合N-pair Loss:λ = 2
      在这里插入图片描述

六、训练细节

  1. 对于类目数量多的数据集,使用0.0001的LR;对于类目较少的数据集,使用0.00001的LR
  2. α的选择对训练结果会有影响,不同的数据集,最佳α不同,一般固定在36度~55度最佳
  3. 单独使用AL时,根据α的选择,效果和NL不相上下,NL&AL的效果最好

七、未来构想

三元组再往上,形成四元组,构成一个triangular pyramid(三角锥体),关注一个点到另外三个点构成平面的距离关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加入二极管的NE555 PWM 电路

只用电阻、电容构成的一般定时电路的占空比无法低于50%,如下图: 电容的充电路径上串联了R1 和R2,而放电路径上只有R2,所以放电的时间不可能比充电长。加入二极管就能解决这个问题,用二极管把充电和放电路径分离开&…

本地部署大语言模型-DeepSeek

DeepSeek 是国内顶尖 AI 团队「深度求索」开发的多模态大模型,具备数学推理、代码生成等深度能力,堪称"AI界的六边形战士"。 Hostease AMD 9950X/96G/3.84T NVMe/1G/5IP/RTX4090 GPU服务器提供多种计费模式。 DeepSeek-R1-32B配置 配置项 规…

[AI机器人] Web-AI-Robot机器人前瞻版--比奇堡海之霸凯伦

文章目录 简述开源Web-AI-Robot 项目-比奇堡-海之霸-凯伦 技术架构效果预览 简述 本项目配合前端项目bikini_bottom_karen_ui运行,来源于柒杉工作室(截止2025.2,目前我自己)。 打造一个只需要在浏览器上运行的AI智能机器人&#…

250302-绿联NAS通过Docker配置SearXNG及适配Open-WebUI的yaml配置

A. 配置Docker中的代理 绿联NAS简单解决docker无法获取镜像-不用软路由 - 哔哩哔哩 B. 下载官网对应的镜像 群晖NAS用docker搭建SearXNG元搜索引擎_哔哩哔哩_bilibili C. 修改默认省略的参数,只配置Base_URL,删除其它默认的空缺项 searxng-docker/REA…

java容器 LIst、set、Map

Java容器中的List、Set、Map是核心数据结构,各自适用于不同的场景 一、List(有序、可重复) List接口代表有序集合,允许元素重复和通过索引访问,主要实现类包括: ArrayList 底层结构:动态数组…

3471. 找出最大的几近缺失整数

3471. 找出最大的几近缺失整数 class Solution:# 辅助方法,判断第三种情况,只有首位两个元素有可能为最大几近缺失数def f(self,nums,x):return -1 if x in nums else xdef largestInteger(self, nums: List[int], k: int) -> int:n len(nums)if k …

【异常错误】No module named ‘taming.modules.vqvae‘

错误&#xff1a; File "/mnt/d/Pycharm_workspace/text2image/OmniGen-version/OmniGen/latentDiffusion/ldm/models/autoencoder.py", line 6, in <module> from taming.modules.vqvae.quantize import VectorQuantizer2 as VectorQuantizer ModuleNotF…

快检查达梦库怎么了

扁鹊的弟弟来了 要求5分钟定位达梦数据库问题 #!/bin/bash## content 实例个数 告警日志 实例状态 用户连接 活动会话 锁 集群状态 服务状态 磁盘空间 cpu mem 侦听及日志 ## scope 单机、DW、DSC Linux 多实例 ## example 将脚本保存为d.sh&#xff0c;用root用执行&#…

C++20中`constexpr`的显著增强

文章目录 1. **更多标准库函数支持constexpr**2. **支持动态内存分配**3. **支持虚函数和多态**4. **支持try-catch异常处理**5. **更灵活的控制流**6. **支持std::initializer_list**7. **支持修改union活跃成员**8. **允许更多类型的非类型模板参数**总结 C20对 constexpr进…

Tomcat 乱码问题彻底解决

1. 终端乱码问题 找到 tomcat 安装目录下的 conf —> logging.properties .修改ConsoleHandler.endcoding GBK &#xff08;如果在idea中设置了UTF-8字符集&#xff0c;这里就不需要修改&#xff09; 2. CMD命令窗口设置编码 参考&#xff1a;WIN10的cmd查看编码方式&…

以太坊测试网

文章目录 什么是测试网如何使用测试网获取测试以太币 什么是测试网 测试网&#xff08;Testnet&#xff09;是一个模拟以太坊主网&#xff08;Mainnet&#xff09;行为的区块链网络。它允许开发人员和用户在不使用真实资金的情况下测试智能合约和应用程序。虽然测试网上的代币…

算法随笔_62: 买卖股票的最佳时机

上一篇:算法随笔_61:二进制求和-CSDN博客 题目描述如下: 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获…

腾讯混元文生图大模型(Hunyuan-DiT)与Stable Diffusion(SD)对比分析

腾讯混元文生图大模型&#xff08;Hunyuan-DiT&#xff09;与Stable Diffusion&#xff08;SD&#xff09;对比分析 腾讯混元文生图大模型&#xff08;Hunyuan-DiT&#xff09;与Stable Diffusion&#xff08;SD&#xff09;作为当前文生图领域的两大代表模型&#xff0c;各自…

【HTML—前端快速入门】HTML 基础

准备工作 vscode下载 百度网盘 Subline Text 下载 Sublime Text下载 百度网盘 vscode 下载 Sublime Text 是一款轻量好用的文本编辑器&#xff0c;我们在写前端代码时&#xff0c;使用 Sublime Text 打开比使用记事本打开&#xff0c;得到的代码体验更好&#xff0c;比 vscode…

基于单片机的GPS定位系统设计

1 系统硬件 1.1单片机模块 单片机的种类和型号可以说是有成百上千种&#xff0c;很多大的公司和企业都生产开发自己的单片机芯片&#xff0c;并且广泛应用于各种产品。Intel、 philips、 摩托罗拉、凌阳、宏晶等等种类繁多。大体上可以分为51系列单片机和非51系列单片机。 其…

对大模型输出的 logits 进行处理,从而控制文本的生成

对大模型输出的 logits 进行处理&#xff0c;从而控制文本的生成 flyfish 在文本生成任务中&#xff0c;模型输出的 logits 代表了每个词被选为下一个生成词的未归一化概率得分。通过对 logits 进行处理&#xff0c;可以精确地控制文本的生成 基本原理 在每一步生成过程中&…

Reids缓存穿透、缓存雪崩和缓存击穿

Redis缓存中常见的三个问题&#xff1a;缓存穿透、缓存雪崩和缓存击穿。这些问题在使用Redis作为缓存时经常遇到&#xff0c;但通过合理的策略可以有效解决。我会用简单易懂的方式来讲解&#xff0c;帮助你理解这些问题的原理和解决方案。 1. 缓存穿透 1.1 什么是缓存穿透&…

附录-Python — 包下载缓慢,配置下载镜像

1️⃣命令行配置 pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/ pip config set install.trusted-host mirrors.aliyun.com 2️⃣配置文件配置 1、打开文件夹&#xff0c;输入 %APPDATA% 回车 2、打开 %APPDATA% 路径&#xff0c;并在此路径下新建…

VS 2019 免费版 下载与安装 教程说明

推荐大家直接转到第13步&#xff0c;点击链接即可下载VS2019版本 1.VS官网 2.登录账号 3.在搜索栏输入“2019” 4.点击2019这个标题 5.点击“下载” 6.选择合适的版本下载 7.打开下载文件&#xff08;若下载过程总是转圈圈&#xff0c;则换个网络下载即可&#xff09; 8.安…

介绍 torch-mlir 从 pytorch 生态到 mlir 生态

一、引言 The Torch-MLIR project provides core infrastructure for bridging the PyTorch ecosystem and the MLIR ecosystem. For example, Torch-MLIR enables PyTorch models to be lowered to a few different MLIR dialects. Torch-MLIR does not attempt to provide a…