参数共享或权重复制是深度学习中经常被忽略的领域。但是了解这个简单的概念有助于更广泛地理解卷积神经网络的内部。卷积神经网络(cnn)能够使那些通过网络馈送的图像在进行仿射变换时具有不变性。 这个特点提供了识别偏移图案、识别倾斜或轻微扭曲的图像的能力。

仿射不变性的这些特征是由于CNN架构的三个主要属性而引入的。

  • 局部感受领域
  • 权值共享(参数共享)
  • 空间的采样

在本文中,我们将探索权值共享,并了解它们的用途以及它们在CNN架构中的优势。本文针对从事机器学习或更具体地说是深度学习的各个层次的人。

介绍

让我们首先在脑海中演示CNN中的一个卷积层。。

CNN中的卷积层(conv层)包含一组单元,这些单元也可以称为神经元。

conv层还包括层内的几个过滤器,这是一个预定义的超参数。

一个层内过滤器的数量表示激活/特征映射的输出量的深度维度,该映射由conv层创建,作为下一层的输入。

每一个滤波器都有一个设定的宽度和高度,对应于层内单个单元的局部接收场。作用于输入数据的滤波器产生一个卷积层的输出,即特征映射。

在CNN的训练阶段,可以学习过滤器中的权重值。卷卷积层的输出维数有一个深度分量,如果我们对输出的每一段进行分割,我们将得到一个二维平面的特征映射。在单个二维平面上使用的过滤器包含一个权重,该权重在同一平面上使用的所有过滤器之间共享。

这样做的好处是,我们在输入数据的另一部分与输入数据的另一部分保持相同的特征检测器。

卷积层的输出是一组特征图,其中每个特征图是单元内固定权重参数与输入数据之间的卷积运算结果。

卷积神经网络层的一个基本特征是它的特征映射能够反映对输入图像所做的任何仿射变换,而这些仿射变换是通过输入层输入的。

因此,对输入数据进行任何偏移、倾斜或定向,特征映射都将提供一个输出,该输出将根据输入数据所受的量进行偏移、倾斜或定向。

将理论付诸实践

本节的目的是揭示卷积神经网络中发生的权值共享的好处。

我们将在两种流行的CNN架构(LeNet和AlexNet)的第一个卷积层中得出不同权值共享和权值共享的可训练权重的数量。

以下是要采取的步骤:·

1. 获取conv 层的输出宽度

(输入大小的宽度-过滤器大小+(2 * Padding)/步幅)+1 =卷积层的输出宽度

  • 计算conv层中神经元/单位的数量
  • 计算没有使用权值共享的训练参数的数量(包括偏差)
  • 计算使用权值共享的训练参数(包括偏差)的数量

下表描述了来自AlexNet和LeNet CNN架构的信息,这些信息将用于得出卷积层内训练参数/权重的数量。

AlexNet

  • conv层的输出宽度:=((227-11)/ 4)+1= 55(conv层输出宽度)
  • conv层中神经元/单位的数量=输出高度*输出宽度*特征图的数量= 55*55*96(转换输出量)= 290,400单位
  • conv层内的训练参数或权重数(不使用权值共享)= 290400 *((11* 11 * 3)+ 1偏差)=‭105,415,600‬ ‬‬
  • 使用权值共享的训练参数或权重的数量= 96 *((11 * 11 *3)+1个偏差)= 34944

