Нейрокомпьютеры и моделирование импульсных нейросетей

МЕНЮ


Искусственный интеллект. Новости
Поиск

ТЕМЫ


Внедрение ИИНовости ИИРобототехника, БПЛАТрансгуманизмЛингвистика, обработка текстаБиология, теория эволюцииВиртулаьная и дополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информации

RSS


RSS новости

Авторизация



Новостная лента форума ailab.ru

Специалист в Computer Science Михаил Киселев об идее создания нейрокомпьютеров, подходах к нейрочипам и видах импульсных нейронных сетей

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

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

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

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

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

На обычном компьютере реализовывать модели импульсных нейросетей невозможно, главная причина в уровне параллелизма. Если нейронная сеть включает сто тысяч нейронов, а процессорных ядер у нас всего десять, то получается, что каждый процессор должен по очереди обсчитывать десять тысяч нейронов, что невозможно уложить в реальное время. Мы можем поступить так же, как часто делают при обработке больших данных (big data) — путем создания большой фермы из обычных компьютеров, соединенных быстрой локальной сетью. Тут мы тоже получаем довольно большой уровень параллелизма, но это все равно не ответ: на одном мощном компьютере можно моделировать сотню нейронов. Если мы хотим моделировать миллион нейронов, то получается, что нам нужно десять тысяч таких компьютеров. Несмотря на то что это все же реально, проблема в том, что каждый нейрон соединен с большим количеством других, а каждый нейрон, реализованный на одном таком узле, будет иметь очень много связей с другими узлами. Каждый посылаемый им нервный импульс транслируется на огромное количество узлов большой фермы компьютеров. Учитывая, что таких нейронов миллион, если каждый из них генерирует импульсы в среднем с частотой несколько герц, мы получаем сотни миллиардов пакетов в секунду. Никакое оборудование не сможет справиться с этим.

Более реальная, близкая к ответу вещь — это графический процессор, знакомый всем и вошедший в повседневную жизнь. Флагманом в этом направлении является компания NVidia, которая сначала производила графические платы. Они были особо популярны среди геймеров, потому что очень хорошо все отрисовывали за счет высокой параллельности. Потом эти платы лишились даже графического выхода и стали использоваться как сопроцессоры, дающие обычному PC мощь маленького суперкомпьютера. В конце концов они снова стали специализированными, но уже для нейросетей. Сейчас NVidia выпускает процессоры, которые специализированы для реализации на них нейросетей. Эти платы быстро развиваются, и вполне возможно, что скоро появятся платы в десять тысяч ядер и десятки гигабайтов памяти — в одну такую плату можно уместить нейросети размером в сто тысяч нейронов. Если их делать несколько, то в реальном времени на такой системе можно реализовать порядка миллиона нейронов. К сожалению, если мы будем приближаться к размерам человеческого мозга (порядка десяти миллиардов нейронов), проблемы будут примерно те же, что и с обычными PC: мы снова получим вал пакетов обмена импульсами между нейронами, с которым мало какое оборудование сможет справиться.

После этого мы переходим в область собственно нейрокомпьютеров. Можно разделить их на три категории. Первая — это нейрокомпьютеры, основанные на универсальных процессорах, где каждое ядро представляет собой маленький обычный компьютер. Их очень много, и они очень простые. К такому классу относится проект SpiNNaker Манчестерского университета — система, которая развивается уже примерно десять лет. Ядром этой системы является микросхема, в которой находится восемнадцать ARM-процессоров, ARM968. Один из них запасной и может заменить вышедший из строя процессор, еще один имеет функцию менеджера, управляющего всей системой. Остальные шестнадцать — для моделирования. Из этих нейрочипов, созданных специально для моделирования нейросетей, делаются платы по сорок восемь процессоров на плате. В зависимости от модели нейрона одна такая плата способна моделировать десятки тысяч нейронов в реальном времени. Однако главное не в том, из каких процессоров сделаны эти чипы, а в том, что в этом проекте удалось найти очень успешное решение маршрутизации нейронных импульсов между ядрами процессоров на плате, между разными платами и между стойками. Они очень хорошо масштабируются. Как мы помним, в мозге белое вещество занимает больше по объему, и моделирование именно распространения спайков важнее, чем моделирование их обработки в нейронах. Этот проект идет сейчас, на данный момент собрана система, включающая полмиллиона ядер. Если учитывать, что каждое ядро — это по крайней мере сотни нейронов, то уже сейчас в реальном времени могут моделировать очень большие ансамбли из десятков миллионов нейронов.

Однако имеются недостатки. Во-первых, проект начался давно, десять лет назад, и элементная база уже несколько устарела. Более того, ARM-процессоры устаревают все больше и больше. Во-вторых, очень много средств было направлено на подготовку устройства, его реализацию и производство, но недостаточно на программную поддержку. Отлаживать работу такой системы очень сложно. То, что на это направлено мало средств, сильно тормозит. Тем не менее, на мой взгляд, этот проект — один из самых близких для целей искусственного интеллекта.

Искусственный интеллект можно разделить на две ветви: макроинтеллект, представляющий собой мощную систему, потребляющую энергию небольшой электростанции, занимающую несколько комнат и сходную с человеком по потенциальным возможностям, и микроинтеллект — множество мелких индивидуальных устройств, окружающих нас, вроде смартфона. Нейрокомпьютеры имеют отношение к обеим этим вещам. Второй тип нейрокомпьютеров основан на аналоговых устройствах, на аналоговых чипах. Что это такое? Допустим, мы хотим посчитать экспоненту. Известно, что экспонента — это часто встречающийся в моделировании нейронов элемент (например, мембранный потенциал разрушается именно по экспоненте). Счет экспоненты очень трудоемок, потому что требует много десятков операций с плавающей точкой: сложение, умножение. Представьте, что вместо этого мы берем конденсатор, соединяем его параллельно с резистором, а потенциал на такой системе сам собой по экспоненте убывает — мы не считаем его, а просто получаем данные. Аналогично все происходит и с другими процессами, которые у нас получаются без какого-либо расчета. Это, конечно, очень сильно повышает эффективность всей системы, но имеет свои минусы. Аналогово посчитав сам нейрон, мы должны распространить импульсы этих нейронов в другие. Для этого мы должны сделать цифровую технику, маршрутизаторы. Поэтому, к сожалению, нам приходится снова возвращаться в мир цифры, и мы теряем все преимущества, которые здесь имели.

В заключение о третьем направлении, самом новом и, возможно, самом интересном. Оно представлено пока только одним нейрочипом TrueNorth, который произведен компанией IBM и сразу попал в книгу рекордов Гиннеса сразу по многим номинациям. Во-первых, это самый большой чип в мире, в нем пять с половиной миллиардов транзисторов. И вместе с тем он самый экономичный: его расход энергии не слишком отличается от расхода энергии мозга, такого же по размеру нейронного ансамбля. В этом чипе моделируется один миллион нейронов, хотя у них недостаточно связей, всего 256 синапсов. Несмотря на то что это исключительная разработка, у TrueNorth много минусов: он не обучается (обучаться эта нейросеть должна где-то в другом месте, после чего ее транслируют и портируют в этот чип); он цифровой, но модель нейрона, которая в нем есть, жестко задана, ее нельзя изменить, хотя она формализована многими параметрами. В этом заключается серьезное ограничение возможностей его применения, поэтому можно считать, что следующие чипы будут гораздо серьезнее. Но направление, безусловно, прорывное и много где используется.



Источник: postnauka.ru