BP神经网络—从推导到实现

本文深入探讨BP神经网络的结构与原理,包括神经网络基础知识、前向传播、反向传播以及BP算法的实施步骤。通过Python编程实现神经网络,详细解释激活函数、前向传播模型设定、反向传播权重更新,并推荐相关参考文献。
摘要由CSDN通过智能技术生成

目录

一、BP神经网络结构与原理

1  神经网络

1.1 神经网络的基本知识

1.2 神经网络的工作过程

 2 前向传播

 3 反向传播

 4 BP算法原理及实施步骤

4.1  算法原理

4.2  实施步骤

二、实例编程实现(python语言)

三、推荐参考文献


一、BP神经网络结构与原理

1  神经网络

 

1.1 神经网络的基本知识

神经网络结构,总体上由三部分组成:输入层、隐藏层(为方便起见,图中给出一层,实际中可以有多层)和输出层。神经网络结构如下图所示(放两个图,方便理解):

说明:对于每一层,都是由若干个单元(神经元)组成。相邻两层的神经元之间是全连接的,但是同一层内,各神经元之间无连接。现在对各参数进行说明:表示输入一个样本后的实际输出。

1.2 神经网络的工作过程

从输入层开始输入样本数据,依靠线性组合,得到与输入层相邻层的各个神经元的值,然后用当前层作为输入,作用于下一层,依次进行,直到到达输出层,得到最终的期望输出。(工作过程可见下图:)

 

注意:如果仅仅进行线性变换,最终得到的输出结果仅仅是输入的线性表达。这显然不能满足我们的需求(我们需要得到输入的一个非线性表达),因此,通常在每个神经元进行线性组合之后,再经过一个激励函数,激励函的结果作为对应神经元的值。(激励函数的选择有很多种,可以自行选择) 

 2 前向传播

前向传播的思想比较简单:
举个例子,假设上一层结点i,j,k,…等一些结点与本层的结点w有连接,那么结点w的值怎么算呢?就是通过上一层的i,j,k等结点以及对应的连接权值进行加权和运算,最终结果再加上一个偏置项(图中为了简单省略了),最后在通过一个非线性函数(即激活函数),如ReLu,sigmoid等函数,最后得到的结果就是本层结点w的输出。
最终不断的通过这种方法一层层的运算,得到输出层结果。

!!对于前向传播来说,不管维度多高,其过程都可以用如下公式表示:
a 2 = σ ( z 2 ) = σ ( a 1 ∗ W 2 + b 2 ) a^2 = \sigma(z^2) = \sigma(a^1 * W^2 + b^2)a2=σ(z2)=σ(a1∗W2+b2)

其中,上标代表层数,星号表示卷积,b表示偏置项bias,σ \sigmaσ表示激活函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值