机器学习17:训练神经网络-反向传播算法

news2024/10/5 19:19:32

反向传播算法对于快速训练大型神经网络至关重要。本文将介绍算法的工作原理。

目录

1.简单的神经网络

2.激活函数

3.错误函数

4.正向传播

4.1 更新隐藏层

5.反向传播

5.1 求导数

5.2 其他导数

5.3 反向传播误差倒数

6.参考文献


1.简单的神经网络

如图 1 所示,展示了一个神经网络,其中包含一个输入节点、一个输出节点以及两个隐藏层(分别有两个节点)。相邻层中的节点使用权重 w_{ij}(网络参数)连接。

图 1 神经网络示意图

2.激活函数

如图 2 所示,每个节点都有一个总输入 x、一个激活函数 f(x) 和一个输出 y=f(x)。  f(x) 必须是非线性函数,否则神经网络将只能学习线性模型(相关内容在【机器学习15】一文中有介绍)。常用的激活函数是 S 型函数: f(x) = \frac{1}{1+e^{-x}}

图 2 神经网络节点内部示意图

3.错误函数

错误函数的作用在于自动从数据中学习网络的权重,以使预测的输出 y_{output} 接近所有输入的目标 y_{target} 。 为了衡量目标的完成程度,我们使用误差函数 𝐸。 常用的错误函数是 :

E(y_{output},y_{target})=\frac{1}{2}\left ( y_{output}-y_{target}\right )^{2}

图 3 错误函数示意图

4.正向传播

如图 4 所示,以输入示例 (x_{input},y_{target}) 为例,并更新网络的输入层。为保持一致,我们认为输入与任何其他节点类似,由于输入层没有激活函数,因此其输出等于其输入,即 y_{1}=x_{input}

图 4 正向传播

4.1 更新隐藏层

如图 5 所示,我们更新第一个隐藏层。我们会获取上一层中节点的输出 y ,并使用权重来计算下一层中节点的输入 𝑥。

图 5 更新隐藏层

然后,如图 6 所示,我们更新第一个隐藏层中节点的输出。 为此,我们使用激活函数 𝑓(𝑥)。

𝑦=𝑓(𝑥)

图 6 更新隐藏层输出

 根据上面的计算方法,我们针对网络的剩余部分进行传播,并获取网络的最终输出。

图 7 继续传播,直到获得最终输出

5.反向传播

5.1 求导数

5.2 其他导数

5.3 反向传播误差倒数

重复上面的步骤和三个公式,继续传播,直到我们计算完所有误差导数为止。

6.参考文献

Google for Developers:https://google-developers.gonglchuangl.net/machine-learning/crash-course/backprop-scroll?hl=zh-cn

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

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

相关文章

中电金信发布源启·数字构建平台

6月28日,中电金信发布源启数字构建平台。源启数字构建平台是企业级研发全生命周期支持管理平台、工程平台、工具链平台。 面向金融等重点行业超大规模、超复杂度的数字化应用,源启数字构建平台通过灵活、强大的平台赋能,端到端支持应用研发全…

Acunetix v23.6 (Linux, Windows) - 漏洞扫描 (Web 应用程序安全测试)

Acunetix v23.6 (Linux, Windows) - 漏洞扫描 (Web 应用程序安全测试) Acunetix | Web Application Security Scanner 请访问原文链接:https://sysin.org/blog/acunetix-23/,查看最新版。原创作品,转载请保留出处。 作者主页:s…

笔记:flutter中一些流行的 UI 相关库

笔记:flutter中一些流行的 UI 相关库 CSDN:https://jclee95.blog.csdn.net本文收录了很多在 flutter pub 上显示流行度较高的第三方UI库和UI框架,对它们的效果进行了截图,目的是方便开发时进行查找;这些模块多数来自于…

Redis详细

Redis简介 Redis的数据类型 Redis中的常用指令 通用指令 字符串操作指令 set num 1 get num setex num1 10 1 get num1 incr num incrby num 3 decr num decrby num 3哈希操作命令 列表(List)操作命令 rpoplpush source dest 将source中的末尾元素移除…

如何编写一条高质量测试用例

测试场景: 为登录功能设计测试用例 测试员为什么要会编测试用例 测试员的目标是要保证系统在各种场景下的功能是符合设计要求的。而测试用例就是测试员想到的测试场景。(这也是高级别的测试员即使不会代码也能找到较好工作的原因) 编写测试…

视频编码压缩基础

