Предположим, у меня есть сохраненная модель, которая почти на минимуме, но с некоторыми возможностями для улучшения. Например, потеря (как сообщает tf.keras.Models.model.evaluate ()) может составить 11,390, и я знаю, что модель может снизиться до 11,300.
Проблема в том, что попытки уточнить эту модель (используя tf.keras.Models.model.fit ()) последовательно приводят к тому, что веса получают начальный «толчок» в течение первой эпохи, что отправляет потери вверх. После этого он начинает уменьшаться, но не всегда сходится к правильному минимуму (и может даже не вернуться к тому, с чего начал).
Это выглядит так:
tf.train.RMSPropOptimizer (0,0002):
0 11.982
1 11.864
2 11.836
3 11.822
4 11.809
5 11.791
(...)
15 11.732
tf.train.AdamOptimizer (0,001):
0 14.667
1 11.483
2 11.400
3 11.380
4 11.371
5 11.365
tf.keras.optimizers.SGD (0,00001):
0 12.288
1 11.760
2 11.699
3 11.650
4 11.666
5 11.601
Набор данных с 30М наблюдениями, размер партии 500К во всех случаях.
Я могу смягчить это, уменьшив скорость обучения, но тогда, чтобы сойтись, потребуется вечность.
Есть ли какой-нибудь способ предотвратить "дикий" тренинг вначале, не влияя на уровень долгосрочной конвергенции?