【发布时间】:2021-04-07 08:10:08
【问题描述】:
我正在使用 Tensorflow (2.4) 和 Keras 来构建我的神经网络模型。它需要两个张量作为输入并给出一个标量输出。网络已经过训练,从现在开始,它具有固定的权重。给定两个输入中的一个,是否有可能找到使输出值最大化的另一个输入的值? 提前谢谢你
【问题讨论】:
标签: tensorflow keras neural-network tensorflow2.0 reinforcement-learning
我正在使用 Tensorflow (2.4) 和 Keras 来构建我的神经网络模型。它需要两个张量作为输入并给出一个标量输出。网络已经过训练,从现在开始,它具有固定的权重。给定两个输入中的一个,是否有可能找到使输出值最大化的另一个输入的值? 提前谢谢你
【问题讨论】:
标签: tensorflow keras neural-network tensorflow2.0 reinforcement-learning
理论上是的。
让我们将您的网络模型称为f。它需要两个输入 x 和 y 并输出 f(x, y)。然后,假设x和f是固定的,你可以找到最大化f(x, y)的值y*如下:
计算f 相对于y 的梯度。那么,有两种可能。
存在静止点。只需设置df/dy = 0 并求解y。这给出了y*,其中有最大值或最小值。计算f(x, y*) 以检查天气y* 给出最大值或最小值。
没有固定点(或没有最大值)。在这里,您需要研究如果y 变化,f 在哪里减少或增加。为此,请查找df/dy > 0(增加)和df/dy < 0(减少)。你会发现,渐近地,函数增加了。只需采用y*=a,其中a 是您可以采用的最接近此类渐近线的值(考虑到您的数据类型精度)。
【讨论】: