一个简单三层神经网络BP算法的公式推导

一个简单的三层神经网络BP算法的公式推导

  • 神经网络表示
  • 梯度下降法
  • 前向误差传播
  • 反向误差传播

神经网络表示

让我们来看一个最简单的神经网络,该神经网络只有三层,分别是输入层,隐藏层和输出层
resource://database/1528:0)]

为了表示方便,我们把线性函数和非线性函数分开,神经网络可以画成如下:
resource://database/1542:1)]

其中φ(x)表示激活函数,我们知道神经网络算法就是为了拟合一个函数从而实现分类或回归等任务。由于前面只使用了线性函数,只能拟合线性函数,但在实际上很多任务的函数形态都是非线性的,所以激活函数的作用就是为了增加函数的非线性,这样就可以拟合任意函数了。

言归正传,整个函数可以写成:

a 1 = w 11 x 1 + w 12 x 2 + b 1 a 2 = w 21 x 1 = w 22 x 2 + b 2 z 1 = φ ( a 1 ) z 2 = φ ( a 2 ) y = w 1 z 1 + w 2 z 2 + b \begin{aligned} a_1&=w_{11}x_1+w_{12}x_2+b_1 \\ a_2&=w_{21}x_1=w_{22}x_2+b_2 \\ z_1&=\varphi(a_1) \\ z_2&=\varphi(a_2) \\ y&=w_1z_1+w_2z_2+b \end{aligned} a1a2z1z2y=w11x1+w12x2+b1=w21x1=w22x2+b2=φ(a1)=φ(a2)=w1z1+w2z2+b

梯度下降法

然后定义损失函数: E = 1 2 ( y − Y ) 2 E = \frac{1}{2}(y-Y)^2 E=21(yY)2。其中Y为真实的label,y为预测值,现在我们的任务就是希望通过数据集,不断训练学习到一个函数使得这个损失函数最小。也就是要求 m i n E minE minE时的 w , b w,b w,b参数。
在这里插入图片描述
要求 m i n E minE minE时的 w , b w,b w,b参数,在神经网络算法中分为两个步骤,前向误差传播和反向误差传播,其中核心都是使用了梯度下降法。

使用梯度下降法,可以求解最小二乘问题,这还得从Taylor级数多起,对于多元函数 f ( x ) = f ( x 1 , x 2 , x 3 . . . ) f(x)=f(x_1,x_2,x_3...) f(x)=f(x1,x2,x3...)而言,它的梯度(也就是所有偏导数写成向量的形式),可以写成
f ( x ) ′ = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , ∂ f ∂ x 3 . . . ) f(x)'=(\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},\frac{\partial f}{\partial x_3}...) f(x)=(x1f,x2f,x3f...)
该函数的Taylor级数为:
f ( x ) = f ( x 0 ) + f ( x 0 ) ′ ( x − x 0 ) + 1 2 ( x − x 0 ) T H ( x − x 0 ) + O ( ∣ x − x 0 ∣ 3 ) f(x)=f(x_0)+f(x_0)'(x-x_0)+\frac{1}{2}(x-x_0)^TH(x-x_0)+O(|x-x_0|^3) f(x)=f(x0)+f(x0)(xx0)+21(xx0)TH(xx0)+O(xx03)

其中H为Hessian矩阵,由于二次项以及之后的高次项影响较小,求导麻烦,一般计算时会忽略。所以可写成这样:
f ( x ) = f ( x 0 ) + f ( x 0 ) ′ ( x − x 0 ) f(x)=f(x_0)+f(x_0)'(x-x_0) f(x)=f(x0)+f(x0)(xx0)
上述式子表示在 x = x 0 x=x_0 x=x0这个位置上, f ( x ) f(x) f(x)函数可以近似写成右侧形式。
由于梯度方向是函数增长最快的方向,目标函数f(x)往往是误差函数,往往我们还会定义学习率 η \eta η,每次下降一点点,若 η \eta η太大会导致当前位置跳到另一侧较高点,迭代多次出现震荡,无法收敛。

于是,我们可以把刚刚的泰勒级数写成更新式:

