当前位置: 首页 > article >正文

卷积神经网络基础(二)

停更好久的卷积神经网络基础知识终于开始更新了哈哈,今天主要介绍的是误差反向传播法

目录

一、计算图

1.1 用计算图求解

1.2 局部计算

1.3 为什么采用计算图

二、链式法则

2.1 计算图的反向传播

2.2 链式法则

2.3 链式法则和计算图

三、反向传播

3.1 加法节点反向传播

3.2 乘法节点反向传播

3.3 苹果的例子


一、计算图

误差反向传播法是一种高效计算权重参数梯度的方法,可以通过基于数学式和基于图的两种方法学习,前者较为常见,在这里主要介绍基于图的方法。

这里说的指得是数据结构图,就是包含若干结点和边(连接结点的线)的图。

1.1 用计算图求解

首先我们看这样一个问题:

一个苹果100日元,我现在买了两个苹果,苹果的消费税是10%,那么我最终的支付金额是多少?

结果就是 100×2×(100%+10%)=220日元。

图中我们将乘数 ×2 和 ×1.1 标注在⭕内,我们也可以仅仅将符号 × 标注在其中,而将数值2和1.1单独作为一个变量标注在外,就像这样:

这样我们就把苹果的个数和消费税单独标注在外了。

下面,问题变得更复杂:我不仅买了两个100日元的苹果,我还买了三个150日元的橘子,消费税仍为10%,我最终支付的金额是多少?

用第二种标注方法表示上述的问题可以得到这样的图:

这里我们新增了一个 + 的符号用来合并苹果和橘子原本的金额,最后与消费税相乘得到最终金额。这样我们就得到了最终的计算图。计算方式为从左向右,计算结果也从左边向右边传递,类似电流流动。最终答案就是715日元。

综上,采用计算图解决问题的流程如下:

  1. 构建计算图
  2. 在计算图的基础上,从左向右计算

从左向右计算是正方向的传播,我们称为“正向传播”(forward propagation),正向传播是从计算图出发点到结束点的传播。当然,也存在反向的传播(从右向左),这种传播称为“反向传播”。

1.2 局部计算

计算图的特征都是通过“局部计算”得到的,即与自己相关的某个领域内进行计算,而与全局的信息无关。

例如,我买了两个苹果和很多其他的东西,此时的计算图如下:

这里计算购买苹果所需的金额200与其他东西所需金额的4000如何计算得来没有任何关系,只关心苹果的个数和价格等。那么,计算图只用专注于局部计算即可,无论全局计算多么复杂,每个步骤仅需对对象节点完成局部计算。虽然局部计算很简单,但需要通过传递计算结果得到最终复杂的全局计算结果。

1.3 为什么采用计算图

那么,我们为什么采用计算图呢?计算图有什么优点呢?

首先,我们知道计算图只需考虑局部计算,这就让计算变得简单,从而简化问题。另外,计算图可以保存中间的计算结果,例如计算到两个苹果时金额为200日元,消费税之前的金额为4200日元等等。第三,计算图最大的优点就是可以通过反向传播高效计算导数。

我们重新考虑第一个问题:

我现在想知道,苹果价格的上涨会在多大程度上影响最终支付的金额,即求“支付金额关于苹果价格的导数”。设苹果价格为x,支付金额为L,相当于求\frac{\partial L}{\partial x}。这个导数的意思就是苹果价格上涨时,支付金额会增加多少。

这个导数我们就可以通过计算图的反向传播来求出:

如图所示,我们用反向的神色箭头表示反向传播。从右向左传播的导数值分别为1——>1.1——>2.2,于是我们得知支付金额关于苹果价格的导数值为2.2,即苹果的价格每上涨1日元,支付的总金额就增加2.2日元。并且,我们在计算该导数的过程中,同样求出了支付金额关于消费税的导数以及支付金额关于苹果个数的导数,计算过程中的值都可以被共享。综上,计算图的优点就是通过正向和反向传播高效计算各个变量的导数值。

二、链式法则

我们经常接触到的计算都是从左至右的,而从右至左的反向传播可能会比较奇怪,其实这是基于链式法则的。

2.1 计算图的反向传播

这里我们看一个例子:

