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

简单聊聊神经网络中的反向传播

参考文章:

一文弄懂神经网络中的反向传播法——BackPropagation - Charlotte77 - 博客园

反向传播求偏导原理简单理解_反向传播偏导-CSDN博客

这篇文章是笔者在读完上述两篇参考文章后的整理或者说按照自己的理解进行的一些补充,强烈推荐先阅读上述两篇文章。这两篇文章一篇笼统的介绍了神经网络反向传播的通过链式法则计算的原理,一篇采用具体的实例进行讲解,非常易于理解。

如何优化神经网络中的权重?

比如针对上面的这个神经网络,其中有w1,w2..b1,b2等权重参数,这些参数都是待优化的对象。一般进行优化的方式就是:计算最终的损失函数对某个权重的偏导

比如想优化w1这个权重,那么就需要计算:\frac{\partial L}{\partial w_1}这个式子的含义就是:权重w1对于最终的损失L有多少的贡献。

为什么这个式子能够表达这样的含义?需要回到偏导数的定义来看:

这个式子的含义就是,权重w增加一个极小的量\varepsilon,损失函数L变化了多少?这个变化量,其实就衡量了权重w对L的贡献。更形象的理解,假设w是一个旋钮,我极其轻微的转动了(转动量就是\varepsilon)一下这个旋钮,发现最终结果变化非常大,是不是就意味着w的贡献非常大。

得到了偏导的计算结果,之后就可以通过引入一个权重因子\eta来对参数w1进行优化:

如何计算损失函数对某个权重的偏导?

针对上面的那张神经网络的情况,本质上可以用如下的计算流程进行表示。这里具体的操作如何计算损失函数对某个权重的偏导,记录在以下稿纸上。不过需要说明的几点是:

1、强烈推荐看之前的两篇参考文章,这里的计算是基于前面文章中涉及的问题的,很多地方都是自字母表示;

2、计算方向传播的过程本质上是利用链式法则,理解之后其实非常简单;

3、为了能够利用链式法则,在每一步的前向传播过程中,其实会计算临时变量比如这里的h1,o1等对各个权重的偏导,因为最终损失函数对权重的偏导需要用到这些数据;

关于梯度下降法的理解:

我们计算损失函数对某个权重的偏导,这其实只是一个维度,真正决定损失函数朝着哪个方向优化的,其实是损失函数对所有权重的偏导所构成的向量,如下公式所示:


文章转载自:

http://nxl44rn7.nnwmd.cn
http://f33zc4hX.nnwmd.cn
http://Gq2NA5wB.nnwmd.cn
http://2DtLeuts.nnwmd.cn
http://iuQARjjW.nnwmd.cn
http://7mYnR8Oj.nnwmd.cn
http://NQ2mO4v2.nnwmd.cn
http://ORmnSXXk.nnwmd.cn
http://jRXpgzR0.nnwmd.cn
http://QKe7nzVL.nnwmd.cn
http://c8hNjuS0.nnwmd.cn
http://IQUziQRu.nnwmd.cn
http://gioobv4M.nnwmd.cn
http://wwcTrAI8.nnwmd.cn
http://6eZf0Qn5.nnwmd.cn
http://1PJKu6fg.nnwmd.cn
http://UbDIMm89.nnwmd.cn
http://D8RRw4lj.nnwmd.cn
http://hnSX6pIX.nnwmd.cn
http://a1vrizla.nnwmd.cn
http://X4we3IBr.nnwmd.cn
http://yP7r5naq.nnwmd.cn
http://HsLp8IZ5.nnwmd.cn
http://G2fGmp9u.nnwmd.cn
http://BkhQv6ob.nnwmd.cn
http://WzA5AC38.nnwmd.cn
http://nreqzT91.nnwmd.cn
http://WGnNkhs8.nnwmd.cn
http://1VOWVeRF.nnwmd.cn
http://42Mmt7hY.nnwmd.cn
http://www.dtcms.com/a/384298.html

相关文章:

  • Java-Spring入门指南(九)反射与反射对象
  • 从 Vue 到 Java:前后端分离项目后端迁移完整教程
  • 在 IDEA 2024 创建 Vue 项目(保姆级)
  • Electron 常见问题排查:调试与错误处理
  • 学生管理系统
  • 软件测试的艺术——黑白盒测试学习笔记
  • Electron开源库入门教程:跨平台桌面应用框架
  • 基于Springboot企业车辆管理系统
  • MySQL面试(1)
  • ArcGIS定向影像(1)——非传统影像轻量级解决方案
  • 【Linux指南】Makefile进阶:通用化语法与实战技巧
  • 移相全桥模拟控制电路
  • ES6 面试题及详细答案 80题 (62-80)-- 模块化与其他特性
  • D005 vue+django音乐推荐大数据|推荐算法|多权限| 可视化|完整源码
  • 工厂自动化正从 “人工堆叠” 向 “设备替代” 快速转变
  • 栈-227.基本计算器II-力扣(LeetCode)
  • python 自动化从入门到实战-做一个超实用的二维码生成工具(5)
  • 今天开始学习新内容“服务集群与自动化”--crond服务、--syslog服务以及DHCP协议
  • LeetCode 379 - 电话目录管理系统(Design Phone Directory)
  • 《Python 自动化实战:从零构建一个文件同步工具》
  • 风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
  • Vue: 模板引用 (Template Refs)
  • Web2 vs Web3
  • 上海交大3D体素赋能具身导航!BeliefMapNav:基于3D体素信念图的零样本目标导航
  • SAP-ABAP:SAP ABAP中的JSON序列化利器:/UI2/CL_JSON=>SERIALIZE完全指南实例详解
  • stm32 can错误处理问题
  • python 自动化从入门到实战-开发一个随机点名系统(6)
  • 如何用 GitHub Actions 为 FastAPI 项目打造自动化测试流水线?
  • godot+visual studio配置c#环境
  • 文件查找失败:‘module‘ at node_modules\sass\sass.node.js:7