Российские нанотехнологии, 2023, T. 18, № 6, стр. 823-831
Алгоритм записи синаптических весов в мемристорную матрицу кроссбар-элементов
И. И. Яшков 1, 2, И. А. Суражевский 1, *, В. А. Демин 1
1 Национальный исследовательский центр “Курчатовский институт”
Москва, Россия
2 Московский государственный университет им. М.В. Ломоносова
Москва, Россия
* E-mail: isurazhevsky@yandex.ru
Поступила в редакцию 10.11.2022
После доработки 30.11.2022
Принята к публикации 30.11.2022
Аннотация
Создание аппаратных систем ускорения нейросетевых алгоритмов с мемристорными синаптическими связями (наноструктурированными элементами электрически перезаписываемой энергонезависимой памяти) является перспективным направлением разработки средств решения задач искусственного интеллекта с точки зрения значительного снижения энергопотребления при одновременном повышении производительности вычислений. Однако при все большем увеличении настраиваемых параметров в нейросетевых алгоритмах возникает задача их переноса в нейроморфную систему “за разумное время”. В то же время сами мемристорные структуры обладают некоторым разбросом своих параметров (напряжение переключения, диапазона изменяемых сопротивлений), что вызывает определенные трудности при работе с ними. Представлен алгоритм записи синаптических весов, ориентированный на баланс между точностью и скоростью работы, а также устойчив к разбросам параметров мемристорных структур. Показана модельная реализация формального нейросетевого алгоритма с перенесенными в мемристорный базис предобученными параметрами, показано влияние разбросов характеристик мемристоров и сопротивлений проводников на процесс записи весов и аппаратную работу нейросети.
ВВЕДЕНИЕ
Непрерывное развитие нейросетевых вычислений и их интеграция в технические системы накладывают все большие требования на аппаратное обеспечение с точки зрения как производительности, так и энергопотребления. Крайне важным является и сам факт сверхвысокой скорости увеличения количества весовых параметров нейросетей от десятков тысяч [1] до сотен миллионов [2] и миллиардов [3]. С точки зрения перспективного подхода реализации нейросетевых алгоритмов на аппаратном уровне с помощью мемристоров (наноразмерных сопротивлений с эффектом памяти аналоговых резистивных состояний) [4, 5] возникает задача переноса в систему предобученных весовых коэффициентов “за разумное время”, которая заключается не просто в записи весов в локальную память, но и программировании состояний мемристорных структур.
При этом сами мемристоры обладают некоторым разбросом своих электрических параметров [6, 7]: напряжений переключения (Vth+, Vth-), времени хранения резистивных состояний, граничных сопротивлений Ron и Roff, что в целом вызывает трудности при выполнении задачи переноса заданного набора синаптических весов в нейроморфную систему. Предыдущие работы, направленные на решение данной проблемы, были нацелены на выполнение записи с проверкой или без нее, предполагая заданный практически линейный характер изменения проводимости мемристора без учета разбросов [8] или демонстрируя [9] ресурсоемкий алгоритм для сверхточной записи весов, не описывая случаев работы при разбросе граничных сопротивлений, необходимого времени для записи определенного количества весов (дополнительное время здесь идет на подстройку амплитуды и длительности импульсов) или сложности аппаратной реализации необходимого для успешной работы данного алгоритма генератора случайных чисел, что в рамках многоядерной системы [10–12] будет занимать дополнительное место в каждом ядре на кристалле. Таким образом, возникает необходимость разработки алгоритма, который вобрал бы в себя положительные стороны предыдущих реализаций, но отличался бы скоростью и компактностью.Рис. 1
Настоящее исследование посвящено разработке алгоритма записи синаптических весов в мемристорную матрицу кроссбар-элементов с учетом возможных разбросов напряжений переключения и граничных сопротивлений структур, разработке Verilog-A реализации данного алгоритма и его тестированию на примере записи весового шаблона в массив мемристоров, динамика переключения которых была настроена на лабораторные образцы нанокомпозитных структур (НК) с мемристивным эффектом [13, 14], а также исследованию влияния разбросов характеристик мемристорных НК-структур на работу простого нейросетевого алгоритма, классифицирующего визуальные образы размером 3 × 5 пикселей.
АЛГОРИТМ ЗАПИСИ СИНАПТИЧЕСКИХ ВЕСОВ
Первым этапом при запуске нейроморфной системы ускорения нейросетевых алгоритмов является активация синаптической матрицы весами предобученной нейросети, которые должны быть предварительно записаны в специализированной памяти.
Предполагается, что данная операция состоит из следующих основных этапов.
1. Считывание весов нейрона из памяти (данный блок параметров состоит из двух векторов – положительных и отрицательных весовых коэффициентов (два коэффициента на синаптический вес) – 2N-параметров).
2. Измерение проводимости целевого мемристора в кроссбар-матрице и преобразование полученных данных в весовой коэффициент по формуле
(1)
$W = \frac{{G~ - ~{{G}_{{{\text{min}}}}}}}{{{{G}_{{{\text{max}}}}}~ - ~{{G}_{{{\text{min}}}}}}},$3. Если считанный вес и вес из памяти не совпали с некоторой заданной точностью, то выполняется генерация переключающего импульса для уменьшения разницы и переход к повторному измерению из пункта 2. В противном случае выполняется переход к следующему кроссбар-элементу.
Несмотря на небольшое количество простых шагов, отметим несколько важных моментов для успешной работы данного алгоритма:
– формирование сигналов на входе пассивной кроссбар-матрицы влечет за собой неизбежное возникновение токов шунтирования [15, 16], из-за которых даже в небольшом массиве кроссбар-элементов действительное значение синаптического веса сильно искажается. При этом наблюдается попадание алгоритма в бесконечный цикл: система управления матрицей будет непрерывно ожидать заданного с учетом погрешности значения тока, который никогда не будет считан;
– для нивелирования влияния токов шунтирования при считывании необходимо заземлять невыбранные столбцы кроссбар-матрицы, таким образом, на желаемом выходе будет неискаженное значение. Данный метод теряет свою эффективность при увеличении количества мемристоров в кроссбар-матрице, так как требует для корректной работы все более мощного источника тока, что идет в разрез с концепцией энергоэффективных вычислений в памяти;
– применение схемы с током ограничения также не является эффективным, так как на каждом столбце массива кроссбар-элементов свои величины токов шунтирования (в данном режиме нельзя применять заземление всех столбцов, поскольку начнут изменяться другие “невыбранные веса”);
– учет возможных дефектов в мемристорных структурах: разброс по напряжениям переключения и диапазонам изменения проводимости.
Последний раздел в реализованном алгоритме переноса синаптических весов учитывает данные эффекты следующим образом: при сильном разбросе напряжений переключения возникает ситуация, когда переключающие импульсы со строго заданными и неменяющимися от мемристора к мемристору амплитудами не могут настроить проводимость в рамках заданного интервала. Система зацикливается на одном элементе, непрерывно посылая импульсы разной полярности. Для выхода из данных условий предусмотрен счетчик попыток изменения проводимости: если произошло переключение полярности управляющего сигнала 10 раз, то данный мемристор считается запрограммированным. С другой стороны, можно изменять амплитуду и длительность импульсов для точной настройки. Тогда встает ряд вопросов: какие диапазоны амплитуд и длительностей нужны, с каким минимальным шагом их необходимо настраивать, сколько времени займет такая настройка, если мемристоров миллионы, а также необходимость такой настройки и ее связи с конечной точностью работы нейросетевого алгоритма.
Аналогичным образом алгоритм ведет себя при разбросах в окне изменения проводимости от мемристора к мемристору: если блок программирования считывает заданное количество раз одну и ту же величину при подаче переключающих импульсов (считанные значения отличаются меньше, чем на величину Gшаг), хотя заданная величина не была достигнута, он приходит к выводу, что данный элемент достиг одного из своих граничных значений по проводимости, после чего происходит переход к следующему элементу кроссбар-матрицы.
Данные подходы были реализованы в виде Verilog-А модели контроллера кроссбар-матрицы, реализующей управление пассивной матрицей кроссбар-элементов. Тестирование работы данного блока проводилось совместно с мемристорной синаптической матрицей в системе автоматизированного проектирования Cadence Virtuoso по схеме, представленной на рис. 2а. Само тестирование было разделено на два этапа.
Первый этап подразумевал исследование записи шаблона синаптических весов (рис. 2б) в кроссбар-матрицу элементов с учетом возможных разбросов их характеристик. В качестве программных синаптических весов использовалась Verilog-A модель мемристора VTEAM [17], дополненная возможностью внесения разбросов по напряжениям переключения и граничных значений сопротивлений (оба параметра различны от устройства к устройству и инициализировались перед началом моделирования с помощью генератора случайных чисел для воспроизведения параметров реальных массивов мемристорных структур; параметры VTEAM, определяющие динамику резистивного переключения: Kon = –1.8, Koff = 19, αon = = 1.5 × 10–6, αoff = 1/2 × 10–9, xon = 1.05 × 10–6, xoff = 1.75 × 10–6; граничные сопротивления и напряжения переключения: ROn = 58 Ом, ROff = = 114 Ом, V+ = 2.7 В, V– = –2.7 В). Динамика переключения их проводимости была настроена на мемристорные НК-структуры согласно результатам [18] с использованием аналогичных переключающих импульсов с амплитудой –2.5 и +2.8 В, длительностью 30 мс и прямоугольной формой.
Итоговые кривые с динамикой переключения из состояния с минимальной проводимостью в состояние с максимальной проводимостью (потенциация) и наоборот (депрессия) с учетом разбросов по напряжениям переключения и диапазона сопротивлений (5, 10, 15, 20%) представлены на рис. 3 и 4 соответственно. Для каждого из разбросов было проведено две серии экспериментов по пять повторений, дополнительно выделены средние значения, пунктиром значения в идеальном случае – без разбросов.
Второй этап был направлен на использование разработанного алгоритма в задаче переноса синаптических весов обученного нейросетевого алгоритма для аппаратной классификации простых графических образов: первым этапом реализации аппаратного ex-situ-обучения нейросетевого алгоритма с мемристорными синаптическими связями является обучение нейросетевого алгоритма на некоторой внешней системе (например, на центральном или графическом процессоре) с целью получения полного конечного распределения весов, которые в последующем будут записаны в матрицу кроссбар-элементов.
На рис. 5а представлена выбранная для данного исследования нейросеть, представляющая собой однослойный перцептрон с 15 входами и пятью нейронами на выходе. Для обучения данной архитектуры использовали выборку, представленную на рис. 5б: изображения размером 5 × 3 однобитных пикселя (принимают значения либо 1, либо 0) с набором цифр от 1 до 5. Отметим, что данная размерность входных данных была выбрана для возможности последующей реализации нейросети на кроссбар-×матрице 16 × 16 элементов.
Обучение перцептрона провели с использованием следующих параметров:
− cигмоидальная функция активации нейронов;
− функция градиентного спуска в основе алгоритма изменения весов;
− формат входных данных: тестовую и тренировочную выборки формировали путем случайного выбора одного из изображений;
− 1000 эпох со скоростью обучения 0.02.
Конечное распределение весов перцептрона представлено на рис. 5в. Видно, что синаптические веса, соответствующие центральным пикселям, имеют достаточно невысокие значения, ~0.3–0.4, что связано с их использованием во всех тестовых изображениях.
Полученные в ходе обучения нейросети распределения весов для каждого нейрона были отнормированы в диапазоне от –1 до 1, после чего были сформированы два подмножества коэффициентов g– > 0 и g+ > 0 (синаптический вес W = g+ – g–) для их последующей записи в кроссбар-матрицу. Отметим, что получение векторов провели следующим способом: на примере вектора синаптических весов нейрона {–0.2, 0.5, 0.7, –0.8} формируются массивы g+ = {0, 0.5, 0.7, 0} и g– = {0.2, 0, 0, 0.8}.
После записи синаптических весов в кроссбар-матрицу с использованием разработанного алгоритма контроллером кроссбар-матрицы были последовательно переданы на входы (строки) матрицы изображения тестовой выборки. Они представляли собой зашумленные изображения по десять вариаций для каждого из пяти классов: при генерации картинки каждый пиксель с вероятностью 10% изменялся на противоположный. Светлый пиксель изображения кодировали напряжением V = 0.1 В, в то время как черный пиксель соответствовал отключению сигнальной ножки от данной строки (высокоимпедансное состояние). Далее определяли разницы между результирующими выходными токами столбцов с коэффициентами g+ и g– для каждого из нейронов: если максимальный ток наблюдается на выходе нейрона, соответствующего классу поданной картинки, и более чем на 10% превышает все выходные токи остальных нейронов, то распознавание засчитано как успешное, счетчик удачных попыток увеличивается на единицу. В противном случае засчитывается ошибка и инкрементируется счетчик с позицией нейрона, ток которого был максимален. Таким образом формируется матрица ошибок, которая будет рассмотрена далее.
РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ
Анализируя полученные данные по динамике переключения мемристоров и результат записи шаблона синаптических весов в кроссбар-матрицу (рис. 6), можно прийти к выводу, что разброс именно по граничным значениям сопротивлений вносит существенные искажения в работу системы, особенно если речь идет о весовых коэффициентах вблизи граничных значений.
В данном случае речь идет об изменении самого диапазона, в котором может изменяться синаптический вес: например, если взять за основу модель без разбросов с диапазоном изменения веса от 0 до 1, то при разбросах по сопротивлениям в 20% он сместится в худшем случае или от 0.2 до 0.8, или от –0.2 до 1.25 (отрицательное значение появляется из-за отрицательного числителя в уравнении (1)). Последний случай на самом деле не так страшен, так как система управления кроссбар-матрицей может быть запрограммирована на наличие разброса по сопротивлениям и различать подобную ситуацию, при этом множество от –0.2 до 1.25 содержит в себе подмножество значений без разбросов от 0 до 1, в то время как первый случай от 0.2 до 0.8 может не дать необходимой гибкости настроек весовых коэффициентов для точной работы нейросетевого алгоритма.
Отметим, что подобный алгоритм, определив структуру с диапазоном изменения весов от –0.2 до 1.25, должен при первом обращении к нему перевести его проводимость в значение из диапазона от 0 до 1. В противном случае после генерации десяти переключающих импульсов мемристор так и останется после этапа программирования вне диапазона и будет влиять на работу системы, как это произошло с кроссбар-элементом с координатой (1-16), синаптический вес которого составляет W = –2.88 (данное значение было задано на этапе начальной активации и несильно изменилось при попытке за 10 импульсов его изменить).
Другим немаловажным моментом является итоговое время моделирования, за которое контроллер кроссбар-матрицы провел запись синаптического шаблона. Согласно полученным результатам, для этого потребовалось от 4000 до 6000 с, что соответствовало 4–5 ч компьютерного моделирования. Таким образом, для кроссбар-матрицы 16 × 16 элементов время хранения резистивного состояния должно быть не менее 104 с. С другой стороны, при увеличении матрицы в несколько раз время записи достигнет некоторых крайне высоких неприемлемых значений, что говорит о необходимости изменения, в первую очередь, параметров импульсов (использование различных амплитуд для различных по величине приращений веса) и возможного упрощения самого алгоритма по числу итераций при достижении пороговых значений.
На рис. 7 представлена матрица ошибок работы формального нейросетевого алгоритма с мемристорными синаптическими связями. Здесь по горизонтали указаны номера классифицирующих нейронов, по вертикали – номера классов изображений тестовой выборки (в каждом классе по 10 изображений, количество правильных распознаваний определяется с помощью переменной N). Согласно полученным результатам, предельным значением разброса параметров мемристоров стала граница в 10%, что было отмечено в предыдущих работах на примере импульсной нейронной сети [19]. Более того, показано, что при усложнении нейросетевых алгоритмов, которые выполняются на мемристорах, строгость к разбросам мемристорных структур только усиливается [20].
Наконец, один из наиболее любопытных результатов, которые были получены, – это зависимость корректности записи шаблона синаптических весов в кроссбар-матрицу от сопротивлений проводников, которые формируют шины строк и столбцов. Разбросы мемристоров при этом были отключены, т.е. все структуры были идеальными. На рис. 8 показано, что разработанный в ходе данного исследования алгоритм записи синаптических весов начинает испытывать сложности, если сопротивление шин (RШ) на один кроссбар-элемент превышает 0.34% от значения Ron (0.2 Ом в данном случае): результат считывания записанного шаблона (рис. 8а), разница между считанным значением и самим шаблоном (рис. 8б), который записывался, а также результаты запуска работы нейросетевого алгоритма с учетом ненулевых значений сопротивлений проводников (рис. 8в).
При более детальном анализе такого влияния было установлено, что основной причиной подобных искажений являются возникающие даже при заземленных столбцах кроссбар-матрицы токи шунтирования. А возникают они вот почему: инициализируя матрицу случайными значениями проводимости на старте моделирования и задавая сопротивления самим проводящим шинам в процессе считывания проводимости, когда выходы всех столбцов заземлены, а на вход всех мемристоров подается напряжение считывания, в системе возникает разность потенциалов между столбцами, что вызывает растекание тока между матрицей. Таким образом, ожидаемое значение на выходе кроссбар-матрицы и реальное могут различаться на десятки процентов. При этом, как видно из рис. 8, чем глубже в матрице расположен кроссбар-элемент, тем большее влияние на него оказывает данный эффект. Выходом из этой ситуации является учет геометрических параметров шин и параметров мемристорных структур при проектировании кроссбар-матрицы.
ЗАКЛЮЧЕНИЕ
Разработан алгоритм записи синаптических весов в мемристорную матрицу кроссбар-элементов, учитывающий разбросы в характеристиках мемристоров и ориентированный на баланс между скоростью и точностью записи. Путем электрофизического моделирования с использованием модели мемристора VTEAM был проведен ряд тестовых запусков по записи синаптического шаблона в матрицу кроссбар-элементов и показана устойчивость алгоритма к разбросам по напряжениям переключения и граничных сопротивлений. Используя разработанный алгоритм и набор синаптических весов предобученной формальной нейросети был проведен ее перенос на аппаратный базис, продемонстрирована ее успешная работа по классификации простых визуальных изображений. Выявлено, что для успешной работы данного алгоритма при использовании мемристорных синаптических связей разброс характеристик не должен превышать 10%. Показано, что для записи синаптического шаблона потребовалось до 6000 с, таким образом, для записи шаблонов большего размера необходимо время хранения резистивных состояний не менее 104 с, а также использование динамически подстраиваемой амплитуды переключающих импульсов для различных по величине изменений синаптического веса. В заключение было проведено исследование влияния сопротивлений шин строк и столбцов в кроссбар-матрице на работу алгоритма: показано, что при сопротивлениях шин ~0.34% от Ron на один элемент массива алгоритм не способен провести корректную запись весов, что подтверждается некорректной работой формального нейросетевого алгоритма. Данный эффект необходимо учитывать при проектировании мемристорной кроссбар-матрицы.
Работа выполнена при финансовой поддержке научной программы Национального центра физики и математики (проект “Искусственный интеллект и большие данные в технических, промышленных, природных и социальных системах) в части разработки алгоритма записи синаптических весов и государственного задания НИЦ “Курчатовский институт” (№ 86) в части моделирования работы нейросетевого алгоритма с мемристорными синаптическими связями.
Список литературы
Lecun Y., Bottou L., Bengio Y., Ha P. // Proc. IEEE. 1998. P. 1.
Simonyan K., Zisserman A. // 3rd Int. Conf. Learn. Represent. ICLR 2015 – Conf. Track Proc. 2015. P. 1. https://doi.org/10.48550/arXiv.1409.1556
Brown T.B., Kaplan J., Ryder N. et al. // arXiv:2005.14165.2020. https://doi.org/10.48550/arXiv.2005.14165
Wan W., Kubendran R., Schaefer C. et al. // Nature. 2022. V. 608. P. 504. https://doi.org/10.1038/s41586-022-04992-8
Shchanikov S., Zuev A., Bordanov I. et al. // Chaos, Solitons and Fractals. 2021. V. 142. P. 110504. https://doi.org/10.1016/j.chaos.2020.110504
Tao Y., Ding W., Wang Z. et al. // Appl. Surf. Sci. 2018. V. 440. P. 107.
Teplov G., Zhevnenko D., Meshchaninov F. et al. // Micromachines. 2022. V. 13. P. 1691. https://doi.org/10.3390/mi13101691
Yao P., Wu H., Gao B. et al. // Nat. Commun. 2017. V. 8. P. 15199. https://doi.org/10.1038/ncomms15199
Nikiruy K.E., Emelyanov A.V., Demin V.A. et al. // Tech. Phys. Lett. 2018. V. 44. P. 416. https://doi.org/10.1134/S106378501805022X
Akopyan F., Sawada J., Cassidy A. et al. // IEEE Trans. Comput. Des. Integr. Circuits Syst. 2015. V. 34. P. 1537. https://doi.org/10.1109/TCAD.2015.2474396
Deng L., Wang G., Li G. et al. // IEEE J. Solid-State Circuits. 2020. V. 55. P. 2228.
Davies M., Srinivasa N., Lin T.H. et al. // IEEE Micro. 2018. V. 38. P. 82. https://doi.org/10.1109/MM.2018.112130359
Emelyanov A.V., Nikiruy K.E., Serenko A.V. et al. // Nanotechnology. 2020. V. 31. P. 045201.
Martyshov M.N., Emelyanov A.V., Demin V.A. et al. // Phys. Rev. Appl. 2020. V. 14. P. 1. https://doi.org/10.1103/PhysRevApplied.14.034016
Zidan M.A., Fahmy H.A.H., Hussain M.M., Salama K.N. // Microelectronics J. 2013. V. 44. P. 176. https://doi.org/10.1016/j.mejo.2012.10.001
Demin V.A., Surazhevsky I.A., Emelyanov A.V. et al. // J. Comput. Electron. 2020. V. 19. P. 565. https://doi.org/10.1007/s10825-020-01470-0
Kvatinsky S., Ramadan M., Friedman E.G., Kolodny A. // IEEE Trans. Circuits Syst. II Express Briefs. 2015. V. 62. P. 786. https://doi.org/10.1109/TCSII.2015.2433536
Ilyasov A.I., Nikiruy K.E., Emelyanov A.V. et al. // Nanobiotechnology Reports. 2022. V. 17. P. 118.
Surazhevsky I.A., Demin V.A., Ilyasov A.I. et al. // Chaos, Solitons and Fractals. 2021. V. 146. P. 110890. https://doi.org/10.1016/j.chaos.2021.110890
Yao P., Wu H., Gao B. et al. // Nature. 2020. V. 577. P. 641. https://doi.org/10.1038/s41586-020-1942-4
Дополнительные материалы отсутствуют.
Инструменты
Российские нанотехнологии