神经网络漫谈(一)

news2025/1/16 11:15:28
神经网络漫谈(一)
发表时间2023年1月6日创作地点湖北省武汉市作者:ixy_com&Bill Kromydas

神经网络架构

封面图片来源:Towards Data Science

1、背景

基本概念:神经网络,也称为人工神经网络 (ANN) 或模拟神经网络 (SNN),是机器学习的子集,并且是深度学习算法的核心。其名称和结构是受人类大脑的启发,模仿了生物神经元信号相互传递的方式。

人工神经网络 (ANN) 由节点层组成,包含一个输入层、一个或多个隐藏层和一个输出层。 每个节点也称为一个人工神经元,它们连接到另一个节点,具有相关的权重和阈值。 如果任何单个节点的输出高于指定的阈值,那么该节点将被激活,并将数据发送到网络的下一层。 否则,不会将数据传递到网络的下一层。

​ ---- IBM中国


内容说明:在这篇文章中,我将简要介绍训练神经网络所需的基本组件和概念,仅用于组内科普之用,不涉及相关复杂的数学概念。其中,以图像分类任务(如图1所示)为例展开相关内容的介绍。本文基本目标为:说明如何利用带标记数据进行建模、如何利用损失函数来对模型输入与预测输出之间的误差进行量化、如何利用梯度下降优化方法对网络权重进行更新。全文内容包含以下部分:

图像分类示意图

图 1-1 图像分类示意图

内容目录:

  • 带有标记的训练数据(Train Data)和独热编码(One-Hot Encoding)
  • 损失函数(Loss Function)
  • 梯度下降(Gradient Descent)
  • 权重更新(Weight Update)
  • 权重更新示例(Sample)
  • 完整的训练过程(Training)
  • 模型推理(Model Inference)

2、正文

2.1 带标记的训练数据和独热编码

作为有监督机器学习的典型任务之一,图像分类任务的训练数据是带有标签(Labeled,或称为标记)的输入数据。具体地,带标记的训练数据(Labeled Training Data)由目标图像(Target Images)及其相应的真实标记(Ground Truth)组成。以进行三种图像类别分类的神经网络为例,训练数据的标签可能是cats、Dogs、others。为了实现分类任务,我们需要构建包含有上述所有三个类别的训练样本(Samples),且常规的样本容量可能至少是几千张图像。

然而,在利用神经网络处理数据集之前,训练样本的标签须具有数值形式的编码表示。如下表所示,该种类型的标签编码称为整数编码

表2-1 整数编码
LabelDescription
0cats
1Dogs
2others

但很明显,这种编码方式会引入标签之间的数值大小关系;因此,一种常用的编码技术为独热编码。在本示例中,我们有三个不同的类别,因此可以使用长度为3的向量分别对相应的标签进行编码表示,如下表所示:

表2-2独热编码
catsDogsOthers
100
010
001

以下图以单个样本为例,其由输入图像和与其对应的类别标签组成。对于每个输入到模型的训练样本,网络模型将预测得到一个预测结果,该预测结果由三个数组组成,用于代表输入图像属于特定类别的概率(或称为置信度)。其中,概率最高的输出便决定了模型对输入图像的标签预测。如图所示,模型预测结果中最大值为0.5,则对应于表2所示的独热编码,即可得知,模型错误地将输入图像分类为狗。

图像分类过程示意

图2-2图像分类过程示意

2.2 损失函数

