Вот уже лет сто, а то и больше, человечество мечтает, размышляет, пишет, поёт, снимает фильмы о машинах, которые могут думать, рассуждать и, подобно нам, обладают разумом. Произведения литературного и кинематографического искусства — начиная с романа «Едгин», опубликованного в 1872 году Сэмюэлем Батлером, со статьи Эдгара Аллана По «Игрок в шахматы Мельцеля», с фильма «Метрополис» 1927 года — продемонстрировали миру идею, в соответствии с которой машины могут думать и рассуждать как люди. Причём, в этой идее нет ни магии, ни ещё чего-то фантастического. Те, кого захватывала эта идея, вдохновлялись автоматонами из глубокой древности и работами философов — таких, как Аристотель, Раймунд Луллий, Томас Гоббс и многих, многих других.
Идеи философов о человеческом разуме привели к вере в то, что рациональное мышление можно описать, пользуясь алгебраическими или логическими механизмами. Позже, с появлением электронных приборов, компьютеров и закона Мура, человечество попало в состояние постоянного ожидания того, что вот ещё немного — и появится машина, разум которой сравним с человеческим. Некоторые объявляли разумные машины спасителями человечества, а некоторые видели в этих машинах источник великого бедствия, так как полагали, что появление на Земле второй разумной сущности приведёт к уничтожению первой, то есть — людей.
Свет компьютеризированных систем искусственного интеллекта ярко вспыхивал в истории человечества уже несколько раз. Это было в 1950-х, в 1980-х и в 2010-х годах. К сожалению, за обоими предыдущими ИИ-бумами следовала «ИИ-зима». Искусственный интеллект не оправдывал возложенных на него ожиданий и выходил из моды. В том, что наступали эти «зимы», часто винили недостаток вычислительной мощности, неправильное понимание устройства человеческого мозга, или рекламную шумиху и необоснованные домыслы, которыми была окутана тема ИИ. В разгар сегодняшнего «ИИ-лета» большинство исследователей, работающих в сфере искусственного интеллекта, основное внимание уделяют использованию постоянно увеличивающейся доступной им вычислительной мощности для увеличения глубины создаваемых ими нейронных сетей. «Нейронные сети», несмотря на своё многообещающее название, хотя и созданы под влиянием знаний о нейронах головного мозга человека, похожи на сети настоящих нейронов лишь на поверхностном уровне.
Некоторые исследователи полагают, что уровня общего умственного развития, соответствующего человеческому, можно достичь, просто добавляя всё больше и больше слоёв к упрощённым моделям головного мозга, вроде свёрточных нейронных сетей, и скармливая им всё больше и больше данных. Это направление развития ИИ подпитывают те невероятные вещи, на которые способны такие сети, возможности которых постоянно понемногу возрастают. Но нейронные сети, которые, в буквальном смысле слова, творят чудеса, всё же, являются узкоспециализированными системами, умеющими добиваться превосходных успехов лишь в решении какой-то одной задачи. ИИ, который божественно играет в игры Atari, не способен, если человек не оснастит его этими возможностями, писать музыку или размышлять о погодных закономерностях. Более того — качество входных данных очень сильно влияет на качество работы нейронных сетей. Их возможности по формированию логических заключений ограничены. В некоторых сферах применения нейронных сетей это приводит к неудовлетворительным результатам. Есть мнение, что, например, рекуррентные нейронные сети никогда не смогут достичь того уровня общего умственного развития и гибкости, которые характерны для людей.
Но, в то же время, некоторые исследователи пытаются построить что-то, больше похожее на человеческий мозг. Они для этого, как вы, наверное, уже догадались, стремятся к созданию как можно более точных моделей мозга. Учитывая то, что мы живём в эпоху золотого века компьютерных архитектур, похоже, что сейчас — самое время создать что-то новое в сфере аппаратного обеспечения компьютеров. Подобное «железо» уже, на самом деле, создают. Это — нейроморфное аппаратное обеспечение.
Что такое нейроморфные вычисления?
«Нейроморфный» — это модный термин, который используется в применении к любым программам или устройствам, которые пытаются сымитировать деятельность мозга. Хотя человечество ещё очень многого не знает о мозге, за несколько последних лет в этой сфере достигнуты кое-какие замечательные успехи. Одной из широко принятых теорий, касающихся мозга, является гипотеза, в соответствии с которой неокортекс (в широком смысле — место, где принимаются решения и обрабатывается информация) состоит из миллионов кортикальных колонок или модулей. Отдельные системы мозга, такие, как гиппокамп, имеют узнаваемую структуру, которая отличает их от других частей мозга.
То же самое справедливо и для неокортекса, который сильно отличается в плане структуры, например, от заднего мозга. В неокортексе имеются области, отвечающие, как известно, за выполнение различных функций — таких, как зрение и слух, но мозговое вещество, из которого сформирован неокортекс, в плане структуры, выглядит весьма однородным. Если перейти на более абстрактную точку зрения, то получится, что части неокортекса, ответственные за зрение, очень похожи на те, что отвечают за слух. Но, в то же время, системы заднего мозга сильно отличаются одна от другой, их структура зависит от их функций. Этот подход к пониманию устройства мозга привёл к появлению гипотезы Вернона Маунткасла, в соответствии с которой имеется некий центральный алгоритм, или некая центральная структура, благодаря которым неокортекс решает свои задачи. Кортикальная колонка — это своего рода логическая единица коры головного мозга. Она обычно состоит из 6 слоёв, причём, в пределах колонки, вертикальных связей между этими слоями гораздо больше, чем горизонтальных связей между отдельными колонками. Это значит, что подобную логическую единицу можно несколько раз скопировать и сформировать благодаря этому искусственный неокортекс. У этой идеи есть хорошие перспективы в свете технологий создания сверхбольших интегральных схем. Наши производственные процессы весьма эффективны в деле создания миллионов копий неких структур на маленькой площади.
Хотя рекуррентные нейронные сети (RNN, Recurrent Neural Network) относятся к полносвязным сетям, настоящий мозг придирчиво относится к вопросу о том, что с чем должно быть соединено. Распространённой наглядной моделью нейронных сетей является пирамида, состоящая из отдельных слоёв. Нижний слой извлекает признаки из входных данных, а каждый последующий слой извлекает из того, что подаётся на его вход, всё более абстрактные признаки. Анализ лучше всего исследованных систем мозга показывает, что в этих системах существует широкое разнообразие иерархических структур, в которых имеются обратные связи. В пределах этих иерархических структур существуют обратные и прямые связи, соединяющие, не обязательно по порядку, различные уровни этих структур. Такой вот «пропуск уровней» можно считать нормой, но не жёстким правилом, а это свидетельствует о том, что именно структура связей может быть ключом к тем свойствам, которые демонстрирует мозг человека.
Это привело нас к следующей общепринятой точке зрения: большинство нейронных сетей используют метод «интегрировать-и-сработать» с утечками. В RNN каждый узел испускает сигнал на каждом временном шаге работы сети, а настоящие нейроны испускают сигналы лишь тогда, когда мембранный потенциал нейрона достигает порогового значения (в реальности, правда, всё несколько сложнее). Есть искусственные нейронные сети, в которых учтена эта особенность, и которые более точно, с биологической точки зрения, имитируют работу мозга. Это — так называемые импульсные нейронные сети (Spiking Neural Networks, SNN). Модель, соответствующая методу «интегрировать-и-сработать» с утечками не так точна, с биологической точки зрения, как другие модели — вроде модели Хиндмарша — Роуз или модели Ходжкина — Хаксли. В рамках этих моделей учитываются функции нейротрансмиттеров и синаптических щелей. Но реализация таких моделей требует значительной вычислительной мощности. То, что нейроны испускают сигналы не всегда, означает, что числа должны быть представлены в виде последовательностей потенциалов действия нейронов, а конкретные значения должны быть соответствующим образом закодированы.
Как далеко продвинулись нейроморфные вычисления?
Несколько групп исследователей занимаются непосредственным моделированием нейронов. Например — это делается в рамках проекта OpenWorm: создана модель нервной системы круглого червя Caenorhabditis elegans, состоящая из 302 нейронов. Сейчас цель многих подобных проектов заключается в увеличении количества моделируемых нейронов, в повышении точности моделей, в оптимизации производительности программ. Например, в рамках проекта SpiNNaker создан суперкомпьютер начального уровня, позволяющий, в реальном времени, моделировать работу огромного количества нейронов. А именно, каждое процессорное ядро суперкомпьютера может обслуживать 1000 нейронов. В конце 2018 года проектом достигнут рубеж в 1 миллион ядер, а в 2019 году было объявлено о гранте на постройку подобной машины второго поколения (SpiNNcloud).
Многие компании, правительственные организации и университеты занимаются поиском необычных материалов и технологий для создания искусственных нейронов. В этой связи можно вспомнить о мемристорах, о спин-трансферных осцилляторах, о магнитных переключателях на основе джозефсоновских переходов. Хотя в моделях эти технологии и выглядят весьма многообещающими, огромная пропасть лежит между парой десятков смоделированных нейронов (или нейронов, размещённых на небольшой экспериментальной плате) и тысячами, если не миллионами нейронов, которые необходимы для достижения машиной реальных человеческих возможностей.
Другие исследователи (они работают, например, в IBM, Intel, BrainChip, в некоторых университетах) пытаются создать аппаратные реализации SNN, опираясь на существующие технологии, в частности — на технологию CMOS. Одна из таких платформ разработана Intel и представлена нейроморфным процессором Loihi, на основе которого можно создавать достаточно крупные системы.
Нейроморфная система, использующая 64 чипа Loihi для моделирования 8 миллионов нейронов
В первой половине 2020 года специалистами Intel была опубликована работа, в которой шла речь об использовании 768 чипов Loihi для реализации алгоритма поиска ближайшего соседа. Машина, имитирующая работу 100 миллионов нейронов, показала многообещающие результаты, продемонстрировав задержки, выглядящие лучше, чем в системах с большими, заранее рассчитанными индексами, и давая возможность добавлять в набор данных новые записи за время O(1).
Есть ещё крупномасштабный проект Human Brain Project, цель которого — лучше понять биологические нейронные сети. В нём имеется система, называемая BrainScaleS-1, при создании которой применяются цельнопластинные интегральные схемы, использующая для имитации нейронов аналоговые и смешанные сигналы. BrainScaleS-1 состоит из 12 пластин, каждая из которых моделирует 200000 нейронов. Подобная система следующего поколения, BrainScaleS-2, сейчас находится в разработке. Ожидается, что она будет готова в 2023 году.
Проект Blue Brain Project нацелен на создание как можно более точной копии мозга мыши. Хотя речь идёт и не о человеческом мозге, опубликованные в рамках этого проекта исследования и модели бесценны в деле продвижения человечества к созданию нейроморфных искусственных нейронных сетей, способных найти реальное применение.
В результате можно сказать, что мы находимся в самом начале пути к созданию чего-то такого, что способно решать какие-то реальные задачи. А главным препятствием на этом пути является тот факт, что мы до сих пор не обладаем достаточными знаниями о том, как устроен наш мозг, и о том, как он обучается. Когда речь идёт о нейронных сетях, размеры которых сравнимы с размерами нашего мозга, одной из самых сложных задач оказывается обучение таких сетей.
Нужны ли человечеству нейроморфные аппаратные устройства?
Что если человечеству не нужно нейроморфное аппаратное обеспечение? Например, алгоритм обратного обучения с подкреплением (Inverted Reinforcement Learning, IRL) позволяет машинам создавать функцию вознаграждения, не заостряя внимание исследователей на нейронных сетях. Просто наблюдая за чьими-либо действиями можно выяснить цель этих действий и воссоздать их через найденную функцию вознаграждения, которая обеспечивает воспроизведение наиболее эффективных действий эксперта (сущности, за которой осуществляется наблюдение). Проводятся дальнейшие исследования, касающиеся работы с экспертами, поведение которых не является оптимальным, с целью выяснения того, что они делали, и того, что они стремились сделать.
Многие продолжат продвигаться в сфере нейроморфных вычислений, применяя уже существующие сети, сравнительно простые, с использованием улучшенных функций вознаграждения. Например, в свежей статье о копировании частей мозга стрекозы с использованием простой трёхслойной нейронной сети, показано, что систематизированный подход, основанный на хороших знаниях моделируемого объекта, способен дать отличные результаты. Хотя рассмотренные в статье нейронные сети не показывают столь же замечательных результатов, что и стрекозы, живущие в своей среде, трудно сказать, не является ли это следствием того, что стрекозы, в сравнении с другими насекомыми, обладают гораздо лучшими «лётными возможностями».
Каждый год мы видим всё новые и новые успехи техник глубокого обучения. Кажется, что выйдут ещё одна-две публикации, и эта сфера из интересной превратится в потрясающую воображение, а потом — в нечто такое, что и в голове не укладывается. Люди не умеют предсказывать будущее. Может — так всё и будет. А может — и нет. Возможно, если человечество продолжит двигаться в том же направлении — оно найдёт что-то новое, лучше поддающееся обобщению, которое можно будет реализовать средствами существующих нейронных сетей глубокого обучения.
Что делать тем, кому интересны нейроморфные вычисления?
Если вы хотите заняться нейроморфными вычислениями — учитывайте то, что многие проекты, упомянутые в этой статье, являются опенсорсными. Используемые в них наборы данных и модели можно найти на GitHub и на других подобных площадках. Среди таких проектов можно отметить, например, потрясающие NEURON и NEST. Многие энтузиасты нейроморфных вычислений рассказывают о своих экспериментах на OpenSourceBrain. А ещё, например, можно создать собственное нейроморфное «железо» — вроде NeuroBytes (если вас интересует именно тема «железа» — взгляните на этот обзор 2017 года).
В результате можно сказать, что, хотя нейроморфным вычислениям предстоит пройти ещё долгий путь, их будущее выглядит многообещающим.