Рекуррентная нейронная сеть - Recurrent neural network

Рецидивирующий нейронная сеть ( РННЫ ) является классом искусственных нейронных сетей , где соединение между узлами образуют ориентированный граф вдоль временной последовательности. Это позволяет ему демонстрировать динамическое поведение во времени. Полученные из нейронных сетей прямого распространения, RNN могут использовать свое внутреннее состояние (память) для обработки последовательностей входных данных переменной длины. Это делает их применимыми для таких задач, как несегментированное связанное распознавание рукописного ввода или распознавание речи . Рекуррентные нейронные сети теоретически являются полными по Тьюрингу и могут запускать произвольные программы для обработки произвольных последовательностей входных данных.

Термин «рекуррентная нейронная сеть» используется без разбора для обозначения двух широких классов сетей с аналогичной общей структурой, где одна - конечный импульс, а другой - бесконечный импульс . Оба класса сетей демонстрируют временное динамическое поведение . Конечная импульсная рекуррентная сеть - это направленный ациклический граф, который можно развернуть и заменить нейронной сетью со строго прямой связью, в то время как бесконечная импульсная рекуррентная сеть - это направленный циклический граф, который нельзя развернуть.

Как конечные импульсные, так и бесконечные импульсные рекуррентные сети могут иметь дополнительные сохраненные состояния, и хранилище может находиться под прямым контролем нейронной сети. Хранилище также можно заменить другой сетью или графиком, если в нем есть временные задержки или петли обратной связи. Такие контролируемые состояния называются стробированными состояниями или стробированной памятью и являются частью сетей долговременной краткосрочной памяти (LSTM) и стробированных рекуррентных единиц . Это также называется нейронной сетью с обратной связью (FNN).

В типичных библиотеках, таких как PyTorch, своевременная компиляция играет важную роль в эффективной реализации повторяющихся нейронных сетей.

История

Рекуррентные нейронные сети были основаны на работе Дэвида Рамелхарта в 1986 году. Сети Хопфилда - особый вид RNN - были (повторно) открыты Джоном Хопфилдом в 1982 году. В 1993 году система компрессора нейронной истории решила «очень глубокое обучение». задача, потребовавшая более 1000 последующих слоев в РНС, развернулась во времени.

LSTM

Сети с долговременной краткосрочной памятью (LSTM) были изобретены Хохрайтером и Шмидхубером в 1997 году и установили рекорды точности во многих областях применения.

Примерно в 2007 году LSTM начала революцию в распознавании речи , превзойдя традиционные модели в некоторых речевых приложениях. В 2009 году сеть LSTM, обученная методом Connectionist Temporal Classification (CTC), стала первой RNN, выигравшей соревнования по распознаванию образов, когда она выиграла несколько соревнований по распознаванию рукописного ввода . В 2014 году китайская компания Baidu использовала RNN, обученные CTC, чтобы преодолеть тест набора данных 2S09 Switchboard Hub5'00 по распознаванию речи без использования каких-либо традиционных методов обработки речи.

LSTM также улучшил распознавание речи с большим словарным запасом и синтез текста в речь и использовался в Google Android . Сообщается, что в 2015 году производительность распознавания речи Google резко выросла на 49% благодаря обученному CTC LSTM.

LSTM побила рекорды по улучшению машинного перевода , языкового моделирования и многоязычной обработки языков. LSTM в сочетании со сверточными нейронными сетями (CNN) улучшили автоматические подписи к изображениям .

Архитектура

RNN бывают разных вариантов.

Полностью повторяющийся

Развернутая базовая рекуррентная нейронная сеть

Полностью рекуррентные нейронные сети (FRNN) соединяют выходы всех нейронов со входами всех нейронов. Это наиболее общая топология нейронной сети, потому что все другие топологии могут быть представлены установкой некоторых весов соединений равными нулю, чтобы имитировать отсутствие соединений между этими нейронами. Иллюстрация справа может ввести многих в заблуждение, потому что практические топологии нейронных сетей часто организованы в «слои», и рисунок дает такой вид. Однако то, что кажется слоями , на самом деле представляет собой разные шаги во времени одной и той же полностью рекуррентной нейронной сети. Крайний левый элемент на иллюстрации показывает повторяющиеся соединения в виде дуги с меткой «v». Он «разворачивается» во времени, чтобы создать вид слоев .

Сети Эльмана и Иорданские сети

Сеть Эльмана