如上图1所示,模型在图像分类过程中出现了误判,那如何对模型分类准确与否进行量化评估?一种直接的思路是对模型预测结果(Predicted)和真实标签(Ground Truth)之间的误差进行量化,并经该量化过程用以数据公式进行表征,即得到损失函数。暂不对分类和回归任务做本质上的区分,为了更好的说明“误差量化”过程,这里采用误差平方和(Sum of the Squared Errors, SSE)进行说明。在本案例中,SSE计算如下:
S S E = ( 1 − 0.37 ) 2 + ( 0.0.50 ) 2 + ( 0 − 0.13 ) 2 = 0.6638 (式1) SSE=(1-0.37)^2+(0.0.50)^2+(0-0.13)^2=0.6638\tag{式1} SSE=(10.37)2+(0.0.50)2+(00.13)2=0.6638(1)
在实际的模型训练过程中,对于模型的分类误差通常结合样本容量(即所有样本的条数)进行训练,其目的是计算得到模型在所有样本上的平均误差。因此在(式1)的基础上,通常采用均方误差(mean-square error, MSE)来计算损失。其计算过程如下:
M S E = 1 N ∑ i = 1 N ( y i − ( y i ) ^ ) 2 (式2) MSE=\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{(y_i)})^2\tag{式2} MSE=N1i=1N(yi(yi)^)2(2)

2.3 梯度下降

如(式2)所示,其对应的函数图像为一个下凸函数。因此,结合函数极值的概念,我们需要求得当函数值最小时对应的模型权重,常用的方式为求导。对于光滑的函数,其满足极值点导函数为零。幸运的是,在机器学习理论中,常用于调整模型权重的方式于此原理契合,但正式的叫法为梯度下降。如下图所示:

梯度下降

图2-3 梯度下降示意

如图,纵轴为损失函数 L o s s Loss Loss的值,图中函数图像为下凸形状,简称为凸函数(注意区分高数中的凹函数定义,这里是学科定义差异)。我们知道,梯度方向是函数变化(增大)最快方向,则结合上图,为了求得 L O S S LOSS LOSS最小时对应的权重 W W W,需要调整调整权重至函数最低点,此时函数 L O S S LOSS LOSS的变化方向为负梯度方向,如下图所示:

负梯度方向示意

图2-4 负梯度方向示意

如图,该点的斜率计算过程为函数在 Y Y Y轴的变化除以 X X X轴自变量的变化。则,为了得到更优胜的权重值 W e 2 W_{e2} We2,我们需要将权重的取值沿 X X X轴的正向移动,对应于函数图像的梯度方向。如下图所示:

权重更新示意

图2-5 权重更新示意

在实践中,我们需要设置一个超参数用于控制权重 W W W的运动幅度,该超参数称为学习率(Learning rate, LR),且取值通常小于1。

2.4 权重更新示例

为了更具体地说明上一节中的权重更新过程,这里用一个计算示例进行说明。假设当前权重 W e 1 W_{e1} We1取值为0.38,学习率为0.01,损失函数 L O S S LOSS LOSS在点 W e 1 W_{e1} We1处的斜率为-0.55。则使用上图所示的计算过程,我们计算得到权重值 W e 2 W_{e2} We2为0.3855。具体如下图所示:

权重更新示例

图2-6 权重更新示例

2.5 完整的训练过程

到此为止,我们已经以具体的一个样本为例,实现了一次模型训练。其中,模型训练过程是涉及到模型参数学习与模型超参数调整的过程。结合本示例,模型权重的更新过程为模型的参数学习过程,模型学习率的调整为模型的超参数调整过程,而后者取决于人工经验,更准确来讲,其不包含于模型训练过程。更具体地,完整的神经网络训练过程如下图所示:

训练过程示意

图2-7 训练过程示意

2.6 模型推理

如上述小节所述,模型在完整的训练过程中对关键参数不断地学习更新,从而缩小预测结果与真实结果之间的误差。通常评估该误差的方式为绘制学习曲线(Learning Curve),如下图所示。具体地,如果我们现在训练得到一个分类性能优异的图像分类模型,我们就可以使用该模型对未知的图像进行分类,则使用该模型进行未知图像分类的过程,我们称之为推理(Inference)。该推理过程,不需要任何的带标记数据,且模型在该未知数据上的分类能力,我们称之为泛化能力(Generalization ability)。

loss曲线
acc曲线

图2-8 学习曲线

模型推理

图2-9 模型推理