视频编码压缩基础 文章目录 视频编码压缩基础视频图像的质量评价帧率、分辨率和码率三者之间的关系 环路滤波研究背景 视频图像的质量评价 采用有损压缩的技术能显著降低码率,但是也会降低视频图像的质量,因此对于有损压缩算法,需要建立一套…

【FFmpeg实战】Flutter音视频裁剪

作者:JianLee 链接:https://www.jianshu.com/p/868c8536a9b2 flutter_ffmpeg是什么? ffmpeg是一个音视频处理库,通过命令行的形式,对音视频进行处理,而MobileFFmpeg 则是ffmpeg在移动端的实现,…

ipa上架App Store【uniapp-ios】

前置条件:已获取到.mobileprovision描述文件、.p12证书并打包生成ipa包 (如果还没获取证书、描述文件等可以去看我前两篇博客:uniapp-ios打包步骤 、uniapp-ios打包安装测试。一篇是已经付费了即已经注册了Apple Developer Program&#xf…

迈瑞BC系列出图汇总

迈瑞的几个仪器出图需要画图,搞的很费劲,没办法,厂商自己不改,明明有图发Base64串的,就非两个图要自己画,画的方法又描述不清。每个LIS厂商都要浪费很多时间,没什么必要浪费在这种没意义的事情上…

Cannot find tomcat-9.0.0.M21/bin/setclasspath.sh

问题描述:将linux上的tomcat直接拷贝到以一个路径下,执行sh startup.sh 报错 解决:修改全局变量配置文件 1、vim /etc/profile (主要修改如下图所标记的值 ) 2、source /etc/profile (设置环境变量立即…

JMeter之事务控制器实践

目录 前言 事务控制器 JMeter控制器添加路径: Generate parent sample 1、不勾选任何选项: 2、勾选【Generate parent sample】 3、Include duration of timer and pre-post processors in generated sample 小结 前言 在JMeter中,事…

最牛整理,selenium自动化测试-鼠标/键盘操作(实战详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 selenium鼠标操作…

python爬虫快速入门

Python有其简洁明了,功能强大的优势,特别是在网络爬虫的应用上。接下来,我将分享一个适合Python初学者的爬虫快速入门教程。 一、Python爬虫简介 网页爬虫,是一种自动从互联网上获取信息的程序。在Python语言中,requ…

总结STM32嵌入式面试知识点

一、STM32F1和F4的区别? 内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;主频不同:F1主频72MHz,F4主频168MHz;浮点运算:F1无浮点运算单位,F4有;功能性能&…

Android Studio实现内容丰富的安卓汽车租赁平台

如需源码可以添加q-------3290510686,也有演示视频演示具体功能,源码不免费,尊重创作,尊重劳动。 项目编号101 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看公告 3.查…

css重点学习

一、选择器 1.标签名选择器 div{border: 5px blue dotted;color: aquamarine;font-size: 20px;} <body><div id"div001">div标签1</div><div id"002">div标签2</div> </body> //只写出了重点部分 2.id选择器 #div0…

IMS:Activity和View处理InputEvent

IMS:Activity和View处理InputEvent 1、IMS服务处理2、Activity的DecorView界面添加3、Activity和View处理InputEvent3.1 InputEventReceiver接收InputEvent3.2 处理KeyEvent3.3 处理MotionEvent android12-release 1、IMS服务处理 关键流程EventHub -> InputReader -> In…

【BUUCTF-REVERSE刮开有奖】详解版

这道题是BUUCTF-REVERSE中的一道题目 拿到题目我们直接拖到Exeinfo_PE中查看&#xff0c;发现没有加壳&#xff0c;32位应用程序&#xff0c;打开应用程序看看&#xff1a; 打开是这样&#xff0c;我是没有找到编辑框&#xff0c;那直接拖到IDA中打开看看吧&#xff1a; 打开I…

使用python-opcua 实现modbus网关(2)

我们继续来研究如何使用python-opcua 实现opcua/modbus 网关。 opcua 开发包包含了大量的函数&#xff0c;通过研究opcua/modbus 网关的实现&#xff0c;可以了解这些函数的使用方法。由于函数过多&#xff0c;文章中函数的使用方式可能不尽合理&#xff0c;或者存在错误。希望…

从不同视角绘制三维散点图

import numpy as np from matplotlib import pyplot as plt positive_data arr_feature_pca[y_dbscan_pred ! -1, :] negative_data arr_feature_pca[y_dbscan_pred -1, :] # --------------------------------------- 定义绘图函数 ----------------------------------- d…