Эльман сеть представляет собой трехслойную сеть (расположены горизонтально , как х , у и г на рисунке) с добавлением множества контекстов единиц ( U на рисунке). Средний (скрытый) уровень связан с этими блоками контекста с весом, равным единице. На каждом временном шаге входные данные передаются вперед, и применяется правило обучения . Фиксированные обратные соединения сохраняют копию предыдущих значений скрытых единиц в единицах контекста (поскольку они распространяются по соединениям до применения правила обучения). Таким образом, сеть может поддерживать своего рода состояние, позволяя ей выполнять такие задачи, как предсказание последовательности, которые выходят за рамки возможностей стандартного многослойного персептрона .

Сети Иордании похожи на сети Элмана. Единицы контекста загружаются из выходного слоя, а не из скрытого слоя. Блоки контекста в сети Иордании также называются уровнем состояния. У них есть постоянная связь с самими собой.

Сети Элмана и Джордана также известны как «Простые рекуррентные сети» (SRN).

Сеть Эльмана
Иорданская сеть

Переменные и функции

  • : входной вектор
  • : вектор скрытого слоя
  • : выходной вектор
  • , и : матрицы параметров и вектор
  • и : Функции активации

Хопфилд

Сеть Хопфилда - это RNN, в которой все соединения между уровнями имеют одинаковый размер. Он требует стационарных входов и, следовательно, не является обычной RNN, поскольку не обрабатывает последовательности шаблонов. Однако это гарантирует, что он сойдется. Если соединения обучаются с использованием обучения Hebbian, тогда сеть Hopfield может работать как надежная адресно-адресная память , устойчивая к изменению соединения.

Двунаправленная ассоциативная память

Представленная Бартом Коско сеть двунаправленной ассоциативной памяти (BAM) представляет собой вариант сети Хопфилда, в которой ассоциативные данные хранятся в виде вектора. Двунаправленность возникает из-за прохождения информации через матрицу и ее транспонирования . Обычно биполярное кодирование предпочтительнее двоичного кодирования ассоциативных пар. Недавно стохастические модели BAM с использованием марковского шага были оптимизированы для повышения стабильности сети и соответствия реальным приложениям.

Сеть BAM имеет два уровня, каждый из которых может использоваться как вход для вызова ассоциации и создания выходных данных на другом уровне.

Состояние эха

Сеть эхо-состояний (ESN) имеет редко связанный случайный скрытый слой. Веса выходных нейронов - единственная часть сети, которая может изменяться (обучаться). ESN хорошо воспроизводят определенные временные ряды . Вариант для нейронов с импульсами известен как машина с жидким состоянием .

Самостоятельно RNN (IndRNN)

Независимо рекуррентная нейронная сеть (IndRNN) решает проблемы исчезновения и взрыва градиента в традиционной полносвязной RNN. Каждый нейрон в одном слое получает только свое собственное прошлое состояние в качестве контекстной информации (вместо полной связи со всеми другими нейронами в этом слое), и, таким образом, нейроны не зависят от истории друг друга. Обратное распространение градиента можно регулировать, чтобы избежать исчезновения и увеличения градиента, чтобы сохранить долгосрочную или краткосрочную память. Информация о кросс-нейронах исследуется на следующих уровнях. IndRNN можно надежно обучить с помощью ненасыщенных нелинейных функций, таких как ReLU. С помощью пропуска подключений можно обучать глубокие сети.

Рекурсивный

Рекурсивная нейронная сеть создается путем применения того же набора весов рекурсивны над дифференцируемым графом-подобной структурой путем обхода структуры в топологическом порядке . Такие сети обычно также обучаются с помощью обратного режима автоматического дифференцирования . Они могут обрабатывать распределенные представления структуры, такие как логические термины . Частным случаем рекурсивных нейронных сетей является РНС, структура которой соответствует линейной цепочке. Рекурсивные нейронные сети применялись для обработки естественного языка . Рекурсивная нейронная тензорная сеть использует основанную на тензоре функцию композиции для всех узлов в дереве.

Компрессор нейронной истории

Компрессор нейронной истории представляет собой неконтролируемый стек RNN. На уровне ввода он учится предсказывать свой следующий ввод на основе предыдущих вводов. Только непредсказуемые входы некоторой RNN в иерархии становятся входами для RNN следующего более высокого уровня, которая поэтому повторно вычисляет свое внутреннее состояние только изредка. Таким образом, каждая RNN более высокого уровня изучает сжатое представление информации в RNN ниже. Это делается так, чтобы входная последовательность могла быть точно реконструирована из представления на самом высоком уровне.

