DAY15 神经网络的参数和变量

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.rhkb.cn/news/504325.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git的rebase和merge的区别?

B分支从A分支拉出 1.git merge 处于A分支执行,git merge B分支:相当于将commit X、commit Y两次提交,作为了新的commit Z提交到了A分支上。能溯源它真正提交的信息。 2.git rebase 处于B分支,执行git rebase A分支,B分支那边复…

2、蓝牙打印机点灯-GPIO输出控制

1、硬件 1.1、看原理图 初始状态位高电平. 需要驱动PA1输出高低电平控制PA1. 1.2、看手册 a、系统架构图 GPIOA在APB2总线上。 b、RCC使能 GPIOA在第2位。 c、GPIO寄存器配置 端口:PA1 模式:通用推挽输出模式 -- 输出0、1即可 速度:5…

使用强化学习训练神经网络玩俄罗斯方块

一、说明 在 2024 年暑假假期期间,Tim学习并应用了Q-Learning (一种强化学习形式)来训练神经网络玩简化版的俄罗斯方块游戏。在本文中,我将详细介绍我是如何做到这一点的。我希望这对任何有兴趣将强化学习应用于新领域的人有所帮助…

基于springboot的网上商城购物系统

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 目录 项目包含: 开发说明: 系统功能: 项目截图…

API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

【网络协议】开放式最短路径优先协议OSPF详解(四)

前言 在本章的第一部分和第二部分中&#xff0c;我们探讨了OSPF的基本配置&#xff0c;并进一步学习了更多OSPF的概念&#xff0c;例如静态路由的重分发及其度量值。在第三部分中&#xff0c;我们讨论了多区域OSPF。在第四部分中&#xff0c;我们将关注OSPF与多访问网络&#…

上门按摩系统架构与功能分析

一、系统架构 服务端&#xff1a;Java&#xff08;最低JDK1.8&#xff0c;支持JDK11以及JDK17&#xff09;数据库&#xff1a;MySQL数据库&#xff08;标配5.7版本&#xff0c;支持MySQL8&#xff09;ORM框架&#xff1a;Mybatis&#xff08;集成通用tk-mapper&#xff0c;支持…

攻防世界 ics-07

点击之后发现有个项目管理能进&#xff0c;点进去&#xff0c;点击看到源码&#xff0c;如下三段 <?php session_start(); if (!isset($_GET[page])) { show_source(__FILE__); die(); } if (isset($_GET[page]) && $_GET[page] ! index.php) { include(flag.php);…

Spring Boot教程之四十九:Spring Boot – MongoRepository 示例

Spring Boot – MongoRepository 示例 Spring Boot 建立在 Spring 之上&#xff0c;包含 Spring 的所有功能。由于其快速的生产就绪环境&#xff0c;使开发人员能够直接专注于逻辑&#xff0c;而不必费力配置和设置&#xff0c;因此如今它正成为开发人员的最爱。Spring Boot 是…

测试ip端口-telnet开启与使用

前言 开发过程中我们总会要去测试ip通不通&#xff0c;或者ip下某个端口是否可以联通&#xff0c;为此我们可以使用telnet 命令来实现。 一、telnet 开启 可能有些人使用telnet报错&#xff0c;不是内部命令&#xff0c;可以如下开启&#xff1a; 1、打开控制面板&#xff…

SpringBoot3动态切换数据源

背景 随着公司业务战略的发展&#xff0c;相关的软件服务也逐步的向多元化转变&#xff0c;之前是单纯的拿项目&#xff0c;赚人工钱&#xff0c;现在开始向产品化\服务化转变。最近雷袭又接到一项新的挑战&#xff1a;了解SAAS模型&#xff0c;考虑怎么将公司的产品转换成多租…

爬虫学习记录

1.概念 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 通用爬虫:抓取的是一整张页面数据聚焦爬虫:抓取的是页面中的特定局部内容增量式爬虫:监测网站中数据更新的情况,只会抓取网站中最新更新出来的数据 robots.txt协议: 君子协议,网站后面添加robotx.txt…

通过 route 或 ip route 管理Linux主机路由

目录 一&#xff1a;route 使用说明1、查看路由信息2、删除指定路由3、增加指定路由 二&#xff1a;ip route 使用说明1、查看主机路由2、新增主机路由3、删除主机路由 通过route 或者ip route修改Linux主机路由后属于临时生效&#xff0c;系统重启后就恢复默认值了&#xff0c…

el-table表格合并某一列

需求&#xff1a;按照下图完成单元格合并&#xff0c;数据展示 可以看到科室列是需要合并的 并加背景色展示&#xff1b;具体代码如下&#xff1a; <el-tableref"tableA":data"tableDataList":header-cell-style"{ backgroundColor: #f2dcdb, col…

CSS Grid 布局全攻略:从基础到进阶

文章目录 一.Grid 是什么二.示例代码1. 基础使用 - 固定宽高2.百分百宽高3.重复设置-repeat4.单位-fr5.自适应6.间距定义其他 一.Grid 是什么 CSS 中 Grid 是一种强大的布局方式&#xff0c;它可以同时处理行和列 Grid 和Flex有一些类似&#xff0c;都是由父元素包裹子元素使用…

数据结构:包装类和泛型

目录 一、包装类 1、基本数据类型和对应的包装类 2、装箱和拆箱 3、自动装箱和自动拆箱 二、泛型 1、什么是泛型 2、泛型语法 3、泛型类 4、擦除机制 5、泛型的上界 6、泛型方法 三、通配符 1、什么是通配符 2、通配符上界 3、通配符下界 &#x1f4da…

备考蓝桥杯:顺序表相关算法题

目录 询问学号 寄包柜 移动0 颜色分类 合并两个有序数组 物品移动 询问学号 我们的思路&#xff1a;创建一个顺序表存储从1开始依次存放进入教室的学生学号&#xff0c;然后查询 #include <iostream> #include <vector> using namespace std; const int N 2…

Python入门教程 —— 网络编程

1.网络通信概念 简单来说,网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。 使用网络的目的,就是为了联通多方然后进行通信,即把数据从一方传递给另外一方。 前面的学习编写的程序都是单机的,即不能和其他电脑上的程…

C#异步多线程——ThreadPool线程池

C#实现异步多线程的方式有多种&#xff0c;以下总结的是ThreadPool的用法。 线程池的特点 线程池受CLR管理&#xff0c;线程的生命周期&#xff0c;任务调度等细节都不需要我们操心了&#xff0c;我们只需要专注于任务实现&#xff0c;使用ThreadPool提供的静态方法把我们的任…

68.基于SpringBoot + Vue实现的前后端分离-心灵治愈交流平台系统(项目 + 论文PPT)

项目介绍 本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述心灵治愈交流平台的当前背景以及系统开发的目的&#xff0c;后续章节将严格按照软件开发流程&#xff0c;对系统进…