神经网络:BP神经网络

Posted 小白不白白_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络:BP神经网络相关的知识,希望对你有一定的参考价值。

西瓜书研读系列:
西瓜书研读——第三章 线性模型:一元线性回归
西瓜书研读——第三章 线性模型:多元线性回归
西瓜书研读——第三章 线性模型:线性几率回归(逻辑回归)
西瓜书研读——第三章 线性模型: 线性判别分析 LDA
西瓜书研读——第四章 决策树:ID3、C4.2、CSRT算法
西瓜书研读——第四章 决策树:剪枝、连续值、缺失值处理
西瓜书研读——第五章 神经网络:感知机与多层网络

5.3 误差逆传播算法(BP)

亦称反向传播算法、BP神经网络(Back Propagation)一般说的BP网络是指多层前馈神经网络。

给定训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) , x i ∈ R d , y i ∈ R l D=\\left\\\\left(\\boldsymbolx_1, \\boldsymboly_1\\right)\\right. , \\left.\\left(\\boldsymbolx_2, \\boldsymboly_2\\right), \\ldots,\\left(\\boldsymbolx_m, \\boldsymboly_m\\right)\\right\\, \\boldsymbolx_i \\in \\mathbbR^d, \\boldsymboly_i \\in \\mathbbR^l D=(x1,y1),(x2,y2),,(xm,ym),xiRd,yiRl 即输入示例由 d d d 个属性描述( x i x_i xi是d维的), 输出 l l l 维实值向量。

为便于讨论, 下图给出了一个拥有 d d d 个输入神经元、 l l l 个输出神经元、 q q q个隐层神经元的多层前馈网络结构

  • 输出层第 j j j个神经元的阈值用 θ j \\theta_j θj表示
  • 隐层第 h h h个神经元的阈值用 γ h \\gamma_h γh表示
  • 输入层第 i i i个神经元与隐层第 h h h 个神经元之间的连接权为 v i h v_i h vih,
  • 隐层第 h h h个神经元与输出层第 j 个神经元之间的连接权为 w h j w_h j whj .
  • 记隐层第 h h h个神经元接收到的输入为 α h = ∑ i = 1 d v i h x i \\alpha_h=\\sum_i=1^d v_i h x_i αh=i=1dvihxi
  • 输出层第 j j j个神经元接收到的输入为 β j = ∑ h = 1 q w h j b h \\beta_j=\\sum_h=1^q w_h j b_h βj=h=1qwhjbh, 其中 b h b_h bh为隐层第 h h h个神经元。
  • 网络中有 ( d + l + 1 ) q + l (d+l+1) q+l (d+l+1)q+l个参数需确定:输入层到隐层的 d × q d \\times q d×q 个权值、隐层到输出层的 q × l q \\times l q×l 个权值、 q q q个隐层神经元的阈值、 l l l 个输出层神经元的阈值,输入层没有功能神经元因此无阈值。

假设隐藏层和输出层神经元都使用 S i g m o i d Sigmoid Sigmoid函数。

给定一个训练样本 ( x k , y k ) \\left(\\boldsymbolx_k, \\boldsymboly_k\\right) (xk,yk), 假设模型输出为 y ^ k = ( y ^ 1 k , y ^ 2 k , … , y ^ l k ) \\hat\\boldsymboly_k=\\left(\\haty_1^k, \\haty_2^k, \\ldots, \\haty_l^k\\right) y^k=(y^1k,y^2k,,y^lk),
y ^ j k = f ( β j − θ j ) (5.3) \\haty_j^k=f(\\beta _j-\\theta _j) \\tag5.3 y^jk=f(βjθj)(5.3)
则均方误差为
E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 (5.4 ) E_k=\\frac12 \\sum_j=1^l\\left(\\haty_j^k-y_j^k\\right)^2 \\quad \\tag5.4 Ek=21j=1l(y^jkyjk)2(5.4 )
1 2 \\frac12 21只是为了求导更方便

算法流程

BP 是一个迭代学习算法, 在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计任意参数$ v$的更新估计式为
v ← v + Δ v (5.5) v \\leftarrow v+\\Delta v\\tag5.5 vv+Δv(5.5)

那么各个参数的更新公式为
w h j ← w h j + Δ w h j = w h j − η ∂ E k ∂

以上是关于神经网络:BP神经网络的主要内容,如果未能解决你的问题,请参考以下文章

bp神经网络matlab实现时,newff函数中的网络各层神经元的激活函数怎么选啊?

Matlab问题--如何用遗传算法优化BP神经网络?这篇文献(中文)是如何做的?

BP神经网络的梳理

BP神经网络的梳理

BP算法、BP神经网络、遗传算法、神经网络这四者之间的关系

bp神经网络算法介绍 bp神经网络算法简介