加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

从零开始:编码神经收集参数的初始化!

发布时间:2018-05-26 12:46:23 所属栏目:业界 来源:李佳惠
导读:【资讯】呆板进修/深度进修情形中的优化是改变模子参数以进步其机能的进程。换句话说,它是在预定假设空间中找到最佳参数以得到最佳机能的进程。有三种优化算法: ·优化算法不是迭代的,只是简朴地求解一个点。 ·优化算法本质上是迭代的,收敛于可接管的

  【资讯】呆板进修/深度进修情形中的优化是改变模子参数以进步其机能的进程。换句话说,它是在预定假设空间中找到最佳参数以得到最佳机能的进程。有三种优化算法:

  ·优化算法不是迭代的,只是简朴地求解一个点。

  ·优化算法本质上是迭代的,收敛于可接管的办理方案,而不管参数初始化,如梯度降落应用于逻辑回归。

  ·优化算法本质上是迭代的,合用于一组具有非凸丧失函数的题目,如神经收集。因此,参数的初始化在加快收敛和实现更低的错误率方面起着至关重要的浸染。

  从零开始:编码神经收集参数的初始化

  在这篇文章中,我们将看看三种差异的参数初始化环境,并看看它是怎样影响错误率的:

  1.初始化全部参数为零

  2.将参数初始化为尺度正态漫衍或匀称漫衍的随机值,并将其乘以标量(譬喻10)

  3.基于以下参数举办初始化:

  ·Xavier recommendation.

  ·Kaiming He recommendation

  我们将行使在“编码神经收集 - 前向撒播和反向撒播”文章中编写的函数来初始化参数,计较前向撒播和反向撒播以及交错熵本钱。

  为了声名上述环境,我们将行使cats vs dogs数据集,个中包括50个猫的图像和50个狗的图像。每个图像在RGB色阶上都是150像素x 150像素。因此,我们将有67,500个特性,个中输入矩阵中的每一列将是一个图像,这意味着我们的输入数据将具有67,500×100维度。

  起首加载数据,然后在启动帮助函数之前表现两个图像的样本。

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  此刻我们将编写全部的帮助函数,这些函数将辅佐我们按照差异的要领初始化参数,并编写我们将用来实习的神经收集的L层模子。

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  将全部参数初始化为零

  在这里,我们将全部权矩阵和毛病初始化为零,看看这会怎样影响偏差率以及进修参数。

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  行使零初始化要领的本钱曲线

  如本钱曲线所示,神经收集没有学到任何对象!这是由于全部神经元之间的对称性导致全部神经元在每次迭代中都具有沟通的更新。因此,无论我们运行优化算法有几多次迭代,全部神经元仍会获得沟通的更新,而且不会产生进修。因此,当初始化参数时,我们必需粉碎对称性,以便模子将开始进修梯度降落的每次更新。

  用大的随机值初始化参数

  假如随机值是从尺度正态漫衍或匀称漫衍初始化的,以是我们将在例子中行使尺度正态漫衍。另外,我们将随机值乘以一个大数字(如10),以表现将参数初始化为较大的值也许会导致我们的优化具有较高的错误率(乃至在某些环境下会呈现分歧)。此刻让我们实习神经收集,个中全部权重矩阵已经行使以下公式初始化:np.random.randn()* 10

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  本钱曲线回收随机初始化要领

  这里的随机初始化是有辅佐的,可是丧失函数如故具有很高的代价,这也许必要很长时刻才气收敛并到达明显低代价。

  按照He和Xavier的初始化参数

  我们将切磋两种初始化要领:

  ·当应用于隐层的激活函数为整流线性单位(ReLU)时,最好应用Kaiming He要领。这样每个潜匿层上的权重将具有以下变量:var(W ^ l)= 2 / n ^(l-1)。我们可以通过乘以尺度正态漫衍的随机值来实现。

  从零开始:编码神经收集参数的初始化

  ·当隐层的激活函数是双曲正切时,Xavier的要领是最好的,这样每个隐含层的权重就会有如下变量:var(W ^ l)= 1 / n ^(l-1)。我们可以通过乘以尺度正态漫衍的随机值来实现。

  从零开始:编码神经收集参数的初始化

  我们将行使这两种要领来实习收集并查察功效。

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  行使He初始化要领的本钱曲线

  从零开始:编码神经收集参数的初始化

  从零开始:编码神经收集参数的初始化

  行使Xavier初始化要领的本钱曲线

  从应用的这几种要领可以看出,参数的初始值在实现低本钱值以及收敛和实现较低的实习错误率方面起着庞大的浸染。假如我们有测试数据,它同样合用于测试错误率。

  结论

  深度进修框架使得更轻易在差异的初始化要领之间举办选择,而无需担忧本身实现它。尽量云云,相识参数在收集整体机能中的要害脚色初始值也很重要。以下是一些要害要点:

  ·全心选择的初始化参数值导致:

  1.加速梯度降落的收敛速率

  2.增进梯度降落的也许性以找到较低的实习和泛化错误率。

  ·由于我们正在处理赏罚具有非凸丧失函数的迭代优化算法,以是差异的初始化会导致差异的功效。

  ·随机初始化用于粉碎对称性,并确保差异的潜匿单位可以进修差异的对象。

  ·不要初始化太大的值。

  ·Kaiming He(He)初始化合用于具有ReLU激活成果的神经收集。

  ·Xavier初始化合用于具有双曲正切激活函数的神经收集。

  建设这篇文章的源代码可以在这里找到。

  (https://github.com/ImadDabbura/blog-posts/blob/master/notebooks/Coding-Neural-Network-Parameters-Initialization.ipynb)

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读