首页 > 其他分享 >【动手学深度学习_李沐】笔记:(五)卷积神经⽹络(convolutional neural network,CNN)

【动手学深度学习_李沐】笔记:(五)卷积神经⽹络(convolutional neural network,CNN)

时间:2024-01-14 19:44:27浏览次数:45  
标签:convolutional 输出 池化层 network neural 卷积 10 图像 通道

【五、卷积神经网络】笔记

1. 从全连接层到卷积

  • 特点(沃尔多检测器):
    ① 平移不变性:不管出现在图像中的哪个位置,神经⽹络的底层应对相同图像区域做出类似的响应,因此能够以相同的⽅式处理局部图像
    ② 局部性:神经⽹络的底层只探索输⼊图像的局部区域,这些局部特征可以融会贯通,在整个图像级别上做出预测。因此,隐藏表⽰只需⼀小部分局部图像像素

  • 限制多层感知机:
    以⼆维图像 X 作为输⼊,多层感知机的隐藏表示 H 在数学上是⼀个矩阵,在代码中表示为⼆维张量,V 为卷积核(convolution kernel)或者滤波器(filter)。假设 U 包含偏置参数,重新索引下标 (k, l),使 k = i + a、l = j + b,由此 [V]i,j,a,b = [W]i,j,i+a,j+b,索引 a 和 b 覆盖正偏移和负偏移,全连接层表示为:
    imageimage

  • 平移不变性即输⼊ X 中的移位,仅与隐藏表⽰ H 中的移位相关,V 和 U 实际上不依赖于 (i, j) 的值,即卷积 [V]i,j,a,b = [V]a,b,不再依赖于图像中的位置,参数变少:
    image

  • 局部性即在 |a| > ∆ 或 |b| > ∆ 的范围之外,设置 [V]a,b = 0,将参数 [H]i,j 重写为:
    image

  • 数学中,两个函数(⽐如 f, g :Rd→R)的卷积被定义为:
    image

  • 卷积是测量 f 和 g 之间(把函数“翻转”并移位 x 时)的重叠,对于离散对象(即定义域为 Z),积分变成求和:
    image
    image

  • 在图像处理中,卷积层通常⽐全连接层需要更少的参数


2. 图像卷积

  • 互相关运算 (cross-correlation):在卷积层中,输⼊张量和核张量产⽣输出张量的运算。二维卷积层的核⼼计算是二维互相关运算。最简单的形式是,对⼆维输⼊数据和卷积核执⾏互相关操作,然后添加⼀个偏置
  • 特征映射(Feature Map):输出卷积层,被视为输⼊映射到下⼀层空间维度的转换器
  • 感受野(Receptive Field):前向传播期间影响x计算的所有元素(来自所有先前层)。感受野的覆盖率可能⼤于某层输⼊的实际区域⼤小,因此当需要检测输⼊特征中更⼴区域时,可以构建⼀个更深的卷积⽹络
  • 可以设计⼀个卷积核来检测图像的边缘
  • 学习卷积核时,⽆论⽤严格卷积运算或互相关运算,卷积层的输出不会受太⼤影响

  • 3. 填充和步幅

  • 填充(padding):在输⼊图像的边界填充元素(通常是0),常⽤来使输出与输⼊具有相同的⾼和宽。

  • 卷积神经⽹络中卷积核的⾼度和宽度通常为奇数,如1、3、5或7,保持空间维度的同时,可以在顶部和底部填充相同数量的⾏,在左侧和右侧填充相同数量的列

  • 步幅(stride):每次滑动元素的数量,可以减小输出的⾼和宽

  • 当垂直步幅为 sh 、⽔平步幅为 sw 时,输出形状为:
    image

  • 如果设置 ph = kh-1 和 pw = kw-1,则输出形状为:
    image

  • 如果输⼊的⾼度和宽度可以被垂直和⽔平步幅整除,则输出形状为:
    image

