深度学习(0)Logistics正向、反向传播推导

定义

损失函数(loss function)可以很好的表征单一样本下估计值 $a=\hat{y}$ 和真实值y(y=1或0)之间的误差。但我们知道,作为训练用的样本数据绝不可能只有一个,于是我们引入m个样本损失函数的算数平均值作为成本函数(cost function),用符号J来表。于是有,

  • 仿射变换 $z=w^Tx+b$
  • 激活函数 $a=\sigma (z) = sigmoid(z) = \frac{1}{1+e^{-z}}$
  • 损失函数 $L(a,y)=-(ylog^{(a)}+(1-y)log^{(1-a)})$
  • 成本函数
    $$J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(a^{(i)}, y^{(i)}\right) = \frac{1}{m} \sum_{i=1}^{m} -(y^{(i)}log^{(a^{(i)})}+(1-y^{(i)})log^{(1-a^{(i)})})$$


正向传播

  • 仿射变换 $z^{(i)}=\sum_{j=1}^{n} w_{j} x_{j}^{(i)}+b$
  • 激活函数 $a^{(i)}=\sigma (z^{(i)}) = sigmoid(z^{(i)}) = \frac{1}{1+e^{-z^{(i)}}}$
  • 损失函数 $L^{(i)}=-y^{(i)} \ln a^{(i)}-\left(1-y^{(i)}\right) \ln \left(1-a^{(i)}\right)$
  • 成本函数
    $$J=\frac{1}{m} \sum_{i=1}^{m} L\left(a^{(i)}, y^{(i)}\right) = \frac{1}{m} \sum_{i=1}^{m} -(y^{(i)}log^{(a^{(i)})}+(1-y^{(i)})log^{(1-a^{(i)})})$$

反向传播

$$\frac{d J}{d L^{(i)}}= \frac{d\left({\frac{1}{m} \sum_{i=1}^{m} L(i)}\right)}{dL^{(i)}}
= \frac{d \left(\frac{1}{m} \left(L(1)+L(2)+\dots+L(i)+\dots\right)\right)}{dL^{(i)}}
=\frac{1}{m}$$

$$\frac{d L^{(i)}}{d a^{(i)}}= \frac{d \left(-y^{(i)} \ln a^{(i)}-(1-y^{(i)}) \ln (1-a^{(i)})\right)}{d a^{(i)}}= -\frac{y^{(i)}}{a^{(i)}}+\frac{1-y^{(i)}}{1-a^{(i)}} = \frac{a^{(i)}-y^{(i)}}{a^{(i)}(1-a^{(i)})}$$
对于sigmoid函数,存在
$$\frac{d\left(sigmoid(x)\right)}{d(x)}=sigmoid(x)(1-sigmoid(x))$$
于是有,
$$\frac{d a^{(i)}}{d z^{(i)}}=a^{(i)} \left(1-a^{(i)}\right)$$

$$\frac{d z^{(i)}}{d w_{j}}= \frac{d \left( w_1x_1^{(i)}+b + w_2x_2^{(i)}+b + \dots + w_jx_j^{(i)}+b+\dots \right)}{d w_{j}}= x_{j}^{(i)}$$

$$\frac{d z^{(i)}}{d b}=1$$

综上所述,
$$\frac{d J}{d w_{j}}=\frac{1}{m} \sum_{i=1}^{m} \frac{d L^{(i)}}{d a^{(i)}} \frac{d a^{(i)}}{d z^{(i)}} \frac{d z^{(i)}}{d w_{j}} = \frac{1}{m} \sum_{i=1}^{m}\left(a^{(i)}-y^{(i)}\right) x_{j}^{(i)}$$

$$\frac{d J}{d b}=\frac{1}{m} \sum_{i=1}^{m} \frac{d L^{(i)}}{d a^{(i)}} \frac{d a^{(i)}}{d z^{(i)}} \frac{d z^{(i)}}{d b} = \frac{1}{m} \sum_{i=1}^{m}\left(a^{(i)}-y^{(i)}\right)$$

梯度下降

$$w_j = w_j - \alpha dw_j$$
$$b = b - \alpha db$$


References:

[1] 吴恩达网易云课堂《神经网络基础》
[2] 吴恩达神经网络和深度学习心得总结(一):神经网络基础和logistic回归