神经网络——BP学习算法:反向传播算法推导
参考书籍:人工智能及其应用(第三版) 王万良
一、推导步骤
输入层的神经元的输入输出关系一般是线性函数
隐层()中神经元的输入输出关系一般是非线性函数
与输出层中各个神经元的非线性输入输出关系记为
第层的第个神经元到第层的第个神经元的连接权值为。
层中第个神经元输入的总和为,输出为
综上各变量之间的关系为 式1
BP学习算法是通过反向学习过程使误差最小,其目标函数为 式2
:输出层神经元个数
:实际输出
:期望输出
取平方项是为了避免值抵消,乘1/2是因为要求导抵消²
式2 即是求期望输出与实际输出之差的平方和最小。就是求的极小值。约束条件就是 式1。因为要求极小值,所以需要对求导,即神经网络权值的修正量为 式3
为什么要对求导呢?因为-=。由式1可以知道是第层的第个神经元到第层的第个神经元的连接权值。要使连接权值最小所以对他求导。乘以-是因为目标函数是沿着负梯度方向改变的。
下面是推导BP学习算法的完整过程:
先求
因为在 式1 中的里面,所以采用链式求导得到 式4
则 式3 变为 式5
接下来开始推导 得到 式6
下面分两种情况求
①对输出层(第m层)的神经元,即 ,,有误差定义式得
②若 为隐单元层 ,则有
综上所述,BP学习算法可以归纳为
若取 为 型函数,即(式1有给出)
则
BP学习算法可以归纳为
二、举个栗子
莫得答案,自己写的,也不晓得对不对,可以参考参考。。。
神经网络——BP学习算法:反向传播算法推导相关推荐
- 机器学习:神经网络的代价函数及反向传播算法
在<机器学习:神经网络的模型构建>中,我记录了神经网络的一些基础知识,包括神经网络的逻辑单元.模型表示.前向传播等等.这篇笔记中,我会整理神经网络的代价函数以及反向传播算法- 那么如何在给 ...
- 深度学习之反向传播算法
深度学习之反向传播算法 直观理解反向传播 反向传播算法是用来求那个复杂到爆的梯度的. 上一集中提到一点,13000维的梯度向量是难以想象的.换个思路,梯度向量每一项的大小,是在说代价函数对每个参数有多 ...
- 神经网络与机器学习 笔记—反向传播算法(BP)
先看下面信号流图,L=2和M0=M1=M2=M3=3的情况,上面是前向通过,下面部分是反向通过. 1.初始化.假设没有先验知识可用,可以以一个一致分布来随机的挑选突触权值和阈值,这个分布选择为均值等于 ...
- 深度神经网络(DNN)反向传播算法(BP)
在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...
- 深度学习中反向传播算法简单推导笔记
反向传播算法简单推导笔记 1.全连接神经网络 该结构的前向传播可以写成: z(1)=W(1)x+b(1)z^{(1)} = W^{(1)}x+b^{(1)}z(1)=W(1)x+b(1) a(1)=σ ...
- 神经网络与深度学习-chapter2 反向传播算法
英语原文:Neural Networks and Deep Learning(Michael Nielsen) 中文译文:神经网络与深度学习(Michael Nielsen) 第2章 反向传播算法如何 ...
- 神经网络和反向传播算法——反向传播算法本质上是随机梯度下降,链式求导法则而来的...
原文:https://www.zybuluo.com/hanbingtao/note/476663 写得非常好,适合入门! 神经元 神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数 ...
- Educoder 机器学习 神经网络 第三关:反向传播算法
任务描述 相关知识 数据集介绍 神经网络是如何训练 前向传播 交叉熵 反向传播 sklearn中的神经网络 编程要求 测试说明 任务描述 本关任务:用sklearn构建神经网络模型,并通过鸢尾花数据集 ...
- 浅谈神经网络之链式法则与反向传播算法
反向传播是训练神经网络最重要的算法,可以这么说,没有反向传播算法就没有深度学习的今天.但是反向传播算法涉及一大堆数据公式概念.所以我们了解导数计算过程以及要介绍的新的复合函数多层求导计算过程. 链式法 ...
- 深度学习-误差反向传播算法
文章目录 一.误差反向传播算法是干什么的? 二.计算图 (一) 了解计算图的写法 (二)局部计算 (三) 计算图的优点 三. 误差反向传播算法的具体实现 一.误差反向传播算法是干什么的? 通过数值微分 ...
最新文章
- UVA12003 Array Transformer(数组分块)
- SHELL判断服务是不是正在运行
- Hadoop伪分布式运行案例
- c# 使用Autodesk design Review API
- Jupyterlab 插件安装后侧边栏找不到的解决
- 【数学和算法】插值方法
- 【深度学习】Tensorflow2.x入门(一)建立模型的三种模式
- linux oracle脚本编写,Linux 脚本编写基础(一)--语法
- php curl post 超时设置,在PHP中设置curl的超时参数(timeout)
- ***使用PHP实现文件上传和多文件上传
- (6)FPGA面试题D触发器
- maven笔记(2)
- 阿里架构10年,头条开发2年,我终于写出了一套Java核心知识点!
- Redis 的key设计技巧缓存问题
- 世界杯要来了,先跟梅西来个热身吧_数字体验_新浪博客
- mysql 删除不了库
- 2020年中国环博会|2020环博会|第21届中国环博会参展商名单(第2批)“加速”出炉!
- 【STM32】中断和中断优先级理解
- torch.sigmoid、torch.nn.Sigmoid和torch.nn.functional.sigmoid的区别
- 瑞典安百拓集团将把日本工厂搬到南京;好时在马来西亚开设新研发中心 | 美通企业日报...