[Перевод] Создана основа для обобщённой теории нейросетей
Огромные возможности нейросетей иногда сравнимы с их непредсказуемостью. Теперь математики начинают понимать, как форма нейросети влияет на её работу
Когда мы проектируем небоскрёб, мы рассчитываем, что он в итоге будет удовлетворять всем спецификациям: что башня сможет выдержать такой вес, а также землетрясение определённой силы.
Однако одну из самых важных технологий современного мира мы, по сути, проектируем вслепую. Мы играемся с различными схемами, различными настройками, но пока мы не запустим пробный прогон системы, мы на самом деле не имеем понятия, что она сможет сделать, или где она откажется работать.
Речь о технологии нейросетей, лежащей в основе наиболее продвинутых современных систем искусственного интеллекта. Нейросети постепенно продвигаются в самые основные области общества: они определяют то, что мы узнаём об окружающем мире из ленты новостей в соцсетях, они помогают докторам ставить диагноз, и даже влияют на то, отправят ли преступника в тюрьму.
И при этом «наилучшим описанием того, что мы знаем, будет сказать, что мы практически ничего не знаем о том, как на самом деле работают нейросети, и какой должна быть описывающая их теория», — сказал Борис Ганин, математик из Техасского университета, и приглашённый специалист в Facebook AI Research, изучающий нейросети.
Он сравнивает ситуацию с разработкой ещё одной революционной технологии: паровой машины. Изначально паровые машины умели только качать воду. Затем они служили двигателями для паровозов, и нейросети на сегодня достигли, наверное, примерно такого же уровня. Учёные и математики разработали теорию термодинамики, позволившую им понять, что именно происходит внутри любых двигателей. И в итоге подобные знания вывели нас в космос.
«Сначала были прекрасные инженерные достижения, потом отличные поезда, а потом понадобилось теоретическое понимание, чтобы перейти от этого к ракетам», — сказал Ганин.
В разрастающемся сообществе разработчиков нейросетей есть небольшая группка исследователей с математическим уклоном, пытающихся создать теорию нейросетей, которая сможет объяснить, как они работают, и гарантировать, что после создания нейросети определённой конфигурации она сможет выполнять определенные задачи.
Пока работа находится на самой ранней стадии, но за последний год исследователи уже опубликовали несколько научных работ, подробно описывающих взаимосвязь формы и функционирования нейросетей. Работа описывает нейросети полностью, вплоть до самых их основ. Она демонстрирует, что задолго до того, как подтверждать способность нейросетей управлять автомобилями, необходимо доказать их способность перемножать числа.
Наилучший рецепт мозга
Нейросети стремятся имитировать мозг человека — и один из способов описать его работу, это говорить о том, что он сращивает небольшие абстракции в более крупные. С этой точки зрения сложность мыслей измеряется количеством малых абстракций, лежащих в их основе, и количеством комбинаций низкоуровневых абстракций в высокоуровневые — в таких, например, задачах, как изучение различий собак и птиц.
«Если человек учится распознавать собаку, значит он учится распознавать нечто мохнатое на четырёх ногах», — сказала Майтра Рагу, аспирант по информатике в Корнеллском университете, член команды Google Brain. «В идеале мы хотели бы, чтобы наши нейросети делали что-то подобное».
Майтра Рагу
Абстракция зарождается в мозге человека естественным образом. Нейросетям приходится для этого работать. Нейросети, как и мозг, состоят из строительных блоков под названием «нейроны», различными способами связанных друг с другом. При этом нейроны нейросети, хотя и сделаны по образу нейронов мозга, не пытаются имитировать их полностью. Каждый нейрон может представлять атрибут или комбинацию атрибутов, которые нейросеть рассматривает на каждом уровне абстракции.
У инженеров есть выбор из многих вариантов объединения этих нейронов. Им нужно решать, сколько слоёв нейронов должно быть у нейросети (то есть, определить её «глубину»). Рассмотрим, к примеру, нейросеть, распознающую изображения. Изображение входит в первый слой системы. На следующем слое у сети могут быть нейроны, просто распознающие грани изображения. Следующий слой комбинирует линии и определяет кривые. Следующий комбинирует кривые в формы и текстуры, а последний обрабатывает формы и текстуры, чтобы вынести решение о том, на что он смотрит: на мохнатого мамонта!
«Идея в том, что каждый слой комбинирует несколько аспектов предыдущего. Круг — это кривая во многих местах, кривая — это линии во многих местах», — говорит Дэвид Рольник, математик из Пенсильванского университета.
Инженерам также приходится выбирать «ширину» каждого слоя, соответствующую количеству различных особенностей, которые сеть рассматривает на каждом уровне абстракции. В случае распознавания изображений ширина слоёв будет соответствовать количеству типов линий, кривых или форм, которые нейросеть будет рассматривать на каждом уровне.
Кроме глубины и ширины нейросети, есть выбор метода соединения нейронов в слоях и между ними, и выбор весов для каждой из связей.
Если вы задумали выполнить определённую задачу, как узнать, какая архитектура нейросети сможет выполнить её наилучшим образом? Есть довольно общие примерные правила. Для задач с распознаванием изображений программисты обычно используют «свёрточные» нейросети, система связей между слоями в которых повторяется от слоя к слою. Для обработки естественного языка — распознавания речи или генерации языка — программисты обнаружили, что лучше всего подходят рекуррентные нейросети. Нейроны в них могут быть связанными с нейронами не только из соседних слоёв.
Однако за пределами этих общих принципов программистам в основном приходиться полагаться на экспериментальные свидетельства: они просто запускают 1000 разных нейросетей и смотрят, какая из них лучше справится с заданием.
«На практике эти выборы часто делаются методом проб и ошибок, — сказал Ганин. — Это довольно сложный способ, поскольку выборов бесконечно много, и никто не знает, какой будет лучшим».
Лучшим вариантом будет меньше полагаться на метод проб и ошибок, и больше — на имеющееся заранее понимание того, что может дать вам конкретная архитектура нейросети. Несколько недавно опубликованных научных работ продвинули данную область в этом направлении.
«Эта работа направлена на создание чего-то вроде книги рецептов для проектирования подходящей нейросети. Если вы знаете, чего вы хотите достичь с её помощью, то вы сможете подобрать нужный рецепт», — сказал Рольник.
Заарканить красную овцу
Одна из самых ранних теоретических гарантий нейросетевой архитектуры появилась три десятилетия назад. В 1989 году специалист по информатике доказал, что если у нейросети есть только один вычислительный слой, в котором может быть неограниченное количество нейронов и неограниченное количество связей между ними, то нейросеть сможет выполнить любую поставленную задачу.
Это было более-менее общее заявление, оказавшееся довольно интуитивным и не особенно полезным. Это всё равно, что сказать, что, если вы можете определить неограниченное количество линий на изображении, то вы можете различить все объекты при помощи только одного слоя. В принципе-то это, возможно, и выполняется, но попробуйте-ка реализовать это на практике.
Сегодня исследователи называют такие широкие и плоские сети «экспрессивными», поскольку в теории они способны охватить более богатый набор связей между возможными входными данными (такими, как изображение) и выходными (такими, как описание изображения). При этом эти сети чрезвычайно тяжело тренировать, то есть, практически невозможно заставить их на самом деле выдавать эти данные. Также они требуют больше вычислительных мощностей, чем есть у любого компьютера.
Борис Ганин
В последнее время исследователи пытаются понять, насколько далеко можно завести нейросети, идя в противоположном направлении — делая их уже (меньше нейронов на слой) и глубже (больше слоёв). Возможно, вы сможете распознать только 100 различных линий, но имея связи, необходимые для превращения 100 этих линий в 50 кривых, которые можно скомбинировать в 10 различных форм, вы можете получить все необходимые строительные блоки для распознавания большинства объектов.
В работе, законченной ими в прошлом году, Рольник и Макс Тегмарк из MIT доказали, что, увеличивая глубину и уменьшая ширину, можно выполнять те же задачи с экспоненциально меньшим количеством нейронов. Они показали, что если у моделируемой вами ситуации 100 входных переменных, можно получить одинаковую надёжность, либо используя 2100 нейронов в одном слое, либо 210 нейронов на двух слоях. Они обнаружили, что есть свои преимущества в том, чтобы брать небольшие части и комбинировать их на высших уровнях абстракции, вместо того, чтобы пытаться охватить все уровни абстракции сразу.
«Понятие глубины нейросети связано с возможностью выражения чего-либо сложного путём выполнения множества простых шагов, — сказал Рольник. — Это похоже на сборочный конвейер».
Рольник и Тегмарк доказали полезность глубины, заставляя нейросети выполнять простую задачу: перемножать полиномиальные функции. (Это уравнения с переменными, возведёнными в натуральные степени, к примеру, y = x3 + 1). Они тренировали сети, демонстрируя им примеры уравнений и результаты их перемножения. Затем они указывали нейросетям вычислить результат умножения уравнений, которые они раньше не видели. Более глубокие нейросети научились делать это при помощи куда как меньшего количества нейронов, чем мелкие.
И хотя перемножение вряд ли перевернёт наш мир, Рольник говорит, что в работе была описана важная идея: «Если неглубокая нейросеть не может даже перемножать, не стоит доверять ей что-то ещё».
Дэвид Рольник
Другие исследователи исследуют вопрос минимально достаточной ширины. В конце сентября Джесси Джонсон, ранее — математик из Оклахомского университета, а ныне — исследователь, работающий в фармацевтической компании Sanofi, доказал, что с какого-то момента никакая глубина не сможет компенсировать недостаток ширины.
Чтобы осмыслить это, представьте себе овечек на поле, но пусть это будут овечки из панк-рока: шерсть каждой из них будет окрашена в один из нескольких цветов. Нейросеть должна провести границу вокруг всех овец одного цвета. По сути эта задача аналогична классификации изображений: у нейросети есть набор изображений (который она представляет в виде точек в многомерном пространстве), и ей нужно сгруппировать похожие.
Джонсон доказал, что нейросеть не справится с этой задачей, если ширина слоёв будет не больше, чем количество входных данных. Каждую из наших овец можно описать двумя входными данными: координатами её расположения на поле, x и y. Затем нейросеть помечает каждую овцу цветом и рисует границу вокруг овец одного цвета. В данном случае для решения задачи вам потребуется не менее трёх нейронов на слой.
Конкретнее, Джонсон показал, что если соотношение ширины к количеству переменных будет недостаточно, то нейросеть не сможет чертить замкнутые петли –, а такую петлю пришлось бы нарисовать нейросети, если бы, к примеру, все красные овцы скопились в середине пастбища. «Если ни один из слоёв не будет толще количества входных измерений, некоторые формы функция создать не сможет, вне зависимости от количества слоёв», — сказал Джонсон.
Такие работы начинают строить зародыш теории нейросетей. Пока что исследователи способны делать лишь простейшие заявления касаемо взаимоотношений между архитектурой и функциональностью — и этих заявлений очень мало по сравнению с количеством задач, решаемых нейросетями.
Так что, хотя теория нейросетей не сможет изменить процесс их проектирования в ближайшем будущем, создаются чертежи новой теории того, как обучаются компьютеры — и её последствия будут даже сильнее выхода человека в космос.