这里正向传播所表达的含义是一个关于x的函数y:y=f(x),下面的反向箭头则表示反向传播。其传播顺序是:信号E乘以节点导数\frac{\partial y}{\partial x}。这里的节点导数是指正向传播y=f(x)的导数,比如y=x^{2},则\frac{\partial y}{\partial x}=2x,这样我们就可以高效求出导数的值了。

2.2 链式法则

首先我们介绍一下复合函数,也就是多个函数构成的函数。比如Z = (x+y)^{2},是由下面两个式子组成的:

Z = t^{2}

t = x+y

链式法则的定义如下:

例如:在上述的例子中z关于x的导数可以用z关于t的导数和t关于x的导数的乘积表示:

\frac{\partial z}{\partial x}=\frac{\partial z}{\partial t}\frac{\partial t}{\partial x}

现在我们使用链式法则求解z关于x的导数:

\frac{\partial z}{\partial t}=2t

\frac{\partial t}{\partial x}=1

这是基于公式的解析,最后通过链式法则得到z关于x的导数为2t*1=2(x+y)

2.3 链式法则和计算图

我们用计算图的形式去展示上述问题的求解过程:

这里用**2表示平方。这里反向传播最初的导数值是\frac{\partial z}{\partial z},也就是1,之前的数学式中被省略掉了。

 最左边的反向传播结果中下面的结果成立,说明反向传播是基于链式法则的。

将具体数值带入到计算图中,得到下面的结果:

计算结果与我们计算的结果相同。

三、反向传播

3.1 加法节点反向传播

本节以Z=x+y为例进行展开。

计算图如下:

上游传过来的值中L设定为最终输出值,z=x+y位于计算图的某个地方。

可以看到,加法运算中反向传播将上游的值原封不动地输出到下游。

下面看一个具体的例子:

如右图所示,加法节点只将信号进行输入到下一节点,不做任何变化处理。

3.2 乘法节点反向传播

考虑例子:z=xy

则:

\frac{\partial z}{\partial x}=y

\frac{\partial z}{\partial y}=x

可见,乘法反向传播会将上游的值乘以正向传播的输入信号的翻转值然后传递给下游。

我们再看一个具体的例子:

假如有10×5=50,计算图表示如下:

因为反向传播是翻转值,所以各自按照1.3×5=6.5 和1.3×10=13得到最终导数值,加法的传播只需要传递即可,乘法传播还需要记录正向传播的输入信号值。

3.3 苹果的例子

最后我们再来看苹果的例子:

完整的计算图求解导数过程就是上面所展示的那样

最后,是一个练习:

感兴趣的可以把答案留在评论区哦!

相关文章:

卷积神经网络基础(二)

停更好久的卷积神经网络基础知识终于开始更新了哈哈,今天主要介绍的是误差反向传播法。 目录 一、计算图 1.1 用计算图求解 1.2 局部计算 1.3 为什么采用计算图 二、链式法则 2.1 计算图的反向传播 2.2 链式法则 2.3 链式法则和计算图 三、反向传播 3.1 …...

探索大语言模型(LLM):定义、发展、构建与应用

文章目录 引言大规模语言模型的基本概念大规模语言模型的发展历程1. 基础模型阶段(2018年至2021年)2. 能力探索阶段(2019年至2022年)3. 突破发展阶段(以2022年11月ChatGPT的发布为起点) 大规模语言模型的构…...

树莓派超全系列教程文档--(33)树莓派启动选项

树莓派启动选项 启动选项start_file ,fixup_filecmdlinekernelarm_64bitramfsfileramfsaddrinitramfsauto_initramfsdisable_poe_fandisable_splashenable_uartforce_eeprom_reados_prefixotg_mode (仅限Raspberry Pi 4)overlay_prefix配置属…...

