Inception网络

2024-05-06 20:18
文章标签 网络 inception

本文主要是介绍Inception网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文来自于网易云课堂

Inception网络简介

当构建卷积层时需要考虑过滤器的大小究竟是1×3,3×3还是5×5,要不要添加池化层而inception网络的作用就是代替你来做决定。虽然网络架构因此变得更加复杂,但网络表现却非常好。
这里写图片描述
对于一个28*28*192的输入,inception网络或inception层的作用就是代替人工来确定卷积层中的过滤器类型或者确定是否需要卷积层或者池化层。一个inception模块会将所有的可能叠加起来,这就是inception模块的核心内容。
这里写图片描述
这里写图片描述
在第二张图中,通常称中间的层为瓶颈层,也就是最小网络层。我们先缩小网络,然后在扩大 它。通过两张图的对比可以明显看到,采用了1*1的层的计算成本下降了10倍。那么仅仅大幅缩小表示层规模会不会影响神经网络的性能?事实证明,只要合理构建瓶颈层,那么既可以缩小规模,又不会降低性能,从而大量节省了运算。

Inception网络

一个完整的Inception模块如图所示。
这里写图片描述
通过将这些模块组合起来就得到了完整的inception网络,由于它是由google的研究员提出的,所以也叫做goolenet,是为了向lenet致敬。
这里写图片描述
那么inception这个名字是怎么来的呢?因为里面说到”我们需要走的更深”,如果看过盗梦空间(inception)这个电影应该会懂得这个梗。—-可惜我没看过:)。作者其实是想用它来表达建立更深的网络的决心。

使用开源的实现方案

事实证明很多神经网络复杂细致,因而难以复制。因为一些参数调整的细节问题会影响性能。而有许多研究者将源代码开源道GitHub上,如果作为应用者,我们可以直接将其下载下来并运用。

迁移学习

如果你要做一个计算机视觉应用,相比于从头训练网络,如果你下载别人已经训练好的网络结构的权重,你通常能够进展的非常快。用这个作为预训练,然后转换到你感兴趣的任务上。计算机视觉的研究社区非常喜欢把许多数据集上传到网上,比如ImageNet,MSCoCo,或Pascal类型的数据集,这些都是上传上去并且已经有很多研究者利用他们训练过他们的算法了,有时候这些训练过程需要花费好几周,并且需要很多GPU,其他人已经做过并且经历了非常痛苦的找最优的过程,这就意味着你可以下载花费了别人好几周甚至几个月而做出来的开源的权重参数并把它当做一个很好的初始化用在你的神经网络上,用迁移学习把公共的数据集的知识迁移到你自己的问题上。
现在假设你有2种猫,tigger和misty,如果你想识别你的猫,这就构成了一个三分类问题:tigger,misty 和neither。但你的数据量很小,这时你就可以利用迁移学习。你可以从网上下载一些神经网络开源的实现,不仅把代码下载下来,还要把权重下载下来。有很多训练好的网络你都可以下载,比如说ImageNet数据集,它有1000个不同的类别,因此这个网络会有一个softmax单元。你可以去掉这个softmax层,然后重新添加你自己的softmax层。就网络而言,Andrew Ng建议把其它层看做是冻结的,也就是你冻结所有的参数只训练和你的softmax层有关的参数。通过使用他人的权重你很可能得到较好的效果,即使只有一个很小的数据集。幸运的是,大部分神经网络框架都支持这些操作。这里有个经验法则就是你的数据越大,那么你要冻结的层应该越少,你能够训练的层数就越大。如果你有很大的数据集,你要做的就是把下载的权重当做初始化参数然后在进行训练。

数据扩充

大部分的计算机视觉任务使用很多的数据,所以数据增强是经常使用的一种技巧来提高计算机视觉的表现。在当下,计算机视觉的主要问题是没有办法得到充足的数据,对大部分机器学习问题来说这并不是问题,但是对计算机视觉数据就远远不够。所以,这就意味着数据增强会起到一定的作用。
这里写图片描述
数据增强的常用技巧包括镜像,随机裁剪,这两个是经常使用的。当然理论上你也可以使用旋转,扭曲,局部变换等,但是因为比较复杂,应用的不多。第二种经常使用的是色彩变换,实践中对 RGB三种通道的色彩变换是基于某种分布的。这样会使得对照片的颜色的鲁棒性更好。
这里写图片描述
执行过程可能是这样的;
这里写图片描述

计算机视觉现状

你可以把大量的机器学习问题看成是处于小部分数据和大量数据之间的部分。所以如果你能跨越整个范围来看机器学习问题的话,如果有很多数据,你会发现人们更倾向于使用更简单的算法和更少的手工工程,因此我们不需要为这个问题精心设置,相反,如果你没有那么多的数据,你会发现人们更多从事的是手工工程。所以,当看待机器学习问题时,Andrew Ng通常认为学习算法有2种知识来源,标记的数据和手工工程。手工工程可以是精心设计的特性或者网络组建等。所以如果你没有更多的数据时,你可以更多的考虑手工工程。Andrew Ng认为计算机视觉是在试图学习一个非常复杂的功能,通常没有足够的数据来满足需要。这就是为什么计算机视觉从历史上甚至现在都更多的依赖于手工工程,而他也认为这是计算机视觉领域发展相当复杂的架构的原因,因为在缺乏相当多的数据的情况下获得更好的数据的方式还是花更多的时间进行架构设计。
这里写图片描述
最后分享一篇计算机视觉历史的文章

这篇关于Inception网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965271

相关文章

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了