我们特定的训练问题要求CNN内核中的所有权重都必须为正。有人知道该怎么做吗?
答案 0 :(得分:1)
您正在寻找内核约束,此链接here提供了您问题的答案。 您既可以使用内核约束,也可以简单地采用lagrange优化技术在总损失函数中添加一项,从而消除不需要的权重特征。像这样(在参考答案中已提及)
added_loss = -tf.minimum(tf.reduce_min(theta),0)
final_loss = your_loss + added_loss
optimizer.minimize(final_loss)
还需要注意的是,添加此损失仅会鼓励优化寻找具有theta的解决方案,或者正如您所说的权重均为正数,但不能保证最佳拟合参数都为正数。为了确保这种行为,您可以在 0和+ infinity。