PTA:模拟EXCEL排序

Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式: 输入的第一行包含两个正整数 n (≤105) 和 c,其中 n 是纪录的条数,c 是指定排序的列号。之后有 n 行,每行包含一条学生纪录。每条学生纪录由学号(6…...

Python 爬虫解决 GBK乱码问题

文章目录 前言爬取初尝试与乱码问题编码知识科普UTF - 8GBKUnicode Python中的编码转换其他编码补充知识GBKGB18030GB2312UTF(UCS Transfer Format)Unicode 总结 前言 在Python爬虫的过程中,我尝试爬取一本小说,遇到GBK乱码问题&a…...

Scala与人工智能:融合多范式编程的AI开发利器

在人工智能(AI)技术飞速发展的今天,编程语言的选择直接影响着算法实现效率与系统可扩展性。Scala,作为一门融合面向对象(OOP)与函数式编程(FP)的多范式语言,凭借其独特的…...

解决echarts饼图label显示不全的问题

解决办法 添加如下配置: labelLayout: {hideOverlap: false},...

JCST 2025年 区块链论文 录用汇总

Conference:Journal of Computer Science and Technology (JCST) CCF level:CCF B Categories:交叉/综合/新兴 Year:2025(截止4.19) JCST 2024年 区块链论文 录用汇总 1 Title: An Understandable Cro…...

不带无线网卡的Linux开发板上网方法

I.MX6ULL通过网线上网 设置WLAN共享修改开发板的IP 在使用I.MX6ULL-MINI开发板学习Linux的时候,有时需要更新或者下载一些资源包,但是开发板本身是不带无线网卡或者WIFI芯片的,尝试使用网口连接笔记本,笔记本通过无线网卡连接WIFI…...

选择排序(简单选择排序、堆排序)

简单选择排序(Selection Sort) 1. 算法思想 它通过多次遍历数组,每次从未排序部分中选择最小(或最大)的元素,将其放到已排序部分的末尾(或开头),直到整个数组有序。 2.…...

velocity模板引擎

文章目录 学习链接一. velocity简介1. velocity简介2. 应用场景3. velocity 组成结构 二. 快速入门1. 需求分析2. 步骤分析3. 代码实现3.1 创建工程3.2 引入坐标3.3 编写模板3.4 输出结果示例1编写模板测试 示例2 4. 运行原理 三. 基础语法3.1 VTL介绍3.2 VTL注释3.2.1 语法3.2…...

word选中所有的表格——宏

Sub 选中所有表格()Dim aTable As TableApplication.ScreenUpdating FalseActiveDocument.DeleteAllEditableRanges wdEditorEveryoneFor Each aTable In ActiveDocument.TablesaTable.Range.Editors.Add wdEditorEveryoneNextActiveDocument.SelectAllEditableRanges wdEdito…...

13.第二阶段x64游戏实战-分析人物等级和升级经验

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:12.第二阶段x64游戏实战-远程调试 效果图: 如下图红框,…...

容器化-Docker-基础

一、Docker 核心概念 1、容器化技术的本质 Docker 是基于 Linux 内核的轻量级容器化技术,通过 Namespace 和 Cgroups 实现资源隔离与限制,将应用及其依赖封装成可移植的容器。与传统虚拟机(需模拟完整硬件层)不同,Docker 容器共享宿主机内核,启动时间以秒级计算,资源占…...

六边形棋盘格(Hexagonal Grids)的坐标

1. 二位坐标转六边形棋盘的方式 1-1这是“波动式”的 这种就是把【方格子坐标】“左右各错开半个格子”做到的 具体来说有如下几种情况 具体到庙算平台上,是很巧妙的用一个4位整数,前两位为x、后两位为y来进行表示 附上计算距离的代码 def get_hex_di…...

SICAR 标准 安全门锁操作箱 按钮和指示灯说明

1、安全门锁操作箱 2、按钮和指示灯说明 一、指示灯说明 红灯: 常亮:表示安全门已解锁;闪烁:表示安全门未复位;熄灭:表示安全门已复位。 黄灯: 常亮:表示处于维修模式。 绿灯&…...

Day10【基于encoder- decoder架构实现新闻文本摘要的提取】

实现新闻文本摘要的提取 1. 概述与背景2.参数配置3.数据准备4.数据加载5.主程序6.预测评估7.生成效果8.总结 1. 概述与背景 新闻摘要生成是自然语言处理(NLP)中的一个重要任务,其目标是自动从长篇的新闻文章中提取出简洁、准确的摘要。近年来…...

【blender小技巧】使用blender的Cats Blender Plugin插件将3D人物模型快速绑定或者修复为标准的人形骨骼

文章目录 前言绑定或者修复人形骨骼1、下载模型2、导入模型到blender中3、删除无用的相机和灯光3、导出模型并在unity中使用 专栏推荐完结 前言 有时候我们下载的3D人物模型,可能不带骨骼信息,或者带一些错乱的骨骼信息。这时候我们就可以使用blender将…...

Linux——firewalld防火墙(笔记)

目录 一:Firewalld防火墙的概述 (1)firewalld简介 (2)firewalld&iptables的关系 (3)firewalld与iptables service的区别 1. ‌规则管理方式‌ 2. ‌默认策略与设计逻辑‌ 3. ‌配置文…...

《分布式软总线赋能老旧设备高效通信》

在数字化转型的浪潮中,分布式软总线技术成为实现设备互联互通的关键力量。然而,当面对大量老旧设备时,其性能受限的现状对分布式软总线提出了严峻挑战。如何在这些性能瓶颈下,让老旧设备实现高效连接与通信,是亟待解决…...

YOLO拓展-锚框(anchor box)详解

一.锚框(anchor box)概述 1.1什么是锚框 锚框就是一种进行预测的像素框,通过遍历输入图像上所有可能的像素框,然后选出正确的目标框,并对位置和大小进行调整就可以完成目标检测任务。 对于yolo锚框的建设须基于实际…...

GPU渲染阶段介绍+Shader基础结构实现

GPU是什么 (CPU)Center Processing Unit:逻辑编程 (GPU)Graphics Processing Unit:图形处理(矩阵运算,数据公式运算,光栅化) 渲染管线 渲染管线也称为渲染流水线&#x…...

第32讲:卫星遥感与深度学习融合 —— 让地球“读懂”算法的语言

目录 🔍 一、讲讲“遥感+深度学习”到底是干啥的? ✅ 能解决什么问题? 🧠 二、基础原理串讲:深度学习如何“看懂”遥感图? 🛰 遥感图像数据类型: 🧠 CNN的基本思路: 🧪 三、实战案例:用CNN对遥感图像做地类分类 📦 所需R包: 🗂️ 步骤一:构建训…...

kubernetes》》k8s》》Service

Kubernetes 中的 Service 是用于暴露应用服务的核心抽象,为 Pod 提供稳定的访问入口、负载均衡和服务发现机制。Service在Kubernetes中代表了一组Pod的逻辑集合,通过创建一个Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址…...

多道程序和多任务操作系统区别

多道程序 vs. 多道任务:对比分析 ✅ 共同点 方面共同特征核心机制都依赖于进程/任务切换执行需求实现多个程序或任务"并发"执行系统支持都需要操作系统的支持(如调度算法、内存管理)本质目标提高资源利用率(CPU不空转…...

CMFA在自动驾驶中的应用案例

CMFA在自动驾驶中的典型应用案例 CMFA(Cross-Modal Feature Alignment)方法在自动驾驶领域有多个成功的应用场景,以下是几个典型案例: 1. 多模态3D目标检测 ‌应用场景‌:车辆、行人、骑行者等交通参与者的精确检测 ‌…...

已注册商标如何防止被不使用撤销!

近年来已注册商标被撤销越来越多,不乏著名企业或机构,普推知产商标老杨看到前一阵看到央视和百度等申请的商标也被申请撤销,连续三年不使用撤销也是正常的商标流程。 已注册商标被撤销普推老杨看到案例主要是集中在一些早期申请注册的好记的商…...

android 打包内容 安卓打包工具有哪些

Android ROM打包工具与技巧分享 eMMC存储与Android文件系统 eMMC作为手机和平板电脑的内嵌式存储器,因其集成了控制器并提供标准接口等优势,受到Android厂商青睐。采用eMMC存储的Android手机,其文件系统(system、data分区)通常采用ext4格式…...

管理与维护samba服务器

允许 Linux、Unix 系统与 Windows 系统之间进行文件和打印机共享,使得不同操作系统的用户能够方便地访问和共享资源,就像在同一局域网中的 Windows 计算机之间共享资源一样。 server01安装Samba服务器 [rootserver ~]# rpm -qa | grep samba [rootserver…...

EAGLE代码研读+模型复现

要对代码下手了,加油(ง •_•)ง 作者在他们自己的设备上展现了推理的评估结果,受第三方评估认证,EAGLE为目前最快的投机方法(虽然加速度是评估投机解码方法的主要指标,但其他点也值得关注。比如PLD和Lookahead无需额…...