Учится, но не мыслит. Нейронные процессоры Intel

Учится, но не мыслит. Нейронные процессоры Intel

24.05.2019

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

В чипе 1 миллион нейронов и 256 миллионов синапсов. Судя по всему, как и в симуляции, чип имеет сходную с неокортексом архитектуру.

Чем это офигенно круто? Тем, что все сегодняшние нейронные сети должны производить астрономическое количество операций, особенно при обучении. Зачастую это упирается в производительность. В реальном времени на одном устройстве можно решать только простые задачки. Распараллеливание на кластеры и видеокарты значительно ускоряют обработку (за счёт огромных вычислительных мощностей и большого энергопотребления). Но всё упирается в главную проблему архитектуры фон Неймана: память разнесена с блоками обработки. В настоящих нейронах всё по-другому: память сама выполняет обработку (на Хабре есть классный цикл статей про ).

Если IBM начнёт выпуск таких процессоров, то многие задачи видеоаналитики можно будет решать напрямую на них. Самое простое, что приходит в голову - классификация объектов в видеопотоке (люди, автомобили, животные). Именно эту задачу IBM и продемонстрировало в качестве примера работы. В видеопотоке 400*240 30fps они выделяли людей, велосипедистов, машины, грузовики и автобусы.

Если всё настолько круто, то машины-роботы в скором времени не будут требовать лидаров, пяток видеокамер с таким чипом - и вперёд.

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

Чуть больше информации на сайте IBM Research .

З.Ю. Пардон за статью без особых подробностей в стиле Ализара, но меня и впрямь удивило, что такое знаковое событие прошло мимо Хабра.

13.10.2017, ПТ, 15:28, Мск, Текст: Владимир Бахур

Новый флагманский смартфон Huawei Mate 10 Pro с безрамочным дизайном получит новейший «нейронный процессор» Kirin 970, двойную оптику от Leica, Android 8.0 Oreo и умную ручку. И не только.

Huawei научилась приятно удивлять

Блоггер и журналист Эван Бласс (Evan Blass), известный высокой степенью подтверждения публикуемого им инсайда по мобильным гаджетам, выложил на своей странице в социальной сети Twitter ряд новых рендеров смартфона Huawei Mate 10 Pro.

Ряд характеристик смартфона Huawei Mate 10 Pro , но именно из последней публикаций Эвана Бласа стало известно, что новый флагман будет поддерживать стилус с датчиками пространственного положения, позволяющий писать на бумаге с беспроводной передачей заметок в смартфон.

Анонс смартфонов семейства Mate 10 Pro запланирован компанией Huawei на понедельник, 16 октября, на 14:00 по московскому времени. Это подтверждается запланированной на YouTube прямой трансляцией презентации HUAWEI Mate 10 Keynote Live из Мюнхена с участием CEO Huawei Ричарда Ву (Richard Yu).

Умная Bluetooth-ручка, которой, как ожидается, будет комплектоваться Mate 10 Pro, выглядит схоже со стилусом из комплекта Moleskine Smart Writing Set.

Технические подробности

Смартфон Huawei Mate 10 Pro, получивший рабочее имя Blanc («обычный» Mate 10 имеет рабочее название Alps), станет одним из первых на рынке гаджетов, оснащенных впервые мобильным процессором Huawei Hisilicon Kirin 970 с интегрированным сопроцессором искусственного интеллекта (ИИ).

Внешний вид смартфона Huawei Mate 10 Pro

Мобильный чип Kirin 970 представляет собой 8-ядерный 64-битный процессор на базе четырех ядер ARM Cortex-A73 с тактовой частотой 2,4 ГГц и 4 ядер ARM Cortex-A53 с тактовой частотой до 1,8 ГГц. Чип оснащен встроенной 12-ядерной графикой нового поколения Mali-G72 MP12 и рядом вспомогательных сопроцессоров для ускорения специфических вычислительных задач.

Ключевые компоненты мобильного процессора Kirin 970

Чип содержит 5,5 млрд транзисторов, размещенных на кристалле площадью 1 кв. см, и выпускается на производственных мощностях компании TSMC с соблюдением самых прецизионных на сегодняшний день норм 10 нм технологического процесса FinFET.

Новый флагманский процессор Kirin 970 представляет собой «мобильную платформу для решений задач ИИ». В его состав входит так называемый нейронный процессорный модуль (NPU, Neural Processing Unit, NPU) для скоростной обработки задач искусственного интеллекта с минимальным расходом энергии, обеспечивая, по данным Huawei, 25-кратный выигрыш в производительности и в 50 раз более высокую эффективность по сравнению с предшественниками.

В Kirin 970 также интегрирован сотовый модем 4.5G с поддержкой LTE Category 18, агрегации 5CC, 4x4MIMO и 256QAM, что, по заявлению компании, обеспечивает скорость скачивания до 1,2 Гбит/с.

Чип поддерживает одновременную работу двух SIM-карт в режиме LTE, однако смартфон Huawei Mate 10 Pro, как ожидается, будет представлен как в версии Hybrid Dual SIM (Nano-SIM, dual stand-by, один из слотов совмещен с кардридером microSD под карты емкостью до 256 ГБ), так и в версии с одним слотом под карту Nano-SIM.

