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

简介: 卷积神经网络中的参数共享/权重复制

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

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

  1. 局部感受领域
  2. 权值共享(参数共享)
  3. 空间子采样

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

介绍

640.png

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

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

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

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

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

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

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

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

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

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

将理论付诸实践

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

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

以下是要采取的步骤:·

  1. 获取conv 层的输出宽度
    (输入大小的宽度-过滤器大小+(2 * Padding)/步幅)+1 =卷积层的输出宽度
  2. 计算conv层中神经元/单位的数量
  3. 计算没有使用权值共享的训练参数的数量(包括偏差)
  4. 计算使用权值共享的训练参数(包括偏差)的数量

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

640.png

AlexNet

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

LeNet

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

640.png

总结

640.png

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

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

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

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

目录
相关文章
|
9天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
1天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
12天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
15 2
|
12天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
21 1
|
2天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
9 0
|
6天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
11天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
14天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。
|
1天前
|
SQL 安全 物联网
网络安全与信息安全:深入探讨网络漏洞、加密技术及安全意识###
网络安全与信息安全是当今数字化时代的重要议题。本文将详细探讨网络安全和信息安全的差异,重点介绍常见的网络漏洞、加密技术以及如何提升用户和组织的安全意识。通过具体案例和技术分析,帮助读者理解这些关键概念,并提供实用的建议以应对潜在的网络威胁。 ###