Станут ли нейронные мобильные процессоры новой вехой развития технологии искусственного интеллекта? Intel начинает поставки процессоров для нейронных сетей.

Приветствуем наших читателей на страницах блога iCover ! На прошедшей в начале февраля в Сан-Франциско Международной конференции International Solid State Circuits Conference (ISSCC-2016) группа разработчиков из MIT (Massachusetts Institute of Technology) продемонстрировала действующий прототип чипа нового поколения Eyeriss, создававшегося как концептуальное решение, позволяющее воссоздавать возможности алгоритмов нейронных сетей в широком спектре устройств малой мощности.


Одной из объективных причин, по которой искусственные нейронные сети не получили должного развития в наших смартфонах или планшетах – отсутствие компактного источника питания достаточной мощности. Ведь так называемые brain-like, “мозгоподобные” системы искусственного интеллекта, по крайне мере в том виде, в котором они представлены современными технологиями зависят в своей работе от мощных многоядерных процессоров, потребляющих в сравнении с нашим мозгом, невероятное количество энергии. Представить себе подобные решения на уровне устройств пользовательского класса во всяком случае до недавнего времени возможным не представлялось. Вместе с тем, идея “миниатюризации” искусственного интеллекта будоражит умы разработчиков достаточно давно и, как выясняется, уже приносит свои достаточно ощутимые плоды.

Нейронные сети оказались в центре внимания ученых с первых дней исследования искусственного интеллекта, но в 1970-х, они были несколько забыты. В последнее десятилетие, технологии, связанные с использованием возможностей нейронных сетей изучаются на уровне программ «глубокого обучения» (Deep learning).

«Глубокое обучение имеет множество сфер применения, таких как распознавание объекта, речи или лиц» - отмечают Вивьен Зи (Vivienne Sze) и Эмануэль Е. Ландсман (Emanuel E. Landsman) - доцент кафедры Массачусетского технологического института электротехники и компьютерных наук, группа которого разработала новый чип. «Сейчас, нейронные сети довольно сложны и, работают, в основном, на мощных чипах. Представьте себе, что вы сможете перенести эту функциональность на свой мобильный телефон или встроенное устройство и затем обрабатывать колоссальные массивы информации не используя Wi-Fi - соединение. Обработка больших массивов данных на вашем смартфоне позволит избежать задержки, возникающей за счет обмена данных с сетью, что, в свою очередь, позволит многим приложениям работать значительно эффективнее. А кроме того, предложенное решение позволит обеспечить новое качество защиты конфиденциальной информации».

Нейронные сети, как правило, реализуются на базе многоядерных графических процессоров (GPU). На Международной конференции в Сан-Франциско исследователи MIT представили новый 168-ядерный чип, разработанный с целью реализации алгоритмов искусственного интеллекта на основе нейронных сетей. В сравнении с мобильным GPU (не указывается, в сравнении с каким именно) процессор продемонстрировал в 10 раз большую эффективность, что позволяет использовать пользовательское мобильное устройство для локального запуска мощных алгоритмов искусственного интеллекта без необходимости отправки данных для облачной обработки. Основные моменты разработки отражены в пресс-релизе MIT от 3 февраля 2016 года.

Новый чип, названный разработчиками «Eyeriss», может найти широкое применение в «Интернете вещей», носимой электронике, самоуправляемых транспортных средствах, производственном оборудовании, и даже в сельском хозяйстве, помогая с решением и координацией текущих задач. С алгоритмами искусственного интеллекта на борту мобильные устройства смогут принимать решения на локальном уровне, предоставив пользователю в качестве руководства к действию уже готовый результат, а не набор “сырых” данных из сети интернет. И, конечно, одно из применений локальных нейронных сетей – их использование при создании автономных роботов самого разного назначения.

Разделяй и властвуй

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

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

Чип, разработанный в лаборатории MIT, представляет собой уже сформированную нейронную сеть, локализованную на уровне 168-ядерного процессора, который в перспективе сможет быть встроен в мобильные устройства.

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

Еще одно достоинство реализуемого алгоритма - возможность ядер “общаться” друг с другом напрямую, минуя “посредника” в виде шины системной памяти. Это критически важная особенность для имитации работы «сверточной нейронной сети» (Convolutional Neural Network – CNN). Вся вычислительная работа, необходимая для распознавания образов и речи, выполняется в Eyeriss локально, без необходимости обращения к сетевым ресурсам, что позволяет обеспечить возможность эффективного функционирования устройства даже в условиях отсутствия внешней сети.

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

На мероприятии International Solid State Circuits Conference в Сан-Франциско команда разработчиков, использовав возможности чипа Eyeriss «пользовательского» уровня, продемонстрировала реализацию алгоритма распознавания образов в пределах локальной нейронной сети. Аналогичная задача – отмечается в пресс релизе – была реализована ранее, но на уровне государственных проектов самых современных из созданных нейронных сетей.

