我现在试着用亚当的二阶矩项,v,t,在我的成本函数中作为一个附加项。如何实现这样的功能:
Cost = Cross Entropy + v_t*some_function(weights)
这可以在python中实现吗?或者我必须编写自己的C++代码来完成这个任务吗?这在Keras这样的框架中也很容易实现吗? 下面是我试图添加到keras中的成本函数的代码:
def my_loss(y_pred, y_true, current_weights, v_t):
normal_loss=K.categorial_cross_entropy(y_pred,y_true)
additional_term=K.dot(K.square(current_weights - K.some_function(current_weights)), v_t)
return normal_loss + additional_term
这将是有问题的,不管你用什么样的框架。具体来说,我们从ADAM paper得到了相关的行:
现在,如果你要把v\u t计入成本,这将是一个隐含的等式:
注意在两个方程中vït是如何出现的。我们可以将其扩展为更清晰的内容
您可以尝试精确地解决这个问题,但在这样做时,您必须使用某种形式的隐式解算器,这将是非常昂贵的计算。一种方法是fixed point iteration。你知道吗
相关问题 更多 >
编程相关推荐