【问题标题】:Efficient hard data sampling for triplet loss用于三元组损失的高效硬数据采样
【发布时间】:2017-07-25 03:12:31
【问题描述】:

我正在尝试在 Caffe 中为三元组损失实现一个深度网络。 当我随机选择三个样本作为锚、正、负图像时,几乎产生零损失。于是我尝试了以下策略:

If I have 15,000 training images,
1. extract features of 15,000 images with the current weights.
2. calculate the triplet losses with all possible triplet combinations.
3. use the hard samples with n largest losses, and update the network n times.
4. iterate the above steps every k iterations to get new hard samples.

第 1 步很快,但我认为第 2 步非常耗时,效率非常低。所以,我想知道是否还有其他有效的硬数据采样策略。

谢谢。

【问题讨论】:

  • 如果我没记错的话,描述三元组损失的论文有一个负挖掘方法——你应该看看。您是否考虑过使用Wexler at al. multibatch loss

标签: neural-network deep-learning caffe conv-neural-network pycaffe


【解决方案1】:

在实践中,如果您的数据集很大,从整个数据集中抽取硬三元组是不可行的。事实上,您可以只为一小部分训练数据集选择硬三元组,这样会更节省时间。在使用为 K 次迭代生成的硬三元组训练网络之后。您将数据集中的下一批图像提供给网络,并生成新的硬三元组。

这样,计算成本是可以接受的,网络随着训练的进行而逐渐完善。

请参阅article here 以获取更多参考。(第 5.1 节)

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2019-04-05
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多