具有可变边界的Tensorflow Adam

时间:2019-01-21 14:09:56

标签: python tensorflow mathematical-optimization

我正在使用Tensorflow Adam方法优化随机函数,该函数(几乎)与神经网络无关,而与概率推断无关。

Adam在寻找成本函数的全局最优方面表现很好,但是我的变量是 bounded ,Adam无法实现边界,因为它是一种不受约束的优化方法。 就我而言,我希望变量始终为正。

通常如何为基于随机梯度下降的方法增加界限?对于我认为比较普遍的问题,是否已经实施了解决方案?

1 个答案:

答案 0 :(得分:1)

您可以添加虚拟变量以强制执行边界。例如,假设您希望a是正数,那么您可以做的是引入变量b并进行计算

a = log(1 + exp(b))

另一个示例,如果您希望cab之内,则可以引入d并进行计算

c = a + (b - a) / (1 + exp(-d))