ВЫБОР РЕДАКЦИИ

Машинное обучение открывает новые возможности FPGA

Машинное обучение открывает новые возможности FPGA

Экономические аспекты развития технологий искусственного интеллекта

Комплексное автомобильное ПО: стратегия развития

Перспективы развития микроконтроллеров с краевым искусственным интеллектом

Проблемы разработки программно-управляемого аппаратного обеспечения

Искусственный интеллект – перспективы развития

Наступление эры искусственного интеллекта реального масштаба времени

Искусственный интеллект и увеличение интереса к краевым вычислениям

Бесшовная связь – становой хребет Четвертой промышленной революции

Использование биометрии в Сухопутных войсках США

Вопросы развития краевых вычислений

Материалы Симпозиума SEMI по промышленной политике

Современное состояние и перспективы развития рынка САПР

Teraki совершает «квантовый скачок» в сфере больших данных

Бум стартапов во Франции

Материалы Симпозиума SEMI по промышленной политике

Вопросы развития краевых вычислений

О перспективах рынка потребительской электроники

Средства искусственного интеллекта учатся распознавать звуки

Превосходство КНР в области искусственного интеллекта: правда или миф?

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

Корпорация Tachyum активизирует работу с правительственными клиентами

Повышение способности искусственного интеллекта к самостоятельному обучению при помощи ReRAM

Искусственный интеллект: основные опасности и способы заработка на зрелых технологиях

Технология, которая ускорит навигацию роботов

LF Energy и Sony CSL планируют сотрудничество в проекте микросетей с открытым исходным кодом

Новые области применения искусственного интеллекта

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

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

Выпуск 9 (6708) от 15 мая 2020 г.
РУБРИКА: ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

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

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

Проектировщики, как в лабораторных условиях, так и в условиях реальной деятельности, зависят от комплектов доступных им инструментальных средств, помогающих внедрять новые сети и новые методы. Во многих случаях исследователи будут работать над идеями, которые еще не реализованы в этих инструментах. Существует общий поток идей, идущий из университетского сообщества в основные объектные структуры проектирования, а оттуда – ​в реальные проекты, использующие эти новые идеи.

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



Источник: Semiconductor Engineering

Рисунок 1. Новая парадигма цикла от разработки новой технологии до проектирования массово выпускаемой продукции


Однако оптимизация реализации новых подходов осуществляется в зависимости от прикладного назначения. Если речь идет об «облаке», то основной проблемой будет быстродействие. В центрах обработки данных (ЦОД) главный вопрос – ​потребляемая мощность, она отодвигает на задний план производительность. А в случае краевых вычислений, по мере удаления от «облака», критической метрикой становится производительность на заданном уровне потребления энергии.

Многие из ранних приложений ML, такие как прогнозная аналитика и распознавание речи, относятся к облачным вычислениям и реализуются такими гигантами, как Google и Facebook. В настоящее время приложения, ориентированные на краевые вычисления, в подавляющем большинстве случаев сфокусированы на приложениях визуализации. Это отражает общую цель оптимизации системы – ​сбалансировать работу, выполняемую в рамках краевых и облачных вычислений. Облачные вычисления характеризуются большей вычислительной мощностью, однако происходящая в их процессе передача данных между сферами краевых и собственно облачных вычислений сопряжена с определенными затратами. С другой стороны, выполнение бóльшего числа операций в сфере краевых вычислений уменьшает потребность в передаче данных, высвобождая ресурсы пропускной способности и уменьшая время ожидания при принятии решений. Приложения визуализации (в частности, видеоданные) генерируют значительные объемы данных, поэтому выполнение бóльшего числа операций в рамках облачных вычислений снижает нагрузку на систему в целом.


Современные подходы к оптимизации

По мере того как проектировщики все больше осваивают нейронные сети, происходит переход к пользовательским сетям. Клиенты поставщиков решений ML начинают мыслить архитектурно – ​они думают не только о сети (раньше оптимизация была полностью связана с параметрами производительности, потребляемой мощности и занимаемого пространства – ​PPA), но и о памяти – ​теперь это главная тема.

Разработка обычно начинается на основе хорошо известной сети, но ее дальнейшее развитие сопряжено с попытками проектировщиков усовершенствовать сеть под конкретное приложение. Для приложений в области компьютерного (машинного, технического) зрения типичная отправная точка – ​это «остаточная» сверточная нейронная сеть (CNN) ResNet 50 для классификации изображений (Residual Network, также существуют версии ResNet 34 и ResNet 101). Такие сети служат главным образом инструментальным средством первого этапа эталонного тестирования аппаратного обеспечения для формирования логических выводов. Однако потребности многих клиентов поставщиков решений ML уже ушли далеко за пределы возможностей ResNet 50, которые немного устарели. Сейчас большей популярностью пользуется CNN YOLOv3. Тем не менее поставщики платформ и инструментальных средств ML все чаще работают с проектировщиками, желающими настроить сеть. Выбрав аппаратную платформу (или, по крайней мере, сузив область выбора), они берут стандартную сеть и начинают ее настраивать. Клиенты могут изменять ширину входных данных или перераспределять глубину входных переменных между слоями.

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

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

