- Pour les données ou images de séries chronologiques, différents filtres, kernel_size et foulées signifient que différentes caractéristiques de haute dimension sont produites.
- Le même élément de données, comment améliorer la capacité expressive du réseau. Un réseau plus large peut-il obtenir de meilleurs résultats qu'un réseau profond? C'est le problème que cet article doit résoudre.
- Pour la description des données, veuillez vous référer à l'article précédent https://www.jianshu.com/p/21b96d597367
Structure du réseau
# 定义多通道特征组合模型
def build_multi_cr_lstm_model(ts, fea_dim):
# 定义输入
inputs = Input(shape = (ts, fea_dim))
# ########################################
# cnn层&lstm层1
cnn_left_out1 = Conv1D(filters=50, kernel_size=6, strides=3, kernel_initializer=he_normal(seed=3))(inputs)
act_left_out1 = LeakyReLU()(cnn_left_out1)
lstm_left_out1 = LSTM(64, activation='sigmoid', dropout=0.1, return_sequences=False,
kernel_initializer=he_normal(seed=10))(act_left_out1)
# #########################################
# cnn层&lstm层2
cnn_right_out1 = Conv1D(filters=50, kernel_size=12, strides=3, kernel_initializer=he_normal(seed=3))(inputs)
act_right_out1 = LeakyReLU()(cnn_right_out1)
lstm_right_out1 = LSTM(64, activation='sigmoid', dropout=0.1, return_sequences=False,
kernel_initializer=he_normal(seed=10))(act_right_out1)
# #########################################
# cnn层&lstm层3
cnn_mid_out1 = Conv1D(filters=50, kernel_size=6, strides=2, kernel_initializer=he_normal(seed=3))(inputs)
act_mid_out1 = LeakyReLU()(cnn_mid_out1)
lstm_mid_out1 = LSTM(64, activation='sigmoid', dropout=0.1, return_sequences=False,
kernel_initializer=he_normal(seed=10))(act_mid_out1)
# ############################################
# 上层叠加新的dense层
concat_output = Concatenate(axis=1)([lstm_left_out1, lstm_mid_out1, lstm_right_out1])
outputs = Dense(1)(concat_output)
model_func = Model(inputs=inputs, outputs=outputs)
model_func.compile(loss='mse', optimizer=Adam(lr=0.002, decay=0.01), metrics=['mse'])
return model_func
image.png
- On peut voir que les entrées sont utilisées comme données d'entrée pour les trois réseaux. CNN1 + LSMT1, CNN2 + LSTM2, CNN3 + LSTM3 ont obtenu respectivement 3 caractéristiques de haute dimension, et finalement connectés à la couche dense pour sortir les résultats de prédiction
Comparaison des résultats de prédiction avec les résultats de l'article ci-dessus
-
effet de base:
Le mse normalisé et le mse d'origine sont respectivement 0,00167 et 1606
-
Effet monocanal réseau complexe cnn + lstm:
La mse normalisée et la mse d'origine sont respectivement 0,0090666 et 869
-
Effet multicanal réseau complexe cnn + lstm:
Le mse normalisé et le mse d'origine sont respectivement 0,0008297 et 795
On peut voir que l'effet du réseau complexe est extrêmement amélioré, mse est réduit de 50%, mais l'amélioration du multi-canal est relativement faible par rapport au mono-canal. Si la performance temporelle est recherchée, le canal unique de cnn + lsmt + dense peut déjà être en mesure de répondre à la demande dans la plupart des cas
Conjecture sur la raison de l'amélioration
- Le cnn avec différents réglages de paramètres obtient différentes expressions de caractéristiques de haute dimension, ce qui enrichit l'entrée de caractéristiques du modèle et obtient ainsi un meilleur effet de prédiction.
Comparaison des courbes ajustées
-
La première image est le diagramme d'appareillage de réseau lstm profond, la deuxième image est le diagramme d'appareillage monocanal cnn + lstm et la troisième image est le diagramme d'ajustement réseau multicanal cnn + lstm.
image.png
image.png
image.png
En pensant
Pour différentes données, comment appliquer le même réseau complexe est une question qui doit être examinée à l'étape suivante. Et l'introduction de l'attention
Auteur: yangy_fly
lien: https: //www.jianshu.com/p/c428efc6966e
Source: Les livres de Jane
sont protégés par les droits d'auteur de l'auteur. Pour les réimpressions commerciales, veuillez contacter l'auteur pour l'autorisation, et pour les réimpressions non commerciales, veuillez indiquer la source.