CNN中的权值共享理解

2024-06-02 05:48
文章标签 共享 理解 cnn 权值

本文主要是介绍CNN中的权值共享理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基本名词对应:

Feature Map : 特征图,特征映射
Weight:权值,权重

权值共享

CNN是权重共享,减少了参数的数量。这个有必要再对比研究一下。
一般神经网络层与层之间的连接是,每个神经元与上一层的全部神经元相连,这些连接线的权重独立于其他的神经元,所以假设上一层是m个神经元,当前层是n个神经元,那么共有 m × n m \times n m×n个连接,也就有 m × n m \times n m×n个权重。权重矩阵就是 m × n m \times n m×n形状。

一般用权重矩阵W表示,每一行是一个神经元与上一层所有神经元相连接的权重的值

而在CNN里的权重共享是如何具体操作的呢?

需要理清的概念是,每个层都是一个展平的结构。原始图像是二维的,用在输入层的输入向量是一整条的。

卷积层存的是什么?

不是我最初理解的存的是多个卷积核的展开值,而是卷积计算的结果。具体下面会说到。

再理清一下卷积计算,我们知道是拿卷积核与卷积核的感受野里的像素进行卷积计算,

卷积层里存的是什么数值?卷积后的结果?还是权重?但我们知道权重是单独建立的矩阵,是待学习调优的对象,卷积层的值要再往后传,存的必须是像素处理后相关的值。

问题还是存在:卷积层个数与卷积核个数的关系是什么?

每层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征。每个Feature Map有多个神经元。

比如给定一个输入是32x32像素的图片,Feature Map大小是28x28的神经元阵列,每个神经元对应的值如何计算得来呢?按照卷积计算,比如5x5的卷积核,需要25个参数,也就是权重,在28x28的特征映射 | Feature Map里每个神经元都用这25个参数去进行卷积计算,这样就是所谓的权值共享。

那这个卷积层有多少参数呢?我们看一个Feature Map里每个神经元用的都是一样的5x5的卷积核,按照stride的值往前移动,每一步卷积结果对应一个神经元的值。所以,虽然权值相同,但是每一步下感受野对应的像素值是不同的,得到的结果自然也不同。

参数数量如何计算?单个特征映射里,用的权重一样,卷积核有25个参数,加上每个神经元有一个偏置bias参数,所以共26个参数,也就是一个Feature Map里有26个参数。这个隐层有6个特征图,所以本隐层有26 * 6 = 156个训练参数。

该隐层与输入层有多少连接呢?也很简单,我们看到一个神经元与5x5的像素值相连,共25个连接,注意到bias也是作为一个输入值,所以一个神经元有26个连接。接着看特征樱花色层有多少神经元就可以了,28x28是一个特征映射的神经元阵列,共有6个特征映射,所以得出:26 * 6 * 28 * 28 = 122304个连接。

28x28是怎么得来的?实际上假定的是padding为0,stride为1,就是开始直接把5x5的卷积核放在图像的左上角,5x5的二维矩阵的左上角对应图像的左上角,往右移动,一次一个像素,32 - 5 + 1 = 28,向下移动也是一样。

END.

这篇关于CNN中的权值共享理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023146

相关文章

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

Linux使用粘滞位 (t-bit)共享文件的方法教程

《Linux使用粘滞位(t-bit)共享文件的方法教程》在Linux系统中,共享文件是日常管理和协作中的常见任务,而粘滞位(StickyBit或t-bit)是实现共享目录安全性的重要工具之一,本文将... 目录文件共享的常见场景基础概念linux 文件权限粘滞位 (Sticky Bit)设置共享目录并配置粘

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

如何通俗理解注意力机制?

1、注意力机制(Attention Mechanism)是机器学习和深度学习中一种模拟人类注意力的方法,用于提高模型在处理大量信息时的效率和效果。通俗地理解,它就像是在一堆信息中找到最重要的部分,把注意力集中在这些关键点上,从而更好地完成任务。以下是几个简单的比喻来帮助理解注意力机制: 2、寻找重点:想象一下,你在阅读一篇文章的时候,有些段落特别重要,你会特别注意这些段落,反复阅读,而对其他部分