Система эффективно минимизирует длину описания или отрицательный логарифм вероятности данных. Учитывая большую предсказуемость обучения в последовательности входящих данных, RNN самого высокого уровня может использовать контролируемое обучение, чтобы легко классифицировать даже глубокие последовательности с длинными интервалами между важными событиями.

Можно разделить иерархию RNN на две RNN: «сознательный» блок (более высокий уровень) и «подсознательный» автоматизатор (более низкий уровень). После того, как блокатор научился предсказывать и сжимать входные данные, которые непредсказуемы автоматизатором, автоматизатор может быть вынужден на следующей фазе обучения предсказывать или имитировать с помощью дополнительных блоков скрытые блоки более медленно меняющегося блока. Это позволяет автоматизатору легко запоминать подходящие, редко меняющиеся воспоминания через длительные промежутки времени. В свою очередь, это помогает автоматизатору сделать многие из его некогда непредсказуемых входных данных предсказуемыми, так что блок может сосредоточиться на оставшихся непредсказуемых событиях.

Порождающая модель частично преодолела исчезающий градиент проблемы с автоматической дифференцировки или обратного распространения в нейронных сетей в 1992 г. В 1993 г. такая система решена «Очень Глубокое изучение» задачи , которые требуют более 1000 последующих слоев в RNN развернулась во времени.

РНС второго порядка

RNN второго порядка используют веса более высокого порядка вместо стандартных весов, и состояния могут быть продуктом. Это позволяет прямое отображение на конечный автомат как в обучении, так и в стабильности и в представлении. Примером этого является долговременная кратковременная память, но у нее нет таких формальных отображений или доказательства стабильности.

Долговременная кратковременная память

Блок долговременной кратковременной памяти

Долгая кратковременная память (LSTM) - это система глубокого обучения , которая позволяет избежать проблемы исчезающего градиента . LSTM обычно дополняется повторяющимися воротами, называемыми «воротами забывания». LSTM предотвращает исчезновение или распространение ошибок с обратным распространением. Вместо этого ошибки могут течь в обратном направлении через неограниченное количество виртуальных слоев, развернутых в пространстве. То есть LSTM может изучать задачи, требующие воспоминаний о событиях, произошедших на тысячи или даже миллионы дискретных временных шагов ранее. Топологии, подобные LSTM, могут быть разработаны для конкретных задач. LSTM работает даже при длительных задержках между важными событиями и может обрабатывать сигналы, которые смешивают низкочастотные и высокочастотные компоненты.

Многие приложения используют стеки LSTM RNN и обучают их с помощью временной классификации Connectionist (CTC), чтобы найти весовую матрицу RNN, которая максимизирует вероятность последовательностей меток в обучающем наборе с учетом соответствующих входных последовательностей. СТС добивается как согласованности, так и признания.

LSTM может научиться распознавать контекстно-зависимые языки, в отличие от предыдущих моделей, основанных на скрытых марковских моделях (HMM) и аналогичных концепциях.

Закрытый рекуррентный блок

Закрытый рекуррентный блок

Стробируемые рекуррентные блоки (ГРУ) - это стробирующий механизм в рекуррентных нейронных сетях, представленных в 2014 году. Они используются в полной форме и в нескольких упрощенных вариантах. Их производительность при моделировании полифонической музыки и моделирования речевых сигналов оказалась аналогичной работе с долговременной кратковременной памятью. У них меньше параметров, чем у LSTM, так как у них отсутствует выходной вентиль.

Двунаправленный

Двунаправленные RNN используют конечную последовательность для прогнозирования или маркировки каждого элемента последовательности на основе прошлого и будущего контекстов элемента. Это делается путем объединения выходов двух RNN, одна обрабатывает последовательность слева направо, а другая - справа налево. Комбинированные результаты - это предсказания заданных учителем целевых сигналов. Доказано, что этот метод особенно полезен в сочетании с LSTM RNN.

Непрерывное время

Рекуррентная нейронная сеть с непрерывным временем (CTRNN) использует систему обыкновенных дифференциальных уравнений для моделирования воздействия на нейрон поступающих входных данных.

Для нейрона в сети с активацией скорость изменения активации определяется как:

