Цель
У меня странная ситуация, когда я пытаюсь создать эффективный автокодер для моего набора данных временных рядов:
X_train (200, 23, 178)
X_val (100, 23, 178)
X_test (100, 23, 178)
Текущая ситуация
Благодаря простому автоэнкодеру у меня лучше результаты, чем у моего простого LSTM AE, по сравнению с набором данных временных рядов.
У меня есть некоторые опасения по поводу использования слоя-оболочки Repeat Vector ,который, насколько я понял, должен повторять количество раз, как длина последовательности, последнее состояние ячейки LSTM / GRU, чтобы соответствовать входной форме слоя декодера.
Модель делаетНе возникает никаких ошибок, но все же результаты на порядок хуже, чем у простой АЕ, хотя я ожидаю, что она будет, по крайней мере, такой же, как я использую архитектуру, которая должна надлежащим образом соответствовать задаче домена.Тем не менее, реконструкция выглядит не совсем хорошо, только шум. ![enter image description here](https://i.stack.imgur.com/9Awfu.png)
Моя модель AE:
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 178) 31862
_________________________________________________________________
batch_normalization (BatchNo (None, 178) 712
_________________________________________________________________
dense_1 (Dense) (None, 59) 10561
_________________________________________________________________
dense_2 (Dense) (None, 178) 10680
=================================================================
- оптимизатор: sgd
- потеря: mse
- функция активации плотных слоев: relu
My LSTM / GRU AE:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 23, 178) 0
_________________________________________________________________
gru (GRU) (None, 59) 42126
_________________________________________________________________
repeat_vector (RepeatVector) (None, 23, 59) 0
_________________________________________________________________
gru_1 (GRU) (None, 23, 178) 127092
_________________________________________________________________
time_distributed (TimeDistri (None, 23, 178) 31862
=================================================================
- оптимизатор:sgd
- loss: mse
- функция активации слоев gru: relu
Я делаю какую-то огромную ошибку в отношении некоторых допущений при использовании этих повторяющихся слоев?Или у вас есть предложения о том, как это отладить?