内积空间下为什么神经网络可以拟合任何函数
柏舟 新冠5年 02-20
神经网络解决这样一个问题:假设需要拟合的函数为f*(x),有数据集D:(x,y)分布在f*(x)上,损失函数J(f(x,w)),最后得到一个最佳拟合f(x,w)。
最佳二次逼近
首先,我们看看传统的拟合方法,传统的方法将f(x)写成一组基下的坐标:
常见的基有:
- Taylor展开:\(1,x,x^2,x^3,\cdots\),
- 傅里叶变换:\(\cos nx, \sin nx\),
- Legendre多项式等等。
对于Hilbert空间,这组基展成一个平面$M=span{\phi_i}$,而f(x)的最佳二次逼近就是$J(f)=<f(x),\sum_^nk_i\phi_i(x)>$最小。用几何的话讲,f(x)可以分解成两个部分,第一项垂直于M,第二项平行于M。 \(f(x)=f_{\perp}(x)+f_{\parallel}(x)\) 显然,当J(f)最小时,第二项取得极小值。
如何计算最佳逼近的系数k
因为第二项可以由基线性表出,所以
与phi做内积:
这就是一个简单的线性方程组:
其中,\(a_{ij}=<\phi_i(x),\phi_j(x)>\),\(b_j=<f(x),\phi_j(x)>\)
比如傅里叶级数(以cos为例):
而aij,由于三角函数的正交性,A=I。所以你可以注意到,傅里叶和Legendre多项式都是正交的,实际求解系数只需要计算b,而x^n不是正交的,实际计算需要计算A。
此外,最小二次法也是上述过程的特殊形式:
实际上为:
Hilbert空间下的神经网络
对于全连接形式的神经网络,假设有n层,可以写成如下形式:
s为激活函数,K为全连接的权重,b为偏置量。
首先,s采用RELU或者Leaky-RELU这种线性的激活函数,不是线性的推导不了。神经网络可以写成:
假设$f_i(x)$只有一维,也就是求取$f_i(x)$在空间$span{ s(f_(x+b_i))}$的最佳逼近,结果为列向量k。如果为m维,对每一维求取最佳逼近,权重K为
这样递归的,一层层写方程,假如每层有m个神经元,最后总共有nmm个方程。
内积的形式如何确定?
内积的形式由损失函数J导出,但不是任意的J都能导出内积。下面以MSE为例:
对比以下的内积形式:
导出范数:
是不是一模一样?MSE其实就是以上内积形式在数据集D上的采样,然后让他们的距离最小,最小当然是f*垂直于f(x;w)时。
但是如KL散度就无法导出内积:
因为P和Q是不对称的,不满足交换律。
其它问题
偏置量b怎么办? 见有限元。
比如KL散度这种无法导出内积的怎么办? Cea定理,适用于Banach空间,同时适用于非线性的激活函数。结论是
也就是说,基取得越好,结果越逼近。详见《变分学讲义》274页。
- 为什么要求Hilbert空间或者Banach空间? 因为,虽然J有下界,但是如果空间不完备是取不到下界的。虽然现实环境中基本不存在不完备的空间,但是对于分类问题,f(x)的值域是Z不是R,连连续性都无法满足,就很难处理。