«Эта работа очень важна, поскольку демонстрирует, насколько эффективно встроенные процессоры для глубокого изучения способны обеспечить требуемую мощность и производительность оптимизации и принести сложные вычислительные процессы из облака на мобильные устройства» - говорит Майк Полли, старший вице-президент лаборатории мобильных процессоров Innovations Lab Samsung, дополняя: «В дополнение к инновационному комплексу аппаратных решений, исследование специалистов MIT наглядно демонстрирует, как можно сделать встроенное ядро полезным для разработчиков приложений с использованием стандартной сетевой архитектуры AlexNet и Caffe».

Финансирование проекта Eyeriss, начиная с создания подразделения на базе лаборатории MIT, частично осуществлялось на средства американского оборонного ведомства DARPA. Не удивительно, что первым, кто откликнулся на анонс процессора внушительным редакционным материалом, стал известный военный аналитик Патрик Такер (Patrick Tucker). Новые процессоры Eyeriss, установленные на мобильные девайсы солдат США, по его убеждению, будут способны решать сложнейшие вычислительные задачи, связанные с обработкой колоссальных объемов информации без подключения к общей сети.

Так, в настоящее время ВВС США ежесуточно получают с дронов, парящих над Афганистаном, до 1500 часов HD-видео и до 1500 фотографий сверхвысокого разрешения. Причем весь этот нескончаемый поток информации приходится по старинке визуально анализировать операторам, поскольку существующее компьютерное ПО не в состоянии отличить крестьянина, бредущего с палкой по горной тропинке, от террориста с пусковой установкой для управляемых ракет. Для решения подобных задач изначально и начинали создаваться методы машинного обучения, основанные на репрезентационном обучении.

Процессоры Eyeriss идеально подойдут для установки на беспилотные военные дроны, поскольку позволят проводить интеллектуальную обработку массива изображений и видео с применением технологий «глубокого обучения» непосредственно на борту летательного аппарата. При этом отсеянные полезные данные можно было бы отсылать непосредственно в боевые подразделения, действующие в указанном регионе минуя центр анализа оперативной информации.

Краткое резюме

В ходе экспериментов чип Eyeriss продемонстрировал уровень энергоэффективности, в десять раз превосходящий показатели современных мобильных графических чипов. При этом с его помощью оказывается технологически возможно обеспечить работу алгоритмов искусственного интеллекта на устройствах, обладающих компактными размерами – от смартфонов и планшетов - до носимой электроники. Задержки, создаваемые сетями при обмене данными для такого процессора оказываются сводятся к минимуму, поскольку большинство вычислений чип сможет выполнить локально. На базе Eyeriss можно будет создавать не только всевозможные «умные устройства», но и роботов, обладающих некоторой степенью самостоятельности в принятии решений.

Конкретных временных интервалов в течение которых Eyeriss сможет трансформироваться в коммерческий продукт и во всей мощи раскрыть свои возможности на уровне потребителя разработчики из MIT пока не называют. Определенный оптимизм внушает причастность к разработке ведущих специалистов NVIDIA и живой интерес ответственных научных сотрудников из Samsung.

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

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

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

В каталогах продукции фирмы Intel особняком стоят две разработки, выполненные по заказу DARPA (Defense Advanced Research Projects Agency): аналоговый нейропроцессор i80170NX и цифровой - i80160NC или Ni1000 .

Нейропроцессоры являются сердцем нового поколения вычислительной техники - нейрокомпьютеров. Основой функционирования подобных машин является моделирование способов переработки информации нервной системой и головным мозгом человека. Считается, что начало этому направлению было положено в 1943 году, когда американские ученые У. Маккалок и У. Питтс опубликовали статью, в которой нейроны - клетки нервной системы - рассматривались как простейшие логические устройства .

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

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

В конце 1950-х годов, американец Ф. Розенблатт, пытаясь объяснить работу биологического нейрона, предложил его модель - персептрон. В начале 60-х математик Р. Блок сформулировал теорему распознавания, а радиоинженер Б. Уидроу разработал и воплотил в жизнь первую искусственную нейронную сеть, известную в литературе под названием «Адалайн». Он же создал и алгоритм, обучающий ее распознавать образы.

Однако вплоть до середины 80-х нейросети не получали дальнейшего развития. Сказалось отставание практики от теории и несовершенство технологий. Применявшиеся программные модели не могли раскрыть всех достоинств нейронных сетей, а создание их аппаратной реализации требовало колоссальных затрат при тогдашнем уровне технологий. Более перспективными считались традиционные большие ЭВМ (мэйнфреймы), но быстрый рост числа очень сложных задач заставил вновь обратиться к искусственным нейронным сетям.

Компания Intel одной из первых среди гигантов компьютерной индустрии серьезно заинтересовалась возможностями искусственных нейронных сетей. Работы по этой теме были начаты в 1988 году. В следующем году уже был представлен первый рабочий образец нейропроцессора i80170NX . Годом позже Intel (совместно с фирмой Nestor и при финансовой поддержке DARPA) приступила к разработке цифрового нейрочипа Ni1000, который был анонсирован в 1993 году, как i80160NC.

