Tak jak wielu innych, znalazłem tu i tutaj zasoby niezwykle przydatne do zrozumienia komórek LSTM. Jestem pewien, że rozumiem, w jaki sposób wartości płyną i są aktualizowane, i jestem wystarczająco pewny, aby dodać wspomniane „połączenia z wizjerami” itp.
W moim przykładzie za każdym razem mam wektor wejściowy długości i
i wektor wyjściowy długości o
, gdzie o < i
.
Żadna ze stron tak naprawdę nie obejmuje tego, w jaki sposób są one rozmieszczane i szkolone.
Mam 2 pytania:
- W moich danych treningowych mam wiele par wektorów wejścia / wyjścia odpowiadających wielu, wielu jednostkom czasu. Załóżmy, że trenuję LSTM ze wszystkimi danymi. Czy mogę następnie uruchomić zestaw danych o dowolnej długości? Mam na myśli to, że jeśli mam dane szkoleniowe dla, powiedzmy, całego 2015 i 2016 roku, czy mogę następnie przesyłać dane przez sieć za 2017 rok? A może 2017 do 2020 roku?
- Zgodnie z tym, co przeczytałem, wydaje mi się, że mam jedną komórkę LSTM na jednostkę czasu, więc jeśli mam wiele jednostek czasu, to mam wiele połączonych komórek LSTM. Ponieważ długość łańcucha zależy od długości danych, które chcę uruchomić przez sieć, a to jest prawdopodobnie arbitralne, nie widzę, jak bym to wytrenował, chyba że wytrenuję tylko jedną komórkę LSTM, która następnie powiela liczbę czasy. Wygląda więc na to, że wyszkoliłbym pojedynczą komórkę LSTM, a następnie łańcuch
n
ich razem dla danej listy wektorów wejściowych o długościn
? Mimo że pojedyncza komórka LSTM zawiera wiele elementów i funkcji, wydaje się, że nie wystarczy uchwycić tak wiele informacji w czymś tak małym?
Dzięki. Czy są jakieś inne zasoby, które mogę zużyć (stosunkowo szybko), które pomogą mi zrozumieć szczegóły wdrożenia? Powyższe 2 linki dały fantastyczny obraz tego, co się dzieje, ale nie udało się uchwycić tych drobniejszych szczegółów.