4

1、根据链式法则,前馈神经网络在进行反向传播时,权值w的梯度为全局传过来的梯度乘以激活函数sigmoid对w的梯度:\frac{\partial L}{\partial w} = \frac{\partial L}{ \partial sigmoid(wx + b)} * \frac{\partial sigmoid(wx + b)}{\partial w}

sigmoid ' (x) = sigmoid(x) * (1 - sigmoid(x))

\frac{\partial sigmoid(wx + b)}{\partial w} = sigmoid(wx + b) * x

对于第一层隐藏层的神经元来说,假设x都为正的,因为sigmoid 函数值域在(0, 1),则\frac{\partial sigmoid(WX + b)}{\partial w}为正,则权重矩阵w的梯度\partial L / \partial w只与\frac{\partial l}{\partial sigmoid(wx + b)}有关,即权重矩阵w中所有元素的梯度只与\frac{\partial l}{\partial sigmoid(wx + b)}有关,即矩阵w中的所有元素的梯度的正负是相同的,假设w的纬度为2,即[w1, w2], 则在每次的反向传播中,w1和w2的梯度同号,即梯度每次的更新方向是朝向第一象限或朝向第三象限,假设权重矩阵w的最优解在第四象限,则w的收敛过程就会呈现z字型:

4_第1张图片

但将输入数据作零均值化处理后,则x中元素的值就有正有负了,则\frac{\partial sigmoid(wx + b)}{\partial w} = sigmoid(wx + b) * x就有正有负了,就不会产生w中所有元素梯度都同号的情况,就避免了z字型的收敛过程。

已上是针对输入层到第一层隐藏层的神经元的权重矩阵w的梯度的收敛,对于后面层的w,因为上一层的sigmoid函数的输出值域为(0, 1),即后面层的输入数据都为整数,则不可避免的存在z字型收敛的情况。

 

2、

 

3、在梯度较大,且学习率设置的较大的情况下,可能出现权重一次更新过多的情况,就有可能出现这种情况:对于任意训练样本 x_i ,网络的输出都是小于0的,即:

z_i = w * x_i  < 0,通过RELU函数后a_i = max(z_i, 0) = 0,则此神经元的输出恒为零,则在反向传播时:

\frac{\partial L}{\partial z_i} = \frac{\partial L}{\partial a_i} * \frac{\partial a_i}{\partial z_i}

因为此时a_i = 0, 则 \frac{\partial a_i}{\partial z_i}为0,即该神经元上,损失函数对参数的导数恒等于零,也就是说,之后遍历了剩下的整个数据集,该神经元的参数都没有更新,即该神经元死了。

 

 

 

 

 

 

 

 

 

 

 

 

参考文章:

神经网络图像输入零均值化的作用  https://blog.csdn.net/wtrnash/article/details/87893725

深度学习中,使用relu存在梯度过大导致神经元“死亡”,怎么理解?   https://www.zhihu.com/question/67151971

你可能感兴趣的:(邱锡鹏,神经网络与深度学习,习题答案,深度学习)