如何提取神经网络逼近的函数?

机器算法验证 神经网络 近似
2022-03-11 17:01:59

我们都知道,一般来说,神经网络接收一组具有形式的训练示例,它旨在逼近函数,从而将 “分类”为正确的输出。{x,f(x)}fx

这不仅适用于函数逼近,而且几乎适用于任何领域。分类问题本质上是函数逼近问题,其中函数适当地对输入进行分类。x

这意味着一般来说,对于任何神经网络问题,目标始终是逼近目标函数在实践中,我们很少关心到底是什么,只要神经网络正确地完成它的工作。例如,如果我们训练神经网络在给定特征向量的情况下正确分类苹果和橙子,我们并不会真正考虑在此过程中逼近的实际函数也就是说,该函数基本上完成了在 apple 和 orange 之间进行分类的所有魔力f(x)f(x)xf

我的问题是,有没有办法实际提取这个明确的近似值?无论是在实践中还是在理论上?ff^

2个回答

让我们表示真正的基础函数,表示您的机器学习算法也收敛的函数(属于参数化函数族)。为简单起见,我们还假设可以解析表示并且是确定性的。ff^f^Fff

我的问题是,有没有办法实际提取这个显式函数 f?无论是在实践中还是在理论上

我假设“实践”是指机器学习(使用实验数据),而“理论”是指在没有机器学习的情况下进行数学建模(没有数据)。

在实践中,如果您有足够的数据并且如果包含,那么应该可以使用适当的机器学习方法 =Fff^f

理论上,您可以尝试使用物理定律(或其他建模定律)例如,如果模拟形状为 s 且重量为 p 的物体从埃菲尔铁塔顶部坠落所需的时间,您可以使用经典力学(假设它们在的范围/尺度内是正确的) 为建模。ff(p,s)ff

对于苹果和橙子,对特定的人是主观的(给定一个模棱两可的图片,两个人可能不同意)。所以让我们考虑你的由您的大脑定义!因此,如果我们假设存在的解析表达式,则有两种方法可以找到它:ffff

  • “在实践中”(使用机器学习):选择足够大的 F 来模拟大脑(大脑有超过 800 亿个神经元......),构建足够大的数据集并选择好的机器学习算法。理想情况下,数据集应该包含橙子和苹果的所有可能图像。然后训练直到你得到一个空训练错误和一个空泛化错误。
  • “理论上”(建模):为大脑的生物神经元网络建模。问题是我们还不了解大脑是如何工作的。

回顾一下,你通常可以找到但在这两种情况下都很难:f

  • 在实践中:你需要一个好的 F、足够的数据和足够好的 ML 算法。
  • 理论上:您需要了解所有“物理定律”,并确保它们在函数的范围内是正确的。f

理论上:网络的结构——有多少层,每层有多少个节点以及激活函数是什么——为您提供了网络的一般功能形式。添加估计的权重以获得特定的估计函数f^. 所有这些原则上应该为网络的“用户”所知/可用。

在应用中:实现神经网络的软件通常会将结构(层数、节点数和激活函数)作为参数,并在需要时输出估计的权重。

因此显式函数f^(网络对底层真实函数的逼近f) 可以在理论上和实践中提取。但是,我看不出真正的功能如何f可以提取,我认为一般来说这可能是不可能的。