x 1 k + 1 = x 1 k − η ∂ f ∂ x 1 x k x_1^{k+1}=x_1^{k}-\eta \frac{\partial f}{\partial x_1}x^{k} x1k+1=x1kηx1fxk

∂ f ∂ x 1 \frac{\partial f}{\partial x_1} x1f为当前点对所有需要学习参数的偏导的集合。

随机定义需要学习的9个参数值:{ w 11 , w 12 , w 21 , w 22 , w 1 , w 2 , b 1 , b 2 , b w_{11},w_{12},w_{21},w_{22},w_1,w_2,b_{1},b_2,b w11,w12,w21,w22,w1,w2,b1,b2,b}

采用sigmoid作为非线性激活函数。
f ( n e t ) = 1 1 + e − n e t f(net) = \frac{1}{1+e^{-net}} f(net)=1+enet1

其导数为:
f ( n e t ) ′ = f ( n e t ) ( 1 − f ( n e t ) ) f(net)'=f(net)(1-f(net)) f(net)=f(net)(1f(net))

前向误差传播

神经网络根据输入x1,x2得到输出y,可以列出以下式子:

y = f ( w 11 x 1 + w 21 x 2 + b 1 ) ∗ w 1 + f ( w 12 x 1 + w 22 x 2 + b 2 ) ∗ w 2 + b y=f({w_{11}x_1+w_{21}x_2+b1})*w_1+f({w_{12}x_1+w_{22}x_2+b2})*w_2+b y=f(w11x1+w21x2+b1)w1+f(w12x1+w22x2+b2)w2+b

由于随机定义了需要学习的参数,输出y与真实标签Y有一定的差距。

E ( w ) = 1 2 ( y − Y ) 2 = 1 2 ( f ( w 11 x 1 + w 21 x 2 + b 1 ) ∗ w 1 + f ( w 12 x 1 + w 22 x 2 + b 2 ) ∗ w 2 + b − Y ) 2 E(w)=\frac{1}{2}(y-Y)^2=\frac{1}{2}(f({w_{11}x_1+w_{21}x_2+b1})*w_1+f({w_{12}x_1+w_{22}x_2+b2})*w_2+b-Y)^2 E(w)=21(yY)2=21(f(w11x1+w21x2+b1)w1+f(w12x1+w22x2+b2)w2+bY)2,要求得E(x)最小。
使用F(x)对各个参数求偏导令为0,再进行迭代,定义一个学习率,进行迭代。
∂ E ∂ w 11 , ∂ E ∂ w 12 , ∂ E ∂ w 21 , ∂ E ∂ w 22 , ∂ E ∂ b 1 , ∂ E ∂ b 2 , ∂ E ∂ b \frac{\partial E}{\partial w_{11}},\frac{\partial E}{\partial w_{12}},\frac{\partial E}{\partial w_{21}},\frac{\partial E}{\partial w_{22}},\frac{\partial E}{\partial b_{1}},\frac{\partial E}{\partial b_{2}}, \frac{\partial E}{\partial b} w11E,w12E,w21E,w22E,b1E,b2E,bE

比如说
∂ E ∂ b 1 = f ( w 11 x 1 + w 21 x 2 + b 1 ) ( 1 − f ( w 11 x 1 + w 21 x 2 + b 1 ) ) ∗ w 1 = 0 {\frac{\partial E}{\partial b_{1}}}=f({w_{11}x_1+w_{21}x_2+b1})(1-f({w_{11}x_1+w_{21}x_2+b1}))*w_1=0 b1E=f(w11x1+w21x2+b1)(1f(w11x1+w21x2+b1))w1=0

再使用梯度下降法更新:

参考sigmoid的导数: f ( n e t ) ′ = f ( n e t ) ( 1 − f ( n e t ) ) f(net)'=f(net)(1-f(net)) f(net)=f(net)(1f(net)),以此类推。

反向误差传播

回到刚才的误差准则函数: E ( w ) = 1 2 ( y − Y ) 2 E(w) = \frac{1}{2}(y-Y)^2 E(w)=21(yY)2。这一次,要进行反向传播,那么先从输出开始看。

