第五周:反向传播算法求导过程

一、神经网络代价函数深入理解:

逻辑回归中的代价函数形式为:$J( heta )=-frac{1}{m}sum_{i=1}^{m}left [ y^{(i)}log(h_ heta(x^{(i)}))+(1-y^{(i)})log(1-h_ heta(x^{(i)})) ight ] + frac{lambda}{2m}sum_{j=1}^{n} heta_j^2$

神经网络中的代价函数形式为:$J(Theta )=-frac{1}{m}sum_{i=1}^{m}sum_{k=1}^{K}left [ y^{(i)}_k log((h_Theta(x^{(i)}))_k)+(1-y^{(i)}_k)log(1-(h_Theta(x^{(i)}))_k) ight ] + frac{lambda}{2m}sum_{l=1}^{L-1}sum_{i=1}^{s_l}sum_{j=1}^{s_{l+1}}(Theta^{(l)}_{j,i})^2$

下文对神经网络的代价函数做一些深入的理解总结。

1、对$frac{lambda}{2m}sum_{l=1}^{L-1}sum_{i=1}^{s_l}sum_{j=1}^{s_{l+1}}(Theta^{(l)}_{j,i})^2$的理解

这是神经网络代价函数中的正规化项,其本质上既是计算所有参数项的平方和(不包括bias term项,即不包括各层的偏置项)。如果不甚理解,可以尝试按照下面思路梳理:

1.1. 单层、单节点的情况:

这里说的单层是指带参数的层,输入层由于没有输入项,也自然没有参数,所以不算。

如上图所示,包括2层:输入层和输出层。其中输出层只有一个输出节点, 故为单节点。

此时的输入为:$z = heta_1*x_1 + heta_2*x_2 + heta_3*x_3$;输出层单节点的核函数为sigmoid()函数,则输出为:sigmoid(z)

参数$ heta$是一个向量:$egin{bmatrix} heta_1 & heta_2 & heta_3end{bmatrix}$。这个场景也就是典型的逻辑回归的场景了。

1.2. 单层,多节点的情况:

如上图所示,输出层有2个节点,此时参数$Theta$就不再是一个向量,而是一个矩阵了:$egin{bmatrix} heta_{11} & heta_{12} & heta_{13} \ heta_{21} & heta_{22} & heta_{23}end{bmatrix}$,这里$ heta_{j,i}$的下标中,i表示输出层的第i个节点;而j表示第j个特征,如$ heta_{2,1}$即输出层第2个节点O2的第一个输入特征X1对应的参数。

1.3. 多层,多节点的情况:

这个网络包括3层:输入层、隐藏层和输出层。此时的参数$Theta$是多个矩阵,即每一层都是一个矩阵。

比如第一层的矩阵为:$egin{bmatrix} heta^{(1)}_{11} & heta^{(1)}_{12} & heta^{(1)}_{13} \ heta^{(1)}_{21} & heta^{(1)}_{22} & heta^{(1)}_{23}end{bmatrix}$

比如第二层的矩阵为:$egin{bmatrix} heta^{(2)}_{11} & heta^{(2)}_{12} \ heta^{(2)}_{21} & heta^{(2)}_{22} end{bmatrix}$

所以,为了把所有的$Theta$累加到一起,就是三个$Sigma$的叠加了

那么,每一个$Sigma$的范围是什么意思呢?

第一个$Sigma$表示所有有参数的层,也就是除输入层之外的其他层,所以是从l=1到L-1。

第二个$Sigma$表示每一层的所有特征,比如输入层的X1、X2,或隐藏层的H1;所以是从i=1到$s_l$,即第l层的结点个数;

第三个$Sigma$表示每一层的后面一层的结点数,比如输出层的O1、O2;所以是从j=1到$s_{l+1}$;

二、反向传播的求导过程

反向传播的求导,实际上就是$J(Theta)$对整个神经网络的每个参数$Theta_{j,i}^{(l)}$求偏导数

$frac{partial }{partial Theta_{j,i}^{(l)} }J(Theta)$

=$-frac{1}{m}sum_{i=1}^{m}sum_{k=1}^{K}left [ y^{(i)}_k log((h_Theta(x^{(i)}))_k)+(1-y^{(i)}_k)log(1-(h_Theta(x^{(i)}))_k) ight ] + frac{lambda}{2m}sum_{l=1}^{L-1}sum_{i=1}^{s_l}sum_{j=1}^{s_{l+1}}(Theta^{(l)}_{j,i})^2$

原文地址:https://www.cnblogs.com/zhongmiaozhimen/p/6225197.html