7-卷积神经网络-读书笔记
1. 概述
1.1 深层神经网络问题导入
- 神经网络的问题
- 图像模式的特征
1.2 卷积神经网络概念引出
1.2.1 卷积神经网络的诞生
- 卷积:平移不变模式
- 池化:下采样被检测物体不变模式
1.2.2 CNN基础结构
- CNN应用图像模式的一般框架:卷积层+激活函数+池化层+全连接层
- CONV+RELU+CONV+RELU+POOL出现多次:用作提取特征
- FC在最后出现一次或多次:用作分类
2. 自己动手搭CNN
2.1 CNN网络结构
- CNN基本结构:输入层、卷积层、激活层、池化层、全连接层
2.1.1 输入层:
2.1.2 卷积层:
- 卷积的直觉:卷积计算=特征提取
- 灰度图像上使用单卷积核:单个特征的抽取
- 术语:feature map(特征映射)、activation map(激活映射)、convolved feature(卷积特征)、receptive field(感受野)
- RGB图像上使用单卷积核:单个特征的抽取
- 卷积核的深度=上一层数据输入的深度(channel数)
- RGB图像上使用多卷积核:多个不同特征的抽取
- 一个卷积核提取一种局部模式,多个卷积核提取多种不同局部模式
- 卷积隐层的堆叠
- 卷积核的个数=下一层数据的深度=下一卷积层卷积核的深度
- 卷积核的个数=提取特征的数量,超参数,可以调节
- 隐层的卷积:特征组合
- 多层卷积:一层卷积得到的特征只是局部的,层数越高,学到的特征越全局化
- 需要注意的参数:stride
- 一次滑动的步长,有height上的和width上的stride
- stride>1时,相当于在stride=1的卷积结果中做了下采样
- 需要注意的参数:padding
- padding=valid:不进行补零操作,s=1时,每卷积一次,宽和高数据维度下降F-1,F为卷积核大小
- padding=same:在输入的周围进行0或复制补充;卷积前后宽高不变
- 小结
- 输入:W1*H1*D1
- 超参数:①the number of filters:K②the dimension of filters:F③stride步长:S④padding:P
- 输出:W2*H2*D2 W=(W1+2P-F)/S+1 H2=(H1+2P-F)/S+1 D2=K
- 参数:(F*F*D1+1)*K
2.1.3 激活层
- 激活函数:sigmoid(x)、tanh(x)、relu(x)
2.1.4 池化层
- 在宽高维度进行下采样,不改变深度的维度
- 能成倍减少计算量
- 相比stride,池化层可以选择进行下采样的方式
- 最大池化(max-pooling):对邻域内特征点取最大作为最后的特征值
- 平均池化(mean-pooling):对邻域内特征点取平均作为最后的特征值
- 小结
- 输入:W1*H1*D1
- 超参数:the dimension offilters:F
- 输出:W2*H2*D2 W2=(W1-F)/S+1 H2=(H1-F)/S+1 D2=D1
- 参数:max-pooling和mean-pooling没参数
2.1.5 全连接层
- 将多层的特征映射伸直成一个一维的向量
- 采用全连接的方式将向量连接向输出层
- 输出层就是对应每个类别的得分
2.1.6 网络搭建小结
- 卷积神经网络的一般结构:
- CONV+ReLU和POOL的组合多次出现:提取特征
- 多个FC或特殊的CNN结构作为输出层:作分类器/检测器/分割器
2.2 CNN网络训练
2.2.1 损失与误差的反向传播
- 多分类(打标)损失导入:
- 损失函数
- 交叉熵损失&SoftMax概率归一化:
- 梯度下降
- 反向传播
- 神经元中梯度的计算
2.2.2 模型评估与正则化
- 模型的泛化
- 模型的正则化
2.3 第一个CNN
- MNIST
- CIFAR
- ImageNet
- 如何用Paddle构建CNN
- 基础的训练步骤:a.定义模型的整体框架 b.导入数据和预处理 c.训练模型 d.测试模型
3. 经典CNN结构探索
3.1 AlexNet
3.2 VGG
3.3 GoogLeNet/Inception
3.4 ResNet
4. 课程实践
缺公式,公式后面再补
码字不易,如果您觉得有帮助,麻烦点个赞再走呗~