ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响

首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273

开一个我的github传送门,可以看到代码。

https://github.com/VVV-LHY/deeplearning.ai/tree/master/improveNeuralNetwork/InitializeRegularize

以下是今天要分类的目标点集:

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第1张图片

在初始化w权重矩阵为0的情况下可以看到,迭代14000次的时候,成本没有变化,也就是说模型没有学习新的参数

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第2张图片

在随机初始化权重w,并且将随机值*10倍放缩进行初始化的时候:可以看到cost的变化十分陡峭,且在14000次迭代后成本仅仅在0.38左右波动,说明大的初始化权重会减慢优化速度

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第3张图片

在初始化权重w为Inhibitory gradient anomaly抑梯度异常时:可以看到同样的迭代次数下,其cost变化趋于平滑且收敛速度更快

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第4张图片

来看一下三种初始化w的方式在迭代次数一致的情况下(时间花费相同)带来的预测效果:

zeros:

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第5张图片

randomX10:

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第6张图片

 

IGA:

ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响_第7张图片

 

 

总结一下
对于参数初始化而言:
1.不同的初始化方法在同样的训练时间内会影响模型的训练效果
2.随机初始化可以打破神经网络的对称性,使不同隐藏层的单元学习不同的参数,全为0的初始化会使每个单元保持一致,丧失多隐含层的效果
3.初始化时参数不宜过大,最好保持在1附近
4.IGA即抑梯度异常搭配relu激活函数起到了不错的效果

 

你可能感兴趣的:(ubuntu之路——day15.1 只用python的numpy在底层检验参数初始化对模型的影响)