Neural network 使用反向传播近似函数,然后找到其最大值?

Neural network 使用反向传播近似函数,然后找到其最大值?,neural-network,mathematical-optimization,backpropagation,Neural Network,Mathematical Optimization,Backpropagation,我有一个未知函数,比如F(x),我用反向传播神经网络来近似。当然,这是可以做到的,因为它是在神经网络的标准曲目 F(x)不显式存在。它是从一组训练数据点中学习的 比如说,神经网络学习一个近似于F(x)的函数G(x) 在G的学习完成后,我想找到G(x)的全局最大值,以及出现时x的位置 假设G是由NN隐式实现的,我没有G的显式形式 有没有什么快速算法可以让我找到G(x)的arg max(x)?神经网络会产生不连续函数(通常),因为它由不连续函数网络组成(神经元在某个阈值触发,这是跳跃不连续)。但是—

我有一个未知函数,比如F(x),我用反向传播神经网络来近似。当然,这是可以做到的,因为它是在神经网络的标准曲目

F(x)不显式存在。它是从一组训练数据点中学习的

比如说,神经网络学习一个近似于F(x)的函数G(x)

在G的学习完成后,我想找到G(x)的全局最大值,以及出现时x的位置

假设G是由NN隐式实现的,我没有G的显式形式


有没有什么快速算法可以让我找到G(x)的arg max(x)?

神经网络会产生不连续函数(通常),因为它由不连续函数网络组成(神经元在某个阈值触发,这是跳跃不连续)。但是——如果在你的应用程序中,把G(x)看作(近似)连续甚至可微是有意义的,你可以使用爬山技术,从一个随机点开始,估计导数(或者梯度,如果
x
是向量而不是标量),然后朝着最陡的方向移动一小步,重复此过程,直到没有发现任何改进。这将为您提供一个近似的局部最大值。可以使用不同的随机起始值重复此过程。如果您总是得到相同的结果,那么您可以有理由相信(尽管不确定)它实际上是一个全局最大值


如果没有对G(x)的任何假设,就很难说任何确定的东西。如果随机选择
x
,则
G(x)
是一个随机变量。您可以使用统计方法来估计其第99个百分位。你也可以尝试使用一种进化算法,
G(x)
在其中扮演适应度函数的角色。

你能举一个这样一个函数的例子,你可以近似和训练数据集吗?只是为了确保我理解你:你有一个x的列表和在这些点上F(x)值的对应列表,你想找到F(x)的局部/全局极大值。我说的对吗?@ZachiShtain,这是一套行动训练,而不是他想要评估的。神经网络是一个分类器,你不能从中提取它生成的隐函数。是的,我想找到学习函数G(x)的全局最大值,它是F(x)的近似值。F(x)不明确存在。问题相应地编辑。如果单个神经元具有S形阈值函数,那么产生的G(x)不是连续且可微吗?我想到的是各种各样的神经网络,其中的元素要么激发,要么不激发。如果你有一个版本,其中输出是输入的一个可微函数,那么,是的,整个函数是可微的。能利用神经网络的结构让我更快地找到最大值吗?@YanKingYin问得好。我不知道,但我认为原则上答案是“是”。知道一个函数是如何组合在一起的可能不会有什么坏处。我是从数值微分的角度考虑的。可能是对称的差商(通常用于图形计算器中的微分)