A visual proof that neural nets can compute any function
- 神经网络可以近似任何连续函数的直观解释by Michael Nielsen / Oct 2018
一、Case1:one input&one output
-
hiden layer 中采用的激活函数是sigmoid函数:
-
当只有一个hiden layer 神经元(另一个W设为0),且W足够大的时候,通过调整b,可以得到[0,1]区间内的一个阶跃函数。
-
类似的,当同时利用两个hiden layer 神经元时,我们可以通过调整权值,使得其近似于bump function:
其中
-
推而广之,当我们的hiden layer中的神经元越多,就能利用bump function的叠加组合,得到任意一个函数更好地近似。
二、Case2:two input&one output
- 此时NN近似的函数在三维空间中,为二元函数。
- 与一元情况相类似的,我们可以使得NN近似一个阶跃函数,
- 同时,也可以得到一个三维空间中的bump function:
- 当同时利用了x,y输入时,可以得到一个Tower function:
- 推而广之,可以得到任意一个三维空间内部的函数的良好近似效果:
当加上bias项时,可以看做Tower function的上下平移。
二、Extension beyond sigmoid neurons
- 不只是基于sigmoid激活函数的神经元可以进行对于任意函数的近似效果,其他的激活函数也可以达到同样的效果:随着权重越来越大,此函数也不断收缩,进而也能够产生step function的特征:
三、Fixing up the step functions
- 虽然我们的神经元近似的阶跃函数会有一定的误差,在每一次的近似过程中产生“a narrow window of failure”。但是我们可以通过大量的近似函数的平均来减小误差。