如果我想针对某个约束值优化一个函数,我可以在无约束空间和约束空间之间找到一个双射映射,然后针对无约束值优化原始函数和双射映射的组合。
在不同的空间进行优化是否会影响优化的性能或准确性?它在双射映射之间会有所不同吗?
我的用例是使用 TensorFlow Probability 的双射器在 GPflow 中训练受约束的高斯过程模型超参数。
如果我想针对某个约束值优化一个函数,我可以在无约束空间和约束空间之间找到一个双射映射,然后针对无约束值优化原始函数和双射映射的组合。
在不同的空间进行优化是否会影响优化的性能或准确性?它在双射映射之间会有所不同吗?
我的用例是使用 TensorFlow Probability 的双射器在 GPflow 中训练受约束的高斯过程模型超参数。
如果我对您的理解正确,您可能有一些变量被限制为正数并希望对其进行优化。为此,您在不受约束的空间中训练变量?
这在机器学习中很常见,例如,通过取无约束值的指数来强制方差(假设是可能性)为正。
我想对优化的影响很大程度上取决于你如何优化它。对于基于梯度的方法,它确实有效果,有时小技巧有助于改善这些问题(例如移位,以便您的转换为 tf.exp(shift_val + unconstrained_variable) )。
是的,afaik 它在不同的映射之间有所不同。在我的示例中,softplus 和指数变换导致不同的梯度。艰难,我不确定是否同意哪一个更可取。
我只是尝试几个不同的。只要它不会导致数值问题,转换/双射都应该没问题。
编辑:只是为了澄清。双射不应该影响解空间,只影响优化路径本身。