Вопрос
- Почему такая большая разница между моими 'Потери в поезде' и 'Потери при проверке' , как показано на рисунке ниже?Является ли это сигналом того, что мои коды неверны и моя обученная сеть также неверна?

Вот некоторые из моих кодов:
DATA_SPLIT_PCT = 0.2
timesteps = 5
n_features = 20
epochs = 100
batch = 32
lr = 0.0001
lstm_autoencoder = Sequential([
# Encoder
LSTM(8, activation='relu', input_shape=(timesteps, n_features), return_sequences=True),
LSTM(4, activation='relu', return_sequences=False),
RepeatVector(timesteps),
# Decoder
LSTM(4, activation='relu', return_sequences=True),
LSTM(8, activation='relu', return_sequences=True)
TimeDistributed(Dense(n_features)),
])
adam = optimizers.Adam(lr)
lstm_autoencoder.compile(loss='mse', optimizer=adam)
for stock in stock_list: # 500 stocks in stock_list
lstm_autoencoder_history = lstm_autoencoder.fit(X_train_dict[ticker], X_train_dict[ticker],
epochs=epochs,
batch_size=batch,
validation_data=(X_valid_dict[ticker], X_valid_dict[ticker]),
verbose=False).history
plt.plot(lstm_autoencoder_history['loss'], linewidth=2, label='Train')
plt.plot(lstm_autoencoder_history['val_loss'], linewidth=2, label='Valid')
plt.show()
Я использовал цикл for для подачи своих данных в lstm_autoencoder
сеть.В переменной словаря stock_list
есть 500 названий акций, таких как «AAPL».
Я подготовил lstm_autoencoder_history['loss']
и lstm_autoencoder_history['val_loss']
, и это странно, потому что обычно потери при проверке превышают потери при поезде.
Мне любопытночтобы знать, почему мой график имеет меньшую сумму проверки.Для вашей информации я использовал Keras в качестве основы глубокого обучения.И поскольку я использовал Keras, я думал, что эта библиотека будет обрабатывать различную пропорцию размера обучающего набора и размера проверочного набора путем усреднения ошибок.