我这里不是讲各种神经网络原理的,也不是对哪一种特殊的神经网络进行探讨,我要说的是普遍的本质。现在神经网络可以做语音识别,图像处理,等等,它的功能是很强大的,那我问你,神经网络为什么这么强大?可以处理很复杂的东西。还有,为什么层数越多,每一层的隐含神经元越多,就可以处理越复杂的问题。对于以上问题,学过一点神经网络的都会知道,神经网络其实就是权重,偏移和激活函数。我把神经网络就总结为这三点。。那么为什么只是一个简单的


神经网络的本质是线性回归 神经网络 本质_机器学习

加上一些激活函数,比如sigmoid,高斯,ReLU函数等的迭代就可以解决很复杂的问题?还有为什么不是


神经网络的本质是线性回归 神经网络 本质_激活函数_02

或者更高次方呢?下面我尝试对上面的问题进行解释,来揭秘神经网络的本质。

首先我们来说下泰勒展开,我在学习现代控制理论解齐次线性微分方程的时候,书上用的一种多项式带入解法让我想到了泰勒公式,为什么会想到泰勒公式呢?因为我们在工数里学过,有n阶导数可以在一个点展开到n阶。我们看一下一元函数的泰勒展开


神经网络的本质是线性回归 神经网络 本质_激活函数_03

然后再看一看神经网络的过程,假如没有激活函数,单输入。


神经网络的本质是线性回归 神经网络 本质_神经网络的本质是线性回归_04

如果没有激活函数显然其实它就是千方百计的改变参数让一条直线尽量地去拟合你的训练集,从这个意义上讲,多层没有意义,因为


神经网络的本质是线性回归 神经网络 本质_拟合_05

已经可以去拟合一条直线了。但是我们有什么啊,有激活函数,激活函数都有很强的非线性,你去看看,有哪个激活函数是线性的。sigmoid


神经网络的本质是线性回归 神经网络 本质_神经网络的本质是线性回归_06

高斯函数


神经网络的本质是线性回归 神经网络 本质_神经网络的本质是线性回归_07

ReLU线性整流函数


神经网络的本质是线性回归 神经网络 本质_神经网络_08

因为如果激活函数是线性的,根本就没有引入激活函数的必要,对不对,因为你还是用一个线性函数在拟合啊,效果不会提高啊。如果激活函数可导,可以展开为n阶的泰勒对吧,激活函数不可导也没关系,它只要是引入了非线性就可以,可以想象成,你这个神经网络拟合的阶次就升高了对吧,就相当于神经网络最后写成的关于输入的表达式的阶次升高,好,我们可以更好的拟合非线性的数据集了。为什么不是


神经网络的本质是线性回归 神经网络 本质_激活函数_02

的关系呢?因为这样你到激活函数那里泰勒展开是有偶数项啊,会丢到奇数次项,你觉得不要奇数次项我们可以拟合的很好吗?或许可以,但大概率是不行的,更高次的丢掉的东西更多。其实到这里我是有一个可能会是神经网络的结构简单的一个想法,还没有验证过,或许第一层我们可以用


神经网络的本质是线性回归 神经网络 本质_机器学习

经过激活函数后,第二层我们用


神经网络的本质是线性回归 神经网络 本质_激活函数_02

后面逐次升高次数,通过这一步增加非线性来降低层数和神经元的数目。这只是一个想法

话先回过来,也许你会有这样的疑问?一个激活函数不是已经引入了非线性吗?为什么要加入多个?这是因为每个激活函数的泰勒展开(假如可以)的系数都是固定关系,比如


神经网络的本质是线性回归 神经网络 本质_激活函数_12

系数的关系都是固定的,只能拟合一种特定关系,无法去拟合各种各样的情况。所以需要多个激活函数的非线性去增加系数之间更复杂的关系,这里我还有一个想法,就是神经网络模型里不要只用一种激活函数,可以把激活函数混着用,我认为这样可以减少层数,还能加快收敛速度,不过还没尝试过。这里我还要提一点,梯度算法不能保证收敛到全局最优解,现实中很多问题都是非凸的。当然这也要看你用的是什么代价函数。信息熵的代价函数形式是一定保证有最有解的,它是凸函数


神经网络的本质是线性回归 神经网络 本质_神经网络_13


香农信息的定义就是不确定性的减少和确定性的增加。

我还有说一点,基于线性代数是可以把系数解出来的,我认为ELM极限学习机就是把激活函数和解线性代数方程结合,是可以完美去拟合的,或者说这已经是一种插值方式了,但是这时候过学习问题就值得我们关注了。

我再来说一说每层神经元个数的一个看法单输入的话,神经元个数增加是没有意义的,因为在没有进入激活函数之前还是一个线性的,那么进入激活函数 之后呢?那是有意义的为什么呢?虽然,泰勒展开系数是一种固定的关系,但是举个例子来说


神经网络的本质是线性回归 神经网络 本质_拟合_14

不同的x的系数(也就是权重)的泰勒展开加起来,x^n系数的关系就不是以前的关系了,关系变可以改变,所以经过一次激活函数以后,隐藏层的神经元至少要有两个。多元也是一样,多元泰勒展开,以二元为例


神经网络的本质是线性回归 神经网络 本质_激活函数_15

增加神经元的个数可以让系数的关系更多变,增加层数也是一样的道理。

这只是我初步的一个思想,还不能很精确的表述,以后可能会想的更明白。