Есть ли причина, по которой модель ML быстро сходится на значительном количестве обучающих данных? - PullRequest
1 голос
/ 04 апреля 2019

Я строю простую модель машинного обучения, используя керасы. Я надеюсь настроить модель для выполнения скалярной регрессии. Созданная мною модель невероятно быстро достигла сближения с тренировкой примерно через 9 эпох. Учебные данные состоят из около 84000 примеров, состоящих из 6 функций.

Я использую модель для 100 эпох с размером пакета 250. Я использую проверочный набор, который составляет 20% от обучающего набора.

Поскольку я запускаю это на своей локальной машине (одиночный процессор, без графического процессора), я ожидал, что для конвергенции потребуется больше времени, есть ли причина, по которой это может происходить?

Вот определение модели:

def regression_model():
    model = keras.Sequential()

    model.add(layers.Dense(64, activation=tf.nn.relu,
          input_shape(train_data.shape[1],)))
    model.add(layers.Dense(32, activation=tf.nn.relu))
    model.add(layers.Dense(32, activation=tf.nn.relu))
    model.add(layers.Dense(1))
    optimizer = tf.keras.optimizers.RMSprop(0.001)

    model.compile(loss='mse', optimizer=optimizer, metrics=['mae'])
    return model

Кроме того, при проверке потерь при обучении и валидации я обнаружил, что они примерно равны, что это значит. любая помощь, которая может быть оказана в этом, будет принята с благодарностью!

1 Ответ

1 голос
/ 04 апреля 2019

Под "скоростью" я предполагаю, что вы имеете в виду количество шагов до схождения.В этом случае скорость сходимости не имеет ничего общего с используемым оборудованием - это просто улучшает время (оставляя в стороне небольшие эффекты, которые ускорители могут оказывать на числовую точность).Размещенный вами код выглядит как очень простая модель с несколькими операциями, поэтому неудивительно, что он быстро выполняется на процессоре.

Кроме того, при проверке потерь при обучении и проверке я обнаружил, что они примерно равны, что это значит.

Это хорошо, это означает, что выне переоснащение.Если потеря при проверке становится больше, чем потеря при обучении, это указывает на переоснащение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...