gpt4 book ai didi

python - 使用第二动量作为新成本函数的一部分? (Tensorflow 和/或 keras)

转载 作者:行者123 更新时间:2023-11-28 17:14:54 25 4
gpt4 key购买 nike

我目前正在尝试采用 Adam 的二阶矩项 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相关行:

g_t = d Cost / d weights
v_t = beta2 * v_{t-1} + (1 - beta2) g_t^2

现在,如果您要将 v_t 包含在 Cost 中,这将是一个隐式方程:

g_t = d Cross Entropy / d weights + d (v_t*some_function) / d weights
v_t = beta2 * v_{t-1} + (1 - beta2) g_t^2

注意 v_t 如何出现在两个等式中。我们可以将其扩展为更清晰

v_t = beta2 * v_{t-1} + (1 - beta2) [d Cross Entropy / d weights + d (v_t*some_function) / d weights]^2

您可以尝试精确地解决这个问题,但这样做您将不得不使用某种形式的隐式求解器,这在计算上会非常昂贵。一种方法是 fixed point iteration .

关于python - 使用第二动量作为新成本函数的一部分? (Tensorflow 和/或 keras),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com