[PYTHON] LSTM (1) pour la prédiction de séries chronologiques (pour les débutants)

Cette fois, à propos de LSTM. Les problèmes de prévision pour des phénomènes réguliers tels que les séries chronologiques peuvent être une approche utile. Puisqu'il s'agit d'une sortie pour ma propre compréhension, j'ai presque retracé le site de référence une fois. LSTM(Long Short-Term Memory) En un mot, la mémoire à court terme est utilisée pendant une longue période pour promouvoir l'apprentissage. Il y a une fonctionnalité. Le schéma de la partie LSTM est le suivant. スクリーンショット 2020-03-01 19.57.58.png Dans le calcul avec ht, utilisez les résultats de sortie précédents ht-1 et Xt. ht est une image utilisée pour trouver ht + 1. Chaque, ・ OutputGate ・ Oubliez la porte ・ Porte d'entrée ・ Partie fonction d'activation ・ Cellule mémoire Consiste en OutputGate La partie rouge de la flèche ci-dessous. Utilisation de la conversion linéaire Wo pour Xt, de la conversion linéaire Ro pour ht et du biais Bo Ot=σ(WoXt+Roht−1+Bo) Est calculé. Une formule similaire à celle d'un réseau de neurones. スクリーンショット 2020-03-01 20.22.56.png Forget Gate Comme OutputGate Il existe des paramètres Wf, Rf, Bf ft=σ(WfXt+Rfht−1+Bf) Est calculé. スクリーンショット 2020-03-01 20.30.57.png Input Gate De même it=σ(WiXt+Riht−1+Bi) Est calculé. スクリーンショット 2020-03-01 20.33.26.png

Partie fonction d'activation

Zt=tanh(WzXt+Rzht−1+Bz) Formule de calcul pour la partie fonction d'activation. スクリーンショット 2020-03-01 20.39.47.png

Calcul près de la cellule mémoire

① Oubliez le côté de la porte

Par ft = σ (WfXt + Rfht − 1 + Bf) et sortie Ct-1 à partir de la ligne pointillée de la cellule La sortie est Ct − 1 ⊗ ft. ⊗ est le produit de chaque élément スクリーンショット 2020-03-01 20.43.05.png

② Côté porte d'entrée

Par it = σ (WiXt + Riht − 1 + Bi) et Zt = tanh (WzXt + Rzht − 1 + Bz) Une sortie appelée ⊗ Zt. スクリーンショット 2020-03-01 20.44.28.png

③ Avant la cellule

Par Ct − 1 ⊗ ft dans ① et il ⊗ Zt dans ② Ct = Ct−1 ⊗ ft + it ⊗ Zt Est calculé. スクリーンショット 2020-03-01 20.45.04.png

④ Près de la sortie

Pièce de cellule mémoire Ct = it ⊗ Zt + Ct − 1 ⊗ ft Partie porte de sortie Ot = σ (WoXt + Roht − 1 + Bo) En utilisant ht = Ot ⊗ tanh(Ct) Est fait. スクリーンショット 2020-03-01 20.45.28.png

Points LSTM

Ct = Ct−1 ⊗ ft + it ⊗ Zt Ct-1 ⊗ ft Dans la partie Forget Gate, Ct-1 ajuste dans quelle mesure il reflète les paramètres des informations passées. La partie d'entrée ⊗ Zt ajuste la mesure dans laquelle la valeur d'entrée obtenue est reflétée par la fonction d'activation Zt.

référence

[Les bases de LSTM qui ne peuvent pas être entendues maintenant] (https://www.hellocybernetics.tech/entry/2017/05/06/182757)

Recommended Posts

LSTM (1) pour la prédiction de séries chronologiques (pour les débutants)
Statistiques de mouvement pour la prédiction de séries chronologiques
Détection d'anomalies de données chronologiques pour les débutants
Une méthode d'étude pour les débutants pour apprendre l'analyse des séries chronologiques
Prédiction des données de séries chronologiques par projection simplex
[Pour les débutants] Script dans les 10 lignes (5. Rééchantillonnage des données de séries chronologiques à l'aide de pandas)
Décomposition des séries temporelles
Python: analyse des séries chronologiques
Détection d'anomalies des données de séries chronologiques par LSTM (Keras)
Question sur la série chronologique Python
Manuel python pour les débutants
Analyse des séries chronologiques 1 Principes de base
Algorithme Dikstra pour les débutants
OpenCV pour les débutants en Python
Afficher les séries chronologiques TOPIX
Diagramme de séries chronologiques / Matplotlib
Principes de base de Pandas pour les débutants ④ Gestion des éléments de date et d'heure
Défi pour les prévisions de ventes futures: ① Qu'est-ce que l'analyse des séries chronologiques?
Flux d'apprentissage pour les débutants en Python
[Pour les débutants] kaggle exercice (merucari)
Distribution Linux recommandée pour les débutants
CNN (1) pour la classification des images (pour les débutants)
Construction de l'environnement Python3 (pour les débutants)
Vue d'ensemble de Docker (pour les débutants)
Installation de la série Python 3 pour Mac
Python #function 2 pour les super débutants
Analyse des séries chronologiques partie 4 VAR
Analyse de séries chronologiques Partie 3 Prévisions
Les bases de Seaborn pour les débutants ④ Pairplot
Grammaire de base Python pour les débutants
[Python] Tracer des données de séries chronologiques
Prévision du cours de l'action avec LSTM_1
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Pour les débutants de Kaggle] Titanic (LightGBM)
Analyse de séries chronologiques Partie 1 Autocorrélation
Mémorandum de commande Linux [pour les débutants]
Raccourci Linux pratique (pour les débutants)
Il est maintenant temps d'installer DB avec Docker! Installation de la base de données pour les débutants sur Docker