将一个进行科学计算的数学模型形象化为一个神经元,模仿人类大脑的工作原理,构成神经网络。多层神经网络一般包括一个输入层,若干隐藏层,一个输出层,每一层都会有若干神经元。隐藏层中进行着大量的运算,如同一个黑箱,“不管是什么数据,我都能给你算”。每个上一层的输出都是下一层的输入,这样便给特征附加了多样性,每层神经元不再都是处理完全相同的原始数据,而是经过上一层处理的不一样的数据。以一个最基本的含有1个隐藏层的神经网络为例,介绍多层神经网络工作原理。
1.前向传播算法(Forward Propagation)
n*1维列向量X为输入层,m*n维权重矩阵(即参数矩阵)θ与向量X作向量积后得到m*1维列向量z,z作为激活函数active function的自变量,得到g(z),其中,m为下一层神经网络的神经元个数,n为特征数。
一般要在每层的神经网络上添加一个偏差单位(bias unit)x0,并使之恒等于1。上图清楚地用下标表示了各θ在权重矩阵中的位置,矩阵第一行的4个θ为下一层第一个神经元所拥有的参数,第二行4个θ为下一层第二个神经元所拥有的参数,并以此类推。由此可以给列向量z的形成以直观理解,g(z)而非z便是神经元a的输出。第二层共有3个神经元,所以会输出含有3个g(z)的列向量,