吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)2.5-2.6

目录

  • 第四门课 卷积神经网络(Convolutional Neural Networks)
    • 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)
      • 2.5 网络中的网络以及 1×1 卷积(Network in Network and 1×1 convolutions)
      • 2.6 谷歌 Inception 网络简介(Inception network motivation)

第四门课 卷积神经网络(Convolutional Neural Networks)

第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)

2.5 网络中的网络以及 1×1 卷积(Network in Network and 1×1 convolutions)

在架构内容设计方面,其中一个比较有帮助的想法是使用 1×1 卷积。也许你会好奇,1×1 的卷积能做什么呢?不就是乘以数字么?听上去挺好笑的,结果并非如此,我们来具体看看。

过滤器为 1×1,这里是数字 2,输入一张 6×6×1 的图片,然后对它做卷积,起过滤器大小为 1×1×1,结果相当于把这个图片乘以数字 2,所以前三个单元格分别是 2、4、6 等等。用 1×1 的过滤器进行卷积,似乎用处不大,只是对输入矩阵乘以某个数字。但这仅仅是对于6×6×1 的一个通道图片来说,1×1 卷积效果不佳。

在这里插入图片描述
如果是一张 6×6×32 的图片,那么使用 1×1 过滤器进行卷积效果更好。具体来说,1×1 卷积所实现的功能是遍历这 36 个单元格,计算左图中 32 个数字和过滤器中 32 个数字的元素积之和,然后应用 ReLU 非线性函数。

在这里插入图片描述
我们以其中一个单元为例,它是这个输入层上的某个切片,用这 36 个数字乘以这个输入层上 1×1 切片,得到一个实数,像这样把它画在输出中。

这个 1×1×32 过滤器中的 32 个数字可以这样理解,一个神经元的输入是 32 个数字(输入图片中左下角位置 32 个通道中的数字),即相同高度和宽度上某一切片上的 32 个数字,这 32 个数字具有不同通道,乘以 32 个权重(将过滤器中的 32 个数理解为权重),然后应
用 ReLU 非线性函数,在这里输出相应的结果。

在这里插入图片描述
一般来说,如果过滤器不止一个,而是多个,就好像有多个输入单元,其输入内容为一个切片上所有数字,输出结果是 6×6 过滤器数量。

在这里插入图片描述
所以 1×1 卷积可以从根本上理解为对这 32 个不同的位置都应用一个全连接层,全连接层的作用是输入 32 个数字(过滤器数量标记为𝑛𝐶
[𝑙+1],在这 36 个单元上重复此过程),输出结果是 6×6×#filters(过滤器数量),以便在输入层上实施一个非平凡(non-trivial)计算。

在这里插入图片描述
这种方法通常称为 1×1 卷积,有时也被称为 Network in Network,在林敏、陈强和颜水成的论文中有详细描述。虽然论文中关于架构的详细内容并没有得到广泛应用,但是 1×1 卷积或 Network in Network 这种理念却很有影响力,很多神经网络架构都受到它的影响,包括下节课要讲的 Inception 网络。

举个 1×1 卷积的例子,相信对大家有所帮助,这是它的一个应用。

假设这是一个 28×28×192 的输入层,你可以使用池化层压缩它的高度和宽度,这个过程我们很清楚。但如果通道数量很大,该如何把它压缩为 28×28×32 维度的层呢?你可以用 32个大小为 1×1 的过滤器,严格来讲每个过滤器大小都是 1×1×192 维,因为过滤器中通道数量
必须与输入层中通道的数量保持一致。但是你使用了 32 个过滤器,输出层为 28×28×32,这就是压缩通道数(𝑛𝑐)的方法,对于池化层我只是压缩了这些层的高度和宽度。

在这里插入图片描述
在之后我们看到在某些网络中 1×1 卷积是如何压缩通道数量并减少计算的。当然如果你想保持通道数 192 不变,这也是可行的,1×1 卷积只是添加了非线性函数,当然也可以让网络学习更复杂的函数,比如,我们再添加一层,其输入为 28×28×192,输出为 28×28×192。

在这里插入图片描述
1×1 卷积层就是这样实现了一些重要功能的(doing something pretty non-trivial),它给神经网络添加了一个非线性函数,从而减少或保持输入层中的通道数量不变,当然如果你愿意,也可以增加通道数量。后面你会发现这对构建 Inception 网络很有帮助,我们放在下节课讲。

