这是一张神经网络图,我们命名一下这张图的各部分,我们有输入特征
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3竖向堆叠起来,这是神经网络的输入层,第二层是神经网络的隐藏层,最后一层只有一个节点,这一层是输出层,负责输出预测值
y
^
\hat{y}
y^。
在一个神经网络中,当使用监督学习训练它时,训练集包含了输入x还有目标输出y。
隐藏层的含义是,在训练集中,这些中间节点的真正数值是不知道的。在训练集中看不到他们的数值,可以看到输入值也可以看到输出值,但是隐藏层的值在训练集中是无法看到的。
之前我们用向量x表示输入特征,输入特征的数值还有另外一种表示方式,我们用 a [ 0 ] a^{[0]} a[0]表示,这个a也表示激活的意思,它意味着网络中不同层的值会传递给后面的层。输入层将x的值传递给隐藏层,,我们将输入层的激活值称为 a [ 0 ] a^{[0]} a[0]。
对于隐藏层,同样会产生一些激活值,将其表示为 a [ 1 ] a^{[1]} a[1],对于这一层的第一个节点,可以表示为 a 1 [ 1 ] a^{[1]}_1 a1[1],以此类推,一直到 a 4 [ 1 ] a^{[1]}_4 a4[1]。这里的 a [ 1 ] a^{[1]} a[1]是一个四维向量,它是一个 4 ∗ 1 4*1 4∗1的矩阵,或大小为4的列向量。
最后的输出层会产生某个数值 a [ 2 ] a^{[2]} a[2],是个实数。 y ^ \hat{y} y^对应的值就等于 a [ 2 ] a^{[2]} a[2]。所以这和逻辑回归类似,在逻辑回归中, y ^ = a \hat{y}=a y^=a。我们只有一个输出层,所以没有用带方括号的上标。但是在神经网络中,我们将使用这种方括号上标来明确地指出这些值是来自哪一层。
有趣的是,在约定俗成的符号中,我们所举的例子是所谓的双层神经网络,当我们计算网络的层数时,不计算输入层的原因是,隐藏层是第一层,输出层是第二层。在我们的符号约定中,我们将输入层称为第零层。所以在字面上可以说这是一个三层的神经网络,因为这里有输入层、隐藏层,还有输出层。但是一般的符号约定是一般忽略输入层,不把输入层作为一个标准的层。
最后我们要知道隐藏层和最后的输出层是带有参数的,隐藏层有两个相关的参数W和b,使用上标 w [ 1 ] , b [ 1 ] w^{[1]},b^{[1]} w[1],b[1]表示这些参数是与第一层这个隐藏层有关的,之后我们会看到w是一个 ( 4 ∗ 3 ) (4*3) (4∗3)的矩阵,而b在这个例子中是一个 ( 4 ∗ 1 ) (4*1) (4∗1)向量。同样,输出层也有对应的参数 w [ 2 ] , b [ 2 ] w^{[2]},b^{[2]} w[2],b[2]。从维数来看分别为 ( 1 ∗ 4 ) (1*4) (1∗4)和 ( 1 ∗ 1 ) (1*1) (1∗1), ( 1 ∗ 4 ) (1*4) (1∗4)是因为隐藏层有4个隐藏单元,而输出层只有一个单元。