Следующая динамическая сеть, которая должна быть введена, - это повторяющаяся сеть уровня (LRN). Более ранняя упрощенная версия этой сети была представлена Elman [Elma90]. В LRN имеется петля обратной связи с одной задержкой вокруг каждого уровня сети, за исключением последнего уровня. Первоначальная сеть Элмана имела только два слоя, и использовала tansig передаточная функция для скрытого слоя и purelin передаточная функция для выходного уровня. Исходную сеть Элмана обучали, используя приближение к алгоритму обратного распространения. layrecnet команда обобщает сеть Эльмана, чтобы иметь произвольное количество уровней и иметь произвольные передаточные функции в каждом уровне. Инструментарий обучает LRN с использованием точных версий алгоритмов на основе градиента, обсуждаемых в многослойных неглубоких нейронных сетях и обучении обратному распространению. На следующем рисунке показана двухуровневая сеть LRN.

Конфигурации LRN используются во многих уже рассмотренных приложениях фильтрации и моделирования. Чтобы показать его работу, в этом примере используется проблема обнаружения «фонем», обсуждаемая в Распределенных нейронных сетях с задержкой во времени разработки. Вот код для загрузки данных и создания и обучения сети:
load phoneme p = con2seq(y); t = con2seq(t); lrn_net = layrecnet(1,8); lrn_net.trainFcn = 'trainbr'; lrn_net.trainParam.show = 5; lrn_net.trainParam.epochs = 50; lrn_net = train(lrn_net,p,t);
После обучения можно построить график ответа, используя следующий код:
y = lrn_net(p); plot(cell2mat(y))

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