这节课我们演示了如何根据自己的意愿通过 1×1 卷积的简单操作来压缩或保持输入层中的通道数量,甚至是增加通道数量。下节课,我们再讲讲 1×1 卷积是如何帮助我们构建Inception 网络的,下节课见。

2.6 谷歌 Inception 网络简介(Inception network motivation)

构建卷积层时,你要决定过滤器的大小究竟是 1×1(原来是 1×3,猜测为口误),3×3 还是 5×5,或者要不要添加池化层。而 Inception 网络的作用就是代替你来决定,虽然网络架构因此变得更加复杂,但网络表现却非常好,我们来了解一下其中的原理。

例如,这是你 28×28×192 维度的输入层,Inception 网络或 Inception 层的作用就是代替人工来确定卷积层中的过滤器类型,或者确定是否需要创建卷积层或池化层,我们演示一下。

在这里插入图片描述
如果使用 1×1 卷积,输出结果会是 28×28×#(某个值),假设输出为 28×28×64,并且这里只有一个层。

在这里插入图片描述
如果使用 3×3 的过滤器,那么输出是 28×28×128。然后我们把第二个值堆积到第一个值上,为了匹配维度,我们应用 same 卷积,输出维度依然是 28×28,和输入维度相同,即高度和宽度相同。

在这里插入图片描述
或许你会说,我希望提升网络的表现,用 5×5 过滤器或许会更好,我们不妨试一下,输出变成 28×28×32,我们再次使用 same 卷积,保持维度不变。

在这里插入图片描述
或许你不想要卷积层,那就用池化操作,得到一些不同的输出结果,我们把它也堆积起来,这里的池化输出是 28×28×32。为了匹配所有维度,我们需要对最大池化使用 padding,它是一种特殊的池化形式,因为如果输入的高度和宽度为 28×28,则输出的相应维度也是28×28。然后再进行池化,padding 不变,步幅为 1。

这个操作非常有意思,但我们要继续学习后面的内容,一会再实现这个池化过程。

在这里插入图片描述

有了这样的 Inception 模块,你就可以输入某个量,因为它累加了所有数字,这里的最终输出为 32+32+128+64=256。Inception 模块的输入为 28×28×192,输出为 28×28×256。这就是 Inception 网络的核心内容,提出者包括 Christian Szegedy、刘伟、贾扬清、Pierre Sermanet、Scott Reed、Dragomir Anguelov、Dumitru Erhan、Vincent Vanhoucke 和 Andrew Rabinovich。基本思想是 Inception 网络不需要人为决定使用哪个过滤器或者是否需要池化,而是由网络自行确定这些参数,你可以给网络添加这些参数的所有可能值,然后把这些输出连接起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合。

不难发现,我所描述的 Inception 层有一个问题,就是计算成本,下一张幻灯片,我们就来计算这个 5×5 过滤器在该模块中的计算成本。

在这里插入图片描述

我们把重点集中在前一张幻灯片中的 5×5 的过滤器,这是一个 28×28×192 的输入块,执行一个 5×5 卷积,它有 32 个过滤器,输出为 28×28×32。前一张幻灯片中,我用一个紫色的细长块表示,这里我用一个看起来更普通的蓝色块表示。我们来计算这个 28×28×32 输出的
计算成本,它有 32 个过滤器,因为输出有 32 个通道,每个过滤器大小为 5×5×192,输出大小为 28×28×32,所以你要计算 28×28×32 个数字。对于输出中的每个数字来说,你都需要执行 5×5×192 次乘法运算,所以乘法运算的总次数为每个输出值所需要执行的乘法运算次数
(5×5×192)乘以输出值个数(28×28×32),把这些数相乘结果等于 1.2 亿(120422400)。即使在现在,用计算机执行 1.2 亿次乘法运算,成本也是相当高的。下一张幻灯片会介绍 1×1卷积的应用,也就是我们上节课所学的。为了降低计算成本,我们用计算成本除以因子 10,结果它从 1.2 亿减小到原来的十分之一。请记住 120 这个数字,一会还要和下一页看到的数字做对比。

在这里插入图片描述
这里还有另外一种架构,其输入为 28×28×192,输出为 28×28×32。其结果是这样的,对于输入层,使用 1×1 卷积把输入值从 192 个通道减少到 16 个通道。然后对这个较小层运行5×5 卷积,得到最终输出。请注意,输入和输出的维度依然相同,输入是 28×28×192,输出
是 28×28×32,和上一页的相同。但我们要做的就是把左边这个大的输入层压缩成这个较小的的中间层,它只有 16 个通道,而不是 192 个。