Нейросетевой процессор i80170NX ETANN (Electrically Trainable Analog Neural Network) является уникальной в своем роде микросхемой, предназначенной для решения задач распознавания образов . Процессор эмулирует работу 64 биологических нейронов . Каждый нейрон процессора имеет 128 синапсов (входов). В свою очередь, каждый синапс соединен с входом процессора посредством некоторого устройства, позволяющего задать коэффициент, характеризующего силу этой связи, что полностью соответствует модели, предложенной еще У. Маккалоком и У. Питтсом. Данные на входе и выходе процессора аналоговые, но функции управления, установки и чтения весовых коэффициентов - цифровые.

Нейрочип полностью совместим по уровням рабочих сигналов с микросхемами CMOS и ТТL. Входной сигнал на нейроне может изменяться от 0 до 2,8 В. Веса синапсов также представлены напряжением в диапазоне от -2,5 до 2,5 В. Изготовлен процессор по лицензионной технологии Intel - CHMOS III EEPROM .

Высокопараллельная архитектура, свойственная нейронным сетям, и ряд особенностей построения процессора позволили добиться быстродействия 2 млрд. операций в секунду! i80170NX является сердцем нейронной платы-акселератора для ПЭВМ. Производительность такой платы с восемью процессорами составляет 16 млрд. операций в секунду! До последнего времени такая производительность была свойственна только лишь суперкомпьютерам!

Краткие технические данные процессора следующие:

  • производительность 2 млрд. оп./с;
  • способен распознавать 300 тысяч 128-разрядных образа в секунду;
  • моделирует 64 нейрона;
  • поддерживает модели нейронной сетей Хопфилда, многослойного персептрона и Madaline III.

Простота создания приложений на i80170NX обеспечивается наличием мощных средств разработки. Для проектирования нейронных сетей поставляется пакет iNNTS (Intel Neural Network Training System) и EMB (ETANN Multi-Chip Board). В комплект поставки входит и одна из программ моделирования и изучения искусственных нейронных сетей iBrainMaker фирмы California Scientific Software или iDynaMind фирмы NeuroDynamX. Обе программы имеют удачный пользовательский интерфейс и могут использоваться для демонстрации свойств и возможностей нейронных сетей. Для той же категории пользователей, что решит самостоятельно заняться разработкой моделей нейронных сетей, есть целая библиотека функций по управлению нейрочипом - Training System Interface Lib (TSIL).

Другая разработка Intel в области искусственных нейронных сетей - процессор i80160NC. Его основное отличие от i80170NX в том, что он полностью цифровой.

Технические данные i80160NC:

  • внутренняя память: 1 тысяча 256-разрядных образов;
  • тип памяти: Flash EPROM;
  • максимальное число классов: 64;
  • скорость распознавания: 33 тысячи образов в секунду на частоте 33 МГц.
  • Как и i80170NX, процессор i80160NC поставляется на плате нейросетевого акселератора для ПЭВМ. Характеристики платы следующие:
  • системная шина ISA;
  • рабочая частота 33 МГЦ;
  • скорость обмена по шине 2 Мбит/с;
  • мощность 8 Вт.

Поддерживается следующее программное обеспечение:

  • MS Windows 3.1;
  • MS Excel 4.0;
  • MS Visual C++, Borland C++.
  • Вместе с платой поставляются следующие средства разработки приложений:
  • Ni1000 Assembler;
  • Ni1000 Emulator Lib.;
  • Ni1000 HardWare Lib.

Программа Ni1000 Emulator позволяет отлаживать код приложений без использования процессора, а по окончании процесса отладки сразу перейти к работе на аппаратуре.

Основные характеристики процессоров i80170NX и i80160NC приведены в табл. 1.

Процессор Ni1000 разрабатывался как вариант сопроцессора для задач распознавания образов и предназначался для встраивания в высокопроизводительные портативные сканеры. Применение нейросетевой технологии позволило добиться значительных результатов в решении задач такого класса. Так, если RISC-процессоры AMD29000 и i80860 позволяют решать некоторые задачи в 2-5 раз быстрее, то с использованием i80160NC скорость решения аналогичных задач может увеличиться в 100 и даже 1000 раз! Такое быстродействие позволило применить этот класс процессоров для решения сложнейшей задачи - распознавания отпечатков пальцев.

Что же сулит разработчикам и пользователям вычислительной техники появление на рынке столь мощного семейства процессоров? Сейчас существует ряд задач очень высокой сложности. К ним относится прогнозирование погоды, управления воздушным движением через Атлантику с учетом перемещения воздушных масс, компьютерное моделирование ядерных взрывов и множество других. До последнего времени такие задачами пытались решать на суперкомпьютерах, однако стоимость подобной техники весьма внушительна. На рис. 2 показано положение различных супер-ЭВМ в зависимости от их стоимости и производительности . Хорошо видно, что i80160NC - бесспорный лидер. Он далеко позади оставляет таких монстров, как Cray и Cyber.

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

Рубеж, которого удалось достигнуть специалистам Intel в моделировании нейронных сетей, можно представить схемой, подобной приведенной на рис. 3 , где сравниваются нейронные сети живых организмов и моделируемые с помощью процессоров Intel.

