我正在实施一个多层感知器,我正在玩我在课堂上听到的一些不同的功能,其中一个是定期随机化重量。我目前的方法是每隔几个时期将其中的一小部分随机化,但似乎在随机化到足以错过局部最小值和随机化太多以使其难以收敛之间存在细微差别。目前,我在一个约4000次观测的训练集上运行64,30,10多层感知器,并且每10个时期随机化1%的权重。
任何人对合理数量的随机化都有任何意见?这是一个很好的数额还是应该少做?我是以错误的方式解决这个问题吗?
答案 0 :(得分:0)
Afaik现在没有人这样做(正如你所说的那样 - 这种事情需要任意修复任意数字)。有很多技巧可以让你的学习更好 - SGD(而不是完全渐变);不同类型的规范化(如批量规范);动量(例如亚当);如果你想在某处注入噪音,请将不添加到权重中的噪音 - 将其注入样本,标签,而不是注入重量(除非你将旧的保留在内存中以便你可以退避有些事情真的错了)。网络的灵敏度。权重是一个复杂的,难以模拟的东西,(为了做得好)需要诸如计算完整的Fisher矩阵之类的东西。与计算(和实现!)成本相比,这种方法的好处实际上很小。 / p>