4. 多输⼊多输出通道

  • 多输入通道:对每个通道执⾏互相关操作,然后将结果相加
  • 多输出通道:⽤ ci 和 co 分别表⽰输⼊和输出通道的数⽬,并让 kh 和 kw 为卷积核的⾼度和宽度。为了获得多个通道的输出,可以为每个输出通道创建⼀个形状为 ci ×kh ×kw 的卷积核张量,这样卷积核的形状是 co ×ci ×kh ×kw。在互相关运算中,每个输出通道先获取所有输⼊通道,再以对应该输出通道的卷积核计算出结果
    image
  • 1×1 卷积核:唯⼀计算发⽣在通道上,当以每像素为基础应⽤时,1×1卷积层相当于全连接层,以 ci 个输⼊值转换为 co 个输出值,通常⽤于调整⽹络层的通道数量和控制模型复杂性
    image

5. 池化层

  • 池化(pooling)层:降低卷积层对位置的敏感性、降低对空间降采样表⽰的敏感性。池化层不包含参数,池运算符是确定性的。池化层也可以改变输出形状,使⽤最⼤池化层以及⼤于 1 的步幅,可减少空间维度(如⾼度和宽度)
  • 最大池化层(maximum pooling):计算池化窗口中所有元素的最⼤值。⽆论 X[i, j] 和 X[i, j + 1] 的值是否不同,或 X[i, j + 1] 和 X[i,j + 2] 的值是否不同,池化层始终输出 Y[i, j] = 1,使⽤2×2最⼤池化层在⾼度或宽度移动⼀个元素,卷积层仍可以识别模式
  • 平均池化层(average pooling):计算池化窗口中所有元素的平均值
  • 在处理多通道输⼊数据时,池化层在每个输⼊通道上单独运算,而不是像卷积层⼀样在通道上对输⼊进⾏汇总。池化层的输出通道数与输⼊通道数相同

6. 卷积神经⽹络(LeNet)

  • LeNet 模型:第⼀个卷积神经⽹络,由 AT&T ⻉尔实验室研究员 Yann LeCun 在 1989 年提出,⽬的是识别图像中的⼿写数字。([LeCun et al., 1998] LeCun, Y., Bottou, L., Bengio, Y., Haffner, P., & others. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278‒2324)
  • LeNet (LeNet-5) 组成:卷积编码器(两个卷积层)、全连接层密集块(三个全连接层)。LeNet 数据流中,输⼊是⼿写数字,输出为 10 种结果的概率。每个卷积块的基本单元是⼀个 5×5 卷积层、⼀个 sigmoid 激活函数和 2×2 平均池化层(ReLU 和最⼤池化层还没出现)。第⼀卷积层有 6 个输出通道,第⼆个卷积层有 16 个输出通道。每个池操作通过空间下采样将维数减少 4 倍。将四维输⼊转换成全连接层所期望的⼆维输⼊,有三个全连接层,分别有 120、84 和 10 个输出,多个全连接层有助于表达非线性模型,全连接层仅判断是否有特征,而不考虑特征的位置
    (3)输入 1×1×28×28 图像
    → 6×5×5 Conv,pad=2,s=1,n=(28-5+2×2)/1+1=28,6×28×28图像
    → 2×2 avePool,stride=2,n=28/2=14,6×14×14图像
    → 16×5×5 Conv,pad=0,s=1,n=(14-5+0)/1+1=10,16×10×10图像
    → 2×2 avePool,stride=2,n=10/2=5,16×5×5图像
    → 120×1 Dense,权重120×(16×5×5),偏置120×1
    → 84×1 Dense,权重84×120,偏置84×1
    → 10×1 Dense,权重10×84,偏置10×1,输出10个类别
  • 为了构造⾼性能的卷积神经⽹络,通常逐渐降低卷积层的空间分辨率,同时增加通道数
  • 传统的卷积神经⽹络中,卷积块编码得到的表征在输出前需由⼀个或多个全连接层处理
  • 端到端:从像素到分类结果
    image
    image

标签:convolutional,输出,池化层,network,neural,卷积,10,图像,通道
From: https://www.cnblogs.com/haifengyuhui/p/17964074

