Создана нейронная сеть, работающая по принципу машины Тьюринга
20 октября 2014 на сайте электронных препринтов arXiv.org была опубликована статья с описанием нейронной сети, обладающей свойствами как машины Тьюринга, так и архитектуры фон Неймана. Мы попросили прокомментировать это исследование специалистов по машинному обучению Александра Кириллова и Дмитрия Ветрова. В настоящее время активное исследование нейронных сетей и глубинного обучения постепенно перемещается из академических институтов и организаций в сторону корпораций, работающих в области информационных технологий. Тому есть несколько причин. Во-первых, корпорации понимают, что интернет, а вместе с ним и общество меняются, и необходимо предугадать, желательно быстрее остальных, что же будет нужно обществу завтра. Развитие технологий, связанных с нейронными сетями, которые демонстрируют сравнимое с человеческим качество решения ряда задач, таких как классификация изображений или понимание семантики текстов, выглядит очень перспективным с этой точки зрения. Во-вторых, исследование глубинного обучения требует значительных вычислительных ресурсов, которых часто не хватает в академической среде, но обычно в достаточном количестве у IT-компаний. Интересному направлению исследования нейронных сетей посвящена недавняя статья «Neural Turing Machines» ученых из компании DeepMind — стартапа, основанного в 2011 году и в начале 2014 года купленного корпорацией Google.
Исследователи в статье, мотивируя предложенную архитектуру, ссылаются на архитектуру фон Неймана и машину Тьюринга. Коротко объясним эти два понятия. Архитектура фон Неймана предложена в 1945 ученым Джоном фон Нейманом во время разработки одной из первых электронных вычислительных машин. Помимо прочего, данная архитектура разделяет устройство управления компьютера и его память, описывая требования к интерфейсу, связывающему их. Принципы, описанные фон Нейманом, используются и при проектировании современных компьютеров. Машина Тьюринга — это абстрактная вычислительная система, состоящая из ленты и управляющего устройства. Управляющее устройство может перемещаться по ленте, записывая и считывая с нее информацию согласно заданному алгоритму. Машина Тьюринга была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма. Рассмотренная в статье архитектура нейронной сети по своему устройству напоминает машину Тьюринга, а работа с памятью по своей идее соответствует принципам фон Неймана. В данной статье авторы предлагают новую архитектуру глубинной нейронной сети, добавляя к ней внешнюю память и предлагая удобный с точки зрения возможности обучения способ работы с этой памятью. Заметим, что предложенная архитектура не первая архитектура нейронной сети с памятью. Так называемые рекуррентные нейронные сети также обладают возможностью сохранять в нейронах состояния с предыдущих шагов, которые оказывают влияние на следующие действия. В отличие от рекуррентных сетей, новая архитектура значительно ближе к классической архитектуре фон Неймана. В данном случае память и управляющая нейронная сеть разделены и взаимодействуют через интерфейс специального вида. Авторы называют этот интерфейс согласно подобному интерфейсу в машине Тьюринга — головками чтения и записи. Необходимо заметить, что данный интерфейс напоминает интерфейс, предложенный фон Нейманом, то есть обладает возможностью доступа к любой ячейке памяти. Таким образом, при работе нейронной сети, в отличие от рекуррентных нейронных сетей, удается проследить и интерпретировать работу с памятью, наблюдая за тем, с какими ячейками памяти работает нейронная сеть в тот или иной момент времени.
Для доказательства работоспособности новой архитектуры авторы проводят ряд экспериментов, сравнивая предложенную архитектуру с работой существующих рекуррентных нейронных сетей. Исследователи ставят вопрос о возможности нейронной сети выучить простейший алгоритм, демонстрируя входные данные и ожидаемый результат. Так, авторы обучают нейронную сеть справляться с задачей копирования последовательности данных. В этой задаче на вход сети подается последовательность элементов, на выходе от сети требуется воспроизвести эту последовательность. Эксперименты с данным алгоритмом демонстрируют, что нейронная машина Тьюринга обладает большей обобщающей способностью, чем обычные рекуррентные сети. Так, на этапе обучения использовались последовательности различной длины, однако все последовательности были короче 20 элементов. На этапе тестирования на вход сети подавались последовательности значительно большей длины, например последовательности из 50 и 100 элементов. Для последовательностей малой длины и рекуррентная сеть, и нейронная машина Тьюринга демонстрируют практически идеальное качество, однако с увеличением длины последовательностей рекуррентная перестает работать корректно, тогда как нейронная машина Тьюринга продолжает копировать последовательности почти без ошибок. Помимо большей обобщающей способности, авторам удается показать, что нейронная машина Тьюринга обучается быстрее обычных рекуррентных сетей. При работе алгоритма хорошо видно, что работа с памятью нейронной машины Тьюринга похожа на то, что написал бы программист на языке низкого уровня, если бы перед ним стояла задача написать программу, копирующую последовательность элементов. Нейронная сеть выбирает ячейку памяти и начинает записывать элемент, после чего она переходит к следующей ячейке. На этапе воспроизведения последовательности нейронная сеть ставит головку чтения на первую запись последовательности, считывает ее и переставляет голову на следующую ячейку. Авторы экспериментируют с рядом других алгоритмов. Так, они подают последовательность элементов и число n, ожидая на выходе n раз повторенную входную последовательность. Более сложным алгоритмом, который оказывается по зубам новой архитектуре, является «associative recall». В нем сети демонстрируется последовательность элементов, после чего на вход подается запрос — один из элементов этой последовательности, а на выходе ожидается следующий элемент последовательности. Авторы демонстрируют, что сеть может выучить алгоритм сортировки. Сеть справляется с этой задачей, допуская малое число ошибок, однако анализ работы с памятью показывает, что сеть использует просто линейный алгоритм, работающий только на коротких последовательностях, в которых близкие объекты встречаются крайне редко.
Анализируя полученные в статье результаты, можно с уверенностью сказать, что сеть с подобной архитектурой способна выучивать простейшие алгоритмы линейной сложности. Предпосылок для того, чтобы данная сеть могла выучить действительно сложный алгоритм, такой как сортировка большого числа объектов, к сожалению, нет, что на самом деле вполне ожидаемо. Дело в том, что понять сложную зависимость исходя только из большого числа примеров входа и выхода алгоритма чрезвычайно сложно. Так, даже человек способен сделать это только для простых задач, наподобие тех, что авторы рассмотрели в статье. Для более сложных задач человек использует набор простых алгоритмов, которые ему уже известны, а также некоторый контекст задачи, подсказывающий ему направление, в котором нужно искать алгоритм. В связи с этим нейронная машина Тьюринга может рассматриваться только как первый из множества шагов на пути исследователей к созданию машины, способной самостоятельно строить сложные алгоритмы.
Полный текст статьи читайте на Postnauka.ru