1. 磐创AI-开放猫官方网站首页
  2. Medium

深度神经网络最终模型参数

改进深度神经网络-初始化:

训练神经网络需要指定权值的初始值。选择好的初始化方法可以提高学习效率和准确性。

如果您正在阅读我以前的教程分析,您可能会按照我的权重初始化说明进行操作,到目前为止,它已经成功了。但是我们如何选择另一个神经网络的初始化呢?在这一部分中,我将向您展示不同的初始化方法会导致不同的结果。

选择合适的初始化可以加快梯度下降的收敛速度,增加梯度下降收敛到较低训练误差的几率。

我将使用我上一个教程中的代码,在那里我们用来对圆进行分类。在我们使用随机权重初始化之前,现在我们尝试“他初始化”,这是以何等人2015年的第一作者的名字命名的。(如果您听说过“Xavier Initialization”,这是相似的,除了Xavier Initialization对以下各项的权重W[l]使用比例因子:

在此之前,我们使用了以下代码:

唯一不同的是,它不是将np.随机.randn(..,..)相乘。乘以0.01,我们将它乘以sqrt(2/上一层的维度),这是“he”初始化对RELU激活的层建议的:

首先,让我们用随机初始化来测试我们的结果,以便我们可以比较差异:

从上面的图可以看出,只有经过8000步的训练,成本才会下降。

分类结果对我们来说是相当好的。

从上面的图中,我们可以看到成本几乎是立即下降的;我们不需要等待8000步就能看到改善。

分类结果比使用随机初始化好1%。

结论:

我们应该记住,不同的参数初始化方法会导致不同的结果。随机初始化用于打破对称性,并确保不同的隐藏单元可以学习不同的东西。

不要初始化过大的值,但是使用过大的随机数初始化会减慢优化速度。正如您所看到的,“he”初始化对于具有RELU激活的网络工作得很好。

这是最后一期深度学习教程。为了获得更好的结果,您可以通过实施L2正则化、丢弃和梯度检查来优化此深度神经网络。您可以尝试使用Momentum、ADAM优化器或使用小批量实施培训来进行优化。

完整的教程代码和猫与狗的图像数据集可以在我的GitHub页面上找到。GitHub

最初发表于https://pylessons.com/Deep-neural-networks-part6https://pylessons.com/Deep-neural-networks-part6

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/29/%e6%b7%b1%e5%ba%a6%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e6%9c%80%e7%bb%88%e6%a8%a1%e5%9e%8b%e5%8f%82%e6%95%b0/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息