深度学习经典模型之Network in Network

news/2024/11/8 16:06:56 标签: 深度学习, 人工智能

1 Network in Network

1.1 模型介绍

​ Network In Network (NIN)是由 M i n L i n Min Lin MinLin等人提出,在CIFAR-10和CIFAR-100分类任务中达到当时的最好水平,因其网络结构是由三个多层感知机堆叠而被成为NIN [ 5 ] ^{[5]} [5]。NIN以一种全新的角度审视了卷积神经网络中的卷积核设计,通过引入子网络结构代替纯卷积中的线性映射部分,这种形式的网络结构激发了更复杂的卷积神经网络的结构设计,其中下一节中介绍的GoogLeNet的Inception结构就是来源于这个思想。

1.2 模型结构

在这里插入图片描述

​ 图 1 NIN网络结构图

​ NIN由三层的多层感知卷积层(MLPConv Layer)构成,每一层多层感知卷积层内部由若干层的局部全连接层和非线性激活函数组成,代替了传统卷积层中采用的线性卷积核。在网络推理(inference)时,这个多层感知器会对输入特征图的局部特征进行划窗计算,并且每个划窗的局部特征图对应的乘积的权重是共享的,这两点是和传统卷积操作完全一致的,最大的不同在于多层感知器对局部特征进行了非线性的映射,而传统卷积的方式是线性的。NIN的网络参数配置表4.4所示(原论文并未给出网络参数,表中参数为编者结合网络结构图和CIFAR-100数据集以 3 × 3 3\times3 3×3卷积为例给出)。

​ 表2 NIN网络参数配置(结合原论文NIN结构和CIFAR-100数据给出)

网络层输入尺寸核尺寸输出尺寸参数个数
局部全连接层 L 11 L_{11} L11 ∗ ^* 32 × 32 × 3 32\times32\times3 32×32×3 ( 3 × 3 ) × 16 / 1 (3\times3)\times16/1 (3×3)×16/1 30 × 30 × 16 30\times30\times16 30×30×16 ( 3 × 3 × 3 + 1 ) × 16 (3\times3\times3+1)\times16 (3×3×3+1)×16
全连接层 L 12 L_{12} L12 ∗ ^* 30 × 30 × 16 30\times30\times16 30×30×16 16 × 16 16\times16 16×16 30 × 30 × 16 30\times30\times16 30×30×16 ( ( 16 + 1 ) × 16 ) ((16+1)\times16) ((16+1)×16)
局部全连接层 L 21 L_{21} L21 30 × 30 × 16 30\times30\times16 30×30×16 ( 3 × 3 ) × 64 / 1 (3\times3)\times64/1 (3×3)×64/1 28 × 28 × 64 28\times28\times64 28×28×64 ( 3 × 3 × 16 + 1 ) × 64 (3\times3\times16+1)\times64 (3×3×16+1)×64
全连接层 L 22 L_{22} L22 28 × 28 × 64 28\times28\times64 28×28×64 64 × 64 64\times64 64×64 28 × 28 × 64 28\times28\times64 28×28×64 ( ( 64 + 1 ) × 64 ) ((64+1)\times64) ((64+1)×64)
局部全连接层 L 31 L_{31} L31 28 × 28 × 64 28\times28\times64 28×28×64 ( 3 × 3 ) × 100 / 1 (3\times3)\times100/1 (3×3)×100/1 26 × 26 × 100 26\times26\times100 26×26×100 ( 3 × 3 × 64 + 1 ) × 100 (3\times3\times64+1)\times100 (3×3×64+1)×100
全连接层 L 32 L_{32} L32 26 × 26 × 100 26\times26\times100 26×26×100 100 × 100 100\times100 100×100 26 × 26 × 100 26\times26\times100 26×26×100 ( ( 100 + 1 ) × 100 ) ((100+1)\times100) ((100+1)×100)
全局平均采样 G A P GAP GAP ∗ ^* 26 × 26 × 100 26\times26\times100 26×26×100 26 × 26 × 100 / 1 26\times26\times100/1 26×26×100/1 1 × 1 × 100 1\times1\times100 1×1×100 0 0 0

