7-卷积神经网络-读书笔记


本笔记根据PaddlePaddlePPT中第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或复制补充;卷积前后宽高不变

小结

  • 输入: W 1 ∗ H 1 ∗ D 1 W1*H1*D1 W1H1D1
  • 超参数:①the number of filters:K②the dimension of filters:F③stride步长:S④padding:P
  • 输出: W 2 × H 2 × D 2 W = W 1 + 2 P − F S + 1 , H 2 = H 1 + 2 P − F S + 1 , D 2 = K W2×H2×D2 W=\frac{W1+2P-F}{S} +1, H2={H1+2P-F}{S} +1, D2=K W2×H2×D2W=SW1+2PF+1,H2=H1+2PFS+1,D2=K
  • 参数: ( F × F × D 1 + 1 ) × K (F×F×D1+1) ×K (F×F×D1+1)×K

2.1.3 激活层

  • 激活函数:sigmoid(x)、tanh(x)、relu(x)

2.1.4 池化层

  • 在宽高维度进行下采样,不改变深度的维度
  • 能成倍减少计算量
    -相比stride,池化层可以选择进行下采样的方式
  • 最大池化(max-pooling):对邻域内特征点取最大作为最后的特征值
  • 平均池化(mean-pooling):对邻域内特征点取平均作为最后的特征值

小结

  • 输入: W 1 × H 1 × D 1 W1×H1×D1 W1×H1×D1
  • 超参数:the dimension of filters:F
  • 输出: W 2 × H 2 × D 2 , W 2 = W 1 − F S + 1 , H 2 = H 1 − F S + 1 , D 2 = D 1 W2×H2×D2 ,W2=\frac{W1-F}{S}+1, H2=\frac{H1-F}{S} +1, D2=D1 W2×H2×D2,W2=SW1F+1,H2=SH1F+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概率归一化: H ( p , q ) = − ∑ p ( x ) l o g q ( x ) H(p,q)=-\sum_{}^{}p(x)logq(x) H(p,q)=p(x)logq(x),用来衡量两个概率分布间的差异性
    a.所以在网络中先将得分结果归一化为概率分布 → \to SoftMax: S i = e i ∑ j e j S_i=\frac{e^i}{\sum_j^{}e^j} Si=jejei
    b.由输出和真实标签间的概率分布计算交叉熵,度量二者的差异情况
  • 梯度下降
    a.公式: θ j ≔ θ j − α ∂ ∂ θ j J ( θ ) θ_j≔θ_j-α\frac{∂}{∂θ_j} J(θ) θj:=θjαθjJ(θ)
    b.梯度下降使用样本方式的变种:批量梯度下降(Batch gradient descent)、随机梯度下降(Stochastic gradient descent)、小批量梯度下降(Mini-batch gradient descent)
    c.梯度下降方式的优化:Momentum法、Nesterov加速梯度法、Adagrad法、Adadelta法、RMSprop法、Adam法
  • 反向传播
    a.求解损失对所有参数的梯度
    b.两个过程:Forward pass(逐层计算,保存参数,便于反向计算时用)、Backward pass(由最后的损失倒序逐层计算每一参数的梯度,便于更新)
    c.基本原理:链式法则
  • 神经元中梯度的计算

2.2.2 模型评估与正则化

  • 模型的泛化
    a.学习算法的基本假设:用来训练模型的数据(测试集)和真实数据(测试集)间是独立同分布的
    b.泛化能力:机器学习算法对未知样本的适应能力
    c.如何提高学习算法效果:降低训练误差(欠拟合)、缩小训练误差和测试误差的差距(过拟合)
    d.深度神经网络的泛化能力:高模型容量、正则化
  • 模型的正则化
    a.Early-stopping(早停法)
    b.权重正则化:L1正则: J = J 0 + λ ‖ w ‖ 1 J=J_0+λ‖w‖_1 J=J0+λw1、L2正则weight decay: J = J 0 + λ 2 ‖ w ‖ 2 J=J_0+\frac{λ}{2} ‖w‖_2 J=J0+2λw2
    c.数据增强:dropout

2.3 第一个CNN

  • MNIST
  • CIFAR
  • ImageNet
  • 如何用PaddleCNN

3. 经典CNN结构探索

3.1 AlexNet
3.2 VGG
3.3 GoogLeNet/Inception
3.4 ResNet

4. 课程实践

缺公式,公式后面再补

码字不易,如果您觉得有帮助,麻烦帮我点个赞~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值