前馈神经网络-反向传播(Back Propagation)公式推导走读

构造:输入神经元个数等于输入向量维度,输出神经元个数等于输出向量维度。(x1=(1,2,3),则需要三个输入神经元)

一 前向后传播

隐层:

输出层:

一般化,向量表示  

二 反向传播

1计算梯度delta:均方误差,利用了sigmoid函数导数的有趣性。

输出层梯度: -->  eg. 

隐层梯度:  -->   eg. 

2更新权重:

eg输出层:

eg隐层:


备注 反向传播的公式推导

0目标函数:

1梯度下降法优化目标函数, 怎么计算出误差对于每个权重的偏导数呢?

2netj是第j个神经元的加权输入作为传导,链式求导法则 : ,。

区分输出层隐藏层两种情况:

3.1 输出层: 借用yj作为传导,netj和Ed都是与yj有关的函数,链式求导法则:

第一项:     第二项:

带入,所以输出层梯度:

3.2隐层:借用节点的所有直接下游节点的集合Downstream(j),链式法则:aj

带入求得梯度

备注:

激活函数: sigmoid函数是一个非线性函数,导数有趣,可用自身表示。

参考

https://www.zybuluo.com/hanbingtao/note/476663

时间: 2024-08-04 22:54:52

前馈神经网络-反向传播(Back Propagation)公式推导走读的相关文章

神经网络反向传播梯度计算数学原理

[神经网络]反向传播梯度计算数学原理 1 文章概述 本文通过一段来自于Pytorch官方的warm-up的例子:使用numpy来实现一个简单的神经网络.使用基本的数学原理,对其计算过程进行理论推导,以揭示这几句神奇的代码后面所包含的原理. 估计对大多数的同学来说,看完这个文章,肯定会是这样的感觉:字都认识,但是就是不知道讲的是啥~!不过对于有心人来说,本文确实能起到点睛之笔,就是你研究很久后,还差一点火候就顿悟了,希望本文能够帮你顿悟. 关键字:Numpy,神经网络,矩阵分析,反射传播,梯度下降

神经网络反向传播算法(4,5)

"反向传播"是最小化成本函数的神经网络术语,就像我们在logistic回归和线性回归中的梯度下降一样.我们的目标是计算: 也就是说,我们希望在θ中使用一组最优参数来最小化我们的成本函数j.在这一节中我们将看看我们用来计算J(Θ)的偏导数方程: 为此,我们使用下面的算法: 反向传播算法实现: 1.得到训练集 2.设置所有i,j,l(因此你最终有一个矩阵全零) 3.遍历训练样本t = 1到m: (1) (2)进行正向传播计算a(j)  j从1到m: (3)使用y(t),计算 其中L是我们的

神经网络反向传播,通俗理解

前置知识: sigmod 函数 g(z) = 1 / (1 + np.exp(-z)) g'(z) = (1 / (1 + np.exp(-z))) * (1 - (1 / (1 + np.exp(-z)))) g'(z) = g(z) * (1 - g(z)) LR-----1层神经网络 dL/dz 简称dz_,L(a,y)使用交叉熵. da_ = dL/da = (-(y/a) + ((1-y)/(1-a))) dz_ = dL/da * da/dz = da_*   g'(z) dw_ =

Back Propagation:反向传播

1. 前向传播和反向传播 ①前向传播  forward propagation:从前往后,根据输入和参数计算输出值和损失值,并将当地梯度(local gradient),即每个结点的输出值对该节点的输入值的偏导数,保留 在内存中以供反向传播计算梯度时使用,注意:前一个结点的输出是后一个结点的输入 ②反向传播 back propagation:从后往前,利用链式求导法则,计算损失函数值对各参数 / 输入值 / 中间值的偏导数 / 梯度,梯度下降法需要使用反向传播来计算梯度 在利用梯度下降法对权重矩

记一下机器学习笔记 多层感知机的反向传播算法

<神经网络与机器学习>第4章前半段笔记以及其他地方看到的东西的混杂-第2.3章的内容比较古老预算先跳过. 不得不说幸亏反向传播的部分是<神机>里边人话比较多的部分,看的时候没有消化不良. 多层感知机 书里前三章的模型的局限都很明显,对于非线性可分问题苦手,甚至简单的异或都弄不了.于是多层感知机(也就是传说中的神经网络)就被发明了出来对付这个问题. 多层感知机就是由一系列的感知机,或者说神经元组成,每个神经元都接受若干的输入(树突)并产生一个输出(轴突). 这些神经元被分成若干层,每

DL4NLP——神经网络(一)前馈神经网络的BP反向传播算法步骤整理

这里把按[1]推导的BP算法(Backpropagation)步骤整理一下,备忘使用.[1] 中直接使用矩阵微分的记号进行推导,整个过程十分简洁.而且这种矩阵形式有一个非常大的优势就是对照其进行编程实现时非常方便. 但其实用标量计算推导也有一定的好处,比如可以清楚地知道某个权重是被谁所影响的. 记号约定: $L$:神经网络的层数.输入层不算. $n^l$:第 $l$ 层神经元的个数.偏置神经元不算在内. $W^{l}\in\mathbb R^{n^l\times n^{l-1}}$:第 $l-1

深度学习基础--神经网络--BP反向传播算法

BP算法: 1.是一种有监督学习算法,常被用来训练多层感知机.  2.要求每个人工神经元(即节点)所使用的激励函数必须可微. (激励函数:单个神经元的输入与输出之间的函数关系叫做激励函数.) (假如不使用激励函数,神经网络中的每层都只是做简单的线性变换,多层输入叠加后也还是线性变换.因为线性模型的表达能力不够,激励函数可以引入非线性因素) 下面两幅图分别为:无激励函数的神经网络和激励函数的神经网络 如图所示,加入非线性激活函数后的差异:上图为用线性组合逼近平滑曲线来分割平面,下图为使用平滑的曲线

一文弄懂神经网络中的反向传播法——BackPropagation

最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进行补充,但是补充的又是错的,难怪觉得有问题.反向传播法其实是神经网络的基础了,但是很多人在学的时候总是会遇到一些问题,或者看到大篇的公式觉得好像很难就退缩了,其实不难,就是一个链式求导法则反复用.如果不想看公式,可以直接把数值带进去,实际的计算一下,体会一下这个过程之后再来推导公式,这样就会觉得很容

【MLP】多层感知机网络——BPN反向传播神经网络

BPN(Back Propagation Net) 反向传播神经网络是对非线性可微分函数进行权值训练的多层网络,是前向神经网络的一种. BP网络主要用于: 1)函数逼近与预测分析:用输入矢量和相应的输出矢量训练一个网络,逼近一个函数或预测未知信息: 2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来: 3)分类:把输入矢量以所定义的合适方式进行分类: 4)数据压缩:减少输出矢量维数以便于传输与存储. 比如,一个三层BPN结构如下: 由输入层.隐含层和输出层三层组成.其中每一层的单元与之相邻