HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    神经网络反向传播例题(神经网络反向传播例题及解析)

    发布时间:2023-04-14 14:22:22     稿源: 创意岭    阅读: 90        

    大家好!今天让创意岭的小编来大家介绍下关于神经网络反向传播例题的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    神经网络反向传播例题(神经网络反向传播例题及解析)

    一、如何理解神经网络里面的反向传播算法

    反向传播算法(BP算法)主要是用于最常见的一类神经网络,叫多层前向神经网络,本质可以看作是一个general nonlinear estimator,即输入x_1 ... x_n 输出y,视图找到一个关系 y=f(x_1 ... x_n) (在这里f的实现方式就是神经网络)来近似已知数据。为了得到f中的未知参数的最优估计值,一般会采用最小化误差的准则,而最通常的做法就是梯度下降,到此为止都没问题,把大家困住了很多年的就是多层神经网络无法得到显式表达的梯度下降算法!

    BP算法实际上是一种近似的最优解决方案,背后的原理仍然是梯度下降,但为了解决上述困难,其方案是将多层转变为一层接一层的优化:只优化一层的参数是可以得到显式梯度下降表达式的;而顺序呢必须反过来才能保证可工作——由输出层开始优化前一层的参数,然后优化再前一层……跑一遍下来,那所有的参数都优化过一次了。但是为什么说是近似最优呢,因为数学上除了很特殊的结构,step-by-step的优化结果并不等于整体优化的结果!不过,好歹现在能工作了,不是吗?至于怎么再改进(已经很多改进成果了),或者采用其他算法(例如智能优化算法等所谓的全局优化算法,就算是没有BP这个近似梯度下降也只是局部最优的优化算法)那就是新的研究课题了。

    二、如何理解CNN神经网络里的反向传播backpropagation,bp算法

    见附件,一个基本的用java编写的BP网络代码。BP(BackPropagation)神经网络是86年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hiddenlayer)和输出层(outputlayer)。

    三、卷积神经网络前向传播和BP后向传播计算步骤

     1.从DNN前向传播和BP后向传播说起

     2.CNN前向传播和BP后向传播

    注:为减小书写、计算量,文中推导都忽略了偏置b。

      之前所学的DNN是一个全连接的网络,采用BP算法来计算各参数的梯度,只需要采用链式法则将误差求导传递到每个神经元的每个参数上即可。特别是,将数据向量化后,求解梯度过程较为简单。但对于CNN来说,CNN涉及到了卷积和池化,在进行后向传播计算时,仅采用矩阵乘法、元素级乘法(对应元素相乘)根本无法进行传递计算。那么CNN的BP算法是如何实现的呢?首先从CNN的BP算法说起。

       DNN符号约定:

      ①小写字母代表一个值,大写字母代表向量或矩阵

      ②输入数据维度为(n,m)表示n个特征,m个样本

      ③上标[l]:第l层,如A [l] ,表示第l层激活值

      ④下标n:某一层第n个神经元,如果是输入数据X,则代表第n个特征,如a [l] 1 ,表示第l层第1个激活值

      ⑤w [l] ij :表示l层参数,连接了l层第i个神经元和第l-1层第j个神经元

      ⑥向量化导数符号:dZ即代表最终误差对Z的梯度

      ⑦δ [l] 即dZ [l] ,两个是一个东西,只是描述不一样

      卷积层前向传播如下图所示(步长为1), l-1 层的输出,高=3、宽=3、通道数=3, shape=(3,3,3) ; l 层一共有两个卷积核,每个卷积核 shape=(2,2,3) ; l 层输出 shape=(2,2,2) 。

      ① l-1 层的通道数与 l 层卷积核通道数相同,所以在进行卷积时,是同一个卷积核的各通道对应 l-1 层的通道输出A去卷积;②卷积后,在通道维度上进行叠加,一个卷积核最后只输出一个通道的数据;③卷积核的数量决定了该层输出的通道数量,激活后维度不变。因此,维度变化为: (m,n_h_pre,n_w_pre,n_c_pre) → (f,f,n_c_pre,n_c) → (m,n_h,n_w,n_c)

      根据DNN的经验,要求 dW ,那么需要先求出 dZ 、 dA ,在此假设已知当前 l 层 dZ 。

       (1)求dA

      由于池化向前传播时,会使得h、w两个维度缩减,丢失掉部分信息,那么在后向传播时,如何将尺寸小的矩阵还原到原来大小?一般,池化分为最大池化和平均池化,两种池化后向传播时处理的方式略有不同。

       (1)最大池化后向传播

      在此将池化当作一层,假设已知 l 层 dZ=dA (池化无激活函数,视激活后等于本身),求 l-1 层 dZ=dA ,下面对一个通道数据进行举例:

    卷积神经网络(CNN)反向传播算法

    CNN的反向传播

    Convolutional Neural Networks: Step by Step

    四、前向传播和反向传播

    在求出前向传播和反向传播前要先确定参数和输入输出符号的表达形式

    最普通的DNN就可以看做是一个多层感知机MLP,感知机的输出其实就是对输入的加权求和: ,再经过一个非线性激活函数

    首先来定义权值矩阵W,按照下图规则, 表示的是第3层第2个神经元和第2层第4个神经元之间连线(连线就代表权重,可以看成是 的省略写法)。那么为什么不写成 呢,形式上是允许的,但是如果这样写的话,第3层神经元的输入就要通过 来计算,而前者只需要计算 ,省略了矩阵转置的额外工作量。

    偏置项b的定义也是类似, 表示第2层第3个神经元的偏置。

    再定义 分别表示第i层第j个神经元的输出和输入,并假设 是我们选择的激活函数。

    对于第2层第1个节点的输出 有:

    对于第3层第1个节点的输出 有:

    一般化的,假设l-1层有m个神经元,对于 有:

    也就是第l层第j个神经元的输入为与它相连的上一层每个神经元的输出加权求和后加上该神经元对应的偏置,该神经元所做的工作只是把这个结果做一个非线性激活。

    当通过前向传播得到由任意一组随机参数W和b计算出的网络预测结果后,我们可以利用损失函数相对于每个参数的梯度来对他们进行修正。事实上神经网络的训练就是这样一个不停的前向-反向传播的过程,直到网络的预测能力达到我们的预期。

    假设选择最简单的均方误差和作为损失函数:

    下面就根据这个损失函数更新每一层的w,b

    根据前向传播的公式,输出层L的输出

    带入到损失函数中,有

    根据复合函数链式求导法则,L层参数 的梯度容易求得:

    显然,两式有一部分是重叠的,将这部分记做 ,

    这一规律同样适用在非输出层的隐藏层L-1,L-2,...l,...1,我们只需要求出损失函数相对l层非激活输出 的导数,再根据前向传播公式 便可以轻易的求得

    同样,根据链式求导法则,

    至此,问题的关键转化成如何求解 ,既然是反向传播,在求第l层参数时, 都是已知的,还是根据链式求导法则:

    显然,问题的关键在于求解 ,再根据前向传播公式,

    以上就是关于神经网络反向传播例题相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    全国神经科排行榜(全国神经科排名前10的医院)

    神经网络反向传播例题(神经网络反向传播例题及解析)

    图神经网络好发论文吗

    杭州银泰百货几点开门(杭州银泰百货几点开门)

    团队精神集体意识(团队精神集体意识包括)