在这里插入图片描述
有时候这被称为瓶颈层,瓶颈通常是某个对象最小的部分,假如你有这样一个玻璃瓶,这是瓶塞位置,瓶颈就是这个瓶子最小的部分。

在这里插入图片描述
同理,瓶颈层也是网络中最小的部分,我们先缩小网络表示,然后再扩大它。

接下来我们看看这个计算成本,应用 1×1 卷积,过滤器个数为 16,每个过滤器大小为1×1×192,这两个维度相匹配(输入通道数与过滤器通道数),28×28×16 这个层的计算成本是,输出 28×28×192 中每个元素都做 192 次乘法,用 1×1×192 来表示,相乘结果约等于 240万。

在这里插入图片描述
那第二个卷积层呢?240 万只是第一个卷积层的计算成本,第二个卷积层的计算成本又是多少呢?这是它的输出,28×28×32,对每个输出值应用一个 5×5×16 维度的过滤器,计算结果为 1000 万。

所以所需要乘法运算的总次数是这两层的计算成本之和,也就是 1204 万,与上一张幻灯片中的值做比较,计算成本从 1.2 亿下降到了原来的十分之一,即 1204 万。所需要的加法运算与乘法运算的次数近似相等,所以我只统计了乘法运算的次数。

总结一下,如果你在构建神经网络层的时候,不想决定池化层是使用 1×1,3×3 还是 5×5的过滤器,那么 Inception 模块就是最好的选择。我们可以应用各种类型的过滤器,只需要把输出连接起来。之后我们讲到计算成本问题,我们学习了如何通过使用 1×1 卷积来构建瓶
颈层,从而大大降低计算成本。

你可能会问,仅仅大幅缩小表示层规模会不会影响神经网络的性能?事实证明,只要合理构建瓶颈层,你既可以显著缩小表示层规模,又不会降低网络性能,从而节省了计算。这就是 Inception 模块的主要思想,我们在这总结一下。下节课,我们将演示一个完整的 Inception 网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/440431.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI知识点】批归一化(Batch Normalization)

批归一化(Batch Normalization,BN) 是一种用于加速神经网络训练并提高模型稳定性的方法,最早由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出。批归一化通过在每一层对神经网络中的激活值进行标准化,使得每一层的…

D29【python 接口自动化学习】- python基础之输入输出与文件操作

day29 格式化输出 学习日期:20241006 学习目标:输入输出与文件操作﹣-41 格式化输出:如何将执行结果通过屏幕输出? 学习笔记: 三种常用的格式化输出方式 百分号方式 format函数方式 总结 1. 格式化输出…

在ubuntu好部署jenkins发布vue项目时遇到的一些问题及解决方法以及使用jenkins发布vue项目-npm自动打包发布的实现

一、在ubuntu好部署jenkins发布vue项目时遇到的一些问题及解决方法 1. 问题:webpack-dev-server不是内部或外部命令,也不是可运行的程序 解决:使用webpack要安装webpack-cli这个包,才可以调用webpack和webpack-dev-server这些命…

Hive3.x版本调优总结

文章目录 第 1 章 Explain 查看执行计划(重点)1.1 创建测试用表1)建大表、小表和 JOIN 后表的语句2)分别向大表和小表中导入数据 1.2 基本语法1.3 案例实操 第 2 章 Hive 建表优化2.1 分区表2.1.1 分区表基本操作2.1.2 二级分区2.…

虚拟机 VMware 安装 macOS

macOS 界面 MAC OS IOS下载: amacOS Monterey by Techrechard.comwmacOS Monterey by Techrechard.com 下载:Unlocker-v2.0.1-x64 Mac OS X 虚拟机中更改屏幕分辨率 终端输入命令: sudo defaults write /Library/Preferences/com.apple.w…

2-114 基于matlab的CA模型

基于matlab的CA模型,Singer模型对单机动目标进行跟踪算法,具有10页实验文档。采用蒙特卡罗方法对一个二坐标雷达对一平面上运动的目标进行观测,得到跟踪滤波结果。程序已调通,可直接运行。 下载源程序请点链接:2-114 …

Linux:进程的创建、终止和等待

一、进程创建 1.1 fork函数初识 #include pid_t fork(void); 返回值:子进程中返回0,父进程返回子进程id,出错返回-1 调用fork函数后,内核做了下面的工作: 1、创建了一个子进程的PCB结构体、并拷贝一份相同的进程地址…

