Все мы помним со школы мучительные упражнения в арифметике. На то, чтобы перемножить числа вроде 3 752 и 6 901 при помощи карандаша и бумаги, уйдёт не меньше минуты. Конечно же, сегодня, когда под рукой у нас телефоны, мы быстро можем проверить, что результат нашего упражнения должен равняться 25 892 552. Процессоры современных телефонов могут выполнять более 100 млрд таких операций в секунду. Более того, эти чипы потребляют всего несколько ватт, что делает их гораздо эффективнее наших медленных мозгов, потребляющих 20 Вт и требующих гораздо большего времени на достижение того же результата.
Конечно же, мозг эволюционировал не для того, чтобы заниматься арифметикой. Поэтому у него это получается плохо. Но он прекрасно справляется с обработкой постоянного потока информации, идущего от нашего окружения. И он реагирует на неё – иногда быстрее, чем мы можем это осознать. И неважно, сколько энергии будет потреблять обычный компьютер – он с трудом будет справляться с тем, что легко даётся мозгу – например, с пониманием языка или с бегом по лестнице.
Если бы могли создать машины, вычислительные способности и энергетическая эффективность которых были бы сравнимы с мозгом, то всё поменялось бы кардинально. Роботы бы ловко двигались в физическом мире и общались бы с нами на естественном языке. Крупномасштабные системы собирали бы огромные объёмы информации по бизнесу, науке, медицине или управлению государством, обнаруживая новые закономерности, находя причинно-следственные связи и делая предсказания. Умные мобильные приложения типа Siri и Cortana могли бы меньше полагаться на облака. Такая технология могла бы позволить нам создать устройства с небольшим энергопотреблением, дополняющие наши чувства, обеспечивающие нас лекарствами и эмулирующие нервные сигналы, компенсируя повреждение органов или паралич.
Но не рано ли ставить себе такие смелые цели? Не слишком ограничено ли наше понимание мозга для того, чтобы мы могли создавать технологии, работающие на основе его принципов? Я считаю, что эмуляция даже простейших особенностей нервных контуров может резко улучшить работу множества коммерческих приложений. Насколько точно компьютеры должны копировать биологические детали строения мозга, чтобы приблизиться к его уровню быстродействия – это пока открытый вопрос. Но сегодняшние системы, вдохновлённые строением мозга, или нейроморфные, станут важными инструментами для поисков ответа на него.
Ключевая особенность обычных компьютеров – физическое разделение памяти, хранящей данные и инструкции, и логики, обрабатывающей эту информацию. В мозгу такого разделения нет. Вычисления и хранение данных происходят одновременно и локально, в обширной сети, состоящей из примерно 100 млрд нервных клеток (нейронов) и более 100 трлн связей (синапсов). По большей части мозг определяется этими связями и тем, как каждый из нейронов реагирует на входящий сигнал других нейронов.
Говоря об исключительных возможностях человеческого мозга, обычно мы имеем в виду недавнее приобретение долгого эволюционного процесса – неокортекс (новую кору). Этот тонкий и крайне складчатый слой формирует внешнюю оболочку мозга и выполняет очень разные задачи, включающие обработку поступающей от чувств информации, управление моторикой, работу с памятью и обучение. Такой широкий спектр возможностей доступен довольно однородной структуре: шесть горизонтальных слоёв и миллион вертикальных столбиков по 500 мкм шириной, состоящих из нейронов, интегрирующих и распределяющих информацию, закодированную в электрических импульсах, вдоль растущих из них усиков – дендритов и аксонов.
Как у всех клеток человеческого тела, у нейрона существует электрический потенциал порядка 70 мВ между внешней поверхностью и внутренностями. Это мембранное напряжение изменяется, когда нейрон получает сигнал от других связанных с ним нейронов. Если мембранное напряжение поднимается до критической величины, он формирует импульс, или скачок напряжения, длящийся несколько миллисекунд, величиной порядка 40 мВ. Этот импульс распространяется по аксону нейрона, пока не доходит до синапса – сложной биохимической структуры, соединяющей аксон одного нейрона с дендритом другого. Если импульс удовлетворяет определённым ограничениям, синапс преобразует его в другой импульс, идущий вниз по ветвящимся дендритам нейрона, получающего сигнал, и меняет его мембранное напряжение в положительную или отрицательную сторону.
Связность – критическая особенность мозга. Пирамидальный нейрон – особенно важный тип клеток человеческого неокортекса – содержит порядка 30 000 синапсов, то есть 30 000 входных каналов от других нейронов. И мозг постоянно приспосабливается. Нейрон и свойства синапса – и даже сама структура сети – постоянно изменяются, в основном под воздействием входных данных с органов чувств и обратной связи окружающей среды.
Современные компьютеры общего назначения цифровые, а не аналоговые; мозг классифицировать не так-то просто. Нейроны накапливают электрический заряд, как конденсаторы в электронных схемах. Это явно аналоговый процесс. Но мозг использует всплески в качестве единиц информации, а это в основе своей двоичная схема: в любое время в любом месте всплеск либо есть, либо его нет. В терминах электроники, мозг – система со смешанными сигналами, с локальными аналоговыми вычислениями и передачей информацией при помощи двоичных всплесков. Поскольку у всплеска есть только значения 0 или 1, он может пройти большое расстояние, не теряя этой основной информации. Он также воспроизводится, достигая следующего нейрона в сети.
Ещё одно ключевое отличие мозга и компьютера – мозг справляется с обработкой информации без центрального тактового генератора, синхронизирующего его работу. Хотя мы и наблюдаем синхронизирующие события – мозговые волны – они организуются сами, возникая как результат работы нейросетей. Что интересно, современные компьютерные системы начинают перенимать асинхронность, свойственную мозгу, чтобы ускорить вычисления, выполняя их параллельно. Но степень и цель параллелизации двух этих систем крайне различны.
У идеи использования мозга в качестве модели для вычислений глубокие корни. Первые попытки были основаны на простом пороговом нейроне, выдающем одно значение, если сумма взвешенных входящих данных превышает порог, и другое – если не превышает. Биологический реализм такого подхода, задуманного Уорреном Маккалохом и Уолтером Питтсом в 1940-х, весьма ограничен. Тем не менее, это был первый шаг к применению концепции срабатывающего нейрона в качестве элемента вычислений.
В 1957 году Фрэнк Розенблатт предложил другой вариант порогового нейрона, перцептрон. Сеть из взаимосвязанных узлов (искусственных нейронов) составляется слоями. Видимые слои на поверхности сети взаимодействуют с внешним миром в качестве входов и выходов, а скрытые слои, находящиеся внутри, выполняют все вычисления.
Розенблатт также предложил использовать основную особенность мозга: сдерживание. Вместо того, чтобы складывать все входы, нейроны в перцептроне могут вносить и отрицательный вклад. Эта особенность позволяет нейросетям использовать единственный скрытый слой для решения задач на XOR в логике, в которых выход равен истине, если только один из двух двоичных входов истинный. Этот простой пример показывает, что добавление биологического реализма может добавлять и новые вычислительные возможности. Но какие функции мозга необходимы для его работы, а какие – бесполезные следы эволюции? Никто не знает.
Нам известно, что впечатляющих вычислительных результатов можно добиться и без попыток создать биологический реализм. Исследователи глубинного обучения продвинулись очень далеко в деле использования компьютеров для анализа крупных объёмов данных и выделения определённых признаков из сложных изображений. Хотя созданные ими нейросети обладают большим количеством входов и скрытых слоёв, чем когда бы то ни было, они всё-таки основаны на крайне простых моделях нейронов. Их широкие возможности отражают не биологический реализм, а масштаб содержащихся в них сетей и мощность используемых для их тренировки компьютеров. Но сетям с глубинным обучением всё ещё очень далеко до вычислительных скоростей, энергетической эффективности и возможностей обучения биологического мозга.
Огромный разрыв между мозгом и современными компьютерами лучше всего подчёркивают крупномасштабные симуляции мозга. За последние годы было сделано несколько таких попыток, но все они были жёстко ограничены двумя факторами: энергией и временем симуляции. К примеру, рассмотрим симуляцию, проведённую Маркусом Дайсманом с его коллегами несколько лет назад при использовании 83 000 процессоров на суперкомпьютере К в Японии. Симуляция 1,73 млрд нейронов потребляла в 10 млрд раз больше энергии, чем эквивалентный участок мозга, хотя они и использовали чрезвычайно упрощённые модели и не проводили никакого обучения. И такие симуляции обычно работали более чем в 1000 раз медленнее реального времени биологического мозга.
Почему же они такие медленные? Симуляция мозга на обычных компьютерах требует вычисления миллиардов дифференциальных уравнений, связанных между собой, и описывающих динамику клеток и сетей: аналоговые процессы вроде перемещения заряда по клеточной мембране. Компьютеры, использующие булевскую логику – меняющую энергию на точность – и разделяющие память и вычисления, крайне неэффективно справляются с моделированием мозга.
Эти симуляции могут стать инструментом познания мозга, передавая полученные в лаборатории данные в симуляции, с которыми мы можем экспериментировать, а затем сравнивать результаты с наблюдениями. Но если мы надеемся идти в другом направлении и использовать уроки нейробиологии для создания новых вычислительных систем, нам необходимо переосмыслить то, как мы разрабатываем и создаём компьютеры.
Нейроны в кремнии.
Копирование работы мозга при помощи электроники может быть более выполнимым, чем это кажется на первый взгляд. Оказывается, что на создание электрического потенциала в синапсе тратится примерно 10 фДж (10-15 джоулей). Затвор металл-оксид-полупроводникового (МОП) транзистора, значительно более крупного и потребляющего больше энергии, чем те, что используются в ЦП, требует для заряда лишь 0,5 фДж. Получается, что синаптическая передача эквивалентна зарядке 20 транзисторов. Более того, на уровне устройств биологические и электронные схемы не так уж сильно различаются. В принципе можно создать структуры, подобные синапсам и нейронам, из транзисторов, и соединить их так, чтобы получить искусственный мозг, не поглощающий таких вопиющих объёмов энергии.
Идея о создании компьютеров при помощи транзисторов, работающих как нейроны, появилась в 1980-х у профессора Карвера Мида из Калтеха. Одним из ключевых аргументов Мида в пользу «нейроморфных» компьютеров было то, что полупроводниковые устройства могут, работая в определённом режиме, следовать тем же физическим законам, что и нейроны, и что аналоговое поведение можно использовать для расчётов с большой энергоэффективностью.
Группа Мида также изобрела платформу для нейрокоммуникаций, в которой всплески кодируются только их адресами в сети и временем возникновения. Эта работа стала новаторской, поскольку она первой сделала время необходимой особенностью искусственных нейросетей. Время – ключевой фактор для мозга. Сигналам нужно время на распространение, мембранам – время на реакцию, и именно время определяет форму постсинаптических потенциалов.
Несколько активных сегодня исследовательских групп, например, группа Джиакомо Индивери из Швейцарской высшей технической школы и Квабены Боахен из Стэнфорда, пошли по стопам Мида и успешно внедрили элементы биологических корковых сетей. Фокус в том, чтобы работать с транзисторами при помощи тока низкого напряжения, не достигающего их порогового значения, создавая аналоговые схемы, копирующие поведение нервной системы, и при этом потребляющие немного энергии.
Дальнейшие исследования в этом направлении могут найти применение в таких системах, как интерфейс мозг-компьютер. Но между этими системами и реальным размером сети, связности и способностью к обучению животного мозга существует огромный разрыв.
Так что в районе 2005 году три группы исследователей независимо начали разрабатывать нейроморфные системы, существенно отличающиеся от изначального подхода Мида. Они хотели создать крупномасштабные системы с миллионами нейронов.
Ближе всех к обычным компьютерам стоит проект SpiNNaker, руководимый Стивом Фёрбером из Манчестерского университета. Эта группа разработала собственный цифровой чип, состоящий из 18 процессоров ARM, работающих на 200 МГц – примерно одна десятая часть скорости современных CPU. Хотя ядра ARM пришли из мира классических компьютеров, они симулируют всплески, отправляемые через особые маршрутизаторы, разработанные так, чтобы передавать информацию асинхронно – прямо как мозг. В текущей реализации, являющейся частью проекта Евросоюза «Человеческий мозг» [Human Brain Project], и завершённой в 2016 году, содержится 500 000 ядер ARM. В зависимости от сложности модели нейрона, каждое ядро способно симулировать до 1000 нейронов.
Чип TrueNorth, разработанный Дармендра Мода и его коллегами из Исследовательской лаборатории IBM в Альмадене, отказывается от использования микропроцессоров как вычислительных единиц, и представляет собой на самом деле нейроморфную систему, в которой переплелись вычисления и память. TrueNorth всё равно остаётся цифровой системой, но основана она на специально разработанных нейроконтурах, реализующих определённую модель нейрона. В чипе содержится 5,4 млрд транзисторов, он построен по 28-нм технологии Samsung КМОП (комплементарная структура металл-оксид-полупроводник). Транзисторы эмулируют 1 млн нейроконтуров и 256 млн простых (однобитных) синапсов на одном чипе.
Я бы сказал, что следующий проект, BrainScaleS, отошёл довольно далеко от обычных компьютеров и приблизился к биологическому мозгу. Над этим проектом работали мы с моими коллегами из Гейдельбергского университета для европейской инициативы «Человеческий мозг». BrainScaleS реализует обработку смешанных сигналов. Он комбинирует нейроны и синапсы, в роли которых выступают кремниевые транзисторы, работающие как аналоговые устройства с цифровым обменом информацией. Полноразмерная система состоит из 8-дюймовых кремниевых подложек и позволяет эмулировать 4 млн нейронов и 1 млрд синапсов.
Система может воспроизводить девять различных режимов срабатывания биологических нейронов, и разработана в тесном сотрудничестве с нейробиологами. В отличие от аналогового подхода Мида, BrainScaleS работает в ускоренном режиме, его эмуляция в 10 000 раз быстрее реального времени. Это особенно удобно для изучения процесса обучения и развития.
Обучение, скорее всего, станет критическим компонентом нейроморфных систем. Сейчас чипы, сделанные по образу мозга, а также нейросети, работающие на обычных компьютерах, тренируются на стороне при помощи более мощных компьютеров. Но если мы хотим использовать нейроморфные системы в реальных приложениях – допустим, в роботах, которые должны будут работать бок о бок с нами, они должны будут уметь учиться и адаптироваться на лету.
Во втором поколении нашей системы BrainScaleS мы реализовали возможность обучения, создав на чипе «обработчики гибкости». Они используются для изменения широкого спектра параметров нейронов и синапсов. Эта возможность позволяет нам точно подстраивать параметры для компенсации различий в размере и электрических свойствах при переходе от одного устройства к другому – примерно как сам мозг подстраивается под изменения.
Три описанных мной крупномасштабных системы дополняют друг друга. SpiNNaker можно гибко настраивать и использовать для проверки разных нейромоделей, у TrueNorth высока плотность интеграции, BrainScaleS разработана для постоянного обучения и развития. Поиски правильного способа оценки эффективности таких систем пока продолжаются. Но и ранние результаты многообещающие. Группа TrueNorth от IBM недавно подсчитала, что синаптическая передача в их системе отнимает 26 пДж. И хотя это в 1000 раз больше энергии, требующейся в биологической системе, зато это почти в 100 000 раз меньше энергии, уходящей на передачу в симуляции на компьютерах общего назначения.
Мы всё ещё находимся на ранней стадии понимания того, что могут делать такие системы и как их применять к решению реальных задач. Одновременно мы должны найти способы комбинировать множество нейроморфных чипов в крупные сети с улучшенными возможностями к обучению, при этом понижая энергопотребление. Одна из проблем – связность: мозг трёхмерный, а наши схемы – двумерные. Вопрос трёхмерной интеграции схем сейчас активно изучают, и такие технологии могут нам помочь.
Ещё одним подспорьем могут стать устройства, не основанные на КМОП – мемристоры или PCRAM (память с изменением фазового состояния). Сегодня веса, определяющие реакцию искусственных синапсов на входящие сигналы, хранятся в обычной цифровой памяти, отнимающей большую часть кремниевых ресурсов, необходимых для построения сети. Но другие виды памяти могут помочь нам уменьшить размеры этих ячеек с микрометровых до нанометровых. И основной трудностью современных систем будет поддержка различий между разными устройствами. Для этого смогут помочь принципы калибровки, разработанные в BrainScaleS.
Мы только начали свой путь по дороге к практичным и полезным нейроморфным системам. Но усилия стоят того. В случае успеха мы не только создадим мощные вычислительные системы; мы даже можем получить новую информацию о работе нашего собственного мозга.
Конечно же, мозг эволюционировал не для того, чтобы заниматься арифметикой. Поэтому у него это получается плохо. Но он прекрасно справляется с обработкой постоянного потока информации, идущего от нашего окружения. И он реагирует на неё – иногда быстрее, чем мы можем это осознать. И неважно, сколько энергии будет потреблять обычный компьютер – он с трудом будет справляться с тем, что легко даётся мозгу – например, с пониманием языка или с бегом по лестнице.
Если бы могли создать машины, вычислительные способности и энергетическая эффективность которых были бы сравнимы с мозгом, то всё поменялось бы кардинально. Роботы бы ловко двигались в физическом мире и общались бы с нами на естественном языке. Крупномасштабные системы собирали бы огромные объёмы информации по бизнесу, науке, медицине или управлению государством, обнаруживая новые закономерности, находя причинно-следственные связи и делая предсказания. Умные мобильные приложения типа Siri и Cortana могли бы меньше полагаться на облака. Такая технология могла бы позволить нам создать устройства с небольшим энергопотреблением, дополняющие наши чувства, обеспечивающие нас лекарствами и эмулирующие нервные сигналы, компенсируя повреждение органов или паралич.
Но не рано ли ставить себе такие смелые цели? Не слишком ограничено ли наше понимание мозга для того, чтобы мы могли создавать технологии, работающие на основе его принципов? Я считаю, что эмуляция даже простейших особенностей нервных контуров может резко улучшить работу множества коммерческих приложений. Насколько точно компьютеры должны копировать биологические детали строения мозга, чтобы приблизиться к его уровню быстродействия – это пока открытый вопрос. Но сегодняшние системы, вдохновлённые строением мозга, или нейроморфные, станут важными инструментами для поисков ответа на него.
Ключевая особенность обычных компьютеров – физическое разделение памяти, хранящей данные и инструкции, и логики, обрабатывающей эту информацию. В мозгу такого разделения нет. Вычисления и хранение данных происходят одновременно и локально, в обширной сети, состоящей из примерно 100 млрд нервных клеток (нейронов) и более 100 трлн связей (синапсов). По большей части мозг определяется этими связями и тем, как каждый из нейронов реагирует на входящий сигнал других нейронов.
Говоря об исключительных возможностях человеческого мозга, обычно мы имеем в виду недавнее приобретение долгого эволюционного процесса – неокортекс (новую кору). Этот тонкий и крайне складчатый слой формирует внешнюю оболочку мозга и выполняет очень разные задачи, включающие обработку поступающей от чувств информации, управление моторикой, работу с памятью и обучение. Такой широкий спектр возможностей доступен довольно однородной структуре: шесть горизонтальных слоёв и миллион вертикальных столбиков по 500 мкм шириной, состоящих из нейронов, интегрирующих и распределяющих информацию, закодированную в электрических импульсах, вдоль растущих из них усиков – дендритов и аксонов.
Как у всех клеток человеческого тела, у нейрона существует электрический потенциал порядка 70 мВ между внешней поверхностью и внутренностями. Это мембранное напряжение изменяется, когда нейрон получает сигнал от других связанных с ним нейронов. Если мембранное напряжение поднимается до критической величины, он формирует импульс, или скачок напряжения, длящийся несколько миллисекунд, величиной порядка 40 мВ. Этот импульс распространяется по аксону нейрона, пока не доходит до синапса – сложной биохимической структуры, соединяющей аксон одного нейрона с дендритом другого. Если импульс удовлетворяет определённым ограничениям, синапс преобразует его в другой импульс, идущий вниз по ветвящимся дендритам нейрона, получающего сигнал, и меняет его мембранное напряжение в положительную или отрицательную сторону.
Связность – критическая особенность мозга. Пирамидальный нейрон – особенно важный тип клеток человеческого неокортекса – содержит порядка 30 000 синапсов, то есть 30 000 входных каналов от других нейронов. И мозг постоянно приспосабливается. Нейрон и свойства синапса – и даже сама структура сети – постоянно изменяются, в основном под воздействием входных данных с органов чувств и обратной связи окружающей среды.
Современные компьютеры общего назначения цифровые, а не аналоговые; мозг классифицировать не так-то просто. Нейроны накапливают электрический заряд, как конденсаторы в электронных схемах. Это явно аналоговый процесс. Но мозг использует всплески в качестве единиц информации, а это в основе своей двоичная схема: в любое время в любом месте всплеск либо есть, либо его нет. В терминах электроники, мозг – система со смешанными сигналами, с локальными аналоговыми вычислениями и передачей информацией при помощи двоичных всплесков. Поскольку у всплеска есть только значения 0 или 1, он может пройти большое расстояние, не теряя этой основной информации. Он также воспроизводится, достигая следующего нейрона в сети.
Ещё одно ключевое отличие мозга и компьютера – мозг справляется с обработкой информации без центрального тактового генератора, синхронизирующего его работу. Хотя мы и наблюдаем синхронизирующие события – мозговые волны – они организуются сами, возникая как результат работы нейросетей. Что интересно, современные компьютерные системы начинают перенимать асинхронность, свойственную мозгу, чтобы ускорить вычисления, выполняя их параллельно. Но степень и цель параллелизации двух этих систем крайне различны.
У идеи использования мозга в качестве модели для вычислений глубокие корни. Первые попытки были основаны на простом пороговом нейроне, выдающем одно значение, если сумма взвешенных входящих данных превышает порог, и другое – если не превышает. Биологический реализм такого подхода, задуманного Уорреном Маккалохом и Уолтером Питтсом в 1940-х, весьма ограничен. Тем не менее, это был первый шаг к применению концепции срабатывающего нейрона в качестве элемента вычислений.
В 1957 году Фрэнк Розенблатт предложил другой вариант порогового нейрона, перцептрон. Сеть из взаимосвязанных узлов (искусственных нейронов) составляется слоями. Видимые слои на поверхности сети взаимодействуют с внешним миром в качестве входов и выходов, а скрытые слои, находящиеся внутри, выполняют все вычисления.
Розенблатт также предложил использовать основную особенность мозга: сдерживание. Вместо того, чтобы складывать все входы, нейроны в перцептроне могут вносить и отрицательный вклад. Эта особенность позволяет нейросетям использовать единственный скрытый слой для решения задач на XOR в логике, в которых выход равен истине, если только один из двух двоичных входов истинный. Этот простой пример показывает, что добавление биологического реализма может добавлять и новые вычислительные возможности. Но какие функции мозга необходимы для его работы, а какие – бесполезные следы эволюции? Никто не знает.
Нам известно, что впечатляющих вычислительных результатов можно добиться и без попыток создать биологический реализм. Исследователи глубинного обучения продвинулись очень далеко в деле использования компьютеров для анализа крупных объёмов данных и выделения определённых признаков из сложных изображений. Хотя созданные ими нейросети обладают большим количеством входов и скрытых слоёв, чем когда бы то ни было, они всё-таки основаны на крайне простых моделях нейронов. Их широкие возможности отражают не биологический реализм, а масштаб содержащихся в них сетей и мощность используемых для их тренировки компьютеров. Но сетям с глубинным обучением всё ещё очень далеко до вычислительных скоростей, энергетической эффективности и возможностей обучения биологического мозга.
Огромный разрыв между мозгом и современными компьютерами лучше всего подчёркивают крупномасштабные симуляции мозга. За последние годы было сделано несколько таких попыток, но все они были жёстко ограничены двумя факторами: энергией и временем симуляции. К примеру, рассмотрим симуляцию, проведённую Маркусом Дайсманом с его коллегами несколько лет назад при использовании 83 000 процессоров на суперкомпьютере К в Японии. Симуляция 1,73 млрд нейронов потребляла в 10 млрд раз больше энергии, чем эквивалентный участок мозга, хотя они и использовали чрезвычайно упрощённые модели и не проводили никакого обучения. И такие симуляции обычно работали более чем в 1000 раз медленнее реального времени биологического мозга.
Почему же они такие медленные? Симуляция мозга на обычных компьютерах требует вычисления миллиардов дифференциальных уравнений, связанных между собой, и описывающих динамику клеток и сетей: аналоговые процессы вроде перемещения заряда по клеточной мембране. Компьютеры, использующие булевскую логику – меняющую энергию на точность – и разделяющие память и вычисления, крайне неэффективно справляются с моделированием мозга.
Эти симуляции могут стать инструментом познания мозга, передавая полученные в лаборатории данные в симуляции, с которыми мы можем экспериментировать, а затем сравнивать результаты с наблюдениями. Но если мы надеемся идти в другом направлении и использовать уроки нейробиологии для создания новых вычислительных систем, нам необходимо переосмыслить то, как мы разрабатываем и создаём компьютеры.
Нейроны в кремнии.
Копирование работы мозга при помощи электроники может быть более выполнимым, чем это кажется на первый взгляд. Оказывается, что на создание электрического потенциала в синапсе тратится примерно 10 фДж (10-15 джоулей). Затвор металл-оксид-полупроводникового (МОП) транзистора, значительно более крупного и потребляющего больше энергии, чем те, что используются в ЦП, требует для заряда лишь 0,5 фДж. Получается, что синаптическая передача эквивалентна зарядке 20 транзисторов. Более того, на уровне устройств биологические и электронные схемы не так уж сильно различаются. В принципе можно создать структуры, подобные синапсам и нейронам, из транзисторов, и соединить их так, чтобы получить искусственный мозг, не поглощающий таких вопиющих объёмов энергии.
Идея о создании компьютеров при помощи транзисторов, работающих как нейроны, появилась в 1980-х у профессора Карвера Мида из Калтеха. Одним из ключевых аргументов Мида в пользу «нейроморфных» компьютеров было то, что полупроводниковые устройства могут, работая в определённом режиме, следовать тем же физическим законам, что и нейроны, и что аналоговое поведение можно использовать для расчётов с большой энергоэффективностью.
Группа Мида также изобрела платформу для нейрокоммуникаций, в которой всплески кодируются только их адресами в сети и временем возникновения. Эта работа стала новаторской, поскольку она первой сделала время необходимой особенностью искусственных нейросетей. Время – ключевой фактор для мозга. Сигналам нужно время на распространение, мембранам – время на реакцию, и именно время определяет форму постсинаптических потенциалов.
Несколько активных сегодня исследовательских групп, например, группа Джиакомо Индивери из Швейцарской высшей технической школы и Квабены Боахен из Стэнфорда, пошли по стопам Мида и успешно внедрили элементы биологических корковых сетей. Фокус в том, чтобы работать с транзисторами при помощи тока низкого напряжения, не достигающего их порогового значения, создавая аналоговые схемы, копирующие поведение нервной системы, и при этом потребляющие немного энергии.
Дальнейшие исследования в этом направлении могут найти применение в таких системах, как интерфейс мозг-компьютер. Но между этими системами и реальным размером сети, связности и способностью к обучению животного мозга существует огромный разрыв.
Так что в районе 2005 году три группы исследователей независимо начали разрабатывать нейроморфные системы, существенно отличающиеся от изначального подхода Мида. Они хотели создать крупномасштабные системы с миллионами нейронов.
Ближе всех к обычным компьютерам стоит проект SpiNNaker, руководимый Стивом Фёрбером из Манчестерского университета. Эта группа разработала собственный цифровой чип, состоящий из 18 процессоров ARM, работающих на 200 МГц – примерно одна десятая часть скорости современных CPU. Хотя ядра ARM пришли из мира классических компьютеров, они симулируют всплески, отправляемые через особые маршрутизаторы, разработанные так, чтобы передавать информацию асинхронно – прямо как мозг. В текущей реализации, являющейся частью проекта Евросоюза «Человеческий мозг» [Human Brain Project], и завершённой в 2016 году, содержится 500 000 ядер ARM. В зависимости от сложности модели нейрона, каждое ядро способно симулировать до 1000 нейронов.
Чип TrueNorth, разработанный Дармендра Мода и его коллегами из Исследовательской лаборатории IBM в Альмадене, отказывается от использования микропроцессоров как вычислительных единиц, и представляет собой на самом деле нейроморфную систему, в которой переплелись вычисления и память. TrueNorth всё равно остаётся цифровой системой, но основана она на специально разработанных нейроконтурах, реализующих определённую модель нейрона. В чипе содержится 5,4 млрд транзисторов, он построен по 28-нм технологии Samsung КМОП (комплементарная структура металл-оксид-полупроводник). Транзисторы эмулируют 1 млн нейроконтуров и 256 млн простых (однобитных) синапсов на одном чипе.
Я бы сказал, что следующий проект, BrainScaleS, отошёл довольно далеко от обычных компьютеров и приблизился к биологическому мозгу. Над этим проектом работали мы с моими коллегами из Гейдельбергского университета для европейской инициативы «Человеческий мозг». BrainScaleS реализует обработку смешанных сигналов. Он комбинирует нейроны и синапсы, в роли которых выступают кремниевые транзисторы, работающие как аналоговые устройства с цифровым обменом информацией. Полноразмерная система состоит из 8-дюймовых кремниевых подложек и позволяет эмулировать 4 млн нейронов и 1 млрд синапсов.
Система может воспроизводить девять различных режимов срабатывания биологических нейронов, и разработана в тесном сотрудничестве с нейробиологами. В отличие от аналогового подхода Мида, BrainScaleS работает в ускоренном режиме, его эмуляция в 10 000 раз быстрее реального времени. Это особенно удобно для изучения процесса обучения и развития.
Обучение, скорее всего, станет критическим компонентом нейроморфных систем. Сейчас чипы, сделанные по образу мозга, а также нейросети, работающие на обычных компьютерах, тренируются на стороне при помощи более мощных компьютеров. Но если мы хотим использовать нейроморфные системы в реальных приложениях – допустим, в роботах, которые должны будут работать бок о бок с нами, они должны будут уметь учиться и адаптироваться на лету.
Во втором поколении нашей системы BrainScaleS мы реализовали возможность обучения, создав на чипе «обработчики гибкости». Они используются для изменения широкого спектра параметров нейронов и синапсов. Эта возможность позволяет нам точно подстраивать параметры для компенсации различий в размере и электрических свойствах при переходе от одного устройства к другому – примерно как сам мозг подстраивается под изменения.
Три описанных мной крупномасштабных системы дополняют друг друга. SpiNNaker можно гибко настраивать и использовать для проверки разных нейромоделей, у TrueNorth высока плотность интеграции, BrainScaleS разработана для постоянного обучения и развития. Поиски правильного способа оценки эффективности таких систем пока продолжаются. Но и ранние результаты многообещающие. Группа TrueNorth от IBM недавно подсчитала, что синаптическая передача в их системе отнимает 26 пДж. И хотя это в 1000 раз больше энергии, требующейся в биологической системе, зато это почти в 100 000 раз меньше энергии, уходящей на передачу в симуляции на компьютерах общего назначения.
Мы всё ещё находимся на ранней стадии понимания того, что могут делать такие системы и как их применять к решению реальных задач. Одновременно мы должны найти способы комбинировать множество нейроморфных чипов в крупные сети с улучшенными возможностями к обучению, при этом понижая энергопотребление. Одна из проблем – связность: мозг трёхмерный, а наши схемы – двумерные. Вопрос трёхмерной интеграции схем сейчас активно изучают, и такие технологии могут нам помочь.
Ещё одним подспорьем могут стать устройства, не основанные на КМОП – мемристоры или PCRAM (память с изменением фазового состояния). Сегодня веса, определяющие реакцию искусственных синапсов на входящие сигналы, хранятся в обычной цифровой памяти, отнимающей большую часть кремниевых ресурсов, необходимых для построения сети. Но другие виды памяти могут помочь нам уменьшить размеры этих ячеек с микрометровых до нанометровых. И основной трудностью современных систем будет поддержка различий между разными устройствами. Для этого смогут помочь принципы калибровки, разработанные в BrainScaleS.
Мы только начали свой путь по дороге к практичным и полезным нейроморфным системам. Но усилия стоят того. В случае успеха мы не только создадим мощные вычислительные системы; мы даже можем получить новую информацию о работе нашего собственного мозга.