Long Short-Term Memory (LSTM)
Оновлено: 31.07.2023
Що означає LSTM?
Нейронні мережі LSTM (Long Short-Term Memory - довга короткочасна пам'ять) - це розширення RNN (рекурентна нейронна мережа), яке призначене для вивчення даних про послідовності та їхні довгострокові рамки точніше, ніж звичайні RNN. Простіше кажучи, вони зберігають інформацію. Традиційні RNN мають проблеми зі зникаючими градієнтами, тоді як ці мережі їх не мають.
Як працює LSTM?
Блоки довготривалої короткочасної пам'яті для глибокого навчання використовуються рекурентною нейронною мережею, щоб запропонувати контекст того, як програма отримує вхідні дані та генерує вихідні. Блок довготривалої короткочасної пам'яті - це складний блок, який включає в себе зважені входи, функції активації, попередні входи блоку та кінцеві виходи.
Оскільки програма використовує структуру, засновану на процесах короткочасної пам'яті, для побудови довготривалої пам'яті, блок називається довгим блоком короткочасної пам'яті. Такі системи часто використовуються, наприклад, для обробки природної мови.
- Задачі глибокого навчання, такі як розпізнавання мови, обробка природної мови, прогнозування фондового ринку та розпізнавання рукописного тексту, використовують LSTM модель
Рекурентна нейронна мережа використовує блоки довготривалої короткочасної пам'яті для оцінки окремого слова або фонеми в контексті інших у рядку, де пам'ять може допомогти фільтрувати та класифікувати ці типи вхідних даних. Загалом, нейронна мережа з довгою короткочасною пам'яттю є добре відомою і широко використовуваною ідеєю в розробці рекурентних нейронних мереж.
Архітектура LSTM
Стан комірки та її регулятори є основними компонентами традиційної архітектури LSTM. Одиницею пам'яті мережі є стан комірки. Стан комірки зберігає інформацію, яка може бути записана, прочитана або збережена в попередньому стані комірки за допомогою відкритих і закритих воріт.
Інформація з попередніх кроків також може потрапляти в стан комірки і нести відповідну інформацію протягом всієї обробки послідовності. Аналогові керуючі вентилі можна порівняти з множенням на тангенс або сигмоїдну функцію, які використовуються для їх реалізації. Ці вентилі функціонують аналогічно, визначаючи, яку інформацію дозволено вводити.
Використовуючи рекурентний процес навчання нейронної мережі, ворота обирають, які дані запам'ятовувати, а які відкидати протягом навчання.
Класична модель машинного навчання LSTM складається зі стану комірки та трьох воріт: воріт забуття, входу та виходу. Особливістю LSTM є техніка воріт у кожній комірці. Функція активації tanh використовується для обробки входу на кожному часовому кроці та прихованого шару з попереднього часового кроку для створення нового прихованого стану та виходу в стандартній комірці RNN.
- Воріт забуття визначає, що важливо зберегти з попереднього стану комірки. Простіше кажучи, він видаляє зі стану комірки інформацію, яка більше не є корисною. Це перший блок, представлений в архітектурі. Сигмоїдна функція активації використовується для передачі інформації з поточного входу і попереднього прихованого стану. Ворота отримують два входи - вхід у певний момент часу та попередній вихід комірки, які перемножуються з ваговими матрицями перед додаванням зсуву. Результат надсилається у функцію активації, яка видає двійкове значення. Якщо вихідне значення близьке до 0, це означає забути, а якщо близьке до 1 - зберегти.
- Вхідний вентиль вирішує, яку частину інформації в поточному стані комірки LSTM блока слід оновити. Він слугує джерелом інформації про стан комірки. Він складається з двох частин: спочатку ми використовуємо сигмоїдну функцію, щоб визначити, які значення будуть оновлені на основі попереднього прихованого стану і поточного входу. Потім, щоб керувати мережею, подаємо ті самі два входи. Функція tanh виробляє вектор зі значеннями від -1 до +1, що містить всі можливі значення. Щоб витягти значущу інформацію, значення вектора і керованих значень перемножуються.
Вихідний вентиль визначає поточний прихований стан, який потім передається наступному LSTM-блоку. Прихований стан використовується для прогнозування і містить інформацію з попередніх входів. Поточний прихований стан регулюється вихідним вентилем. Сигмоїдна функція задається попереднім прихованим станом і поточним входом. Поточний прихований стан отримується множенням цього виходу на вихід функції тангенса. Значення вектора і регульовані значення перемножуються і подаються на вихід і вхід наступної комірки.