后向传播要做的事情,实际还是求出偏导数 ∂ E ∂ w , ∂ E ∂ b \frac{\partial E}{\partial w}, \frac{\partial E}{\partial b} wE,bE,来进行迭代。
怕大家忘了,重新搬出这张图:
resource://database/1542:0)]

下面涉及到公式就比较复杂了,但是不要慌,实际就是使用了链式法则来求,只要根据上图来,耐心地看完,就应该能看懂。

根据神经网络图,有:
∂ E ∂ y = ( y − Y ) \frac{\partial E}{\partial y}=(y-Y) yE=(yY)

∂ E ∂ a 1 = d E d y ∂ y ∂ z 1 ∂ z 1 ∂ a 1 = ( y − Y ) ∗ w 1 ∗ f ( a 1 ) ′ \frac{\partial E}{\partial a_1}=\frac{dE}{dy}\frac{\partial y}{\partial z_1}\frac{\partial z_1}{\partial a_1}=(y-Y)*w_1*f(a_1)' a1E=dydEz1ya1z1=(yY)w1f(a1)
∂ E ∂ a 2 = d E d y ∂ y ∂ z 2 ∂ z 2 ∂ a 2 = ( y − Y ) ∗ w 1 ∗ f ( a 2 ) ′ \frac{\partial E}{\partial a_2}=\frac{dE}{dy}\frac{\partial y}{\partial z_2}\frac{\partial z_2}{\partial a_2}=(y-Y)*w_1*f(a_2)' a2E=dydEz2ya2z2=(yY)w1f(a2)

于是可以算出所有待求偏导数:
∂ E ∂ b = ∂ E ∂ y ∂ y ∂ b = ( y − Y ) ∗ 1 \frac{\partial E}{\partial b}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial b}=(y-Y)*1 bE=yEby=(yY)1

∂ E ∂ w 1 = ∂ E ∂ y ∂ y ∂ w 1 = ( y − Y ) ∗ z 1 \frac{\partial E}{\partial w_1}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial w_1}=(y-Y)*z_1 w1E=yEw1y=(yY)z1

∂ E ∂ w 2 = ∂ E ∂ y ∂ y ∂ w 2 = ( y − Y ) ∗ z 2 \frac{\partial E}{\partial w_2}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial w_2}=(y-Y)*z_2 w2E=yEw2y=(yY)z2

∂ E ∂ w 11 = ∂ E ∂ y ∂ y ∂ z 1 ∂ z 1 ∂ a 1 ∂ a 1 ∂ w 11 = ( y − Y ) ∗ w 1 ∗ f ( a 1 ) ′ ∗ x 1 \frac{\partial E}{\partial w_{11}}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial z_1}\frac{\partial z_1}{\partial a_1}\frac{\partial a_1}{\partial w_{11}}=(y-Y)*w_1*f(a_1)'*x_1 w11E=yEz1ya1z1w11a1=(yY)w1f(a1)x1

∂ E ∂ w 12 = ∂ E ∂ y ∂ y ∂ z 1 ∂ z 1 ∂ a 1 ∂ a 1 ∂ w 12 = ( y − Y ) ∗ w 1 ∗ f ( a 1 ) ′ ∗ x 1 \frac{\partial E}{\partial w_{12}}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial z_1}\frac{\partial z_1}{\partial a_1}\frac{\partial a_1}{\partial w_{12}}=(y-Y)*w_1*f(a_1)'*x_1 w12E=yEz1ya1z1w12a1=(yY)w1f(a1)x1

∂ E ∂ b 1 = ∂ E ∂ y ∂ y ∂ z 1 ∂ z 1 ∂ a 1 ∂ a 1 ∂ b 1 = ( y − Y ) ∗ w 1 ∗ f ( a 1 ) ′ ∗ 1 \frac{\partial E}{\partial b_1}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial z_1}\frac{\partial z_1}{\partial a_1}\frac{\partial a_1}{\partial b_1}=(y-Y)*w_1*f(a_1)'*1 b1E=yEz1ya1z1b1a1=(yY)w1f(a1)1

