Все мы помним со школы мучительные упражнения в арифметике. На то, чтобы перемножить числа вроде 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.
Мы только начали свой путь по дороге к практичным и полезным нейроморфным системам. Но усилия стоят того. В случае успеха мы не только создадим мощные вычислительные системы; мы даже можем получить новую информацию о работе нашего собственного мозга.
Поделиться с друзьями
dfgwer
. Они всю площадь 8дм пластины используют как один чип? Чип с такой площадью… Неизбежно будет иметь дефекты. Для биологических нейронных сетей, одиночные дефекты незначительно влияют на работу. Интересно сможет ли, гигантский нейроморфный чип работать несмотря на дефекты. Копипаст обученной сети, на такой аппаратной платформе будет иметь свои проблемы, ведь каждый такой чип будет иметь свой уникальный узор дефектов.
IgeNiaI
Читал про одну индийскую женщину с такой возможностью. Там говорилось, что ей просканировали мозг в момент, когда она перемножает большие числа, и заметили повышенную активность в области, отвечающей за зрение. Получается, она использует GPU для математических вычислений.
densss2
Это значит, что эту женщину, теоретически, можно задействовать в майнинге криптовалют)))
dfgwer
Представил себе человека, способного в уме решать обратную задачу SHA-256.
vedenin1980
Скорее всего он будет выглядеть как-то так
В смысле считать себя ясновидящим — экстрасенсом, так как такие способности работают чаще на подсознательном уровне. Очень может быть знаменитые ясновидящие на самом деле просто рассчитывали вероятности на подсознательном уровне с огромной мощностью. Предсказать то или иное событие человеку-компьютеру часто довольно легко.
naneri
Вы пишете про пра-пра-пра (ещё много раз пра) бабушку Муад'Диба
Mikeware
скрудж макдак в мультике это делал достоточно давно :-)
hbrmdc
ссылку можно? Желательно на документированное наблюдение, а не на «статью из интернетов»
Saladin
Подозреваю, что IgeNiaI имел в виду исследование, которое упоминается в вики.
Saladin
Думаю речь идёт о Шакунтала Деви , таких людей как она назвают феноменальный счётчик.
Fandir
Люди, которые считают быстро в уме представляют счеты абак, поэтому неудивительно, что работает эта часть мозга. Программа называется ментальной арифметикой в последнее время её активно раскручивают.
xolyspirit
Любая биологическая система тоже содержит свои уникальные дефекты, это не сказывается на общей эффективности.
Lex4art
>>Некоторые люди имеют «аппаратный калькулятор» в собственном мозгу, решающие подобные примеры за доли секунды.
Нет, не доли секунды — ближе к десяткам секунд или минутам. Посмотрите видео на ютубе, все медленно и печально…
Lex4art
Хотя нет, есть и те кто сразу выдает результат.
Bedal
1. не с математикой, а с расчётами. С математикой как раз мозг справляется, а компьютер вообще никак (по крайней мере, пока)
2. люди-расчётчики, которые действуют в уме — показывают чудеса на суммировании и умножении, так как структуры для интегрирования в мозгу есть, их только надо задействовать. Но вот с вычитаниями и делением — полный швах.
KvanTTT
Ну так деление вообще намного сложнее умножения и в компьютере. Хотя вот вычитание почти что как сложение.
Caseor
Вычитание это и есть сложение, только сложение положительной величины с отрицательной.
a-b=a+(-b)
Olorin111
только формально. На уровне вычислений — совершенно другая каша.
VioletGiraffe
Никого не смутили «100 млрд таких операций в секунду»? В 10 млрд могу поверить (10 ядер * 1 ГГц * 1 такт на умножение / сложение), но не 100 же.
Vlad_fox
все этот кусок текста бегло поняли как во «много-много-много раз больше, чем»
такого прочтения вполне достаточно для понимания данного текста.
заменив число на 100500 млрд или на 10 млн мы бы осмыслили его так же.
vedenin1980
Ну, процессор для телефона со 110 ядрами уже существует, так что несколько самых современных телефонов-прототипов могут и 100 млд. операций, наверное, делать.
DaylightIsBurning
Векторизированный код на 2ГГЦ вполне может до 100 млрд умножений/сложений выдать: 8 ядер*2*10^9Гц*8 операций/такт=128 млрд. операций.
lavmax
Это очень, очень, очень сильное упрощение. Важнейшую роль в передаче сигнала играют синапсы и нейротрансмиттеры. А это очень очень сложный аналоговый механизм со всевозможными блокираторами и стимуляторами. А само возбуждение нейрона ближе скорее к тактовым часам процессора (хотя это тоже очень грубое приближение).
mistik_max
Глубоко копнули, отличная статья! Респектую автору!
e_v_medvedev
Машины фон Неймана, наиболее распространенные сегодня, предназначены для вычислений, а не для построения нейронных сетей. Нейронные сети не предназначены для вычислений. Они ориентированы на многомерную классификацию, на основании поступающих зашумленных или неполных данных. Для построения нейронных сетей нужны процессоры, построенные на других принципах. Так в свое время проектировались специализированные LISP и Prolog машины для создания мощных экспертных систем.
nyaknyan
Как складывать числа в уме за 1 такт вычислений:
Нужно понаблюдать за своим мышлением и понять что для каждого числа внутри сознания есть интуитивное ощущение его величины. Это ощущение непрерывно и может отображать разные величины. Можно визуализировать его как отрезок. причем мы уже умеем проводить операции с такими величинами, сравнивать, определять их "на глазок" из внешнего мира и т.д.
Теперь берем допустим пример 473+591
Берем число 473 и начинаем делать из него интуитивные ощущения
сколько это 400? прочувствовали, визуализировали как отрезок, держим во внимании
сколько это 70? прочувствовали, визуализировали как отрезок, прибавили к прошлому отрезку
сколько это 3? прочувствовали без слов, прибавили к ощущению что во внимании
Получили ощущение сколько это число 473. Запоминаем его
по такому же принципу делаем ощущение из второго числа. Потренировавшись можно переводить числа в ощущения очень быстро.
Потом берем две бессловесные мысли-ощущения и визуализируя их как отрезки складываем, получаем новое ощущение, его надо разложить обратно в цифры. Без тренировки сразу это сделать не получится, цифры для сознания ненатуральны. Визуализируем шакалу — числовую ось и даем себе команду отобразить на ней получившееся ощущение. Не пытайтесь сразу отобразить точно, начинайте с высших разрядов и мысленно делайте приближение шкалы и смотрите где остается отметка результата.
Я таким способом складывал 3-4 значные числа точно или с ошибкой +-10. При этом я вообще не пытался мысленно проводить операции типа сложения столбиком. Но я практически не тренировал, способ работает сразу если делать правильно. Если потренировать немножко то можно быстро переводить числа в мыслеобразы и обратно и быстро проводить операции с хорошей точностью.
Можно еще умножать — из двух отрезков делаем прямоугольник и захватываем в новое ощущение его площадь, потом также переводим в числа по разрядам.
HerrDonUlt
По сути, симуляция миллионов нейронов ничего не решает, нужна симуляция нейронных структур и сопутствующих моделей, для решения определенных задач. Модели, в которых ошибка достаточна мала, чтобы выпускать данные сборки в люди, можно формировать, например, конструктором, или ещё более красивым методом. В лоб решать достаточно сложные задачи, можно лишь бдя дураком, или новичком.
Optimuss
Интересная мысль про то, что мы до сих пор не знаем, что в человеческом мозге осталось как «эволюционные пробы», а что действительно в нём необходимо. М.б. решение этой загадки и откроет путь к построению полноценного искусственного мозга.
arkarna
Очередное утешение гуманитариев?
Зато мой натренированный мозг — хорошо с вышкой и прикладной, плохо со всем остальным…