deeplearning.ai 改善深度神经网络(正则化、优化、mini-batch等)附代码作业答案

一、初始化

1.为什么神经网络的所有参数不能全部初始化为0>?

若w初始化为0 ,很可能导致模型失效,无法收敛。也就是说如果我们初始将所有的w初始化为0,那么进行前向传播时每一层得到的值都是一样,这样一来当我们使用反向传播时,传回的梯度也是一样的,这就导致了我们更新参数后w还是一样的,这就使得我们的NN不能各自学习到很好的特征了。可以看这里

2.Xavier Initialization

Xavier Initialization 初始化的基本思想就是保持输入和输出的方差一致,这样就避免了所有的输出值趋向于0.
首先对于前向传播,我们需要确保所有层的激活值方差近似相等,因此每个训练样本传播经过网络的信息才能保持平滑的属性。同样对于反向传播,每层梯度保持近似的方差将允许信息平滑地反向流动以更新权重。近似方差的梯度同样确保误差数据能够反馈到所有层级,因此它是整个训练中的关键。
这位大佬写的很不错

将W的方差变为 1layersdims[l−1]

猜你喜欢

转载自blog.csdn.net/HowardEmily/article/details/106080041