神经网络中激活函数的最直接目的是给网络提供非线性,如果没有激活函数,那么网络的每一层计算都将保持着上一层的线性结果,这样重复下去永远都是线性组合。
那么激活函数在神经网络中具体会对图片带来哪些变化呢?
我们做一个简单的实验,使用的网络第一层为conv2d,第二层为relu激活函数。
我们可视化一下这两层的特征图。
首先是原始特征图:
第一层卷积后的特征(浅层的卷积提取的往往都是一些表面的特征,例如颜色,形状等一些基本的特征)
接下来是relu层之后的变化:
可以看出,图像的纹理形状细节等特征没有发生变化,只是感觉暗了一些,这就是rule所带来的影响,从数学的角度也可以很好的解释,最基本的rule函数其实就是if x>0 : output =x ; else: x=0;
它只是给网络提供了一种非线性,当然这张图可能看起来不是特别明显,看一下下面这张图的变化。
左边的是conv2d后的结果,右侧为经过relu层后的结果。这张图可以明显的看出relu函数对图像直接的影响了。