Найти тему
LEGION

Объяснено: Нейронные сети

Модная технология искусственного интеллекта, известная как «глубокое обучение», возрождает идею 70-летней давности.

За последние 10 лет наиболее эффективные системы искусственного интеллекта, такие как распознаватели речи в смартфонах или новейший автоматический переводчик Google, появились благодаря методу, называемому «глубокое обучение».

Глубокое обучение — это, по сути, новое название подхода к искусственному интеллекту, называемого нейронными сетями, которые были в моде более 70 лет назад и выходят из неё. Нейронные сети были впервые предложены в 1944 году Уорреном Маккалоу и Уолтером Питтсом, двумя исследователями из Чикагского университета, которые в 1952 году перешли в Массачусетский технологический институт в качестве основателей того, что иногда называют первым факультетом когнитивных наук.

Нейронные сети были основным направлением исследований как в нейробиологии, так и в информатике до 1969 года, когда, согласно истории информатики, они были упразднены математиками Массачусетского технологического института Марвином Мински и Сеймуром Пейпертом, которые годом позже стали соруководителями новой Лаборатории искусственного интеллекта Массачусетского технологического института.

Затем эта техника пережила возрождение в 1980-х годах, снова пришла в упадок в первом десятилетии нового века и вернулась с новой силой во втором десятилетии, во многом благодаря возросшей вычислительной мощности графических процессоров.

«Есть такая идея, что научные открытия похожи на эпидемии вирусов, — говорит Томазо Поджио, профессор Юджина Макдермотта по изучению мозга и когнитивных наук в Массачусетском технологическом институте, исследователь в Институте Макговерна по изучению мозга в Массачусетском технологическом институте и директор Центра мозга, разума и машин в Массачусетском технологическом институте. — По-видимому, существует пять или шесть основных штаммов вирусов гриппа, и, по-видимому, каждый из них возвращается примерно раз в 25 лет. Люди заражаются, у них вырабатывается иммунный ответ, и они не заражаются в течение следующих 25 лет. А затем появляется новое поколение, которое готово заразиться тем же штаммом вируса. В науке люди влюбляются в идею, увлекаются ею, доводят её до совершенства, а затем получают иммунитет — им это надоедает. Поэтому идеи должны иметь такую же периодичность!

Важные вопросы

Нейронные сети — это способ машинного обучения, при котором компьютер учится выполнять какую-либо задачу, анализируя обучающие примеры. Обычно эти примеры заранее размечены вручную. Например, системе распознавания объектов можно предоставить тысячи размеченных изображений автомобилей, домов, кофейных чашек и так далее, и она будет находить на изображениях визуальные закономерности, которые последовательно соотносятся с определёнными метками.

Нейронная сеть, созданная по аналогии с человеческим мозгом, состоит из тысяч или даже миллионов простых обрабатывающих узлов, которые тесно взаимосвязаны. Большинство современных нейронных сетей организованы в виде слоёв узлов и являются «прямыми», то есть данные проходят через них только в одном направлении. Отдельный узел может быть соединён с несколькими узлами в нижнем слое, от которых он получает данные, и с несколькими узлами в верхнем слое, которым он отправляет данные.

Каждому входящему соединению узел присваивает число, называемое «весом». Когда сеть активна, узел получает разные элементы данных — разные числа — по каждому из своих соединений и умножает их на соответствующий вес. Затем он складывает полученные произведения, получая одно число. Если это число меньше порогового значения, узел не передаёт данные на следующий уровень. Если число превышает пороговое значение, узел «срабатывает», что в современных нейронных сетях обычно означает отправку числа — суммы взвешенных входных данных — по всем исходящим связям.

При обучении нейронной сети все её весовые коэффициенты и пороговые значения изначально устанавливаются в случайном порядке. Обучающие данные подаются на нижний слой — входной слой — и проходят через последующие слои, умножаясь и складываясь сложным образом, пока, наконец, не попадают в выходной слой, радикально преобразованные. Во время обучения весовые коэффициенты и пороговые значения постоянно корректируются до тех пор, пока обучающие данные с одинаковыми метками не начнут стабильно выдавать похожие результаты.

Разумы и машины

Нейронные сети, описанные Маккалоу и Питтсом в 1944 году, имели пороговые значения и весовые коэффициенты, но не были организованы в слои, и исследователи не описали механизм обучения. Маккалоу и Питс показали, что нейронная сеть в принципе может вычислять любую функцию, которую может вычислить цифровой компьютер. Это был скорее результат в области нейробиологии, чем в области компьютерных наук: идея заключалась в том, что человеческий мозг можно рассматривать как вычислительное устройство.

