学习资料来源:零基础入门深度学习(4) - 卷积神经网络
卷积神经网络(Convolutional Neural Network,CNN),是一种适用于语音识别、图像识别任务的神经网络结构,比如谷歌的GoogleNet、微软的ResNet等。
一、激活函数——Relu
Relu函数的定义是:f(x)=max(0,x),优势有速度快、减轻梯度消失问题及稀疏性等,图像如下图所示:
二、全连接网络 VS 卷积网络
全连接网络 | 参数数量太多,没有利用像素之间的位置信息,网络层数限制 |
卷积网络 | 局部连接,权值共享,下采样 |
三、卷积神经网络
3.1 卷积神经网络的结构
一个卷积神经网络由若干卷积层(卷积层的Filter数是一个超参数)、Pooling层、全连接层组成。 常用架构模式为:
INPUT -> [ [CONV]*N -> POOL?]*M -> [FC]*K
三维的层结构:
卷积神经网络每层的神经元是按照三维排列的,有宽度、高度和深度。
3.2 卷积神经网络输出值的计算
卷积后的Feature Map大小和图像大小、步幅是有关系的。满足以下关系:
其中,W2是卷积后Feature Map的宽度,W1是卷积前图像的宽度,F是filter的宽度,P是Zero Padding(指在原始图像周围补几圈0)数量,S是步幅,H2是卷积后Feature Map的高度,H1是卷积前图像的宽度。
3.3 Pooling层输出值的计算
Pooling层主要的作用是下采样,通过去掉Feature Map中不重要的样本,进一步减少参数数量。常用的是Max Pooling,即在n*n的样本中取最大值作为采样后的样本值。
3.4 卷积神经网络的训练
推导详见参考资料。
3.5 卷积神经网络的实现
详见参考资料。