exponenta event banner

Проектный слой - рекуррентные нейронные сети

Следующая динамическая сеть, которая должна быть введена, - это повторяющаяся сеть уровня (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))

Figure contains an axes. The axes contains an object of type line.

На сюжете видно, что сеть смогла обнаружить «фонемы». Ответ очень похож на ответ, полученный с использованием TDNN.

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

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