Где:

  •  : Постоянная времени постсинаптического узла.
  •  : Активация постсинаптического узла
  •  : Скорость изменения активации постсинаптического узла.
  •  : Вес соединения от пре до постсинаптического узла
  •  : Сигмовидный элемент x, например .
  •  : Активация пресинаптического узла
  •  : Смещение пресинаптического узла.
  •  : Вход (если есть) в узел

CTRNN были применены к эволюционной робототехнике, где они использовались для решения проблемы зрения, сотрудничества и минимального когнитивного поведения.

Обратите внимание, что в соответствии с теоремой Шеннона рекуррентные нейронные сети с дискретным временем можно рассматривать как рекуррентные нейронные сети с непрерывным временем, в которых дифференциальные уравнения преобразованы в эквивалентные разностные уравнения . Это преобразование можно рассматривать как происходящее после того, как функции активации постсинаптического узла были отфильтрованы фильтром нижних частот, но до выборки.

Иерархический

Иерархические RNN соединяют свои нейроны различными способами, чтобы разложить иерархическое поведение на полезные подпрограммы. Такие иерархические структуры познания присутствуют в теориях памяти, представленных философом Анри Бергсоном , философские взгляды которого вдохновили иерархические модели.

Рекуррентная многослойная сеть персептронов

Как правило, сеть рекуррентной многоуровневой сети персептронов (RMLP) состоит из каскадных подсетей, каждая из которых содержит несколько уровней узлов. Каждая из этих подсетей является прямой, за исключением последнего уровня, который может иметь обратные связи. Каждая из этих подсетей соединена только прямыми соединениями.

Модель с несколькими временными шкалами

Рекуррентная нейронная сеть с множеством временных масштабов (MTRNN) - это нейронная вычислительная модель, которая может моделировать функциональную иерархию мозга посредством самоорганизации, которая зависит от пространственной связи между нейронами и от различных типов активности нейронов, каждый из которых имеет свои временные свойства. При такой разнообразной нейронной активности непрерывные последовательности любого набора поведений сегментируются в примитивы многократного использования, которые, в свою очередь, гибко интегрируются в разнообразные последовательные поведения. Биологическое одобрение такого типа иерархии обсуждалось в теории предсказания функций мозга Хокинса в его книге « Об интеллекте» . Такая иерархия также согласуется с теориями памяти, выдвинутыми философом Анри Бергсоном , которые были включены в модель MTRNN.

Нейронные машины Тьюринга

Нейронные машины Тьюринга (NTM) - это метод расширения рекуррентных нейронных сетей путем связывания их с внешними ресурсами памяти, с которыми они могут взаимодействовать посредством процессов внимания . Комбинированная система аналогична машине Тьюринга или архитектуре фон Неймана, но отличается сквозной дифференциацией , что позволяет эффективно обучать ее с помощью градиентного спуска .

Дифференцируемый нейронный компьютер

Дифференцируемые нейронные компьютеры (DNC) - это расширение нейронных машин Тьюринга, позволяющее использовать нечеткие количества каждого адреса памяти и запись хронологии.

Автоматические выталкивающие устройства нейронной сети

Автоматические выталкивающие устройства нейронной сети (NNPDA) похожи на NTM, но ленты заменяются аналоговыми стеками, которые дифференцируемы и обучены. В этом смысле они похожи по сложности на распознаватели контекстно-свободных грамматик (CFG).

Memristive Networks

Грег Снайдер из HP Labs описывает систему корковых вычислений с мемристивными наноустройствами. В пизасторах (резисторы памяти) реализованы с помощью тонких пленочных материалов , в которых сопротивление электрический настроенные с помощью переноса ионов или вакансий кислорода внутри пленки. DARPA «s Проект Synapse финансировала IBM Research и HP Labs в сотрудничестве с Университетом Департамента Бостонского когнитивных и нейронных систем (ЦНС), для разработки neuromorphic архитектуры , которые могут быть основаны на memristive системах. Мемристивные сети - это особый тип физических нейронных сетей, которые имеют очень похожие свойства с (Литтл-) сетями Хопфилда, поскольку они имеют непрерывную динамику, имеют ограниченный объем памяти и естественным образом расслабляются за счет минимизации функции, которая является асимптотической для Модель Изинга. В этом смысле динамика мемристической схемы имеет преимущество по сравнению с схемой резистор-конденсатор, заключающееся в более интересном нелинейном поведении. С этой точки зрения разработка аналоговых мемристивных сетей представляет собой особый тип нейроморфной инженерии, в которой поведение устройства зависит от схемы или топологии.

