CNN(卷积层convolutional layer,激励层activating layer,池化层pooling,全连接层fully connected)

CNN产生的原因:当使用全连接的神经网络时,因为相邻两层之间的神经元都是有边相连的,当输入层的特征纬度非常高时(譬如图片),全连接网络需要被训练的参数就会非常多(参数太多,训练缓慢),CNN可以通过训练少量的参数从而进行特征提取。

CNN(卷积层convolutional layer,激励层activating layer,池化层pooling,全连接层fully connected)
上图每一个边就代表一个需要训练的参数,可以直观的感受到需要训练的参数太多了。

CNN的优点:1.相邻两层神经元部分相连。2.且同一层神经元的w(权重)和b(偏移)是共享的。

卷积:用一个核(矩阵)和图片相乘,相当于进行低通道滤波,因此这个核也被称为滤波器。当对一个图进行卷积,在特定的曲线和周边区域,得到的值很高,在其他区域,值相对较低,因此卷积得到的结果也叫**图。

为什么说CNN相邻两层神经元部分相连:因为上一层和下一层通过卷积核来连接,譬如一个2*2的卷积核,它和输入进行乘法得到下一层的一个神经元的值: 4-->1,因此在这个例子里,上层的四个神经元对应下层的一个神经元,所以叫相邻两层神经元部分相连。

为什么说CNN同一层神经元的权值共享:因为上层和下层仅仅通过卷积核来操作,一层神经元仅仅依赖于这个卷积核,没有其他需要依赖的参数,所以该层的权值就是这个卷积核的大小和步长。(换句话说,训练的就是这个卷积核)

CNN(卷积层convolutional layer,激励层activating layer,池化层pooling,全连接层fully connected)

feature map:将一个卷积核对输入数据进行扫描得到的下层神经元矩阵。

激励层:主要对卷积层的输出进行一个非线性映射,一般为ReLu函数。

使用ReLu时,应调小learning rate,防止出现很多梯度为零的神经元
如果不能解决learning rate的问题,就使用Leaky ReLu、PReLu来替代
不建议使用sigmoid函数,用tanh替代
池化层:当卷积核很小时,得到的feature map还是很大,可以通过池化层来进行降维操作,一般有两种方式:

max pooling:取池化视野中的最大值
Average pooling:取池化视野中的平均值
池化视野类似于卷积核的local receptive field

CNN(卷积层convolutional layer,激励层activating layer,池化层pooling,全连接层fully connected)

转自:https://blog.****.net/whyymlm/article/details/79739840