neural-network - 为孪生网络中的对比损失选择边际
问题描述
我正在为度量学习任务构建一个孪生网络,使用对比损失函数,我不确定如何为损失设置“边际”超参数。
我对损失函数的输入目前是来自 RNN 层的 1024 维密集嵌入 - 该输入的维度是否会影响我选择边距的方式?我应该先使用密集层将其投影到低维空间吗?任何有关如何选择特定保证金值(或任何相关研究)的指示都将不胜感激!万一这很重要,我正在使用 PyTorch。
解决方案
您不需要将其投影到较低维度的空间。边距与空间维度的相关性取决于损失的公式化方式:如果您不对嵌入值进行归一化并计算向量之间的全局差异,则右边距将取决于维度。但是,如果您计算归一化差异,例如余弦距离,则边距值将不取决于嵌入空间的维度。这里解释了排名(或对比)损失,它可能有用https://gombru.github.io/2019/04/03/ranking_loss/
推荐阅读
- javascript - JS keydown/keyup 交互正在阻塞其他按键效果
- mysql - 将存储过程的每一行插入一个表中
- visual-studio-code - 视图:Explorer + Run 一起显示
- html - 图片在桌面上显示,但在移动设备上不显示
- javascript - JMeter - 将内联 javaScript 替换为 BeanShell
- reactjs - React Native - 嵌套屏幕之间的导航
- spring-kafka - java.util.LinkedHashMap 无法转换为类 GenericEvent - objectmapper typeReference
- javascript - 从历史记录中同时恢复多个页面会导致奇怪的 localStorage 读/写进程(chrome)
- selenium - Datepicker 代码不适用于 Yatra 网站
- number-formatting - Java.NumberEception.Format 错误以及如何解决