IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 1×1卷积的作用 NiN模型中的1×1卷积 -> 正文阅读

[人工智能]1×1卷积的作用 NiN模型中的1×1卷积

1*1的卷积

? 原来看面经的时候经常看到这么个问题,问的是关于1*1卷积的好处和特点之类的。1*1的卷积,顾名思义就是用大小为1*1的卷积核去做卷积,但也仅仅是长宽为1,卷积核的通道数不做限制。

? 通过1*1的卷积,每次只看一个像素点里多个通道的信息,不会识别一个通道里面的其他空间信息。因此1*1卷积侧重于融合一个像素点里3个通道(假如通道是3)的信息,对同一个像素点的不同通道值进行加权求和。

? 经常有讲解说“可以把1*1的卷积看作全连接层”。这个如何理解呢?

? 如图,假设输入图像宽w高h,那么一共有w*h个像素点,每个像素点又有3个通道。我们可以把它看成w*h个维度为3的向量——这就等价于一个行数为w*h,列数为3的矩阵。

? 此时假如说我们要得到通道数为2的output,则我们就需要2个卷积核,每个卷积核通道数当然也要为3,所以此时这两个卷积核也可以形成一个2*3的矩阵。(卷积核长宽都是1就省略了)

? 而我们得到的结果,也可以看作是行数为w*h,列数为2的矩阵

? 观察输入输出以及卷积核的维度变化,是不是就有矩阵乘法内味了?这就特别地像全连接层~~~但是它与全连接的不同之处在于,全连接的每一个参数各自独立,而这里每个像素点下的n个通道是有着一定权值共享的(用共同的卷积核)。

? 所以1*1的卷积核,既可以充当是卷积,也可以看作是另一种意义上的全连接。

? ??

?????? 此外,特别简单地,使用1*1的卷积核的另一个特点在于它不会改变尺寸大小,但可以很方便地实现通道数的变化,控制卷积核的个数就可以达到这一目的。

NiN(Network in Network)网络中的1*1卷积

? 之前提到过AlexNet,VGG等网络,都是在经过一些列卷积池化操作过后将结果打平(flatten),送入全连接层,最终将结果映射到结果数目的维度上。但是在这种做法下,当将flatten后的卷积结果连接到全连接层时,会带来很大的参数量。(比如AlexNet和VGG全连接层的第一个隐层都是4096个神经元,再乘上自己flatten后的维度(也是几千,比如VGG打平后的维度为512*7*7),这么一乘后参数量可达到百万级别。参数量过大一方面会占用内存和计算资源,另一方面也容易带来过拟合。

? NiN在此基础上提出了用1*1卷积层来代替全连接层。整个NiN是由若干个NiN块组成的(这种由重复的小结构组成大结构的例子非常多,比如还有Resnet之类的)。每个NiN块组成为:普通卷积—>1*1的卷积—>1*1的卷积。我们用了1*1的卷积来充当全连接层的效果(1*1卷积核stride=1,padding=0)。只不过这里是对每一个像素(这个像素可能有很多通道)使用了相同的权重进行了全连接,这点在上面讨论1*1卷积的意义时讲了。

? 那么,整体的NiN网络就是使用NiN块和3*3、stride=2的最大池化层进行交替连接。全局没有任何一个地方直接使用全连接层。那么,NiN是如何拟合到目标结果的呢?

? 在全连接中,假如我们是10分类任务,我们可以置最后一个输出层神经元个数为10。而在NiN中,因为没有全连接层,使用的是全局平均池化层(AdaptiveAvgPool2d)具体操作是这样的:比如我们要做10分类任务,那么最后一个NiN块的输出通道数我们要设置为10,然后通过这么一个全局平均池化AdaptiveAvgPool2d(1,1),每个通道我们都会变成1*1的大小,因为有10个通道,我们就相当于得到了一个10维的向量,最后送入softmax去处理即可。

? 整个NiN相比于带全连接层的卷积神经网络,通过1*1卷积减少了参数和计算量,也不容易过拟合。效果上也会好一丢丢~

? 1*1卷积也被广泛应用于其他很多模型当中,以后再提到的时候就不会陌生了。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:28:52  更:2022-02-28 15:32:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:23:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码