Понимание эпохи, размера партии, точности и производительности в модели прогнозирования lstm - PullRequest
0 голосов
/ 20 апреля 2019

Я новичок в машинном обучении и lstm.Я ссылаюсь на эту ссылку LSTM для многоэтапного прогнозирования для модели LSTM кодировщика-декодера с многовариантным разделом ввода.

Вот мое описание набора данных после изменения конфигурации поезда и тестового набора.

print(dataset.shape)
print(train_x.shape, train_y.shape)
print((test.shape)

(2192, 15)
(1806, 14, 14) (1806, 7, 1)
(364, 15)

Сверху у меня есть n_input=14, n_out=7.

Вот мое описание модели lstm:

def build_model(train, n_input):
    # prepare data
    train_x, train_y = to_supervised(train, n_input)
    # define parameters
    verbose, epochs, batch_size = 2, 100, 16
    n_timesteps, n_features, n_outputs = train_x.shape[1], train_x.shape[2], train_y.shape[1]
    # reshape output into [samples, timesteps, features]
    train_y = train_y.reshape((train_y.shape[0], train_y.shape[1], 1))
    # define model
    model = Sequential()
    model.add(LSTM(200, activation='relu', input_shape=(n_timesteps, n_features)))
    model.add(RepeatVector(n_outputs))
    model.add(LSTM(200, activation='relu', return_sequences=True))
    model.add(TimeDistributed(Dense(100, activation='relu')))
    model.add(TimeDistributed(Dense(1)))
    model.compile(loss='mse', optimizer='adam')
    # fit network
    model.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, verbose=verbose)
    return model

При оценке модели я получаю вывод в виде:

Epoch 98/100
 - 8s - loss: 64.6554
Epoch 99/100
 - 7s - loss: 64.4012
Epoch 100/100
 - 7s - loss: 63.9625

Согласно моему пониманию: (Пожалуйста, исправьте меня, если я ошибаюсь)

Here my model accuracy is 63.9625 (увидев последнюю эпоху 100).Кроме того, это нестабильно, поскольку существует разрыв между эпохой 99 и эпохой 100.

Вот мои вопросы:

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

  2. Правильно ли определено время, указанное выше, партия, n_input для модели?

  3. Какя могу увеличить точность моей модели?Является ли приведенный выше размер набора данных достаточным для этой модели?

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

Ответы [ 2 ]

2 голосов
/ 20 апреля 2019

Наличие очень большого размера эпохи не обязательно улучшит вашу точность.Размеры эпох могут повысить точность до определенного предела, за которым вы начинаете перегонять свою модель.Наличие очень низкого также приведет к недостаточной комплектации.Смотрите это .Так что, глядя на огромную разницу между эпохой 99 и эпохой 100, вы уже можете сказать, что переизбираете модель.Как правило, когда вы замечаете, что точность перестает расти, это идеальное количество эпох, которое у вас должно быть обычно между 1 и 10. 100 уже кажутся слишком большими.

Размер партии не влияет на вашу точность.Это просто используется для управления скоростью или производительностью на основе памяти в вашем GPU.Если у вас огромная память, у вас может быть огромный размер пакета, поэтому обучение будет быстрее.

Что вы можете сделать, чтобы повысить свою точность, так это: 1. Увеличьте свой набор данных для обучения.2. Попробуйте вместо этого использовать сверточные сети.Узнайте больше о сверточных сетях на этом канале YouTube или, в двух словах, CNN поможет вам определить, на какие функции следует обратить внимание при обучении вашей модели.3. Попробуйте другие алгоритмы.

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

Нет четко определенной формулы для размера партии. Как правило, больший размер партии будет работать быстрее, но может поставить под угрозу вашу точность. Вам придется поиграться с номером.

Тем не менее, один компонент в отношении пропущенных вами эпох - это проверка. Нормально иметь проверочный набор данных и наблюдать, повышается или уменьшается эта точность по этому набору данных. Если точность этого набора данных возрастет, вы можете умножить скорость обучения на 0,8. Смотрите эту ссылку: https://machinelearningmastery.com/difference-test-validation-datasets/

...