Обучение

Градиентный спуск

Градиентный спуск - это итеративный алгоритм оптимизации первого порядка для поиска минимума функции. В нейронных сетях его можно использовать для минимизации члена ошибки, изменяя каждый вес пропорционально производной ошибки по этому весу, при условии, что нелинейные функции активации являются дифференцируемыми . Различные методы для этого были разработаны в 1980-х и начале 1990-х годов Вербосом , Уильямсом , Робинсоном , Шмидхубером , Хохрайтером , Перлмуттером и другими.

Стандартный метод называется « обратным распространением во времени » или BPTT и является обобщением обратного распространения для сетей с прямой связью. Подобно этому методу, это пример автоматического дифференцирования в режиме обратного накопления принципа минимума Понтрягина . Более затратный в вычислительном отношении онлайновый вариант называется «Рекуррентное обучение в реальном времени» или RTRL, который представляет собой пример автоматического дифференцирования в режиме прямого накопления со сложенными касательными векторами. В отличие от BPTT, этот алгоритм является локальным во времени, но не локальным в пространстве.

В этом контексте локальный в пространстве означает, что вектор весов единицы может быть обновлен с использованием только информации, хранящейся в подключенных единицах, и самой единице, так что сложность обновления отдельной единицы линейна по размерности вектора весов. Локальный по времени означает, что обновления происходят постоянно (онлайн) и зависят только от самого последнего временного шага, а не от нескольких временных шагов в пределах заданного временного горизонта, как в BPTT. Биологические нейронные сети кажутся локальными как во времени, так и в пространстве.

Для рекурсивного вычисления частных производных RTRL имеет временную сложность O (количество скрытых x, количество весов) на временной шаг для вычисления якобиевых матриц , в то время как BPTT принимает только O (количество весов) на временной шаг, за счет запоминания всех форвардных активаций в пределах заданного временного горизонта. Онлайн-гибрид между BPTT и RTRL с промежуточной сложностью существует вместе с вариантами для непрерывного времени.

Основная проблема с градиентным спуском для стандартных архитектур RNN заключается в том, что градиенты ошибок исчезают экспоненциально быстро с увеличением временного интервала между важными событиями. LSTM в сочетании с гибридным методом обучения BPTT / RTRL пытается решить эти проблемы. Эта проблема также решается в независимой рекуррентной нейронной сети (IndRNN) за счет сведения контекста нейрона к его собственному прошлому состоянию, а информация о кросс-нейронах может быть затем исследована на следующих уровнях. Воспоминания различного диапазона, включая долговременную память, могут быть изучены без проблемы исчезновения и взрыва градиента.

Онлайновый алгоритм, называемый причинно-рекурсивным обратным распространением (CRBP), реализует и объединяет парадигмы BPTT и RTRL для локально рекуррентных сетей. Он работает с наиболее распространенными локально повторяющимися сетями. Алгоритм CRBP может минимизировать глобальную ошибку. Этот факт повышает стабильность алгоритма, обеспечивая единый взгляд на методы расчета градиента для рекуррентных сетей с локальной обратной связью.

Один из подходов к вычислению градиентной информации в RNN с произвольной архитектурой основан на схематическом выводе графов потоков сигналов. Он использует пакетный алгоритм BPTT, основанный на теореме Ли для расчета чувствительности сети. Его предложили Ван и Бофайс, а его быстрая онлайн-версия - Камполуччи, Унчини и Пьяцца.

Методы глобальной оптимизации

Обучение весов в нейронной сети можно смоделировать как задачу нелинейной глобальной оптимизации . Целевая функция может быть сформирована для оценки соответствия или ошибки конкретного вектора весов следующим образом: сначала веса в сети устанавливаются в соответствии с вектором весов. Затем сеть сравнивается с обучающей последовательностью. Обычно сумма квадратов разности между предсказаниями и целевыми значениями, указанными в обучающей последовательности, используется для представления ошибки текущего вектора весовых коэффициентов. Затем можно использовать произвольные методы глобальной оптимизации, чтобы минимизировать эту целевую функцию.

Наиболее распространенный метод глобальной оптимизации для обучения RNN - это генетические алгоритмы , особенно в неструктурированных сетях.

