美文网首页
机器学习中的随机性

机器学习中的随机性

作者: 小一一93 | 来源:发表于2019-07-29 10:15 被阅读0次

1. 数据集的随机性

使用不同的数据训练,机器学习算法会生成不同的模型。模型与不同数据之间的差异称为模型方差(如偏差方差权衡)。
数据是随机性来源之一

2. 数据观测顺序的随机性

暴露给模型的数据顺序会影响模型的内部决策,有些模型对此比较敏感,如神经网络。
tips:每次训练迭代之前最好随机shuffle一下。

对训练集使用shuffle的作用

固定的数据集顺序意味着固定的训练样本,也就意味着权值更新的方向是固定的,而无顺序的数据集,意味着更新方向是随机的。(如果是固定顺序,网络可能会将顺序作为一个特征提取出来,后续的模型会严重依赖顺序,所以需要shuffle,将顺序打乱)

如下图中的A点,如果固定的更新方向是红色箭头方向,则很难收敛到最优点,而如果更新方向是随机的,则有可能就沿着白色箭头方向收敛到最优点。


image.png

所以固定的数据集顺序,严重限制了梯度优化方向的可选择性,导致收敛点选择空间严重变少,容易导致过拟合。
所以模型是会记住数据路线的,所以shuffle很重要,一定要shuffle。

3. 算法的随机性

算法利用随机性
算法会初始化一个随机状态,如神经网络的初始权值等。
对于基于deterministic method训练的算法来说,在vote相同的情况下,可能会依赖于随机性来解决。

为什么要随机生成初始化权值?

打破对称性。
初始化权值的不同,因此可以有机会找到相同问题的不同解决方案。


image.png

在神经网络中,假设将所有权重初始化为相同的值(例如,0或1)。在这种情况下,每个隐藏单元都会得到完全相同的信号。如果将所有权重初始化为1,则每个单元得到的信号等于输入(和输出)之和sigmoid(sum(inputs)))。如果所有的权重都是零,更糟糕的是,每个隐藏的单位都会得到零信号。无论输入是什么,如果所有权重相同,隐藏层中的所有单位也将是相同的。

4. 一些训练技巧的随机性

一些训练技巧本身也会引入随机性来对抗过拟合,比如 dropout。

5. 重采样的随机性

评估模型的时候进行采样,使用诸如将数据分割成随机训练和测试集、k-折叠交叉验证来生成k个随机分割数据集。用以评估模型的表现。

总结

毫无疑问,随机性在机器学习中扮演了重要角色

随机种子与可重复的结果

通过在数据集上运行算法来生成模型。那么,是否能够每次在同一个数据集上运行算法都得到一样的模型呢?

可以。

可以通过使用完全一样的代码、数据和一系列随机数来实现使用机器学习的可重复性。目前程序中的随机数是由伪随机数生成器生成的,这些伪随机数生成器的函数是确定性的,只要使用相同的随机种子,就能够得到相同的一系列随机数。

因此在每次构造模型之前给定固定的随机种子,就可以复现模型。

通过给定相同的随机种子,可以比较算法和一些数据处理等(保证模型每次能生成相同的结果,以此控制变量,来评估做的一些处理、调整等对结果的影响)。It should be a default part of each experiment we run.

相关文章

网友评论

      本文标题:机器学习中的随机性

      本文链接:https://www.haomeiwen.com/subject/krpvrctx.html