DAY15 神经网络的参数和变量

news2025/1/10 3:36:25

DAY15 神经网络的参数和变量

一、参数和变量

在神经网络中,参数和变量是两个关键概念,它们分别指代不同类型的数据和设置。

参数(Parameters)

  1. 定义:参数是指在训练过程中学习到的模型内部变量,这些变量决定了模型的预测能力。
  2. 组成:对于神经网络而言,参数主要包括 权重weights偏置biases。每个连接都有一个对应的权重,而每个神经元通常会有一个偏置项。
  3. 作用:参数通过反向传播算法和梯度下降等优化方法不断更新,以最小化损失函数(Loss Function),从而提高模型的性能。
  4. 计算方法:参数个数通常基于神经网络的层次结构和节点数量来计算。
  5. 迭代更新:参数的更新取决于学习率、误差反向传播过程中输出的误差和输入信号。

变量(Variables)

  1. 定义:变量在神经网络中通常指的是那些在训练过程中不直接参与参数更新的数据或设置,但它们对模型的训练和性能有重要影响。

  2. 类型:变量可以包括训练集、验证集和测试集等数据集,以及超参数(如学习率、批次大小、层数等)。

  3. 作用:变量用于指导模型的训练过程,评估模型的性能,并帮助调优模型结构。例如,训练集用于确定W、b参数,而验证集用于选择超参数。

  4. 表示形式:在TensorFlow等深度学习框架中,变量可以表示为张量(Tensor),具有不同的类型和阶数。

总的来说:

参数是神经网络模型内部的可学习变量,它们通过训练过程不断调整以优化模型性能;

变量则包括了更广泛的数据和设置,它们虽然不直接参与参数更新,但对模型的训练和性能评估至关重要。

示例
  • 在神经网络中,当输入为 x 1 、 x 2 、 x 3 x1、x2、x3 x1x2x3时,神经单元将它们如下整合为加权输入 z z z,通过激活函数 a ( z ) a(z) a(z) 来处理。

z 1 = w 1 x 1 + w 2 x 2 + w 3 x 3 + b ( w 1 , w 2 , w 3 为权重, b 为偏置 ) z_{1} = w_{1}x_{1} + w_{2}x_{2} + w_{3}x_{3} + b (w_{1}, w_{2}, w_{3}为权重,b为偏置) z1=w1x1+w2x2+w3x3+b(w1,w2,w3为权重,b为偏置)

a 1 = a ( z 1 ) a_{1} = a(z_{1}) a1=a(z1)

在这里插入图片描述

  • 此时,权重 w 1 w_{1} w1 w 2 w_{2} w2 w 3 w_{3} w3 与偏置 b b b参数,输入 x 1 x_{1} x1 x 2 x_{2} x2 x 3 x_{3} x3、加权输入 z 1 z_{1} z1、神经单元的输出 a 1 a_{1} a1变量,变量的值根据学习数据的学习实例而变化。

神经网络中参数和变量的量级

神经网络在实际应用中,其参数和变量的数量非常庞大。以下是一些实际例子来说明这一点:

  1. 鸢尾花分类案例:在这个案例中,一个简单的神经网络被用来对鸢尾花进行分类。该网络有4个输入神经元(对应于花萼长度、花萼宽度、花瓣长度和花瓣宽度四个特征),3个输出神经元(对应于三种不同的花类别)。仅连接关系就有12个,这还不包括权重和偏置参数。

  2. 手写数字识别:在MNIST数据集上训练的卷积神经网络(CNN)通常包含多个卷积层、池化层和全连接层。例如,一个典型的CNN可能第一层有32个滤波器,每个滤波器的大小为5x5,那么仅这一层的权重数量就是32x(5x5+1)=832个。再加上偏置项,参数数量更多。而整个网络可能有数十层,每层的参数数量都相当可观。

  3. 图像分类:在ImageNet数据集上训练的深度神经网络,如ResNet-50,它有超过2500万个参数。这些参数包括了所有卷积层、全连接层以及批量归一化和残差连接中的参数。

  4. 自然语言处理:在NLP任务中,如机器翻译或文本生成,使用的模型如Transformer,其参数数量更是惊人。例如,OpenAI的GPT-3模型拥有1750亿个参数。

  • 综上所述,这些例子展示了神经网络中参数和变量数量的庞大性,这也是为什么训练神经网络需要大量的数据和计算资源。
    • 随着网络深度和宽度的增加,构成神经网络的神经单元的数量非常大,参数的数量呈指数级增长,相应地表示偏置、权重、输入、输出的变量的数目也变得非常庞大,这也使得神经网络能够学习和表示更加复杂和精细的特征。

