人工智能神经网络反向传播问题

两层神经网络应用于二进制分类任务
z1=W1x(i)+b1
a1=LR(z1)
z2=W2a1+b2
W1 b1 W2 b2的图形形状是什么

W1:一个横向矩阵
b1:一个列向量
W2:一个横向矩阵
b2:一个列向量
以上回答来自ChatGPT

该回答引用ChatGPT
假设 $W_1$ 的形状为 $(n_1, m)$,$b_1$ 的形状为 $(n_1, 1)$,$W_2$ 的形状为 $(1, n_1)$,$b_2$ 的形状为 $(1, 1)$,其中 $m$ 为输入特征的维度,$n_1$ 为第一层神经元的数量。

则 $W_1$ 是一个 $n_1$ 行 $m$ 列的矩阵,$b_1$ 是一个 $n_1$ 行 1 列的向量,$W_2$ 是一个 1 行 $n_1$ 列的矩阵,$b_2$ 是一个 1 行 1 列的向量。

在神经网络的前向传播过程中,输入特征 $x(i)$ 经过第一层的加权和和激活函数后得到第一层的输出 $a1$,而第一层的输出 $a1$ 经过第二层的加权和和激活函数后得到神经网络的最终输出。

因此,$z_1$ 的形状是 $(n_1, 1)$,$a_1$ 的形状也是 $(n_1, 1)$;$z_2$ 的形状是 $(1, 1)$,$a_2$ 的形状也是 $(1, 1)$。

可以用下图表示神经网络中各个变量的形状和计算流程:

       x(i)    W1     z1     a1    W2     z2     a2
       ----    --     --     --    --     --     --
形状 | (m,1) (n1,m) (n1,1) (n1,1) (1,n1) (1,1) (1,1)

计算 |         z1= W1*x(i) + b1        |         z2= W2*a1 + b2        |
    |          a1= LR(z1)             |          a2= sigmoid(z2)      |


其中,LR 表示第一层的激活函数,可以是 ReLU、sigmoid、tanh 等函数;sigmoid 表示输出层的激活函数,常用于二分类任务中。

  • 首先,这里的神经网络有两层,一般被称为单隐藏层神经网络。

  • 对于每一个输入样本 x(i),神经网络会先将其输入到第一层,也就是输入层。在输入层,每个输入变量 x(i) 会与第一层的每个神经元相连,每个神经元会计算一定的加权和 z1,这个加权和可以理解为对输入的加权处理。

  • 在第一层神经元计算出加权和 z1 后,还需要进行激活函数的处理,得到激活值 a1。一般采用的是 sigmoid 或 ReLU 等激活函数。这个激活值可以理解为对加权和的非线性映射。

  • 接着,第一层的输出值 a1 将会输入到第二层,也就是输出层。在输出层,每个神经元与第一层的每个神经元相连,同样计算一定的加权和 z2,再通过激活函数得到输出结果。

  • W1 和 b1 是第一层神经元的参数,W2 和 b2 是第二层神经元的参数。这些参数是神经网络训练过程中不断调整的,以使得神经网络的输出结果最优。

在上面的两层神经网络中,$W1$ 是第一层的权重矩阵,$b1$ 是第一层的偏置向量,$W2$ 是第二层的权重矩阵,$b2$ 是第二层的偏置向量。这些参数的形状取决于输入和输出的维度。

  • 假设输入 $x$ 的维度是 $(n, 1)$,其中 $n$ 是输入特征的数量,输出 $y$ 是一个二进制值,即 $y \in {0, 1}$,则 $W1$ 的形状是 $(m, n)$,其中 $m$ 是第一层的神经元数量。$b1$ 的形状是 $(m, 1)$。$W2$ 的形状是 $(1, m)$,因为第二层只有一个神经元输出,$b2$ 的形状是 $(1, 1)$。