目录
CNN卷积神经网络
卷积层
池化层
有两种广泛使用的池化操作——平均池化(average pooling)和最大池化(max pooling),其中最大池化是两者中使用最多的一个操作,其效果一般要优于平均池化。池化层用于在卷积神经网络上减小特征空间维度,但不会减小深度。
全连接层
在全连接层中,我们将最后一个卷积层的输出展平,并将当前层的每个节点与下一层的另一个节点连接起来
全连接,此时需要把特征图平铺成一维向量这步操作称为Flatten,压平后输入特征大小为32*16*16=8192,之后做一次全连接对大小为8192特征变换到大小为128的特征,再依次做两次全连接分别得到64,10
flatten()是对多维数据的降维函数。
flatten(),默认缺省参数为0,也就是说flatten()和flatte(0)效果一样。
python里的flatten(dim)表示,从第dim个维度开始展开,将后面的维度转化为一维.也就是说,只保留dim之前的维度,其他维度的数据全都挤在dim这一维。
VGG
VGG由5层卷积层、3层全连接层、1层softmax输出层构成,层与层之间使用maxpool(最大化池)分开,所有隐藏层的激活单元都采用ReLU函数。
卷积层参数表示为“conv(感受野大小)-通道数”,例如con3-64,表示使用3x3的卷积核,通道数为64
ResNet
在ResNet网络中有如下几个亮点:
1、提出residual结构(残差结构),并搭建超深的网络结构(突破1000层)
2、使用Batch Normalization加速训练(丢弃dropout)
当堆叠到一定网络深度时,就会出现两个问题。
1、梯度消失或梯度爆炸。
2、退化问题(degradation problem)。
Batch Normalization(BN)
Batch Normalization(BN)超详细解析-CSDN博客
如果batch size为m,则在前向传播过程中,网络中每个节点都有m个输出,所谓的Batch Normalization,就是对该层每个节点的这m个输出进行归一化再输出.
反向传播