Первоначально генетический алгоритм кодируется с помощью весов нейронной сети предопределенным образом, где один ген в хромосоме представляет одну весовую связь. Вся сеть представлена ​​в виде одной хромосомы. Фитнес-функция оценивается следующим образом:

  • Каждый весовой коэффициент, закодированный в хромосоме, назначается соответствующему весовому звену сети.
  • Обучающий набор передается в сеть, которая распространяет входные сигналы вперед.
  • Среднеквадратичная ошибка возвращается в фитнес-функцию.
  • Эта функция управляет процессом генетического отбора.

Многие хромосомы составляют популяцию; поэтому до тех пор, пока не будет удовлетворен критерий остановки, развивается множество различных нейронных сетей. Распространенная схема остановки:

  • Когда нейронная сеть изучила определенный процент обучающих данных или
  • Когда минимальное значение среднеквадратичной ошибки удовлетворяется или
  • Когда достигнуто максимальное количество обучающих поколений.

Критерий остановки оценивается функцией приспособленности, поскольку он получает обратную величину среднеквадратической ошибки от каждой сети во время обучения. Следовательно, цель генетического алгоритма - максимизировать функцию приспособленности, уменьшая среднеквадратическую ошибку.

Другие глобальные (и / или эволюционные) методы оптимизации могут использоваться для поиска хорошего набора весов, например, моделирование отжига или оптимизация роя частиц .

Связанные поля и модели

RNN могут вести себя хаотично . В таких случаях для анализа может использоваться теория динамических систем .

На самом деле это рекурсивные нейронные сети с определенной структурой: линейной цепочкой. В то время как рекурсивные нейронные сети работают с любой иерархической структурой, комбинируя дочерние представления с родительскими представлениями, рекуррентные нейронные сети работают с линейной прогрессией времени, комбинируя предыдущий временной шаг и скрытое представление в представление для текущего временного шага.

В частности, RNN могут появляться как нелинейные версии фильтров с конечной импульсной характеристикой и бесконечной импульсной характеристикой, а также как нелинейная авторегрессионная экзогенная модель (NARX).

Библиотеки

  • Apache Singa
  • Caffe : Создано Беркли Vision and Learning Center (BVLC). Он поддерживает как CPU, так и GPU. Разработан на C ++ и имеет оболочки Python и MATLAB .
  • Chainer : первая стабильная библиотека глубокого обучения, поддерживающая динамические нейронные сети, определяемые по запуску. Полностью на Python, производственная поддержка CPU, GPU, распределенное обучение.
  • Deeplearning4j : глубокое обучение на Java и Scala на Spark с поддержкой нескольких графических процессоров . Универсальная библиотека глубокого обучения для производственного стека JVM, работающая на механизме научных вычислений C ++ . Позволяет создавать собственные слои. Интегрируется с Hadoop и Kafka .
  • Flux : включает интерфейсы для RNN, включая GRU и LSTM, написанные на Julia .
  • Keras : высокоуровневый, простой в использовании API, обеспечивающий оболочку для многих других библиотек глубокого обучения.
  • Microsoft Cognitive Toolkit
  • MXNet : современная среда глубокого обучения с открытым исходным кодом, используемая для обучения и развертывания глубоких нейронных сетей.
  • PyTorch : тензорные и динамические нейронные сети на Python с сильным ускорением графического процессора.
  • TensorFlow : Theano-подобная библиотека под лицензией Apache 2.0 с поддержкой CPU, GPU и патентованного TPU Google , для мобильных устройств.
  • Theano : эталонная библиотека глубокого обучения для Python с API, в значительной степени совместимая с популярной библиотекой NumPy . Позволяет пользователю писать символьные математические выражения, а затем автоматически генерировать их производные, избавляя пользователя от необходимости кодировать градиенты или обратное распространение. Эти символьные выражения автоматически компилируются в код CUDA для быстрой реализации на GPU.
  • Torch ( www.torch.ch ): фреймворк для научных вычислений с широкой поддержкой алгоритмов машинного обучения, написанный на C и lua . Главный автор - Ронан Коллобер, и сейчас он используется в Facebook AI Research и Twitter.

Приложения

Приложения рекуррентных нейронных сетей включают:

использованная литература

дальнейшее чтение

  • Мандич, Данило П. и Чемберс, Джонатон А. (2001). Рекуррентные нейронные сети для прогнозирования: алгоритмы обучения, архитектуры и стабильность . Вайли. ISBN 978-0-471-49517-8.

внешние ссылки