千家信息网

TensorFlow中的BP算法原理是什么

发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,TensorFlow中的BP算法原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.反向传播算法反向传播算法[1](Backpr
千家信息网最后更新 2024年11月15日TensorFlow中的BP算法原理是什么

TensorFlow中的BP算法原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

一.反向传播算法

反向传播算法[1](Backpropagation Algorithm,简称BP算法)是深度学习的重要思想基础,对于初学者来说也是必须要掌握的基础知识,在这一小节里,我们会较为详细的介绍这一重点知识。

我们使用一个如图1所示的神经网络,该图所示是一个三层神经网络,两层隐藏层和一层输出层,输入层有两个神经元,接收输入样本(x1,x2),为网络的输出。

图1 一个三层神经网络

二.前馈计算的过程

为了理解神经网络的运算过程,我们需要先搞清楚前馈计算,即数据沿着神经网络前向传播的计算过程,以图1所示的网络为例:

输入的样本为:

公式1

第一层网络的参数为:

公式2

第二层网络的参数为:

公式3

第三层网络的参数为:

公式4

·第一层隐藏层的计算

图2 计算第一层隐藏层

第一层隐藏层有三个神经元:neu1、neu2和neu3。该层的输入为:

公式5

以neu1神经元为例,则其输入为:

公式6

同理有:

公式7

公式8

假设我们选择函数f(x)作为该层的激活函数(图1中的激活函数都标了一个下标,一般情况下,同一层的激活函数都是一样的,不同层可以选择不同的激活函数),那么该层的输出为:

·第二层隐藏层的计算

图3 计算第二层隐藏层

第二层隐藏层有两个神经元:neu4和neu5。该层的输入为:

公式9

即第二层的输入是第一层的输出乘以第二层的权重,再加上第二层的偏置。因此得到neu4和neu5的输入分别为:

公式10

公式11

该层的输出分别为:

·输出层的计算

图4 计算输出层

输出层只有一个神经元:neu6。该层的输入为:

公式12

即:

公式13

因为该网络要解决的是一个二分类问题,所以输出层的激活函数也可以使用一个Sigmoid型函数,神经网络最后的输出为:

三.反向传播的计算

上一小节里我们已经了解了数据沿着神经网络前向传播的过程,这一节我们来介绍更重要的反向传播的计算过程。假设我们使用随机梯度下降的方式来学习神经网络的参数,损失函数定义为

其中y是该样本的真实类标。使用梯度下降进行参数的学习,我们必须计算出损失函数关于神经网络中各层参数(权重w和偏置b)的偏导数。

假设我们要对第k层隐藏层的

假设代表第k层神经元的输入,即

其中n^(k-1)为前一层神经元的输出,则根据链式法则有:

公式14

公式15

因此,我们只需要计算偏导数

·计算偏导数

前面说过,第k层神经元的输入为:,因此可以得到:

公式16

我们以1.1节中的简单神经网络为例,假设我们要计算第一层隐藏层的神经元关于权重矩阵的导数,则有:

公式17

·计算偏导数

因为偏置b是一个常数项,因此偏导数的计算也很简单:

公式18

依然以第一层隐藏层的神经元为例,则有:

公式19

·计算偏导数

根据第一节的前向计算,我们知道第k+1层的输入与第k层的输出之间的关系为:

公式20

公式21

公式22

公式23

下面是基于随机梯度下降更新参数的反向传播算法:

输入:


看完上述内容,你们掌握TensorFlow中的BP算法原理是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

公式 神经 网络 输入 输出 神经元 神经网络 函数 二层 参数 导数 传播 算法 激活 过程 权重 样本 梯度 问题 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 gis软件开发的公司 内网渗透查找数据库连接信息 云南创奥互联网科技有限公司 华为服务器硬盘台式机 校园网络安全的手抄报内容 怎么拦截本机发送到服务器的数据 杭州网络安全警察考试 榆次学校触摸签名软件开发公司 戴尔服务器加装usb 我国构建网络安全的必要性 服务器无线网络禁用了怎么办 移动什么软件开发 初学者服务器管理 莱阳微信小程序软件开发公司 中兴通讯有线软件开发 学手机软件开发有前景吗 mysql数据库的名字 网络安全答题提示系统错误 塔式服务器特点 维护网络安全常识学习 云众互联网科技有限公司做什么的 阿里巴巴开源数据库 数据库中外键约束怎么加 延边网络安全 三年级网络安全手抄报超简单 河北财务软件开发 武汉嵌入式软件开发推荐 自噬相关基因数据库 移动网络技术属计算机类吗 修改数据库密码如何修改
0