Разработчики нейропроцессора в шутку называют свое детище не иначе, как «сверхзвуковой слизняк».

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

С момента выхода процессоров Intel в мире появилось множество моделей нейровычислителей, с некоторыми из них можно ознакомиться в табл. 2.

К настоящему времени разработано большое число всевозможных плат ускорителей и специализированных нейровычислителей. Нейронные ЭВМ уже находят применение в различных сферах деятельности человека. В США действует система по обнаружению пластиковой взрывчатки в багаже авиапассажиров на основе нейронной сети. Большое внимание уделяется вопросу применения нейронных процессоров в системах коммутации в сетях передачи данных. Существуют системы аутентификации личности по отпечаткам пальцев с использованием нейросетей. В литературе описано и множество других случаев успешного применения нейронных процессоров.

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

Литература

  1. A. Thakoor et al., DARPA Program Review, Dec. 1991, Washington, D. C.
  2. M. Holler, S. Tam, H. Castro, R.Benson, «An Electrically Trainable Artificial Neural Network (ETANN) with 10240 „Floating Grate“ Synapses», International Joint Conference on Neural Networks, June 1989, Washington, D. C.
  3. Intel, i80170NX Electrically Trainable Analog Neural Network, Intel Corp., June 1991.
  4. Stanly, Jeanette, Introduction to Neural Networks, California Scientific Software, 1990.
  5. Intel, 80170NX Neural Network Technology & Application, Intel Corp., 1992.

Сергей Гриняев

В настоящее время нейропроцессоры по-прежнему остаются одним из наиболее перспективных направлений развития электроники. Конечно, им еще очень далеко до совершенства. Однако технологии не стоят на месте, и способности современных нейропроцессоров оказываются весьма впечатляющими. В данной статье кратко рассказывается об истории нейропроцессоров, раскрываются различия между нейропроцессорами и процессорами с традиционной архитектурой, анализируются основные принципы работы и обучения нейропроцессоров на примере микросхемы NM 500 от NeuroMem.

Несмотря на все достижения современных технологий, человеческий мозг остается самой совершенной вычислительной системой на Земле. Конечно, любой, даже самый простой 8-битный микроконтроллер без проблем опередит профессора математики на соревнованиях по арифметике, однако он вряд ли сможет разобраться с неформализованными задачами.

Удивительная универсальность мозга давно является мечтой для разработчиков процессорных систем. Попытки создать машинный аналог нейронов предпринимались еще в 60-х годах прошлого века. В качестве примера можно привести персептрон Марк-1, разработанный Фрэнком Розенблаттом. Первые варианты электронных нейронов по своим возможностям были очень далеки от биологического оригинала, и интерес к данной задаче был не очень высоким. Однако в 80-е годы интегральные технологии позволили создать сложные процессоры, объединяющие миллионы транзисторов, а их топологические нормы оказались меньше, чем размеры реальных биологических нейронов. В то же время по своей эффективности при решении неформализованных задач эти процессоры по-прежнему значительно уступали мозгу. Именно это противоречие и стало толчком к развитию нейропроцессорных технологий. При этом речь шла как о создании специализированных архитектур, так и о проработке теоретических вопросов .

В чем разница между нейропроцессором и традиционным процессором?

Чем же нейропроцессоры отличаются от традиционных процессорных систем, таких как, микроконтроллеры (МК), процессоры (ЦП), цифровые сигнальные процессоры (ЦСП), графические процессоры (ГП) и т.д. Главное отличие заключается в архитектуре. Традиционные процессоры состоят из обособленных блоков, выполняющих разные функции (вычислительные и периферийные блоки, память). Нейропроцессоры имеют более «однородную» структуру, включающую множества нейронов - одинаковых и относительно простых вычислительных ячеек со встроенной памятью. Это различие хорошо видно даже на фотографии (рисунок 1).

Рис. 1. Увеличенная фотография структуры традиционного процессора и нейропроцессора

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

Таблица 1. Сравнение процессоров с традиционной архитектурой и нейропроцессоров

МК/ ЦП/ ЦСП/ ГП

Нейропроцессоры

Гарвардская архитектура или архитектура фон Неймана с разделением вычислительного ядра и памяти

Равномерная структура из одинаковых вычислительных ячеек с собственной памятью

Параллельная обработка в многопроцессорных системах

Параллельная обработка по определению

Решение Логических/последовательных/линейных задач?

Решение нестандартных/ параллельных/нелинейных задач?

Декомпозиция задач и использование объективных оценок

Решение задачи «целиком», с учетом предыдущего опыта и постоянным самообучением

Жесткая детерминация по времени, математическому аппарату, типу данных

Нет жесткого детерминизма при решении задач

Идеальны для работы с четко структурированными массивами данных

Идеальны для работы с неструктурированными и нестандартными массивами данных

Сложность масштабирования

Относительная простота масштабирования

Развитие нейропроцессоров также, как и развитие обычных процессоров, тесно связано с совершенствованием интегральных технологий. Чем меньше топологические нормы, тем больше можно уместить нейронов на кристалле, сохранив при этом низкий уровень потребления (рисунок 2).