Stable Diffusion绘画 | IP角色多视图生成技巧

在游戏设计、小说推文、角色设计里面,很多场景都运用到IP角色的多视图。 人物角色多视图 第1步,输入提示词: 第2步,由于要在同一张图片中生成多角度的并排展示,需要修改图片的分辨率(尤其是宽度&#xff…

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型)

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型) 目录 Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型) 1. 项目说明 2. 数据说明 (1)心跳信号分类预测数据集 3. 模型训练 (1)项目安装 &am…

MoveIt2-humble----在 RViz 中实现可视化

官方文档上的教程,从moveit1的melodic到moveit2的foxy基本一致,但是从最新的humble开始有了很大的变化,其中之一便是 lambda表达式 的广泛使用。 本节为教程的第二节,会介绍一个工具(moveit_visual_tools)…

运动员场景分割系统源码&数据集分享

运动员场景分割系统源码&数据集分享 [yolov8-seg-HGNetV2&yolov8-seg-aux等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al lnnovati…

麒麟 操作系统介绍| 银河麒麟和中标麒麟操作系统| Kylin 麒麟iso 镜像下载地址 银河麒麟操作系统v10 |

目录 #申请试用小技巧, 所有麒麟系列的版本如下 详细介绍如下: 银河麒麟高级服务器操作系统 V10 1. 龙芯-MIPS64el 版 2. 申威版 3. 兆芯版 4. 海光版 5. 飞腾版 6. 鲲鹏版 7. AMD64版 8. 龙芯-LoongArch64 版 9. ARM64版 银河麒麟桌面操作…

SpringMVC源码-AbstractUrlHandlerMapping处理器映射器将实现Controller接口的方式定义的路径存储进去

DispatcherServlet的initStrategies方法用来初始化SpringMVC的九大内置组件 initStrategies protected void initStrategies(ApplicationContext context) {// 初始化 MultipartResolver:主要用来处理文件上传.如果定义过当前类型的bean对象,那么直接获取&#xff0…

【学习笔记】kruskal重构树

前言 最近一场div2没开出C2,猛掉104分。 赛后补E,发现自己连E1都没思路,一问才知道是kruskal重构树。 好吧,OI时期欠下的债该还了。 kruskal重构树是什么 它是一棵 2 n − 1 2n-1 2n−1 个点的二叉树。点有点权,下…

异常场景分析

优质博文:IT-BLOG-CN 为了防止黑客从前台异常信息,对系统进行攻击。同时,为了提高用户体验,我们都会都抛出的异常进行拦截处理。 一、异常处理类 Java把异常当做是破坏正常流程的一个事件,当事件发生后,…

https访问报错:net::ERR_CERT_DATE_INVALLD

目录 简介异常排查原因解决补充 简介 访问https资源出现报错 异常 排查 将地址拿到浏览器进行访问,可以很清晰的看到出现该问题的原因 原因 1、SSL证书已过期 2、服务器日期不准,不在证书有效期 解决 1、重新申请SSL证书,并配置 2、校正…

VMware桥接模式无法连接网络

windows下打开控制面板,找到WLAN,记住下面的名称(带有VMware的都是虚拟机的网卡,要找到物理主机的网卡) 回到VMware,编辑——打开虚拟网络编辑器 桥接选择上面的WLAN下的网络名称,确定即可。&…

【学习笔记】手写一个简单的 Spring MVC

目录 一、什么是Spring MVC ? Spring 和 Spring MVC 的区别? Spring MVC 的运行流程? 二、实现步骤 1. DispatcherServlet 1. 创建一个中央分发器 拦截所有请求 测试 2. 接管 IOC 容器 1. 创建配置文件 2. 修改 web.xml 配置文件 …

输电线路悬垂线夹检测无人机航拍图像数据集,总共1600左右图片,悬垂线夹识别,标注为voc格式

输电线路悬垂线夹检测无人机航拍图像数据集,总共1600左右图片,悬垂线夹识别,标注为voc格式 输电线路悬垂线夹检测无人机航拍图像数据集介绍 数据集名称 输电线路悬垂线夹检测数据集 (Transmission Line Fittings Detection Dataset) 数据集…

在mac中通过ip连接打印机并实现双面打印

首先需要找到电脑自带的打印。添加打印机。 填写好打印机的ip地址,然后添加。 填写好ip地址后,直接添加就行 添加完打印机后其实就可以打印了。但是有些功能可能实现不了,比如说双面打印。为了实现双面打印的功能,需要再进行设置…