二、神经网络中用到的变量名和参数名

  • 首先,我们对神经网络中各层进行编号,如下图所示,最左边的输入层为层 1,隐藏层(中间层)为层 2、层 3……最右边的输出层为层 l l l(这里的 l l l l a s t last last 的首字母,表示层的总数)。

在这里插入图片描述

  • 进行以上准备后,将如下表所示来表示变量和参数。
分类符号含义
变量名 x i x_i xi表示输入层(层1)的第 i i i个神经单元的输入的变量
1.由于输入层的神经单元的输入和输出为同一值,所以也是表示输出的变量
2.这个变量名也作为神经单元的名称使用
参数名 w j i l w_{ji}^l wjil从层 l − 1 l-1 l1的第 i i i个神经单元指向层 l l l的第 j j j个神经单元的箭头的权重
注意 i i i j j j的顺序。
变量名 z j l z_j^l zjl表示层 l l l的第 j j j个神经单元的加权输入的变量
参数名 b j l b_j^l bjl l l l的第 j j j个神经单元的偏置
变量名 a j l a_j^l ajl l l l的第 j j j个神经单元的输出变量
此外,这个变量名也作为神经单元的名称使用

提供上表中字母符号对应的英文标注,用于加深的理解记忆:

w w w w e i g h t weight weight | l l l l a y e r layer layer | b b b b i a s bias bias | a a a a c t i v a t i o n activation activation|

  • 上表中各个符号的逻辑含义如下:

在这里插入图片描述

  • 在神经网络中,每个神经元计算一个线性组合(即加权输入 z z z),然后通过一个非线性的激活函数 f ( z ) f(z) f(z) 来生成最终的输出。这个经过激活函数处理后的值通常用 a a a 表示,因为它代表了激活函数的输出,也就是神经元的实际激活水平。

  • 具体来说,对于第 l l l 层的第 j j j 个神经元,我们有:
    z j l = ∑ i w j i l a i l − 1 + b j l z_j^l = \sum_{i} w_{ji}^l a_i^{l-1} + b_j^l zjl=iwjilail1+bjl

    这里 z j l z_j^l zjl 是未激活的输入,而
    a j l = f ( z j l ) a_j^l = f(z_j^l) ajl=f(zjl)
    ​这里的 a j l a_j^l ajl 就是经过激活函数 f f f 处理后的输出,表示该神经元被激活的程度。

输入层相关的变量名

  • 输入层为神经网络的数据入口,如果表示输入层的输入的变量名依次为 x 1 , x 2 , … x_1,x_2, … x1,x2,由于输入层中神经单元的输入和输出为同一值,那么它们也是输出的变量名。

在这里插入图片描述

隐藏层、输出层相关的参数名与变量名

  • 这里我们截取神经网络的一部分,并按照前面表格中的约定标注变量名和参数名,如下图所示。

在这里插入图片描述

注意:上图中的 a j l a_j^l ajl并不表示输出变量,而是作为神经单元的名称使用。

  • 下表列举了图中几个符号的具体含义。
符号示例符号示例的含义
b 1 2 b_1^2 b12层 2(隐藏层)的第 1 个神经单元的偏置
b 1 3 b_1^3 b13层 3(输出层)的第 1 个神经单元的偏置
w 12 2 w_{12}^2 w122从层 1 的第 2 个神经单元指向层 2 的第 1 个神经单元的箭头的权重,也就是层 2(隐藏层)的第 1 个神经单元分配给层 1(输入层)的第 2 个神经单元的输出 x 2 x_2 x2 的权重
w 12 3 w_{12}^3 w123从层 2 的第 2 个神经单元指向层 3 的第 1 个神经单元的箭头的权重,也就是层 3(输出层)的第 1 个神经单元分配给层 2(隐藏层)的第 2 个神经单元的输出 a 2 2 a_2^2 a22 的权重