Рис. 2. Развитие интегральных технологий определяет развитие нейропроцессоров

В настоящее время существует множество примеров более и менее удачных реализаций нейропроцессоров. Многие из предлагаемых решений разрабатывались для решения узкого круга задач и не всегда становились доступными для широкого круга разработчиков. Впрочем, судя по всему, появление доступных и дружелюбных к пользователям нейропроцессоров не за горами. В качестве примера можно привести процессоры CM1K и NM500 от компании NeuroMem.

Как устроена нейронная сеть в нейропроцессоре?

Рассмотрим устройство и принцип работы нейропроцессоров на примере CM1K и NM500 от компании NeuroMem. Эти процессоры, с одной стороны, хорошо раскрывают суть нейровычислений, а с другой стороны, обладают достаточно простой и прозрачной архитектурой.

CM1K - нейропроцессор, изготовленный по технологии 130 нм и содержащий сеть из 1024 нейронов (таблица 2). CM1K не имеет встроенного супервизора (встроенного управляющего сопроцессора) - все вычисления производятся параллельными нейронами, подключенными к параллельной шине и работающими на частоте до 27 МГц (рисунок 3). При этом общее потребление системы оказывается достаточно низким (от 0,5 Вт). CM1K имеет корпусное исполнение TQFP 16x16 мм.

NM500 - новый нейропроцессор от NeuroMem, выполненный по технологии 110 нм, и объединяющий 576 нейронов (таблица 2). Так же, как и у CM1K, у NM500 нет какого-либо встроенного супервизора (рисунок 3). Габариты корпуса данного процессора 4x4 мм (WCSP64), а потребление составляет менее 153 мВт в активном режиме.

Рис. 3. Структура нейропроцессоров CM1K и NM500 оказывается достаточно простой

Таблица 2. Сравнение характеристик нейропроцессоров C1MK, QuarkSE/Curie и NM500

Параметр

QuarkSE/Curie

Производитель

Число нейронов

Память нейрона

Дистанция (Distances)

«K ближайших соседей » (K-Nearest Neighbor, KNN)

Радиально-базисных функций (Radial Basis Function, RBF)

Расчет дистанции LSUP

Расчет дистанции L1 (Manhattan)

Каскадирование

Частота/ частота при каскадировании процессоров

Корпус

Технология

Отсутствие встроенного супервизора говорит о том, что для работы с CM1K и NM500 требуется внешний управляющий процессор, который будет снабжать нейроны данными. При этом связь осуществляется по параллельной двунаправленной 26-битной шине. По сути NM500 представляет собой цепочку одинаковых нейронов, которые подключены к общей параллельной шине и имеют связи между собой (рисунок 4).

Рис. 4. Упрощенная структура NM500

Как работает нейронная сеть в нейропроцессоре?

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

Рис. 5. CM1K и NM500 могут работать в двух основных режимах: обучение и распознавание

Каждый нейрон NM500 имеет собственную программируемую память: основную 256 байт (шаблон), контекст (8 бит), категорию (16 бит). Категория используется для классификации объектов, а контекст для разделения нейронов на подсети. Кроме того, у каждого нейрона есть собственный 24-битный идентификатор NID (neuron ID). Программирование памяти нейронов отличается от программирования обычных процессоров. В обычном процессоре программа записывается перед началом работы. Во многих нейропроцессорах (но не во всех!) программирование может осуществляться прямо в процессе работы и называется обучением.

На рисунке 6 представлен процесс обучения NM500. На первом шаге все нейроны не обучены и находятся в состоянии «пуст» (кроме первого нейрона). У них на выходе присутствует низкий сигнал «L». Первый нейрон находится в состоянии «готов к обучению». После того, как управляющий процессор проведет заполнение внутренней памяти (по параллельной шине), первый нейрон перейдет в состояние «обучен» и получит идентификатор NID=1, на его выходе установится высокий сигнал «H». При этом второй нейрон перейдет в состояние «готов к обучению». Таким образом могут быть последовательно обучены и автоматически идентифицированы все нейроны (NID=2, NID=3…). Такой подход позволяет каскадировать процессоры NM500, наращивая число нейронов практически до бесконечности.

Рис. 6. Обучение нейронов NM500 происходит последовательно

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

Рис. 7. Использование NM500 для распознавания продуктов

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

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

Зачем нейропроцессор измеряет дистанцию в битах?

Чтобы понять, каким образом оценивается степень сходства, следует обратиться к структуре нейрона в NM500 (рисунок 8). В процессе сравнения исходное изображение проходит обработку с использованием специализированных алгоритмов (о них речь пойдет далее) и шаблона (256 байт), хранящегося в памяти нейрона. Результатом сравнения становится 16-битное число, которое помещается в регистр «Дистанция». Другими словами нейрон формирует результат не в форме «совпал» - не «совпал», а в виде 16-битного числа - дистанции, которое является мерой «похожести». Чем меньше дистанция, тем ближе исследуемое изображение к шаблону.

