【机器学习】033_反向传播

一、计算图、反向传播原理

1. 回顾前向传播

        例:假设现在有一个神经网络,其仅有一个输出层和一个神经单元

        · 定义 z = wx+b

        · 定义 a = g(z) = z = wx+b,即激活函数对激活值不再做具体处理

        · 定义平方损失函数 J(w,b) = \frac{1}{2}(a-y)^2,计算a的值与真实值的差距

        此时,通过计算图,我们可以看到前向传播的过程:

        ①输入 x,分别与权重 w 和 b 做运算得到 z,再经过激活函数得到 a 的值;

        ②拿 a 的值与真实值 y 做比较,从而得到损失函数的值。

        

        在这个过程中,我们通过计算图将得到损失函数 J(w,b) 的每一小步操作都呈现了出来,并用诸如 c 和 d 的变量名表示其中的某一部分,※这方便我们后续进行反向传播的求导操作。

        如果我们要实现梯度下降不断更新权重 w 和 b 的值从而减小损失函数,就需要知道损失函数对于 w 和 b 的导数值。这个过程我们称之为【反向传播】。

2. 反向传播

        损失函数对于 w 和 b 的导数值不能够直接求导呈现,由于 J(w,b) 是 w 和 b 经过了多个变换最终计算出来的,因此要对 J(w,b) 求 w 和 b 的导数,就应该使用链式法则来进行计算。

        如图所示,在计算图中进行反向传播的运算,最终可以通过链式法则得到 \frac{\partial J}{\partial w} 和 \frac{\partial J}{\partial b} 的值。

        · 利用这些值,我们就可以进一步执行梯度下降算法的相关操作,来不断更新 w 和 b 的值从而使 J(w,b) 最小。

        · 一般地,当导数为0时,证明达到了极小值点,此时即是梯度下降收敛的位置。

※有关梯度下降算法的相关知识,详见先前学习笔记※

        激活函数的选择:

        目前使用较多的是ReLU函数,它的求导表现是要么让某个参数通过,要么让某个参数消失,因此优化表现更好,且缓解了梯度消失问题(后续会进一步学习)

二、使用 Sympy 的库和包自行计算导数

import sympy
# 使用J和w作为求导计算的符号
J, w = sympy.symbols('J, w')
# 确定两者之间的函数表达式
J = w**2
# diff()函数表示求第一个数对第二个数的导数
dJ_dw = sympy.diff(J, w)
print(dJ_dw)
print(dJ_dw.subs([(w,2)]))  # subs表示将w的值实际代入进去求dJ_dw的值

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

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

相关文章

2023年亚太杯数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 最短时…

LeetCode算法题解(动态规划)|LeetCoed62. 不同路径、LeetCode63. 不同路径 II

一、LeetCoed62. 不同路径 题目链接:62. 不同路径 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下…

通明智云宣布完成数千万元A+轮融资, 引领云原生与信创两翼齐飞的应用交付解决方案

近日,通明智云(北京)科技有限公司(简称:通明智云)宣布完成数千万元A轮融资,由全聚合与信公投资联合投资,明论资本担任本轮融资独家财务顾问。本轮融资资金将主要用于NJet云原生应用引…

智能时代的智能工具(gpt)国产化助手

目前gpt对代码以及其他领域都是可以支持,在国内有很多,常用的百度的 文心一言 ,阿里的 通义千问 ,还有(“豆包”,“”讯飞星火“”)等,除了写代码可以外,也可以很好的支持…

【蓝桥杯省赛真题44】Scratch像素画板 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解

scratch像素画板 第十四届青少年蓝桥杯scratch编程省赛真题 一、题目要求 编程实现 1.点击绿旗,角色、背景如图所示(三种颜色调色盘、清除图标及方格角色请自行创建,点击绿旗后立刻呈现下图效果); 2.用鼠标点击红色调色盘,红色调色盘变为选中状态(如下图所示),此时鼠…

docker和docker-compose生产的容器,不在同一个网段,解决方式

在实际项目中,使用docker run xxXx 和docker-compose up -d 不在同一个网段,一个是默认是172.17.x.x, 另一个是172.19.x.x。为解决这个问题需要自定义一个网络,我命名为“my-bridge” 首先熟悉几条命令: docker network ls 或…

vue动态获取目录结构进行配置静态路由