LeNet

  • conv层的输出宽度:=(((28–5)/ 1)+1= 24(conv层输出宽度)
  • conv层中神经元/单位的数量=输出高度*输出宽度*特征图的数量= 24*24*6(转换输出量)= 3,456单位
  • conv层内的训练参数或权重数(不使用权值共享)= 3456 *((5 * 5 * 1)+ 1偏差)=‭89,856‬‬‬
  • 使用权值共享的训练参数或权重的数量= 6 *((5 * 5 * 1)+1偏差)= 156

总结

显然,通过参数共享,我们可以减少conv层中的权重数量。

参数共享用于网络中的所有conv层。

参数共享减少了训练时间; 这是减少反向传播过程中必须进行的权重更新次数的直接好处。

重申一下,当根据过滤器与卷积层中某个平面内某个单元的输入数据之间的卷积结果生成特征图时就会产生参数共享。 此层平面内的所有单元共享相同的权重;因此称为权重/参数共享。

【编辑推荐】

  1. 12个写论文必备的神经网络可视化工具
  2. 神经网络原来这么简单,机器学习入门贴送给你 | 干货
  3. 可视化解释11种基本神经网络架构
  4. 利用Keras中的权重约束减少深度神经网络中的过拟合
  5. 为什么说神经网络可以逼近任意函数?

卷积神经网络中的参数共享/权重复制相关推荐

  1. 卷积神经网络中的参数计算

    举例1: 比如输入是一个32x32x3的图像,3表示RGB三通道,每个filter/kernel是5x5x3,一个卷积核产生一个feature map,下图中,有6个5x5x3的卷积核,故输出6个fe ...

  2. 卷积神经网络中卷积核的参数为什么是四个

    卷积神经网络的卷积核参数 笔者最近在学卷积神经网络,想起来我的某位同学问了我一个问题: 为什么卷积神经网络中卷积核的参数是四个,为什么要把输出output也写入,即为什么与输出有关? 刚开始我也困惑? ...

  3. 深入学习卷积神经网络中卷积层和池化层的意义(转)

    为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...

  4. 深入学习卷积神经网络中卷积层和池化层的意义

    为什么要使用卷积呢? 在传统的神经网络中,比如多层感知机(MLP),其输入通常是一个特征向量:需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用 ...

  5. 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层

    本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  6. 卷积神经网络(CNN)的参数优化方法

    积神经网络的参数优化方法--调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少. 著名: 本文是从 Michael Nielsen的电子书Neural Network and Deep L ...

  7. xml文件 卷积神经网络_理解卷积神经网络中的输入与输出形状(Keras实现)

    即使我们从理论上理解了卷积神经网络,在实际进行将数据拟合到网络时,很多人仍然对其网络的输入和输出形状(shape)感到困惑.本文章将帮助你理解卷积神经网络的输入和输出形状. 让我们看看一个例子.CNN ...

  8. (pytorch-深度学习系列)卷积神经网络中的填充(padding)和步幅(stride)

    卷积神经网络中的填充(padding)和步幅(stride) 之前写过一篇blog,描述CNN网络层的输入和输入尺寸的计算关系,但是并没有描述的很全面,这里全面描述了影响输出尺寸的两个超参数paddi ...

  9. 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层

    本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

最新文章

  1. 2005年博客与web2.0十大最拽的武侠人物
  2. ASP.NET MVC 5 入门教程 (2) 控制器Controller
  3. Cpp 对象模型探索 / 多态的本质
  4. HarmonyOS之组件布局的创建和使用
  5. 2019第十届蓝桥杯C/C++ B组省赛 —— 第二题:年号字串
  6. [独家]网易遭遇****** 留下“装B”两字
  7. JavaScript对象、JSON对象、JSON字符串的区别
  8. Probability, Matringale,Markov Chain, MCMC
  9. Boost智能指针——boost::scoped_ptr(使用及原理分析)
  10. 怎么从某个div跳转到另一个_另一个伊甸伊丝卡怎么样 伊丝卡使用攻略_
  11. 宝塔自助建站系统源码v8.0
  12. 去哪儿-20-detail-animation
  13. 流放之路材质过滤怎么设置_用一张漫反射贴图可以做写实材质吗?
  14. Java中的代理模式--静态代理和动态代理
  15. Linux学习笔记9_终端提示符编辑方法(修改颜色,路径,时间)
  16. 天锐绿盾加密软件支持域控吗?
  17. 扩大人类对车辆的控制 新种双轨制自驾车出现
  18. 蓝牙诊断工具_蓝牙故障诊断和使用指南
  19. 数据结构与算法实验01-使用链表实现多项式乘法
  20. 64G的EXFAT格式的U盘如何格式化为FAT32

热门文章

  1. easyui treegrid 获取新添加行inserted_18行JavaScript代码构建一个倒数计时器
  2. springcloud学之前需要掌握什么_学国画之前我们需要准备什么?
  3. java当前路径和相对路径相关的疑惑
  4. txt或者csv数据文件的格式是有要求的,如下shell代码中说明。
  5. python语言数据库规模_Python语言访问MySQL数据库
  6. ImageNet的top-1终于上了90%,网友质疑:用额外数据集还不公开,让人怎么信服?...
  7. 2020年ACM Fellows出炉!颜水成、周昆、陈怡然等12位华人当选
  8. 乏善可陈的Neuralink
  9. 慌!年中总结完全没思路,这份安全汇报让你抄作业
  10. 这本 Kubernetes 图书,你一定不要错过!