ubuntu之路——day16 只用python的numpy在底层检验神经网络

系统 172 0

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

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

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

待分类的点集:

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第1张图片

 

普通的梯度下降法GradientDescent(带minibatch)的模型训练过程:

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第2张图片

动量梯度下降法(带minibatch):

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第3张图片

Adam梯度下降法(带minibatch):

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第4张图片

三种算法在训练集上的准确率:

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第5张图片

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第6张图片

ubuntu之路——day16 只用python的numpy在底层检验神经网络的优化算法_第7张图片

 

对比普通的梯度下降GD、动量梯度下降法momentum、Adam三种方法可知:

  1. GD和momentum的准确率accuracy都为0.797,Adam的准确率为0.94。这说明在相同的迭代次数即时间花费下,Adam的收敛速度最快,对算法的效率有明显提升。
  2. GD和momentum相对于Adam有明显的预热过程,即不会在刚开始突然加快梯度下降速度,而是会慢慢迭代。而Adam在第1000次迭代的时候就已经快要收敛。
  3. 通常来说momentum也具备很好的效果,但是本实验的点集很小且迭代次数不够多,所以无法体现momentum对普通梯度下降的优势。
  4. GD和momentnum的迭代震荡幅度要高于Adam,Adam的收敛范围更小更平滑。 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共0条评论