翻译: 可视化深度学习反向传播原理一

embedded/2024/9/23 14:26:08/

在这里插入图片描述
本期我们来讲反向传播 也就是神经网络学习的核心算法 稍微回顾一下我们之前讲到哪里之后
在这里插入图片描述

首先我要撇开公式不提 直观地过一遍 这个算法到底在做什么
在这里插入图片描述

然后如果你们有人想认真看里头的数学 下一期影片我会解释这一切背后的微积分 如果你看了前两期影片 或者你已经有足够背景知识 直接空降来这一期影片的话 你一定知道神经网络是什么 以及它如何前馈信息的
在这里插入图片描述

这里我们考虑的经典例子就是手写数字识别 数字的像素值被输入到网络第一层的784个神经元里
这里 我展示的是有2层16个神经元隐含层 10个神经元的输出层 代表网络最终给出的选择
在这里插入图片描述

我也假设你们已经理解了上期说到的梯度下降法 理解了所谓学习就是指 我们要找到特定的权重偏置 从而使一个代价函数最小化
在这里插入图片描述

稍许提醒一下 计算一个训练样本的代价 你需要求出网络的输出 与期待的输出 之间每一项的差的平方和
在这里插入图片描述

然后对于成千上万个训练样本都这么算一遍 最后取平均 这就得到了整个网络的代价值
在这里插入图片描述

如果你嫌这还不够复杂的话 上集内容也讲到了
我们要求的是代价函数的负梯度
在这里插入图片描述

它告诉你如何改变所有连线上的权重偏置 才好让代价下降得最快
在这里插入图片描述

反向传播算法 正是用来求这个复杂到爆的梯度的

在这里插入图片描述

我希望大家能够把上集中提到的一点牢牢记住 毕竟13000维的梯度向量 说它是难以想象都不为过
在这里插入图片描述

所以这里大家请记住另一套思路 梯度向量每一项的大小是在告诉大家 代价函数对于每个参数有多敏感 比如说 你走了一段我讲的过程 计算了负梯度 对应这条线上这个权重的一项等于3.2,而对应这条边上的一项等于0.1
在这里插入图片描述

你可以这么来理解 第一个权重对代价函数的值有32倍的影响力 如果你稍微改变一下第一个权重 它对代价值造成的变化
在这里插入图片描述

就是改变第二个权重同等大小下的32倍
在这里插入图片描述

就我个人而言 我刚开始学习反向传播的时候 我觉得最容易搞混的部分就是各种符号和上标下标 不过 一旦你厘清了算法的思路 算法的每一步其实都挺直观的 其实就是把许许多多微小的调整一层进一层地进行下去而已 所以 开始讲解时 我将完全抛弃所有的符号
在这里插入图片描述

给大家一步步解释 每一个训练样本会对权重偏置的调整造成怎样的影响 因为代价函数牵扯到 对成千上万个训练样本的代价取平均值
在这里插入图片描述

所以我们调整每一步梯度下降用的权重偏置 也会基于所有的训练样本 原理上是这么说
在这里插入图片描述

但为了计算效率 之后咱们会讨个巧 从而不必每一步都非得要计算所有的训练样本
在这里插入图片描述

还需要说明一点 我们现在只关注一个训练样本 就这张2 这一个训练样本会对调整权重和偏置造成怎样的影响呢?
在这里插入图片描述

现在假设网络还没有完全训练好 那么输出层的激活值看起来就很随机 也许就会出现0.5、0.8、0.2 等等等等
在这里插入图片描述

我们并不能直接改动这些激活值 只能改变权重和偏置值
在这里插入图片描述

但记住我们想要输出层出现怎样的变动 还是很有用的
在这里插入图片描述

因为我们希望图像最终的分类结果是2 我们希望第三个输出值变大 其他数值变小 并且变动的大小应该与现在值和目标值之间的差呈正比 并且变动的大小应该与现在值和目标值之间的差呈正比
在这里插入图片描述

举个例子 增加数字“2”神经元的激活值
就应该比减少数字“8”神经元的激活值来得重要 因为后者已经很接近它的目标了
在这里插入图片描述

那好 我们更进一步 就来关注下这一个神经元 我们要让这里面的激活值变大 还记得这个激活值是 把前一层所有激活值的加权和 加上一个偏置 再通过sigmoid ReLU之类的挤压函数 最后算出来的吧 所以要增加这个激活值 我们有三条大路可走 一增加偏置 二增加权重 或者三改变上一层的激活值 先来看如何调整权重 各个权重它们的影响力各不相同
在这里插入图片描述

连接前一层最亮的神经元的权重 影响力也最大 因为这些权重会与大的激活值相乘 所以至少对于这一个训练样本而言 增大了这几个权重值 对最终代价函数造成的影响 就比增大连接黯淡神经元的权重所造成的影响 要大上好多倍
在这里插入图片描述

请记住当我们说到梯度下降的时候 我们并不只看每个参数是该增大还是减小 我们还看该哪个参数的性价比最高

参考

https://youtu.be/Ilg3gGewQ5U?si=Cj4v_7kY3Ee-YDi2


http://www.ppmy.cn/embedded/90563.html

相关文章

文件解析漏洞--IIS--Vulhub

文件解析漏洞 一、IIS解析漏洞 用windowserver2003安装IIS测试 1.1 IIS6.X 方法一:目录解析 在网站下建立文件夹的名字为.asp/.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 1.txt文件里是asp文件的语法查看当前时间 方…

OpenCV||超详细的图像处理模块

一、颜色变换cvtColor dst cv2.cvtColor(src, code[, dstCn[, dst]]) src: 输入图像,即要进行颜色空间转换的原始图像。code: 转换代码,指定要执行的颜色空间转换类型。这是一个必需的参数,决定了源颜色空间到目标颜色空间的转换方式。dst…

C#实战 - C#实现MD5加密

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有疑问和建议,请私信或评论留言! 前言 在软件开发中&a…

计算机毕业设计选题推荐-校园服务系统-Java/Python项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Python中读取文件(斜杠(/)与反斜杠(\)问题)

读取文件 在Python中读取文件首先要知道该文件的路径。而Python提供的函数Path()(注意p要大写)可以读取路径,该函数在库pathlib中,所以我们需要首先从模块pathlib中导入该函数。 然后读入路径后需要使用read_text()方法去读入这…

TypeScript 装饰器详解

目录 装饰器 介绍 基本语法 类装饰器 方法装饰器 属性装饰器 参数装饰器 组合装饰器 装饰器工厂 总结 装饰器 介绍 TypeScript 中的装饰器(decorators)是一种特殊类型的声明,可以附加到类声明,方法,属性或…

【Golang 面试 - 进阶题】每日 3 题(七)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

Dubbo源码深度解析(二)

接着《Dubbo源码深度解析(一)》继续讲,上篇博客主要讲Dubbo提供的三个注解的作用,即:EnableDubbo、DubboComponentScan、EnableDubboConfig。其中后两个注解是在EnableDubbo上的,因此在启动类上加上EnableDubbo注解,等…