卷积神经网络基础模块

卷积神经网络(CNN)主要用于特征提取。卷积操作的基本思想是通过在输入数据上滑动卷积核,提取数据中的局部特征。每个卷积核都负责检测输入数据中的某种模式或特征,例如边缘、纹理等。卷积操作生成的输出被称为特征图,它是输入数据中相应特征的映射。

卷积(Convolution)

  在卷积神经网络中,卷积层的实现方式实际上是数学中定义的互相关(cross-correlation)运算。

  卷积核(kernel)也被叫做滤波器(filter),假设卷积核的高和宽分别为khkw,则将称为kh×kw卷积,,比如3×5卷积,就是指卷积核的高为3, 宽为5。

  一个卷积算子除了上面描述的卷积过程之外,还包括加上偏置项(引入非线性运算、增强模型拟合能力)的操作。

  经过卷积后,数据尺寸会变动:Hout​=H−k​h+1, Wout=Wkw+1 。在卷积计算过程中,通常会在高度或者宽度的两侧采取等量填充,Hout=H+2phkh+1,Wout=W+2pwkw+1

  卷积核每次滑动几个像素点,步幅为几

  输出特征图上每个点的数值,是由输入图片上大小为kh×kw的区域的元素与卷积核每个元素相乘再相加得到的,所以输入图像上kh×kw区域内每个元素数值的改变,都会影响输出点的像素值。我们将这个区域叫做输出特征图上对应点的感受野。感受野内每个元素数值的变动,都会影响输出点的数值变化。

  一般来说,卷积操作的输出特征图也会具有多个通道Cout,这时我们需要设计Cout个维度为Cin×kh×kw的卷积核,卷积核数组的维度是Cout×Cin×kh×kw。通常将卷积核的输出通道数叫做卷积核的个数。

池化(Pooling)

  池化层的作用是进行特征选择,降低特征数量,从而减少参数数量。由于池化之后特征图会变得更小,如果后面连接的是全连接层,可以有效地减小神经元的个数,节省存储空间并提高计算效率。

激活函数

  激活函数对输入信息进行非线性变换,然后将变换后的输出信息作为输入信息传给下一层神经元。如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,最终的输出都是输入的线性组合。 激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数。

批归一化(Batch Normalization)

  目的是对神经网络中间层的输出进行标准化处理,使得中间层的输出更加稳定。当输入数据的分布比较固定时,有利于算法的稳定和收敛。

  使学习快速进行(能够使用较大的学习率)

  降低模型对初始值的敏感性

  从一定程度上抑制过拟合

丢弃法(Dropout)

  是深度学习中一种常用的抑制过拟合的方法,其做法是在神经网络学习过程中,随机删除一部分神经元。训练时,随机选出一部分神经元,将其输出设置为0,这些神经元将不对外传递信号。

posted @ 2023-11-30 19:55  花都八达鸟  阅读(73)  评论(0)    收藏  举报