深度卷积网络原理—非线性激活的必要性
假设有如上图所示的神经网络实例图
网络描述如下:
1)有2个输入,即图中的x1、x2
2)有3个神经元,即途中的b1、b2、b3
3)共2层网络。第1层的神经元是b1、b2,第2层的神经元是b3.可将中间层称为隐层。例如途中的b1、b2就属于隐层
4)有6个权重(w11到w23)。最终输出为OUT。
神经元b1的输出是: x1w11+x2w21+b1
神经元b2的输出是:x1w12+x2w22+b2
如果没有非线性激活,那么最终的输出OUT的计算公式是:
OUT=(x1w11 + x2w21 + b1)* w13 + (x1w12 + x2w22 + b2)*w23 + b3
=x1*(w11w13 + w12w23) + x2 * (w21w13 + w22w23)+(b1w13 +b2w23 +b3)
从上面的公式可以看出,虽然用了3个神经元,但这个网络对于x1和x2仍然是线性的,完全等价于1个神经元的效果。
如下图:
因此,如果只是把神经元简单的连接在一起,不加入非线性处理,最终得到的仍然是线性函数,无法完成描述各种复杂的现象,可看出在神经元的输出时需要一个非线性函数是必要的。
若非线性激活函数对于中间层神经元是f,对于最终输出神经元是g,那么,对于此前的网络,最终的输出会变为:
OUT=g(f(x1w11 + x2w21 + b1)* w13 + f(x1w12 + x2w22+b2)*w23 + b3)
由于f和g都是非线性的,于是最终可得到非线性的网络输出,即可拟合出复杂的数据。