当前位置:   article > 正文

卷积神经网络(CNN)_卷积神经网络有非线性函数吗

卷积神经网络有非线性函数吗

卷积神经网络的各层中的神经元是3维排列的:宽度、高度和深度。卷积神经网络主要由输入层、卷积层,ReLU层、池化(Pooling)层和全连接层(全连接层和常规神经网络中的一样)构成。在实际应用中往往将卷积层与ReLU层共同称之为卷积层,所以卷积层经过卷积操作也是要经过激活函数的

 在单层神经网络时,我们使用的激活函数是sgn函数。到了两层神经网络时,我们使用的最多的是sigmoid函数。而到了多层神经网络时,研究发现ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。因此,目前在深度学习中,最流行的非线性函数是ReLU函数。ReLU函数是分段线性函数。其表达式为y=max(x,0)。简而言之,在x大于0,输出就是输入,而在x小于0时,输出就保持为0。

1.卷积层

卷积层的作用类似滤波器,卷积核(kernel)/滤波器(filter)在空间上(宽度和高度)都比较小,但是深度和输入数据一致。

单次的卷积运算,即为左边红色框内的数字与卷积核(kernel)/过滤器(filter)中对应位置的数字相乘再求和,其结果为右边红色框内示出的值(0)。可以看到,框的大小,即卷积核的大小是人为设定的,直观地,可以将卷积核的大小与“时间分辨率”类比,卷积核越大,分辨率越低。

然后,将红色框向右移动一个单位(即滑动步长stride=1),再次进行卷积运算,这个过程如下图所示:

然后不断重复以上过程(向右移动到末端之后,回到起始位置,再向下移动同样的stride,再重复以上过程即可),可以得到最终结果:

由以上卷积过程可以看到,卷积运算可能导致“图像”减小,可以采用填充(padding)的方式来处理。

如下图所示,为了使得大小为6*6的图像(N2)经卷积运算后大小不变,可以事先填充,将其变为8*8的图像(这里用0填充),经过卷积运算可以得到6*6的图像(N3)。称这种图像经卷积运算后大小不变的填充方式为same(在许多CNN的模型如VGG-16中都会用到same方式的卷积运算)。

2.池化层

通常在连续的卷积层之间会周期性地插入一个池化层,以减少运算量。如下图所示,选择3*3的区域(红色框),最大池化即为从中选取最大值(这里是2)。步长stride=3(图中用s表示),因此可以得到四个池化后的值。

在实际应用中,CNN中往往用到多个通道的情形,以三个通道的情形为例,卷积运算过程如下图所示:

一般用立方体的形式表示以上过程,且往往卷积核数目为多个,如下图所示:

3.全连接层

与常规神经网络一样,它们的激活可以先用矩阵乘法,再加上偏差。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/194382?site
推荐阅读
相关标签
  

闽ICP备14008679号