Рис. 8. Процесс распознавания в нейроне NM500

После расчета дистанции происходит ее сравнение со значением регистра поля интересов (influence field, IF). Если дистанция оказывается меньше, значит объект имеет высокое сходство с шаблоном. В таком случае нейрон переходит в возбужденное состояние (fire) и начинает передавать значение дистанции, а потом, если требуется, категорию (16 бит) и идентификатор нейрона (NID) управляющему процессору.

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

Для осуществления арбитража используется блок сравнения COMP. На один его вход поступают данные от нейрона, а на второй текущее состояние шины. При этом выходные линии D блока сравнения имеют тип открытый коллектор и подключены к этой же шине. Таким образом, каждый из нейронов не только передает данные на шину, но и отслеживает ее состояние. Если оказывается, что какой-то из нейронов сообщает о меньшей дистанции (большем сходстве), то нейрон с меньшим сходством автоматически отключается и выбывает из «гонки» на максимальное сходство.

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

Этот принцип арбитража называется «Winner-Takes-All», что обычно переводят, как «победитель получает все».

Описанный выше алгоритм работы соответсвует механизму радиально-базисных функций (Radial Basis Function, RBF). Его главным преимуществом является максимальная временная детерминированность - управляющий процессор узнает о совпадении (или о его отсутствии) за 19 тактов (37 тактов с вычитыванием категории). В NM500 также поддерживается механизм «K ближайших соседей» (K-Nearest Neighbor, KNN).

При использовании механизма «K ближайших соседей» (K-Nearest Neighbor, KNN) значение регистра поля интересов игнорируется, и все нейроны в любом случае переходят в возбужденное состояние. В дальнейшем управляющий процессор вычитывает значения дистанций всех нейронов, что занимает гораздо больше времени. Как было сказано выше, чтение дистанции одного нейрона занимает 19 тактов, тогда, например, для считывания дистанций 50 нейронов понадобится 950 тактов.

Зачем нужны разные алгоритмы обработки?

Необходимо также пару слов сказать о самих алгоритмах сравнения. Таких алгоритмов существует много, в частности NM500 поддерживает алгоритмы L1 (Manhattan) и Lsup (рисунок 9). Выбор алгоритма зависит от конкретной задачи:

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

Рис. 9. Для вычисления дистанции NM500 использует алгоритмы L1 (Manhattan) и Lsup

Работа нейропроцессора на пальцах, в картинках и таблицах

Теперь, когда общие вопросы были рассмотрены, пришло время подробно разобрать пару конкретных примеров.

Пример 1. Распознавание одномерных массивов из двух чисел

В данном примере предполагается использовать три нейрона. Для этого их память заполняется следующим образом:

  • 1 нейрон: шаблон = (11, 11), поле интересов AIF = 16, категория CAT = 55, идентификатор NID=1;
  • 2 нейрон: шаблон = (15, 15), поле интересов AIF = 16, категория CAT = 33, идентификатор NID=2;
  • 3 нейрон: шаблон = (30, 30), поле интересов AIF = 20, категория CAT = 100, идентификатор NID=3.

Этот пример удобно проиллюстрировать в виде двухмерной графической модели (рисунок 10). Каждый нейрон представляется в виде сферы с радиусом, равным полю интересов AIF. При этом несложно отметить наличие перекрытий полей интересов.

Рис. 10. Пример 1. Графическое представление исходных данных

Рассмотрим реакцию системы на входные векторы.

Вектор (12, 12). Расчетная дистанция между нейроном 1 и вектором 1 (по алгоритму L1) вычисляется как сумма разностей составляющих вектора и шаблона: (12-11) + (12-11) = 2.

Аналогичным образом:

  • Дистанция до нейрона 2: (15-12) + (15-12) = 6.
  • Дистанция до нейрона 3: (30-12) + (30-12) = 36.

Таким образом, вектор (12, 12) попадает в поле интересов нейрона 1 и нейрона 2 (возбуждает их), но не попадает в поле интересов нейрона 3 (рисунок 11).

В итоге, при чтении результата по механизму «победитель получает все» управляющий процессор получит данные о совпадении от нейрона 1, так как именно у нейрона 1 минимальная дистанция, то есть максимальное совпадение.

Рис. 11. Пример 1. Положение вектора (12,12)

Вектор (13, 13). Расчетные дистанции до вектора:

  • Дистанция до нейрона 1: (13-11) + (13-11) = 4.
  • Дистанция до нейрона 2: (15-13) + (15-13) = 4.
  • Дистанция до нейрона 3: (30-13) + (30-13) = 34.

Таким образом, вектор (13, 13) попадает в поле интересов нейрона 1 и нейрона 2 (возбуждает их), но не попадает в поле интересов нейрона 3 (рисунок 12). В то же время дистанция до 1 и 2 нейронов одинакова. Однако, так как категория нейрона 2 меньше, именно он выиграет гонку по принципу «победитель получает все». Управляющий процессор получит данные о совпадении от нейрона 2.

Рис. 12. Пример 1. Положение вектора (13,13)

