神经网络的前向处理
神经网络的前向处理,即实现从输入信号到输出信号的(前向)处理过程
矩阵乘法
矩阵( matrix ): 矩阵是一个二维数组,其中的每一个元素被两个索引(而非一个)所确定。
[
A
1
,
1
A
1
,
2
A
2
,
1
A
2
,
2
]
.
\begin{bmatrix}A_{1,1}&A_{1,2}\\\\A_{2,1}&A_{2,2}\end{bmatrix}.
⎣⎡A1,1A2,1A1,2A2,2⎦⎤.
矩阵乘法是矩阵运算中最重要的操作之一。两个矩阵
A
A
A和
B
B
B的矩阵乘积是第三个矩阵
C
C
C。其中,矩阵
A
A
A的列数必须和矩阵
B
B
B的行数相等。如果矩阵
A
A
A的形状是
m
×
n
m\times n
m×n,矩阵
B
B
B的形状是
n
×
p
n\times p
n×p,那么矩阵
C
C
C的形状是
m
×
p
m\times p
m×p。我们可以通过将两个或多个矩阵并列放置以书写矩阵乘法,例如
C
=
A
B
.
C=AB.
C=AB.
具体地,该乘法操作定义为
C
i
,
j
=
∑
k
A
i
,
k
B
k
,
j
.
C_{i,j}=\sum_kA_{i,k}B_{k,j}.
Ci,j=k∑Ai,kBk,j.
神经网络的内积
如图所示,对于权重符号 w 1 , 2 ( 1 ) w^{(1)}_{1,2} w1,2(1)中,上标表示权重的层号,下标表示前一层第二个神经元与下一层第一个神经元之间的权重
上图是一个三层神经网络的模型,神经元间的信号传递通过上一层神经元的输入值与对应权重相乘实现,表达式为
a
1
(
1
)
=
w
11
(
1
)
x
1
+
w
12
(
1
)
x
2
+
b
1
(
1
)
a_1^{(1)}=w_{11}^{(1)}x_1+w_{12}^{(1)}x_2+b_1^{(1)}
a1(1)=w11(1)x1+w12(1)x2+b1(1)
同理
a
2
(
1
)
=
w
21
(
1
)
x
1
+
w
22
(
1
)
x
2
+
b
2
(
1
)
a_2^{(1)}=w_{21}^{(1)}x_1+w_{22}^{(1)}x_2+b_2^{(1)}
a2(1)=w21(1)x1+w22(1)x2+b2(1)
a
3
(
1
)
=
w
31
(
1
)
x
1
+
w
32
(
1
)
x
2
+
b
3
(
1
)
a_3^{(1)}=w_{31}^{(1)}x_1+w_{32}^{(1)}x_2+b_3^{(1)}
a3(1)=w31(1)x1+w32(1)x2+b3(1)
将上述方程组改写为矩阵形式
令
A
=
[
a
1
(
1
)
a
2
(
1
)
a
3
(
1
)
]
A = \begin{bmatrix} a_1^{(1)} & a_2^{(1)} & a_3^{(1)} \end{bmatrix}
A=[a1(1)a2(1)a3(1)]
W = [ w 11 ( 1 ) w 21 ( 1 ) w 31 ( 1 ) w 12 ( 1 ) w 22 ( 1 ) w 32 ( 1 ) ] W = \begin{bmatrix} w_{11}^{(1)}& w_{21}^{(1)}& w_{31}^{(1)} \\ w_{12}^{(1)}& w_{22}^{(1)}& w_{32}^{(1)} \end{bmatrix} W=[w11(1)w12(1)w21(1)w22(1)w31(1)w32(1)]
X = [ x 1 x 2 ] X = \begin{bmatrix} x_1 & x_2 \end{bmatrix} X=[x1x2]
B = [ b 1 b 2 b 3 ] B=\begin{bmatrix} b_1 & b_2 & b_3 \end{bmatrix} B=[b1b2b3]
根据矩阵乘法法则可以得知
A
=
X
W
+
B
A = XW + B
A=XW+B
信号传递流程
信号在神经元间经过权重和偏置的加权运算后,作为下一层神经元的输入信号,经过激活函数的计算后作为最终到达下一层神经元的信号值,继续进行上述操作直至到达输出层经过Softmax函数输出(或者直接输出)。