Я намагаюся зрозуміти архітектуру RNN. Я знайшов цей підручник, який був дуже корисним: http://colah.github.io/posts/2015-08-U Understanding-LSTMs/
Як це вписується у мережу передачі даних? Це зображення лише черговий вузол у кожному шарі?
Я намагаюся зрозуміти архітектуру RNN. Я знайшов цей підручник, який був дуже корисним: http://colah.github.io/posts/2015-08-U Understanding-LSTMs/
Як це вписується у мережу передачі даних? Це зображення лише черговий вузол у кожному шарі?
Відповіді:
А насправді є повним шаром. Вихід шару , насправді є вихід нейронів, який можна підключити до шару softmax (якщо ви хочете, наприклад, класифікації для етапу часу ), або будь-якого іншого, наприклад, іншого шару LSTM, якщо ви хочете заглиблюватися. Вхід цього шару - це те, що відрізняє його від звичайної мережі подачі: він приймає і вхід і повний стан мережі на попередньому кроці часу (і і інші змінні з комірки LSTM ).
Зверніть увагу, що - вектор. Отже, якщо ви хочете зробити аналогію з регулярною мережею подачі з 1 прихованим шаром, то A можна вважати таким, що займає місце всіх цих нейронів у прихованому шарі (плюс додаткова складність повторюваної частини).
На вашому зображенні A - це один прихований шар з одним прихованим нейроном. Зліва направо - вісь часу, а внизу ви отримуєте вхід кожного разу. Угорі мережу можна було б розширити, додавши шари.
Якщо ви розгорнули цю мережу в часі, як це візуально показано на вашому малюнку (зліва направо розгорнута вісь часу), ви отримаєте подачу мережі з T (загальна кількість кроків часу) прихованих шарів, кожен з яких містить одиничний вузол (нейрон), як намальовано в середині блоку А.
Сподіваюся, що це відповість на ваше запитання.
Я хотів би пояснити цю просту діаграму у відносно складному контексті: механізм уваги в декодері моделі seq2seq.
На схемі потоку нижче, до - це етапи часу (такої ж довжини, що і номер вводу з PAD для пробілів). Кожного разу, коли слово вводиться в нейтральний L-ть (часовий крок) LSTM (або клітинку ядра, те саме, що будь-хто із трьох на вашому зображенні), воно обчислює вихідний вивід відповідно до його попереднього стану ((i-1) -го виводу) та i-й вхід. Я ілюструю вашу проблему, використовуючи це, тому що всі стани часового кроку зберігаються для механізму уваги, а не просто відкидаються лише для отримання останнього. Це лише один нейронний і розглядається як шар (кілька шарів можна складати, щоб утворити, наприклад, двонаправлений кодер в деяких моделях seq2seq, щоб отримати більш абстрактну інформацію у більш високих шарах).
Потім воно кодує речення (зі словами L, і кожне з них представлене як вектор фігури: embedding_dimention * 1) у список тензорів L (кожна з фігури: num_hidden / num_units * 1). І минуле стан декодера - це лише останній вектор, як речення, що вбудовує однакову форму кожного елемента в список.
Джерело зображення: Механізм уваги