SpiNNaker — нейронный компьютер

    Прочитав недавно опубликованную статью «Обзор современных проектов крупномасштабного моделирования мозговой активности», хотелось бы рассказать о другом подобном проекте, проводимом научной группой Манчестерского Университета в Великобритании под руководством профессора
    Стива Фурбера (Steve Furber), создателя BBC Microcomputer и 32-битного ARM RISC микропроцессора, а также основателя компании ARM.

    Экскурс в историю исследований Манчестерского Университета


    Университет имеет выдающуюся историю разработок вычислительных машин и сыграл революционную роль в развитии информатики и искусственного интеллекта. Первый в мире электронный компьютер под названием SSEM, также известный как «Baby», отличительной характеристикой которого было совместное хранение данных и программ в памяти машины (иными словами, соответствие фон Неймановской архитектуре), был создан в 1948 году Фредериком Уильямсом и Томом Килберном. Само устройство было создано не столько для вычислительных целей, сколько для изучения свойств компьютерной памяти на электронно-лучевых трубках (иначе «трубках Уильямса»).

    Успех эксперимента побудил к созданию в следующем году Манчестерского Марка 1 (Manchester Mark 1), который уже имел устройство для чтения и записи перфоленты, позволяющей производить ввод/вывод с магнитного барабана без непосредственной остановки программы. Также в Марке 1 впервые в мире были применены индексные регистры. Двумя годами позже там же был разработан первый в мире коммерческий универсальный компьютер Ферранти Марк 1 (Ferranti Mark 1). Эти вычислительные машины стали прародителями почти всех современных компьютеров.

    В экспериментах с «Baby» и Марком 1 принимал непосредственное участие Алан Тьюринг, один из основоположников вычислительной техники и искусственного интеллекта. Тьюринг полагал, что компьютеры в конце концов смогут мыслить как человек. Результаты своих исследований он опубликовал в статье «Вычислительные машины и разум», в которой в частности был предложен мысленный эксперимент (ставший известным как тест Тьюринга), заключающийся в оценивании способности машины мыслить: способен ли человек, беседуя с невидимым собеседником, определить, общается ли он с другим человеком или искусственным устройством.

    Мотивы проекта


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

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

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

    Цели проекта SpiNNaker


    Вышеописанные мотивы движут научно-исследовательской группой, работающей над проектом под названием SpiNNaker (Spiking Neural Network Architecture). Цель проекта является создание устройства с достаточно высокой устойчивостью к сбоям, что достигается путём разделения вычислительной мощности на n-ное количество частей, выполняющих простейшие подзадачи. Причём при отказе любой из таких частей система продолжает корректно функционировать, лишь переконфигурировав себя таким образом, чтобы исключить ненадёжный узел, перераспределяя его обязанности на соседние узлы и находя альтернативные «синаптические» связи для передачи сигналов. Что-то схожее происходит в человеческом мозгу, ведь приблизительно каждую секунду человек теряет по нейрону, но это мало отражается на его способности мыслить.

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

    На первой стадии проекта планируется симулировать в реальном времени до 500 000 нейронов, что примерно соответствует количеству нейронов в мозгу пчелы. На конечной стадии проекта предполагается, что устройство будет способно смоделировать до миллиарда нейронов, что приблизительно равняется количеству нейронов в человеческом мозгу.

    Архитектура системы


    Примечателен сам подход к проектированию вычислительной машины. Предлагаемое устройство состоит из регулярной матрицы из 50 чипов. Каждый чип имеет 20 микропроцессоров ARM968, причём 19 из них выделены непосредственно на моделирование нейронов, а оставшийся контролирует работу чипа и ведёт лог активности.

    image
    Рис. 1. Системная диаграмма

    Каждый такой чип является завершённой подсистемой со своим маршрутизатором, внутренней синхронной динамической ОЗУ с режимом прямого доступа (32 Кбайта для хранения команд и 64 Кбайта для хранения данных) и своей собственной системой передачи сообщений с пропускной способностью в 8 Гбит в секунду. К тому же каждый чип имеет 1 Гбайт внешней памяти для хранения топологии сети. По утверждению разработчиков, соотношение центрального процессора, внутренней памяти и средств передачи данных позволяют моделировать до 1 000 нейронов в каждом микропроцессоре в реальном времени.

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

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

    До непосредственного начала самой симуляции конфигурационный файл загружается в систему, определяя расположение нейронов и начальные данные сети. Такой способ загрузки данных требует наличие простейшей операционной системы на каждом чипе. В рабочем состоянии машине необходима постоянная подача информации на входе, а результат подаётся на выходное устройство.

    image
    Рис. 2. Тестовый чип

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

    Перспективы


    Несмотря на то, что первостепенное назначение машины направлено на моделирование нейронных сетей, наравне существует возможность её использования в иных разнообразных приложениях, требующих большой вычислительной мощности, как protein folding, дешифрации или поиска в базах данных.
    Share post

    Similar posts

    Comments 22

      +5
      Было бы интересно в продолжении узнать, что конкретно за нейронные сети они моделируют (модели нейронов и синапсов например), а также в чем состоит суть используемой модели обучения нейронной сети. В данном обзоре про это практически не рассказывается к сожалению.
      Спасибо за статью.
        +4
        Большое спасибо за интерес! Обязательно напишу про это и надеюсь не обмануть ожиданий.
          0
          Согласен. Это один из ключевых моментов.
          +1
          Отличительной особенностью данной системы является полное отсутствие синхронизации. Каждый нейрон, при достижении определённого внутреннего состояния, шлёт сигнал постсинаптическому нейрону, который соответственно отправляет или не отправляет (в зависимости от своего внутреннего состояния) новый сигнал последующему нейрону.

          Функция рандом на таймере не менее эффективна.
          Было бы интересно почитать по модели нейронов которые они используют. Может станет понятно почему они не синхронизированы.
            +2
            Почему они не синхронизированы вполне понятно (хотя я не знаю какие модели нейронов они используют). Проект называется Spiking Neural Network Architecture, то есть логично предположить, что они используют некоторую спайковую модель нейрона. В сетях построенных на спайковых нейронах модель синапса предусматривает задержку прохождения сигнала по нему. Соответственно проблем с синхронизацией не возникает — когда сигнал дойдет, тогда и дойдет.=)

            Как раз сейчас работаю над переводом настольной статьи всех специалистов, занимающихся спайковыми моделями нейронов — Izhikevich E. Wich Model to Use for Cortical Spiking Neurons (2004). Когда доделаю, выложу на хабре.=)
              +2
              Вы совершенно правильно предположили, используется как раз модель Ижикевича. Хотя существует возможность загружать и другие модели нейронов, в частности такие простые, как импульсные (Integrate-and-Fire).
            +4
            ждем, больше бы вас таких на хабр
              0
              очень жду продолжения!
                –1
                Я вот только не пойму если они хотят отказоустойчивости пускай используют голографическую модель, никто вроде её не развивал в таком ракурсе, насколько мне известно.
                Попробую объяснить что я имею в виду.
                Не знаю как оно в жизни называется, я очень частично знаком с темой нейронных сетей
                (с алгоритмической точки зрения), но вот если отрезать кусок мозгов то это не означает что:

                [Миф 1] Мозг станет менее функционален (хм зависит от размера самого куска).
                Мозг очень эластичная весч, вот я где-то читал, в какой-то буржуйской книге, что американцы слепому в нерв языка камеру вставляли, и ничего мозги приспосабливались, правда изображение чёрно-белое было только.
                antitroll_mode on
                если кому интересно можете погуглить…

                [Миф 2] Мозг потеряет кусок памяти при нарезке и подальшем приготовлении.
                Дело в том что информация храниться не конкретно «где-то» в мозгу, а по чётким и нечётким критериям во всей коре (иль глубже, я не биолог), которые могут быть востановлены друг от друга в 80% случаев потери. Все эти критерии одновременно учавствуют в процесе обучения формируя так называемую динамическию петлю, или мего-генератор популяции для чего-то вроде ген. алгоритма.

                Так вот основываясь на этих понятиях уже можно отталкиваться и творить что-то новое, а не формировать макросистему на основе микросистемы (в даной задаче очень избыточно), на основе «статических, негибких» моделей сетей, которые не предполагают самомодификаций…
                Оптические нейронные сети на голографических кореляторах уже есть. Часто первой аналогией являются класические модели Хопфилда и Коско, но это всё не то что нужно, ибо по самой задумке модель должна менять свою структуру.

                  0
                  Видимо, если создатели уже заложили свою модель в железе — предполагается коммерческое использование, уже известны протенциальные области применения. А вы пишите о совсем революционных вещах. Имхо цели проектов немного разные.
                    +1
                    Люди, читайте внимательнее, перед вами хардварная реализация голографической модели, да ещё с возможностью изменения модели самого нейрона, а не только связей между ними. Здесь гибкость софтовой симуляции, сочетается быстродействием так необходимым для практических применений.
                    Спайковые нейроны как раз и реализуют голографическую модель, причём способную обучаться и «жить» в отличии от оптических голографических корреляторов которые в своё время были хороши для иллюстрации принципа, но совершенно не проф пригодны из-за принципиальной неспособности даже обучаться в динамике которая была даже у тупых сетей обратного распространения.
                      0
                      Остаётся та посоветовать будущим разработчикам центрального и северо-западного региона России «голографических» ARM систем использовать частотную «глубину» для хранения модели.

                      Правда это добавит ещё один порядок к сложности системы (Копия голограммы для каждой частоты (масштаба) исследованной системы):-)

                      С уважением,
                      инопланетяне
                        +1
                        Не понятно как спайковые нейроны реализуют голографическую модель, потому что они как бы вообще и без нее нормально живут и к ней отношения не имеют.

                        Про способность обучаться и «жить» я в статье ничего не увидел, а по большому опыту знакомства с подобными исследованиями у меня есть большие сомнения о качестве такого обучения и вообще об уровне его адаптивности.

                        И напишу еще раз, то что уже было в комментарии ниже. Голографическая модель — это модель памяти в мозге. Про обучение там вообще ничего особо не говорится. И как хранить в этой модели процедурные знания вообще никто не предлагал (про декларативные все более менее понятно).
                          0
                          Я не сильно ознакомлён с темой нейронных сетей, но мне тоже не понятно как спайковые нейроны реализуют голографическую сеть.
                      +1
                      Голографическая модель в нейробиологии — это теории строения памяти. Во-первых об обучении в этой теории вообще ничего особо не говорится, а во-вторых она совершенно спекулятивна с точки зрения самой нейробиологии.
                      Но самое забавное, что может декларативную память голографическая модель и может хранить, но вот как она будет хранить процедурную память вообще никто не предлагал еще.

                      Теперь пройдемся по мифам.
                      Миф 1. Первое — зависит не только от размера куска, но и от того, что это за кусок. Второе — тот пример, который вы привели — это сказка. Такого никто еще не смог сделать (чтобы вживить камеру в нерв и больной человек мог бы получать изображение), иначе все слепые бы уже ходили с подобными протезами.
                      При этом Вы все равно правы, что мозг это невероятно пластичная система.

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

                      Красиво у вас все звучит про то, как надо бы это все делать. Но когда ты реально этим занимаешься, то видишь кучу проблем, которые надо решать. И на их решение может уйти не одно десятилетие.
                        0
                        Ну по-поводу мифа 1. POC г03етко
                        И это не первый случай, самым первым был какой-то писатель — ему прямо в язык впихнули провода =) (да да терминафтары DeusEx и аnti_trollmode негодуют)

                        Миф 2. Я же сказал что в 80% случаев возможно востановление (возможно и не полное)
                        а вот отрезать кусок который отвечает за востановление «всего» довольно сложно,
                        так как много резать придётся и в правой и в левой доле,
                        в мозгах нет разницы между сохранением критериев оценки образа и способами его обработки, способы обработки являются непосредственно инкапсулироваными в абстрактный образ.

                        Генетические алгоритмы имеют непосредственное отношение к процесам обучения и формированию абстрактных образов. Дело в том что мозг явно не использует шум нейронной сети для формирования творческого начала, шум в даном случае это рандомная последовательность переборки образов (возможно и несовместимых) которые используются в неком подобии генетического алгоритма для формирования новых образов как и способов решения практических задач. Вот почему в системах обучения крыс и роботов есть различия в обратной связи с уже накопленной информацией
                        (хабротопик тут).

                        Сейчас я занимаюсь вопросом создания динамической нейросети, наподобие мозгов, с нуля.
                        Уже многое реализовано, потрачено где-то 2-3 года, на основе этого всего я пишу самооптимизрующийся язык програмирования. Результаты довольно неплохие, а исходники и иследования закрыты. =) всё будет OpenSource только когда выйду с альфы, исходники самого языка будут максимально закрыты до первой стабильной продукции.
                        хм… Комрады и донат приветствуются.

                        По поводу апаратной части могу сказать одно: прототипы уже есть, фины или шведы, кароч северные варвары, уже создавали проц. на чисто генетических алгоритмах и neurofuzzy logic'е. Правдо им обрезали поставки Удмурдских Ежей в связи с чем они не смогли дальше использовать иглы Удмурдского Ежа для рисования на silicon'овых камнях (литографии)

                        P.S. Для slowpoke'ов Удмурдский Еж это У.Е.
                          0
                          Приведенная Вами ссылка на новостной сайт — это фейк и пиар. На таких сайтах еще часто можно и про клонирование разные интересные вещи встретить.

                          Вы используете понятие генетический алгоритм в достаточно странной формулировке, ну да Б-г с ним.
                          Подобные рассуждение — это все слишком теоретически. Я могу себе представить подобный механизм на абстрактном уровне, однако не могу себе представить как он будет реализован на нейрональном уровне в модели (не говоря уже про реальную нейрофизиологию). Более того, повторяю, что декларативную память вы таким образом записывать может и сможете (образы), но процедурную (поведение) скорее всего нет.
                          И еще соображение — даже для некоторого подобия ГА нужна определенная функция приспособленности (фитнес), которая всегда вычисляется независимо от объекта оптимизации. Каким образом, Вы будете вводить такую функцию, но чтобы это не получилось банально учителем.

                          Кстати забавно, что Вы приводите мне ссылку на мою же статью.=)
                            0
                            Ссылка это самое первое что попалось под руку в Гугле.
                            Там такого барахла хватает не спорю, но это первое что мне показалось похожее на тему. Если очень интересно могу дать конкретно книгу по МайндХаку где это всё написано. Динамические цепи они такие динамичиские =)
                            Идеей алгоритма динамических цепей является самооптимизация на основе ген. алгоритма и подальшей модификации фитнес функции через neuro-fuzzy logic.
                            Сам себе швец и жнец и учитель. На основе динамической цепи можно
                            спокойно строить такой же (а может и более) динамический апарат нейронной сети.
                            Вот собственно этим я и занимаюсь. Просто в моём случае не используется конкретная модель развития сети (или модель персептрона), сеть сугобо комплексного характера в зависимости от задач которые она призвана решать.
                            Развитие происходит очень скачкообразно: сначало кажется что это полный рандом, а потом как прорвёт (ресурсов ест намного меньше чем простая сеть).
                            2 klakhman класный послужной список, а я ещё только учусь…
                            Ах да совсем забыл про сохранение образов. В зависимости от организации функциональной и образной памяти можно явно ускорить процесы обучения в разы,
                            именно поэтому я перестал их различать и стараюсь впихнуть в общий критерий и модель.
                              0
                              www.membrana.ru/articles/health/2004/11/25/214900.html

                              честно говоря не первый раз встречаю, и не думаю что это фейк
                                0
                                Как это не парадоксально звучит, вот целый блог на эту же тему.
                                  0
                                  Я бы не стал на Вашем месте так полагаться на мембрану — это достаточно своеобразный ресурс, на котором иногда совершенно бредовые заметки выкладывают.

                                  Просто задайте себе пару вопросов. Почему это еще повсеместно не применяют? И второй вопрос — почему можно все передать через один нерв?

                                  Фишка заключается в том, что даже если они это сделали, то это не зрение конечно, а совершенно другая — новая форма ощущений под которую мозг подстраивается. Ну это как у летучих мышей есть эхолот — это же не зрение.
                                  Зрение — есть очень сложная система. Кроме того, что с точки зрения оптической физики глаз — это совершенная система, так вы еще просто ради интереса посмотрите что находится сразу за глазом. Там несколько слоев рецепторных нейронов совершенно разных типов, которые отвечают только(!!!) за первичную обработку поступающего светового сигнала.
                          0
                          Кстати, можно ли считать нейронную сеть самообучающейся, раз возможности её обучения ограничены её архитектурой (если нет нейронов с обратной связью, то она не способы иметь состояния и т. д.)? С другой стороны, если мы генерируем с помощью генетического алгоритма программу (в любом полном по Тьюрингу представлении), то она теоретически неограниченна по возможностям (хотя и ограничена практически временем генерации).

                          Only users with full accounts can post comments. Log in, please.