LSTM-celle
forkortelse for Long Short-Term Memory cell
En LSTM-celle er en byggesten i LSTM-netværk, der kan lære at gemme og glemme information over tid.
Kort fortalt
En LSTM-celle er en særlig type neuron i et neuralt netværk, der kan huske information i lang tid.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
En enhed i et tilbagevendende neuralt netværk, der er designet til at håndtere lange afhængigheder ved hjælp af porter, der styrer informationsflowet.
- En LSTM-celle består af en glemmeport, en inputport og en outputport.
Hvornår bruges det
LSTM-celler bruges i sekvensmodellering, fx sprogmodeller og tidsserieanalyse, hvor det er vigtigt at huske tidligere input.
Formel
i_t = σ(W_i·[h_{t-1}, x_t] + b_i)
f_t = σ(W_f·[h_{t-1}, x_t] + b_f)
o_t = σ(W_o·[h_{t-1}, x_t] + b_o)
c̃_t = tanh(W_c·[h_{t-1}, x_t] + b_c)
c_t = f_t ⊙ c_{t-1} + i_t ⊙ c̃_t
h_t = o_t ⊙ tanh(c_t)Kodeeksempel
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def lstm_cell(x, h_prev, c_prev, W_i, W_f, W_o, W_c, b_i, b_f, b_o, b_c):
i = sigmoid(np.dot(W_i, np.concatenate([h_prev, x])) + b_i)
f = sigmoid(np.dot(W_f, np.concatenate([h_prev, x])) + b_f)
o = sigmoid(np.dot(W_o, np.concatenate([h_prev, x])) + b_o)
c_tilde = np.tanh(np.dot(W_c, np.concatenate([h_prev, x])) + b_c)
c = f * c_prev + i * c_tilde
h = o * np.tanh(c)
return h, cEn simpel implementering af en LSTM-celle i Python.
Oprindelse
Introduceret af Hochreiter og Schmidhuber i 1997 som en løsning på det forsvindende gradientproblem i RNN'er.
Afledte ord
2Kilder
1- Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735-1780.