relu激活函数在神经网络中到底起到了什么作用?

神经网络中激活函数的最直接目的是给网络提供非线性,如果没有激活函数,那么网络的每一层计算都将保持着上一层的线性结果,这样重复下去永远都是线性组合。

那么激活函数在神经网络中具体会对图片带来哪些变化呢?

我们做一个简单的实验,使用的网络第一层为conv2d,第二层为relu激活函数。

我们可视化一下这两层的特征图。

首先是原始特征图:

relu激活函数在神经网络中到底起到了什么作用?_第1张图片

第一层卷积后的特征(浅层的卷积提取的往往都是一些表面的特征,例如颜色,形状等一些基本的特征)

relu激活函数在神经网络中到底起到了什么作用?_第2张图片

接下来是relu层之后的变化:

relu激活函数在神经网络中到底起到了什么作用?_第3张图片

 可以看出,图像的纹理形状细节等特征没有发生变化,只是感觉暗了一些,这就是rule所带来的影响,从数学的角度也可以很好的解释,最基本的rule函数其实就是if x>0 : output =x ; else: x=0;

它只是给网络提供了一种非线性,当然这张图可能看起来不是特别明显,看一下下面这张图的变化。

relu激活函数在神经网络中到底起到了什么作用?_第4张图片

左边的是conv2d后的结果,右侧为经过relu层后的结果。这张图可以明显的看出relu函数对图像直接的影响了。 

你可能感兴趣的:(人工智能,深度学习)