ANN - 速度初始化

时间:2017-10-21 01:49:38

标签: machine-learning neural-network gradient-descent momentum

在尝试实施神经网络训练算法的过程中,我遇到了不同的概念,包括渐变下降,它试图模仿一个滚下山坡的球,以及速度势头更好地塑造滚球。

我初始化了我的weightsweight_deltasweight_velocities因此:

sizes = [2, 3, 1]
momentum_coefficient = 0.5    
weights = [ 2 * np.random.random((a, b)) - 1 for a, b in zip(sizes[:-1], sizes[1:]) ]
weight_velocities = [ np.ones(w.shape) for w in weights ]
weight_deltas = [ np.zeros(w.shape) for w in weights ]

在计算增量(成本函数相对于权重的导数)后,我updated权重:

for l in xrange(sizes - 1):
    weight_velocities[l] = (momentum_factor * weight_velocities[l]) - weight_deltas[l]
    weights[l] += weight_velocities[l]

我使用np.zeros来初始化我的速度,并且我能够达到 80%准确度(用于特定数据集)。但是当我使用np.ones初始化时,我无法达到 20%的准确度。我一直在使用ones,但我无法弄清楚为什么zeros可行。还有来自random的{​​{1}}方法。

初始化numpy的推荐方法是什么? 请注意,我有意排除了偏见单位和学习率,我是weight_velocities import

0 个答案:

没有答案