«Лучшая» модель - «арт».Вы должны тестировать и тестировать, пока у вас не появится тот, который хорошо подходит вашим данным.
Но в основном у вас будут входные данные с формой (examples, time_steps, features)
, где:
examples
=чем больше значение, тем лучше time_steps
= длина (количество показаний) для каждого примера features = 3
.
Затем вы создадитемодель, которая начинается с:
inputs = Input((None, 3)) #variable time_steps, 3 features
Вы, вероятно, выиграете от использования нормализации этих значений, возможно, со слоем нормализации партии:
outputs = BatchNormalization()(inputs)
outputs = Activation('tanh')(outputs)
Затем вы запускаетеLSTM часть модели (количество слоев зависит от ваших тестов)
#any number of layers similar to this (this can also be 0)
outputs = LSTM(units, return_sequences=True, activation='tanh')(outputs)
#the last LSTM layer
outputs = LSTM(units, return_sequences=False, activation='tanh')(outputs)
Вы можете добавлять или не добавлять дополнительные классификационные слои, такие как:
#any number of classification layers, including 0
outputs = Dense(units)(outputs)
outputs = BatchNormalization()(outputs)
outputs = Activation('relu')(outputs)
#last classification:
outputs = Dense(1)(outputs)
outputs = BatchNormalization()(outputs)
outputs = Activatoin('sigmoid')(outputs)
Наконец, присоединяйтесь ко всем:
model = Model(intpus, outputs)
Обратите внимание, что это только пример модели.Это может сильно отличаться (включая ветки, объединения, механизмы внимания и т. Д., Но ваша проблема кажется достаточно простой).
Важными частями здесь являются:
- Понимание формы ввода
- Понимание того, что в последнем LSTM вы отбрасываете измерение "time_steps".
- Теперь ваша задача 2D -
(examples, units_or_features)
- Понимание того, что ваш последний слой должен иметь только одну единицу.(Таким образом, он может возвращать один результат в каждом примере)
- Ваши выходные данные также должны соответствовать этой форме:
(examples, 1)
- Понимание того, что последняя активация должна быть 'sigmoid', поэтому результат находится между 0 и 1.