文章目录 前言定义项目页面格式一、vite 配置动态路由新建 /router/utils.ts引入 /router/utils.ts 二、webpack 配置动态路由总结如有启发,可点赞收藏哟~ 前言 项目中动态配置路由可以减少路由配置时间,并可减少配置路由出现的一些奇奇怪怪的问题 路由…

多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测

多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测 目录 多维时序 | MATLAB实现PSO-GRU-Attention粒子群优化门控循环单元融合注意力机制的多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MAT…

echarts折线图修改特定点的颜色

$.ajax({url:"/plc1672Ctrl/selectPage2.ctrl",dataType:"json",type:"POST",cache:false,data:{"serNo":$("#search").val().trim()},success:function(data){var list data.list;// x坐标var x new Array();// y坐标var…

凸包的学习之路

凸包的学习之路-CSDN博客 5.算法策略5:Graham Scan Algorithm 算法思路: 给定二维点集,求其凸包 1)presorting: (1)先找到 ltl点 ,也就是y值最小的点,若是存在y值相…

thinkphp8 DB_PREFIX 属性

设计表的时候使用**_user, **就是前缀,DB_PREFIX就是默认把前缀给去掉 在config/database.php prefix,改成你的前缀,数据库的表重命名‘ltf_user’ 代码调用 $user Db::name("user")->select();return json($user);之前是使用…

css取消移动端长按元素背景色

在开发微信小程序的时候,发现有的元素长按之后,出现了讨厌人的背景色,这就很奇怪,就想把它去掉,所以这里教一下方法: 在所在元素添加css样式: // 取消长按的背景色-webkit-tap-highlight-color:…

解放双手!一键助你快速发圈、批量加好友,好用哭了!

朋友们,你们有没有经历过管理多个微信账号的繁琐和压力? 会不会因为忙不过来,忘记及时回复客户,错过了推广的时机? 别担心,现在有了微信管理系统,一切都变得简单轻松起来! 微信管…

03-瑞吉外卖关于菜品/套餐分类表的增删改查

新增菜品/套餐分类 页面原型 当我们在后台系统中添加菜品/套餐时,需要选择一个菜品/套餐分类,在移动端也会按照菜品分类和套餐分类来展示对应的菜品和套餐 第一步: 用户点击确定按钮执行submitForm函数发送Ajax请求,将新增菜品/套餐表单中输入的数据以json形式提交给服务端,…

Apache DolphinScheduler 3.0.0 升级到 3.1.8 教程

安装部署的流程可参考官网的文档 Version 3.1.8/部署指南/伪集群部署(Pseudo-Cluster) https://dolphinscheduler.apache.org/zh-cn/docs/3.1.8/guide/installation/pseudo-cluster 本文开始之前,我先补充说明一下升级 Apache DolphinScheduler 的几个关键点 元数…

低代码服务商,中小型数字化软件服务商的新出路

数字化时代大背景下,企业信息化向数字化转型成为所有企业发展的必由之路,企业在对业务模式、流程、组织形式、信息技术等方面进行重新定义时,软件必然参与价值创造的全过程,这势必驱使软件成为推动数字化转型的“引擎”&#xff0…

debian 12 配置

1. 修改apt源 修改apt源为http版本 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware # deb-src http://mirrors.tuna.tsinghua.edu.cn/d…

文化传承与数字技术的完美结合:十八数藏的新纪元

在这数字化的时代,十八数藏犹如一座连接过去与未来的桥梁,展现出文化传承与数字技术完美结合的新纪元。十八数藏以其独特的视角,将传统文化注入现代数字技术的脉络,呈现出一幅文化传承的全新画卷。 十八数藏的文化传承并不是简单的…

软件测评中心进行安全测试有哪些流程?安全测试报告如何收费?

在当今数字化时代,软件安全测试是每个软件开发团队都不能忽视的重要环节。安全测试是指对软件产品进行系统、全面的安全性评测与检测的过程。它旨在发现并修复软件中存在的漏洞和安全隐患,以确保软件能够在使用过程中保护用户的数据和隐私不被非法访问和…

深入了解Java 8 新特性:Stream流的实践应用(二)

阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概8000多字,预计阅读时间长需要10分钟(不要害怕字数过多,其中有一大部分是示例代码,读起…