BP神经网络原理(详细推导)

Posted Sun-sky

tags:

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


前言

BP神经网络(Back propagation neural network)全称为多层前馈神经网络,其用于解决非线性问题。整个神经网络的步骤为:输入层接收外界的输入,隐藏层和输出层的神经元对输入的特征或信号通过权重矩阵进行加工,最终输出结果。过程中最重要的是获得加工所要的权重,本质上说神经网络的学习过程就是在学习神经元与神经元之间连接的权重。


提示:以下是本篇文章正文内容,下面案例可供参考

第一步:正向传播激活神经网络

A.变量说明

关于BP神经网络的正向传播,我们以上图为例对变量进行一下说明:

  • x i ( i n ) , a i ( i n ) x^{(in)}_i ,a^{(in)}_i xi(in)ai(in) : 二者均表示输入层的第 i i i个输入单元(这样做是为了和后面的进行统一,二者相等的原因是输入层的神经元不起激活作用);
  • w m , h ( h ) w^{(h)}_{m,h} wm,h(h) :输入层的第 m m m个单元与隐藏层的的第 h h h个单元之间的权重(⚠️权重的标识很重要,而且不同的参考书用的也不同,读者一定要弄清楚)
  • z i ( h ) z^{(h)}_i zi(h) : 隐藏层的第 i i i的净输入单元, z i ( h ) = w 1 , i ( h ) a 1 ( i n ) + . . . + w m , i ( h ) a m ( i n ) z^{(h)}_i =w^{(h)}_{1,i}a^{(in)}_1+ ...+w^{(h)}_{m,i}a^{(in)}_m zi(h)=w1,i(h)a1(in)+...+wm,i(h)am(in)
  • a i ( h ) a^{(h)}_i ai(h) : 隐藏层的第 i i i的隐藏单元, a i ( h ) = ϕ ( z i ( h ) ) a^{(h)}_i = \\phi (z^{(h)}_i) ai(h)=ϕ(zi(h))
  • w h , t ( o ) w^{(o)}_{h,t} wh,t(o) :隐藏层的第 h h h个单元与输出层的的第 t t t个单元之间的权重(⚠️权重的标识很重要,而且不同的参考书用的也不同,读者一定要弄清楚)
  • z i ( o u t ) z^{(out)}_i zi(out) : 输出层的第 i i i的净输入单元, z i ( o u t ) = w 1 , i ( o u t ) a 1 ( h ) + . . . + w h , i ( o u t ) a h ( h ) z^{(out)}_i =w^{(out)}_{1,i}a^{(h)}_1+ ...+w^{(out)}_{h,i}a^{(h)}_h zi(out)=w1,i(out)a1(h)+...+wh,i(out)ah(h)
  • a i ( o u t ) a^{(out)}_i ai(out) : 输出层的第 i i i的输出单元, a i ( o u t ) = ϕ ( z i ( o u t ) ) a^{(out)}_i = \\phi (z^{(out)}_i) ai(out)=ϕ(zi(out))
  • y [ i ] , a [ i ] y^{[i]},a^{[i]} y[i],a[i]: 分别代表一组数据的实际结果中的第 i i i个(上角标视为索引),经过神经网络输出的第 i i i个;
  • 关于激活函数,我们采用 sigmoid 函数 ϕ ( x ) = 1 1 + e − x \\phi (x) = \\cfrac{1}{1 + e^{-x}} ϕ(x)=1+ex1 ;

B.正向传播

熟悉完上面的量的意义之后,我们通过线性代数的知识导出BP神经网络的正向传播过程:

首先,输入层的各个单元 A ( i n ) \\bm A^{(in)} A(in)(不妨设阶数为:n*m )和通过指向隐藏层的权重矩阵 W ( h ) \\bm W^{(h)} W(h)(阶数:m * h)做点乘,得到隐藏层的净输入向量 Z ( h ) \\bm Z^{(h)} Z(h)(阶数: n * h);

其次,将隐藏层的净输入向量进行激活,得到 A ( h ) \\bm A^{(h)} A(h) A ( h ) = ϕ ( Z ( h ) ) \\bm A^{(h)} = \\phi(\\bm Z^{(h)}) A(h)=ϕZ(h)(阶数:n * h);

再其次: a ( h ) \\bm a^{(h)} a(h)通过指向输出层的权重矩阵 W ( o u t ) \\bm W^{(out)} W(out)(阶数:h * t),得到输出层的净输入向量 Z ( o u t ) \\bm Z^{(out)} Z(out)(n * t);

最后,将输出层的净输入向量进行激活,得到得到 A ( o u t ) \\bm A^{(out)} A(out) A ( o u t ) = ϕ ( Z ( o u t ) \\bm A^{(out)} = \\phi(\\bm Z^{(out}) A(out)=ϕZ(out(阶数:n * t),即我们的输出结果。

这其中涉及的矩阵运算罗列如下:

  1. Z ( h ) = A ( i n ) W ( h ) \\bm Z^{(h)} = \\bm A^{(in)}\\bm W^{(h)} Z(h)=A(in)W(h);
  2. Z ( o u t ) =

    以上是关于BP神经网络原理(详细推导)的主要内容,如果未能解决你的问题,请参考以下文章

    BP算法基本原理推导----《机器学习》笔记

    BP算法的原理解释和推导

    手推机器学习 吴恩达 神经网络BP反向传播矩阵推导(上篇)

    BP算法的原理解释和推导

    基于BP神经网络的草莓等级识别,BP神经网络的详细原理,神经网络1000案例之7

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