三、变量值的表示方法

示例一

在前面讲解变量名的表格中, x i x_i xi z j l z_j^l zjl a j l a_j^l ajl为变量,它们的值根据学习数据的学习实例而变化。

  • 假设给出了下面的图像作为学习实例。在将这个图像输入到神经网络中时,求隐藏层(层 2)的第 1 个神经单元的加权输入的值,即求 z 1 2 z_1^2 z12

在这里插入图片描述

若具体地给出了学习数据的一个图像,则 x i x_i xi z j l z_j^l zjl a j l a_j^l ajl就变成了数值,而不是变量。

  • 根据前面的变量名的一般约定,加权输入 z 1 2 z_{1}^{2} z12可以如下表示。
    z 1 2 = w 11 2 x 1 + w 12 2 x 2 + w 13 2 x 3 + ⋯ + w 112 2 x 12 + b 1 2 \begin{matrix}z_{1}^{2}=w_{11}^{2}x_{1}+w_{12}^{2}x_{2}+w_{13}^{2}x_{3}+\cdots +w_{112}^{2}x_{12}+b_{1}^{2}\end{matrix} z12=w112x1+w122x2+w132x3++w1122x12+b12

  • 由于读取图像后,输入层的 x 1 , x 2 , ⋯   , x 12 x_{1}, x_{2}, \cdots, x_{12} x1,x2,,x12的值就确定了,所以加权输入 z 1 2 z_{1}^{2} z12的值可以像下面这样确定。
    z 1 2 的值 = w 11 2 × 1 + w 12 2 × 1 + w 13 2 × 0 + ⋯ + w 112 2 × 0 + b 1 2 = w 11 2 + w 12 2 + w 15 2 + w 18 2 + w 111 2 \begin{matrix}z_{1}^{2}的值=w_{11}^{2}\times 1+w_{12}^{2}\times 1+w_{13}^{2}\times 0+\cdots +w_{112}^{2}\times 0+b_{1}^{2}\\ =w_{11}^{2}+w_{12}^{2}+w_{15}^{2}+w_{18}^{2}+w_{111}^{2}\end{matrix} z12的值=w112×1+w122×1+w132×0++w1122×0+b12=w112+w122+w152+w182+w1112

  • 这样一来,加权输入 z 1 2 z_{1}^{2} z12的具体值就可以以上计算给出。

权重( w 11 2 w_{11}^{2} w112等)和偏置 b 1 2 b_{1}^{2} b12为参数,它们都是常数。

在不清楚变量和常数的关系时,请参考Day14 最优化问题和回归分析(番外二:常数和变量?)。

示例二

从示例一中可以知道,我们需要区分变量 x i x_i xi z j l z_j^l zjl a j l a_j^l ajl的符号与它们的值。在后面计算代价函数时,这一点非常重要。

  • 在给定学习数据的第 k k k 个学习实例时,各个变量的值可以如下表示。
    • x i [ k ] x_{i}[k] xi[k]:输入层的第 i i i 个神经元的输入值(=输出值)
    • z j l [ k ] z_{j}^l[k] zjl[k]:层 l l l 的第 j j j 个神经元的加权输入的值
    • a j l [ k ] a_{j}^l[k] ajl[k]:层 l l l 的第 j j j 个神经元的输出值

