如果从深度网络的角度来看,网络的层数有多种解释,有的人将卷积层,激活层,池化层等都单独算作网络的一层,而有的人则会将相邻的一组卷积层+激活层+池化层合起来算作一层。两种叫法都是没有问题的,这里我们采用后一种叫法。

激活层的作用简单来讲是对多层网络去线性,以使网络的多层有意义。所以这一层实际上是对卷积神经网络自身缺陷的一个纠正措施(随着学习的深入,你还会不断了解到卷积网络更多的方方面面的缺陷,也因此了解到各种纠正技术)。

什么是线性,多层网络又为什么要去线性,这里我们暂不展开解释,留待讲解卷积网络原理的时候再来统一说明。这里仅介绍什么是激活层。

激活层是在卷积层计算出输出结果之后,在这一层的输出的基础上,加上一个偏置值,再经过一个激活函数,得到激活层的输出。

以之前我们使用的例子来讲解。

计算结果如下:

255 x (-1) + 255 x 0 + 0 x 1 + 255 x (-1) + 255 x 0 + 0 x 1 + 255 x (-1) + 255 x 0 + 0 x 1 = -765

将这个结果,加上一个偏置,比如9,则得到

255 x (-1) + 255 x 0 + 0 x 1 + 255 x (-1) + 255 x 0 + 0 x 1 + 255 x (-1) + 255 x 0 + 0 x 1 + 9 = -756

然后再经过一个激活函数的计算,得到最终结果。激活函数有多个选择,当前(写这个文章的时候)比较受欢迎的是RELU函数,函数也比较简单,就是任何小于0的自变量,结果为0,而大于0的自变量,结果为自身。

或者更简单一点:y = max(0, x)。