Нейронные сети по-прежнему являются ценным инструментом для нейронаучных исследований. Например, определённые структуры сетей или правила для настройки весов и пороговых значений воспроизводят наблюдаемые особенности нейроанатомии и когнитивных функций человека, что указывает на то, что они отражают некоторые аспекты обработки информации мозгом.

Первая обучаемая нейронная сеть, «Перцептрон», была продемонстрирована психологом из Корнеллского университета Фрэнком Розенблаттом в 1957 году. Конструкция «Перцептрона» была во многом похожа на конструкцию современной нейронной сети, за исключением того, что у него был только один слой с настраиваемыми весами и пороговыми значениями, расположенный между входным и выходным слоями.

Перцептроны были активно изучаемой областью как в психологии, так и в зарождающейся дисциплине — информатике — до 1959 года, когда Минский и Паперт опубликовали книгу «Перцептроны», в которой продемонстрировали, что выполнение некоторых довольно распространённых вычислений с помощью перцептронов займёт неоправданно много времени.

«Конечно, все эти ограничения как бы исчезают, если вы используете более сложные механизмы — например, с двумя слоями», — говорит Поджио. Но в то время книга оказала отрезвляющее воздействие на исследования нейронных сетей.

«Нужно рассматривать эти вещи в историческом контексте, — говорит Поджио. — Они спорили о программировании — о таких языках, как Лисп. За несколько лет до этого люди всё ещё использовали аналоговые компьютеры. В то время было неясно, что программирование — это правильный путь. Я думаю, они немного переусердствовали, но, как обычно, всё не так однозначно. Если рассматривать это как соревнование между аналоговыми и цифровыми вычислениями, они боролись за то, что в то время было правильным».

Периодичность

Однако к 1980-м годам исследователи разработали алгоритмы для изменения весовых коэффициентов и пороговых значений нейронных сетей, которые были достаточно эффективны для сетей с более чем одним слоем и устраняли многие ограничения, выявленные Мински и Папертом. Эта область переживала возрождение.

Но с интеллектуальной точки зрения в нейронных сетях есть что-то неудовлетворяющее. При достаточном обучении можно изменить настройки сети таким образом, чтобы она могла эффективно классифицировать данные, но что означают эти настройки? На какие особенности изображения обращает внимание распознаватель объектов и как он объединяет их в отличительные визуальные признаки автомобилей, домов и кофейных чашек? Изучение весов отдельных связей не даст ответа на этот вопрос.

В последние годы учёные-компьютерщики начали разрабатывать изобретательные методы выявления аналитических стратегий, используемых нейронными сетями. Но в 1980-х годах стратегии сетей были неразличимы. Поэтому на рубеже веков нейронные сети были вытеснены методом опорных векторов — альтернативным подходом к машинному обучению, основанным на очень чистой и элегантной математике.

Недавнее возрождение нейронных сетей — революция в области глубокого обучения — стало возможным благодаря индустрии компьютерных игр. Сложные изображения и быстрый темп современных видеоигр требуют аппаратного обеспечения, способного справляться с такими задачами, и в результате появился графический процессор (GPU), в котором на одном чипе собраны тысячи относительно простых вычислительных ядер. Исследователям не потребовалось много времени, чтобы понять, что архитектура GPU во многом похожа на архитектуру нейронной сети.

Современные графические процессоры позволили однослойным сетям 1960-х годов и двух- и трёхслойным сетям 1980-х годов превратиться в 10-, 15- и даже 50-слойные сети сегодняшнего дня. Именно к этому относится слово «глубокий» в «глубоком обучении» — к глубине слоёв сети. И в настоящее время глубокое обучение обеспечивает наилучшие результаты почти во всех областях исследований в области искусственного интеллекта.

Под колпаком

Непрозрачность сетей по-прежнему вызывает беспокойство у теоретиков, но и в этом направлении есть прогресс. Помимо руководства Центром мозга, разума и машин (CBMM), Поджио руководит исследовательской программой центра в области теоретических основ интеллекта. Недавно Поджио и его коллеги из CBMM опубликовали теоретическое исследование нейронных сетей, состоящее из трёх частей.

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

По-прежнему остаётся множество теоретических вопросов, на которые нужно найти ответы, но работа исследователей CBMM может помочь нейронным сетям наконец-то выйти из порочного круга, в котором они пребывали на протяжении семи десятилетий.