这种表示方法是以 C 语言等编程语言的数组变量的表示方法为依据的。

  • 在示例一中,假设输入图像为学习数据的第 7 张图像,按照上述约定,输入层的变量的值以及加权输入 z 1 2 z_1^2 z12 的值可以如下表示。
    x 1 [ 7 ] = 1 , x 2 [ 7 ] = 1 , x 3 [ 7 ] = 0 , x 4 [ 7 ] = 0 , x 5 [ 7 ] = 1 , x 6 [ 7 ] = 0 , x_{1}[7]=1, x_{2}[7]=1, x_{3}[7]=0, x_{4}[7]=0, x_{5}[7]=1, x_{6}[7]=0, x1[7]=1,x2[7]=1,x3[7]=0,x4[7]=0,x5[7]=1,x6[7]=0,

    x 7 [ 7 ] = 0 , x 8 [ 7 ] = 1 , x 9 [ 7 ] = 0 , x 10 [ 7 ] = 0 , x 11 [ 7 ] = 1 , x 12 [ 7 ] = 0 , x_{7}[7]=0, x_{8}[7]=1, x_{9}[7]=0, x_{10}[7]=0, x_{11}[7]=1, x_{12}[7]=0, x7[7]=0,x8[7]=1,x9[7]=0,x10[7]=0,x11[7]=1,x12[7]=0,

    z 1 2 [ 7 ] = w 11 2 + w 12 2 + w 15 2 + w 18 2 + w 111 2 + b 1 2 z_{1}^2[7]=w_{11}^{2}+w_{12}^{2}+w_{15}^{2}+w_{18}^{2}+w_{111}^{2}+b_{1}^{2} z12[7]=w112+w122+w152+w182+w1112+b12

    在这里插入图片描述

示例三

  • 若输出层(层 3)的第 j j j 个神经单元的加权输入为 z j 3 z_j^3 zj3 ,输出变量为 a j 3 a_j^3 aj3
    • 在将学习数据的第 1 张图像作为图像实例输入时
      • 输出层(层 3)的第 j j j个神经单元的加权输入的值为 z j 3 [ 1 ] z_j^3[1] zj3[1],输出值为 a j 3 [ 1 ] a_j^3[1] aj3[1] ,如下图所示。

在这里插入图片描述


四、更简洁的使用神经单元符号和变量名

  • 到目前为止,本Day的示意图都是将参数和变量写在一个神经单元的周围,这就导致图看起来非常吃力(见下图左)。之后将根据情况使用如下所示的标有参数和变量的神经单元示意图(见下图右)。

在这里插入图片描述

  • 利用这种整合了参数和变量的示意图,就可以简洁地表示两个神经单元的关系,如下所示。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2274131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[离线数仓] 总结二、Hive数仓分层开发

接 [离线数仓] 总结一、数据采集 5.8 数仓开发之ODS层 ODS层的设计要点如下: (1)ODS层的表结构设计依托于从业务系统同步过来的数据结构。 (2)ODS层要保存全部历史数据,故其压缩格式应选择压缩比率,较高的,此处选择gzip。 CompressedStorage - Apache Hive - Apac…

Chromium源码windows下载和编译

官方地址:chromium/docs/windows_build_instructions.md at main chromium/chromium GitHub Chromium介绍 Chromium 是一个开源浏览器项目,旨在为所有用户构建更安全、更快、更稳定的网络体验方式。掌握Chromium的编译和开发是浏览器项目相关的开发者…

maven如何从外部导包

1.找到你项目的文件位置,将外部要导入的包复制粘贴进你当前要导入的项目下。 2.从你的项目目录下选中要导入的包的pom文件即可导包成功 注意一定是选中对应的pom文件 导入成功之后对应的pom.xml文件就会被点亮

力扣 跳跃游戏

每次更新目标位置时,实际上是在做一个局部的最优选择,选择跳跃能够到达当前目标位置的最远位置。因为每次更新目标位置时,都是基于当前能跳跃到的最远位置,因此最终的结果是全局最优的。 题目 从前往后遍历,更新可以到…

第二十八周学习周报

