【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍

CNN

卷积层

【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第1张图片

【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第2张图片

  • 平移不变性,局部性
  • 虽称为卷积,但用的是互相关运算(不翻转),而非信号处理中的卷积(翻转)概念
  • 影响前向计算的所有可能输入区域称为感受野
  • 填充(padding) 是在输入高宽两侧填充,通常为0,控制输出形状的减少量
  • 步幅(stride) 是卷积核每次滑动的大小,使得输出形状成倍减少
    conv_valid = keras.layers.Conv2D(
        filters=1, 
        kernel_size=kernel_size, 
        strides=strides, 
        padding="VALID")
    
  • 卷积核本质是二维信号滤波器
  • 卷积本质是提取图像不同频率的特征
  • 核矩阵大小、填充、步幅是超参数
  • 有时,1个5x5卷积核 不如 2个3x3卷积核
  • 训练 CNN 需大量内存,如内存不足需调整 batch_size 或 strides
  • 核矩阵和偏移的值是可学习的参数
  • 每个卷积和生成一个特征图
  • 在 TensorFlow 中,3D图像格式为[h, w, c]

1*1 卷积核

  • 作用:不识别模式,只增加通道
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第3张图片

池化层

  • 对称不变形,下采样
  • 减小计算量、内存占用和参数(防止过拟合)
  • 缓解卷积层对位置的过度敏感性
  • 最大池化,均值池化…
    max_pool = keras.layers.MaxPool2D(pool_size=2)
    avg_pool = keras.layers.AvgPool2D(pool_size=2)
    
  • 最大池化保留了最强的特征,因此效果通常比均值池化好
  • 也有填充、步幅,是超参数
  • 没有可学习参数
  • 对每个输入通道分别池化,输出通道数不变

经典CNN网络

LeNet

  • 卷积-池化-…-全连接-输出

AlexNet

VGG

  • 重复使用3x3卷积块
  • 不同卷积块个数和超参数得到不同复杂度的变种
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第4张图片

NiN

  • 串联多个卷积层和全连接层构成小网络并构建深层网络
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第5张图片

GoogLeNet

  • 第一个达上百层的模型

  • 含非常经典的子模块 Inception
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第6张图片

  • 常用Iception版本为 V3, V4

  • 不同层面重启特征,然后融合

ResNet -非常经典的残差结构

【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第7张图片
【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第8张图片

  • resnet50:
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第9张图片
  • skip-connection 有效地缓解梯度消失

DenseNet

【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第10张图片

  • 在通道维度上连结

Xception

  • 深度可分离卷积
  • depthwise + pointwise
  • 各通道分别卷积处理,再合并(或先合并再分别卷积)
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第11张图片

SE-Net

  • Squeeze-and Excitation Network

  • SE块分析其连接的单元的输出,仅专注于深度维度,并了解哪一些特征通常最活跃,然后使用此信息重新校准特征图

  • SE块的组成:
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第12张图片

  • SE-Inception模块SE-ResNet单元:
    【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第13张图片

DeepLab

【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第14张图片

PSPNet

【Geron-机器学习实战】学习笔记 3-卷积神经网络 CNN的基本介绍_第15张图片

使用预训练模型

model = keras.applications.resnet50.ResNet50(weights="imagenet")

你可能感兴趣的:(我的深度学习日记,深度学习,神经网络,图像处理)