Kirin 970 обеспечивает аппаратное декодирование 4К-видео со скоростью до 60 кадров в секунду и кодирование 4K-видео со скоростью до 30 кадров в секунду с кодеками H.264 и H.265, и поддержку цветового пространства HDR10. В дополнение, Kirin 970 обеспечивает работу до 4 каналов оперативной памяти LPDDR4X 1866 МГц, оснащен встроенным 32-битным / 384 кГц ЦАП, сенсором Huawei i7 нового поколения и поддержкой сдвоенных камер.

Смартфон Huawei Mate 10 Pro, как ожидается, будет оснащен большим 5,99-дюймовым дисплеем на матрице AMOLED с разрешением 1440х2880 пикселей, соотношением сторон 18:9 и резкостью 546 пикселей на дюйм. Толщина смартфона составляет всего 7,5 мм, при этом он обладает защитой по стандарту IP68, подразумевающему 30-минутное погружение устройства в воду на глубину до 1,5 метров.

Основная двойная камера Mate 10 Pro

Mate 10 Pro будет представлен в версии с 6 ГБ оперативной памяти, и 64 ГБ или 128 ГБ встроенным накопителем. Аппарат оснащается двойной основной камерой, составленной из 20 МП цветного и 12 МП монохромного сенсора, с оптическими f/1.6 системами авторства Leica, оптической стабилизацией изображения, фазовым и лазерным автофокусом, поддержкой HDR и записи видео в форматах 2160p@30fps и 1080p@30/60fps. Фронтальная камера имеет разрешение 8 МП.

Смартфон Mate 10 Pro сразу будет представлен под управлением последней версии ОС Android 8.0 (Oreo) с фирменным графическим интерфейсом Huawei EMUI 6.0. Аппарат поддерживает сети Wi-Fi стандартов 802.11 a/b/g/n/ac, Bluetooth 5.0 с профилями A2DP, EDR и LE, навигацию A-GPS, GLONASS, BDS и GALILEO, технологию NFC. Также предусмотрен ИК-порт и разъем стандарта USB 2.0 Type-C.

Встроенная несъемная литий-полимерная батарея смартфона обладает емкостью 4000 мАч.

Умная ручка для Huawei Mate 10 Pro

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

Начало продаж и цена

Никакой более-менее внятной информации о сроках начала продаж и цене флагманского смартфона Huawei Mate 10 пока нет, все станет известно уже в понедельник, 16 сентября.

Анонс презентации смартфонов серии Huawei Mate 10

Предварительно сетевые аналитики оценивают стоимость Huawei Mate 10 в Китае на уровне $835, «обычного» Huawei Mate 10 будет стоить порядка $650.

В настоящее время нейропроцессоры по-прежнему остаются одним из наиболее перспективных направлений развития электроники. Конечно, им еще очень далеко до совершенства. Однако технологии не стоят на месте, и способности современных нейропроцессоров оказываются весьма впечатляющими. В данной статье кратко рассказывается об истории нейропроцессоров, раскрываются различия между нейропроцессорами и процессорами с традиционной архитектурой, анализируются основные принципы работы и обучения нейропроцессоров на примере микросхемы 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 мм.
нейронной сетью обычно понимают совокупность элементарных преобразователей информации, называемых "нейронами", которые определенным образом соединены друг с другом каналами обмена информации – "синаптическими связями".

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


Рис. 8.1.

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

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

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


Рис. 8.2.

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


Рис. 8.3.

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

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

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

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

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

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

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

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

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

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

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

В современной истории более-менее комплексное воплощение «человеческого мозга» в кремнии создали инженеры компании IBM. В 2011 году компания представила процессор и позже развила архитектуру до 4096-ядерного процессора с одним миллионом цифровых нейронов и 256 млн программируемых цифровых синапсов. Весной прошлого года на базе 16 28-нм процессоров TrueNorth компания поставила первый в индустрии «когнитивный» компьютер Национальной администрации по ядерной безопасности (National Nuclear Security Administration). Что интересно, анонс IBM TrueNorth в 2011 году заставил задуматься о нейроморфных процессорах компанию Intel.

Сегодня Intel . Оказывается, в компании шесть лет назад начали разрабатывать фирменный нейроморфный процессор. Воплощением многолетней разработки стало решение под кодовым именем Loihi (скорее всего речь идёт о крупнейшем подводном вулкане в США — Лоихи). Процессор Loihi будет выпускаться с использованием 14-нм техпроцесса и начнёт поставляться академическим учреждениям в первой половине 2018 года.

По словам Intel, Loihi сочетает процессы обучения, тренировки и принятия решений в одном чипе, позволяя системе быть автономной и «сообразительной» без подключения к облаку (к базе данных). К примеру, Intel заявляет, что при обучении с помощью базы данных MNIST (Mixed National Institute of Standards and Technology) нейроморфный процессор Loihi оказывается в 1 млн раз лучше, чем другие типичные спайковые нейронные сети. При этом, если сравнивать Loihi с обычными свёрточными нейронными сетями, разработка Intel при обучении использует много меньше ресурсов, а это каналы связи, потребление и скорость принятия решений. Также Intel уверяет, что Loihi обучается в 1000 раз эффективнее, чем обычные компьютерные системы общего назначения.

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

Также каждое нейроморфное ядро включает механизм (движок) обучения, который может быть запрограммирован для адаптации сети в процессе работы. Если транслировать состав процессора Intel Loihi на возможности мозга человека, то решение включает 130 000 нейронов и 130 млн синапсов. Процессор Intel Loihi не такой умный, как процессор IBM TrueNorth, но определённо эффективнее с позиции производства с технологическими нормами 14 нм.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows