有没有办法计算神经网络计算的函数的封闭形式表达式?

人工智能 神经网络 函数逼近 通用逼近定理
2021-11-08 16:54:11

如通用逼近定理所述,神经网络几乎可以逼近任何函数。

有没有办法计算神经网络计算/近似的函数的封闭形式(或解析)表达式?

或者,或者,找出函数是线性的还是非线性的?

3个回答

检查一个函数是否是线性的很容易:如果你可以训练一个完全连接的层,没有激活,正确的维度(对于一个函数RnRm你需要nm权重,也就是对应于线性应用程序的矩阵),有足够的数据,达到 100% 的准确度......然后它是线性的。

估计的函数是明确的:它由 NN 的架构及其权重给出。我认为你不能希望得到像“sin(πx+ϕ)+4“如果它还没有在 NN 的预测能力中。NN 的可解释性是一个热门话题。在什么情况下,符号推理可以导致简化的表达?

网络就是功能。

网络是一个函数,它通过描述学习的架构和系数的术语来建模。

看一个简单的模型:

f(x)=ax+b

您的求解器确定ab,然后将它们替换为f(x)然后你就可以计算f(42). 该函数根据定义是线性的,但可能不适合您的数据。

看看输入数据是否可能属于线性函数,当你有一个网络时,它既可以拟合线性函数,也可以拟合高阶函数。例如尝试使您的数据适合

f(x)=ax2+bx+c

该函数是线性的,当a=0. 如果函数是二次的,你会得到a0如果它的阶数高于2你会变得不适合任何a,b,c.

在查看 MLP 和类似网络时,“它是线性的”这个问题可能不是那么容易回答,但如何获得函数的问题是相同的:你训练的网络就是函数。

我想看看现有网络近似的函数是否是线性的一种选择是训练仅包含线性元素的第二个网络。如果它能够逼近您的第一个网络,那么第一个网络也是线性的。当然,您将需要正确的测试数据,因为您可能会意外选择在非线性函数中具有线性相关输出的训练集。这当然是和往常一样的问题,你的网络总是只能和训练数据一样好。

与此答案中所写的相反,即使该神经网络计算非线性函数,您也可以获得神经网络计算的函数的解析表达式。看看这个例子:即它只是你用来执行神经网络前向传递的表达式。问题是如何解释这个函数,它的一般行为方式,以及它与神经网络应该近似计算的通常未知的函数有何不同:这就是为什么神经网络被称为黑盒模型,因为它们不容易可解释的。