Шрифт:
Интервал:
Закладка:
Самому Розенблатту не довелось на практике продвинуться в изучении рекуррентных сетей, и в этой сфере на многие годы воцарилось относительное затишье, нарушенное только в 1980-е гг.
К тому времени исследования первой волны коннекционистов были во многом забыты. Некоторые специалисты в области нейронных сетей считали тогда, что вклад Розенблатта ограничивался созданием лишь однослойного перцептрона. Весьма характерна переписка на Stack Exchange по поводу истоков рекуррентных нейронных сетей. Один из пользователей жалуется, что может найти исходную публикацию по одной из современных рекуррентных нейросетевых архитектур, но никак не может отыскать работу, которая ввела в оборот стандартную («ванильную», vanilla) рекуррентную сеть (Recurrent neural network, RNN)[1486]. Словом, с улучшенным брендированным стиральным порошком всё ясно, но кто же изобрёл знаменитый обычный порошок?
Если не принимать в расчёт Фукусиму, у которого при описании архитектуры когнитрона упоминается механизм обратного латерального торможения [backward lateral inhibition] (когда активация нейрона вызывает ослабление сигнала в смежных нейронах предыдущего слоя) лишь для того, чтобы получить немедленную замену в виде прямого [forward] латерального торможения (когда активация нейронов вызывает ослабление сигнала в соседних нейронах того же слоя) в целях ускорения вычислений, то серьёзные исследования в отношении рекуррентных нейронных сетей были предприняты лишь через два десятилетия после выхода в свет «Принципов нейродинамики». Ими заинтересовалась исследовательская группа PDP Румельхарта, в которую среди прочих входили психолингвист Джеффри Элман и когнитивист Майкл Джордан[1487].
5.2.5.2 Предложения и проблемы
В университетском курсе по искусственному интеллекту две фамилии непрестанно следуют друг за другом: Элман и Джордан, Джордан и Элман. Прямо как Бивис и Баттхед — в наши дни их почти невозможно встретить поодиночке. О сетях Элмана и Джордана, в силу их архитектурного сходства, всегда рассказывают в одной лекции, для них даже изобретено обобщающее название — простые рекуррентные нейронные сети (Simple recurrent neural network, SRNN).
И всё-таки, несмотря на название, сети Элмана и Джордана не так уж просты, в их основе лежит определённая регулярная структура. От простой рекуррентной сети можно было бы ожидать наличия у неё полносвязной рекуррентной архитектуры — например, это могла бы быть полносвязная сеть с одним промежуточным слоем, в которой каждый нейрон промежуточного слоя, помимо связи с нейронами выходного слоя, имел бы рекуррентную связь с каждым другим нейроном промежуточного слоя. Такая сеть вполне ожидаемо называется полносвязной рекуррентной нейронной сетью (Fully connected recurrent neural network, FCRNN). Эти сети обычно не представляют особого интереса для исследователей, и из редких исследований, посвящённых полносвязной рекуррентной архитектуре, мы можем узнать немногим более одного вполне очевидного факта — обучение такой сети требует очень больших вычислительных затрат[1488].
Рис. 104. Полносвязная рекуррентная нейронная сеть
Идея сети Элмана заключается в том, чтобы к обычной нерекуррентной полносвязной сети с l нейронами (и Элман и Джордан используют для нейронов термин «единицы», «блоки» [units], что подчёркивает тот факт, что речь в данном случае идёт не о биологических нейронах) в ассоциативном слое добавить ещё l специальных нейронов состояния [state neurons]. Каждый из этих нейронов связан с соответствующим ему нейроном ассоциативного слоя парой связей — прямой и обратной. Таким образом, на каждом шаге каждый ассоциативный нейрон будет с некоторым весом получать вход от соединённого с ним нейрона состояния, а затем с некоторым весом передавать в него свой выход. Фактически нейроны состояния в данном случае выполняют роль памяти модели[1489].
Рис. 105. Сеть Элмана
Сеть Джордана отличается от сети Элмана только тем, что нейроны рекуррентного слоя получают входы не от нейронов ассоциативного слоя, а от нейронов выходного слоя сети. Таким образом, в рекуррентный контур включаются не два нейрона (ассоциативный и рекуррентный), а три (ассоциативный, выходной и рекуррентный).
Важно отметить, что сети Элмана и Джордана часто изображают в виде неполных диаграмм, включающих в себя не все имеющиеся в них связи. Начало этой порочной практике положили сами авторы — диаграмма, приведённая в статье Джордана, содержит в подписи соответствующее предупреждение. Чтобы избежать путаницы, автор приводит отдельную табличку, в которой перечислены все имеющиеся в сети связи. Все нейроны сети Джордана (как и сети Элмана) разделены на четыре группы: плановые [plan], нейроны состояния [state], скрытые [hidden] и выходные [output]. Плановые нейроны и нейроны состояния в сумме составляют входные нейроны сети, такая группировка использована, по всей видимости, для того, чтобы подчеркнуть порядок выполняемых сетью вычислений. Давайте вместе попробуем разобраться в табличке Джордана.
Обзор соединительных структур сети
В ячейке таблицы знак «×» стоит тогда и только тогда, когда нейроны, тип которых указан в заголовке столбца, получают входы от нейронов, тип которых указан в первой ячейке строки. Плановые нейроны, являясь рецептивными нейронами сети, получают входы только извне сети, поэтому первый столбец таблицы пуст. Каждый из нейронов состояния получает входы от выходных нейронов, а также от опять же нейронов состояния и так далее.
Если внимательно взглянуть на диаграмму сети, представленную Джорданом, можно отметить один интересный нюанс — наличие связей, соединяющих одни нейроны состояния с другими. Если подумать, то такая структура соединений вполне ожидаема, ведь нейроны состояния в некотором