PyTorch ------NIN(NetworkInNetwork)卷积神经网络实现mnist手写体识别

本文介绍了如何使用PyTorch实现NIN(Network In Network)模型进行MNIST手写体识别,强调了NIN的两个创新点:MLP卷积层和全局平均池化(GAP)。NIN用MLP(Conv)替换传统卷积层,减少参数并提高特征抽象能力,而GAP层取代全连接层,减少过拟合,提高模型泛化能力。
摘要由CSDN通过智能技术生成
  • 接上一篇 VGG实现mnist手写识别

  • 使用NIN经典模型实现相同的功能

  • 今天介绍的是NIN(NetworkInNetwork)

  • 原文地址传送门

  • 正在考虑找个时间把论文翻一下,有同样想法的小伙伴吗,一起搞事情

  • 这个模型有两个创新点:

    • 1、使用MLP Convolution layers
      • 经典的神经网络模型是堆叠卷积层和池化层,由卷积层线性生成features map 然后通过激活函数完成非线性映射.
      • 公式和示意图如下:
      • 在这里插入图片描述
      • 解释一下上图公式中各个变量的含义(i,j)是features map 的像素索引,X(i,j)表示输入像素单元的索引的中心,k表示features map 的索引
      • 当潜在特征线性可分时,这种线性卷积足可以抽象,但是想要得到更好的抽象,需要用更加通用的函数来提取特征,这样可以尽可能的逼近潜在特征的表现形式.
      • 在传统的CNN中可以通过一套完整的滤波器来涵盖同一特征的所有变体,但是同一特征使用太多的滤波器,将会给下一层带来额外的负担
      • 使用一个通用函数逼近器做局部特征的特征提取,因为它能逼近潜在特征的更多抽象表示.
      • 在这里有两个选择一个是径向基(Radial basis network)和多层感知器(multilayer perceptron),使用多层感知机有两个原因:首先是因为多层感知机与神经网络结构兼容,可以使用反向传播进行训练,第二是多层感知机可以是很深的模型
      • 使用MLP代替了GLM,形成MLPConv层
      • 下图是MLPConv计算公式和示意图:
      • 在这里插入图片描述
  • 在这里插入图片描述

    • 当时作者使用1X1卷积核,具有里程碑式的意义,之后的模型都开始关注1X1的卷积核.
  • 2 、(GAP)Global Average Pooling

    • 传统卷积神经网络在网络的浅层进行卷积提取特征,将由最后一个卷积层得到的features map 输入到 全连接层,然后由全连接层完成分类任务
    • 但是全连接层参数过多,容易产生过拟合,从而阻碍了模型的泛化能力,作者提出了一种叫做全局平均池化层,由他代替CNN中的全连接层.
    • GAP相比较全连接层的优点:
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值