∂ E ∂ w 21 = ∂ E ∂ y ∂ y ∂ z 1 ∂ z 1 ∂ a 1 ∂ a 1 ∂ w 21 = ( y − Y ) ∗ w 1 ∗ f ( a 1 ) ′ ∗ x 2 \frac{\partial E}{\partial w_{21}}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial z_1}\frac{\partial z_1}{\partial a_1}\frac{\partial a_1}{\partial w_{21}}=(y-Y)*w_1*f(a_1)'*x_2 w21E=yEz1ya1z1w21a1=(yY)w1f(a1)x2

∂ E ∂ w 22 = ∂ E ∂ y ∂ y ∂ z 2 ∂ z 2 ∂ a 2 ∂ a 2 ∂ w 22 = ( y − Y ) ∗ w 2 ∗ f ( a 2 ) ′ ∗ x 2 \frac{\partial E}{\partial w_{22}}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial z_2}\frac{\partial z_2}{\partial a_2}\frac{\partial a_2}{\partial w_{22}}=(y-Y)*w_2*f(a_2)'*x_2 w22E=yEz2ya2z2w22a2=(yY)w2f(a2)x2

∂ E ∂ b 2 = ∂ E ∂ y ∂ y ∂ z 2 ∂ z 2 ∂ a 2 ∂ a 2 ∂ b 2 = ( y − Y ) ∗ w 1 ∗ f ( a 2 ) ′ ∗ 1 \frac{\partial E}{\partial b_2}=\frac{\partial E}{\partial y}\frac{\partial y}{\partial z_2}\frac{\partial z_2}{\partial a_2}\frac{\partial a_2}{\partial b_2}=(y-Y)*w_1*f(a_2)'*1 b2E=yEz2ya2z2b2a2=(yY)w1f(a2)1

求出偏导数之后,进行迭代就完事了。

上面显示了一个简单的三层神经网络的前向传播与后向传播的公式推导,一般进行学习的时候,会把一个batch的数据往学习器里送,先进行一次前向传播,再进行一次后向传播,当训练完所有训练集,称之为一个epoch。有机会给大家推导一下一般形式的三层BP神经网络~

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

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

相关文章

BP神经网络和CNN公式推导

CNN理论基础 CNN基本结构 图一 CNN基本结构 CNN卷积神经网络的构成,主要由输入层,卷积层,池化层,全连接层,输出层等。 (1)输入层:计算机将输入层理解为若干矩阵。在数据输入前&am…

计算机视觉 | 面试题:12、手动推导反向传播公式BP

问题 现在才意识到,卷积神经网络在不同的层上的反向传播的计算公式不一样,之前一直按照全连接层的那种简单反向传播去理解了。 全连接层反向传播 在数据表示上,将全连接神经网络的每一层神经元都表示为一个列向量。每一层的神经元,会将上一层神经元的输出作为输入,通过乘…

Bp算法公式推导推导-详解

前言 学习深度学习我们应该从Bp开始,一下是学习路径 如果我们把深度学习比喻一棵大树,Bp相当于根,LeNet相当于茎,GAN,RNN,CNN相当于树叶. Bp 神经网络的简单理解 bp是 Back Propagation 的简写 ,意思是反向传播。而神经网络,听着高大上,其实…

人工神经网络推理机制,bp神经网络公式推导

Recurrent network 的backpropagation公式 怎么样推导出来 反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法。 其主要思想是:&#xff08…

BP神经网络理解及公式推导

BP神经网络理解及公式推导 __508任务 仅个人学习记录使用,可能有误 一、人工神经网络 人工神经网络(ANN)是一种旨在模仿人脑结构及其功能的由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算机系统,该系统靠其状态对…

特斯拉面试,工控经典PLC题目:一键启动功能实现解法分析,少个坑,给自己多个机会

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、问题分析:二、模拟运行三、还有没有更简单的 前言 PLC 面试经典题目,一键启动功能:单个按钮按下一次控制灯亮起&#x…

使用调色板修改png图片

这个算法是参考一位高人的文章,直接读取并修改png格式图片的调色板,然后生成新的调色板替代原来的。
这样可以实现游戏中常见的变色效果,可以解决游戏容量有限,不能存放太多精灵图片的问题。 具体过程其实并不复杂,大…

android图像处理系列之三--图片色调饱和度、色相、亮度处理