Квантование в истинном динамическом диапазоне, полно отражающем его положительную и отрицательную части, позволяет повысить точность в полезной области (рис. 2). При этом послойное или канальное квантование может представлять собой смесь симметричного и асимметричного квантования. Отмечается, что TensorFlow, открытая программная библиотека ML, разработанная корпорацией Google, может использоваться для переобу-чения квантованных сетей, что позволяет проводить послойное (в том числе асимметричное) квантование. Однако цена асимметричного квантования – ​усложнение вычислений. На Международной конференции по твердотельным ИС (International Solid State Circuit Conference, ISSCC), проходившей в феврале 2020 г., были представлены некоторые экспериментальные платформы, содержащие аппаратное обеспечение математического аппарата, позволяющее устранить рост сложности вычислений в качестве одной из проблем программного алгоритма.



Источник: Semiconductor Engineering

Рисунок 2. Ассиметричное и симметричное квантование



Источник: Semiconductor Engineering

Рисунок 3. Использование одно- и двухпиксельного подходов при обработке изображения по горизонтали и вертикали


Другой способ уменьшения общего объема данных – ​это использование большего «шага» CNN. CNN обрабатывают изображения с помощью скользящих окон, типичный размер которых составляет 3×3 пикселя. Сначала вычисляется первое окно, затем окно перемещается вправо на один пиксель и выполняется новый расчет. Это продолжается до тех пор, пока не будет достигнут правый край изображения, после чего окно перемещается назад влево, но на один пиксель вниз. То есть при обработке изображений используется однопиксельный шаг – ​окно перемещается на один пиксель за один раз.

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

Все подобные эксперименты, по мере того как проектировщики пробуют различные способы оптимизации сетей, стимулируют использование высокоуровневого синтеза (high-level synthesis, HLS) – ​для получения кодов языка программирования C и создания соответствующего оборудования. Конечная цель разработчиков при использовании HLS – ​использование несинхронизированных кодов языка C в аппаратном обеспечении для существенного увеличения параллелизма операций обработки данных, но этого пока добиться не удалось.

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


Разреженность

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

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

Свой вклад в использование принципа разреженности вносит новый процессор обработки изображений корпорации Prophesee. Большинство графических процессоров генерируют данные на весь кадр синхронно с тактовой частотой кадров. Однако, поскольку значительные области последовательных кадров видеопотока остаются неизменными от кадра к кадру, большая часть этих данных может считаться потраченной впустую. В процессоре Prophesee используется другой подход. Каждый пиксель измеряет не абсолютный объем света, падающего на него, а скорее изменение этого объема, превышающее некоторый порог. Поэтому вместо того, чтобы формировать кадр за кадром, каждый пиксель «асинхронно» сообщает о достижении или превышении этого порога. Хотя этот подход не является строго асинхронным, точность синхронизации составляет около 1 мкс для эквивалентной частоты кадров в 1 МГц. Это означает, что быстро меняющиеся события, которые могли бы быть пропущены при использовании более традиционной архитектуры, если бы они произошли между кадрами, теперь могут быть захвачены. А поток данных ограничен теми пикселями, которые изменились, вместе с временной меткой.

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

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

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

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

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


Перспективы оптимизации

Дальнейшие исследования будут посвящены дополнительным возможностям оптимизации. Некоторые из них были представлены на ISSCC в феврале 2020 г. Часть представленных разработок можно использовать уже сейчас в аппаратном обеспечении общего назначения. Другие разработки – ​как в плане оптимизации, так и аппаратного обеспечения для поддержки представленных идей – ​еще должны пройти проверку на жизнеспособность.

Недавние совместные работы китайских университетов Аньхой и Цинхуа, а также фирмы Pi2Star Technology проводились по той же тематике, что и работы корпорации Prophesee. Разработчики при визуализации данных использовали стандартную покадровую обработку, но полностью обрабатывался только первый кадр. После этого аппаратное обеспечение вычисляло разницу между предыдущим и текущим кадром. Так же, как и в работе Prophesee, речь идет о генерации гораздо более разреженных матриц данных.

Еще одно направление оптимизации, разрабатываемое в ряде исследований, относится к понятию свертки по глубине, или поточечной свертки (depthwise/pointwise convolution), иногда называемой избирательной сверткой по глубине (depthwise-separable convolution, DSC). В этом подходе стандартная свертка, включающая свертку по высоте, ширине, глубине и числу желаемых выходных каналов, разделяется на два отдельных подхода: первый нацелен на свертку по глубине, а второй работает с ядром размером в один пиксель.

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

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

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


Moyer Bryon. New Ways to Optimize Machine Learning. Semiconductor Engineering, April 2, 2020: https://semiengineering.com/emerging-optimization-techniques-for-machine-learning/


ЧИТАЙТЕ ТАКЖЕ

Выпуск 22(6746) от 11 ноября 2021 г. г.
Выпуск 21(6745) от 28 октября 2021 г. г.