3、全文总结(Conclusion)

至此,本次数字智能部的科普交流到此结束。此时,我们基本了解了神经网络的学习过程以及模型构建所需的基本组件。但我们尚尚未涉及到代码实战部门。后续内容,将持续更新到神经网络漫谈的专栏。回归本文,相关内容总结如下:

  • 对于图像分类等有监督的学习任务,我们需要使用充足的带标记数据以训练模型。
  • 一般情况下,对于分类任务的数据,我们可以使用one-hot对类别标签进行编码。
  • 对于模型预测误差的量化,我们使用到的概念为损失函数。
  • 对于损失函数的计算,一种更为便捷的方式是使用深度学习框架,如Pytorch、Tensorflow以及PaddlePaddle等。
  • 神经网络模型权重更新的过程通常基于梯度下降优化算法。
  • 在一个epoch的训练过程中,iterations数量等于训练样本数除以batch_size。
    于损失函数的计算,一种更为便捷的方式是使用深度学习框架,如Pytorch、Tensorflow以及PaddlePaddle等。
  • 神经网络模型权重更新的过程通常基于梯度下降优化算法。
  • 在一个epoch的训练过程中,iterations数量等于训练样本数除以batch_size。
  • 在实践中,我们不能仅追求模型训练误差的最小,还需要结合模型验证误差以及泛化性能来评估模型能力。

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

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

相关文章

基础数据结构——二叉树