目录 摘要Abstract1 GFPGAN1.1 总体结构1.2 实验研究1.3 代码分析 总结 摘要 本周主要的学习内容是GFPGAN模型。GFPGAN是一种基于生成对抗网络(GAN)的模型,其利用封装在预训练的人脸GAN中的丰富多样的先验进行人脸图像的修复。这种生成面部先验(GFP&…

成为LabVIEW自由开发者

成为LabVIEW自由开发者的体验可以非常丰富且具有挑战性,同时也充满了自我成长和多样化项目的机会。 ​ 1. 高度的灵活性与自由度 工作时间与地点:作为自由开发者,你可以自由选择工作时间和地点。你可以在家工作,也可以选择在咖啡…

Electron快速入门——跨平台桌面端应用开发框架

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

SpringBoot之核心配置

学习目标: 1.熟悉Spring Boot全局配置文件的使用 2.掌握Spring Boot配置文件属性值注入 3.熟悉Spring Boot自定义配置 4.掌握Profile多环境配置 5.了解随机值设置以及参数间引用 1.全局配置文件 Spring Boot使用 application.properties 或者application.yaml 的文…

openai swarm agent框架源码详解及应用案例实战

文章目录 简介数据类型Agent类Response类Result类Swarm类run_demo_loop交互式会话 基础应用agent-handsofffunction-callingcontext_variablestriage_agent 高阶应用通用客服机器人(support bot)构建航班服务agent 参考资料 openai 在24年10月份开源了一个教育性质的多agents协…

JVM vs JDK vs JRE

JVM是Java虚拟机的缩写, 用于实现Java的一次编译,处处运行。 Java代码写成.class后,由本地的虚拟机运行。 JDK(Java Development Kit)是一个功能齐全的 Java 开发工具包,供开发者使用。 JDK包含了JRE。…

【网页自动化】篡改猴入门教程

安装篡改猴 打开浏览器扩展商店(Edge、Chrome、Firefox 等)。搜索 Tampermonkey 并安装。 如图安装后,浏览器右上角会显示一个带有猴子图标的按钮。 创建用户脚本 已进入篡改猴管理面板点击创建 脚本注释说明 name:脚本名称。…

微信小程序用的SSL证书有什么要求吗?

微信小程序主要建立在手机端使用,然而手机又涉及到各种系统及版本,所以对SSL证书也有要求,如果要小程序可以安全有效的访问需要满足以下要求: 1、原厂SSL证书(原厂封)。 2、DV单域名或者DV通配符。 3、兼…

【电子通识】PWM驱动让有刷直流电机恒流工作

电机的典型驱动方法包括电压驱动、电流驱动以及PWM驱动。本文将介绍采用PWM驱动方式的恒流工作。 首先介绍的是什么是PWM驱动的电机恒流工作,其次是PWM驱动电机恒流工作时电路的工作原理。 PWM驱动 当以恒定的电流驱动电机时,电机会怎样工作呢&#xff1…

Unity学习之UGUI进阶

一、事件监听接口 1、作用 用于实现类型长按、双击、拖拽等基础控件无法实现的功能 所有控件都能够添加更多的事件监听来处理对应的逻辑 2、事件监听接口类型 (1)常用事件接口 (2)不常用事件接口 3、使用事件监听接口 &#…

电脑硬盘系统迁移及问题处理

一、系统迁移准备 1、确认你的电脑主板是否支持安装两块硬盘,如电脑主板有多个M2硬盘接口,我们将新硬盘安装到主板上,原来的老硬盘安装在第二个接口上,主板只有一个M2接口的话可以使用移动硬盘盒。 2、新硬盘安装好后,我们进入原来的系统,在 此电脑–右键–管理–磁盘管…

【NLP高频面题 - Transformer篇】Transformer的输入中为什么要添加位置编码?

Transformer的输入中为什么要添加位置编码? 重要性:★★★ Transformer 将句子中的所有词并行地输入到神经网络中。并行输入有助于缩短训练时间,同时有利于学习长期依赖。不过,并行地将词送入 Transformer,却不保留词…

http range 下载大文件分片

摘自:https://www.jianshu.com/p/32c16103715a 上传分片下载也能分 HTTP 协议范围请求允许服务器只发送 HTTP 消息的一部分到客户端。范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。 检测服务器端是否支持范围请求 假…

Improving Language Understanding by Generative Pre-Training GPT-1详细讲解

Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1 0.有监督、半监督、无监督 CV:ImageNet pre-trained model NLP:pre-trained model? 在计算机视觉中任务包含分类、检测、分割,任务类别数少,对应…

onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制

文章目录 1. 页面跳转方式2. 你的场景分析3. 页面生命周期4. 总结5. 建议 在微信小程序中,页面跳转时, onLoad 生命周期函数是否执行取决于跳转的方式和小程序的页面栈管理机制。以下是详细说明: 1. 页面跳转方式 微信小程序提供了多种页面…

后台管理系统引导功能的实现

引导是软件中经常见到的一个功能,无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言,它是如何实现的呢?通常情况下引导页是通过 聚焦 的方式,高亮一块视图,然后通过文字解释的形式来告知用户该功能的作…