反向传播网络d_i^j怎么来的
时间: 2023-06-15 16:05:05 浏览: 111
反向传播算法是一种用于训练深度神经网络的算法。在反向传播算法中,我们需要计算每个神经元的梯度,以便根据这些梯度来更新神经元的权重。d_i^j表示第i层的第j个神经元的梯度,它是通过链式法则来计算的。
具体来说,我们可以将神经网络看作是由一系列函数组成的复合函数,其中每个函数对应于一个神经元。假设第i层的第j个神经元的激活函数为f_j,我们可以将其表示为:
z_j^i = w_j^i * a_{i-1} + b_j^i
a_j^i = f_j(z_j^i)
其中,z_j^i表示第i层的第j个神经元的加权输入,w_j^i和b_j^i分别表示第i层的第j个神经元的权重和偏置,a_{i-1}表示第i-1层的输出,即第i层的输入,a_j^i表示第i层的第j个神经元的输出。
我们可以通过计算每个神经元的梯度来更新它们的权重和偏置。对于第i层的第j个神经元,它的梯度可以通过以下公式来计算:
d_j^i = \frac{\partial L}{\partial z_j^i} = \sum_k \frac{\partial L}{\partial z_k^{i+1}} * \frac{\partial z_k^{i+1}}{\partial z_j^i} = \sum_k d_k^{i+1} * w_{jk}^{i+1} * f'(z_j^i)
其中,L表示损失函数,k表示第i+1层的神经元的索引,w_{jk}^{i+1}表示第i+1层的第k个神经元到第i层的第j个神经元的权重,f'(z_j^i)表示第i层的第j个神经元的激活函数的导数。
因此,d_i^j可以通过对每个第i+1层的神经元的梯度进行加权和来计算出来。这个过程被称为反向传播,因为我们从输出层开始,逐层向后计算梯度。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)