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

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

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

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

这里我们考虑的经典例子就是手写数字识别 数字的像素值被输入到网络第一层的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.rhkb.cn/news/395151.html

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

相关文章

牛羊肉巨头的数字化战略:凯宇星辉如何领先市场

凯宇星辉的创业成长史,给出了中国牛羊肉企业如何从散户走向集团化经营的路线图。 总部位于大连的凯宇星辉,在牛羊肉进口贸易领域白手起家,十余年时间,已形成以澳新、南美、北美等全球三大牛羊肉主产区为主渠道的全球直采网络布局…

《MySQL数据库》 数据类型、约束、键的使用—/—<5>

一、常见数据类型 1、数值类型: INT、BIGINT、FLOAT、DOUBLE,DECIMAL等。 INT(整型):通常占用4个字节,可以存储范围为-2^31到2^31-1的整数。 BIGINT(大整型):通常占用8…

【OCCT】第3讲 OpenCasCadeVTK实现三维建模Demo

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享OpenCasCade&VTK共同实现三维建模Demo,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1.…

AI2021矢量图形软件:Illustrator 2021 Win/Mac 直装版

dobe Illustrator 2021是一款功能强大的矢量图形设计软件,广泛应用于出版、多媒体和在线图像制作领域。该软件特别适用于印刷出版、海报书籍排版、专业插画、多媒体图像处理以及网页设计,能够提供高精度和控制的线稿,适合处理从简单到复杂各种…

SpringBoot 自动装配原理

零、前言 Spring简直是java企业级应用开发人员的春天,我们可以通过Spring提供的ioc容器,避免硬编码带来的程序过度耦合。但是,启动一个Spring应用程序也绝非易事,他需要大量且繁琐的xml配置,开发人员压根不能全身心的…

怎么查询大数据信用评分?

相信在了解大数据信用评分的时候,不少人都因为大数据信用评分在申贷的时候遭受到过挫折,因为大数据信用已经被很多银行和金融机构作为风险控制的重要依据使用,其中的大数据信用评分,能直观的感知到用户的信用情况。那如何查询大数…

AI智能助手商业系统软件源码(IMYAI智能助手) AI换脸/智能体GPTs应用/AI视频生成/AI绘画/文档分析/GPT-4o模型支持

人工智能技术的发展日新月异,从深度学习到自然语言处理,再到计算机视觉等领域,不断推动着各行各业的变革。在应用层面,人工智能已深入到内容创作领域,为创作者提供了前所未有的便利和可能性。这些技术的发展潜力巨大&a…

C++ 80行 极简扫雷

一共5346个字符&#xff0c;MinGW编译通过&#xff08;强烈不建议写这种代码&#xff01;&#xff01;&#xff01;&#xff09; 压行规则&#xff1a;一行不超过80个字符 代码&#xff1a; #include<windows.h> #include<stdio.h> #include<time.h> #def…

关于Unity四种合批技术详解

文章目录 一.静态合批(StaticBatching)1.启用静态合批2.举例说明3.静态合批的限制4.静态合批的优点缺点5.动态指定物品合批 二.动态合批(Dynamic Batching)1.启用动态合批2.合批规则3.举例说明4.使用限制 三.GPU Instancing1.启用GPU Instancing2.启用限制3.举例说明 四.SRP Ba…

uniapp h5本地预览pdf教程 (含白屏|跨域解决方案)

第一步 下载pdf.js 很多pdf.js版本在真机ios环境都会白屏 经测试后2.5.207版本比较稳定&#xff0c;Android和IOS环境PDF文件都能加载成功 下载地址 https://github.com/mozilla/pdf.js/releases/tag/v2.5.207https://github.com/mozilla/pdf.js/releases/tag/v2.5.207第二步 解…

C++(week15): C++提高:(五)Redis数据库

文章目录 零、Redis的安装、API1.redis、hiredis、redis-plus-plus安装2.HiRedis的API 一、Redis数据库的基本概念1.关系型数据库与非关系型数据库的区别2.非关系型数据库的分离3.Redis的概念4.Redis的特性5.Redis的优点 二、Redis常用命令三、Redis的五大数据类型及其命令1.st…

c++初阶-----STL---list

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

Datawhale AI夏令营第四期 魔搭-AIGC方向 task01笔记

目录 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4 进行赛题提交 微调结果上传魔搭 lora 调参参数介绍及 SD 的基础知识点…

ICETEK-DM6437-AICOM——CPU定时器及直流电机控制中断控制

一、设计目的&#xff1a; 1.1 CPU定时器程序设计&#xff1b; 1.2 2直流电机程序设计&#xff1b; 1.3 外中断。 二、设计原理&#xff1a; 2.1 定时器的控制&#xff1a; 在DM6437&#xff08;是一种数字信号处理器&#xff0c;DSP&#xff09;上使用其内部定时器和中断来…

JESD204B/C协议学习笔记

JESD204B基础概念 204B包含传输层&#xff0c;链路层&#xff0c;物理层。 应用层是对 JESD204B 进行配置的接口&#xff0c;在标准协议中是不含此层&#xff0c;只是为了便于理解&#xff0c;添加的一个层。 协议层指工程中生成的IP核JESD204B&#xff0c;负责处理输入的用户…

Java网络编程——简单的 API 调用

Get请求 - 无参数 上一章我们学习了网络的基本概念&#xff0c;我们知道 URL 能输入到浏览器地址栏中被打开&#xff0c; 那么能不能在程序中发送请求&#xff0c;获取结果呢&#xff1f; 例如“中国科学技术大学”的网站&#xff08;https://www.ustc.edu.cn/&#xff09;&a…

探索设计模式:观察者模式

探索设计模式&#xff1a;观察者模式 &#x1f9d0;观察者模式简介:gem:核心概念:rainbow:观察者模式的优点:truck:实现步骤1. 定义主题接口2. 实现观察者接口3. 具体主题实现4. 具体观察者实现5. 调用 :triangular_flag_on_post:总结 在实际开发过程中&#xff0c;设计模式的作…

【Hot100】LeetCode—124. 二叉树中的最大路径和

1- 思路 使用递归 dfs 实现① 递归思路&#xff1a;每次递归返回值为 &#xff0c; root.valMath.max(left,right) 从 左右孩子中挑选一个大的。② 递归公式&#xff1a;定义 sum&#xff0c;sum root.val left right 2- 实现 ⭐124. 二叉树中的最大路径和——题解思路 cl…

【矩阵对角线求和】求一个3*3矩阵对角线元素之和

求一个3*3矩阵对角线元素之和&#xff0c;使用C语言实现 具体代码&#xff1a; #include<stdio.h>int main(){float a[3][3],sum0;printf("请输入3x3矩阵的元素&#xff08;按行输入&#xff09;&#xff1a;\n");for(int i0;i<3;i){for(int j0;j<3;j)…

Java、PHP、Node 操作 MySQL 数据库常用方法

一、Java 操作 MySQL 数据库 1、Java 连接 MySQL 数据库 1. 使用 JDBC 驱动程序连接 使用这种方式&#xff0c;首先需要导入 MySQL 的 JDBC 驱动程序依赖&#xff0c;然后通过 Class.forName() 方法加载驱动程序类。其创建连接的过程相对直接&#xff0c;只需提供准确的数据库…