Вектор (14, 14). Расчетные дистанции до вектора:

  • Дистанция до нейрона 1: (14-11) + (14-11) = 6.
  • Дистанция до нейрона 2: (15-14) + (15-14) = 4.
  • Дистанция до нейрона 3: (100-14) + (100-14) = 32.

Таким образом, вектор (14, 14) попадает в поле интересов нейрона 1 и нейрона 2 (возбуждает их), но управляющий процессор получит данные о совпадении от победителя - нейрона 2 (рисунок 13).

Рис. 13. Пример 1. Положение вектора (14,14)

Вектор (200, 200). Расчетные дистанции до вектора:

  • Дистанция до нейрона 1: (200 - 11) + (200 - 11) = 378.
  • Дистанция до нейрона 2: (200 - 15) + (200 - 15) = 370.
  • Дистанция до нейрона 3: (200 - 30) + (200 - 30) = 340.

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

Рис. 14. Пример 1. Положение вектора (200,200)

Обучение новому вектору (13, 13). Допустим, требуется «выучить» новый вектор (13,13) с категорией 100. Как было показано, выше он находится на равной дистанции от нейрона 1 и нейрона 2. По этой причине при записи этого вектора нейроны автоматически сузят поля интересов до значения AIF = 8. Таким образом, реализуется самообучение нейронов.

Рис. 15. Пример 1. Самообучение нейронов при добавлении нового вектора заключается в сужении поля интересов

Пример 2. Обучение и работа двухнейронной сети с массивом из 10 чисел

В данном примере повторяются вычисления аналогичные из примера 1. Главное отличие заключается в том, что обучение ведется между распознаваниями и серьёзно влияет на результаты.

Процесс представлен в виде таблицы 3.

Таблица 3. Пример 2. Поведение нейропроцессора при работе с массивом из 10 чисел

Операция

Лучшее совпадение

Второе по качеству совпадение

Обучение 1 нейрон

Вектор 1 = 0,1,2,3,4,5,6,7,8,9

Распознавание

CAT=1, DIST=0, NID=1

CAT=0xffff, DIST=0xffff

Вектор 2 = 0,1,2,6,4,5,6,7,8,9

Распознавание

CAT=1, DIST=3, NID=1

CAT=0xffff, DIST=0xffff

Обучение 2 нейрон

Вектор 3 = 0,1,4,3,8,5,12,7,16,9

Распознавание

CAT=2, DIST=0, NID=2

CAT=0xffff, DIST=0xffff

Вектор 4 = 0,1,2,3,4,5,12,7,16,9

Распознавание

CAT=2, DIST=6, NID=2

CAT=1, DIST=14, NID=1

Вектор 5 = 0,1,2,3,4,5,6,7,16,9

Распознавание

CAT=1, DIST=8, NID=1

CAT=2, DIST=12, NID=2

Что делать если не хватает нейронов?

Возникает вопрос. 576 нейронов и 256 байт памяти - это много или мало? Очевидно, что ответ зависит от требований конкретного приложения. Для простых задач этого хватит, а для более сложных приложений может потребоваться и более мощный инструмент. Тем не менее, процессоры NM500 оказываются очень простыми и доступными для широкого круга пользователей, что без сомнений является их большим достоинством.

Как уже было сказано выше, при необходимости нейронная сеть на базе процессоров NM500 может быть расширена. Для этого используется каскадирование микросхем (рисунок 16). При этом выход DCO одного процессора должен подключаться ко входу DCI следующего процессора. Количество последовательно включенных микросхем не ограничено, или скорее ограничено возможностями печатной платы сохранять целостность сигналов при работе на частотах до 20 МГц.

Рис. 16. Расширение нейронной сети за счет каскадирования процессоров NM500

Как ознакомится с возможностями NM500?

Одна из целей создания NM500 заключалась в продвижении нейропроцессоров в народные массы. Действуя в рамках этой стратегии, компания NeuroMem пошла логичным путем и выпустила Arduino-совместимый отладочный модуль NeuroTile, который делает нейропроцессор максимально доступным как для профессиональных разработчиков, так и для простых любителей электроники.

На борту у NeuroTile присутствует один или два процессора NM500, производительный и малопотребляющий микроконтроллер STM32F476 с процессорным ядром ARM Cortex-M4, ПЛИС XO3 от Lattice, Bluetooth, 6-осевой инерционный модуль (гироскоп + акселерометр), 6-осевой инерционный модуль (магнитометр + акселерометр), датчик давления, микрофон, слот для карты памяти, микросхема заряда Li-ion аккумуляторов, USB, Arduino-совместимый стек для штыревых разъемов (рисунок 17).

Рис. 17. Внешний вид и структура отладочной платы NeuroTile

Существуют Arduino-совместимые отладочные модули с NM500 от сторонних производителей, например ProdigyBoard от корейской компании nepes (рисунок 18). Отличительными чертами ProdigyBoard являются: два процессора NM500, 1Гбайт DDR3, FPGA с загрузочной Flash 20 мБит, камера, микрофон, Micro SD, USB.

