目录
一、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σ表示激活函数。