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. 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, c

En 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

2

Kilder

1
  • Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735-1780.