Рис. 18. Внешний вид и структура отладочной платы ProdigyBoard

Заключение

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

Появление простых и дружелюбных к пользователям нейропроцессоров NM500 может стать большим шагом для популяризации неропроцессорных технологий.

Характеристики нейропроцессора NM500 :

  • Число нейронов: 576;
  • Объем памяти нейрона: 256 байт;
  • Режим работы: радиально-симметричные функции (RadialBasisFunction,RBF) и «K ближайших соседей» (K-NearestNeighbor, KNN);
  • Выходные состояния: определен, не полное совпадение, неизвестен;
  • Расчет дистанции: L1 (Manhattan), Lsup;
  • Рабочая частота: 37 МГц (одиночный процессор), 18 МГц (при параллельном включении процессоров);
  • Коммуникационные интерфейсы: параллельная шина (26 линий);
  • Напряжения питания: 3,3 В IO и 1,2 В ядра;
  • Потребление (активная работа): <153 мВт;
  • Корпус: CSP-64 4,5х4,5x0,5 мм.

Для нейронных сетей уже к концу этого года

Аппаратное обеспечение Intel для ускорения работы систем искусственного интеллекта, о котором Intel говорила достаточно давно, будет отгружено первым покупателям еще в этом году. Сегодня компания объявила о том, что ее процессор Neural Network первого поколения (кодовое название «Lake Crest»), скоро будет доступно к заказу ограниченному набору партнеров, чтобы помочь им резко ускорить работы в области исследований искусственного интеллекта.


Нейронный процессор NNP (Neural Network Processor) оптимизирован для очень быстрого решения специализированных математических задач, которые лежат в основе приложений искусственного интеллекта, в частности нейронных сетей - в настоящее время популярной отрасли машинного обучения. Одной из основных проблем сложных нейронных сетей, которые сейчас так популярны, является то, что вычисления являются крайне интенсивными с точки зрения вычислительной мощности, и это обстоятельство затрудняет их быстрое тестирование и развертывание.

Сначала NNP будут выпущены только небольшому числу партнеров Intel, которые компания планирует начать до конца этого года. Аппаратное обеспечение разрабатывается в тесном сотрудничестве с Facebook, одной из компаний, которая пытается использовать нейронные сети в своих целях, в частности речь идет о борьбе со спамом, "фейковыми" новостями и прочим нежелательным контентом крупнейшей мира.

Клиенты смогут получить доступ к NNP через сервис Intel Nervana . По словам Навеена Рао, вице-президента и генерального менеджера группы продуктов Intel, в ближайшем будущем компания планирует сделать доступ к сервису общедоступным.

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

«Когда вы работаете с такой темой, как нейронные сети, на нейронные процессоры возлагаются большие надежды», - сказал Рао. «И мы очень задумываемся о дополнениях и изменениях в архитектуре процессора. Когда вы работаете в активно развивающейся среде, например, в нейронных сетях, крайне важно оперативно отслеживать все запросы и решать их для клиента».

В настоящее время в Intel работают над тремя вариантами нейронных процессоров, и как обещают, хотя бы один вариант будет доступен до конца этого года.

Нейронные сети оказались в центре внимания ученых с первых дней исследования искусственного интеллекта, но в 1970-х, они были несколько забыты. В последнее десятилетие, технологии, связанные с использованием возможностей нейронных сетей изучаются на уровне программ «глубокого обучения» (Deep learning). Искусственная нейронная сеть - математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей - сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. После разработки алгоритмов обучения получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др. ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны выполнять довольно сложные задачи.

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

Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения - одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искажённых данных.

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

Оставьте свой комментарий!

Одно из наиболее перспективных направлений разработки принципиально новых архитектур вычислительных систем тесно связано с созданием компьютеров нового поколения на основе принципов обработки информации, заложенных в искусственных нейронных сетях (НС). Первые практические работы по искусственным нейросетям и нейрокомпьютерам начались еще в 40-50-е годы. Под нейронной сетью обычно понимают совокупность элементарных преобразователей информации, называемых «нейронами», которые определенны образом соединены друг с другом каналами обмена информации «синаптическими связями».

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

НС может состоять из одного слоя, из двух слоев, из трех и большего числа, однако, как правило, для решения практических задач более трех слоев в НС не требуется.

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

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

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

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

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

В начале 21-го века, в отличие от 40-50-х годов прошлого столетия, есть объективная практическая потребность научиться делать нейрокомпьютеры, т.е. необходимо аппаратно реализовать довольно много параллельно действующих нейронов, с миллионами фиксированных или параллельно адаптивно модифицируемых связей-синапсов, с несколькими полносвязными слоями нейронов. В то же время технология интегральной электроники близка к исчерпанию своих физических возможностей. Геометрические размеры транзисторов больше нельзя физически уменьшать: при технологически достижимых размерах порядка 1 мкм и меньше проявляются физические явления, незаметные при больших размерах активных элементов - начинают сильно сказываться квантовые размерные эффекты. Транзисторы перестают работать как транзисторы.

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

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

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

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