目录 一、二叉树性质 1、满二叉树、完全二叉树 2、平衡二叉树 3、不平衡二叉树 二、二叉树的存储 1、普通做法 2、竞赛做法 三、二叉树的遍历 1、宽度优先遍历 2、深度优先遍历 (1)先(根)序遍历 (2&#x…

【java中的集合框架】学习接触java中的集合,走上学习数据结构道路

前言: 大家好,我是良辰呀🏫🏫🏫,从今天开始,我们一起来探索数据结构的知识海洋。期待与大家结伴同行,gogogo。🍬🍬🍬 🧑个人主页&…

【自学C++】C++命名空间

C命名空间 C命名空间教程 C 中的命名空间实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。 命名空间是 ANSI C 引入的可以由…

前端入门笔记 03 —— Web(html CSS)布局

常用布局 包含两个定义: 尺寸 定位 定义通过CSS拾取网页元素,控制他们控制普通文档流,周边元素,父容器,浏览器窗口 覆盖默认布局行为盒子模型普通文档流 (左到右,上到下) 块级元素…

2022年中国数字化十大转型趋势

推动数字化发展既是数字时代构筑竞争新优势的战略选择,也是加快构建“双循环”新发展格局和打造高质量发展新引擎的现实需要。我国高度重视数字化发展,不断完善政策措施,着力推动数字化转型。从行业发展看,构建以数据为驱动、以客…

Redis(一)

Nosql 即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。 Nosql 作用:应对基于海量用户和海量数据前提下的数据处理问题。 特征 降低磁盘IO次数,越低越好 —— 内存存储 去除数据间关系&#xff…

网络技术基础

theme: qklhk-chocolate 网络技术基础 一、IP地址基础 IP地址是指在网络中用于标识发送或接收数据报文设备的唯一的逻辑地址。 IP地址的主要作用: 标识主机或网络设备(标识其网络接口,提供其在网络中的位置)网络寻址 •在IP网…

安装pytorch搭配cuda使用

问题 深度学习程序,在服务器运行,需要借助GPU加速。为了检测是否开启了GPU加速,采用以下代码: ~python >> import torch >> torch.cuda.is_available() >> false #说明没有使用GPU加速安装过程 安装老版本的…

如何做好美颜sdk与直播平台的适配?

美颜sdk作为目前社交视频拍摄平台用户的刚需,在近几年可谓是名声大噪,无论是强大的美颜功能还是多元化的趣味拍摄方案都让用户们“爱不释手”,平台自然也是看中了这一点,纷纷为自己平台接入美颜工具。但是,美颜sdk作为…

免费视频格式转换软件,6大免费视频转换器推荐

看到大多数人拥有电脑、智能电视,尤其是移动设备,这一代人并不奇怪。在线观看电影和视频是最常见的消磨时间的娱乐方式之一。能够通过网络观看视频是件好事。有些人还喜欢下载它以供离线观看,因为您并非一直都在使用 Wi-Fi。有时,…

C++——异常

文章目录1.C语言传统的处理错误的方式2. C异常概念3. 异常的使用3.1 异常的抛出和捕获3.2 异常的重新抛出3.3异常安全3.4 异常规范4.自定义异常体系5.C标准库的异常体系6.异常的优缺点6.1 C异常的优点:6.2 C异常的缺点:1.C语言传统的处理错误的方式 传统…

Codeforces Round #842 (Div. 2)(A~D)

A. Greatest Convex给出数字k,输出最大的x,使得x满足大于等于1小于k,且x! (x - 1)!是k的倍数。思路:提取公因式得到,(x 1) * (x - 1)!,由题意知,x 1可以是k,故x最大是k - 1且一定…

如何制作网站?不知道这个诀窍你的网站等于白做

如何制作网站?不知道这个诀窍你的网站等于白做!#外贸 #独立站 #跨境电商 #网站优化 #网站建设 做每一个网页之前,先确定好网页里面的元素,你知道客户是谁,他目前生意做什么体量,主要做什么市场? 我在根据我拿到的这…

【实操篇】Linux的磁盘分区和挂载

目录 ●磁盘分区及挂载 ●典型案例实战 ●磁盘查询 1.查询系统整体磁盘使用情况 2.查询指定目录的磁盘占用情况 3.实用指令及其案例 ●树状目录展示 ●磁盘分区及挂载 简要介绍: 1.Linux无论有几个分区,还是分给哪个目录去使用。它归根结底也就只有…

C. Least Prefix Sum(优先队列)

传送门题意:给你一个长度为n的数组,你可以进行任意次操作(也可能是0),可以使,然后给你一个数m,问你要进行多少次操作,才能使长度为m的前缀和的值在所有的前缀和中最小。思路&#xf…

JS 的 9 种作用域,你能说出几种?

作用域想必大家都知道,就是变量生效的范围,比如函数就会生成一个作用域,声明的变量只在函数内生效。 而这样的作用域一共有 9 种,其中几种绝大多数前端都说不出来。 下面我们就一起过一遍这 9 种作用域吧,看看你知道…

具有自主、多鳍和仿生机器人的鱼类三维游泳(2021)

具有自主、多鳍和仿生机器人的鱼类三维游泳(2021) 原文链接:https://iopscience.iop.org/article/10.1088/1748-3190/abd013 这是一篇仿生机器鱼的设计,该论文从鱼的仿生结构到具体的一部分电路设计都有非常详细的介绍,鱼的尺寸大小仅有手掌…

只有从根本上改变对于元宇宙的看法,才能将它的发展带入到一个全新阶段

经历了资本的狂热追捧之后,元宇宙开始进入到相对冷静的发展阶段里。在这样一个阶段,元宇宙不再被看成是一个万能的存在,不再被看成是一个无所不包的存在,而是变成了一个相对较为客观和理性的存在。看看Meta的表现,看看…

未处理的非法访问读异常(插入影像图代码)

本文迁移自本人网易博客,写于2013年1月5日,未处理的非法访问读异常(插入影像图代码) - lysygyy的日志 - 网易博客 (163.com)Acad::ErrorStatus CustomApplication::createAcDbRasterImageDef (AcDbObjectId & parObjectId, AC…

2023年入职/转行网络安全行业,该如何规划学习?

前言 前段时间,知名机构麦可思研究院发布了**《2022年中国本科生就业报告》**,其中详细列出近五年的本科绿牌专业,其中,信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景,想必无需我多言,作…