zoukankan      html  css  js  c++  java
  • 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. 课程实践

    缺公式,公式后面再补

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

  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/Kobaayyy/p/11207648.html
Copyright © 2011-2022 走看看