神经网络的基本理论公式推导

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=1n(yiy^i)2=(yy^)T(yy^)
其中, 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} WWηWL
b ← b − η ∂ L ∂ b \begin{equation} b \leftarrow b - \eta \frac{\partial L}{\partial b} \end{equation} bbηbL
其中, η \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+ex1
其导数为:
f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) \begin{equation} f'(x) = f(x)(1-f(x)) \end{equation} f(x)=f(x)(1f(x))
那么,根据链式法则,梯度下降法中的 ∂ L ∂ W \frac{\partial L}{\partial W} WL ∂ L ∂ b \frac{\partial L}{\partial b} bL的计算过程如下:
∂ 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} WL=y^Lay^Wa
∂ 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=1n(yiy^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} ay^=f(a)=f(a)(1f(a))=y^(1y^)
∂ 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} Wa=W(Wx+b)= x1x1x1x2x2x2xnxnxn m×n= 111 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} WL=21(y^y)y^(1y^)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} WL=(y^y)y^(1y^)xT
同理, 对于 ∂ L ∂ b \frac{\partial L}{\partial b} bL可得:
∂ 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} bL=(y^iyi)y^i(1y^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=1pi=1n(yijy^ij)2=2p1tr((YY^)(YY^)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= b1b2bmb1b2bmb1b2bm m×p=bm×1[111]1×p
这里的 ⊗ \otimes 符号表示克罗内克积,上面就是将 b b b进行横向延拓
让我们来重新计算下 ∂ L ∂ W \frac{\partial L}{\partial W} WL ∂ L ∂ b \frac{\partial L}{\partial b} bL。首先,我们来计算 ∂ L ∂ W \frac{\partial L}{\partial W} WL。根据链式法则,我们可以得到:
∂ 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} WL=Y^LAY^WA
先计算 ∂ 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=1pi=1n(yijy^ij)2=p1(Y^Y)
接下来计算 ∂ Y ^ ∂ A \frac{\partial \hat{Y}}{\partial A} AY^:
∂ 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} AY^=Af(A)=f(A)(1f(A))
再计算 ∂ A ∂ W \frac{\partial A}{\partial W} WA:
∂ 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} WA=W(WX+B)= 111111111 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} WL=p1(Y^Y)f(A)(1f(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} bL=p1(Y^Y)f(A)(1f(A))[111]1×pT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值