2017-08-22 5 views
1

J'essaie de construire un réseau neuronal LSTM simple couche en utilisant keras qui a une couche de sortie Dense() avec un neurone (utilisé pour la régression).De quel pré-traitement ai-je besoin pour faire un pré-traitement de données avant d'entraîner un NST LSTM?

Je sais que les données d'apprentissage lorsque I fit() le modèle doivent être remis à l'échelle. De nombreux exemples en ligne redimensionnent à la fois l'entrée et la sortie dans la plage [0,1], d'autres dans la plage [-1,1].

Quel est le bon choix pour redimensionner l'entrée et la sortie pour un problème de régression simple comme le mien et pourquoi? Je sais que cela a à voir avec les fonctions d'activation utilisées par ex. sigmoid renvoie les valeurs dans [0,1].

J'ai vu que vous pouvez sélectionner la fonction d'activation et l'activation récurrente. Comment les fonctions d'activation sont-elles implémentées dans le contexte d'un LSTM() dans keras (par exemple, la porte d'entrée a un 'sigmoïde')?

Merci!

+0

vous obtiendrez probablement une réponse à cette question sur [ce site] (https://stats.stackexchange.com/questions/tagged/machine-learning), car ce n'est pas une question de programmation spécifique, et n'a rien à faire avec keras directement – DJK

Répondre

0

Pour la mise à l'échelle, j'utilise généralement la fonction preprocessing.scale de Scikit-Learn. Ça donne de bons résultats. Pour une explication plus approfondie, il est conseillé d'utiliser la fonction d'activation "RELU" pour résoudre les problèmes de gradient de fuite. Pour cette couche, vérifiez la réponse suivante: advantages of RELU. Pour votre deuxième couche (dernière), utilisez l'activation linéaire puisque vous effectuez une régression, si vous étiez en train de faire une classification, utilisez "sigmoïde".