我正在使用Tensorflow Adam方法来优化一个随机函数,它(几乎)与神经网络无关,而是与概率推理有关。
Adam能很好地找到代价函数的全局最优解,但是我的变量是有界的,Adam无法实现边界,因为它是一种无约束的优化方法。在我的例子中,我想保持所有变量都是正数。
一般情况下,如何对基于随机梯度下降的方法增加界?有什么已经实现的解决方案,我认为这是一个相当常见的问题吗?
发布于 2019-01-21 14:15:22
您可以添加虚拟变量来强制执行边界。例如,假设您希望a是正的,那么您可以做的就是引入变量b并进行计算。
a = log(1 + exp(b))另一个例子,如果您希望c在a和b中,您可以引入d和计算
c = a + (b - a) / (1 + exp(-d))https://stackoverflow.com/questions/54291737
复制相似问题