ANN - инициализация скорости

Пытаясь реализовать алгоритмы обучения нейронной сети, я натолкнулся на различные концепции, включая концепцию градиентного спуска, которая пытается имитировать шарик, катящийся по склону, и скорости и импульса, чтобы лучше моделировать катящийся шарик.

Я инициализировал мой weights, weight_deltas, а также weight_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 ]

После вычисления дельт (производной функции стоимости по весам, я обновил вес таким образом:

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 метод из numpy,

Какой рекомендуемый подход для инициализации weight_velocities? Обратите внимание, что я намеренно исключил единицы смещения и скорость обучения, и я importИНГ numpy as np,

0 ответов

Другие вопросы по тегам