MENU

Computing a Neural Network's output

April 6, 2019 • Read: 386 • Deep Learning

接下来我们开始详细推导神经网络的计算过程。回顾一下,我们前面讲过两层神经网络可以看成是逻辑回归再重复计算一次。如下图所示,逻辑回归的正向计算可以分解成计算$z$和$a$的两部分:

$$ z=w^Tx+b \\ a = \sigma(z) $$


对于两层神经网络,从输入层到隐藏层对应一次逻辑回归运算;从隐藏层到输出层对应一次逻辑回归运算。每层计算时,要注意对应的上标和下标,一般我们记上标方括号表示layer,下标表示第几个神经元。例如$a_i^{[l]}$表示第$l$层的第$i$个神经元。注意,$i$从1开始,$l$从0开始

下面,我们将从输入层到输出层的计算公式列出来:

$$ z_1^{[1]}=w_1^{[1]T}x+b_1^{[1]},\ a_1^{[1]}=\sigma(z_1^{[1]}) \\ z_2^{[1]}=w_2^{[1]T}x+b_2^{[1]},\ a_2^{[1]}=\sigma(z_2^{[1]}) \\ z_3^{[1]}=w_3^{[1]T}x+b_3^{[1]},\ a_3^{[1]}=\sigma(z_3^{[1]}) \\ z_4^{[1]}=w_4^{[1]T}x+b_4^{[1]},\ a_4^{[1]}=\sigma(z_4^{[1]}) $$

然后,从隐藏层到输出层的计算公式为:

$$ z_1^{[2]}=w_1^{[2]T}a^{[1]}+b^{[1]},\ a_1^{[2]}=\sigma(z_1^{[2]}) $$

其中$a^{[1]}$为:

$$ a^{[1]} = \left[ \begin{array}{ccc} a^{[1]}_{1}\\ a^{[1]}_{2}\\ a^{[1]}_{3}\\ a^{[1]}_{4} \end{array} \right] $$

为了提高程序运算速度,我们引入向量化和矩阵运算的思想,将上述表达式转换成矩阵运算的形式:

Archives Tip
QR Code for this page
Tipping QR Code