1.1 单一样本表示
我们首先来看单一样本的表示,假设输入的样本为
x
x
x,那么我们可以将其表示为一个向量,即
x
=
[
x
1
,
x
2
,
⋯
,
x
n
]
T
x = [x_1, x_2, \cdots, x_n]^T
x=[x1,x2,⋯,xn]T,其中
x
i
x_i
xi表示第
i
i
i个特征,
n
n
n表示特征的个数。输出我们可以表示为
y
y
y,即
y
=
[
y
1
,
y
2
,
⋯
,
y
m
]
T
y = [y_1, y_2, \cdots, y_m]^T
y=[y1,y2,⋯,ym]T,其中
y
i
y_i
yi表示第
i
i
i个输出,
m
m
m表示输出的个数。那么,线性模型可以表示为:
y
=
W
x
+
b
\begin{equation} y = Wx + b \end{equation}
y=Wx+b
其中,
W
W
W表示权重,是一个
m
×
n
m \times n
m×n的矩阵,
b
b
b表示偏置,是一个
m
×
1
m \times 1
m×1的向量。在上式中,我们将样本特征向量
x
x
x乘以权值矩阵
W
W
W,也就是对
x
x
x进行了拉伸变换,然后再加上了一个偏置
b
b
b,也就是做了一个平移变换。最后得到了一个输出
y
y
y,那么
y
y
y就是
x
x
x经过变换后的表示。由于拉伸和平移都是线性变换,所以
y
y
y是
x
x
x的线性变换。这就是线性模型的基本思想。
如果想要对
x
x
x进行更加丰富的表示,我们可以在线性模型的基础上加入非线性变换,这样我们就可以先把
x
x
x在线性空间中进行一次映射,再进行非线性映射,最后得到一个新的表示。这样的模型称为非线性模型。假设我们的非线性模型为
f
(
x
)
f(x)
f(x),那么我们可以将其表示为:
a
=
W
x
+
b
\begin{equation} a = Wx + b \end{equation}
a=Wx+b
y
=
f
(
a
)
\begin{equation} y=f(a) \end{equation}
y=f(a)
对于上面的模型,我们应该怎么去确定权重
W
W
W和偏置
b
b
b呢?考虑回归问题,输入和输出都是已知的,我们需要确定参数
W
W
W和
b
b
b,使得输入映射到输出误差最小。这个问题可以用最小二乘法来求解,即:
y
^
=
f
(
W
x
+
b
)
\begin{equation} \hat{y} = f(Wx + b) \end{equation}
y^=f(Wx+b)
L
(
W
,
b
)
=
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
=
(
y
−
y
^
)
T
(
y
−
y
^
)
\begin{equation} L(W,b)= \sum_{i=1}^n (y_i - \hat{y}_i)^2=(y-\hat{y})^T(y-\hat{y}) \end{equation}
L(W,b)=i=1∑n(yi−y^i)2=(y−y^)T(y−y^)
其中,
L
(
y
,
y
^
)
L(y,\hat{y})
L(y,y^)表示损失函数,
y
y
y表示真实的输出,
y
^
\hat{y}
y^表示预测的输出。现在这个问题就变成了一个优化问题,我们需要找到一个最优的
W
W
W和
b
b
b,使得损失函数最小,即:
arg
min
W
,
b
L
(
y
,
y
^
)
\begin{equation} \arg\min_{W,b} L(y,\hat{y}) \end{equation}
argW,bminL(y,y^)
这个问题可以用梯度下降法来求解,即:
W
←
W
−
η
∂
L
∂
W
\begin{equation} W \leftarrow W - \eta \frac{\partial L}{\partial W} \end{equation}
W←W−η∂W∂L
b
←
b
−
η
∂
L
∂
b
\begin{equation} b \leftarrow b - \eta \frac{\partial L}{\partial b} \end{equation}
b←b−η∂b∂L
其中,
η
\eta
η表示学习率,是一个超参数,用来控制参数更新的幅度。这样,我们就可以通过梯度下降法来求解参数
W
W
W和
b
b
b。
假设
f
(
x
)
f(x)
f(x)是sigmoid函数,即:
f
(
x
)
=
1
1
+
e
−
x
\begin{equation} f(x) = \frac{1}{1+e^{-x}} \end{equation}
f(x)=1+e−x1
其导数为:
f
′
(
x
)
=
f
(
x
)
(
1
−
f
(
x
)
)
\begin{equation} f'(x) = f(x)(1-f(x)) \end{equation}
f′(x)=f(x)(1−f(x))
那么,根据链式法则,梯度下降法中的
∂
L
∂
W
\frac{\partial L}{\partial W}
∂W∂L和
∂
L
∂
b
\frac{\partial L}{\partial b}
∂b∂L的计算过程如下:
∂
L
∂
W
=
∂
L
∂
y
^
∂
y
^
∂
a
∂
a
∂
W
\begin{equation} \frac{\partial L}{\partial W} = \frac{\partial L}{\partial \hat{y}} \frac{\partial \hat{y}}{\partial a} \frac{\partial a}{\partial W} \end{equation}
∂W∂L=∂y^∂L∂a∂y^∂W∂a
∂
L
∂
y
^
=
∂
∂
y
^
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
=
1
2
(
y
^
−
y
)
\begin{equation} \frac{\partial L}{\partial \hat{y}}=\frac{\partial}{\partial \hat{y}}\sum_{i=1}^n (y_i - \hat{y}_i)^2=\frac{1}{2}(\hat{y}-y) \end{equation}
∂y^∂L=∂y^∂i=1∑n(yi−y^i)2=21(y^−y)
∂
y
^
∂
a
=
f
′
(
a
)
=
f
(
a
)
(
1
−
f
(
a
)
)
=
y
^
⊙
(
1
−
y
^
)
\begin{equation} \frac{\partial \hat{y}}{\partial a}=f'(a)=f(a)(1-f(a))=\hat{y}\odot(1-\hat{y}) \end{equation}
∂a∂y^=f′(a)=f(a)(1−f(a))=y^⊙(1−y^)
∂
a
∂
W
=
∂
(
W
x
+
b
)
∂
W
=
[
x
1
x
2
…
x
n
x
1
x
2
…
x
n
⋮
⋮
…
⋮
x
1
x
2
…
x
n
]
m
×
n
=
[
1
1
⋮
1
]
m
×
1
x
T
\begin{equation} \frac{\partial a}{\partial W}=\frac{\partial (Wx+b)}{\partial W}={\begin{bmatrix}x_1 & x_2 & \dots & x_n\\ x_1 & x_2 & \dots & x_n\\ \vdots & \vdots & \dots & \vdots \\ x_1 & x_2 & \dots & x_n\end{bmatrix}}_{m \times n} = {\begin{bmatrix}1\\1\\\vdots \\1\end{bmatrix}}_{m \times 1} x^T \end{equation}
∂W∂a=∂W∂(Wx+b)=⎣
⎡x1x1⋮x1x2x2⋮x2…………xnxn⋮xn⎦
⎤m×n=⎣
⎡11⋮1⎦
⎤m×1xT
将(12)(13)(14)式代入式(11)中,写成最终的矩阵形式:
∂
L
∂
W
=
1
2
(
y
^
−
y
)
⊙
y
^
⊙
(
1
−
y
^
)
x
T
\begin{equation} \frac{\partial L}{\partial W}=\frac{1}{2}(\hat{y}-y)\odot\hat{y}\odot(1-\hat{y})x^T \end{equation}
∂W∂L=21(y^−y)⊙y^⊙(1−y^)xT
这个
⊙
\odot
⊙符号表示对应位置元素相乘。
由于系数不会影响梯度下降法的结果,所以我们可以将系数
1
2
\frac{1}{2}
21去掉,得到:
∂
L
∂
W
=
(
y
^
−
y
)
⊙
y
^
⊙
(
1
−
y
^
)
x
T
\begin{equation} \frac{\partial L}{\partial W}=(\hat{y}-y)\odot\hat{y}\odot(1-\hat{y})x^T \end{equation}
∂W∂L=(y^−y)⊙y^⊙(1−y^)xT
同理, 对于
∂
L
∂
b
\frac{\partial L}{\partial b}
∂b∂L可得:
∂
L
∂
b
=
(
y
^
i
−
y
i
)
⊙
y
^
i
⊙
(
1
−
y
^
i
)
\begin{equation} \frac{\partial L}{\partial b}=(\hat{y}_i-y_i)\odot\hat{y}_i\odot(1-\hat{y}_i) \end{equation}
∂b∂L=(y^i−yi)⊙y^i⊙(1−y^i)
1.2 多样本
在实际使用中,我们的样本往往有很多,而且我们更新参数的时候,通常也是一小批样本来更新,而不是一个样本。所以,我们需要将上面的公式进行一些修改,使得它能够适用于多样本的情况。假设我们有
p
p
p个样本,我们的式(2)(3)(4)(5)重新表示为:
A
m
×
p
=
W
m
×
n
X
n
×
p
+
B
m
×
p
\begin{equation} A_{m \times p} = W_{m \times n}X_{n \times p} + B_{m \times p} \end{equation}
Am×p=Wm×nXn×p+Bm×p
Y
m
×
p
=
f
(
A
m
×
p
)
\begin{equation} Y_{m \times p}=f(A_{m \times p}) \end{equation}
Ym×p=f(Am×p)
Y
^
m
×
p
=
f
(
W
m
×
n
X
n
×
p
+
B
m
×
p
)
\begin{equation} \hat{Y}_{m \times p} = f(W_{m \times n}X_{n \times p} + B_{m \times p}) \end{equation}
Y^m×p=f(Wm×nXn×p+Bm×p)
L
(
W
,
b
)
=
1
2
p
∑
j
=
1
p
∑
i
=
1
n
(
y
i
j
−
y
^
i
j
)
2
=
1
2
p
t
r
(
(
Y
−
Y
^
)
(
Y
−
Y
^
)
T
)
\begin{equation} L(W,b)= \frac{1}{2p} \sum_{j=1}^p \sum_{i=1}^n (y_{ij}- \hat{y}_{ij})^2=\frac{1}{2p} tr((Y-\hat{Y})(Y-\hat{Y})^T) \end{equation}
L(W,b)=2p1j=1∑pi=1∑n(yij−y^ij)2=2p1tr((Y−Y^)(Y−Y^)T)
这里的
t
r
tr
tr表示矩阵的迹,
B
m
×
p
B_{m \times p}
Bm×p为:
B
m
×
p
=
[
b
1
b
1
…
b
1
b
2
b
2
…
b
2
⋮
⋮
…
⋮
b
m
b
m
…
b
m
]
m
×
p
=
b
m
×
1
⊗
[
1
1
…
1
]
1
×
p
\begin{equation} B_{m \times p}={\begin{bmatrix}b_1 & b_1 & \dots & b_1\\ b_2 & b_2 & \dots & b_2\\ \vdots & \vdots & \dots & \vdots \\ b_m & b_m & \dots & b_m\end{bmatrix}}_{m \times p}=b_{m \times 1} \otimes {\begin{bmatrix}1 & 1 & \dots & 1\end{bmatrix}}_{1 \times p} \end{equation}
Bm×p=⎣
⎡b1b2⋮bmb1b2⋮bm…………b1b2⋮bm⎦
⎤m×p=bm×1⊗[11…1]1×p
这里的
⊗
\otimes
⊗符号表示克罗内克积,上面就是将
b
b
b进行横向延拓
让我们来重新计算下
∂
L
∂
W
\frac{\partial L}{\partial W}
∂W∂L和
∂
L
∂
b
\frac{\partial L}{\partial b}
∂b∂L。首先,我们来计算
∂
L
∂
W
\frac{\partial L}{\partial W}
∂W∂L。根据链式法则,我们可以得到:
∂
L
∂
W
=
∂
L
∂
Y
^
∂
Y
^
∂
A
∂
A
∂
W
\begin{equation} \frac{\partial L}{\partial W} = \frac{\partial L}{\partial \hat{Y}} \frac{\partial \hat{Y}}{\partial A} \frac{\partial A}{\partial W} \end{equation}
∂W∂L=∂Y^∂L∂A∂Y^∂W∂A
先计算
∂
L
∂
Y
^
\frac{\partial L}{\partial \hat{Y}}
∂Y^∂L:
∂
L
∂
Y
^
=
∂
∂
Y
^
1
2
p
∑
j
=
1
p
∑
i
=
1
n
(
y
i
j
−
y
^
i
j
)
2
=
1
p
(
Y
^
−
Y
)
\begin{equation} \frac{\partial L}{\partial \hat{Y}} = \frac{\partial}{\partial \hat{Y}}\frac{1}{2p} \sum_{j=1}^p \sum_{i=1}^n (y_{ij}- \hat{y}_{ij})^2 = \frac{1}{p}(\hat{Y}-Y) \end{equation}
∂Y^∂L=∂Y^∂2p1j=1∑pi=1∑n(yij−y^ij)2=p1(Y^−Y)
接下来计算
∂
Y
^
∂
A
\frac{\partial \hat{Y}}{\partial A}
∂A∂Y^:
∂
Y
^
∂
A
=
∂
∂
A
f
(
A
)
=
f
(
A
)
⊙
(
1
−
f
(
A
)
)
\begin{equation} \frac{\partial \hat{Y}}{\partial A} = \frac{\partial}{\partial A}f(A) = f(A) \odot (1-f(A)) \end{equation}
∂A∂Y^=∂A∂f(A)=f(A)⊙(1−f(A))
再计算
∂
A
∂
W
\frac{\partial A}{\partial W}
∂W∂A:
∂
A
∂
W
=
∂
∂
W
(
W
X
+
B
)
=
[
1
1
…
1
1
1
…
1
⋮
⋮
…
⋮
1
1
…
1
]
m
×
p
X
n
×
p
T
\begin{equation} \frac{\partial A}{\partial W} = \frac{\partial}{\partial W}(W X + B) = {\begin{bmatrix} 1 & 1 & \dots & 1\\1 & 1 & \dots & 1\\\vdots & \vdots & \dots & \vdots \\1 & 1 & \dots & 1 \end{bmatrix}}_{m \times p} X^T_{n \times p} \end{equation}
∂W∂A=∂W∂(WX+B)=⎣
⎡11⋮111⋮1…………11⋮1⎦
⎤m×pXn×pT
将上面的三个式子代入(23)中,得到:
∂
L
∂
W
=
1
p
(
Y
^
−
Y
)
⊙
f
(
A
)
⊙
(
1
−
f
(
A
)
)
X
T
\begin{equation} \frac{\partial L}{\partial W} = \frac{1}{p}(\hat{Y}-Y) \odot f(A) \odot (1-f(A)) X^T \end{equation}
∂W∂L=p1(Y^−Y)⊙f(A)⊙(1−f(A))XT
同理,我们可以得到:
∂
L
∂
b
=
1
p
(
Y
^
−
Y
)
⊙
f
(
A
)
⊙
(
1
−
f
(
A
)
)
[
1
1
…
1
]
1
×
p
T
\begin{equation} \frac{\partial L}{\partial b} = \frac{1}{p}(\hat{Y}-Y) \odot f(A) \odot (1-f(A)) {\begin{bmatrix}1 & 1 & \dots & 1\end{bmatrix}}_{1 \times p}^T \end{equation}
∂b∂L=p1(Y^−Y)⊙f(A)⊙(1−f(A))[11…1]1×pT