局部全连接层 L 11 L_{11} L11实际上是对原始输入图像进行划窗式的全连接操作,因此划窗得到的输出特征尺寸为 30 × 30 30\times30 30×30 32 − 3 k + 1 1 s t r i d e = 30 \frac{32-3_k+1}{1_{stride}}=30 1stride323k+1=30
全连接层 L 12 L_{12} L12是紧跟 L 11 L_{11} L11后的全连接操作,输入的特征是划窗后经过激活的局部响应特征,因此仅需连接 L 11 L_{11} L11 L 12 L_{12} L12的节点即可,而每个局部全连接层和紧接的全连接层构成代替卷积操作的多层感知卷积层(MLPConv)。
全局平均采样层或全局平均池化层 G A P GAP GAP(Global Average Pooling)将 L 32 L_{32} L32输出的每一个特征图进行全局的平均池化操作,直接得到最后的类别数,可以有效地减少参数量。

1.3 模型特点

  • 使用多层感知机结构来代替卷积的滤波操作,不但有效减少卷积核数过多而导致的参数量暴涨问题,还能通过引入非线性的映射来提高模型对特征的抽象能力。
  • 使用全局平均池化来代替最后一个全连接层,能够有效地减少参数量(没有可训练参数),同时池化用到了整个特征图的信息,对空间信息的转换更加鲁棒,最后得到的输出结果可直接作为对应类别的置信度。

http://www.niftyadmin.cn/n/5744117.html

相关文章

【华为机试题】 [Python] 贪心的商人

代码 # 其实就是贪心算法求每个商品的最大利润,最后再和商品数相乘就好了 from unittest.mock import patchclass Solution:def func(self, number, days, item_max_num, item_price):max_money 0for i in range(number):max_money item_max_num[i] * self.compu…

大数据数据存储层MemSQL, HBase与HDFS

以下是对 MemSQL、HBase 和 HDFS 的详细介绍,这些工具在分布式数据存储和处理领域有着重要作用。 1. MemSQL MemSQL(现称为 SingleStore)是一种分布式内存数据库,兼具事务处理(OLTP)和分析处理(OLAP)的能力,专为高性能实时数据处理设计。 1.1 核心特点 内存优先存储…

Unity中IK动画与布偶死亡动画切换的实现

在Unity游戏开发中,Inverse Kinematics(IK)是创建逼真角色动画的强大工具。同时,能够在适当的时候切换到布偶物理状态来实现死亡动画等效果,可以极大地增强游戏的视觉体验。本文将详细介绍如何在Unity中利用IK实现常规…

docker-compose.yml 文件来配置 Redis

你可以创建一个 docker-compose.yml 文件来配置 Redis,确保 Redis 在启动时使用指定的密码和相关配置。以下是配置文件的示例: version: 3.8services:redis:image: redis:latestcontainer_name: redis-serverports:- "6379:6379"environment:…

Spark中的宽窄依赖-宽窄巷子

1、什么是依赖关系? 2、什么是宽窄依赖? 窄依赖:Narrow Dependencies 定义:父RDD的一个分区的数据只给了子RDD的一个分区 【不用经过Shuffle】 特点:一对一或者多对一,不经过Shuffle,性能相对…

vue3 pdf base64转成文件流打开

vue3 pdf base64转成文件流打开 1、先下载依赖 “vue-pdf”: “^4.3.0”, “canvas”: “^2.11.2”, “pdfh5”: “^1.4.0”, “pdfjs-dist”: “2.5.207”, 2、文件流转换 const getList async () > {const res await TH36({query_type: 2,start_date: data.start_date,…

Hive面试题-- 查询各类型专利 top10 申请人及专利申请数

在数据处理中,尤其是涉及到专利信息等复杂数据时,Hive 是一个强大的工具。本文将详细介绍如何使用 Hive 查询语句来获取各类型专利 top10 申请人以及他们对应的专利申请数,以下是基于给定的 t_patent_detail 表结构的分析和查询步骤。 建表语…

如何用pycharm连接sagemath?

#世纪难题在我逃避刷CTF的这两天解决了# 1. 在本地linux上部署最新版的sagemath 推荐WSLdocker直接pull sagemath 2. pycharm中创建jupyter脚本,远程连接jupyter服务器 3. 运行cell并配置kernel 缺点:pycharm用自带的python编译器预处理代码&#xff0…