原图: 处理后: 下面贴代码: 一、图片处理层: package com.jacp.tone.view;import java.util.ArrayList;import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.gra…

图片调色学习

色相环 色相混合正红(0)正黄(60),透明度为(50%)即红黄等比例混合橙色(30) (060)/230 真实调整透明度混合出并不一定为两者均值的色相,需要选择不同的混合方法…

图片颜色调节

云区 粉色云彩: 粉色云彩: 打开星图,清新滤镜马卡龙, 调节打开智能优化, 降低光感-100(根据图片调)、 色温最高、 色调最高, 增加结构让云更清晰, 增加饱和度。 晚霞&a…

excel如何快速将英文表格翻译为中文表格

1.打开excel,如下图想要快速将英文表格翻译为中 2.首先我们全选要翻译的表格区域单元格,接着点击【DIY工具箱】 ​ 3.点击【翻译】,选择【有道翻译】 4.接着鼠标点击【开始】 5.最后点击【确定】即可 6.完成效果如下图

CV大模型应用:Grounded-Segment-Anything实现目标分割、检测与风格迁移

Grounded-Segment-Anything实现目标分割、检测与风格迁移 文章目录 Grounded-Segment-Anything实现目标分割、检测与风格迁移一、Segment-Anything介绍二、Grounded-Segment-Anything1、简介2、测试 一、Segment-Anything介绍 代码链接:https://github.com/faceboo…

计算机视觉的应用6-利用VGG模型做毕加索风格图像迁移

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用5-利用VGG模型做毕加索风格图像迁移,本文将利用VGG模型实现毕加索风格图像迁移的方法。首先,我们将简要说明图像风格迁移的原理,然后使用PyTorch框架&#xff0c…

如何让ChatGPT帮我们提高开发效率

3 天前 ChatGPT云炬学长 ​关注 ChatGPT非常可怕!才不到短短的几个月时间有上亿用户。 火爆程度以至于官方都不得不暂停plus用户的升级,以缓解压力。 ChatGPT能够发展那么快,确实是因为他真的很强大! 能帮我们做ppt、帮我们做…

《联众》并购案细节公布,海虹海外公司浮出水面(ZT)

《联众》一夜身价暴增到2亿美金,《海虹>以及联众创始人成功套现1亿美金!这是中韩国际资本合作的典范?还是海外资本的大举进攻的信号?或者就是互联网第二次井喷的前奏?在历史给予答案之前,让我们理顺并购…

微信授权登录:移动端[unionid](一)

专栏简介 💒个人主页 📄本栏目录 📖心灵鸡汤📖 生活中其实没有绝境,绝境在于你自己的心没有打开。 ✍相关博文✍ 微信分享开发:准备工作微信PC端扫码登录 如果你有…

第三方对接-微信登陆对接

对接第三方之微信登陆 由于目前市面上社交软件的使用排行来看,基本上微信一马当先。因此在大多数应用上都会内置微信登陆的场景,这时候我们就非常有必要熟悉微信的登录流程。 微信登陆 微信官方开发文档说明目前移动应用上微信登录仅支持原生登陆方式…

对三大数学软件 Mathematica 、Maple 、MATLAB 的小测试比较

今天一时兴起,突然想试试几个数学软件的功能,就测试了一个不定积分,看看哪个算得最好,最简洁。 计算: 以下计算结果我都一一验算了。 1).先在Mathematica(我用的是在线的wolframalpha)中计算,结…

【计算机图形学(译)】 二、各种各样的数学

【计算机图形学(译)】 二、各种各样的数学 2 各种各样的数学 Miscellaneous Math2.1 集合和映射 Sets and Mapping2.1.1 反向映射 Inverse Mappings2.1.2 区间 Intervalsoft2.1.3 对数 Logarithms 2.2 解二次方程 Solving Quadratic Equations2.3 三角学 Trigonomet…

和托托一起学计算机图形学(一)-初识计算机图形学

文章目录 初识计算机图形学一、计算机科学与视觉信息处理二、计算机图形学的应用三、总结 数字图像基础一、像素二、RGB和CMY颜色模型三、颜色编码四、查色表五、图像文件六、总结 初识计算机图形学 一、计算机科学与视觉信息处理 计算机图形学:建模(建…