【问题标题】:How to find the input that maximize the Neural Network output in Tensorflow如何在 Tensorflow 中找到最大化神经网络输出的输入
【发布时间】:2021-04-07 08:10:08
【问题描述】:

我正在使用 Tensorflow (2.4) 和 Keras 来构建我的神经网络模型。它需要两个张量作为输入并给出一个标量输出。网络已经过训练,从现在开始,它具有固定的权重。给定两个输入中的一个,是否有可能找到使输出值最大化的另一个输入的值? 提前谢谢你

【问题讨论】:

    标签: tensorflow keras neural-network tensorflow2.0 reinforcement-learning


    【解决方案1】:

    理论上是的。

    让我们将您的网络模型称为f。它需要两个输入 xy 并输出 f(x, y)。然后,假设xf是固定的,你可以找到最大化f(x, y)的值y*如下:

    计算f 相对于y 的梯度。那么,有两种可能。

    1. 存在静止点。只需设置df/dy = 0 并求解y。这给出了y*,其中有最大值或最小值。计算f(x, y*) 以检查天气y* 给出最大值或最小值。

    2. 没有固定点(或没有最大值)。在这里,您需要研究如果y 变化,f 在哪里减少或增加。为此,请查找df/dy > 0(增加)和df/dy < 0(减少)。你会发现,渐近地,函数增加了。只需采用y*=a,其中a 是您可以采用的最接近此类渐近线的值(考虑到您的数据类型精度)。

    【讨论】:

      猜你喜欢
      • 2019-03-11
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 2016-10-21
      • 2022-07-04
      • 2017-03-16
      相关资源
      最近更新 更多