我正在为度量学习任务构建孪生网络,使用对比损失函数,但我不确定如何为损失设置“ margin ”超参数。
我对损失函数的输入目前是来自 RNN 层的 1024 维密集嵌入 - 该输入的维数会影响我选择边距的方式吗?我应该先使用密集层将其投影到低维空间吗?非常感谢任何有关如何选择特定 margin 值(或任何相关研究)的指示!以防万一,我使用的是 PyTorch。
最佳答案
你不需要将它转换到低维空间。 边距与空间维度的相关性取决于损失的公式化方式:如果您不对嵌入值进行归一化并计算向量之间的全局差异,则右边距将取决于维度。但是,如果您计算归一化差异,例如余弦距离,则边距值将不依赖于嵌入空间的维数。 这里解释了排名(或对比)损失,可能有用 https://gombru.github.io/2019/04/03/ranking_loss/
关于neural-network - 为孪生网络中的对比损失选择边际,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54892607/