相关文章

  • 安装npm install报错npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! net
    执行命令:npmrundev启动前端项目报如下错误,vue-cli-service是Vue一个启动的插件,需要安装D:\nodejs\npm.cmdrundev>[email protected]>vue-cli-serviceserve--open'vue-cli-service'不是内部或外部命令,也不是可运行的程序或批处理文件。Processfinishedwithe......
  • Interconnection Network
    bisectionbandwidth"Bisectionbandwidth"是指在一个网络中,沿着网络中间(沿着网络的中轴线)切割(bisection)整个网络时,两侧的带宽之和。这个概念通常用于评估网络的性能和容量。具体而言,如果你想象一个网络是由节点和连接线组成的拓扑结构,而bisectionbandwidth则是通过沿着网络......
  • 4.k8s-配置网络策略 NetworkPolicy
    一、基本了解官方文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/基本了解:1.网络策略通过网络插件来实现,创建一个NetworkPolicy资源对象而没有控制器来使它生效的话,是没有任何作用的,而我们搭建K8s集群时安装的calico网络组件就支持网......
  • 1.9 Rotated Multi-Scale Interaction Network for Referring Remote Sensing Image S
    RotatedMulti-ScaleInteractionNetworkforReferringRemoteSensingImageSegmentation参考遥感图像分割的旋转多尺度交互网络参考遥感图像分割(RRSIS)是一个新的挑战,它结合了计算机视觉和自然语言处理,通过文本查询描述了航空图像中的特定区域。传统的参考图像分割(RIS)......
  • ArcNeural: AI 时代的多模数据库丨技术专栏
    导读 本文根据Fabarta资深技术专家谭宇在“2023中国软件技术大会”演讲实录整理而来。围绕以下四个方面进行介绍:首先简单介绍Fabarta背景以及我们为什么要研发ArcNeural;其次深入介绍ArcNeural的架构与实现;三是介绍围绕ArcNeural我们如何构建AI应用;最后进行总结与展望......
  • docker_network命令
    docker命令:一、概述查看网络列表【默认提供三种网络】:dockernetworkls创建一个driver为bridge的网络:(默认创建的就是bridge):dockernetworkcreate自定义network名删除:dockernetworkrm自定义networkID查看网络信息: dockernetworkinspectcentos66-net1.2、docker镜像使用......
  • OpenEuler【NetworkManager】为什么ifcfg-ethX网卡配置文件修改后不生
    1问题现象修改/etc/sysconfig/network-scripts/ifcfg-ethX网卡配置文件中的ip地址后,重启NetworkManager服务,网卡ip未生效2问题原因在不重启系统的情况下,仅重启NetworkManager服务,它不会重新读取/etc/sysconfig/network-scripts/目录下的网卡配置文件并生效。可以通过以下几......
  • VMware Aria Operations for Networks 6.10 - 网络和应用监控工具
    VMwareAriaOperationsforNetworks6.10-网络和应用监控工具作者主页:sysin.orgVMwareAriaOperationsforNetworks(以前称为vRealizeNetworkInsight)通过监控、发现和分析,构建一个经过优化、高度可用且安全的、跨云网络基础架构。实现跨云环境的网络可见性借助VMwareAria......
  • Neural Networks for Image Generation and Manipulation: A Creative Revolution
    1.背景介绍随着计算能力的不断提高和数据量的不断增加,深度学习技术在图像生成和处理领域取得了显著的进展。在这篇文章中,我们将深入探讨神经网络在图像生成和操纵方面的应用,以及它们如何引领一场创意革命。图像生成和操纵是计算机视觉领域的关键技术,它们在人工智能系统中扮演着至关......
  • GANs in the Wild: RealWorld Applications of Generative Adversarial Networks
    1.背景介绍生成对抗网络(GenerativeAdversarialNetworks,GANs)是一种深度学习算法,由伊戈尔·Goodfellow等人于2014年提出。这种算法通过两个神经网络来学习数据分布:一个生成器(Generator)和一个判别器(Discriminator)。生成器的目标是生成类似于训练数据的新数据,而判别器的目标是区分这......