Вывод LSTM производит инвариантный вывод - PullRequest
0 голосов
/ 04 июня 2019

Это пример моего тренировочного набора.

k1, k2, k3, k4, k5, k6, k7, k8, k9, k10
48, 45,  0,  0,  0,  0,  0,  0, 41,  30
 0,  0,  0,  0,  0,  0,  0,  0,  0,  34
46,  0,  0,  0,  0,  0,  0,  0,  0,  39
48,  0,  0,  0,  0,  0,  0,  0,  0,  41
47,  0,  0,  0,  0,  0,  0,  0, 48,  43
...

Каждая строка представляет одну временную метку. Я полагал, что временный тип набора данных хорош в LSTM, поэтому я обучил нейронную сеть с несколькими уровнями LSTM и ожидал новый набор данных. Я уменьшил набор данных до диапазона [0,1], прежде чем кормить им модель. После обучения 800 эпох с размером пакета 40, каждый ряд в наборе данных, который он произвел, не отличается от другого. Это последний выход после масштабирования до исходного диапазона.

array([[7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
...

Модель нейронной сети, которую я скомпилировал, как таковая

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_1 (LSTM)                (None, 10, 1200)          5812800   
_________________________________________________________________
lstm_2 (LSTM)                (None, 10, 1200)          11524800  
_________________________________________________________________
dropout_1 (Dropout)          (None, 10, 1200)          0         
_________________________________________________________________
lstm_3 (LSTM)                (None, 10, 1200)          11524800  
_________________________________________________________________
lstm_4 (LSTM)                (None, 1200)              11524800  
_________________________________________________________________
dropout_2 (Dropout)          (None, 1200)              0         
_________________________________________________________________
dense_1 (Dense)              (None, 1000)              1201000   
_________________________________________________________________
dense_2 (Dense)              (None, 1000)              1001000   
_________________________________________________________________
dropout_3 (Dropout)          (None, 1000)              0         
_________________________________________________________________
dense_3 (Dense)              (None, 1000)              1001000   
_________________________________________________________________
dense_4 (Dense)              (None, 1000)              1001000   
_________________________________________________________________
dropout_4 (Dropout)          (None, 1000)              0         
_________________________________________________________________
dense_5 (Dense)              (None, 10)                10010     
=================================================================
Total params: 44,601,210
Trainable params: 44,601,210
Non-trainable params: 0
_________________________________________________________________

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

Моя процедура / понимание неверны? Что я могу сделать, чтобы улучшить свою модель?

...