我对BPNN的一些浅见

我们知道,在任何机器学习模型中,都会有一个代价函数的概念。当训练样本一定时,这个代价函数实际上是一个自变量为模型参数,因变量为代价大小的函数。那么我们训练一个机器学习模型的目的就是,通过改变模型参数,来最小化模型的代价。那么问题来了,以什么样的方式来改变模型参数?一个很直观的方法是令模型的参数在其梯度方向上改变(关于梯度与函数大小的关系大家可以参考高等数学相应章节)。所以切入点是要求每个参数的偏导数。
那么,我们这里依照梯度改变的思想,对BPNN的参数优化过程做一个推导。在做推导之前,先明确一个规定,一层是指本层神经元和由本层神经元所辐射出的连接权重:
假设我们在这里要求代价函数J相对于第l-1层中的参数Wij的偏导数(第l-1层的第i个神经元与第l层的第j个神经元连接权重)。很显然,有下式。其中,我们把等号右边的第一项称为神经元j的“残差”(这个残差的作用实际上是衡量了它对于输入连接的敏感程度,大家知道,偏导数一般是衡量自变量中的分量对与函数因变量影响的大小程度)。因此可以看出,其实我们需要求得l层中第j个神经元的残差,和该神经元的输入相对于欲求得连接权重的导数。
对于上式中右边第一项,很容易求得(假设神经元激活函数为sigmoid函数)为l-1层第i个神经元的激活值:
而对于右边项,我们这里需要引入链式求导法则,从最后一层的输出层,一直往前进行求导。,假设总的层数为nl层。举例来讲,我们这里要求nl-2层中第i个神经元处的残差,然后再依次看它与第nl-1层和nl层中的残差有什么关系:
显然,如果我们把上面第三个式子写成残差的表达形式的话,可以得到下式:
当我们把上式的表达代入第nl-1层中时,可以得到nl-1层中第p个神经元输入的残差可以表达为:
再将其代入第nl-2层,可以得到
通过三个式子的关系,我们可以知道,一个特定层中的神经元的残差都可以从最后一层开始求得,而在逐层求取残差时,可以依照下式进行计算:
很显然,只要我们能够知道当前层欲求得权重所连接的本层的激活值和后一层的残差,就可以求得偏导数。
很显然,要求得指定层总某一神经元i与后一层第j个神经元连接权重的偏导数,只需要求得本层中神经元激活值和后一层中被连接神经元的残差即可。
今天推导到这里,后续还会有新的内容。

import BPNN 在引用\[1\]和引用\[2\]中,都没有提到import BPNN这个模块。所以无法确定BPNN模块的具体来源和用途。但是根据引用\[3\]中的描述,BPNN是指反向传播神经网络(Backpropagation Neural Network),是一种常用的预测方法。它由输入层、隐层和输出层三层组成,其中隐层在输入层和输出层之间传递着重要的信息。BPNN可以用于解决分类和回归问题,并且可以对复杂的功能进行建模。它主要由两个过程组成:正向信息传播和误差反向传播。 所以,import BPNN可能是为了引入反向传播神经网络相关的模块,以便在代码中使用BPNN算法进行预测或训练。 #### 引用[.reference_title] - *1* *2* [Python(pybrain模块)搭建神经网络BPNN](https://blog.csdn.net/qq_42394743/article/details/82943890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [AI学习——感知机和BPNN算法](https://blog.csdn.net/L_superhero/article/details/123769071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值