АНАЛОГОВАЯ АППАРАТНАЯ РЕАЛИЗАЦИЯ НЕЙРОННЫХ СЕТЕЙ Российский патент 2023 года по МПК G06N3/63 G06G7/60 

Описание патента на изобретение RU2796649C2

ОБЛАСТЬ ТЕХНИКИ

[0001] Раскрытые варианты осуществления относятся в целом к нейронным сетям и, в частности, к системам и способам для аппаратной реализации нейронных сетей.

УРОВЕНЬ ТЕХНИКИ

[0002] Обычное аппаратное обеспечение не успевает за инновациями в нейронных сетях и растущей популярностью приложений на основе машинного обучения. Сложность нейронных сетей продолжает опережать вычислительные мощности CPU и GPU, поскольку улучшения цифровых микропроцессоров стабилизируются. Нейроморфные процессоры, основанные на пиковых нейронных сетях, такие как Loihi и True North, ограничены их приложениями. Применительно к GPU-подобным архитектурам, мощность и скорость таких архитектур ограничиваются скоростью передачи данных. Передача данных может потреблять вплоть до 80% мощности чипа и может существенно повлиять на скорость вычислений. Граничные приложения требуют низкого энергопотребления, но в настоящий момент отсутствуют известные высокопроизводительные аппаратные варианты осуществления, которые потребляют меньше 50 милливатт энергии.

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

[0004] Дополнительно, процесс обучения, который требуется для нейронных сетей, представляет уникальные проблемы для аппаратной реализации нейронных сетей. Обученная нейронная сеть используется для конкретных задач логического вывода, таких как классификация. Как только нейронная сеть обучена, изготавливается аппаратный эквивалент. При переобучении нейронной сети, процесс изготовления аппаратного обеспечения повторяется, приводя к росту затрат. Несмотря на то, что существуют некоторые реконфигурируемые аппаратные решения, такое аппаратное обеспечение не может быть легко произведено серийно, и стоит много больше (например, стоит в 5 раз больше) аппаратного обеспечения, которое не является реконфигурируемым. Кроме того, граничные среды, такие как приложения умного дома, не требуют перепрограммирования как такового. Например, 85% всех приложений нейронных сетей не требуется какого-либо переобучения во время работы, так что обучение на-чипе не такое уж и используемое. Кроме того, граничные приложения включают в себя шумные среды, что может привести к тому, что перепрограммируемое аппаратное обеспечение станет ненадежным.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0005] Соответственно, существует потребность в способах, схемах и/или интерфейсах, которые решают по меньшей мере некоторые из недостатков, идентифицированных выше. Аналоговые схемы, которые моделируют обученные нейронные сети и изготавливаются в соответствии с методиками, описанными в данном документе, могут обеспечивать преимущества улучшенной производительности из расчета на ватт, могут быть полезны при реализации аппаратных решений в граничных средах, и могут поддерживать многообразие приложений, таких как навигация дронов и автономные автомобили. Преимущества в затратах, которые предоставляются предложенными способами изготовления и/или аналоговыми сетевыми архитектурами, еще более выражены при использовании больших нейронных сетей. Также аналоговые аппаратные варианты осуществления нейронных сетей обеспечивают улучшенный параллелизм и нейроморфизм. Более того, нейроморфные аналоговые компоненты нечувствительны к шуму и температурным изменениям в сравнении с цифровыми аналогами.

[0006] Чипы, изготовленные в соответствии с методиками, описанными в данном документе, обеспечивают улучшения на порядок в сравнении с обычными системами по размеру, мощности и производительности, и являются идеальными для граничных сред, включая для целей переобучения. Такие аналоговые нейроморфные чипы могут быть использованы для реализации граничных вычислительных приложений или в средах Интернет-Вещей (IoT). Благодаря аналоговому аппаратному обеспечению, первоначальная обработка (например, формирование дескрипторов для распознавания изображений), которая может потреблять около 80-90% энергии, может быть перемещена в чип, тем самым уменьшая потребление энергии и нагрузку на сеть, что может открыть новые рынки для приложений.

[0007] Различные граничные приложения могут получать выгоду от использования такого аналогового аппаратного обеспечения. Например, применительно к видеообработке, методики, описанные в данном документе, могут быть использованы, чтобы включать непосредственное соединение с датчиком CMOS без цифрового интерфейса. Различные другие приложения видеообработки включают в себя распознавание дорожных знаков для автомобилей, фактическую глубину на основе камеры и/или одновременную локализацию и отображение для роботов, управление доступом в помещение без соединения с сервером и постоянные решения для обеспечения безопасности и здравоохранения. Такие чипы могут быть использованы для обработки данных с радаров и лидаров, и для низкоуровневого слияния данных. Такие методики могут быть использованы для реализации функций управления батареями для больших батарейных блоков, обработки звука/голоса без соединения с центрами обработки данных, распознавания голоса в мобильных устройствах, речевых инструкций пробуждения для IoT датчиков, переводчиков, которые переводят с одного языка на другой, больших массивов датчиков в IoT с низкой интенсивностью сигнала и/или конфигурируемого управления процессом с сотнями датчиков.

[0008] Нейроморфные аналоговые чипы могут быть произведены серийно после стандартных моделирований/обучения нейронных сетей на основе программного обеспечения, в соответствии с некоторыми вариантами осуществления. Клиентские нейронные сети могут быть легко перенесены, независимо от структуры нейронной сети, с помощью специализированной конструкции и производства чипа. Более того, библиотека готовых решений на-чипе (сетевые эмуляторы) предоставляются в соответствии с некоторыми вариантами осуществления. Таким решениям требуется только обучение, одно изменение литографической маски, вслед за чем чипы могут быть произведены серийно. Например, при производстве чипа, требуется изменение только части литографических масок.

[0009] Методики, описанные в данном документе, могут быть использованы для конструкции и/или изготовления аналоговой нейроморфной интегральной микросхемы, которая является математически эквивалентной обученной нейронной сети (либо нейронной сети с прямой связью, либо рекуррентной нейронной сети). В соответствии с некоторыми вариантами осуществления, процесс начинается с обученной нейронной сети, которая сначала преобразуется в трансформированную сеть, состоящую из стандартных элементов. Работа трансформированной сети моделируется с использованием программного обеспечения с помощью известных моделей, представляющих собой стандартные элементы. Программное моделирование используется для определения отдельных значений сопротивления для каждого из резисторов в трансформированной сети. Литографические маски компонуются на основе расстановки стандартных элементов в трансформированной сети. Каждый из стандартных элементов компонуется в максах с использованием существующей библиотеки схем, соответствующих стандартным элементам, чтобы упростить и ускорить процесс. В некоторых вариантах осуществления, резисторы компонуются в одной или нескольких масках отдельно от масок, включающих в себя другие элементы (например, операционные усилители) в трансформированной сети. Таким образом, если нейронная сеть переобучается, то требуется обновление только масок, содержащих резисторы, или другие типы элементов с фиксированным сопротивлением, представляющие собой новые весовые коэффициенты в переобученной нейронной сети, что упрощает и ускоряет процесс. Литографические маски затем отправляются на фабрику для изготовления аналоговой нейроморфной интегральной микросхемы.

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

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

[0012] В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: получают новые весовые коэффициенты для обученной нейронной сети, вычисляют новую матрицу весов для эквивалентной аналоговой сети на основе новых весовых коэффициентов, и формируют новую матрицу сопротивлений для новой матрицы весов.

[0013] В некоторых вариантах осуществления, топология нейронной сети включает в себя один или несколько слоев нейронов, причем слой нейронов вычисляет соответствующие выводы на основе соответствующей математической функции, и этап, на котором трансформируют топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов, включает в себя этапы, на которых: для каждого слоя из одного или нескольких слоев нейронов: (i) идентифицируют один или несколько блоков функции на основе соответствующей математической функции, для соответствующего слоя. Каждый блок функции имеет соответствующую схематическую реализацию с выводами блока, которые согласуются с выводами соответствующей математической функции; и (ii) формируют соответствующую многослойную сеть аналоговых нейронов на основе расстановки одного или нескольких блоков функции. Каждый аналоговый нейрон реализует соответствующую функцию одного или нескольких блоков функции, и каждый аналоговый нейрон первого слоя многослойной сети соединяется с одним или несколькими аналоговыми нейронами второго слоя многослойной сети.

[0014] В некоторых вариантах осуществления, один или несколько блоков функции включают в себя один или несколько базовых блоков функции, выбранных из группы, состоящей из следующего: (i) блок взвешенного суммирования с выводом блока в виде . является функцией активации Выпрямленной Линейной Единицы (ReLU) или аналогичной функцией активации, представляет собой i-й ввод, представляет собой весовой коэффициент, соответствующий i-му вводу, и представляет собой значение смещения, и является оператором суммирования; (ii) блок умножителя сигнала с выводом блока в виде . представляет собой i-й ввод, представляет собой j-й ввод, а является предварительно определенным коэффициентом; (iii) блок активации по сигмоиде с выводом блока в виде . представляет собой ввод, а A и B являются предварительно определенными значениями коэффициента блока активации по сигмоиде; (iv) блок активации по гиперболическому тангенсу с выводом блока в виде . представляет собой ввод, а A и B являются предварительно определенными значениями коэффициента; и (v) блок задержки сигнала с выводом блока в виде . представляет собой период текущего времени, представляет собой вывод блока задержки сигнала для предшествующего периода времени , а является значением задержки.

[0015] В некоторых вариантах осуществления этап, на котором идентифицируют один или несколько блоков функции, включает в себя этап, на котором выбирают один или несколько блоков функции на основе типа соответствующего слоя.

[0016] В некоторых вариантах осуществления, топология нейронной сети включает в себя один или несколько слоев нейронов, причем каждый слой нейронов вычисляет соответствующие выводы на основе соответствующей математической функции, и этап, на котором трансформируют топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов, включает в себя этапы, на которых: (i) осуществляют разложение первого слоя топологии нейронной сети на множество подслоев, включая разложение математической функции, соответствующей первому слою, чтобы получить одну или несколько промежуточных математических функций. Каждый подслой реализует промежуточную математическую функцию; и (ii) для каждого подслоя первого слоя топологии нейронной сети: (a) выбирают один или несколько блоков подфункции на основе соответствующей промежуточной математической функции, для соответствующего подслоя; и (b) формируют соответствующую многослойную аналоговую подсеть аналоговых нейронов на основе расстановки одного или нескольких блоков подфункции. Каждый аналоговый нейрон реализует соответствующую функцию одного или нескольких блоков подфункции, и каждый аналоговый нейрон первого слоя многослойной аналоговой подсети соединяется с одним или несколькими аналоговыми нейронами второго слоя многослойной аналоговой подсети.

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

[0018] В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: (i) формируют эквивалентную цифровую сеть цифровых компонентов для одного или нескольких выходных слоев топологии нейронной сети; и (ii) соединяют вывод одного или нескольких слоев эквивалентной аналоговой сети с эквивалентной цифровой сетью цифровых компонентов.

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

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

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

[0022] В некоторых вариантах осуществления, один или несколько блоков задержки сигнала активируются с частотой, которая совпадает с предварительно определенной частотой входного сигнала для топологии нейронной сети.

[0023] В некоторых вариантах осуществления, топология нейронной сети включает в себя один или несколько слоев нейронов, которые выполняют функции неограниченной активации, и этап, на котором трансформируют топологию нейронной сети, включает в себя этап, на котором применяют одну или несколько трансформаций, выбранных из группы, состоящей из следующего: (i) замена функций неограниченной активации ограниченной активацией; и (ii) регулирование соединений или весовых коэффициентов эквивалентной аналоговой сети таким образом, что, для предварительно определенного одного или нескольких вводов, разность вывода между обученной нейронной сетью и эквивалентной аналоговой сетью сведена к минимуму.

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

[0025] В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: (i) получают новые весовые коэффициенты для обученной нейронной сети; (ii) вычисляют новую матрицу весов для эквивалентной аналоговой сети на основе новых весовых коэффициентов; (iii) формируют новую матрицу сопротивлений для новой матрицы весов; и (iv) формируют новую литографическую маску для изготовления схемы, реализующей эквивалентную аналоговую сеть аналоговых компонентов, на основе новой матрицы сопротивлений.

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

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

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

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

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

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

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

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

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

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

[0036] В некоторых вариантах осуществления, топология нейронной сети включает в себя вводов, весовой вектор и однослойный персептрон с нейроном вычисления с функцией активации. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) вычисляют количество слоев для эквивалентной сети с разреженными соединениями с использованием уравнения ; и (iii) конструируют эквивалентную сеть с разреженными соединениями с вводами, слоями и степенью соединения. Эквивалентная сеть с разреженными соединениями включает в себя соответствующий один или несколько аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации нейрона вычисления однослойного персептрона. Также, в таких случаях, этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этап, на котором вычисляют весовой вектор для соединений эквивалентной сети с разреженными соединениями путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0037] В некоторых вариантах осуществления, топология нейронной сети включает в себя вводов, однослойный персептрон с нейронами вычисления и матрицей весов, которая включает в себя строку весовых коэффициентов для каждого нейрона вычисления из нейронов вычисления. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) вычисляют количество слоев для эквивалентной сети с разреженными соединениями с использованием уравнения ; (iii) осуществляют разложение однослойного персептрона на сетей однослойного персептрона. Каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления; (iv) для каждой сети однослойного персептрона из сетей однослойного персептрона: (a) конструируют соответствующую эквивалентную пирамидоподобную подсеть для соответствующей сети однослойного персептрона с вводами, слоями и степенью соединений. Эквивалентная пирамидоподобная подсеть включает в себя один или несколько соответствующих аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации соответствующего нейрона вычисления, который соответствует соответствующему однослойному персептрону; и (b) конструируют эквивалентную сеть с разреженными соединениями путем сцепления каждой эквивалентной пирамидоподобной подсети, включая сцепление ввода каждой эквивалентной пирамидоподобной подсети для сетей однослойного персептрона, чтобы сформировать входной вектор с вводами. Также, в таких случаях, этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы на которых, для каждой сети однослойного персептрона из сетей однослойного персептрона: (i) устанавливают весовой вектор , причем iя строка матрицы весов, соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона; и (ii) вычисляют весовой вектор для соединений соответствующей эквивалентной пирамидоподобной подсети путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0038] В некоторых вариантах осуществления, топология нейронной сети включает в себя вводов, многослойный персептрон с слоями, причем каждый слой из слоев включает в себя соответствующий набор из нейронов вычисления и соответствующих матриц весов, которые включают в себя строку весовых коэффициентов для каждого нейрона вычисления из нейронов вычисления. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) осуществляют разложение многослойного персептрона на сетей однослойного персептрона. Каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления. Этап, на котором осуществляют разложение многослойного персептрона, включает в себя этап, на котором дублируют один или несколько вводов из вводов, которые совместно используются нейронами вычисления; (iii) для каждой сети однослойного персептрона из сетей однослойного персептрона: (a) вычисляют количество слоев для соответствующей эквивалентной пирамидоподобной подсети с использованием уравнения . является количеством вводов для соответствующего нейрона вычисления в многослойном персептроне; и (b) конструируют соответствующую эквивалентную пирамидоподобную подсеть для соответствующей сети однослойного персептрона с вводами, слоями и степенью соединения. Эквивалентная пирамидоподобная подсеть включает в себя один или несколько соответствующих аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации соответствующего нейрона вычисления, который соответствует соответствующей сети однослойного персептрона; и (iv) конструируют эквивалентную сеть с разреженными соединениями путем сцепления каждой эквивалентной пирамидоподобной подсети, включая сцепление ввода каждой эквивалентной пирамидоподобной подсети для сетей однослойного персептрона, чтобы сформировать входной вектор с вводами. Также, в таких случаях, этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы, на которых: для каждой сети однослойного персептрона из сетей однослойного персептрона: (i) устанавливают весовой вектор , причем iя строка матрицы весов, соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона, где является соответствующим слоем соответствующего нейрона вычисления в многослойном персептроне; и (ii) вычисляют весовой вектор для соединений соответствующей эквивалентной пирамидоподобной подсети путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0039] В некоторых вариантах осуществления, топология нейронной сети включает в себя Сверточную Нейронную Сеть (CNN) с вводами, слоями, причем каждый слой из слоев включает в себя соответствующий набор из нейронов вычисления и соответствующих матриц весов, которые включают в себя строку весовых коэффициентов для каждого нейрона вычисления из нейронов вычисления. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) осуществляют разложение CNN на сетей однослойного персептрона. Каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления. Этап, на котором осуществляют разложение CNN, включает в себя этап, на котором дублируют один или несколько вводов из вводов, которые совместно используются нейронами вычисления; (iii) для каждой сети однослойного персептрона из сетей однослойного персептрона: (a) вычисляют количество слоев для соответствующей эквивалентной пирамидоподобной подсети с использованием уравнения . является соответствующим слоем у соответствующего нейрона вычисления в CNN, а является количеством вводов для соответствующего нейрона вычисления в CNN; и (b) конструируют соответствующую эквивалентную пирамидоподобную подсеть для соответствующей сети однослойного персептрона с вводами, слоями и степенью соединения. Эквивалентная пирамидоподобная подсеть включает в себя один или несколько соответствующих аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации соответствующего нейрона вычисления, который соответствует соответствующей сети однослойного персептрона; и (iv) конструируют эквивалентную сеть с разреженными соединениями путем сцепления каждой эквивалентной пирамидоподобной подсети, включая сцепление ввода каждой эквивалентной пирамидоподобной подсети для сетей однослойного персептрона, чтобы сформировать входной вектор с вводами. Также, в таких случаях, этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы, на которых, для каждой сети однослойного персептрона из сетей однослойного персептрона: (i) устанавливают весовой вектор , причем iя строка матрицы весов соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона, где является соответствующим слоем соответствующего нейрона вычисления в CNN; и (ii) вычисляют весовой вектор для соединений соответствующей эквивалентной пирамидоподобной подсети путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0040] В некоторых вариантах осуществления, топология нейронной сети включает в себя вводов, слой с нейронами, слой с нейронами и матрицу весов, где является набором действительных чисел, причем каждый нейрон слоя соединяется с каждым нейроном слоя , причем каждый нейрон слоя выполняет функцию активации так, что вывод слоя вычисляется с использованием уравнения для ввода . В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором выполняют трапециевидную трансформацию, которая включает в себя: (i) извлечение возможной степени входного соединения и возможной степени выходного соединения, в соответствии с одним или несколькими ограничениями соединения; (ii) в соответствии с определением того, что , конструирование трехслойной аналоговой сети, которая включает в себя слой с аналоговыми нейронами, выполняющими тождественную функцию активации, слой с аналоговыми нейронами, выполняющими тождественную функцию активации, и слой с аналоговыми нейронами, выполняющими функцию активации, так что каждый аналоговый нейрон в слое имеет выводов, каждый аналоговый нейрон в слое имеет не больше вводов и выводов, и каждый аналоговый нейрон в слое имеет выводов. Также, в таких случаях, этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этап, на котором формируют разреженные матрицы и весов путем решения матричного уравнения , которое включает в себя уравнений с переменными, так что общий вывод слоя вычисляется с использованием уравнения . Разреженная матрица весов представляет собой соединения между слоями и , а разреженная матрица весов представляет собой соединения между слоями и .

[0041] В некоторых вариантах осуществления, этап, на котором выполняют трапециевидную трансформацию, дополнительно включает в себя этапы, на которых: в соответствии с определением того, что : (i) дробят слой , чтобы получить подслой с нейронами и подслой с нейронами так, что ; (ii) для подслоя с нейронами, выполняют этапы конструирования и формирования; и (iii) для подслоя с нейронами, рекурсивно выполняют этапы дробления, конструирования и формирования.

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

[0043] В некоторых вариантах осуществления, топология нейронной сети включает в себя рекуррентную нейронную сеть (RNN), которая включает в себя (i) вычисление линейной комбинации для двух слоев с полными соединениями; (ii) поэлементное сложение; и (iii) вычисление нелинейной функции. В таких случаях, способ дополнительно включает в себя этап, на котором выполняют трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями для (i) двух слоев с полными соединениями и (ii) вычисления нелинейной функции.

[0044] В некоторых вариантах осуществления, топология нейронной сети включает в себя сеть долгой краткосрочной памяти (LSTM) или сеть управляемых рекуррентных блоков (GRU), которые включают в себя (i) вычисления линейной комбинации для множества слоев с полными соединениями, (ii) поэлементное сложение, (iii) произведение Адамара и (iv) множество вычислений нелинейной функции. В таких случаях, способ дополнительно включает в себя этап, на котором выполняют трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями для (i) множества слоев с полными соединениями и (ii) множества вычислений нелинейной функции.

[0045] В некоторых вариантах осуществления, топология нейронной сети включает в себя сверточную нейронную сеть (CNN), которая включает в себя (i) множество слоев с частичными соединениями и (ii) один или несколько слоев с полными соединениями. В таких случаях, способ дополнительно включает в себя этапы, на которых: (i) трансформируют множество слоев с частичными соединениями в эквивалентные слои с полными соединениями путем вставки отсутствующих соединений с нулевыми весовыми коэффициентами; и (ii) для каждой пары последовательных слоев из эквивалентных слоев с полными соединениями и одного или нескольких слоев с полными соединениями, итерационно выполняют трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями.

[0046] В некоторых вариантах осуществления, топология нейронной сети включает в себя вводов, выходных нейронов и матрицу весов, где является набором действительных чисел, причем каждый выходной нейрон выполняет функцию активации. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором выполняют трансформацию аппроксимации, который включает в себя этапы, на которых: (i) извлекают возможную степень входного соединения и возможную степень выходного соединения, в соответствии с одним или несколькими ограничениями соединения; (ii) выбирают параметр из набора ; (iii) в соответствии с определением того, что , конструируют пирамидальную нейронную сеть, которая формирует первые слоев эквивалентной сети с разреженными соединениями, так что пирамидальная нейронная сеть имеет нейронов в ее выходном слое. Каждый нейрон в пирамидальной нейронной сети выполняет тождественную функцию; и (iv) конструируют трапециевидную нейронную сеть с вводами и выводами. Каждый нейрон в последнем слое трапециевидной нейронной сети выполняет функцию активации, а все другие нейроны выполняют тождественную функцию. В таких случаях, этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы, на которых: (i) формируют весовые коэффициенты для пирамидальной нейронной сети, включая (a) установку весовых коэффициентов каждого нейрона i первого слоя пирамидальной нейронной сети в соответствии со следующим правилом: (a) . является ненулевой константой, а ; и (b) , для всех весовых коэффициентов j нейрона за исключением ; и (b) установку всех других весовых коэффициентов пирамидальной нейронной сети в 1; и (ii) формируют весовые коэффициенты для трапециевидной нейронной сети, включая (a) установку весовых коэффициентов каждого нейрона i первого слоя трапециевидной нейронной сети в соответствии с уравнением и (b) установку других весовых коэффициентов трапециевидной нейронной сети в 1.

[0047] В некоторых вариантах осуществления, топология нейронной сети включает в себя многослойный персептрон с вводами, слоями и нейронами вычисления в i-м слое, и матрицей весов для i-го слоя, где . В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: для каждого слоя из слоев многослойного персептрона: (i) конструируют соответствующую пирамидально-трапециевидную сеть PTNNXj путем выполнения трансформации аппроксимации до соответствующего однослойного персептрона, состоящего из вводов, выходных нейронов и матрицы весов; и (ii) конструируют эквивалентную сеть с разреженными соединениями путем укладки друг на друга каждой пирамидальной трапециевидной сети.

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

[0049] В некоторых вариантах осуществления, этап, на котором формируют матрицу сопротивлений для матрицы весов, включает в себя этапы, на которых: (i) получают предварительно определенный диапазон возможных значений сопротивления и выбирают первоначальное базовое значение сопротивления в рамках предварительно определенного диапазона; (ii) выбирают набор ограниченной длины значений сопротивления, в рамках предварительно определенного диапазона, который обеспечивает наиболее однородное распределение возможных весовых коэффициентов в рамках диапазона для всех комбинаций из в рамках набора ограниченной длины значений сопротивления; (iii) выбирают значение сопротивления, из набора ограниченной длины значений сопротивления, либо для каждого аналогового нейрона, или для каждого слоя эквивалентной аналоговой сети, на основе максимального весового коэффициента входящих соединений и смещения каждого нейрона, либо для каждого слоя эквивалентной аналоговой сети, так что является наиболее близким значением набора резисторов к ; и (iv) для каждого элемента матрицы весов, выбирают соответствующее первое значение сопротивления и соответствующее второе значение сопротивления, которые сводят к минимуму ошибку в соответствии с уравнением для всех возможных значений и в рамках предварительно определенного диапазона возможных значений сопротивления. является соответствующим элементом матрицы весов, а является предварительно определенным относительным значением допуска для сопротивлений.

[0050] В некоторых вариантах осуществления, предварительно определенный диапазон возможных значений сопротивления включает в себя сопротивления в соответствии с номинальным рядом E24 в диапазоне от 100кОм до 1МОм.

[0051] В некоторых вариантах осуществления, и выбираются независимо для каждого слоя эквивалентной аналоговой сети.

[0052] В некоторых вариантах осуществления, и выбираются независимо для каждого аналогового нейрона эквивалентной аналоговой сети.

[0053] В некоторых вариантах осуществления, первый один или несколько весовых коэффициентов матрицы весов и первый один или несколько вводов представляют собой одно или несколько соединений с первым операционным усилителем эквивалентной аналоговой сети. В таких случаях, способ дополнительно включает в себя этапы, на которых перед этапом, на котором формируют матрицу сопротивлений: (i) модифицируют первый один или несколько весовых коэффициентов на первое значение; и (ii) конфигурируют первый операционный усилитель, чтобы он умножал, на первое значение, линейную комбинацию первого одного или нескольких весовых коэффициентов и первого одного или нескольких вводов, перед выполнением функции активации.

[0054] В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: (i) получают предварительно определенный диапазон весовых коэффициентов; и (ii) обновляют матрицу весов в соответствии с предварительно определенным диапазоном весовых коэффициентов так, что эквивалентная аналоговая сеть создает вывод аналогичный обученной нейронной сети для одного и того же ввода.

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

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

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

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

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

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

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

[0062] В некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, дополнительно включает в себя этап, на котором удаляют один или несколько аналоговых нейронов эквивалентной аналоговой сети без каких-либо входных соединений.

[0063] В некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, включает в себя этапы, на которых: (i) ранжируют аналоговые нейроны эквивалентной аналоговой сети на основе обнаружения использования аналоговых нейронов при выполнении вычислений для одного или нескольких наборов данных; (ii) выбирают один или несколько аналоговых нейронов эквивалентной аналоговой сети на основе ранжирования; и (iii) удаляют один или несколько аналоговых нейронов из эквивалентной аналоговой сети.

[0064] В некоторых вариантах осуществления, этап, на котором обнаруживают использование аналогового нейрона, включает в себя этапы, на которых: (i) строят модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования; и (ii) измеряют распространение аналоговых сигналов путем использования модели, чтобы сформировать вычисления для одного или нескольких наборов данных.

[0065] В некоторых вариантах осуществления, этап, на котором обнаруживают использование аналогового нейрона, включает в себя этапы, на которых: (i) строят модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования; и (ii) измеряют выходные сигналы модели путем использования модели, чтобы сформировать вычисления для одного или нескольких наборов данных.

[0066] В некоторых вариантах осуществления, этап, на котором обнаруживают использование аналоговых нейронов, включает в себя этапы, на которых: (i) строят модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования; и (ii) измеряют мощность, потребляемую аналоговыми нейронами, путем использования модели, чтобы сформировать вычисления для одного или нескольких наборов данных.

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

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

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

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

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

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

[0073] В другом аспекте, предоставляется интегральная микросхема, в соответствии с некоторыми вариантами осуществления. Интегральная микросхема включает в себя аналоговую сеть аналоговых компонентов, изготовленную способом, который включает в себя этапы, на которых: (i) получают топологию нейронной сети и весовые коэффициенты обученной нейронной сети; (ii) трансформируют топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов, включающих в себя множество операционных усилителей и множество резисторов. Каждый операционный усилитель представляет собой соответствующий аналоговый нейрон, а каждый резистор представляет собой соответствующее соединение между соответствующим первым аналоговым нейроном и соответствующим вторым аналоговым нейроном; (iii) вычисляют матрицу весов для эквивалентной аналоговой сети на основе весовых коэффициентов обученной нейронной сети. Каждый элемент матрицы весов представляет собой соответствующее соединение; (iv) формируют матрицу сопротивлений для матрицы весов. Каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов; (v) формируют одну или несколько литографических масок для изготовления схемы, реализующей эквивалентную аналоговую сеть аналоговых компонентов на основе матрицы сопротивлений; и (vi) изготавливают схему на основе одной или нескольких литографических масок с использованием литографического процесса.

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

[0075] В некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя модуль дискретизации аналогового сигнала, выполненный с возможностью обработки 1-мерных или 2-мерных аналоговых вводов с частотой дискретизации на основе количества логических выводов интегральной микросхемы.

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

[0077] В некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя модуль обработки тактового сигнала, выполненный с возможностью обработки одного или нескольких кадров, полученных от CCD камеры.

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

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

[0080] В некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя один или несколько модулей обработки сигнала, выполненных с возможностью обработки 1-мерных или 2-мерных аналоговых сигналов, полученных от граничных приложений.

[0081] В некоторых вариантах осуществления, обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих сигналы массивов газовых датчиков в разных газовых смесях, для выборочной регистрации разных газов в газовой смеси, содержащей предварительно определенные объемы газов, которые должны быть обнаружены. В таких случаях, топология нейронной сети является 1-Мерной Глубокой Сверточной Нейронной сетью (1D-DCNN), разработанной для обнаружения 3 бинарных газовых компонентов на основе измерений посредством 16 газовых датчиков, и включает в себя 16 1-D сверточных блоков по датчикам, 3 совместно используемых или общих 1-D сверточных блоков и 3 плотных слоя. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) блоки задержки для создания задержки на любое количество временных шагов, (iii) лимит сигналов равный 5, (iv) 15 слоев, (v) приблизительно 100000 аналоговых нейронов и (vi) приблизительно 4900000 соединений.

[0082] В некоторых вариантах осуществления, обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих данные временного ряда термического старения для разных MOSFET, для предсказания оставшегося срока полезного использования (RUL) MOSFET устройства. В таких случаях, топология нейронной сети включает в себя 4 слоя LSTM с 64 нейронами в каждом слое, за которыми следуют два плотных слоя с 64 нейронами и 1 нейроном, соответственно. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 18 слоев, (iv) аналоговые нейроны в количестве от 3000 до 3200 единиц, и (v) соединения в количестве от 123000 до 124000 единиц.

[0083] В некоторых вариантах осуществления, обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих данные временного ряда, включающие в себя данные разряда и температуры во время непрерывного использования разных имеющихся в продаже Li-Ion батарей, для мониторинга исправного состояния (SOH) и состояния заряда (SOC) ионно-литиевых батарей для использования в системах управления батареями (BMS). В таких случаях, топология нейронной сети включает в себя входной слой, 2 слоя LSTM с 64 нейронами в каждом слое, за которыми следует плотный выходной слой с 2 нейронами для формирования значений SOC и SOH. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 9 слоев, (iv) аналоговые нейроны в количестве от 1200 до 1300 единиц, и (v) соединения в количестве от 51000 до 52000 единиц.

[0084] В некоторых вариантах осуществления, обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих данные временного ряда, включающие в себя данные разряда и данные температуры во время непрерывного использования разных имеющихся в продаже Li-Ion батарей, для мониторинга исправного состояния (SOH) ионно-литиевых батарей для использования в системах управления батареями (BMS). В таких случаях, топология нейронной сети включает в себя входной слой с 18 нейронами, простой рекуррентный слой с 100 нейронами и плотный слой с 1 нейроном. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 4 слоя, (iv) аналоговые нейроны в количестве от 200 до 300 единиц, и (v) соединения в количестве от 2200 до 2400 единиц.

[0085] В некоторых вариантах осуществления, обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих речевые команды, для идентификации голосовых команд. В таких случаях, топология нейронной сети является слоем Разделяемой по Глубинам Сверточной Нейронной Сети (DS-CNN) с 1 нейроном. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 13 слоев, (iv) приблизительно 72000 аналоговых нейронов, и (v) приблизительно 2.6 миллиона соединений.

[0086] В некоторых вариантах осуществления, обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих данные фотоплетизмографии (PPG), данные акселерометра, данные температуры и данные сигнала электрокожного ответа для разных людей, выполняющих различные физические упражнения в течение предварительно определенного периода времени, и опорные данные частоты сердцебиения, полученные от датчика ECG, для определения частоты пульса во время физических упражнений на основе данных датчика PPG и данных 3-осевого акселерометра. В таких случаях, топология нейронной сети включает в себя два слоя Conv1D, каждый с 16 фильтрами и размером ядра 20, выполняющим свертку временного ряда, два слоя LSTM, каждый с 16 нейронами, и два плотных слоя с 16 нейронами и 1 нейроном, соответственно. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) блоки задержки для создания любого количества временных шагов, (ii) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (iii) лимит сигналов равный 5, (iv) 16 слоев, (v) аналоговые нейроны в количестве от 700 до 800 единиц, и (vi) соединения в количестве от 12000 до 12500 единиц.

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

[0088] В некоторых вариантах осуществления, обученная нейронная сеть обучается выполнять распознавание типа активности человека, на основе данных инерциального датчика. В таких случаях, топология нейронной сети включает в себя три сверточные сети по каналам, причем каждая со сверточным слоем из 12 фильтров и размером ядра 64, и за каждой следует слой максимального пула, и два общих плотных слоя из 1024 нейронов и N нейронов, соответственно, где N является количеством классов. В таких случаях, эквивалентная аналоговая сеть включает в себя: (i) блоки задержки для создания любого количества временных шагов, (ii) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (iii) выходной слой из 10 аналоговых нейронов, (iv) лимит сигналов равный 5, (v) 10 слоев, (vi) аналоговые нейроны в количестве от 1200 до 1300 единиц, и (vi) соединения в количестве от 20000 до 21000 единиц.

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

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

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

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

[0093] В некоторых вариантах осуществления, одну или несколько топологий подсети из множества топологий подсети не удается сравнить с какой-либо топологией сети из множества топологий сети. В таких случаях, способ дополнительно включает в себя этапы, на которых: (i) трансформируют каждую топологию подсети из одной или нескольких топологий подсети в соответствующую эквивалентную аналоговую подсеть аналоговых компонентов; и (ii) формируют одну или несколько литографических масок для изготовления одной или нескольких схем, причем каждая схема из одной или нескольких схем реализует соответствующую эквивалентную аналоговую подсеть аналоговых компонентов.

[0094] В некоторых вариантах осуществления, этап, на котором трансформируют соответствующую топологию сети в соответствующую эквивалентную аналоговую сеть, включает в себя этапы, на которых: (i) осуществляют разложение соответствующей топологии сети на множество топологий подсети; (ii) трансформируют каждую топологию подсети в соответствующую эквивалентную аналоговую подсеть аналоговых компонентов; и (iii) составляют каждую эквивалентную аналоговую подсеть, чтобы получить соответствующую эквивалентную аналоговую сеть.

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

[0096] В некоторых вариантах осуществления, каждая схема получается посредством: (i) формирования схематики для соответствующей эквивалентной аналоговой сети аналоговых компонентов; и (ii) формирования соответствующей конструкции компоновки схемы на основе схематики.

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

[0098] В другом аспекте, предоставляется способ для оптимизации эффективности использования энергии аналоговых нейроморфных схем, в соответствии с некоторыми вариантами осуществления. Способ включает в себя этап, на котором получают интегральную микросхему, реализующую аналоговую сеть аналоговых компонентов, включающую в себя множество операционных усилителей и множество резисторов. Аналоговая сеть представляет собой обученную нейронную сеть, причем каждый операционный усилитель представляет собой соответствующий аналоговый нейрон, а каждый резистор представляет собой соответствующее соединение между соответствующим первым аналоговым нейроном и соответствующим вторым аналоговым нейроном. Способ также включает в себя этап, на котором формируют логические выводы с использованием интегральной микросхемы для множества тестовых вводов, включая одновременный перенос сигналов от одного слоя к последующему слою аналоговой сети. Способ также включает в себя этапы, на которых, в то время, как формируют логические выводы с использованием интегральной микросхемы: (i) определяют, сбалансирован ли уровень вывода сигнала множества операционных усилителей; и (ii) в соответствии с определением того, что уровень вывода сигнала является сбалансированным: (a) определяют активный набор аналоговых нейронов аналоговой сети, влияющий на формирование сигнала для распространения сигналов; и (b) выключают питание для одного или нескольких аналоговых нейронов аналоговой сети, отличных от активного набора аналоговых нейронов, на предварительно определенный период времени.

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

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

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

[0102] В некоторых вариантах осуществления, предварительно определенный период времени вычисляется на основе моделирования распространения сигналов через аналоговую сеть, с учетом задержек сигнала.

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

[0104] В некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором выключают питание для одного или нескольких аналоговых нейронов аналоговой сети после предварительно определенного периода времени.

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

[0106] В некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором повторяют выключение на предварительно определенный период времени и включение активного набора аналоговых нейронов на предварительно определенный период времени в то время, как формируют логические выводы.

[0107] В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: (i) в соответствии с определением того, что уровень вывода сигнала является сбалансированным, для каждого цикла логического вывода: (a) в течение первого интервала времени, определяют первый слой аналоговых нейронов аналоговой сети, влияющий на формирование сигнала для распространения сигналов; и (b) выключают питание для первого одного или нескольких аналоговых нейронов аналоговой сети, до первого слоя, на предварительно определенный период времени; и (ii) в течение второго интервала времени, следующего за первым интервалом времени, выключают питание для второго одного или нескольких аналоговых нейронов, включая первый слой аналоговых нейронов и первый один или несколько аналоговых нейронов аналоговой сети, на предварительно определенный период.

[0108] В некоторых вариантах осуществления, один или несколько аналоговых нейронов состоят из аналоговых нейронов первого одного или нескольких слоев аналоговой сети, и активный набор аналоговых нейронов состоит из аналоговых нейронов второго слоя аналоговой сети, и второй слой аналоговой сети отличается от слоев первого одного или нескольких слоев.

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

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

[0111] Таким образом, раскрываются способы, системы и устройства, которые используются для аппаратной реализации обученных нейронных сетей.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

[0113] Фигура 1A является структурной схемой системы для аппаратной реализации обученных нейронных сетей с использованием аналоговых компонентов, в соответствии с некоторыми вариантами осуществления. Фигура 1B является структурной схемой альтернативного представления системы на Фигуре 1A для аппаратной реализации обученных нейронных сетей с использованием аналоговых компонентов, в соответствии с некоторыми вариантами осуществления. Фигура 1C является структурной схемой другого представления системы на Фигуре 1A для аппаратной реализации обученных нейронных сетей с использованием аналоговых компонентов, в соответствии с некоторыми вариантами осуществления.

[0114] Фигура 2A является схемой системы вычислительного устройства в соответствии с некоторыми вариантами осуществления. Фигура 2B показывает необязательные модули вычислительного устройства, в соответствии с некоторыми вариантами осуществления.

[0115] Фигура 3A показывает примерный процесс для формирования схематических моделей аналоговых сетей, соответствующих обученным нейронным сетям, в соответствии с некоторыми вариантами осуществления. Фигура 3B показывает примерный процесс ручного создания прототипа, который используется для формирования целевой модели чипа, в соответствии с некоторыми вариантами осуществления.

[0116] Фигуры 4A, 4B и 4C показывают примеры нейронных сетей, которые трансформируются в математически эквивалентные аналоговые сети, в соответствии с некоторыми вариантами осуществления.

[0117] Фигура 5 показывает пример математической модели для нейрона, в соответствии с некоторыми вариантами осуществления.

[0118] Фигуры 6A-6C иллюстрируют примерный процесс для аналоговой аппаратной реализации нейронной сети для вычисления XOR входных значений, в соответствии с некоторыми вариантами осуществления.

[0119] Фигура 7 показывает пример персептрона, в соответствии с некоторыми вариантами осуществления.

[0120] Фигура 8 показывает пример Пирамидальной Нейронной Сети, в соответствии с некоторыми вариантами осуществления.

[0121] Фигура 9 показывает пример Пирамидальной Одиночной Нейронной Сети, в соответствии с некоторыми вариантами осуществления.

[0122] Фигура 10 показывает пример трансформированной нейронной сети, в соответствии с некоторыми вариантами осуществления.

[0123] Фигуры 11A-11C показывают применение алгоритма T-трансформации для однослойной нейронной сети, в соответствии с некоторыми вариантами осуществления.

[0124] Фигура 12 показывает пример Рекуррентной Нейронной Сети (RNN), в соответствии с некоторыми вариантами осуществления.

[0125] Фигура 13A является структурной схемой нейрона LSTM, в соответствии с некоторыми вариантами осуществления.

[0126] Фигура 13B показывает блоки задержки, в соответствии с некоторыми вариантами осуществления.

[0127] Фигура 13C является схемой нейрона для нейрона LSTM, в соответствии с некоторыми вариантами осуществления.

[0128] Фигура 14A является структурной схемой нейрона GRU, в соответствии с некоторыми вариантами осуществления.

[0129] Фигура 14B является схемой нейрона для нейрона GRU, в соответствии с некоторыми вариантами осуществления.

[0130] Фигуры 15A и 15B являются схемами нейрона вариантов одного фильтра Conv1D, в соответствии с некоторыми вариантами осуществления.

[0131] Фигура 16 показывает примерную архитектуру трансформированной нейронной сети, в соответствии с некоторыми вариантами осуществления.

[0132] Фигуры 17A-17C предоставляют примерные графики, иллюстрирующие зависимость между ошибкой вывода и ошибкой классификации или ошибкой весового коэффициента, в соответствии с некоторыми вариантами осуществления.

[0133] Фигура 18 предоставляет примерную схему модели нейрона, которая используется для квантования резисторов, в соответствии с некоторыми вариантами осуществления.

[0134] Фигура 19A показывает принципиальную схему операционного усилителя, выполненного на CMOS, в соответствии с некоторыми вариантами осуществления. Фигура 19B показывает таблицу описания для примерной схемы, показанной на Фигуре 19A, в соответствии с некоторыми вариантами осуществления.

[0135] Фигуры 20A-20E показывают принципиальную схему блока LSTM, в соответствии с некоторыми вариантами осуществления. Фигура 20F показывает таблицу описания для примерной схемы, показанной на Фигурах 20A-20D, в соответствии с некоторыми вариантами осуществления.

[0136] Фигуры 21A-21I показывают принципиальную схему блока умножителя, в соответствии с некоторыми вариантами осуществления. Фигура 21J показывает таблицу описания для схемы, показанной на Фигурах 21A-21I, в соответствии с некоторыми вариантами осуществления.

[0137] Фигура 22A показывает принципиальную схему сигмовидного нейрона, в соответствии с некоторыми вариантами осуществления. Фигура 22B показывает таблицу описания для принципиальной схемы, показанной на Фигуре 22A, в соответствии с некоторыми вариантами осуществления.

[0138] Фигура 23A показывает принципиальную схему блока функции гиперболического тангенса, в соответствии с некоторыми вариантами осуществления. Фигура 23B показывает таблицу описания для принципиальной схемы, показанной на Фигуре 23A, в соответствии с некоторыми вариантами осуществления.

[0139] Фигуры 24A-24C показывают принципиальную схему операционного усилителя CMOS одного нейрона, в соответствии с некоторыми вариантами осуществления. Фигура 24D показывает таблицу описания для принципиальной схемы, показанной на Фигурах 24A-24C, в соответствии с некоторыми вариантами осуществления.

[0140] Фигуры 25A-25D показывают принципиальную схему варианта операционных усилителей CMOS одного нейрона в соответствии с некоторыми вариантами осуществления. Фигура 25E показывает таблицу описания для принципиальной схемы, показанной на Фигурах 25A-25D, в соответствии с некоторыми вариантами осуществления.

[0141] Фигуры 26A-26K, показывают примерную гистограмму распределения весового коэффициента, в соответствии с некоторыми вариантами осуществления.

[0142] Фигуры 27A-27J показывают блок-схему способа для аппаратной реализации нейронных сетей, в соответствии с некоторыми вариантами осуществления.

[0143] Фигуры 28A-28S показывают блок-схему способа для аппаратной реализации нейронных сетей в соответствии с конструктивными ограничениями аппаратного обеспечения, в соответствии с некоторыми вариантами осуществления.

[0144] Фигуры 29A-29F показывают блок-схему способа для аппаратной реализации нейронных сетей в соответствии с конструктивными ограничениями аппаратного обеспечения, в соответствии с некоторыми вариантами осуществления.

[0145] Фигуры 30A-30M показывают блок-схему способа для аппаратной реализации нейронных сетей в соответствии с конструктивными ограничениями аппаратного обеспечения, в соответствии с некоторыми вариантами осуществления.

[0146] Фигуры 31A-31Q показывают блок-схему способа для изготовления интегральной микросхемы, которая включает в себя аналоговую сеть аналоговых компонентов, в соответствии с некоторыми вариантами осуществления.

[0147] Фигуры 32A-32E показывают блок-схему способа для формирования библиотек для аппаратной реализации нейронных сетей, в соответствии с некоторыми вариантами осуществления.

[0148] Фигуры 33A-33K показывают блок-схему способа для оптимизации эффективности использования энергии аналоговых нейроморфных схем (которые моделируют обученные нейронные сети), в соответствии с некоторыми вариантами осуществления.

[0149] Фигура 34 показывает таблицу, описывающую архитектуру MobileNet v1, в соответствии с некоторыми вариантами осуществления.

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

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

[0151] Фиг. 1A является структурной схемой системы 100 для аппаратной реализации обученных нейронных сетей с использованием аналоговых компонентов, в соответствии с некоторыми вариантами осуществления. Система включает в себя трансформацию (126) обученных нейронных сетей 102 в аналоговые нейронные сети 104. В некоторых вариантах осуществления, ограничения 184 аналоговой интегральной микросхемы ограничивают (146) трансформацию (126), чтобы сформировать аналоговые нейронные сети 104. Впоследствии, система извлекает (вычисляет или формирует) весовые коэффициенты 106 для аналоговых нейронных сетей 104 посредством процесса, который иногда называется квантованием (128) весовых коэффициентов. В некоторых вариантах осуществления, аналоговая нейронная сеть включает в себя множество аналоговых нейронов, причем каждый аналоговый нейрон представляется аналоговым компонентом, таким как операционный усилитель, и каждый аналоговый нейрон соединяется с другим аналоговым нейроном через соединение. В некоторых вариантах осуществления, соединения представляются с использованием резисторов, которые уменьшают течение тока между двумя аналоговыми нейронами. В некоторых вариантах осуществления, система трансформирует (148) весовые коэффициенты 106 в значения 112 сопротивления для соединений. Система впоследствии формирует (130) одну или несколько схематических моделей 108 для реализации аналоговых нейронных сетей 104 на основе весовых коэффициентов 106. В некоторых вариантах осуществления, система оптимизирует значения 112 сопротивления (или весовые коэффициенты 106), чтобы сформировать оптимизированные аналоговые нейронные сети 114, которые в дальнейшем используются, чтобы формировать (150) схематические модели 108. В некоторых вариантах осуществления, система формирует (132) литографические маски 110 для соединений и/или формирует (136) литографические маски 120 для аналоговых нейронов. В некоторых вариантах осуществления, система изготавливает (134 и/или 138) аналоговые интегральные микросхемы 118, которые реализуют аналоговые нейронные сети 104. В некоторых вариантах осуществления, система формирует (152) библиотеки литографических масок 116 на основе литографических масок для соединений 110 и/или литографических масок 120 для аналоговых нейронов. В некоторых вариантах осуществления, система использует (154) библиотеки литографических масок 116, чтобы изготавливать аналоговые интегральные микросхемы 118. В некоторых вариантах осуществления, когда обученные нейронные сети 142 переобучаются (142), система повторно формирует (или повторно вычисляет) (144) значения 112 сопротивления (и/или весовые коэффициенты 106), схематическую модель 108 и/или литографические маски для соединений 110. В некоторых вариантах осуществления, система повторно использует литографические маски 120 для аналоговых нейронов 120. Другими словами, в некоторых вариантах осуществления, повторно формируются только весовые коэффициенты 106 (или значения 112 сопротивления, соответствующие измененным весовым коэффициентам), и/или литографические маски для соединений 110. Поскольку повторно формируются только соединения, весовые коэффициенты, схематическая модель и/или соответствующие литографические маски для соединений, как указано пунктирной линией 156, то процесс для (или путь к) изготовления аналоговых интегральных микросхем для обученных нейронных сетей в основном упрощается и время вывода на рынок применительно к повторной разработке аппаратного обеспечения для нейронных сетей уменьшается в сравнении с обычными методиками для аппаратной реализации нейронных сетей.

[0152] Фигура 1B является структурной схемой альтернативного представления системы 100 для аппаратной реализации обученных нейронных сетей с использованием аналоговых компонентов, в соответствии с некоторыми вариантами осуществления. Система включает в себя обучение (156) нейронных сетей в программном обеспечении, определение весовых коэффициентов соединений, формирование (158) электрической схемы, эквивалентной нейронной сети, вычисление (160) значений резистора, соответствующих весовым коэффициентам каждого соединения, и впоследствии формирование (162) литографической маски со значениями резистора.

[0153] Фигура 1C является структурной схемой другого представления системы 100 для аппаратной реализации обученных нейронных сетей с использованием аналоговых компонентов, в соответствии с некоторыми вариантами осуществления. Система распространяется в качестве набора 180 средств для разработки программного обеспечения (SDK), в соответствии с некоторыми вариантами осуществления. Пользователь разрабатывает и обучает (164) нейронную сеть и вводит обученную нейронную сетку 166 в SDK 180. SDK оценивает (168) сложность обученной нейронной сетки 166. Если сложность обученной нейронной сетки может быть уменьшена (например, некоторые соединения и/или нейроны могут быть удалены, некоторые слои могут быть сокращены или плотность нейронов может быть изменена), то SDK 180 осуществляет прореживание (178) обученной нейронной сетки и переобучает (182) нейронную сетку, чтобы получить обновленную обученную нейронную сетку 166. Как только сложность обученной нейронной сетки уменьшена, SDK 180 трансформирует (170) обученную нейронную сетку 166 в разреженную сеть аналоговых компонентов (например, пирамидальную или трапециевидную сеть). SDK 180 также формирует модель 172 схемы аналоговой сети. В некоторых вариантах осуществления, SDK оценивает (176) отклонение в выводе, который формируется моделью 172 схемы, по отношению к обученной нейронной сети для одного и того же ввода, с использованием программного моделирования. Если оцениваемая ошибка превышает пороговую ошибку (например, значение, установленное пользователем), то SDK 180 запрашивает у пользователя переконфигурировать, повторно разработать и/или переобучить нейронную сеть. В некоторых вариантах осуществления, несмотря на то, что не показано, SDK автоматически реконфигурирует обученную нейронную сетку 166 так, чтобы уменьшить оцениваемую ошибку. Данный процесс итерационно выполняется несколько раз до тех пор, пока ошибка не уменьшается ниже пороговой ошибки. На Фигуре 1C, пунктирная линия от блока 176 («Оценка ошибки, вызванной в схеме») к блоку 164 («Разработка и обучение нейронной сети») указывает петлю обратной связи. Например, если прореженная сеть не показывает требуемую точность, то некоторые варианты осуществления прореживают сети по-другому до тех пор, пока точность не будет превышать предварительно определенную пороговую величину (например, точность в 98%) для заданного приложения. В некоторых вариантах осуществления, данный процесс включает в себя повторное вычисление весовых коэффициентов, поскольку прореживание включает в себя переобучение всей сети.

[0154] В некоторых вариантах осуществления, компоненты системы 100, описанные выше, реализуются в одном или нескольких вычислительных устройствах или серверных системах в качестве вычислительных модулей. Фигура 2A является схемой системы вычислительного устройства 200 в соответствии с некоторыми вариантами осуществления. Для целей данного документа, понятие «вычислительное устройство» включает в себя как персональные устройства 102, так и серверы. Вычислительное устройство 200, как правило, включает в себя: один или несколько блоков обработки/ядер 202 (CPU) для исполнения модулей, программ и/или инструкций, которые хранятся в памяти 214, и тем самым выполняя операции обработки; одну или несколько сетей, или других интерфейсов 204 связи; память 214; и одну или несколько шин 212 связи для взаимного соединения этих компонентов. Шины 212 связи могут включать в себя схему, которая взаимно соединяет и управляет связью между компонентами системы. Вычислительное устройство 200 может включать в себя интерфейс 206 пользователя, содержащий дисплейное устройство 208 и один или несколько механизмов, или устройств 210 ввода. В некоторых вариантах осуществления, механизм/устройство 210 ввода включает в себя клавиатуру; в некоторых вариантах осуществления, механизм/устройство ввода включает в себя «программную» клавиатуру, которая отображается по требованию на дисплейном устройстве 208, позволяя пользователю «нажимать клавиши», которые появляются на дисплее 208. В некоторых вариантах осуществления, дисплей 208 и механизм/устройство 210 ввода выполнены в виде дисплея с сенсорным экраном (также называемого чувствительным к касанию дисплеем). В некоторых вариантах осуществления, память 214 включает в себя высокоскоростную память с произвольным доступом, такую как DRAM, SRAM, DDR RAM или другие твердотельные устройства памяти с произвольным доступом. В некоторых вариантах осуществления, память 214 включает в себя энергонезависимую память, такую как одно или несколько запоминающих устройств на магнитном диске, запоминающих устройств на оптическом диске, устройств флэш-памяти или других энергонезависимых твердотельных запоминающих устройств. В некоторых вариантах осуществления, память 214 включает в себя одно или несколько запоминающих устройств, расположенных удаленно от CPU 202. Память 214, или в качестве альтернативы энергонезависимое устройство(а) памяти в памяти 214, содержит машиночитаемый запоминающий носитель информации. В некоторых вариантах осуществления, память 214 или машиночитаемый запоминающий носитель информации памяти 214 хранит следующие программы, модули и структуры данных или их подмножество:

- операционную систему 216, которая включает в себя процедуры для обработки базовых услуг системы и для выполнения аппаратно-зависимых задач;

- модуль 218 связи, который используется для соединения вычислительного устройства 200 с другими компьютерами и устройствами через один или несколько интерфейсов 204 сети связи (проводных или беспроводных) и одну или несколько сетей связи, таких как Интернет, другие глобальные сети, локальные сети, городские сети и т.п.;

- обученные нейронные сети 220, которые включают в себя весовые коэффициенты 222 и топологии 224 нейронной сети. Примеры входных нейронных сетей описываются ниже при обращении к Фигурам 4A-4C, Фигуре 12, Фигуре 13A и 14A, в соответствии с некоторыми вариантами осуществления;

- модуль 226 трансформации нейронной сети, который включает в себя трансформированные аналоговые нейронные сети 228, математические формулировки 230, базовые блоки 232 функции, аналоговые модели 234 (иногда называемые модулями нейрона) и/или конструктивные ограничения 236 аналоговой интегральной микросхемы (IC). Примерные операции модуля 226 трансформации нейронной сети описываются ниже при обращении по меньшей мере к Фигурам 5, 6A-6C, 7, 8, 9, 10 и 11A-11C, и блок-схемам, показанным на Фигурах 27A-27J и Фигурах 28A-28S; и/или

- модуль 238 вычисления матрицы весов (иногда называемого квантованием весовых коэффициентов), который включает в себя весовые коэффициенты 272 трансформированных сетей, и, необязательно, включает в себя модуль 240 вычисления сопротивления, значения 242 сопротивления. Примерные операции модуля 238 вычисления матрицы весов и/или квантования весовых коэффициентов описываются при обращении по меньшей мере к Фигурам 17A-17C, Фигуре 18 и Фигурам 29A-29F, в соответствии с некоторыми вариантами осуществления.

[0155] Некоторые варианты осуществления включают в себя один или несколько необязательных модулей 244, как показано на Фигуре 2B. Некоторые варианты осуществления включают в себя модуль 246 оптимизации аналоговой нейронной сети. Примеры оптимизации аналоговой нейронной сети описываются ниже при обращении к Фигурам 30A-30M, в соответствии с некоторыми вариантами осуществления.

[0156] Некоторые варианты осуществления включают в себя модуль 248 формирования литографической маски, который дополнительно включает в себя литографические маски 250 для сопротивлений (соответствующих соединениям) и/или литографические маски для аналоговых компонентов (например, операционных усилителей, умножителей, блоков задержки и т.д.) отличных от сопротивлений (или соединений). В некоторых вариантах осуществления, литографические маски формируются на основе компоновки конструкции чипа, которая следует за разработкой чипа, с использованием пакетов программного обеспечения Cadence, Synopsys или Mentor Graphics. Некоторые варианты осуществления используют комплект для разработки от завода по производству кремниевых пластин (иногда называемого фабрикой). Литографические маски предназначены для использования на этой конкретной фабрике, которая предоставляет комплект для разработки (например, 65нм комплект для разработки TSMC). Формируемые файлы литографической маски, используются для изготовления чипа на фабрике. В некоторых вариантах осуществления, конструкция чипа на основе программных пакетов Cadence, Mentor Graphics или Synopsys формируется полуавтоматически из программных пакетов SPICE или Fast SPICE (Mentor Graphics). В некоторых вариантах осуществления, пользователь с навыками разработки чипов проводит преобразование из схемы SPICE или Fast SPICE в конструкцию чипа в Cadence, Mentor Graphics или Synopsys. Некоторые варианты осуществления объединяют конструктивные блоки Cadence для одной единицы нейрона, создавая правильные взаимные соединения между блоками.

[0157] Некоторые варианты осуществления включают в себя модуль 254 формирования библиотеки, который дополнительно включает в себя библиотеки литографических масок 256. Примеры формирования библиотеки описываются ниже при обращении к Фигурам 32A-32E, в соответствии с некоторыми вариантами осуществления.

[0158] Некоторые варианты осуществления включают в себя модуль 258 изготовления Интегральной Микросхемы (IC), который дополнительно включает в себя Аналого-Цифровое Преобразование (ADC), Цифро-Аналоговое Преобразование (DAC) или аналогичные другие интерфейсы 260 и/или изготовленные IC или модели 262. Примерные интегральные микросхемы и/или связанные модули описываются ниже при обращении к Фигурам 31A-31Q, в соответствии с некоторыми вариантами осуществления.

[0159] Некоторые варианты осуществления включают в себя модуль 264 оптимизации эффективности использования энергии, который дополнительно включает в себя модуль 266 логического вывода, модуль 268 мониторинга сигнала и/или модуль 270 оптимизации питания. Примеры оптимизация эффективности использования энергии описываются ниже при обращении к Фигурам 33A-33K, в соответствии с некоторыми вариантами осуществления.

[0160] Каждый из выше идентифицированных исполняемых модулей, приложений или наборов процедур может быть сохранен в одном или нескольких из ранее упомянутых устройств памяти, и соответствует набору инструкций для выполнения функции, описанной выше. Идентифицированные выше модули или программы (т.е. наборы инструкций) не обязательно должны быть реализованы в качестве отдельных программ программного обеспечения, процедур или модулей, и таким образом различные подмножества этих модулей могут быть объединены или иным образом повторно скомпонованы в различных вариантах осуществления. В некоторых вариантах осуществления, память 214 хранит подмножество модулей и структур данных, идентифицированных выше. Кроме того, в некоторых вариантах осуществления, память 214 хранит дополнительные модули или структуры данных, не описанные выше.

[0161] Несмотря на то, что Фигура 2A показывает вычислительное устройство 200, Фигура 2A предназначена больше в качестве функционального описания различных признаков, которые могут присутствовать, а не структурной схемы вариантов осуществления, описанных в данном документе. На практике, и как очевидно специалистам в соответствующей области техники, элементы, показанные отдельно, могут быть объединены, а некоторые элементы могут быть разделены.

Примерный Процесс Формирования Схематических Моделей Аналоговых Сетей

[0162] Фигура 3A показывает примерный процесс 300 для формирования схематических моделей аналоговых сетей, соответствующих обученным нейронным сетям, в соответствии с некоторыми вариантами осуществления. Как показано на Фигуре 3A, обученная нейронная сеть 302 (например, MobileNet) преобразуется (322) в целевую или эквивалентную аналоговую сеть 304 (с использованием процесса, который иногда называется T-трансформацией). Целевая нейронная сеть 304 (иногда называемая T-сетью) экспортируется (324) в SPICE (в качестве модели 306 SPICE) с использованием модели одиночного нейрона (SNM), которая экспортируется (326) из SPICE в CADENCE, и полных конструкций на чипе с использованием модели 308 CADENCE. Осуществляется перекрестная проверка модели 308 CADENCE по отношению к первоначальной нейронной сети применительно к одному или нескольких вводам проверки действительности.

[0163] В описании выше и ниже, математический нейрон является математической функцией, которая принимает один или несколько взвешенных вводов и создает скалярный вывод. В некоторых вариантах осуществления, математический нейрон может иметь память (например, долгая краткосрочной памяти (LSTM), рекуррентный нейрон). Тривиальный нейрон является математическим нейроном, который выполняет функцию, представляющую собой ‘идеальный’ математический нейрон, , где f(x) является функцией активации. SNM является схематической моделью с аналоговыми компонентами (например, операционным усилителем, резисторами R1, …, Rn, и другими компонентами), представляющими собой конкретный тип математического нейрона (например, тривиальный нейрон) в схематической форме. Выходное напряжение SNM представляется соответствующей формулой, которая зависит от K входных напряжений и значений компонента SNM . В соответствии с некоторыми вариантами осуществления, при правильно выбранных значениях компонента, формула SNM эквивалентна формуле математического нейрона, с требуемым набором весовых коэффициентов. В некоторых вариантах осуществления, набор весовых коэффициентов полностью определяется резисторами, которые используются в SNM. Целевая (аналоговая) нейронная сеть 304 (иногда называемая T-сетью) является набором математических нейронов, которые имеют определенное представление SNM, и взвешенных соединений между ними, формирующих нейронную сеть. T-сеть соблюдает некоторые ограничения, такие как входящий лимит (максимальный лимит входящих соединений для любого нейрона в T-сети), исходящий лимит (максимальный лимит исходящих соединений для любого нейрона в T-сети) и диапазон сигнала (например, все сигналы должны находиться внутри предопределенного диапазона сигнала). T-трансформация (322) является процессом для преобразования некоторой желаемой нейронной сети, такой как MobiNet, в соответствующую T-сеть. Модель 306 SPICE является моделью Нейронной Сети SPICE для T-сети 304, где каждый математический нейрон замещается соответствующей одной или несколькими SNM. Модель 310 NN Cadence является моделью Cadence для T-сети 304, где каждый математический нейрон замещается соответствующей одной или несколькими SNM. Также, как описано в данном документе, две сети L и M обладают математической эквивалентностью, если для всех выводов нейрона этих сетей , где является относительно небольшим (например, между 0.1-1% рабочего диапазона напряжений). Также, две сети L и M обладают функциональной эквивалентностью, если для заданного входного набора данных проверки действительность результаты классификации являются большей частью одними и теми же, т.е. , где является относительно небольшим.

[0164] Фигура 3B показывает примерный процесс ручного создания прототипа, который используется для формирования целевой модели 320 чипа на основе модели SNM в Cadence 314, в соответствии с некоторыми вариантами осуществления. Обратите внимание, что несмотря на то, что нижеследующее описание использует Cadence, альтернативные инструменты от Mentor Graphic design или Synopsys (например, комплект разработки Synopsys) могут быть использованы вместо инструментов Cadence, в соответствии с некоторыми вариантами осуществления. Процесс включает в себя выбор ограничений SNM, включая входящие и исходящие лимиты и ограничение сигналов, выбор аналоговых компонентов (например, резисторов, включая конкретную технологию резисторной сборки) для соединений между нейронами, и разработку модели 314 SNM Cadence. Прототип модели 316 SNM (например, прототип PCB) разрабатывается (330) на основе модели SNM в Cadence 314. Прототип модели 316 SNM сравнивается с моделью SPICE в отношении эквивалентности. В некоторых вариантах осуществления, нейронная сеть выбирается для прототипа на чипе, когда нейронная сеть удовлетворяет требования эквивалентности. Так как нейронная сеть является небольшой по размеру, то T-трансформация может быть проверена вручную в отношении эквивалентности. Впоследствии, модель 318 SNM на чипе формируется (332) на основе прототипа 316 модели SNM. Модель SNM на чипе оптимизируется, по возможности, в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления, плотность на чипе для модели SNM вычисляется перед формированием (334) целевой модели 320 чипа на основе модели 318 SNM на чипе, после окончательно отработки SNM. Во время процесса создания прототипа, специалист-практик может итерационно выполнять задачу выбора нейронной сети или применения и конкретной нейронной сети (например, нейронной сети с количеством нейронов порядка от 0.1 до 1.1 миллиона единиц), выполнения T-трансформации, построения модели нейронной сети Cadence, разработки интерфейса и/или целевой модели чипа.

Примерные Входные Нейронные Сети

[0165] Фигуры 4A, 4B и 4C показывают примеры обученных нейронных сетей (например, нейронных сетей 220), которые являются вводом в систему 100 и трансформируются в математически эквивалентные аналоговые сети, в соответствии с некоторыми вариантами осуществления. Фигура 4A показывает примерную нейронную сеть (иногда называемую искусственной нейронной сетью), которая составлена из искусственных нейронов, которые принимают ввод, объединяют ввод с использованием функции активации, и создают один или несколько выводов. Ввод включает в себя данные, такие как изображения, данные датчика и документы. Как правило, каждая нейронная сеть выполняет конкретную задачу, такую как распознавание объекта. Сети включают в себя соединения между нейронами, причем каждое соединение предоставляет вывод нейрона в качестве ввода для другого нейрона. После обучения, каждому соединению назначается соответствующий весовой коэффициент. Как показано на Фигуре 4A, нейроны, как правило, организованы в несколько слоев, причем каждый слой нейронов соединяется только с непосредственно предшествующим и следующим слоем нейронов. Входной слой 402 нейронов принимает внешний ввод (например, вводы X1, X2, …, Xn). За входным слоем 402 следует один или несколько скрытых слоев нейронов (например, слои 404 и 406), за которыми следует выходной слой 408, который создает выводы 410. Различные типы шаблонов соединения соединяют нейроны последовательных слоев, такие как шаблон с полными соединениями, который соединяет каждый нейрон в одном слое со всеми нейронами следующего слоя, или шаблон пула, который соединяет вывод группы нейронов в одном слое с единственным нейроном в следующем слое. В противоположность нейронной сети, показанной на Фигуре 4A, которая иногда называется сетью с прямой связью, нейронная сеть, показанная на Фигуре 4B, включает в себя одно или несколько соединений от нейронов в одном слое либо с другими нейронами в том же самом слое, либо с нейронами в предшествующем слое. Пример, показанный на Фигуре 4B, является примером рекуррентной нейронной сети, и включает в себя два нейрона из входного нейрона 412 (который осуществляет принятие ввода X1) и входного нейрона 414 (который осуществляет принятие ввода X2) во входном слое, за которым следуют два скрытых слоя. Первый скрытый слой включает в себя нейроны 416 и 418, которые являются полностью соединенными с нейронами во входном слое, и нейроны 420, 422 и 424 во втором скрытом слое. Вывод нейрона 420 во втором скрытом слое соединяется с нейроном 416 в первом скрытом слое, обеспечивая петлю обратной связи. Скрытый слой, включающий в себя нейроны 420, 422 и 424, является вводом для нейрона 426 в выходном слое, который создает вывод y.

[0166] Фигура 4C показывает пример сверточной нейронной сети (CNN), в соответствии с некоторыми вариантами осуществления. В противоположность нейронным сетям, показанным на Фигуре 4A и 4B, пример, показанный на Фигуре 4C, включает в себя другие типы слоев нейронной сети, которые включают в себя первую ступень слоев для изучения признаков, и вторую ступень слове для задач классификации, таких как распознавание объекта. Ступень изучения признаков включает в себя слой 430 свертки и Выпрямленной Линейной Единицы (ReLU), за которым следует слой 432 пула, за которым следует другой слой 434 свертки и ReLU, за которым, в свою очередь, следует другой слой 436 пула. Первый слой 430 извлекает признаки из ввода 428 (например, входного изображения или его участков), и выполняет операцию свертки над своим вводом, и одну или несколько нелинейных операций (например, ReLu, tanh или сигмоиды). Слой пула, такой как слой 432, уменьшает количество параметров, когда вводов много. Вывод слоя 436 пула сглаживается слоем 438 и вводится в нейронную сеть с полными соединениями с одним или несколькими слоями (например, слоями 440 и 442). Вывод нейронной сети с полными соединениями является вводом в слой 444 softmax, чтобы осуществить классификацию вывода слоя 442 сети с полными соединениями, чтобы создать один из множества разных выводов 446 (например, класс или тип объекта для входного изображения 428).

[0167] Некоторые варианты осуществления сохраняют компоновку или организацию входных нейронных сетей, включающие в себя количество нейронов в каждом слое, общее количество нейронов, операции или функции активации каждого нейрона, и/или соединения между нейронами, в памяти 214, в качестве топологии 224 нейронной сети.

[0168] Фигура 5 показывает пример математической модели 500 для нейрона, в соответствии с некоторыми вариантами осуществления. Математическая модель включает в себя ввод входящих сигналов 502, умноженный на синаптические весовые коэффициенты 504 и просуммированный суммированием 506 единиц. Результат суммирования 506 единиц является вводом для блока 506 нелинейного преобразования, чтобы создать выходной сигнал 510, в соответствии с некоторыми вариантами осуществления.

[0169] Фигуры 6A-6C иллюстрируют примерный процесс для аналоговой аппаратной реализации нейронной сети для вычисления XOR (классификация результатов XOR) входных значений, в соответствии с некоторыми вариантами осуществления. Фигура 6A показывает таблицу 600 возможных входных значений X1 и X2 по оси x и оси y, соответственно. Ожидаемые значения результата указаны пустым кругом (представляет значение 1) и заполненным или темным кругом (представляет значение 0) - это типичная проблема XOR с 2 входными сигналами и 2 классами. Только если любое, но не оба, из значений X1 и X2 является 1, ожидаемый результат является 1, и 0 в противном случае. Обучающий набор состоит из 4 возможных комбинаций входного сигнала (двоичные значения для вводов X1 и X2). Фигура 6B показывает нейронную сеть 602 на основе ReLU для решения классификации XOR на Фигуре 6A, в соответствии некоторыми вариантами осуществления. Нейроны не используют каких-либо значений смещения, а используют активацию ReLU. Вводы 604 и 606 (которые соответствуют X1 и X2, соответственно) вводятся в первый нейрон 608-2 ReLU. Вводы 604 и 606 также вводятся во второй нейрон 608-4 ReLU. Результаты двух нейронов 608-2 и 608-4 ReLU вводятся в третий нейрон 608-6, который выполняет линейное суммирование входных значений, чтобы создать выходное значение 510 (значение Выход (Out)). Нейронная сеть 602 имеет весовые коэффициенты -1 и 1 (для входных значений X1 и X2, соответственно) для нейрона 608-2 ReLU, весовые коэффициенты 1 и -1 (для входных значений X1 и X2, соответственно) для нейрона 608-4 ReLU и весовые коэффициенты 1 и 1 (для вывода нейронов 608-2 и 608-4 ReLU, соответственно). В некоторых вариантах осуществления, весовые коэффициенты обученных нейронных сетей сохраняются в памяти 214, в качестве весовых коэффициентов 222.

[0170] Фигура 6C показывает примерную эквивалентную аналоговую сеть для сети 602, в соответствии с некоторыми вариантами осуществления. Аналоговые эквивалентные вводы 614 и 616 для вводов 604 и 606 X1 и X2 являются вводом для аналоговых нейронов 618 N1 и 620 N2 первого слоя. Нейроны N1 и N2 плотно соединены с нейронами N3 и N4 второго слоя. Нейроны второго слоя (т.е. нейрон 622 N3 и нейрон 624 N4) соединяются с выходным нейроном 626 N5, который создает вывод Выход (эквивалентный выводу 610 сети 602). Нейроны N1, N2, N3, N4 и N5 имеют функцию активации ReLU (максимальное значение=1).

[0171] Некоторые варианты осуществления используют обучение Keras, которое осуществляет сходимость приблизительно 1000 итераций, и приводит к весовым коэффициентам для соединений. В некоторых вариантах осуществления, весовые коэффициенты сохраняются в памяти 214, как часть весовых коэффициентов 222. В нижеследующем примере, формат данных соответствует ‘Нейрон [весовой коэффициент 1й связи, весовой коэффициент 2й связи, смещение]’.

- N1 [-0.9824321, 0.976517, -0.00204677];

- N2 [1.0066702, -1.0101418, -0.00045485];

- N3 [1.0357606, 1.0072469, -0.00483723];

- N4 [-0.07376373, -0.7682612, 0.0]; и

- N5 [1.0029935, -1.1994369, -0.00147767].

[0172] Далее, чтобы вычислить значения резистора для соединений между нейронами, некоторые варианты осуществления вычисляют диапазон резисторов. Некоторые варианты осуществления устанавливают номинальные значения резистора (R+,R-) в 1Мом, возможный диапазон резисторов от 100кОм до 1МОм и номинальный ряд E24. Некоторые варианты осуществления вычисляют значения w1, w2 wbias резистора для каждого соединения следующим образом. Для каждого значения wi весового коэффициента (например, весовых коэффициентов 222), некоторые варианты осуществления оценивают все возможные опции пар резисторов (Ri-,Ri+) в рамках выбранного номинального ряда и выбирают пару резисторов, которая создает минимальное значение ошибки . Нижеследующая таблица предоставляет примерные значения для весовых коэффициентов w1, w2 и смещения, для каждого соединения, в соответствии с некоторыми вариантами осуществления.

Значение модели R- (МОм) R+ (МОм) Реализованное значение N1_w1 -0.9824321 0.36 0.56 -0.992063 N1_w2 0.976517 0.56 0.36 0.992063 N1_bias -0.00204677 0.1 0.1 0.0 N2_w1 1.0066702 0.43 0.3 1.007752 N2_w2 -1.0101418 0.18 0.22 -1.010101 N2_bias -0.00045485 0.1 0.1 0.0 N3_w1 1.0357606 0.91 0.47 1.028758 N3_w2 1.0072469 0.43 0.3 1.007752 N3_bias -0.00483723 0.1 0.1 0.0 N4_w1 -0.07376373 0.91 1.0 -0.098901 N4_w2 -0.7682612 0.3 0.39 -0.769231 N4_bias 0.0 0.1 0.1 0.0 N5_w1 1.0029935 0.43 0.3 1.007752 N5_w2 -1.1994369 0.3 0.47 -1.205674 N5_bias -0.00147767 0.1 0.1 0.0

Примерные Преимущества Трансформированных Нейронных Сетей

[0173] Перед тем, как описывать примеры трансформации, стоит отметить некоторые преимущества трансформированных нейронных сетей над обычными архитектурами. Как описано в данном документе, входные обученные нейронные сети трансформируются в пирамидальные или трапециевидные аналоговые сети. Некоторые преимущества пирамиды или трапеции над кроссбарами включают в себя более низкое время ожидания, одновременное распространение аналогового сигнала, возможность изготовления с использованием стандартных элементов конструкции интегральной микросхемы (IC), включая резисторы и операционные усилители, высокий параллелизм вычислений, высокую точность (например, точность возрастает с количеством слоев по отношению к обычным способам), допуск ошибки(ок) в каждом весовом коэффициенте и/или в каждом соединении (например, пирамиды балансируют ошибки), низкая RC (низкая Резистивно-Емкостная задержка, относящая к распространению сигнала через сеть) и/или возможность манипулирования смещениями и функциями каждого нейрона в каждом слое трансформированной сети. Также пирамиды сами по себе являются превосходным вычислительным блоком, поскольку это многоуровневый персептрон, который может моделировать любую нейронную сеть с одним выводом. Сети с несколькими выводами реализуются с использованием разных пирамид или геометрии трапеции, в соответствии с некоторыми вариантами осуществления. Пирамиду можно рассматривать как многослойный персептрон с одним выводом и несколькими слоями (например, N слоями), где каждый нейрон имеет n вводов и 1 вывод. Аналогичным образом, трапеция является многослойным персептроном, где каждый нейрон имеет n вводов и m выводов. Каждая трапеция является пирамидоподобной сетью, где каждый нейрон имеет n вводов и m выводов, где n и m ограничиваются конструктивными ограничениями аналогового чипа IC, в соответствии с некоторыми вариантами осуществления.

[0174] Некоторые варианты осуществления выполняют трансформацию без потерь любой обученной нейронной сети в подсистемы из пирамид или трапеций. Таким образом, пирамиды и трапеции могут быть использованы в качестве универсальных строительных блоков для трансформирования любых нейронных сетей. Преимущество нейронных сетей на основе пирамиды или трапеции состоит в возможности реализации любой нейронной сети с использованием стандартных аналоговых элементов IC (например, операционных усилителей, резисторов, линий задержки сигнала в случае рекуррентных нейронов) с использованием стандартных методик литографии. Также можно ограничить весовые коэффициенты трансформированных сетей до некоторого интервала. Другими словами, трансформация без потерь выполняется с помощью весовых коэффициентов, ограниченных до некоторого предопределенного диапазона, в соответствии с некоторыми вариантами осуществления. Другое преимущество использования пирамид или трапеций состоит в высокой степени параллелизма при обработке сигнала или одновременном распространении аналоговых сигналов, что увеличивает скорость вычислений, обеспечивая более низкое время ожидания. Более того, многие современные нейронные сети являются сетями с разреженными соединениями и намного лучше (например, более компактные, имеют низкие значения RC, отсутствие токов утечки), когда трансформируются в пирамиды, чем в кроссбары. Сети на основе пирамид и трапеций являются относительно более компактными, чем мемристорные сети на основе кроссбаров.

[0175] Кроме того, аналоговые нейроморфные трапециевидные чипы обладают рядом свойств не типичных для аналоговых устройств. Например, отношение сигнала к шуму не увеличивается с количеством каскадов в аналоговом чипе, сдерживается внутренний шум и значительно сокращается влияние температуры. Такие свойства делают трапециевидные аналоговые нейроморфные чипы аналогичными цифровым схемам. Например, отдельные нейроны, на основе операционных усилителей, выравнивают сигнал и работают с частотами в 20000-100000Гц и не подвержены влиянию шума или сигналов с частотой, которая выше рабочего диапазона, в соответствии с некоторыми вариантами осуществления. Трапециевидный аналоговый нейроморфный чип также выполняет фильтрацию выходного сигнала из-за особенностей работы операционных усилителей. Такой трапециевидный аналоговый нейроморфный чип сдерживает синфазный шум. Из-за низкоомных выводов операционных усилителей, также значительно снижается шум. Из-за выравнивания сигнала в каждом выводе операционного усилителя и синхронной работы усилителей, дрейф параметров, вызванный температурой, не оказывает влияние на сигналы в итоговых выводах. Трапециевидная аналоговая нейроморфная схема является допускающей ошибки и шум во входных сигналах и является допускающей отклонения значений резистора, соответствующих значениям весового коэффициента в нейронной сети. Трапециевидные аналоговые нейроморфные сети также допускают любые виды систематической ошибки, подобной ошибке в установках значения резистора, если такая ошибка является одной и той же для всех резисторов, из-за самой природы аналоговых нейроморфных трапециевидных схем, основанных на операционных усилителях.

Примерная Трансформация Без Потерь (T-Трансформация) Обученных Нейронных Сетей

[0176] В некоторых вариантах осуществления, примерные трансформации, описанные в данном документе, выполняются модулем 226 трансформации нейронной сети, который трансформирует обученные нейронные сети 220, на основе математических формулировок 230, базовых блоков 232 функции, моделей 234 аналогового компонента и/или аналоговых конструктивных ограничений 236, чтобы получить трансформированные нейронные сети 228.

[0177] Фигура 7 показывает примерный персептрон 700, в соответствии с некоторыми вариантами осуществления. Персептрон включает в себя K=8 вводов и 8 нейронов 702-2, …, 702-16 в входном слое, который принимает 8 вводов. Присутствует выходной слой с 4 нейронами 704-2, …, 704-8, в выходном слое, который соответствует L=4 выводам. Нейроны во входном слое являются полностью соединенными с нейронами в выходном слое, составляя 8 на 4=32 соединения. Предположим, что весовые коэффициенты соединений представляются матрицей WP весов (элемент WPi,j соответствует весовому коэффициенту соединения между i-м нейроном во входном слое и j-м нейроном в выходном слое). Предположим далее, что каждый нейрон выполняет функцию F активации.

[0178] Фигура 8 показывает примерную Пирамидальную Нейронную Сеть 800 (P-NN), тип Целевой-Нейронной Сети (T-NN или TNN), которая является эквивалентной персептрону, показанному на Фигуре 7, в соответствии с некоторыми вариантами осуществления. Чтобы выполнить данную трансформацию персептрона (Фигура 7) в архитектуру P-NN (Фигура 8), предположим, применительно к T-NN, что количество вводов ограничивается Ni=4, а количество выводов ограничивается No=2. T-NN включает в себя входной слой LTI из нейронов 802-2, …, 802-34, т.е. сцепление двух копий входного слоя из нейронов 802-2, …, 802-16, для суммарно 2 на 8=16 выходных нейронов. Набор нейронов 804, включающий в себя нейроны 802-20, …, 802-34, является копией нейронов 802-2, …, 802-18, и ввод тиражируется. Например, ввод в нейрон 80-2 также является вводом для нейрона 802-20, ввод 20 для нейрона 802-4 также является вводом для нейрона 802-22, и т.д. Фигура 8 также включает в себя скрытый слой LTH1 из нейронов 806-02, …, 806-16 (2 на 16 деленное на 4=8 нейронов), которые являются линейными нейронами. Каждая группа из Ni нейронов из входного слоя LTI является полностью соединенной с двумя нейронами из слоя LTH1. Фигура 8 также включает в себя выходной слой LTO с 2 на 8 деленное на 4=4 нейронами 808-02, …, 808-08, причем каждый нейрон выполняет функцию F активации. Каждый нейрон в слое LTO соединяется с отдельными нейронами из других групп в слое LTH1. Сеть, показанная на Фигуре 8, включает в себя 40 соединений. Некоторые варианты осуществления выполняют вычисление матрицы весов для P-NN на Фигуре 8 следующим образом. Весовые коэффициенты для скрытого слоя LTH1 (WTH1) вычисляются из матриц WP весов, а весовые коэффициенты, соответствующие выходному слою LTO (WTO) формируют разреженную матрицу с элементами равными 1.

[0179] Фигура 9 показывает Пирамидальную Одиночную Нейронную Сеть 900 (PSNN), соответствующую выходному нейрону на Фигуре 8, в соответствии с некоторыми вариантами осуществления. PSNN включает в себя слой (LPSI) из входных нейронов 902-02, …, 902-16 (соответствующих 8 входным нейронам в сети 700 на Фигуре 7). Скрытый слой LPSH1 включает в себя 8 деленное на 4=2 линейных нейрона 904-01 и 904-04, и каждая группа из Ni нейронов из LTI соединяется с одним нейроном из слоя LPSH1. Выходной слой LPSO состоит из 1 нейрона 906 с функцией F активации, который соединяется с обоими нейронами 904-02 и 904-04 скрытого слоя. Для вычисления матрицы весов для PSNN 900, некоторые варианты осуществления вычисляют вектор WPSH1, который равен первой строке WP, для слоя LPSH1. Для слоя LPSO некоторые варианты осуществления вычисляют весовой вектор WPSO с 2 элементами, причем каждый элемент равен 1. Процесс повторяется для первого, второго, третьего и четвертого выходных нейронов. P-NN, такая как сеть, показанная на Фигуре 8, является объединением нескольких PSNN (для 4 выходных нейронов). Входной слой для каждой PSNN является отдельной копией входного слоя P. Для данного примера, P-NN 800 включает в себя входной слой с 8 на 4=32 вводами, скрытый слой с 2 на 4=8 нейронами и выходной слой с 4 нейронами.

Примерные Трансформации с Целевыми Нейронами с N Вводами и 1 Выводом

[0180] В некоторых вариантах осуществления, примерные трансформации, описанные в данном документе, выполняются модулем 226 трансформации нейронной сети, который трансформирует обученные нейронные сети 220, на основе математических формулировок 230, базовых блоков 232 функции, моделей 234 аналоговых компонентов и/или аналоговых конструктивных ограничений 236, чтобы получить трансформированные нейронные сети 228.

Однослойный Персептрон с Одним Выводом

[0181] Предположим, что однослойный персептрон SLP(K,1) включает в себя K вводов и один выходной нейрон с функцией F активации. Предположим далее, что является вектором весовых коэффициентов для SLP(K,1). Следующий алгоритм Neuron2TNN1 конструирует T-нейронную сеть из T-нейронов с N вводами и 1 выводом (упоминается как TN(N,1)).

Алгоритм Neuron2TNN1

1. Конструируют входной слой для T-NN путем включения всех вводов из SLP(K,1).

2. Если K>N, тогда:

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

b. Конструируют первый скрытый слой LTH1 у T-NN из нейронов, причем каждый нейрон выполняет тождественную функцию активации.

c. Соединяют входные нейроны из каждой группы с соответствующим нейроном из следующего слоя. Так что каждый нейрон из LTH1 имеет не больше N входных соединений.

d. Устанавливают весовые коэффициенты для новых соединений в соответствии со следующим уравнением:

3. Иначе (т.е. если K<=N) тогда):

a. Конструируют выходной слой с 1 нейроном, вычисляющим функцию F активации

b. Соединяют входные нейроны с единственным выходным нейроном. Он имеет K≤N соединений.

c. Устанавливают весовые коэффициенты новых соединения посредством следующего уравнения:

d. Завершают алгоритм

4. Устанавливают l=1

5. Если m1>N:

a. Делят m1 нейронов на групп, причем каждая группа состоит из не больше чем N нейронов.

b. Конструируют скрытый слой LTHl+1 у T-NN из ml+1 нейронов, причем каждый нейрон имеет тождественную функцию активации.

c. Соединяют входные нейроны каждой группы с соответствующим нейроном из следующего слоя.

d. Устанавливают весовые коэффициенты новых соединений в соответствии со следующим уравнением:

e. Устанавливают l=l+1

6. Иначе (если m>=N)

a. Конструируют выходной слой с 1 нейроном, вычисляющим функцию F активации

b. Соединяют все нейроны LTH1 с единственным выходным нейроном.

c. Устанавливают весовые коэффициенты новых соединений в соответствии со следующим уравнением:

a.

d. Завершают алгоритм

7. Повторяют этапы 5 и 6.

[0182] Здесь, - минимальное целое число, которое не меньше x. Количество слоев в T-NN, сконструированной посредством алгоритма Neuron2TNN1, составляет . Общее количество весовых коэффициентов в T-NN составляет:

[0183] Фигура 10 показывает пример сконструированной T-NN, в соответствии с некоторыми вариантами осуществления. Все слои, за исключением первого, выполняют тождественную трансформацию их вводов. Матрицы весов сконструированной T-NN имеют следующие формы, в соответствии с некоторыми вариантами осуществления.

- Слой 1 (например, слой 1002):

W1= u1 u2 uN 0 0 0 0 0 0 0 uN+1 uN+2 u2N 0 0 0 0 0 u(h-1)N+1 uK

- Слои i=2, 3, …, h (например, слои 1004, 1006, 1008 и 1010):

Wi= 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1

[0184] Выходное значение T-NN вычисляется в соответствии со следующей формулой:

[0185] Вывод для первого слоя вычисляется как выходной вектор в соответствии со следующей формулой:

[0186] Умножая полученный вектор на матрицу весов второго слоя:

[0187] Каждый последующий слой выводит вектор с компонентами равными линейной комбинации некоторого суб-вектора у x.

[0188] В заключение, вывод T-NN равен:

[0189] Это точно такое же значение, как то, что вычисляется в SLP(K,1) для того же самого выходного вектора x. Таким образом выходные значения SLP(K,1) и сконструированной T-NN являются равными.

Однослойный Персептрон с Несколькими Выводами

[0190] Предположим, что присутствует однослойный персептрон SLP(K, L) с K вводами и L выходными нейронами, причем каждый нейрон выполнят функцию активации. Предположим далее, что является матрицей весов для SLP(K, L). Следующий алгоритм Layer2TNN1 конструирует T-нейронную сеть из нейронов TN(N, 1).

Алгоритм Layer2TNN1

1. Для каждого выходного нейрона i=1,…,L

a. Применяют алгоритм Neuron2TNN1 к SLPi(K, 1), состоящего из K вводов, 1 выходного нейрона и весового вектора Uij, j=1,2,…,K. В результате конструируется TNNi.

2. Конструируют PTNN путем составления всех TNNi в одну нейронную сетку:

a. Сцепляют входные векторы всех TNNi таким образом, что ввод у PTNN имеет L групп из K вводов, причем каждая группа является копией входного слоя SLP(K, L).

[0191] Вывод PTNN равен выводу SLP(K, L) для одного и того же входного вектора, потому что выводы каждой пары SLPi(K, 1) и TNNi являются равными.

Многослойный Персептрон

[0192] Предположим, что многослойный персептрон (MLP) включает в себя K вводов, S слоев и Li нейронов вычисления в i-м слое, представленный как MLP(K, S, L1,… LS). Предположим, что является матрицей весов для i-го слоя.

[0193] Нижеследующее является примерным алгоритмом для конструирования T-нейронной сети из нейронов TN(N, 1), в соответствии с некоторыми вариантами осуществления.

Алгоритм MLP2TNN1

1. Для каждого слоя i=1,…,S

a. Применяют алгоритм Layer2TNN1 к SLPi(Li-1, Li), состоящему из Li-1 вводов, Li выходных нейронов и весовой матрицы Ui, конструируя PTNNi в результате.

2. Конструируют MTNN путем укладки друг на друга всех PTNNi в одну нейронную сетку; вывод TNNi-1 устанавливается в качестве ввода для TNNi.

[0194] Вывод MTNN равен выводу MLP(K, S, L1,… LS) для одного и того же входного вектора, потому что вывод каждой пары SLPi(Li-1, Li) и PTNNi является одинаковым.

Примерные T-трансформации с Целевыми нейронами с NI Вводами и NO Выводами

[0195] В некоторых вариантах осуществления, примерные трансформации, описанные в данном документе, выполняются модулем 226 трансформации нейронной сети, который трансформирует обученные нейронные сети 220, на основе математических формулировок 230, базовых блоков 232 функции, моделей 234 аналогового компонента и/или аналоговых конструктивных ограничений 236, чтобы получить трансформированные нейронные сети 228.

Примерная Трансформация Однослойного Персептрона с Несколькими Выводами

[0196] Предположим, что однослойный персептрон SLP(K, L) включает в себя K вводов и L выходных нейронов, причем каждый нейрон выполняет функцию F активации. Предположим далее, что является матрицей весов для SLP(K, L). Нижеследующий алгоритм конструирует T-нейронную сеть из нейронов TN(NI, NO), в соответствии с некоторыми вариантами осуществления.

Алгоритм Layer2TNNX

1. Конструируют PTNN из SLP(K, L) путем использования алгоритма Layer2TNN1 (см. описание выше). PTNN имеет входной слой, состоящий из L групп K вводов.

2. Составляют подмножеств из L групп. Каждое подмножество содержит не больше NO групп из копий входного вектора.

3. Заменяют группы в каждом подмножестве одной копией входного вектора.

4. Конструируют PTNNX путем построения заново соединений в каждом подмножестве, делая NO выходных соединений из каждого входного нейрона.

[0197] В соответствии с некоторыми вариантами осуществления, вывод PTNNX вычисляется посредством тех же самых формул, что и для PTNN (описанной выше), так что выводы являются равными.

[0198] Фигуры 11A-11C показывают приложение 1100 вышеупомянутого алгоритма для однослойной нейронной сети (NN) с 2 выходными нейронами и TN(NI, 2), в соответствии с некоторыми вариантами осуществления. Фигура 11A показывает примерную исходную или входную NN, в соответствии с некоторыми вариантами осуществления. K вводы вводятся в два нейрона 1 и 2, принадлежащих к слою 1104. Фигура 11B показывает PTNN, сконструированную после первого этапа алгоритма, в соответствии с некоторыми вариантами осуществления. PTNN состоит из двух частей, реализующих суб-сетки, соответствующие выходному нейрону 1 и нейрону 2 у NN, показанной на Фигуре 11A. На Фигуре 11B, ввод 1102 тиражируется и вводится в два набора из входных нейронов 1106-2 и 1106-4. Каждый набор входных нейронов соединяется с последующим слоем нейронов с двумя наборами нейронов 1108-2 и 1108-4, причем каждый набор нейронов включает в себя m1 нейронов. За входным слоем следуют блоки 1110-2 и 1110-4 тождественной трансформации, причем каждый блок содержит один или несколько слоев с матрицей весов тождества. Вывод блока 1110-2 тождественной трансформации соединяется с выходным нейроном 1112 (соответствующим выходному нейрону 1 на Фигуре 11A), и вывод блока 1110-4 тождественной трансформации соединяется с выходным нейроном 1114 (соответствующим выходному нейрону 1 на Фигуре 11A). Фигура 11C показывает применение итоговых этапов алгоритма, включающих в себя замену двух копий входного вектора (1106-2 и 1106-4) на один вектор 1116 (этап 3) и построение заново соединений в первом слое 1118 путем создания двух выходных связей от каждого входного нейрона: одна связь соединяется с суб-сеткой, которая относится к выводу 1, а другая связь соединяется с суб-сеткой для вывода 2.

Примерная Трансформация Многослойного Персептрона

[0199] Предположим, что многослойный персептрон (MLP) включает в себя K вводов, S слоев и Li нейронов вычисления в i-м слое, представленный как MLP(K, S, L1,… LS). Предположим, что является матрицей весов для i-го слоя. Нижеследующий примерный алгоритм конструирует T-нейронную сеть из нейронов TN(NI, NO), в соответствии с некоторыми вариантами осуществления.

Алгоритм MLP2TNNX

1. Для каждого слоя i=1,…,S:

a. Применяют алгоритм Layer2TNNX к SLPi(Li-1, Li), состоящему из Li-1 вводов, Li выходных нейронов и матрицы Ui весов. В результате конструируется PTNNXi.

2. Конструируют MTNNX путем укладки друг на друга всех PTNNXi в одну нейронную сетку:

a. Вывод TNNXi-1 устанавливается в качестве ввода для TNNXi.

[0200] В соответствии с некоторыми вариантами осуществления, вывод MTNNX равен выводу MLP(K, S, L1,… LS) для одного и того же входного вектора, так как вывод каждой пары SLPi(Li-1, Li) и PTNNXi является равным.

Примерная Трансформация Рекуррентной Нейронной Сети

[0201] Рекуррентная Нейронная Сеть (RNN) содержит обратное соединение, обеспечивающее сохранение информации. Фигура 12 показывает примерную RNN 1200, в соответствии с некоторыми вариантами осуществления. Пример показывает блок 1204, выполняющий функцию A активации, которая осуществляет принятие ввода 1206 Xt и выполняет функцию A активации, и выводит значение 1202 ht. Обратная стрелка от блока 1204 к нему же указывает обратное соединение, в соответствии с некоторыми вариантами осуществления. Эквивалентная сеть показана справа до момента времени, когда блок активации принимает ввод 1206 Xt. В момент времени 0, сеть осуществляет принятие ввода 1208 Xt и выполняет функцию 1204 A активации, и выводит значение 1210 ho; в момент времени 1, сеть осуществляет принятие ввода 1212 X1 и вывод сети в момент 0, и выполняет функцию 1204 A активации, и выводит значение 1214 h1; в момент времени 2, сеть осуществляет принятие ввода 1216 X2 и вывода сети в момент времени 1, и выполняет функцию 1204 активации A, и выводит значение 1218 h1. Этот процесс продолжается до момента времени t, и в это время сеть осуществляет принятие ввода 1206 Xt и вывода сети в момент времени t-1, и выполняет функцию 1204 A активации, и выводит значение 1202 ht, в соответствии с некоторыми вариантами осуществления.

[0202] Обработка данных в RNN выполняется посредством следующей формулы:

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

[0204] В некоторых вариантах осуществления, слой RNN без рекуррентных соединений трансформируется посредством алгоритма Layer2TNNX, описанного выше. После того, как трансформация завершена, рекуррентные связи добавляются между связанными нейронами. Некоторые варианты осуществления используют блоки задержки, описанные ниже при обращении к Фигуре 13B.

Примерная Трансформация Сети LSTM

[0205] Нейронная сеть Долгой Краткосрочной Памяти (LSTM) является особым случаем RNN. Операции сети LSTM представляются следующими уравнениями:

- ;

- ;

- ;

- ;

- ; и

- .

[0206] В уравнениях выше, , , и являются обучаемыми матрицами весов, , , и являются обучаемыми смещениями, является текущим входным вектором, является внутренним состоянием LSTM, вычисленным для предыдущего входного вектора , а является выводом для текущего входного вектора. В уравнениях, нижний индекс обозначает момент времени, а нижний индекс -1 обозначает момент -1 времени.

[0207] Фигура 13A является структурной схемой нейрона 1300 LSTM, в соответствии с некоторыми вариантами осуществления. Блок 1318 сигмоиды (σ) обрабатывает вводы 1330 и 1332, и создает вывод 1336. Второй блок 1320 сигмоиды обрабатывает вводы 1330 и 1332, и создает вывод 1338. Блок 1322 гиперболического тангенса (tanh) обрабатывает вводы 1330 и 1332, и создает вывод 1340. Третий блок 1328 сигмоиды (σ) обрабатывает вводы 1330 и 1332, и создает вывод 1342. Блок 1304 умножителя обрабатывает 1336 и вывод блока 1306 суммирования (из предыдущего моментов времени) 1302, чтобы создать вывод, который в свою очередь суммируется блоком 1306 суммирования вместе с выводом второго блока 1314 умножителя, который умножает выводы 1338 и 1340 , чтобы создать вывод 1310. Вывод 1310 является вводом для другого блока 1312 tanh, который создает вывод, который умножается третьим блоком 1316 умножителя с выводом 1342, чтобы создать вывод 1334.

[0208] Существует несколько типов операций, которые используются в этих выражениях: (i) вычисление линейной комбинации для нескольких слоев с полными соединениями, (ii) поэлементное сложение, (iii) произведение Адамара и (iv) вычисление нелинейной функции (например, сигмоиды (σ) и гиперболического тангенса (tanh)). Некоторые варианты осуществления реализуют (i) и (iv) операции посредством сети на основе трапеции (один слой с полными соединениями реализуется сетью на основе пирамиды, особого случая трапециевидных сетей). Некоторые варианты осуществления используют сети различных структур для (ii) и (iii) операций, которые являются общими операциями.

[0209] Слой в слое LSTM без рекуррентных соединений трансформируется путем использования алгоритма Layer2TNNX, описанного выше, в соответствии с некоторыми вариантами осуществления. После того, как трансформация завершается, рекуррентные связи добавляются между связанными нейронами, в соответствии с некоторыми вариантами осуществления.

[0210] Фигура 13B показывает блоки задержки, в соответствии с некоторыми вариантами осуществления. Как описано выше, некоторые из выражений в уравнениях для операций LSTM зависят от сохранения, восстановления и/или вызова вывода из предыдущих моментов времени. Например, блок 1304 умножителя обрабатывает вывод блока 1306 суммирования (из предыдущего момента времени) 1302. Фигура 13B показывает два примера блока задержки, в соответствии с некоторыми вариантами осуществления. Пример 1350 слева включает в себя блок 1354 задержки, который осуществляет принятие ввода xt 1352 в момент времени t, и выводит ввод после задержки в виде dt, указанный выводом xt-dt 1356. Пример 1360 справа показывает блоки 1356 и 1366 задержки в виде каскада (или несколько), которые выводят ввод xt 1362 после 2 единиц задержек времени, указанный выводом xt-2dt 1368, в соответствии с некоторыми вариантами осуществления.

[0211] Фигура 13C является схемой нейрона для нейрона LSTM, в соответствии с некоторыми вариантами осуществления. Схема включает в себя узлы 1372, 1374, 1376, 1378 и 1396 взвешенного сумматора (иногда называемые блоками сумматора), блоки 1384, 1392 и 1394 умножителя и блоки 1380 и 1382 задержки. Ввод 1332 соединяется с блоками 1372, 1374, 1376 и 1378 сумматора. Вывод 1330 для предыдущего ввода также вводится в блоки 1372, 1374, 1376 и 1378 сумматора. Блок 1372 сумматора создает вывод, который вводится в блок 1394-2 сигмоиды, который создает вывод 1336. Аналогичным образом, блок 1374 сумматора создает вывод, который вводится в блок 1386 сигмоиды, который создает вывод 1338. Аналогичным образом, блок 1376 сумматора создает вывод, который вводится в блок 1388 гиперболического тангенса, который создает вывод 1340 . Аналогичным образом, блок 1378 сумматора создает вывод, который вводится в блок 1390 сигмоиды, который создает вывод 1342. Блок 1392 умножителя использует выводы 1338, 1336 и вывод блока 1396 сумматора из предыдущего момента времени 1302, чтобы создать первый вывод. Блок 1394 умножителя использует выводы 1338 и 1340, чтобы создать второй вывод. Блок 1396 сумматора суммирует первый вывод и второй вывод, чтобы создать вывод 1310. Вывод 1310 вводится в блок 1398 гиперболического тангенса, который создает вывод, который вводится, вместе с выводом блока 1390 сигмоиды, 1342, в блок 1384 умножителя, чтобы создать вывод 1334. Блок 1382 задержки используется для вызова (например, сохранения и восстановления) вывода блока 1396 сумматора из предыдущего момента времени. Аналогичным образом, блок 1380 задержки используется для вызова или сохранения и восстановления вывода блока 1384 умножителя для предыдущего ввода (например, из предыдущего момента времени). Примеры блоков задержки описаны выше при обращении к Фигуре 13B, в соответствии с некоторыми вариантами осуществления.

Пример Трансформации Сетей GRU

[0212] Нейронная сеть Управляемых Рекуррентных Блоков (GRU) является особым случае RNN. Операции RNN представляются следующими выражениями:

- ;

- ;

- ;

- .

[0213] В уравнениях выше, является текущим входным вектором, а является выводом, вычисленным для предыдущего входного вектора .

[0214] Фигура 14A является структурной схемой нейрона GRU, в соответствии с некоторыми вариантами осуществления. Блок 1418 сигмоиды (σ) обрабатывает выводы 1402 и 1422, и создает вывод 1426. Второй блок 1420 сигмоиды (σ) обрабатывает вводы 1402 и 1422, и создает вывод 1428. Блок 1412 умножителя умножает вывод 1426 и ввод 1402, чтобы создать вывод, который вводится (вместе с вводом 1422) в блок 1424 гиперболического тангенса (tanh), чтобы создать вывод 1430. Второй блок 1414 умножителя умножает вывод 1430 и вывод 1428, чтобы создать первый вывод. Блок 1410 вычисляет 1 - вывод 1428, чтобы создать вывод, который вводится в третий блок 1404 умножителя, который умножает вывод и ввод 1402, чтобы создать произведение, которое вводится в блок 1406 сумматора вместе с первым выводом (от блока 1414 умножителя), чтобы создать вывод 1408. Вывод 1402 является выводом нейрона GRU из вывода -1 предыдущего интервала времени.

[0215] Фигура 14B является нейронной схемой для нейрона 1440 GRU, в соответствии с некоторыми вариантами осуществления. Схема включает в себя узлы 1404, 1406, 1410, 1406 и 1434 взвешенного сумматора (иногда называемых блоками сумматора), блоки 1404, 1412 и 1414 умножителя, и блок 1432 задержки. Ввод 1422 соединяется с блоками 1404, 1410 и 1406 сумматора. Вывод 1402 для предыдущего ввода также вводится в блоки 1404 и 1406 сумматора, и блоки 1404 и 1412 умножителя. Блок 1404 сумматора создает вывод, который вводится в блок 1418 сигмоиды, который создает вывод 1428. Аналогичным образом, блок 1406 сумматора создает вывод, который вводится в блок 1420 сигмоиды, который создает вывод 1426, который вводится в блок 1412 умножителя. Вывод блока 1412 умножителя вводится в блок 1410 сумматора, вывод которого вводится в блок 1424 гиперболического тангенса, который создает вывод 1430. Вывод 1430, как, впрочем, и вывод блока 1418 сигмоиды вводятся в блок 1414 умножителя. Вывод блока 1418 сигмоиды вводится в блок 1404 умножителя, который умножает этот вывод с вводом от блока 1432 задержки, чтобы создать первый вывод. Блок умножителя создает второй вывод. Блок 1434 сложения суммирует первый вывод и второй вывод, чтобы создать вывод 1408. Блок 1432 задержки используется для вызова (например, сохранения и восстановления) вывода блока 1434 сумматора из предыдущего момента времени. Примеры блоков задержки описаны выше при обращении к Фигуре 13B, в соответствии с некоторыми вариантами осуществления.

[0216] Типы операции, которые используются в GRU, являются точно такими же, как типы операции для сетей LSTM (описанных выше), так что GRU трансформируется в сети на основе трапеции, следуя принципам, описанным выше для LSTM (например, с использованием алгоритма Layer2TNNX), в соответствии с некоторыми вариантами осуществления.

Примерная Трансформация Сверточной Нейронной Сети

[0217] В общем, Сверточные Нейронные Сети (CNN) включают в себя несколько базовых операций, таких как свертка (набор линейных комбинаций фрагментов изображения (или внутренней карты) с ядром), функция активации и создание пула (например, максимального, среднего и т.д.). Каждый нейрон вычисления в CNN следует общей схеме обработки нейрона в MLP: линейная комбинация некоторых вводов с последующим вычислением функции активации. Таким образом CNN трансформируется с использованием алгоритма MLP2TNNX, описанного выше для многослойных персептронов, в соответствии с некоторыми вариантами осуществления.

[0218] Conv1D является сверткой, которая выполняется по координате времени. Фигуры 15A и 15B являются схемами нейрона вариантов единственного фильтра Conv1D, в соответствии с некоторыми вариантами осуществления. На Фигуре 15A, узел 1502 взвешенного сумматора (иногда называемого блоком сумматора, помеченный ‘+’) имеет 5 вводов, так что он соответствует 1D свертке с размером ядра 5. Вводами являются 1504 из момента времени , 1514 из момента времени -1 (полученный путем ввода соответственно ввода в блок 1506 задержки), 1516 из момента времени -2 (полученный путем ввода вывода блока 1506 задержки в другой блок 1508 задержки), 1518 из момента времени -3 (полученный путем ввода вывода из блока 1508 задержки в другой блок 1510 задержки) и 1520 из момента времени -4 (полученный путем ввода вывода из блока 1510 задержки в другой блок 1512 задержки). Для более крупных ядер, иногда предпочтительным может быть использование разных блоков частотной задержки, так что некоторые из блоков создают более длительные задержки. Некоторые варианты осуществления замещают несколько блоков небольшой задержки одним блоком большой задержки, как показано на Фигуре 15B. В дополнение к блокам задержки на Фигуре 15A, пример использует блок 1524 delay_3, который создает 1518 из момента времени -3, и другой блок 1526 задержки, который создает 1522 из момента времени -5. Блок 1524 delay_3 является примером нескольких блоков задержки, в соответствии с некоторыми вариантами осуществления. Данная операция не уменьшает общее количество блоков, но она может уменьшать общее количество последовательных операций, выполняемых по входному сигналу, и уменьшать накопление ошибок, в соответствии с некоторыми вариантами осуществления.

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

Пример Алгоритма Аппроксимации для Однослойного Персептрона с Несколькими Выводами

[0220] В некоторых вариантах осуществления, примерные трансформации, описанные в данном документе, выполняются модулем 226 трансформации нейронной сети, который трансформирует обученные нейронные сети 220, и/или модулем 246 оптимизации аналоговой нейронной сети, на основе математических формулировок 230, базовых блоков 232 функции, моделей 234 аналогового компонента и/или аналоговых конструктивных ограничений 236, чтобы получить трансформированные нейронные сети 228.

[0221] Предположим, что однослойный персептрон SLP(K, L) включает в себя K вводов и L выходных нейронов, причем каждый выходной нейрон выполняет функцию F активации. Предположим далее, что является матрицей весов для SLP(K, L). Нижеследующее является примером для конструирования T-нейронной сети из нейронов TN(NI, NO) с использованием алгоритма аппроксимации Layer2TNNX_Approx, в соответствии с некоторыми вариантами осуществления. Алгоритм применяет алгоритм Layer2TNN1 (описанный выше) на первой ступени для того, чтобы уменьшить количество нейронов и соединений, и впоследствии применяет Layer2TNNX, чтобы обработать ввод уменьшенного размера. Выводы результирующей нейронной сетки вычисляются с использованием совместно используемых весовых коэффициентов слоев, сконструированных посредством алгоритма Layer2TNN1. Количество этих слоев определяется значением p, параметром алгоритма. Если p равно 0, тогда применяется только алгоритм Layer2TNNX и трансформация является эквивалентной. Если p>0, тогда p слоев имеют совместно используемые весовые коэффициенты и трансформация является аппроксимированной.

Алгоритм Layer2TNNX_Approx

1. Устанавливают параметр p со значением из набора .

2. Если p>0, то применяют алгоритм Layer2TNNI с нейроном TN(NI, 1) к сетке SLP(K, L) и конструируют первые p слоев результирующей суб-сетки (PNN). Сетка PNN имеет нейронов в выходном слое.

3. Применяют алгоритм Layer2TNNX с нейроном TN(NI, NO) и конструируют нейронную суб-сетку TNN с NP вводами и L выводами.

4. Устанавливают весовые коэффициенты сетки PNN. Весовые коэффициенты каждого нейрона i из первого слоя у PNN устанавливаются в соответствии с правилом . Здесь C является любой константой не равной нулю, и для всех весовых коэффициентов j данного нейрона, за исключением ki. Все другие весовые коэффициенты сетки PNN устанавливаются в 1. представляет собой весовой коэффициент для первого слоя (как обозначено верхним индексом (1)) для соединения между нейроном i и нейроном в первом слое.

5. Устанавливают весовые коэффициенты суб-сетки TNN. Весовые коэффициенты каждого нейрона i из первого слоя у TNN (с учетом всей сетки это (p+1)-й слой) устанавливаются в соответствии с уравнением . Все другие весовые коэффициента TNN устанавливаются в 1.

6. Устанавливают функции активации для всех нейронов из последнего слоя у суб-сетки TNN как F. Функциями активации всех других нейронов является тождество.

[0222] Фигура 16 показывает примерную архитектуру 1600 результирующей нейронной сетки, в соответствии с некоторыми вариантами осуществления. Пример включает в себя PNN 1602, соединенную с TNN 1606. PNN 1602 включает в себя слой для вводов и создает выводов, которые соединяются в качестве ввода 1612 с TNN 1606. TNN 1606 формирует L выводов 1610, в соответствии с некоторыми вариантами осуществления.

Алгоритм Аппроксимации для Многослойного Персептрона с Несколькими Выводами

[0223] Предположим, что многослойный персептрон (MLP) включает в себя K вводов, S слоев и Li нейронов вычисления в i-м слое, представленный как MLP( K, S, L1,…,LS). Предположим далее, что является матрицей весов для i-го слоя. Нижеследующий примерный алгоритм конструирует T-нейронную сеть из нейронов TN(NI, NO), в соответствии с некоторыми вариантами осуществления.

Алгоритм MLP2TNNX_Approx

1. Для каждого слоя i=1,…,S:

a. Применяют алгоритм Layer2TNNX_Approx (описанный выше) к SLPi(Li-1, Li), состоящему из Li-1 вводов, Li выходных нейронов и матрицы Ui весов. Если i=1, тогда L0=K. Предположим, что данный этап конструирует в результате PTNNXi.

2. Конструируют MTNNX (многослойный персептрон) путем укладки друг на друга всех PTNNXi в одну нейронную сетку, где вывод TNNXi-1 устанавливается в качестве ввода для TNNXi.

Примерные Способы Сжатия Трансформированных Нейронных Сетей

[0224] В некоторых вариантах осуществления, примерные трансформации, описанные в данном документе, выполняются модулем 226 трансформации нейронной сети, который трансформирует обученные нейронные сети 220, и/или модулем 246 оптимизации аналоговой нейронной сети, на основе математических формулировок 230, базовых блоков 232 функции, моделей 234 аналогового компонента и/или аналоговых конструктивных ограничений 236, чтобы получить трансформированные нейронные сети 228.

[0225] Данный раздел описывает примерные способы сжатия трансформированных нейронных сетей, в соответствии с некоторыми вариантами осуществления. Некоторые варианты осуществления сжимают аналоговые пирамидоподобные нейронные сети для того, чтобы свести к минимуму количество операционных усилителей и резисторов, необходимых для реализации аналоговой сети на чипе. В некоторых вариантах осуществления, способом сжатия аналоговых нейронных сетей является прореживание, аналогичное прореживанию в программных нейронных сетях. Тем не менее существуют некоторые особенности при сжатии пирамидоподобных аналоговых сетей, которые являются реализуемыми в качестве аналогового чипа IC в аппаратном обеспечении. Поскольку количество элементов, таких как операционные усилители и резисторы, определяет весовые коэффициенты в нейронных сетях на основе аналогового вида, то крайне важно свести к минимуму количество операционных усилителей и резисторов, которые должны быть размещены на чипе. Это также может помочь свести к минимуму потребление энергии чипа. Современные нейронные сети, такие как сверточные нейронные сети, могут быть сжаты в 5-200 раз без значительной потери точности сетей. Часто, целые блоки в современных нейронных сетях могут быть прорежены без значительной потери точности. Трансформация плотных нейронных сетей в пирамидальные или трапециевидные, или кроссбар-подобные нейронные сети с разреженными соединениями представляет возможности для осуществления прореживания пирамидальных или трапециевидных аналоговых сетей с разреженными соединениями, которые затем представляются операционными усилителями и резисторами в аналоговом чипе IC. В некоторых вариантах осуществления, такие методики применяются в дополнение к традиционным методикам сжатия нейронной сети. В некоторых вариантах осуществления, методики сжатия применяются на основе конкретной архитектуры входной нейронной сети и/или трансформированной нейронной сети (например, пирамиды в сравнении с трапециями в сравнении с кроссбарами).

[0226] Например, поскольку сети реализуются посредством аналоговых элементов, таких как операционные усилители, то некоторые варианты осуществления определяют ток, который протекает через операционный усилитель, когда представляется стандартный обучающий набор данных, и тем самым определяют, требуется или нет узел (операционный усилитель) для всего чипа. Некоторые варианты осуществления анализируют модель SPICE чипа и определяют узлы и соединения, в которых ток не протекает и не потребляется энергия. Некоторые варианты осуществления определяют протекание тока через сеть аналоговой IC и таким образом определяют узлы и соединения, которые затем прореживаются. Кроме того, некоторые варианты осуществления также удаляют соединения, если весовой коэффициент соединения слишком высокий, и/или замещают резистор прямым соединителем, если весовой коэффициент соединения слишком низкий. Некоторые варианты осуществления прореживают узел, если все соединения, ведущие к этому узлу, имеют весовые коэффициента, которые ниже предварительно определенной пороговой величины (например, близки к 0), удаляя соединения, где операционный усилитель всегда предоставляет ноль в качестве вывода и/или меняя операционный усилитель на линейный переход, если усилитель выдает линейную функцию без усиления.

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

Примерное Формирование Оптимального Набора Резисторов

[0228] В некоторых вариантах осуществления, примерные вычисления, описанные в данном документе, выполняются модулем 238 вычисления матрицы весов или квантования весовых коэффициентов (например, с использованием модуля 240 вычисления сопротивления), который вычисляет весовые коэффициенты 272 для соединений трансформированных нейронных сетей, и/или соответствующие значения 242 сопротивления для весовых коэффициентов 272.

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

[0230] Предположим, что тестовый набор ‘Test’ включает в себя около 10000 значений входного вектора (координаты x и y), причем обе координаты варьируются в диапазоне [0;1], с шагом 0.01. Предположим, что вывод сети NN для заданного ввода X задается посредством Out=NN(X). Предположим далее, что класс входных значений находится следующим образом: Class_nn(X) = NN(X) > 0.61 ? 1 : 0.

[0231] Нижеследующее сравнивает математическую модель M сети со схематической моделью S сети. Схематическая модель сети включает в себя возможную вариацию резистора в виде rv и обрабатывает набор ‘Test’, при том каждый раз создавая разный вектор из выходных значения S(Test) = Out_s. Ошибка вывода определяется посредством следующего уравнения:

[0232] Ошибка классификации определяется следующим уравнением:

[0233] Некоторые варианты осуществления устанавливают требуемую ошибку классификации, как не больше 1%.

Примерный Анализ Ошибки

[0234] Фигура 17A показывает примерный график 1700, иллюстрирующий зависимость между ошибкой вывода и ошибкой классификации по сети M, в соответствии с некоторыми вариантами осуществления. На Фигуре 17A, ось x соответствует полю 1704 классификации, а ось Y соответствует общей ошибке 1702 (см. описание выше). График показывает общую ошибку (разность между выводом модели M и фактическими данными) для разных полей классификации выходного сигнала. Применительно к данном примеру, в соответствии с графиком, оптимальное поле 1706 классификации составляет 0.610.

[0235] Предположим, что другая сеть O создает выходные значения с постоянным сдвигом по сравнению с соответствующими M выходными значениями, причем будет присутствовать ошибка классификации между O и M. Чтобы сохранить ошибку классификации ниже 1%, данный сдвиг должен находиться в диапазоне [-0.045, 0.040]. Таким образом, возможная ошибка вывода для S составляет 45мВ.

[0236] Возможная ошибка весового коэффициента определяется путем анализа зависимости между относительной ошибкой весового коэффициента/смещения по всей сети и ошибкой вывода. Графики 1710 и 1720, показанные на Фигурах 17B и 17C, соответственно, получаются путем усреднения 20 произвольно модифицированных сетей по набору ‘Test’, в соответствии с некоторыми вариантами осуществления. На этих графиках, ось x представляет собой абсолютную ошибку 1712 весового коэффициента, а ось y представляет собой абсолютную ошибку 1714 вывода. Как может быть видно из графиков, лимит ошибки вывода в 45мВ (y=0.045) обеспечивает относительное значение ошибки в 0.01 или абсолютное значение ошибки в 0.01 (значение x) для каждого весового коэффициента. Максимальные модули весового коэффициента (максимум абсолютного значения весовых коэффициентов среди всех весовых коэффициентов) для нейронной сети составляет 1.94.

Примерный Процесс для Выбора Набора Резисторов

[0237] Набор резисторов вместе с парой {R+, R-}, выбранной из этого набора, имеет функцию-значение в требуемом диапазоне весовых коэффициентов [-wlim; wlim] с некоторой степенью ошибки резистора r_err. В некоторых вариантах осуществления, функция-значение набора резисторов вычисляется следующим образом:

- Возможный массив опций весового коэффициента вычисляется вместе со средней ошибкой весового коэффициента в зависимости от ошибки резистора;

- Опции весового коэффициента в массиве ограничиваются требуемым диапазоном весовых коэффициентов [-wlim; wlim];

- Значения, которые хуже соседних значений с точки зрения ошибки весового коэффициента, удаляются;

- Вычисляется массив расстояний между соседними значениями; и

- Функция-значение является композицией среднего или максимального квадрата массива расстояний.

[0238] Некоторые варианты осуществления итерационно осуществляют поиск оптимального набора резисторов путем последовательной регулировки каждого значения резистора в наборе резисторов от значения скорости обучения. В некоторых вариантах осуществления, скорость обучения меняется со временем. В некоторых вариантах осуществления первоначальный набор резисторов выбирается как однородный (например, [1;1;…;1]), причем минимальные и максимальные значения резистора выбираются так, чтобы они находились в рамках диапазона величин в два порядка (например, [1;100] или [0.1;10]. Некоторые варианты осуществления выбирают R+ = R-. В некоторых вариантах осуществления, итерационный процесс сходится в локальном минимуме. В одном случае, процесс приводит к следующему набору: [0.17, 1.036, 0.238, 0.21, 0.362, 1.473, 0.858, 0.69, 5.138, 1.215, 2.083, 0.275]. Это локально оптимальный набор резисторов из 12 резисторов для диапазона весовых коэффициентов [-2; 2] с rmin=0.1 (минимальное сопротивление), rmax=10 (максимальное сопротивление) и r_err=0.001 (оцениваемая ошибка сопротивления). Некоторые варианты осуществления не используют весь доступный диапазон [rmin; rmax] для нахождения хорошего локального оптимума. Используется только часть доступного диапазона (например, в данном случае [0.17; 5.13]). Значения набора резисторов являются относительными, не абсолютными. В этом случае для набора резисторов достаточно диапазона относительных значений из 30 штук.

[0239] В одном случае, следующий набор резисторов, длиной в 20 единиц, получается для вышеупомянутых параметров: [0.300, 0.461, 0.519, 0.566, 0.648, 0.655, 0.689, 0.996, 1.006, 1.048, 1.186, 1.222, 1.261, 1.435, 1.488, 1.524, 1.584, 1.763, 1.896, 2.02]. В данном примере, значение 1.763 также является значением R-=R+. Данный набор впоследствии используется, чтобы создавать весовые коэффициенты для NN, создавая соответствующую модель S. Среднеквадратичная ошибка вывода модели S была 11мВ при условии, что относительная ошибка резистора близка к нулю, так что набор из 20 резисторов - это больше чем требуется. Максимальная ошибка по набору входных данных была вычислена как 33мВ. В одном случае, преобразователи S, DAC и ADC с 256 уровнями были проанализированы как отдельная модель, и показанный результат составил среднеквадратичную ошибку вывода в 14мВ и максимальную ошибку вывода в 48мВ. Ошибка вывода в 45мВ по NN соответствует относительной ошибке распознавания в 1%. Значение ошибки вывода в 45мВ также соответствует 0.01 относительной или 0.01 абсолютной ошибке весового коэффициента, что является приемлемым. Максимальный модуль весового коэффициента в NN составляет 1.94. Таким образом, оптимальный (или близкий к оптимальному) набор резисторов определяется с использованием итерационного процесса, на основе требуемого диапазона весовых коэффициентов [-wlim; wlim], ошибки резисторов (относительной) и возможного диапазона резисторов.

[0240] Как правило, очень широкий набор резисторов не очень предпочтителен (например, между 1-1/5 порядками величины является достаточным) при условии, что не требуется другая точность в других слоях или частях спектра весового коэффициента. Например, предположим, что весовые коэффициенты находятся в диапазоне [0, 1], но большая часть весовых коэффициентов находится в диапазоне [0, 0.001], тогда более хорошая точность требуется в рамках этого диапазона. В примере, описанном выше, при условии, что относительная ошибка резистора близка к нулю, набор из 20 резисторов является более чем достаточным для квантования сети NN с заданной точностью. В одном случае, на наборе резисторов [0.300, 0.461, 0.519, 0.566, 0.648, 0.655, 0.689, 0.996, 1.006, 1.048, 1.186, 1.222, 1.261, 1.435, 1.488, 1.524, 1.584, 1.763, 1.896, 2.02] (обратите внимание на то, что значения являются относительными) была получена средняя ошибка S вывода в 11мВ.

Примерный Процесс для Квантования Значений Резистора

[0241] В некоторых вариантах осуществления, примерные вычисления, описанные в данном документе, выполняются модулем 238 вычисления матрицы весов или квантования весового коэффициента (например, с использованием модуля 240 вычисления сопротивления), который вычисляет весовые коэффициенты 272 для соединений трансформированных нейронных сетей и/или соответствующие значения 242 сопротивления для весовых коэффициентов 272.

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

[0243] Фигура 18 предоставляет примерную схему модели 1800 нейрона, используемой для квантования резисторов, в соответствии с вариантами осуществления. В некоторых вариантах осуществления, схема основана на операционном усилителе 1824 (например, прецизионном усилителе серии AD824), который принимает входные сигналы от резисторов для фиксации отрицательных весовых коэффициентов (R1- 1804, R2- 1806, Rb- смещение 1816, Rn- 1818 и R- 1812) и резисторов для фиксации положительного весового коэффициента (R1+ 1808, R2+ 1810, Rb+ смещение 1820, Rn+ 1822 и R+ 1814). Напряжения положительного весового коэффициента подаются на прямой ввод операционного усилителя 1824, а напряжения отрицательных весовых коэффициентов подаются на инверсный ввод операционного усилителя 1824. Операционный усилитель 1824 используется для обеспечения операции взвешенного суммирования взвешенных выводов от каждого резистора, где отрицательные весовые коэффициенты вычитаются из положительных весовых коэффициентов. Операционный усилитель 1824 также усиливает сигнал до такой степени, которая необходима для работы схемы. В некоторых вариантах осуществления, операционный усилитель 1824 также осуществляет трансформацию RELU выходного сигнала в своем выходном каскаде.

[0244] Нижеследующие уравнения определяют весовые коэффициенты, на основе значений резистора:

- Напряжение на выводе нейрона определяется следующим уравнением:

- Весовые коэффициенты каждого соединения определяются посредством следующего уравнения:

[0245] Нижеследующая примерная процедура оптимизации квантует значения каждого сопротивления и сводит к минимуму ошибку вывода нейронной сети, в соответствии с некоторыми вариантами осуществления:

1. Получают набор весовых коэффициентов и смещений соединения {w1, …, wn, b}.

2. Получают возможные минимальные и максимальные значения сопротивления {Rmin, Rmax}. Эти параметры определяются на основе технологии, используемой для изготовления. Некоторые варианты осуществления используют материалы с высоким сопротивлением на основе Нитрида Тантала (TaN) или Теллура. В некоторых вариантах осуществления, минимальное значение резистора определяется минимальным квадратом, который может быть сформирован литографическим образом. Максимальное значение определяется длиной, которая допускается для резисторов (например, резисторов, сделанных из TaN или Теллура), чтобы они помещались в требуемую площадь, которая, в свою очередь, определяется площадью квадрата операционного усилителя на литографической маске. В некоторых вариантах осуществления, площадь массивов резисторов меньше площади одного операционного усилителя, поскольку массивы резисторов укладываются друг на друга (например, один при BEOL, другой при FEOL).

3. Предположим, что каждый резистор имеет относительное значение допуска r_err

4. Цель состоит в выборе набора значений резистора {R1, …, Rn} заданной длины N в рамках определенного [Rmin; Rmax], на основе значений {w1, …, wn, b}. Примерный алгоритм поиска предоставляется ниже для нахождения субоптимального набора {R1, …, Rn} на основе конкретного критерия оптимальности.

5. Другой алгоритм выбирает {Rn, Rp, Rni, Rpi} для сети при условии, что {R1..Rn} определен.

Примерный Алгоритм Поиска {R1, …, Rn}

[0246] Некоторые варианты осуществления используют итерационный подход для поиска набора резисторов. Некоторые варианты осуществления выбирают первоначальный (произвольный или однородный) набор {R1, …, Rn} в рамках определенного диапазона. Некоторые варианты осуществления выбирают один из элементов набора резисторов в качестве значения R- = R+. Некоторые варианты осуществления меняют каждый резистор в рамках набора на текущее значение скорости обучения до тех пор, пока такие изменения не создадут ‘более хороший’ набор (в соответствии с функцией-значением). Данный процесс повторяется для всех резисторов в рамках набора и с несколькими разными значениями скорости обучения до тех пор, пока возможны дальнейшие улучшений.

[0247] Некоторые варианты осуществления определяют функцию-значение набора резисторов следующим образом:

- Возможные опции весового коэффициента вычисляются в соответствии с формулой (описанной выше):

- Ожидаемое значение ошибки для каждой опции весового коэффициента оценивается на основе потенциальной относительной ошибки r_err резистора, определяемой технологией изготовления IC.

- Список опций весового коэффициента лимитируется или ограничивается диапазоном [-wlim; wlim]

- Некоторые значения, которые имеют ожидаемую ошибку за пределами высокой пороговой величины (например, 10 кратная r_err), удаляются

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

[0248] Предположим, что требуемый диапазон весовых коэффициентов [-wlim; wlim] для модели устанавливается в [-5; 5], и другие параметры включают в себя N=20, r_err=0.1%, rmin=100кОм, rmax=5МОм. Здесь, rmin и rmax являются минимальным и максимальным значениями для сопротивлений, соответственно.

[0249] В одном случае, следующий набор резисторов длиной в 20 единиц был получен для вышеупомянутых параметров: [0.300, 0.461, 0.519, 0.566, 0.648, 0.655, 0.689, 0.996, 1.006, 1.048, 1.186, 1.222, 1.261, 1.435, 1.488, 1.524, 1.584, 1.763, 1.896, 2.02]МОм. R- = R+ = 1.763МОм.

Примерный Алгоритм Поиска {Rn, Rp, Rni, Rpi}

[0250] Некоторые варианты осуществления определяют Rn и Rp с использованием итерационного алгоритма, такого как алгоритм, описанный выше. Некоторые варианты осуществления устанавливают Rp=Rn (задачи определения Rn и Rp являются симметричными - две величины обычно сходятся к аналогичному значению). Затем для каждого весового коэффициента некоторые варианты осуществления выбирают пару сопротивлений {Rni, Rpi}, которые сводят к минимуму оцениваемое значение ошибки весового коэффициента:

[0251] Некоторые варианты осуществления впоследствии используют набор значений {Rni; Rpi; Rn; Rp} для реализации схематики нейронной сети. В одном случае, схематика создает среднеквадратичную ошибку вывода (иногда называемую среднеквадратичной ошибкой S вывода, описанной выше) в 11мВ и максимальную ошибку в 33мВ по набору из 10000 однородно распределенных выборок входных данных, в соответствии с некоторыми вариантами осуществления. В одном случае, модель S была проанализирована наряду с цифро-аналоговыми преобразователями (DAC), аналого-цифровыми преобразователями (ADC), с 256 уровнями в качестве отдельной модели. Модель создает среднеквадратичную ошибку вывода в 14мВ и максимальную ошибку вывода в 49мВ по тому же самому набору данных, в соответствии с некоторыми вариантами осуществления. DAC и ADC имеют уровни, поскольку они преобразуют аналоговое значение в битовое значение и наоборот. 8 битов цифрового значения равны 256 уровням. Точность не может быть выше 1/256 для 8-битного ADC.

[0252] Некоторые варианты осуществления вычисляют значения сопротивления для аналоговых чипов IC, когда известны весовые коэффициенты соединений, на основе законов цепи Кирхгофа и базовых принципов операционных усилителей (описанных ниже при обращении к Фигуре 19A), с использованием Mathcad или любого другого аналогичного программного обеспечения. В некоторых вариантах осуществления, операционные усилители используются как для усиления сигнала, так и для трансформации в соответствии с функциями активации (например, ReLU, сигмоида, гиперболический тангенс или линейные математические уравнения).

[0253] Некоторые варианты осуществления изготавливают резисторы на литографическом слое, на котором резисторы формируются в качестве цилиндрических отверстий в матрице SiO2 и значение сопротивления устанавливается диаметром отверстия. Некоторые варианты осуществления используют аморфный TaN, TiN с CrN или Теллур в качестве материала с высоким сопротивлением, чтобы создать массивы резисторов высокой плотности. Некоторые отношения Ta к N, Ti к N или Cr к N обеспечивают высокое сопротивление для создания сверхплотных массивов элементов с высоким сопротивлением. Например, для TaN, Ta5N6, Ta3N5, чем выше отношение N к Ta, тем выше удельное сопротивление. Некоторые варианты осуществления используют Ti2N, TiN, CrN или Cr5N, и определяют отношения соответствующим образом. Осаждение TaN является стандартной процедурой, которая используется при изготовлении чипа и доступна на всех фабриках по производству микросхем.

Пример Операционного Усилителя

[0254] Фигура 19A показывает принципиальную схему операционного усилителя, выполненного на CMOS 1900 (CMOS OpAmp), в соответствии с некоторыми вариантами осуществления. На Фигуре 19A, In+ 1404 (положительный ввод или положительный) и In- 1406 (отрицательный ввод или отрицательный) и Vdd- 1402 (положительное напряжение питания относительно GND), являются контактами вводов. Контакт Vss- (отрицательное напряжение питания или GND) указывается меткой 1408. Выводом схемы является Out 1410 (контакт вывода). Параметры транзисторов CMOS определяются отношением геометрических размеров: L (длина канала затвора) к W (ширина канала затвора), примеры которых показаны в Таблице, показанной на Фигуре 19B (описана ниже). Токовое зеркало выполнено на транзисторах M11 1944, M12 1946 NMOS и резисторе R1 1921 (с примерным значением сопротивления в 12кОм), и обеспечивает ток смещения дифференциальной пары (M1 1926 и M3 1930). Дифференциальная ступень усилителя (дифференциальная пара) выполнена на транзисторах M1 1926 и M3 1930 NMOS. Транзисторы M1, M3 являются усиливающими, а транзисторы M2 1928 и M4 1932 PMOS играют роль нагрузки активного тока. От транзистора M3 сигнал вводится в затвор вывода транзистора M7 1936 PMOS. От транзистора M1, сигнал вводится в транзистор M5 1934 PMOS (инвертер) и активную нагрузку в транзисторе M6 1934 NMOS. Ток, протекающий через транзистор M5 1934, является установкой для транзистора M8 1938 NMOS. Транзистор M7 1936 включается в схему с общим истоком для сигнала положительной полуволны. Транзисторы M8 1938 разблокируются посредством схемы с общим истоком для сигнала отрицательной полуволны. Чтобы увеличить общую нагрузочную способность операционного усилителя, выводы M7 1936 и M8 1938 включают в себя инвертер на транзисторах M9 1940 и M10 1942.

[0255] Фигура 19B показывает таблицу 1948 описания для примерной схемы, показанной на Фигуре 19A, в соответствии с некоторыми вариантами осуществления. Значения для параметров предоставлены в качестве примеров и возможны различные другие конфигурации. Транзисторы M1, M3, M6, M8, M10, M11 и M12 являются транзисторами N-Канального MOSFET с явным соединением с подложкой. Другие транзисторы M2, M4, M5, M7 и M9 являются транзисторами P-Канального MOSFET с явным соединением с подложкой. Таблица показывает примерный коэффициент затвора по длине (L, столбец 1) и ширине (W, столбец 2), который обеспечивается для каждого транзистора (столбец 3).

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

[0257] В некоторых вариантах осуществления, функции активации, такие как функции ReLU, Гиперболического Тангенса и Сигмоиды, представляются операционными усилителями с модифицированным выходным каскадом. Например, функция RELU, Сигмоиды или Тангенса реализуется в качестве выходного каскада операционного усилителя (иногда называемого OpAmp) с использованием соответствующей общеизвестной аналоговой схематики, в соответствии с некоторыми вариантами осуществления.

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

Примерная Схема Блока LSTM

[0259] Фигуры 20A-20E показывают принципиальные схемы нейрона 20000 LSTM, в соответствии с некоторыми вариантами осуществления. Вводами нейрона являются Vin1 20002 и Vin2 20004, которые являются значениями в диапазоне [-0.1,0.1]. Нейрон LSTM также вводит значение результата вычисления нейрона в момент времени H(t-1) 20006 (предыдущее значение; см. описание выше для нейрона LST) и вектор состояния нейрона в момент времени C(t-1) 20008 (предыдущее значение). Выводы нейрона LSTM (показанные на Фигуре 20B), включают в себя результат вычисления нейрона в настоящий момент времени H(t) 20118 и вектор состояния нейрона в настоящий момент времени C(t) 20120. Схема включает в себя:

- «нейрон O», собранный на операционных усилителях U1 20094 и U2 20100, показанный на Фигуре 20A. Резисторы R_Wo1 20018, R_Wo2 20016, R_Wo3 20012, R_Wo4 20010, R_Uop1 20014, R_Uom1 20020, Rr 20068 и Rf2 20066 устанавливают весовые коэффициенты соединений одного «нейрона O». «Нейрон O» использует сигмоиду (модуль X1 20078, Фигура 20B) в качестве нелинейной функции;

- «нейрон C», собранный на операционных усилителях U3 20098 (показанном на Фигуре 20C) и U4 20100 (показанном на Фигуре 20A). Резисторы R_Wc1 20030, R_Wc2 20028, R_Wc3 20024, R_Wc4 20022, R_Ucp1 20026, R_Ucm1 20032, Rr 20122 и Rf2 20120, устанавливают весовые коэффициенты соединений «нейрона C». «Нейрон C» использует гиперболический тангенс (модуль X2 22080, Фигура 22B) в качестве нелинейной функции;

- «нейрон I», собранный на операционных усилителях U5 20102 и U6 20104, показанных на Фигуре 20C. Резисторы R_Wi1 20042, R_Wi2 20040, R_Wi3 20036, и R_Wi4 20034, R_Uip1 20038, R_Uim1 20044, Rr 20124 и Rf2 20126 устанавливают весовые коэффициенты соединений «нейрона I». «Нейрон I» использует сигмоиду (модуль X3 20082) в качестве нелинейной функции; и

- «нейрон f», собранный на операционных усилителях U7 20106 и U8 20108, показанных на Фигуре 20D. Резисторы R_Wf1 20054, R_Wf2 20052, R_Wf3 20048, R_Wf4 20046, R_Ufp1 20050, R_Ufm1 20056, Rr 20128 и Rf2 20130 устанавливают весовые коэффициенты соединений «нейрона f». «Нейрон f» использует сигмоиду (модуль X4 20084) в качестве нелинейной функции.

[0260] Выводы модулей X2 20080 (Фигура 20B) и X3 20082 (Фигура 20C) являются вводом в модуль X5 20086 умножителя (Фигура 20B). Выводы модулей X4 20084 (Фигура 20D) и буфера U9 20010 являются вводом в модуль X6 20088 умножителя. Выводы модулей X5 20086 и X6 20088, являются вводом в сумматор (U10 20112). Делитель 10 собирается на резисторах R1 20070, R2 20072 и R3 20074. Нелинейная функция гиперболического тангенса (модуль X7 20090, Фигура 20B) получается с помощью высвобождения сигнала делителя. Вывод C(t) 20120 (текущего вектора состояния нейрона LSTM) получается с помощью буфера-инвертера по выходному сигналу U11 20114. Выводы модулей X1 20078 и X7 20090 являются вводом в умножитель (модуль X8 20092), вывод которого является вводом в буферный делитель на 10 в U12 20116. Результат вычисления нейрона LSTM в настоящий момент времени H(t) 20118 получается из выходного сигнала U12 20116.

[0261] Фигура 20E показывает примерные значения разных конфигурируемых параметров (например, напряжений) для схемы, показанной на Фигурах 20A-20D, в соответствии с некоторыми вариантами осуществления. Vdd 20058 устанавливается в +1.5В, Vss 20064 устанавливается в -1.5В, Vdd1 20060 устанавливается в +1.8В, Vss1 20062 устанавливается в -1.0В, и GND 20118 устанавливается в GND, в соответствии с некоторыми вариантами осуществления.

[0262] Фигура 20F показывает таблицу 20132 описания для примерной схемы, показанной на Фигуре 20A-20D, в соответствии с некоторыми вариантами осуществления. Значения параметров предоставлены в качестве примеров, и возможны различные другие конфигурации. Транзисторы U1-U12 являются CMOS OpAMP (описаны выше при обращении к Фигурам 19A и 19B). X1, X3 и X4 являются модулями, которые выполняют функцию Сигмоиды. X2 и X7 являются модулями, которые выполняют функцию Гиперболического Тангенса. X5 и X8 являются модулями, которые выполняют функцию умножения. Примерные номиналы резисторов включают в себя Rw=10кОм и Rr=1.25кОм. Другие значения резистора выражаются относительно Rw. Например, Rf2=12 кратному Rw, R_Wo4=5 кратному Rw, R_Wo3=8 кратному Rw, R_Uop1=2.6 кратному Rw, R_Wo2=12 кратному Rw, R_W1=w кратному Rw, и R_Uom1=2.3 кратному Rw, R_wc4=4 кратному Rw, R_Wc3=5.45 кратному Rw, R_Ucp1=3 кратному Rw, R_Wc2= 12 кратному Rw, R_Wc1= 2.72 кратному Rw, R_Ucm1= 3.7 кратному Rw, R_Wi4=4.8 кратному Rw, W_Wi3=6 кратному Rw, W_Uip1=2 кратному Rw, R_Wi2=12 кратному Rw, R_Wi1=3 кратному Rw, R_Uim1=2.3 кратному Rw, R_Wf4=2.2 кратному Rw, R_Wf3=5 кратному Rw, R_Wfp=4 кратному Rw, R_Wf2=2 кратному Rw, R_Wf1= 5.7 кратному Rw, и Rfm1=4.2 кратному Rw.

Примерная Схема Блока Умножителя

[0263] Фигуры 21A-21I показывают принципиальную схему блока 21000 умножителя, в соответствии с некоторыми вариантами осуществления. Нейрон 21000 основан на принципе четырехквадратного умножителя, собранного с использованием операционных усилителей U1 21040 и U2 21042 (показанных на Фигуре 21B), U3 21044 (показанного на Фигуре 21H) и U4 21046 и U5 21048 (показанных на Фигуре 21I), и транзисторах CMOS с M1 21052 по M68 21182. Вводы умножителя включают в себя V_one 21020 21006 и V_two 21008 (показанные на Фигуре 21B), и контакт Vdd 21004 (положительное напряжение питания, например, +1.5В относительно GND) и контакт Vss 21002 (отрицательное напряжение питания, например, -1.5В относительно GND). В данной схеме, используются дополнительные напряжения питания: контакт Ввод Vdd1 (положительное напряжение питания, например, +1.8В относительно GND), контакт Vss1 (отрицательное напряжение питания, например, -1.0В относительно GND). Результатом вычислений схемы является вывод на mult_out 21170 (штырь вывода) (показан на Фигуре 21I).

[0264] Обращаясь к Фигуре 21B, входной сигнал (V_one) из V_one 21006 соединяется с инвертером с одним усилением, выполненным в U1 21040, вывод которого формирует сигнал negA 21006, который равен по амплитуде, но противоположен по знаку сигналу V_one. Аналогичным образом, сигнал (V_two) из входа V_two 21008 соединяется с инвертором с одним усилением, выполненным в U2 21042, вывод которого формирует сигнал negB 21012, который равен по амплитуде, но противоположен по знаку сигналу V_two. Парные комбинации сигналов из возможных комбинаций (V_one, V_two, negA, negB) выводятся на соответствующие смесители на транзисторах CMOS.

[0265] Обращаясь обратно к Фигуре 21A, V_two 21008 и negA 21010 вводятся в умножитель, собранный на транзисторах M19 21086, M20 21088, M21 21090, M22 21092 NMOS и транзисторах M23 21094 и M24 21096 PMOS. Вывод данного умножителя является вводом в транзистор M6 21060 NMOS (Фигура 21D).

[0266] Аналогичные трансформации, которые происходят с сигналами, включают в себя:

- negB 21012 и V_one 21020 вводятся в умножитель, собранный на транзисторах M11 21070, M12 2072, M13 2074, M14 21076 NMOS и транзисторах M15 21078 и M16 21080 PMOS. Вывод данного умножителя вводится в транзистор M5 21058 NMOS (показанный на Фигуре 21D);

- V_one 21020 и negB 21012 вводятся в умножитель, собранный на транзисторах M18 21084, M48 21144, M49 21146 и M50 21148 PMOS и транзисторах M17 21082, M47 21142 NMOS. Вывод данного умножителя вводится в транзистор M9 21066 PMOS (показанный на Фигуре 21D);

- negA 21010 и V_two 21008 вводятся в умножитель, собранный на транзисторах M52 21152, M54 21156, M55 21158 и M56 21160 PMOS и транзисторах M51 21150 и M53 21154 NMOS. Вывод данного умножителя вводится в транзистор M2 21054 NMOS (показанный на Фигуре 21C);

- negB 21012 и V_one 21020 вводятся в умножитель, собранный на транзисторах M11 21070, M12 21072, M13 21074 и M14 21076 NMOS и транзисторах M15 21078 b M16 21080 PMOS. Вывод данного умножителя вводится в транзистор M10 21068 NMOS (показанный на Фигуре 21D);

- negB 21012 b negA 21010 вводятся в умножитель, собранный на транзисторах M35 21118, M36 21120, M37 21122 и M38 21124 21160 NMOS и транзисторах M39 21126 и M40 21128 PMOS. Вывод данного умножителя вводится в транзистор M27 21102 PMOS (показанный на Фигуре 21H);

- V_two 21008 и V_one 21020 вводятся в умножитель, собранный на транзисторах M41 21130, M42 21132, M43 21134 b M44 21136 NMOS и транзисторах M45 21138 и M46 21140 PMOS. Вывод данного умножителя вводится в транзистор M30 21108 NMOS (показанный на Фигуре 21H);

- V_one 21020 и V_two 21008 вводятся в умножитель, собранный на транзисторах M58 21162, M60 21166, M61 21168 и M62 21170 PMOS и транзисторах M57 21160 и M59 21164 NMOS. Вывод данного умножителя вводится в транзистор M34 21116 PMOS (показанный на Фигуре 21H); и

- negA 21010 и negB 21012 вводятся в умножитель, собранный на транзисторах M64 21174, M66 21178, M67 21180 и M68 21182 PMOS и транзисторах M63 21172 и M65 21176 NMOS. Вывод данного умножителя вводится в транзистор M33 21114 PMOS (показанный на Фигуре 21H).

[0267] Токовое зеркало (транзисторы M1 21052, M2 21053, M3 21054 и M4 21056) питает участок схемы четырехквадратного умножителя, показанный слева, выполненный из транзисторов M5 21058, M6 21060, M7 21062, M8 21064, M9 21066 и M10 21068. Токовые зеркала (на транзисторах M25 21098, M26 21100, M27 21102 и M28 21104) подают питание к правому участку четырехквадратного умножителя, выполненного из транзисторов M29 21106, M30 21108, M31 21110, M32 21112, M33 21114 и M34 21116. Результат умножения берется с резистора Ro 21022, включенного параллельно с транзистором M3 21054, и резистора Ro 21188, включенного параллельно с транзистором M28 21104, и подается в сумматор на U3 21044. Вывод U3 21044 подается на сумматор с усилением 7,1, собранный на U5 21048, второй ввод которого компенсируется опорным напряжением, установленным резисторами R1 21024 и R2 21026 и буфером U4 21046, как показано на Фигуре 21I. Результат умножения выводится через вывод Mult_Out 21170 через вывод U5 21048.

[0268] Фигура 21J показывает таблицу 21198 описания для схематики, показанной на Фигурах 21A-21I, в соответствии с некоторыми вариантами осуществления. U1-U5 являются CMOS OpAmp. Транзисторы N-Канального MOSFET с явным соединением с подложкой включают в себя транзисторы M1, M2, M25 и M26 (с коэффициентом затвора по длине (L) = 2.4u, и коэффициентом затвора по ширине (W) = 1.26u), транзисторы M5, M6, M29 и M30 (с L=0.36u и W=7.2u), транзисторы M7, M8, M31 и M32 (с L=0.36u и W=199.98u), транзисторы M11-M14, M19-M22, M35-M38 и M41-M44 (с L=0.36u и W= 0.4u) и транзисторы M17, M47, M51, M53, M57, M59, M43 и M64 (с L=0.36u и W=0.72u). Транзисторы P-Канального MOSFET с явным соединением с подложкой включают в себя транзисторы M3, M4, M27 и M28 (с коэффициентом затвора по длине (L) = 2.4u и коэффициентом затвора по ширине (W) = 1.26u), транзисторы M9, M10, M33 и M34 (с L=0.36u и W=7.2u), транзисторы M18, M48, M49, M50, M52, M54, M55, M56, M58, M60, M61, M62, M64, M66, M67 и M68 (с L=0.36u и W=0.8u) и транзисторы M15, M16, M23, M24, M39, M40, M45 и M46 (с L=0.36u и W=0.72u). Примерные номиналы резистора включают в себя Ro=1кОм, Rin=1кОм, Rf=1кОм, Rc4=2кОм и Rc5=2кОм, в соответствии с некоторыми вариантами осуществления.

Примерная схема Блока Сигмоиды

[0269] Фигура 22A показывает принципиальную схему блока 2200 сигмоиды, в соответствии с некоторыми вариантами осуществления. Функция сигмоиды (например, модули X1 20078, X3 20082 и X4 20084, описанные выше при обращении к Фигурам 20A-20F) реализуется с использованием операционных усилителей U1 2250, U2 2252, U3 2254, U4 2256, U5 2258, U6 2260, U7, 2262 и U8 2264, и транзисторов M1 2266, M2 2268 и M3 2270 NMOS. Контакт sigm_in 2206 является вводом модуля, контакт Ввод Vdd1 2222 является положительным напряжением питания +1.8В относительно GND 2208, и контакт Vss1 2204 является отрицательным напряжением питания -1.0В относительно GND. В данной схеме, U4 2256 имеет источник опорного напряжения в виде -0.2332В и напряжение устанавливается делителем R10 2230 и R11 2232. U5 2258 имеет источник опорного напряжения в виде 0.4В и напряжение устанавливается делителем R12 2234 и R13 2236. U6 2260 имеет источник опорного напряжения в виде 0.32687В, причем напряжение устанавливается делителем R14 2238 и R15 2240. U7 2262 имеет источник опорного напряжения в виде -0.5В, причем напряжение устанавливается делителем R16 2242 и R17 2244. U8 2264 имеет источник опорного напряжения в виде -0.33В, причем напряжение устанавливается делителем R18 2246 и R19 2248.

[0270] Функция сигмоиды формируется путем сложения соответствующих опорных напряжений на дифференциальном модуле, собранном на транзисторах M1 2266 и M2 2268. Токовое зеркало для дифференциальной ступени собирается с операционным усилителем U3 2254 с активным регулированием и транзистором M3 2270 NMOS. Сигнал от дифференциальной ступени снимается с помощью транзистора M2 NMOS, а резистор R5 2220 вводится в сумматор U2 2252. Выходной сигнал sigm_out 2210 снимается с вывода сумматора U2 2252.

[0271] Фигура 22B показывает таблицу 2278 описания для принципиальной схемы, показанной на Фигуре 22A, в соответствии с некоторыми вариантами осуществления. U1-U8 являются CMOS OpAmp. M1, M2 и M3 являются транзисторами N-Канального MOSFET с коэффициентом затвора по длине (L) = 0.18u и коэффициентом затвора по ширине (W) = 0.9u, в соответствии с некоторыми вариантами осуществления.

Примерная Схема Блока Гиперболического Тангенса

[0272] Фигура 23A показывает принципиальную схему блока 2300 функции гиперболического тангенса, в соответствии с некоторыми вариантами осуществления. Функция гиперболического тангенса (например, модули X2 20080 и X7 20090, описанные выше при обращении к Фигурам 20A-20F) реализуется с использованием операционных усилителей (U1 2312, U2 2314, U3 2316, U4 2318, U5 2320, U6 2322, U7 2328 и U8 2330) и транзисторов NMOS (M1 2332, M2 2334 и M3 2336). В данной схеме, контакт tanh_in 2306 является вводом модуля, контакт Ввод Vdd1 2304 является положительным напряжением питания +1.8В относительно GND 2308, и контакт Vss1 2302 является отрицательным напряжением питания -1.0В относительно GND. Кроме того, в данной схеме, U4 2318 имеет источник опорного напряжений -0.1В, причем напряжение устанавливается делителем R10 2356 и R11 2358. U5 2320 имеет источник опорного напряжений 1.2В, причем напряжение устанавливается делителем R12 2360 и R13 2362. U6 2322 имеет источник опорного напряжений 0.32687В, причем напряжение устанавливается делителем R14 2364 и R11 2366. U7 2328 имеет источник опорного напряжений -0.5В, причем напряжение устанавливается делителем R16 2368 и R17 2370. U8 2330 имеет источник опорного напряжений -0.33В, причем напряжение устанавливается делителем R18 2372 и R19 2374. Функция гиперболического тангенса формируется путем сложения соответствующих опорных напряжений в дифференциальном модуле, выполненном на транзисторах M1 2332 и M2 2334. Токовое зеркало для дифференциальной ступени получается с помощью операционного усилителя U3 2316 с активным регулированием и транзистора M3 2336 NMOS. С помощью транзистора M2 2334 NMOS и резистора R5 2346 сигнал снимается с дифференциальной ступени и вводится в сумматор U2 2314. Выходной сигнал tanh_out 2310 снимается с вывода сумматора U2 2314.

[0273] Фигура 23B показывает таблицу 2382 описания для принципиальной схемы, показанной на Фигуре 23A, в соответствии с некоторыми вариантами осуществления. U1-U8 являются CMOS OpAmp, а M1, M2 и M3 являются транзисторами N-Канального MOSFET, с коэффициентом затвора по длине (L) = 0.18u и коэффициентом затвора по ширине (W) = 0.9u.

Примерная Схема OP1 CMOS OpAmp Одного Нейрона

[0274] Фигуры 24A-24С показывают принципиальную схему OP1 CMOS OpAmp 2400 одного нейрона, в соответствии с некоторыми вариантами осуществления. Пример является вариантом одного нейрона на операционном усилителе, выполненном на CMOS в соответствии со схемой OP1, описанной в данном документе. В данной схеме, контакты V1 2410 и V2 2408 являются вводами одного нейрона, контакт смещение 2406 является напряжением +0.4В относительно GND, контакт Ввод Vdd 2402 является положительным напряжением питания +5.0В относительно GND, контакт Vss 2404 является GND и контакт Вывод 2474 является выводом одного нейрона. Параметры транзисторов CMOS определяются отношением геометрических размеров: L (длина канала затвора), и W (ширина канала затвора). Данный OpAmp имеет два токовых зеркала. Токовое зеркало на транзисторах M3 2420, M6 2426 и M13 2440 NMOS обеспечивает ток смещения дифференциальной пары на транзисторах M2 2418 и M5 2424 NMOS. Токовое зеркало на транзисторах M7 2428, M8 2430 и M15 2444 PMOS обеспечивает ток смещения дифференциальной пары на транзисторах M9 2432 и M10 2434 PMOS. На первой ступени дифференциального усилителя, транзисторы M2 2418 и M5 2424 NMOS являются усиливающими, а транзисторы M1 2416 и M4 2422 PMOS играют роль нагрузки активного тока. От транзистора M5 2424 сигнал выводится на затвор PMOS транзистора M13 2440. От транзистора M2 2418 сигнал выводится на правый ввод второй ступени дифференциального усилителя на транзисторах M9 2432 и M10 2434 PMOS. Транзисторы M11 2436 и M12 2438 NMOS играют роль нагрузки активного тока для транзисторов M9 2432 и M10 2434. Транзистор M17 2448 включается в соответствии со схемой с общим истоком для положительной полуволны сигнала. Транзистор M18 2450 включается в соответствии со схемой с общим истоком для отрицательной полуволны сигнала. Для увеличения общей нагрузочной способности OpAmp, инвертер на транзисторах M17 2448 и M18 2450 включается на выводе транзисторов M13 2440 и M14 2442.

[0275] Фигура 24D показывает таблицу 2476 описания для принципиальной схемы, показанной на Фигуре 24A-24C, в соответствии с некоторыми вариантами осуществления. Весовые коэффициенты соединений одного нейрона (с двумя вводами и одним выводом) устанавливаются соотношением резисторов: w1 = (Rp/R1+) - (Rn/R1 -); w2 = (Rp/R2+) - (Rn/R2 -); w bias = (Rp/Rbias+) - (Rn/Rbias -). Нормализующие резисторы (Rnorm - и Rnorm+) необходимы для получения точного равенства: (Rn /R1 -) + (Rn/R2 -) + (Rn/Rbias -) + (Rn/Rnorm -) = (Rp /R1 +) + (Rp/R2 +) + (Rp /Rbias+) + (Rp/Rnorm +). Транзисторы N-Канального MOSFET с явным соединением с подложкой включают в себя транзисторы M2 и M5 с L=0.36u и W=3.6u, M3, M6, M11, M12, M14 и M16 с L=0.36u и W=1.8u, и транзистор M18 с L=0.36u и W=18u. Транзисторы P-Канального MOSFET с явным соединением с подложкой включают в себя транзисторы M1, M4, M7, M8, M13 и M15 с L=0.36u и W=3.96u, транзисторы M9 и M10 с L=0.36u и W=11.88u, и транзисторы M17 с L=0.36u и W=39.6u.

Примерная Схема OP3 CMOS OpAmp Одного Нейрона

[0276] Фигуры 25A-25В показывают принципиальную схему варианта одного нейрона 25000 на операционных усилителях, выполненных на CMOS в соответствии со схемой OP3, в соответствии с некоторыми вариантами осуществления. Один нейрон состоит из трех простых операционных усилителей (OpAmp), в соответствии с некоторыми вариантами осуществления. Блок сумматора Нейрона выполняется на двух OpAmp с биполярным источником питания, а функция активации ReLU выполняется на OpAmp с униполярным источником питания и с усилением=10. Транзисторы M1 25028 - M16 25058 используются для суммирования отрицательных соединений нейрона. Транзисторы M17 25060 - M32 25090 используются для суммирования положительных соединений нейрона. Функция активации ReLU выполняется на транзисторах M33 25092 - M46 25118. В схеме, контакты V1 25008 и V2 25020 являются вводами одного нейрона, контакт смещение 25002 является напряжением +0.4В относительно GND, контакт Ввод Vdd 25004 является положительным напряжением питания +2.5В относительно GND, контакт Vss 25006 является отрицательным напряжением питания -2.5В, и контакт Вывод 25134 является выводом одного нейрона. Параметры транзисторов CMOS, используемых в одном нейроне, определяются отношением геометрических размеров: L (длина канала затвора) и W (ширина канала затвора). Рассмотрим работу наипростейшего OpAmp, включенного в один нейрон. Каждый OpAmp имеет два токовых зеркала. Токовое зеркало на транзисторах M3 25032 (M19 25064, M35 25096), M6 25038 (M22 25070, M38 25102) и M16 25058 (M32 25090, M48 25122) NMOS обеспечивает ток смещения дифференциальной пары на транзисторах M2 25030 (M18 25062, M34 25094) и M5 25036 (M21 25068, M35 25096) NMOS. Токовое зеркало на транзисторах M7 25040 (M23 25072, M39 25104), M8 25042 (M24 25074, M40 25106) и M15 25056 (M31 2588) PMOS обеспечивает ток смещения дифференциальной пары на транзисторах M9 25044 (M25 25076, M41 25108) и M10 25046 (M26 25078, M42 25110) PMOS. На ступени дифференциального усилителя, транзисторы M2 25030 (M18 25062, M34 25094) и M5 25036 (M21 25068, M37 25100) NMOS являются усиливающими, а транзисторы M1 25028 (M17 25060, M33 25092) и M4 25034 (M20 25066, M36 25098) PMOS играют роль нагрузки активного тока. От транзистора M5 25036 (M21 25068, M37 25100) сигнал вводится в затвор PMOS транзистора M13 25052 (M29 25084, M45 25116). От транзистора M2 25030 (M18 25062, M34 25094) сигнал вводится в правый ввод второй ступени дифференциального усилителя на транзисторах M9 25044 (M25 25076, M41 25108) и M10 25046 (M26 25078, M42 25110) PMOS. Транзисторы M11 25048 (M27 25080, M43 25112) и M12 25048 (M28 25080, M44 25114) NMOS играют роль нагрузки активного тока для транзисторов M9 25044 (M25 25076, M41 25108) и M10 25046 (M26 25078, M42 25110). Транзистор M13 25052 (M29 25082, M45 25116) включается в схему с общим истоком для сигнала положительной полуволны. Транзистор M14 25054 (M30 25084, M46 25118) включается в соответствии со схемой с общим истоком для отрицательной полуволны сигнала.

[0277] Весовые коэффициенты соединения одного нейрона (с двумя ввода и одним выводом) устанавливаются отношением резисторов: w1 = (R feedback/R1+) - (R feedback/R1 -); w2 = (R feedback/R2+) - (R feedback/R2 -); wbias = (R feedback/Rbias+) - (R feedback/Rbias- ); w1 = (R p*K amp/R1+) - (R n*K amp/R1 -); w2 = (R p*K amp/R2+) - (R n*K amp/R2 -); wbias = (R p*K amp/Rbias+) - (R n*K amp/Rbias-), где K amp=R1ReLU/R2ReLU. R feedback=100k - используется только для вычисления w1, w2, wbias. В соответствии с некоторыми вариантами осуществления, примерные значения включают в себя: R feedback=100k, Rn=Rp=Rcom=10k, K amp ReLU=1+90k/10k=10, w1 = (10k * 10/22.1k) - (10k * 10/21.5k) = -0.126276, w2 = (10k * 10/75k) - (10k * 10/71.5k) = - 0.065268, wbias = (10k * 10/71.5k) -(10k * 10/78.7k) = 0.127953.

[0278] Ввод сумматора отрицательной линии нейрона (M1 - M17) принимается от сумматора положительной линии (M17 - M32) через резистор Rcom.

[0279] Фигура 25E показывает таблицу 25136 описания для принципиальной схемы, показанной на Фигуре 25A-25D, в соответствии с некоторыми вариантами осуществления. Транзисторы N-Канального MOSFET с явным соединением с подложкой включают в себя транзисторы M2, M5, M18, M21, M34 и M37, с L=0.36u и W=3.6u, транзисторы M3, M6, M11, M12, M14, M16, M19, M22, M27, M28, M32, M38, M35, M38, M43, M44, M46 и M48, с L=0.36u и W=1.8u. Транзисторы P-Канального MOSFET с явным соединением с подложкой включают в себя транзисторы M1, M4, M7, M8, M13, M15, M17, M20, M23, M24, M29, M31, M33, M36, M39, M40, M45 и M47 с L=0.36u и W=3.96u, и транзисторы M9, M10, M25, M26, M41 и M42, с L=0.36u и W=11.88u.

Примерные Способы для Аналоговой Аппаратной Реализации Обученных Нейронных Сетей

[0280] Фигуры 27A-27J показывают блок-схему способа 2700 для аппаратной реализации (2702) нейронных сетей, в соответствии с некоторыми вариантами осуществления. Способ выполняется (2704) в вычислительном устройстве 200 (например, с использованием модуля 226 трансформации нейронной сети) с одним или несколькими процессорами 202, и памятью 214, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202. Способ включает в себя этап, на котором получают (2706) топологию нейронной сети (например, топологию 224) и весовые коэффициенты (например, весовые коэффициенты 222) обученной нейронной сети (например, сетей 220). В некоторых вариантах осуществления, обученная нейронная сеть обучается (2708) с использованием программного моделирования, чтобы сформировать весовые коэффициенты.

[0281] Способ также включает в себя этап, на котором трансформируют (2710) топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов. Обращаясь далее к Фигуре 27C, в некоторых вариантах осуществления, топология нейронной сети включает в себя (2724) один или несколько слоев нейронов. Каждый слой нейронов вычисляет соответствующие выводы на основе соответствующей математической функции. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов, включает в себя этап, на котором выполняют (2726) последовательность этапов для каждого слоя из одного или нескольких слоев нейронов. Последовательность этапов включает в себя этап, на котором идентифицируют (2728) один или несколько блоков функции на основе соответствующей математической функции для соответствующего слоя. Каждый блок функции имеет соответствующую схематическую реализацию с выводами блока, которые согласуются с выводами соответствующей математической функции. В некоторых вариантах осуществления, этап, на котором идентифицируют один или несколько блоков функции, включает в себя этап, на котором выбирают (2730) один или несколько блоков функции на основе типа соответствующего слоя. Например, слой может состоять из нейронов, и вывод слоя является линейной суперпозицией его вводов. Выбор одного или нескольких блоков функции основывается на данной идентификации типа слоя, если вывод слоя является линейной суперпозицией, или аналогичной идентификации шаблона. Некоторые варианты осуществления определяют, соответствует ли количество выводов > 1, затем используют либо трапециевидную, либо пирамидальную трансформацию.

[0282] Обращаясь далее к Фигуре 27D, в некоторых вариантах осуществления, один или несколько блоков функции включают в себя один или несколько базовых блоков функции (например, базовые блоки 232 функции) выбранные (2734) из группы, состоящей из следующего: (i) блок (2736) взвешенного суммирования с выводом блока в виде . является функцией активации Выпрямленной Линейной Единицы (ReLU) или аналогичной функцией активации (например, ReLU с пороговой величиной), представляет собой i-й ввод, представляет собой весовой коэффициент, соответствующий i-му вводу, и представляет собой значение смещения, и является оператором суммирования; (ii) блок (2738) умножителя сигнала с выводом блока в виде . представляет собой i-й ввод, представляет собой j-й ввод, а является предварительно определенным коэффициентом; (iii) блок (2740) активации по сигмоиде с выводом блока в виде . представляет собой ввод, а A и B являются предварительно определенными значениями коэффициента (например, A = -0.1; B=11.3) блока активации по сигмоиде; (iv) блок (2742) активации по гиперболическому тангенсу с выводом блока в виде . представляет собой ввод, а A и B являются предварительно определенными значениями коэффициента (например, A=0.1, B = -10.1); и блок (2744) задержки сигнала с выводом блока в виде . представляет собой период текущего времени, представляет собой вывод блока задержки сигнала для предшествующего периода времени , а является значением задержки.

[0283] Обращаясь теперь обратно к Фигуре 27C, последовательность этапов также включает в себя этап, на котором формируют (2732) соответствующую многослойную сеть аналоговых нейронов на основе расстановки одного или нескольких блоков функции. Каждый аналоговый нейрон реализует соответствующую функцию одного или нескольких блоков функции, и каждый аналоговый нейрон первого слоя многослойной сети соединяется с одним или несколькими аналоговыми нейронами второго слоя многослойной сети.

[0284] Обращаясь теперь обратно к Фигуре 27A, применительно к некоторым сетям, таким как GRU и LSTM, этап, на котором трансформируют (2710) топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов, требует более сложной обработки, в соответствии с некоторыми вариантами осуществления. Обращаясь далее к Фигуре 27E, предположим, что топология нейронной сети включает (2746) в себя один или несколько слоев нейронов. Предположим далее, что каждый слой нейронов вычисляет соответствующие выводы на основе соответствующей математической функции. В таких случаях, этап, на котором трансформируют топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов, включает в себя этапы, на которых: (i) осуществляют (2748) разложение первого слоя топологии нейронной сети на множество подслоев, включая разложение математической функции, соответствующей первому слою, чтобы получить одну или несколько промежуточных математических функций. Каждый подслой реализует промежуточную математическую функцию. В некоторых вариантах осуществления, математическая функция, соответствующая первому слою, включает в себя один или несколько весовых коэффициентов, и этап, на котором осуществляют разложение математической функции включает в себя этап, на котором регулируют (2750) один или несколько весовых коэффициентов так, что объединение одной или нескольких промежуточных функций приводит к математической функции; и (ii) выполняют (2752) последовательность этапов для каждого подслоя первого слоя топологии нейронной сети. Последовательность этапов включает в себя этапы, на которых выбирают (2754) один или несколько блоков подфункции на основе соответствующей промежуточной математической функции, для соответствующего подслоя; и формируют (2756) соответствующую многослойную аналоговую подсеть аналоговых нейронов на основе расстановки одного или нескольких блоков подфункции. Каждый аналоговый нейрон реализует соответствующую функцию одного или нескольких блоков подфункции, и каждый аналоговый нейрон первого слоя многослойной аналоговой подсети соединяется с одним или несколькими аналоговыми нейронами второго слоя многослойной аналоговой подсети.

[0285] Обращаясь далее к Фигуре 27H, предположим, что топология нейронной сети включает (2768) в себя один или несколько нейронов GRU или LSTM. В этом случае, этап, на котором трансформируют топологию нейронной сети включает в себя этап, на котором формируют (2770) один или несколько блоков задержки сигнала для каждого рекуррентного соединения одного или нескольких нейронов GRU или LSTM. В некоторых вариантах осуществления, внешний таймер цикла активирует один или несколько блоков задержки сигнала с постоянным периодом времени (например, 1, 5 или 10 временными шагами). Некоторые варианты осуществления используют несколько блоков задержки по одному сигналу для создания аддитивного временного сдвига. В некоторых вариантах осуществления, частота активации одного или нескольких блоков задержки сигнала синхронизируется с частотой входного сигнала сети. В некоторых вариантах осуществления, один или несколько блоков задержки сигнала активируются (2772) с частотой, которая совпадает с предварительно определенной частотой входного сигнала для топологии нейронной сети. В некоторых вариантах осуществления, данная предварительно определенная частота входного сигнала может зависеть от приложения, такого как Распознавание Активности Человека (HAR) или PPG. Например, предварительно определенная частота входного сигнала составляет 30-60Гц для видеообработки, около 100Гц для HAR и PPG, 16кГц для обработки звука и около 1-3Гц для управления батареей. Некоторые варианты осуществления активируют разные блоки задержки сигнала с разными частотами.

[0286] Обращаясь далее к Фигуре 27I, предположим, что топология нейронной сети включает (2774) в себя один или несколько слоев нейронов, которые выполняют неограниченные функции активации. В некоторых вариантах осуществления, в таких случаях, этап, на котором трансформируют топологию нейронной сети, включает в себя этап, на котором применяют и (2776) одну или несколько трансформаций, выбранных из группы, состоящей из следующего: замена (2778) функций неограниченной активации ограниченной активацией (например, замена ReLU на ReLU с пороговой величиной); и регулирование (2780) соединений или весовых коэффициентов эквивалентной аналоговой сети таким образом, что, для предварительно определенного одного или нескольких вводов, разность вывода между обученной нейронной сетью и эквивалентной аналоговой сетью сведена к минимуму.

[0287] Обращаясь теперь обратно к Фигуре 27A, способ также включает в себя этап, на котором вычисляют (2712) матрицу весов для эквивалентной аналоговой сети на основе весовых коэффициентов обученной нейронной сети. Каждый элемент матрицы весов представляет собой соответствующее соединение между аналоговыми компонентами эквивалентной аналоговой сети.

[0288] Способ также включает в себя этап, на котором формируют (2714) схематическую модель для реализации эквивалентной аналоговой сети на основе матрицы весов, включая выбор значений компонентов для аналоговых компонентов. Обращаясь далее к Фигуре 27B, в некоторых вариантах осуществления, этап, на котором формируют схематическую модель, включает в себя этап, на котором формируют (2716) матрицу сопротивлений для матрицы весов. Каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов и представляет собой значение сопротивления. В некоторых вариантах осуществления, способ включает в себя этап, на котором повторно формируют только матрицу сопротивлений для резисторов переобученной сети. В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: получают (2718) новые весовые коэффициенты для обученной нейронной сети, вычисляют (2720) новую матрицу весов для эквивалентной аналоговой сети на основе новых весовых коэффициентов, и формируют (2722) новую матрицу сопротивлений для новой матрицы весов.

[0289] Обращаясь далее к Фигуре 27J, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором формируют (2782) одну или несколько литографических масок (например, формируют маски 250 и/или 252 с использованием модуля 248 формирования маски) для изготовления схемы, реализующей эквивалентную аналоговую сеть аналоговых компонентов на основе матрицы сопротивлений. В некоторых вариантах осуществления, способ включает в себя этап, на котором повторно формируют только маски для резисторов (например, маски 250) для переобученных сетей. В некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: (i) получают (2784) новые весовые коэффициенты для обученной нейронной сети; (ii) вычисляют (2786) новую матрицу весов для эквивалентной аналоговой сети на основе новых весовых коэффициентов; (iii) формируют (2788) новую матрицу сопротивлений для новой матрицы весов; и (iv) формируют (2790) новую литографическую маску для изготовления схемы, реализующей эквивалентную аналоговую сеть аналоговых компонентов, на основе новой матрицы сопротивлений.

[0290] Обращаясь теперь обратно к Фигуре 27G, аналоговые компоненты включают (2762) в себя множество операционных усилителей и множество резисторов. Каждый операционный усилитель представляет собой аналоговый нейрон эквивалентной аналоговой сети, а каждый резистор представляет собой соединение между аналоговыми нейронами. Некоторые варианты осуществления включают в себя другие аналоговые компоненты, такие как четырехквадратные умножители, схемы функции сигмоиды и гиперболического тангенса, линии задержки, сумматоры и/или делители. В некоторых вариантах осуществления, этап, на котором выбирают (2764) значения компонента аналоговых компонентов, включает в себя этап, на котором выполняют (2766) способ градиентного спуска и/или другие способы квантования весового коэффициента, чтобы идентифицировать возможные значения сопротивления для множества резисторов.

[0291] Обращаясь теперь обратно к Фигуре 27F, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором реализуют определенные функции активации (например, Softmax) в выходном слое в цифровом виде. В некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором формируют (2758) эквивалентную цифровую сеть цифровых компонентов для одного или нескольких выходных слоев топологии нейронной сети; и соединяют (2760) вывод одного или нескольких слоев эквивалентной аналоговой сети с эквивалентной цифровой сетью цифровых компонентов.

Примерные Способы для Ограниченной Аналоговой Аппаратной Реализации Нейронных Сетей

[0292] Фигуры 28A-28S показывают блок-схему способа 2800 для аппаратной реализации (28002) нейронных сетей в соответствии с конструктивными ограничениями аппаратного обеспечения, в соответствии с некоторыми вариантами осуществления. Способ выполняется (28004) в вычислительном устройстве 200 (например, с использованием модуля 226 трансформации нейронной сети) с одним или несколькими процессорами 202, и памятью, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202. Способ включает в себя этап, на котором получаю (28006) топологию нейронной сети (например, топологию 224) и весовые коэффициенты (например, весовые коэффициенты 222) обученной нейронной сети (например, сетей 220).

[0293] Способ также включает в себя этап, на котором вычисляют (28008) одно или несколько ограничений соединения на основе конструктивных ограничений аналоговой интегральной микросхемы (IC) (например, ограничений 236). Например, конструктивные ограничения IC могут устанавливать предел тока (например, 1А), а схематика нейрона и конструкция операционного усилителя (OpAmp) могут устанавливать выходной ток OpAmp в диапазоне [0-10мА] таким образом, что это ограничивается соединения выходного нейрона до 100. Это означает, что нейрон имеет 100 выводов, которые позволяют току протекать к следующему слою через 100 соединений, но ток на выводе операционного усилителя ограничивается 10мА, так что некоторые варианты осуществления используют максимум 100 вывод (0.1мА на 100=10мА). Без данного ограничения, некоторые варианты осуществления используют повторители тока, чтобы увеличить количество выводов до значения больше 100, например.

[0294] Способ также включает в себя этап, на котором трансформируют (28010) топологию нейронной сети (например, с использованием модуля 226 трансформации нейронной сети) в эквивалентную сеть с разреженными соединениями аналоговых компонентов, отвечающую одному или нескольким ограничениям соединения.

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

[0296] Обращаясь далее к Фигуре 28B, в некоторых вариантах осуществления, топология нейронной сети включает (28018) в себя по меньшей мере один слой с плотными соединениями с вводами (нейроны в предыдущем слое) и выводами (нейроны в текущем слое) и матрицей весов, и этап, на котором трансформируют (28020) по меньшей мере один слой с плотными соединениями, включает в себя этап, на котором конструируют (28022) эквивалентную сеть с разреженными соединениями с вводами, выводами и слоями так, что степень входного соединения не превышает , а степень выходного соединения не превышает .

[0297] Обращаясь далее к Фигуре 28C, в некоторых вариантах осуществления, топология нейронной сети включает (28024) в себя по меньшей мере один слой с плотными соединениями с вводами (нейроны в предыдущем слое) и выводами (нейроны в текущем слое) и матрицей весов, и этап, на котором трансформируют (28026) по меньшей мере один слой с плотными соединениями, включает в себя этап, на котором конструируют (28028) эквивалентную сеть с разреженными соединениями с вводами, выводами и слоями. Каждый слой представляется соответствующей матрицей весов, где отсутствующие соединения представляются нулями, так что степень входного соединения не превышает , а степень выходного соединения не превышает . Уравнение выполняется с предварительно определенной точностью. Предварительно определенная точность является приемлемым значением точности, которое статистически гарантирует то, что измененный вывод сети отличается от соотносимого вывода сети на не более чем допустимое значение ошибки, и данное значение ошибки является зависимым от задачи (как правило между 0.1% и 1%).

[0298] Обращаясь далее к Фигуре 28D, в некоторых вариантах осуществления, топология нейронной сети включает (28030) в себя один слой с разреженными соединениями с вводами и выводами, максимальной степенью входного соединения, максимальной степенью выходного соединения и матрицей весов, где отсутствующие соединения представляются нулями. В таких случаях, этап, на котором трансформируют (28032) один слой с разреженными соединениями, включает в себя этап, на котором конструируют (28034) эквивалентную сеть с разреженными соединениями с вводами, выводами, слоями. Каждый слой представляется соответствующей матрицей весов, где отсутствующие соединения представляются нулями, так что степень входного соединения не превышает , а степень выходного соединения не превышает , и уравнение выполняется с предварительно определенной точностью.

[0299] Обращаясь далее к Фигуре 28E, в некоторых вариантах осуществления, топология нейронной сети включает (28036) в себя сверточный слой (например, сверточный слой по Глубинам или Разделяемый сверточный слой) с вводами (нейроны в предыдущем слое) и выводами (нейроны в текущем слое). В таких случаях, этап, на котором трансформируют (28038) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором осуществляют (28040) разложение сверточного слоя на один слой с разреженными соединениями с вводами и выводами, максимальной степенью входного соединения и максимальной степенью выходного соединения, где и .

[0300] Обращаясь обратно к Фигуре 28A, способ также включает в себя этап, на котором вычисляют (28014) матрицу весов для эквивалентной сети с разреженными соединениями на основе весовых коэффициентов обученной нейронной сети. Каждый элемент матрицы весов представляет собой соответствующее соединение между аналоговыми компонентами эквивалентной сети с разреженными соединениями.

[0301] Обращаясь теперь к Фигуре 28F, в некоторых вариантах осуществления, топология нейронной сети включает (28042) в себя рекуррентный нейронный слой, и этап, на котором трансформируют (28044) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором трансформируют (28046) рекуррентный нейронный слой в один или несколько слоев с разреженными соединениями или с плотными соединениями с соединениями задержки сигнала.

[0302] Обращаясь далее к Фигуре 28G, в некоторых вариантах осуществления, топология нейронной сети включает в себя рекуррентный нейронный слой (например, слой долгой краткосрочной памяти (LSTM) или слой управляемых рекуррентных блоков (GRU)), и этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором осуществляют разложение рекуррентного нейронного слоя на несколько слоев, где по меньшей мере один из слоев эквивалентен слою с плотными соединениями или с разреженными соединениями с вводами (нейроны в предыдущем слое) и выводами (нейроны в текущем слое) и матрицей весов, где отсутствующие соединения представляются нулями.

[0303] Обращаясь далее к Фигуре 28H, в некоторых вариантах осуществления, способ включает выполнение трансформации однослойного персептрона с одним нейроном вычисления. В некоторых вариантах осуществления, топология нейронной сети включает (28054) в себя вводов, весовой вектор и однослойный персептрон с нейроном вычисления с функцией активации. В таких случаях, этап, на котором трансформируют (28056) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают (28058) степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) вычисляют (28060) количество слоев для эквивалентной сети с разреженными соединениями с использованием уравнения ; и (iii) конструируют (28062) эквивалентную сеть с разреженными соединениями с вводами, слоями и степенью соединения. Эквивалентная сеть с разреженными соединениями включает в себя соответствующий один или несколько аналоговых нейронов в каждом слое из слоев. Каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации нейрона вычисления однослойного персептрона. Кроме того, в таких случаях, этап, на котором вычисляют (28064) матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этап, на котором вычисляют (28066) весовой вектор для соединений эквивалентной сети с разреженными соединениями путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0304] Обращаясь далее к Фигуре 28I, в некоторых вариантах осуществления, способ включает в себя выполнение трансформации однослойного персептрона с L нейронами вычисления. В некоторых вариантах осуществления, топология нейронной сети включает (28068) в себя вводов, однослойный персептрон с нейронами вычисления и матрицей весов, которая включает в себя строку весовых коэффициентов для каждого нейрона вычисления из нейронов вычисления. В таких случаях, этап, на котором трансформируют (28070) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают (28072) степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) вычисляют (28074) количество слоев для эквивалентной сети с разреженными соединениями с использованием уравнения ; (iii) осуществляют (28076) разложение однослойного персептрона на сетей однослойного персептрона. Каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления; (iv) для каждой сети (28078) однослойного персептрона из сетей однослойного персептрона, конструируют (28080) соответствующую эквивалентную пирамидоподобную подсеть для соответствующей сети однослойного персептрона с вводами, слоями и степенью соединений. Эквивалентная пирамидоподобная подсеть включает в себя один или несколько соответствующих аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации соответствующего нейрона вычисления, который соответствует соответствующему однослойному персептрону; и (v) конструируют (28082) эквивалентную сеть с разреженными соединениями путем сцепления каждой эквивалентной пирамидоподобной подсети, включая сцепление ввода каждой эквивалентной пирамидоподобной подсети для сетей однослойного персептрона, чтобы сформировать входной вектор с вводами. Кроме того, в таких случаях, этап, на котором вычисляют (28084) матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы на которых, для каждой сети (28086) однослойного персептрона из сетей однослойного персептрона: (i) устанавливают (28088) весовой вектор , причем iя строка матрицы весов, соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона; и (ii) вычисляют (28090) весовой вектор для соединений соответствующей эквивалентной пирамидоподобной подсети путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0305] Обращаясь далее к Фигуре 28J, в некоторых вариантах осуществления, способ включает в себя выполнение алгоритма трансформации для многослойного персептрона. В некоторых вариантах осуществления, топология нейронной сети включает (28092) в себя вводов, многослойный персептрон с слоями, причем каждый слой из слоев включает в себя соответствующий набор из нейронов вычисления и соответствующих матриц весов, которые включают в себя строку весовых коэффициентов для каждого нейрона вычисления из нейронов вычисления. В таких случаях, этап, на котором трансформируют (28094) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают (28096) степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) осуществляют (28098) разложение многослойного персептрона на сетей однослойного персептрона. Каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления. Этап, на котором осуществляют разложение многослойного персептрона, включает в себя этап, на котором дублируют один или несколько вводов из вводов, которые совместно используются нейронами вычисления; (iii) для каждой сети (28100) однослойного персептрона из сетей однослойного персептрона: (a) вычисляют (28102) количество слоев для соответствующей эквивалентной пирамидоподобной подсети с использованием уравнения . является количеством вводов для соответствующего нейрона вычисления в многослойном персептроне; и (b) конструируют соответствующую эквивалентную пирамидоподобную подсеть для соответствующей сети однослойного персептрона с вводами, слоями и степенью соединения. Эквивалентная пирамидоподобная подсеть включает в себя один или несколько соответствующих аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации соответствующего нейрона вычисления, который соответствует соответствующей сети однослойного персептрона; и (iv) конструируют (28106) эквивалентную сеть с разреженными соединениями путем сцепления каждой эквивалентной пирамидоподобной подсети, включая сцепление ввода каждой эквивалентной пирамидоподобной подсети для сетей однослойного персептрона, чтобы сформировать входной вектор с вводами. В таких случаях, этап, на котором вычисляют (28108) матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы, на которых: для каждой сети (28110) однослойного персептрона из сетей однослойного персептрона: (i) устанавливают (28112) весовой вектор , причем iя строка матрицы весов, соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона, где является соответствующим слоем соответствующего нейрона вычисления в многослойном персептроне; и (ii) вычисляют (28114) весовой вектор для соединений соответствующей эквивалентной пирамидоподобной подсети путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0306] Обращаясь далее к Фигуре 28K, в некоторых вариантах осуществления, топология нейронной сети включает (28116) в себя Сверточную Нейронную Сеть (CNN) с вводами, слоями, причем каждый слой из слоев включает в себя соответствующий набор из нейронов вычисления и соответствующих матриц весов, которые включают в себя строку весовых коэффициентов для каждого нейрона вычисления из нейронов вычисления. В таких случаях, этап, на котором трансформируют (28118) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: (i) извлекают (28120) степень соединения для эквивалентной сети с разреженными соединениями в соответствии с одним или несколькими ограничениями соединения; (ii) осуществляют (28221) разложение CNN на сетей однослойного персептрона. Каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления. Этап, на котором осуществляют разложение CNN, включает в себя этап, на котором дублируют один или несколько вводов из вводов, которые совместно используются нейронами вычисления; (iii) для каждой сети однослойного персептрона из сетей однослойного персептрона: (a) вычисляют количество слоев для соответствующей эквивалентной пирамидоподобной подсети с использованием уравнения . является соответствующим слоем у соответствующего нейрона вычисления в CNN, а является количеством вводов для соответствующего нейрона вычисления в CNN; и (b) конструируют соответствующую эквивалентную пирамидоподобную подсеть для соответствующей сети однослойного персептрона с вводами, слоями и степенью соединения. Эквивалентная пирамидоподобная подсеть включает в себя один или несколько соответствующих аналоговых нейронов в каждом слое из слоев, причем каждый аналоговый нейрон первых слоев реализует тождественную трансформацию, а аналоговый нейрон последнего слоя реализует функцию активации соответствующего нейрона вычисления, который соответствует соответствующей сети однослойного персептрона; и (iv) конструируют (28130) эквивалентную сеть с разреженными соединениями путем сцепления каждой эквивалентной пирамидоподобной подсети, включая сцепление ввода каждой эквивалентной пирамидоподобной подсети для сетей однослойного персептрона, чтобы сформировать входной вектор с вводами. В таких случаях, этап, на котором вычисляют (28132) матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы, на которых, для каждой сети (28134) однослойного персептрона из сетей однослойного персептрона: (i) устанавливают весовой вектор , причем iя строка матрицы весов соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона, где является соответствующим слоем соответствующего нейрона вычисления в CNN; и (ii) вычисляют весовой вектор для соединений соответствующей эквивалентной пирамидоподобной подсети путем решения системы уравнений на основе весового вектора . Система уравнений включает в себя уравнений с переменными, и вычисляется с использованием уравнения .

[0307] Обращаясь далее к Фигуре 28L, в некоторых вариантах осуществления, способ включает в себя трансформацию двух слоев в сеть на основе трапеции. В некоторых вариантах осуществления, топология нейронной сети включает (28140) в себя вводов, слой с нейронами, слой с нейронами и матрицу весов, где является набором действительных чисел, причем каждый нейрон слоя соединяется с каждым нейроном слоя , и каждый нейрон слоя выполняет функцию активации так, что вывод слоя вычисляется с использованием уравнения для ввода . В таких случаях, этап, на котором трансформируют (28142) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором выполняют трапециевидную трансформацию, которая включает в себя: (i) извлечение (28144) возможной степени входного соединения и возможной степени выходного соединения, в соответствии с одним или несколькими ограничениями соединения; и (ii) в соответствии с определением того, что , конструирование (28146) трехслойной аналоговой сети, которая включает в себя слой с аналоговыми нейронами, выполняющими тождественную функцию активации, слой с аналоговыми нейронами, выполняющими тождественную функцию активации, и слой с аналоговыми нейронами, выполняющими функцию активации, так что каждый аналоговый нейрон в слое имеет выводов, каждый аналоговый нейрон в слое имеет не больше вводов и выводов, и каждый аналоговый нейрон в слое имеет выводов. В таких случаях, этап, на котором вычисляют (28148) матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этап, на котором формируют (2850) разреженные матрицы и весов путем решения матричного уравнения , которое включает в себя уравнений с переменными, так что общий вывод слоя вычисляется с использованием уравнения . Разреженная матрица весов представляет собой соединения между слоями и , а разреженная матрица весов представляет собой соединения между слоями и .

[0308] Обращаясь далее к Фигуре 28M, в некоторых вариантах осуществления, этап, на котором выполняют трапециевидную трансформацию, дополнительно включает в себя этапы, на которых: в соответствии с определением того, что : (i) дробят (28154) слой , чтобы получить подслой с нейронами и подслой с нейронами так, что ; (ii) для подслоя с нейронами, выполняют (28156) этапы конструирования и формирования; и (iii) для подслоя с нейронами, рекурсивно выполняют (28158) этапы дробления, конструирования и формирования.

[0309] Обращаясь далее к Фигуре 28N, способ включает в себя трансформацию многослойного персептрона в сеть на основе трапеции. В некоторых вариантах осуществления, топология нейронной сети включает (28160) в себя сеть многослойного персептрона, причем способ дополнительно включает в себя этап, на котором, для каждой пары последовательных слоев сети многослойного персептрона, итерационно выполняют (28162) трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями.

[0310] Обращаясь далее к Фиг. 28O, способ включает в себя трансформацию рекуррентной нейронной сети в сеть на основе трапеции. В некоторых вариантах осуществления, топология нейронной сети включает (28164) в себя рекуррентную нейронную сеть (RNN), которая включает в себя (i) вычисление линейной комбинации для двух слоев с полными соединениями; (ii) поэлементное сложение и (iii) вычисление нелинейной функции. В таких случаях, способ дополнительно включает в себя этап, на котором выполняют (28166) трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями для (i) двух слоев с полными соединениями и (ii) вычисления нелинейной функции. Поэлементное сложение является общей операцией, которая может быть реализована в сетях любой структуры, примеры которых предоставлены выше. Вычисление нелинейной функции является операцией по нейронам, которая зависит от ограничения No и Ni, и обычно вычисляется с помощью блока ‘сигмоиды’ или ‘tanh’ отдельно по каждому нейрону.

[0311] Обращаясь далее к Фигуре 28P, топология нейронной сети включает (28168) в себя сеть долгой краткосрочной памяти (LSTM) или сеть управляемых рекуррентных блоков (GRU), которые включают в себя (i) вычисления линейной комбинации для множества слоев с полными соединениями, (ii) поэлементное сложение, (iii) произведение Адамара и (iv) множество вычислений нелинейной функции (операции сигмоиды и гиперболического тангенса). В таких случаях, способ дополнительно включает в себя этап, на котором выполняют (28170) трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями для (i) множества слоев с полными соединениями и (ii) множества вычислений нелинейной функции. Поэлементное сложение и произведения Адамара являются общими операциями, которые могут быть реализованы в сетях любой структуры, описанной выше.

[0312] Обращаясь далее к Фигуре 28Q, топология нейронной сети включает (28172) в себя сверточную нейронную сеть (CNN), которая включает в себя (i) множество слоев с частичными соединениями (например, последовательность сверточных слоев или слоев пула; предполагается, что каждый слой пула будет сверточным позже с шагом, больше 1) и (ii) один или несколько слоев с полными соединениями (последовательность заканчивается в слоях с полными соединениями). В таких случаях, способ дополнительно включает в себя этапы, на которых: (i) трансформируют (28174) множество слоев с частичными соединениями в эквивалентные слои с полными соединениями путем вставки отсутствующих соединений с нулевыми весовыми коэффициентами; и для каждой пары последовательных слоев из эквивалентных слоев с полными соединениями и одного или нескольких слоев с полными соединениями, итерационно выполняют (28176) трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями.

[0313] Обращаясь далее к Фигуре 28R, топология нейронной сети включает (28178) в себя вводов, выходных нейронов и матрицу весов, где является набором действительных чисел, причем каждый выходной нейрон выполняет функцию активации. В таких случаях, этап, на котором трансформируют (28180) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этап, на котором выполняют трансформацию аппроксимации, который включает в себя этапы, на которых: (i) извлекают (28182) возможную степень входного соединения и возможную степень выходного соединения, в соответствии с одним или несколькими ограничениями соединения; (ii) выбирают (28184) параметр из набора ; (iii) в соответствии с определением того, что , конструируют (28186) пирамидальную нейронную сеть, которая формирует первые слои эквивалентной сети с разреженными соединениями, так что пирамидальная нейронная сеть имеет нейронов в ее выходном слое. Каждый нейрон в пирамидальной нейронной сети выполняет тождественную функцию; и (iv) конструируют (28188) трапециевидную нейронную сеть с вводами и выводами. Каждый нейрон в последнем слое трапециевидной нейронной сети выполняет функцию активации, а все другие нейроны выполняют тождественную функцию. Также в таких случаях, этап, на котором вычисляют (28190) матрицу весов для эквивалентной сети с разреженными соединениями, включает в себя этапы, на которых: (i) формируют (28192) весовые коэффициенты для пирамидальной нейронной сети, включая (i) установку весовых коэффициентов каждого нейрона i первого слоя пирамидальной нейронной сети в соответствии со следующим правилом: (a) . является ненулевой константой, а ; и (b) , для всех весовых коэффициентов j нейрона за исключением ; и (ii) установку всех других весовых коэффициентов пирамидальной нейронной сети в 1; и (ii) формируют (28194) весовые коэффициенты для трапециевидной нейронной сети, включая (i) установку весовых коэффициентов каждого нейрона i первого слоя трапециевидной нейронной сети (с учетом всей сети это (p+1)-й слой) в соответствии с уравнением и (ii) установку других весовых коэффициентов трапециевидной нейронной сети в 1.

[0314] Обращаясь далее к Фигуре 28S, в некоторых вариантах осуществления, топология нейронной сети включает (28196) в себя многослойный персептрон с вводами, слоями и нейронами вычисления в i-м слое, и матрицей весов для i-го слоя, где . В таких случаях, этап, на котором трансформируют (28198) топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, включает в себя этапы, на которых: для каждого слоя (28200) из слоев многослойного персептрона, конструируют (28202) соответствующую пирамидально-трапециевидную сеть PTNNXj путем выполнения трансформации аппроксимации до соответствующего однослойного персептрона, состоящего из вводов, выходных нейронов и матрицы весов; и (ii) конструируют (28204) эквивалентную сеть с разреженными соединениями путем укладки друг на друга каждой пирамидальной трапециевидной сети (например, вывод пирамидальной трапециевидной сети PTNNXj-1 устанавливается в качестве ввода для PTNNXj).

[0315] Обращаясь обратно к Фигуре 28A, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором формируют (28016) схематическую модель для реализации эквивалентной сети с разреженными соединениями, используя матрицу весов.

Примерные Способы Вычисления Значения Сопротивления для Аналоговой Реализации Обученных Нейронных Сетей

[0316] Фигуры 29A-29А показывают блок-схему способа 2900 для аппаратной реализации (2902) нейронных сетей в соответствии с конструктивными ограничениями аппаратного обеспечения, в соответствии с некоторыми вариантами осуществления. Способ выполняется (2904) в вычислительном устройстве 200 (например, с использованием модуля 238 квантования весового коэффициента) с одним или несколькими процессорами 202, и памятью 214, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202.

[0317] Способ включает в себя этап, на котором получают (2906) топологию нейронной сети (например, топологию 224) и весовые коэффициенты (например, весовые коэффициенты 222) обученной нейронной сети (например, сетей 220). В некоторых вариантах осуществления, квантование весового коэффициента выполняется во время обучения. В некоторых вариантах осуществления, обученная нейронная сеть обучается (2908) таким образом, что каждый слой топологии нейронной сети имеет квантованные весовые коэффициенты (например, конкретное значение из списка дискретных значений; например, каждый слой имеет только 3 значения весовых коэффициентов из +1, 0, -1).

[0318] Способ также включает в себя этап, на котором трансформируют (2910) топологию нейронной сети (например, с использованием модуля 226 трансформации нейронной сети) в эквивалентную аналоговую сеть аналоговых компонентов, включающих в себя множество операционных усилителей и множество резисторов. Каждый операционный усилитель представляет собой аналоговый нейрон эквивалентной аналоговой сети, а каждый резистор представляет собой соединение между двумя аналоговыми нейронами.

[0319] Способ также включает в себя этап, на котором вычисляют (2912) матрицу весов для эквивалентной аналоговой сети на основе весовых коэффициентов обученной нейронной сети. Каждый элемент матрицы весов представляет собой соответствующее соединение.

[0320] Способ также включает в себя этап, на котором формируют (2914) матрицу сопротивлений для матрицы весов. Каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов и представляет собой значение сопротивления.

[0321] Обращаясь далее к Фигуре 29B, в некоторых вариантах осуществления, формирование матрицы сопротивлений для матрицы весов включает в себя упрощенный итерационный способ на основе градиентного спуска для нахождения набора резисторов. В некоторых вариантах осуществления, этап, на котором формируют матрицу сопротивлений для матрицы весов, включает в себя этапы, на которых: (i) получают (2916) предварительно определенный диапазон возможных значений сопротивления и выбирают первоначальное базовое значение сопротивления в рамках предварительно определенного диапазона. Например, диапазон и базовое сопротивления выбираются в соответствии с: значениями элементов матрицы весов; значения определяются процессом изготовления; диапазонами-резисторами, которые могут быть фактически изготовлены; большие резисторы не являются предпочтительными; квантованием того, что фактически может быть изготовлено. В некоторых вариантах осуществления, предварительно определенный диапазон возможных значений сопротивления включает (2918) в себя сопротивления в соответствии с номинальным рядом E24 в диапазоне от 100кОм до 1МОм; (ii) выбирают (2920) набор ограниченной длины значений сопротивления в рамках предварительно определенного диапазона, который обеспечивает наиболее однородное распределение возможных весовых коэффициентов в рамках диапазона для всех комбинаций из в рамках набора ограниченной длины значений сопротивления. В некоторых вариантах осуществления, значения весового коэффициента находятся за пределами данного диапазона, но среднее квадратичное расстояние между весовыми коэффициентами в данном диапазоне является минимальным; (iii) выбирают (2922) значение сопротивления, из набора ограниченной длины значений сопротивления, либо для каждого аналогового нейрона, или для каждого слоя эквивалентной аналоговой сети, на основе максимального весового коэффициента входящих соединений и смещения каждого нейрона, либо для каждого слоя эквивалентной аналоговой сети, так что является наиболее близким значением набора резисторов к . В некоторых вариантах осуществления, и выбираются (2924) независимо для каждого слоя эквивалентной аналоговой сети. В некоторых вариантах осуществления, и выбираются (2926) независимо для каждого аналогового нейрона эквивалентной аналоговой сети; и (iv) для каждого элемента матрицы весов, выбирают (2928) соответствующее первое значение сопротивления и соответствующее второе значение сопротивления, которые сводят к минимуму ошибку в соответствии с уравнением для всех возможных значений и в рамках предварительно определенного диапазона возможных значений сопротивления. является соответствующим элементом матрицы весов, а является предварительно определенным относительным значением допуска для возможных значений сопротивления.

[0322] Обращаясь далее к Фиг. 29C, некоторые варианты осуществления выполняют уменьшение весовых коэффициентов. В некоторых вариантах осуществления, первый один или несколько весовых коэффициентов матрицы весов и первый один или несколько вводов представляют (2930) собой одно или несколько соединений с первым операционным усилителем эквивалентной аналоговой сети. Способ дополнительно включает в себя этапы, на которых перед этапом, на котором формируют (2932) матрицу сопротивлений: (i) модифицируют (2934) первый один или несколько весовых коэффициентов на первое значение (например, делят первый один или несколько весовых коэффициентов на первое значение, чтобы уменьшить диапазон весовых коэффициентов, или умножают первый один или несколько весовых коэффициентов на первое значение, чтобы увеличить диапазон весовых коэффициентов); и (ii) конфигурируют (2936) первый операционный усилитель, чтобы он умножал, на первое значение, линейную комбинацию первого одного или нескольких весовых коэффициентов и первого одного или нескольких вводов, перед выполнением функции активации. Некоторые варианты осуществления выполняют уменьшение весовых коэффициентов с тем, чтобы изменить коэффициент умножения одного или нескольких операционных усилителей. В некоторых вариантах осуществления, набор значений резисторов создает весовые коэффициенты некоторого диапазона, и в некоторых частях данного диапазона ошибка будет выше, чем в других. Предположим, что существует только 2 номинала (например, 1Ом и 4 Ом), и эти резисторы могут создавать весовые коэффициенты [-3; -0.75; 0; 0.75; 3]. Предположим, что первый слой нейронной сети имеет весовые коэффициенты {0, 9}, а второй слой имеет весовые коэффициенты {0, 1}, некоторые варианты осуществления делят весовые коэффициенты первого слоя на 3 и умножают весовые коэффициенты второго слоя на 3, чтобы уменьшить общую ошибку. Некоторые варианты осуществления предусматривают ограничение значений весового коэффициента во время обучения, путем регулирования функции потерь (например, с использованием регуляризатора l1 или l2) таким образом, что результирующая сеть не имеет слишком больших весовых коэффициентов для набора резисторов.

[0323] Обращаясь далее к Фигуре 29D, способ дополнительно включает в себя ограничение весовых коэффициентов до интервалов. Например, способ дополнительно включает в себя этапы, на которых: получают (2938) предварительно определенный диапазон весовых коэффициентов; и обновляют (2940) матрицу весов в соответствии с предварительно определенным диапазоном весовых коэффициентов так, что эквивалентная аналоговая сеть создает вывод аналогичный обученной нейронной сети для одного и того же ввода.

[0324] Обращаясь далее к Фигуре 29F, способ дополнительно включает в себя уменьшение чувствительности к весовым коэффициентам у сети. Например, способ дополнительно включает в себя этап, на котором переобучают (2942) обученную нейронную сеть, чтобы уменьшить чувствительность к ошибкам в весовых коэффициентах или значениях сопротивления, что вызывает создание эквивалентной аналоговой сетью вывода отличного в сравнении с обученной нейронной сетью. Другими словам, некоторые варианты осуществления включают в себя этап, на котором дополнительно обучают уже обученную нейронную сеть для того, чтобы придать ей меньшую чувствительность к небольшим произвольно распределенным ошибкам весовых коэффициентов. Квантование и изготовление резисторов создают небольшие ошибки весовых коэффициентов. Некоторые варианты осуществления трансформирую сеть так, что результирующая сеть является менее чувствительной к каждому конкретному значению весового коэффициента. В некоторых вариантах осуществления, это выполняется путем добавления небольшого относительного произвольного значения к каждому сигналу по меньшей мере в некоторые из слоев во время обучения (например, аналогично слою отсева).

[0325] Обращаясь далее к Фигуре 29F, некоторые варианты осуществления включают в себя уменьшение диапазона распределения весовых коэффициентов. Некоторые варианты осуществления включает в себя этап, на котором переобучают (2944) обученную нейронную сеть так, чтобы свести к минимуму весовой коэффициент в любом слое, который больше среднего абсолютного весового коэффициента для этого слоя на величину большую, чем предварительно определенная пороговая величина. Некоторые варианты осуществления выполняют данный этап через переобучение. Примерная штрафная функция включает в себя сумму всех слоев (например, A*max(abs(w))/mean(abs(w)), где max и mean вычисляются по слою. Другой пример включает в себя порядок величины выше и больше. В некоторых вариантах осуществления, данная функция влияет на квантование весового коэффициента и чувствительность сети к весовым коэффициентам. Например, небольшие относительные изменения весовых коэффициентов из-за квантования могут вызывать большие ошибки вывода. Примерные методики включают в себя введение некоторых штрафных функций во время обучения, которые штрафуют сеть, когда она имеет такие непригодные весовые коэффициенты.

Примерные Методики Оптимизации Аналоговой Аппаратной Реализации Обученных Нейронных Сетей

[0326] Фигуры 30A-30M показывают блок-схему способа 3000 для аппаратной реализации (3002) нейронных сетей в соответствии с конструктивными ограничениями аппаратного обеспечения, в соответствии с некоторыми вариантами осуществления. Способ выполняется (3004) в вычислительном устройстве 200 (например, с использованием модуля 246 оптимизации аналоговой нейронной сети) с одним или несколькими процессорами 202, и памятью 214, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202.

[0327] Способ включает в себя этап, на котором получают (3006) топологию нейронной сети (например, топологию 224) и весовые коэффициенты (например, весовые коэффициенты 222) обученной нейронной сети (например, сетей 220).

[0328] Способ также включает в себя этап, на котором трансформируют (3008) топологию нейронной сети (например, с использованием модуля 226 трансформации нейронной сети) в эквивалентную аналоговую сеть аналоговых компонентов, включающих в себя множество операционных усилителей и множество резисторов. Каждый операционный усилитель представляет собой аналоговый нейрон эквивалентной аналоговой сети, а каждый резистор представляет собой соединение между двумя аналоговыми нейронами.

[0329] Обращаясь далее к Фигуре 30L, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором прореживают (3052) обученную нейронную сеть, чтобы обновить топологию нейронной сети и весовые коэффициенты обученной нейронной сети, перед этапом, на котором трансформируют топологию нейронной сети, с использованием методик прореживания для нейронных сетей, так что эквивалентная аналоговая сеть включает в себя меньше предварительно определенного количества аналоговых компонентов. В некоторых вариантах осуществления, этап, на котором прореживают, выполняется (3054) итерационно с учетом точности или уровня совпадения вывода между обученной нейронной сетью и эквивалентной аналоговой сетью.

[0330] Обращаясь далее к Фигуре 30M, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором, перед этапом, на котором трансформируют топологию нейронной сети в эквивалентную аналоговую сеть, выполняют (3056) выделение знаний сети. Выделение знаний не похоже на подобное стохастическому/обучающему прореживанию, а является более детерминистическим, чем прореживание. В некоторых вариантах осуществления, выделение знаний выполняется независимо от этапа прореживания. В некоторых вариантах осуществления, перед этапом, на котором трансформируют топологию нейронной сети в эквивалентную аналоговую сеть, весовые коэффициенты соединения регулируются в соответствии с предварительно определенными оптимальными критериями (такими как предпочтение нулевых весовых коэффициентов, или весовых коэффициентов в конкретном диапазоне, над другими весовыми коэффициентами) посредством способов выделения знаний, путем извлечения причинных связей между вводами и выводами скрытых нейронов. Концептуально, в одном нейроне или наборе нейронов, по конкретному набору данных, могут быть причинные связи между вводами и выводами, которые допускают повторную регулировку весовых коэффициентов таким образом, что (1) новый набор весовых коэффициентов создает тот же самый вывод сети и (2) новый набор весовых коэффициентов является проще для реализации с помощью резисторов (например, более однородно распределенные значения, больше нулевых значений или отсутствует соединение). Например, если некоторый вывод нейрона всегда является 1 по некоторому набору данных, то некоторые варианты осуществления удаляют эти выходные соединения нейрона (и нейрон в целом), и вместо этого регулируют весовой коэффициент смещения у нейронов, следующих за нейроном. Таким образом, этап выделения знаний отличается от прореживания, потому что прореживание требует переобучения после удаления нейрона, и обучение является стохастическим при том, что выделение знаний является детерминистическим.

[0331] Обращаясь обратно к Фигуре 30A, способ также включает в себя этап, на котором вычисляют (3010) матрицу весов для эквивалентной аналоговой сети на основе весовых коэффициентов обученной нейронной сети. Каждый элемент матрицы весов представляет собой соответствующее соединение.

[0332] Обращаясь далее к Фигуре 30J, в некоторых вариантах осуществления, способ дополнительно включает в себя удаление или трансформацию нейронов на основе значений смещений. В некоторых вариантах осуществления, способ дополнительно включает в этапы, на которых, для каждого аналогового нейрона эквивалентной аналоговой сети: (i) вычисляют (3044) соответствующее значение смещения для соответствующего аналогового нейрона на основе весовых коэффициентов обученной нейронной сети в то время, как вычисляют матрицу весов; (ii) в соответствии с определением того, что соответствующее значение смещения находится выше предварительно определенной максимальной пороговой величины смещения, удаляют (3046) соответствующий аналоговый нейрон из эквивалентной аналоговой сети; и (iii) в соответствии с определением того, что соответствующее значение смещения находится ниже предварительно определенной минимальной пороговой величины смещения, заменяют (3048) соответствующий аналоговый нейрон линейным переходом в эквивалентной аналоговой сети.

[0333] Обращаясь далее к Фигуре 30K, в некоторых вариантах осуществления, способ дополнительно включает в себя минимизирование количества нейронов или уплотнение сети. В некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором уменьшают (3050) количество нейронов эквивалентной аналоговой сети, перед этапом, на котором формируют матрицу весов, путем увеличения количества соединений (вводов и выводов) от одного или нескольких аналоговых нейронов эквивалентной аналоговой сети.

[0334] Обращаясь обратно к Фигуре 30A, способ также включает в себя этап, на котором формируют (3012) матрицу сопротивлений для матрицы весов. Каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов.

[0335] Способ также включает в себя этап, на котором прореживают (3014) эквивалентную аналоговую сеть, чтобы уменьшить количество множества операционных усилителей или множества резисторов, на основе матрицы сопротивлений, чтобы получить оптимизированную аналоговую сеть аналоговых компонентов.

[0336] Обращаясь далее к Фигуре 30B, в некоторых вариантах осуществления, способ включает в себя замещение малозначащих сопротивлений проводниками. В некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, включает в себя этап, на котором замещают (3016), с помощью проводников, резисторы, соответствующие одному или нескольким элементам матрицы сопротивлений, значения сопротивления которых находятся ниже предварительно определенного минимального порогового значения сопротивления.

[0337] Обращаясь далее к Фигуре 30C, в некоторых вариантах осуществления способ дополнительно включает в себя удаление соединений с очень высокими сопротивлениями. В некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, включает в себя этап, на котором удаляют (3018) одно или несколько соединений эквивалентной аналоговой сети, соответствующих одному или нескольким элементам матрицы сопротивлений, которые выше предварительно определенного максимального порогового значения сопротивления.

[0338] Обращаясь далее к Фигуре 30D, в некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, включает в себя этап, на котором удаляют (3020) одно или несколько соединений эквивалентной аналоговой сети, соответствующих одному или нескольким элементам матрицы весов, которые приблизительно равны нулю. В некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, дополнительно включает в себя этап, на котором удаляют (3022) один или несколько аналоговых нейронов эквивалентной аналоговой сети без каких-либо входных соединений.

[0339] Обращаясь далее к Фигуре 30E, в некоторых вариантах осуществления, способ включает в себя удаление неважных нейронов. В некоторых вариантах осуществления, этап, на котором прореживают эквивалентную аналоговую сеть, включает в себя этапы, на которых: (i) ранжируют (3024) аналоговые нейроны эквивалентной аналоговой сети на основе обнаружения использования аналоговых нейронов при выполнении вычислений для одного или нескольких наборов данных. Например, обучающего набора данных, который используется для обучения обученной нейронной сети; типичных наборов данных; наборов данных, разработанных для процедуры прореживания. Некоторые варианты осуществления выполняют ранжирование нейронов для прореживания на основе частоты использования заданного нейрона или блока нейронов, когда подвергаются обучающему набору данных. Например, (a) если на заданном нейроне никогда нет сигнала, при использовании тестового набора данных - то это означает, что данный нейрон или блок нейронов никогда не использовался и они прореживаются; (b) если частота использования нейрона является очень низкой, тогда нейрон прореживается без существенной потери точности; и (c) нейрон всегда используется, тогда нейрон не может быть прорежен); (ii) выбирают (3026) один или несколько аналоговых нейронов эквивалентной аналоговой сети на основе ранжирования; и (iii) удаляют (3028) один или несколько аналоговых нейронов из эквивалентной аналоговой сети.

[0340] Обращаясь далее к Фигуре 30F, в некоторых вариантах осуществления, этап, на котором обнаруживают использование аналогового нейрона, включает в себя этапы, на которых: (i) строят (3030) модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования (например, SPICE или аналогичного программного обеспечения); и (ii) измеряют (3032) распространение аналоговых сигналов (токов) путем использования модели (удаляют блоки, в которых сигнал не распространяется при использовании особых обучающих наборов), чтобы сформировать вычисления для одного или нескольких наборов данных.

[0341] Обращаясь далее к Фигуре 30G, в некоторых вариантах осуществления, этап, на котором обнаруживают использование аналогового нейрона, включает в себя этапы, на которых: (i) строят (3034) модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования (например, SPICE или аналогичного программного обеспечения); и (ii) измеряют (3036) выходные сигналы (токи или напряжения) модели (например, сигналы на выводе некоторых блоков или усилителей в модели SPICE или в реальной схеме, и удаляя зоны, в которых выходной сигнал для обучающего набора всегда соответствует нулю вольт) путем использования модели, чтобы сформировать вычисления для одного или нескольких наборов данных.

[0342] Обращаясь далее к Фигуре 30H, в некоторых вариантах осуществления, этап, на котором обнаруживают использование аналоговых нейронов, включает в себя этапы, на которых: (i) строят (3038) модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования (например, SPICE или аналогичного программного обеспечения); и (ii) измеряют (3040) мощность, потребляемую аналоговыми нейронами (например, мощность, потребляемую определенными нейронами или блоками нейронов, представленных операционными усилителями либо в модели SPICE, либо в реальной схеме, и удаляя нейроны или блоки нейронов, которые не потребляют никакой мощности), путем использования модели, чтобы сформировать вычисления для одного или нескольких наборов данных.

[0343] Обращаясь далее к Фигуре 30I, в некоторых вариантах осуществления, способ дополнительно включает в себя вслед за этапом, на котором прореживают эквивалентную аналоговую сеть, и перед этапом, на котором формируют одну или несколько литографических масок для изготовления схемы, реализующей эквивалентную аналоговую сеть, этап, на котором повторно вычисляют (3042) матрицу весов для эквивалентной аналоговой сети и обновляют матрицу сопротивлений на основе повторно вычисленной матрицы весов.

Примерные Аналоговые Нейроморфные Интегральные микросхемы и Способы Изготовления

Примерные Способы для Изготовления Аналоговых Интегральных Микросхем для Нейронных Сетей

[0344] Фигуры 31A-31Q показывают блок-схему способа 3100 для изготовления интегральной микросхемы 3102, которая включает в себя аналоговую сеть аналоговых компонентов, в соответствии с некоторыми вариантами осуществления. Способ выполняется в вычислительном устройстве 200 (например, с использованием модуля 258 изготовления IC) с одним или несколькими процессорами 202, и памятью 214, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202. Способ включает в себя этап, на котором получают (3104) топологию нейронной сети и весовые коэффициенты обученной нейронной сети.

[0345] Способ также включает в себя этап, на котором трансформируют (3106) топологию нейронной сети (например, с использованием модуля 226 трансформации нейронной сети) в эквивалентную аналоговую сеть аналоговых компонентов, включающих в себя множество операционных усилителей и множество резисторов (для рекуррентных нейронных сетей также используют линии задержки сигнала, умножители, аналоговый блок Tanh, Аналоговый Блок Сигмоиды). Каждый операционный усилитель представляет собой соответствующий аналоговый нейрон, а каждый резистор представляет собой соответствующее соединение между соответствующим первый аналоговым нейроном и соответствующим вторым аналоговым нейроном.

[0346] Способ также включает в себя этап, на котором вычисляют (3108) матрицу весов для эквивалентной аналоговой сети на основе весовых коэффициентов обученной нейронной сети. Каждый элемент матрицы весов представляет собой соответствующее соединение.

[0347] Способ также включает в себя этап, на котором формируют (3110) матрицу сопротивлений для матрицы весов. Каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов.

[0348] Способ также включает в себя этапы, на которых формируют (3112) одну или несколько литографических масок (например, формируют маски 250 и/или 252 с использованием модуля 248 формирования маски) для изготовления схемы, реализующей эквивалентную аналоговую сеть аналоговых компонентов на основе матрицы сопротивлений, и изготавливают (3114) схему (например, IC 262) на основе одной или нескольких литографических масок с использованием литографического процесса.

[0349] Обращаясь далее к Фигуре 31B, в некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя один или несколько цифро-аналоговых преобразователей (3116) (например, преобразователи 260 DAC), выполненных с возможностью формирования аналогового ввода для эквивалентной аналоговой сети аналоговых компонентов на основе одного или нескольких цифровых сигналов (например, сигналов от одного или нескольких датчиков изображения CCD/CMOS).

[0350] Обращаясь далее к Фигуре 31C, в некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя модуль (3118) дискретизации аналогового сигнала, выполненный с возможностью обработки 1-мерных или 2-мерных аналоговых вводов с частотой дискретизации на основе количества логических выводов интегральной микросхемы (количество логических выводов IC определяется спецификацией изделия - мы знаем частоту дискретизации из работы Нейронной Сети и точную задачу, которую чип предназначен решать).

[0351] Обращаясь далее к Фигуре 31D, в некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя модуль (3120) преобразователя напряжения, чтобы масштабировать в сторону уменьшения или масштабировать в сторону увеличения аналоговые сигналы, чтобы согласовывать их с рабочим диапазоном множества операционных усилителей.

[0352] Обращаясь далее к Фигуре 31E, в некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя модуль (3122) обработки тактового сигнала, выполненный с возможностью обработки одного или нескольких кадров, полученных от CCD камеры.

[0353] Обращаясь далее к Фигуре 31F, в некоторых вариантах осуществления, обученная нейронная сеть является сетью долгой краткосрочной памяти (LSTM), и интегральная микросхема дополнительно включает в себя один или несколько модулей тактового генератора, чтобы синхронизировать такты сигнала и для обеспечения обработки временного ряда.

[0354] Обращаясь далее к Фигуре 31G, в некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя один или несколько аналого-цифровых преобразователей (3126) (например, преобразователи 260 ADC), выполненных с возможностью формирования цифрового сигнала на основе вывода эквивалентной аналоговой сети аналоговых компонентов.

[0355] Обращаясь далее к Фигуре 31H, в некоторых вариантах осуществления, интегральная микросхема дополнительно включает в себя один или несколько модулей (3128) обработки сигнала, выполненных с возможностью обработки 1-мерных или 2-мерных аналоговых сигналов, полученных от граничных приложений.

[0356] Обращаясь далее к Фигуре 31I, обученная нейронная сеть обучается (3130), с использованием обучающих наборов данных, содержащих сигналы массивов газовых датчиков (например, от 2 до 25 датчиков) в разных газовых смесях, для выборочной регистрации разных газов в газовой смеси, содержащей предварительно определенные объемы газов, которые должны быть обнаружены (другими словами, работа обученного чипа используется, чтобы определять каждый из известных нейронной сети газов в газовой смеси по отдельности, несмотря на наличие других газов в смеси). В некоторых вариантах осуществления, топология нейронной сети является 1-Мерной Глубокой Сверточной Нейронной сетью (1D-DCNN), разработанной для обнаружения 3 бинарных газовых компонентов на основе измерений посредством 16 газовых датчиков, и включает (3132) в себя 16 1-D сверточных блоков по датчикам, 3 совместно используемых или общих 1-D сверточных блоков и 3 плотных слоя. В некоторых вариантах осуществления, эквивалентная аналоговая сеть включает (3134) в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) блоки задержки для создания задержки на любое количество временных шагов, (iii) лимит сигналов равный 5, (iv) 15 слоев, (v) приблизительно 100000 аналоговых нейронов и (vi) приблизительно 4900000 соединений.

[0357] Обращаясь далее к Фигуре 31J, обученная нейронная сеть обучается (3136), с использованием обучающих наборов данных, содержащих данные временного ряда термического старения для разных MOSFET (например, набор данных NASA MOSFET, который содержит временной ряд термического старения для 42 разных MOSFET; причем данные с дискретизацией каждые 400мс и, как правило, несколько часов данных для каждого устройства), для предсказания оставшегося срока полезного использования (RUL) MOSFET устройства. В некоторых вариантах осуществления, топология нейронной сети включает (3138) в себя 4 слоя LSTM с 64 нейронами в каждом слое, за которыми следуют два плотных слоя с 64 нейронами и 1 нейроном, соответственно. В некоторых вариантах осуществления эквивалентная аналоговая сеть включает (3140) в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 18 слоев, (iv) аналоговые нейроны в количестве от 3000 до 3200 единиц (например, 3137 аналоговых нейронов), и (v) соединения в количестве от 123000 до 124000 единиц (например, 123200 соединений).

[0358] Обращаясь далее к Фигуре 31K, обученная нейронная сеть обучается (3142), с использованием обучающих наборов данных, содержащих данные временного ряда, включающие в себя данные разряда и температуры во время непрерывного использования разных имеющихся в продаже Li-Ion батарей (например, набор данных использования батареи NASA; набор данных представляет данные непрерывного использования 6 имеющихся в продаже Li-Ion батарей; работа сети основана на анализе кривой разряда батареи), для мониторинга исправного состояния (SOH) и состояния заряда (SOC) ионно-литиевых батарей для использования в системах управления батареями (BMS). В некоторых вариантах осуществления, топология нейронной сети включает (3144) в себя входной слой, 2 слоя LSTM с 64 нейронами в каждом слое, за которыми следует плотный выходной слой с 2 нейронами для формирования значений SOC и SOH. Эквивалентная аналоговая сеть включает (3146) в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 9 слоев, (iv) аналоговые нейроны в количестве от 1200 до 1300 единиц (например, 1271 аналоговых нейронов), и (v) соединения в количестве от 51000 до 52000 единиц (например, 51776 соединений).

[0359] Обращаясь далее к Фигуре 31L, обученная нейронная сеть обучается (3148), с использованием обучающих наборов данных, содержащих данные временного ряда, включающие в себя данные разряда и данные температуры во время непрерывного использования разных имеющихся в продаже Li-Ion батарей (например, набор данных использования батареи NASA; набор данных представляет данные непрерывного использования 6 имеющихся в продаже Li-Ion батарей; работа сети основана на анализе кривой разряда батареи), для мониторинга исправного состояния (SOH) ионно-литиевых батарей для использования в системах управления батареями (BMS). В некоторых вариантах осуществления, топология нейронной сети включает (3150) в себя входной слой с 18 нейронами, простой рекуррентный слой с 100 нейронами и плотный слой с 1 нейроном. В некоторых вариантах осуществления, эквивалентная аналоговая сеть включает (3152) в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 4 слоя, (iv) аналоговые нейроны в количестве от 200 до 300 единиц (например, 201 аналоговый нейрон), и (v) соединения в количестве от 2200 до 2400 единиц (например, 2300 соединений).

[0360] Обращаясь далее к Фигуре 31M, обученная нейронная сеть обучается (3154), с использованием обучающих наборов данных, содержащих речевые команды (например, набор данных Речевых Команд Google), для идентификации голосовых команд (например, 10 коротких произнесенных ключевых слов, включающих в себя «да», «нет», «верх» «низ», «лево», «право», «включить», «выключить», «стоп», «идти»). В некоторых вариантах осуществления, топология нейронной сети является (3156) слоем Разделяемой по Глубинам Сверточной Нейронной Сети (DS-CNN) с 1 нейроном. В некоторых вариантах осуществления, эквивалентная аналоговая сеть включает (3158) в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов равный 5, (iii) 13 слоев, (iv) приблизительно 72000 аналоговых нейронов, и (v) приблизительно 2.6 миллиона соединений.

[0361] Обращаясь далее к Фигуре 31N, обученная нейронная сеть обучается (3160), с использованием обучающих наборов данных, содержащих данные фотоплетизмографии (PPG), данные акселерометра, данные температуры и данные сигнала электрокожного ответа для разных людей, выполняющих различные физические упражнения в течение предварительно определенного периода времени, и опорные данные частоты сердцебиения, полученные от датчика ECG (например, данные PPG из набора данных PPG-Dalia (ПРОВЕРИТЬ ЛИЦЕНЗИЮ). Данные собираются для 15 человек, выполняющих различные физические упражнения в течение 1-4 часов каждый. Данные датчика на запястье содержат данные PPG, данные 3-осевого акселерометра, данные температуры и сигналы электрокожного ответа, с дискретизацией от 4 до 60Гц, и опорные данные частоты сердцебиения, полученные от датчика ECG с дискретизацией около 2Гц. Исходные данные были раздроблены на последовательности из 1000 временных шагов (около 15 секунд), со сдвигом в 500 временных шагов, тем самым формируя в итоге 16541 выборок. Набор данных был раздроблен на 13233 обучающих выборок и 3308 тестовых выборок), для определения частоты пульса во время физических упражнений (например, бег трусцой, фитнес упражнения, подъем по лестнице) на основе данных датчика PPG и данных 3-осевого акселерометра. Топология нейронной сети включает (3162) в себя два слоя Conv1D, каждый с 16 фильтрами и размером ядра 20, выполняющим свертку временного ряда, два слоя LSTM, каждый с 16 нейронами, и два плотных слоя с 16 нейронами и 1 нейроном, соответственно. В некоторых вариантах осуществления, эквивалентная аналоговая сеть включает (3164) в себя: (i) блоки задержки для создания любого количества временных шагов, (ii) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (iii) лимит сигналов равный 5, (iv) 16 слоев, (v) аналоговые нейроны в количестве от 700 до 800 единиц (например, 713 аналоговых нейронов), и (vi) соединения в количестве от 12000 до 12500 единиц (например, 12072 соединения).

[0362] Обращаясь далее к Фиг. 31O, обученная нейронная сеть обучается (3166) классифицировать разные объекты (например, людей, автомобили, велосипедистов, самокаты) на основе импульсного сигнала радара на эффекте Доплера (удаляют беспорядок и предоставляют шум сигналу радара на эффекте Доплера), и топология нейронной сети включает (3168) в себя многомасштабную нейронную сеть LSTM.

[0363] Обращаясь далее к Фигуре 31P, обученная нейронная сеть обучается (3170) выполнять распознавание типа активности человека (например, ходьба, бег, сидение, подъем по лестнице, выполнение физических упражнений, отслеживание активности) на основе данных инерциального датчика (например, 3-осевых акселерометров, магнетометров или данных гироскопа, от фитнес устройств отслеживания, интеллектуальных наручных часов или мобильных телефонов; данных 3-осевого акселерометра в качеств ввода, с дискретизацией при частоте вплоть до 96Гц). Сеть была обучена на 3 разных общедоступных наборах данных, представляющих такие активности как «открытие, затем закрытие посудомоечной машины», «питье стоя», «закрытие левой двери», «бег трусцой», «ходьба», «восходящие ступени» и т.д.). В некоторых вариантах осуществления, топология нейронной сети включает (3172) в себя три сверточные сети по каналам, причем каждая со сверточным слоем из 12 фильтров и размером ядра 64, и за каждой следует слой максимального пула, и два общих плотных слоя из 1024 нейронов и N нейронов, соответственно, где N является количеством классов. В некоторых вариантах осуществления, эквивалентная аналоговая сеть включает (3174) в себя: (i) блоки задержки для создания любого количества временных шагов, (ii) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (iii) выходной слой из 10 аналоговых нейронов, (iv) лимит сигналов равный 5, (v) 10 слоев, (vi) аналоговые нейроны в количестве от 1200 до 1300 единиц (например, 1296 аналоговых нейронов), и (vi) соединения в количестве от 20000 до 21000 единиц (например, 20022 соединения).

[0364] Обращаясь далее к Фигуре 31Q, обученная нейронная сеть дополнительно обучается (3176) обнаруживать аномальные шаблоны активности человека на основе данных акселерометра, которые объединяются с данными частоты сердцебиения с использованием операции свертки (с тем, чтобы обнаружить предынсультные или предынфарктные состояния, или сигнал в случае внезапных аномальных шаблонов, вызванных травмами или дисфункцией по медицинским причинам, подобно эпилепсии, и т.д.).

[0365] Некоторые варианты осуществления включают в себя компоненты, которые не интегрируются в чип (т.е. это внешние элементы, соединенные с чипом), выбранные из группы, состоящей из следующего: распознавания голоса, обработки видеосигнала, регистрации изображения, регистрации температуры, регистрации давления, обработки радара, обработки LIDAR, управления батарей, напряжения и тока схем MOSFET, акселерометров, гироскопов, магнитных датчиков, датчиков сердцебиения, газовых датчиков, датчиков объема, датчиков уровня жидкости, спутникового сигнала GPS, датчика проводимости человеческого тела, датчика потока газа, датчика концентрации, измерителя pH и датчиков IR видения.

[0366] Примеры аналоговых нейроморфных интегральных микросхем, изготовленных в соответствии с процессами, описанными выше, предоставлены в следующем разделе, в соответствии с некоторыми вариантами осуществления.

Примерная Аналоговая Нейроморфная IC для Выборочного Обнаружения Газа

[0367] В некоторых вариантах осуществления, нейроморфная IC изготавливается в соответствии с процессами, описанными выше. Нейроморфная IC основана на Глубокой Сверточной Нейронной Сети, обученной для выборочной регистрации разных газов в газовой смеси, содержащей некоторые объемы газов, которые должны быть обнаружены. Глубокая Сверточная Нейронная Сеть обучается с использованием обучающих наборов данных, содержащих сигналы массивов газовых датчиков (например, от 2 до 25 датчиков) в ответ на разные газовые смеси. Интегральная микросхема (или чип, изготовленный в соответствии с методиками, описанными в данном документе) может быть использована для определения одного или нескольких известных газов в газовой смеси, независимо от наличия других газов в смеси.

[0368] В некоторых вариантах осуществления, обученная нейронная сеть является сетью 1D-DCNN с несколькими метками, которая используется для Классификации Смеси Газов. В некоторых вариантах осуществления, сеть разработана для обнаружения 3 бинарных газовых компонентов на основе измерений посредством 16 газовых датчиков. В некоторых вариантах осуществления, 1D-DCNN включает в себя 1D сверточный блок на датчик (16 таких блоков), 3 общих 1D сверточных блока и 3 Плотных слоя. В некоторых вариантах осуществления, эффективность сети 1D-DCNN для этой задачи составляет 96,3%.

[0369] В некоторых вариантах осуществления, исходная сеть T-трансформируется со следующими параметрами: максимум входных и выходных соединений из расчета на нейрон=100; блоки задержки могут создавать задержку на любое количество временных шагов; и лимит сигналов составляет 5.

[0370] В некоторых вариантах осуществления, результирующая T-сеть имеет следующие свойства: 15 слоев, приблизительно 100000 аналоговых нейронов, приблизительно 4900000 соединений.

Примерная Аналоговая Нейроморфная IC для предсказания отказа MOSFET

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

[0372] В некоторых вариантах осуществления, нейроморфная IC изготавливается в соответствии с процессами, описанными выше. Нейроморфная IC основана на сети, которая обсуждалась в статье, озаглавленной «Real-time Deep Learning at the Edge for Scalable Reliability Modeling of SI-MOSFET Power Electronics Converters», для предсказания оставшегося срока полезного использования (RUL) устройства MOSFET. Нейронная сеть может быть использована для определения Оставшегося Срока Полезного Использования (RUL) устройства с точностью свыше 80%.

[0373] В некоторых вариантах осуществления, сеть обучается на Наборе данных NASA MOSFET, который содержит временной ряд термического старения для 42 разных MOSFET. Дискретизация данных осуществляется каждые 400мс и, как правило, включает в себя несколько часов данных для каждого устройства. Сеть содержит 4 слоя LSTM из 64 нейронов каждый, вслед за которыми идут 2 Плотных слоя из 64 и 1 нейрона.

[0374] В некоторых вариантах осуществления, сеть T-трансформируется со следующими параметрами: максимум входных и выходных соединений из расчета на нейрон составляет 100; лимит сигналов равен 5, и результирующая T-сеть имеет следующие свойства: 18 слоев, приблизительно 3000 нейронов (например, 137 нейрона), и приблизительно 120000 соединения (например, 123200 соединений).

Примерная Аналоговая Нейроморфная IC для Мониторинга исправного состояния и SoC Ионно-Литиевой Батареи

[0375] В некоторых вариантах осуществления, нейроморфная IC изготавливается в соответствии с процессами, описанными выше. Нейроморфная IC может быть использована для предсказывающей аналитики ионно-литиевых батарей, для использования в Системах Управления Батареями (BMS). Устройство BMS, как правило, представляет такие функции, как защита от перезаряда или переразряда, мониторинг Исправного Состояния (SOH) и Состояния Заряда (SOC), и балансировка нагрузки для нескольких ячеек. Для осуществления мониторинга SOH и SOC обычно требуется процессор цифровых данных, который вносит свой вклад в стоимость и расходует энергию. В некоторых вариантах осуществления, Интегральная Микросхема используется для получения точных данных SOC и SOH без реализации процессора цифровых данных в устройстве. В некоторых вариантах осуществления Интегральная Микросхема определяет SOC с точностью выше 99% и определяет SOH с точностью выше 98%.

[0376] В некоторых вариантах осуществления, сеть работает на основе анализа кривой разряда батареи, как, впрочем, и температуры, и/или данные представляются в качестве временного ряда. Некоторые варианты осуществления используют данные из набора данных Использования Батареи NASA. Набор данных представляет собой данные непрерывного использования 6 имеющихся в продаже Li-Ion батарей. В некоторых вариантах осуществления, сеть включает в себя входной слой, 2 слоя LSTM из 64 нейронов каждый, и выходной плотный слой из 2 нейронов (значения SOC и SOH).

[0377] В некоторых вариантах осуществления, сеть T-трансформируется со следующими параметрами: максимум входных и выходных соединений из расчета на нейрон=100, и лимит сигналов равен 5. В некоторых вариантах осуществления, результирующая T-сеть включает в себя следующие свойства: 9 слоев, приблизительно 1200 нейронов (например, 1271 нейронов) и приблизительно 50000 соединений (например, 51776 соединений). В некоторых вариантах осуществления, работа сети основана на анализе кривой разряда батареи, как, впрочем, и температуре. Сеть обучается с использованием Сети IndRnn, раскрытой в документе, озаглавленном «State-of-Health Estimation of Li-ion Batteries inElectric Vehicle Using IndRNN under VariableLoad Condition», разработанной для обработки данных из набора данных Использования Батареи NASA. Набор данных представляет собой данные непрерывного использования 6 имеющихся в продаже Li-Ion батарей. Сеть IndRnn содержит входной слой с 18 нейронами, простой рекуррентный слой из 100 нейронов и плотный слой из 1 нейрона.

[0378] В некоторых вариантах осуществления, сеть IndRnn T-трансформируется со следующими параметрами: максимум входных и выходных соединений из расчета на нейрон=100 и лимит сигналов равен 5. В некоторых вариантах осуществления, результирующая T-сеть обладает следующими свойствами: 4 слоя, приблизительно 200 нейронов (например, 201 нейрон), и приблизительно 2000 соединений (например, 2300 соединений). Некоторые варианты осуществления выводят только SOH с ошибкой оценки в 1.3%. В некоторых вариантах осуществления, SOC получается аналогично тому, как получается SOH.

Примерная Аналоговая Нейронная IC для обнаружения Ключевых Слов

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

[0380] Входная сеть является нейронной сетью с 2-D Сверточными и 2-D Сверточными по Глубинам слоями, со входной аудио мел-спектрограммой размером 49 на 10. В некоторых вариантах осуществления, сеть включает в себя 5 сверточных слоев, 4 сверточных по глубинам слоя, слой среднего пула и итоговый плотный слой.

[0381] В некоторых вариантах осуществления, сети предварительно обучаются, чтобы распознавать 10 коротких произнесенных ключевых слов («да», «нет», «верх» «низ», «лево», «право», «включить», «выключить», «стоп», «идти») из Набора Данных Речевых Команд Google, с точностью распознавания 94.4%.

[0382] В некоторых вариантах осуществления, Интегральная Микросхема изготавливается на основе Разделяемой по Глубинам Сверточной Нейронной Сети (DS-CNN) для идентификации голосовой команды. В некоторых вариантах осуществления, исходная сеть DS-CNN T-трансформируется со следующими параметрами: максимум входных и выходных соединений из расчета на нейрон=100, лимит сигналов равен 5. В некоторых вариантах осуществления, результирующая T-сеть обладает следующими свойствами: 13 слоев, приблизительно 72000 нейронов и приблизительно 2.6 миллиона соединений.

Примерная DS-CNN Сеть Обнаружений Ключевых Слов

[0383] В одном случае, сеть обнаружения ключевых слов трансформируется в T-сеть, в соответствии с некоторыми вариантами осуществления. Сеть является нейронной сетью из 2-D Сверточных или 2-D Сверточных по Глубинам слоев, с входной аудио спектрограммой размером 49×10. Сеть состоит из 5 сверточных слоев, 4 сверточных по глубинам слоев, слоя среднего пула и итогового плотного слоя. Сеть предварительно обучается, чтобы распознавать 10 коротких произнесенных ключевых слов («да», «нет», «верх» «низ», «лево», «право», «включить», «выключить», «стоп», «идти») из Набора Данных Речевых Команд Google https://ai.googleblog.com/2017/08/launching-speechcommands-dataset.html. Присутствует 2 дополнительных класса, которые соответствуют ‘тишина’ и ‘неизвестно’. Выводом сети является softmax длиной 12.

[0384] Обученная нейронная сеть (ввод в трансформацию) обладает точностью распознавания 94.4%, в соответствии с некоторыми вариантами осуществления. В топологии нейронной сети, за каждым сверточным слоем следует слой BatchNorm и слой ReLU, и активации ReLU являются несвязанными, и включают около 2.5 миллионов операций умножения-сложения.

[0385] После трансформации, трансформированная аналоговая сеть была протестирована тестовым набором из 1000 выборок (100 с каждой произнесенной командой). Все тестовые выборки также использовались в качестве тестовых выборок в исходном наборе данных. Исходная сеть DS-CNN выдавала близкую к 5.7% ошибку распознавания для данного тестового набора. Сеть была преобразована в T-сеть обычных нейронов. Слои BatchNormalization (Пакетной Нормализации) в режиме ‘тест’ создают простую линейную трансформацию сигнала, так что могут быть интерпретированы в качестве множителя весового коэффициента + некоторое дополнительное смещение. Слои Convolutional (Сверточный), AveragePooling (Средний Пул) и Dense (Плотный) T-трансформируются довольно прямолинейно. Функция активации Softmax не была реализована в T-сети и была применена к выводу T-сети отдельно.

[0386] Результирующая T-сеть имеет 12 слоев, включая слой Ввод, приблизительно 72000 нейронов и приблизительно 2.5 миллиона соединений.

[0387] Фигуры 26A-26K показывают примерные гистограммы 2600 для абсолютных весовых коэффициентов для слоев с 1 по 11, соответственно, в соответствии с некоторыми вариантами осуществления. Гистограмма распределения весового коэффициента (для абсолютных весовых коэффициентов) была вычислена для каждого слоя. Пунктирные линии на графиках соответствуют значению среднего абсолютного весового коэффициента для соответствующего слоя. После преобразования (т.е. T трансформации), средняя абсолютная ошибка вывода (вычисленная по тестовому набору) преобразованной сети в сравнении с исходной вычисляется как равная 4.1e-9.

[0388] Различные примеры для установки ограничений сети для трансформированной сети описываются в данном документе, в соответствии с некоторыми вариантами осуществления. Для лимита сигналов, поскольку активации ReLU, используемые в сети, являются неограниченными, и некоторые варианты осуществления используют лимит сигналов по каждому слою. Это может потенциально повлиять на математическую эквивалентность. С этой целью, некоторые реализации используют лимит сигналов равный 5 по всем слоям, что соответствует напряжению питания 5 относительно диапазона входного сигнала.

[0389] Для квантования весовых коэффициентов, некоторые варианты осуществления используют номинальный набор из 30 резисторов [0.001, 0.003, 0.01, 0.03, 0.1, 0.324, 0.353, 0.436, 0.508, 0.542, 0.544, 0.596, 0.73, 0.767, 0.914, 0.985, 0.989, 1.043, 1.101, 1.149, 1.157, 1.253, 1.329, 1.432, 1.501, 1.597, 1.896, 2.233, 2.582, 2.844].

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

[0391] Некоторые варианты осуществления преобразуют выходной слой следующим образом. Выходной слой является плотным слоем, который не имеет активации ReLU. Слой имеет активацию softmax, которая не реализуется в T-преобразовании и остается для цифровой части, в соответствии с некоторыми вариантами осуществления. Некоторые варианты осуществления не выполняют дополнительного преобразования.

Примерная Аналоговая Нейроморфная IC для Получения Частоты Сердцебиения

[0392] PPG является оптически получаемой плетизмограммой, которая может быть использована для обнаружения изменений объема крови в микрососудистом русле ткани. PPG часто получается путем использования пульсоксиметра, который освещает кожу и измеряет изменения поглощения света. PPG часто обрабатывается, чтобы определять частоту сердцебиения в устройствах, таких как фитнес-трекеры. Извлечение частоты сердцебиения (HR) из сигнала PPG является важной задачей вычислений граничных устройств. Данные PPG, полученные от устройства, расположенного на запястье, обычно позволяют получить надежную частоту сердцебиения только когда устройство стабильно. Если человек выполняет физические упражнения, получение частоты сердцебиения из данных PPG, дает плохие результаты, при условии, что не объединяются с данными инерциального датчика.

[0393] В некоторых вариантах осуществления, Интегральная Микросхема, основанная на комбинации Сверточной Нейронной Сети и слоев LSTM, может быть использована для точного определения частоты пульса, базируясь на данных датчика фотоплетизмографии (PPG) и 3-осевого акселерометра. Интегральная микросхема может быть использована, чтобы подавлять искажения от движения данных PPG и чтобы определять частоту пульса во время физических упражнений, таких как бег трусцой, фитнес-упражнения и подъем по лестнице, с точностью, превышающей 90%.

[0394] В некоторых вариантах осуществления, входная сеть обучается с помощью данных PPG из набора данных PPG-Dalia. Данные собираются для 15 людей, выполняющих различные физические упражнения в течение предварительно определенной продолжительности (например, 1-4 часов каждый). Обучающие данные, включающие данные датчика на основе запястья, содержат данные PPG, данные 3-осевого акселерометра, данные температуры и сигналы электрокожного ответа с дискретизацией от 4 до 64Гц и опорные данные частоты сердцебиения, полученные от датчика ECG с дискретизацией около 2Гц. Исходные данные были раздроблены на последовательности из 1000 временных шагов (около 15 секунд), со сдвигом в 500 временных шагов, тем самым создавая в итоге 16541 выборок. Набор данных был раздроблен на 13233 обучающих выборок и 3308 тестовых выборок.

[0395] В некоторых вариантах осуществления, входная сеть включает в себя 2 Conv1D слоя с 16 фильтрами каждый, выполняющих свертку временного ряда, 2 LSTM слоя из 16 нейронов каждый и 2 плотных слоя из 16 и 1 нейрона. В некоторых вариантах осуществления, сеть создает ошибку MSE меньше 6 ударов в минуту по тестовому набору.

[0396] В некоторых вариантах осуществления, сеть T-трансформируется со следующими параметрами: блоки задержки могут создавать задержку на любое количество временных шагов, максимум входных и выходных соединений из расчета на нейрон=100, и лимит сигналов равен 5. В некоторых вариантах осуществления, результирующая T-сеть обладает следующими свойствами: 15 слоев, приблизительно 700 нейронов (например, 713 нейронов) и приблизительно 12000 соединений (например, 12072 соединения).

Примерная Обработка данных PPG с помощью T-преобразованной Сети LSTM

[0397] Как описано выше, для рекуррентных нейронов, некоторые варианты осуществления используют блок задержки сигнала, который добавляется в каждое рекуррентное соединение нейронов GRU и LSTM. В некоторых вариантах осуществления, блок задержки имеет внешний таймер цикла (например, цифровой таймер), который активирует блок задержки с постоянным периодом времени dt. Данная активация создает вывод x(t-dt), где x(t) является входным сигналом блока задержки. Такая частота активации может, например, соответствовать частоте входного сигнала сети (например, выходной частоте аналоговых датчиков, обрабатываемых T-преобразованной сетью). Как правило, все блоки задержки активируются одновременно с помощью одного и того же сигнала активации. Некоторые блоки могут быть активированы одновременно по одной частоте, а другие блоки могут быть активированы по другой частоте. В некоторых вариантах осуществления, эти частоты имеют общий множитель, и сигналы синхронизированы. В некоторых вариантах осуществления, несколько блоков задержки используется по одному сигналу, создавая аддитивный временной сдвиг. Примеры блоков задержки описаны выше при обращении к Фигуре 13B, которая показывает два примера блоков задержки, в соответствии с некоторыми вариантами осуществления.

[0398] Сеть для обработки данных PPG использует один или несколько нейронов LSTM, в соответствии с некоторыми вариантами осуществления. Примеры вариантов осуществления нейрона LSTM описаны выше при обращении к Фигуре 13A, в соответствии с некоторыми вариантами осуществления.

[0399] Сеть также использует Conv1D, причем свертка выполняется по координате времени. Примеры вариантов осуществления Conv1D описаны выше при обращении к Фигурам 15A и 15B, в соответствии с некоторыми вариантами осуществления.

[0400] Подробности данных PPG описываются в данном документе, в соответствии с некоторыми вариантами осуществления. PPG является оптически полученной плетизмограммой, которая может быть использована для обнаружения изменений объема крови в микрососудистом русле ткани. PPG часто получается путем использования пульсоксиметра, который освещает кожу и измеряет изменения поглощения света. PPG часто обрабатывается, чтобы определять частоту сердцебиения в устройствах, таких как фитнес-трекеры. Извлечение частоты сердцебиения (HR) из сигнала PPG является важной задачей вычислений граничных устройств.

[0401] Некоторые варианты осуществления используют данные PPG из набора данных PPG Capnobase. Данные содержат необработанный сигнал PPG для 42 человек продолжительностью в 8мин каждый, с дискретизацией 300 выборок в секунду и опорные данные частоты сердцебиения получаются от датчика ECG с дискретизацией около 1 выборки в секунду. Для обучения и оценки, некоторые варианты осуществления дробят исходные данные на последовательности из 6000 временных шагов, со сдвигом 1000 временных шагов, тем самым получая в итоге 5838 выборок.

[0402] В некоторых вариантах осуществления, входная обученная нейронная сеть на основе NN обеспечивает 1-3% погрешности при обнаружении частоты сердцебиения (HR) из данных PPG.

[0403] Данный раздел описывает относительно простую нейронную сеть для того, чтобы продемонстрировать то, каким образом T-преобразование и аналоговая обработка могут справляться с данной задачей. Данное описание предоставляется в качестве примера, в соответствии с некоторыми вариантами осуществления.

[0404] В некоторых вариантах осуществления, набор данных дробится на 4670 обучающих выборок и 1168 тестовых выборок. Сеть включает в себя: 1 Conv1D слой с 16 фильтрами и размером ядра 20, 2 слоя LSTM с 24 нейронами каждый, 2 плотных слоя (с 24 и 1 нейроном каждый). В некоторых вариантах осуществления, после обучения данной сети в течение 200 эпох, тестовая погрешность составила 2.1%.

[0405] В некоторых вариантах осуществления, входная сеть была T-трансформирована со следующими параметрами: блок задержки с периодами 1, 5 и 10 временных шагов, и следующими свойствами: 17 слоев, 15448 соединений и 329 нейронов (OP3 нейроны и блоки умножителя, не считая блоков задержки).

Примерная Аналоговая Нейроморфная Интегральная Микросхема для Распознавания Объект на основе Импульсного Сигнала Радара на Эффекте Доплера

[0406] В некоторых вариантах осуществления, Интегральная Микросхема изготавливается на основе многомасштабной нейронной сети LSTM, которая может быть использована для классификации объектов, на основе импульсного сигнала радара на эффекте Доплера. IC может быть использована, чтобы классифицировать разные объекты, подобные людям, автомобилям, велосипедистам, самокатам, на основе сигнала радара на эффекте Доплера, удалять беспорядок, и предоставлять шум сигналу радара на эффекте Доплера. В некоторых вариантах осуществления, точность классификации объекта с помощью многомасштабной сети LSTM превышает 90%.

Примерная Аналоговая Нейроморфная IC для Распознавания Типа Активности Человека на основе Данных Инерциального Датчика

[0407] В некоторых вариантах осуществления, нейроморфная Интегральная Микросхема изготавливается и может быть использована для распознавания типа активности человека на основе многоканальных сверточных нейронных сетей, которые имеют входные сигналы от 3-осевых акселерометров и возможно магнитометров и/или гироскопов фитнес устройств отслеживания, интеллектуальных наручных часов или мобильных телефонов. Многоканальная сверточная нейронная сеть может быть использована чтобы различать разные типы активностей человека, такие как ходьба, бег, сидение, подъем по лестнице, выполнение физических упражнений, и может быть использована для отслеживания активности. IC может быть использована для обнаружения аномальных шаблонов активности человека на основе данных акселерометра, которые объединяются сверточным образом с данными частоты сердцебиения. Такая IC может обнаруживать предынсультные или предынфарктные состояния, или сигнал в случае внезапных аномальных шаблонов, вызванных травмами или дисфункцией по медицинским причинам, подобно эпилепсии и прочего, в соответствии с некоторыми вариантами осуществления.

[0408] В некоторых вариантах осуществления, IC основана на 1D сверточной сети по каналам, которая обсуждалась в статье «Convolutional Neural Networks for Human Activity Recognition using Mobile Sensors». В некоторых вариантах осуществления, данная сеть осуществляет принятие данных 3-осевого акселерометра в качестве ввода, с дискретизацией при частоте вплоть до 96Гц. В некоторых вариантах осуществления, сеть обучается по 3 разным общедоступным наборам данных, представляющим такие активности как «открытие, затем закрытие посудомоечной машины», «питье стоя», «закрытие левой двери», «бег трусцой», «ходьба», «восходящие ступени» и т.д. В некоторых вариантах осуществления, сеть включает в себя 3 Conv сети по каналам со слоем Conv из 12 фильтров и размером ядром 64, вслед за каждой из которых идет слой MaxPooling(4), и 2 общих Плотных слоя из 1024 и N нейронов соответственно, где N является количеством классов. В некоторых вариантах осуществления, классификация активности была выполнена с низкой частотой ошибок (например, 3.12% ошибок).

[0409] В некоторых вариантах осуществления, сеть T-трансформируется со следующими параметрами: блоки задержки могут создавать задержку на любое количество временных шагов, максимум входных и выходных соединений из расчета на нейрон=100, выходной слой из 10 нейронов и лимит сигналов равен 5. В некоторых вариантах осуществления, результирующая T-сеть обладает следующими свойствами: 10 слоев, приблизительно 1200 нейронов (например, 1296 нейронов) и приблизительно 20000 соединений (например, 20022 соединений).

Примерная Трансформация Модульной Структуры Сетки для Формирования Библиотек

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

[0411] Некоторые варианты осуществления формируют библиотеки готовых T-преобразованных нейронных сетей и/или T-преобразованных модулей. Например, слой сети CNN является модульным строительным блоком, цепочка LSTN является другим строительным блоком и т.д. Более крупные нейронные сети NN также имеют модульную структуру (например, модуль LSTN и модуль CNN). В некоторых вариантах осуществления, библиотеки нейронных сетей больше чем побочные продукты примерных процессов, и могут продаваться независимо. Например, третья сторона может изготавливать нейронную сеть начиная с аналоговых схем, схематики или конструкций в библиотеке (например, с использованием схем, файлов и/или литографических масок CADENCE). Некоторые варианты осуществления формируют T-преобразованные нейронные сети (например, сети, трансформируемые в CADENCE или аналогичное программное обеспечение) для типичных нейронных сетей, и преобразованные нейронные сети (или ассоциированная информация) продаются третьей стороне. В некоторых примерах, третья сторона выбирает не раскрывать структуру и/или цель первоначальной нейронной сети, но использует программное обеспечение преобразования (например, описанный выше SDK), чтобы преобразовывать первоначальную сеть в трапециевидные сети и передавать трансформированные сети изготовителю для изготовления трансформированной сети, с матрицей весовых коэффициентов, полученной с использованием одного из процессов, описанных выше, в соответствии с некоторыми вариантами осуществления. В качестве другого примера, где библиотека или готовые сети формируются в соответствии с процессами, описанными в данном документе, формируются соответствующие литографические маски, и потребитель может обучать одну из доступных сетевых архитектур для своей задачи, выполнять трансформацию без потерь (иногда называемую T трансформацией) и предоставлять весовые коэффициенты изготовителю для изготовления чипа для обученных нейронных сетей.

[0412] В некоторых вариантах осуществления, концепция модульной структуры также используется при изготовлении систем с несколькими чипами или многоуровневых 3D чипов, где каждый слой 3D чипа представляет собой один модуль. Соединения выводов модулей с вводами соединенных модулей в случае 3D чипов будут выполнены посредством стандартных межсоединений, которые обеспечивают омические контакты разных слоев в системах многослойного 3D чипа. В некоторых вариантах осуществления, аналоговые вводы определенных модулей соединяются с аналоговыми вводами соединенных модулей через межсоединения промежуточного слоя. В некоторых вариантах осуществления, модульная структура используется также для создания системы процессора с несколькими чипами. Отличительный признак таких сборок из нескольких чипов состоит в линиях для передачи данных аналогового сигнала между разными чипами. Схемы аналоговой связи, как правило для сжатия нескольких аналоговых сигналов в одну линию для передачи данных и соответствующее обратное коммутирование аналоговых сигналов в чипе-приемнике, реализуются с использованием стандартных схем коммутации и обратной коммутации аналогового сигнала, разработанных в аналоговой схеме.

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

Примерные Способы для Формирования Библиотек для Аппаратной Реализации Нейронных Сетей

[0414] Фигуры 32A-32E показывают блок-схему способа 3200 для формирования (3202) библиотек для аппаратной реализации нейронных сетей, в соответствии с некоторыми вариантами осуществления. Способ выполняется (3204) в вычислительном устройстве 200 (например, с использованием модуля 254 формирования библиотеки) с одним или несколькими процессорами 202, и памятью 214, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202.

[0415] Способ включает в себя этап, на котором получают (3206) множество топологий нейронной сети (например, топологии 224), причем каждая топология нейронной сети соответствует соответствующей нейронной сети (например, нейронной сети 220).

[0416] Способ также включает в себя этап, на котором трансформируют (3208) каждую топологию нейронной сети (например, с использованием модуля 226 трансформации нейронной сети) в соответствующую эквивалентную аналоговую сеть аналоговых компонентов.

[0417] Обращаясь далее к Фигуре 32D, в некоторых вариантах осуществления, этап, на котором трансформируют (3230) соответствующую топологию сети в соответствующую эквивалентную аналоговую сеть, включает в себя этапы, на которых: (i) осуществляют (3232) разложение соответствующей топологии сети на множество топологий подсети. В некоторых вариантах осуществления, этап, на котором осуществляют разложение соответствующей топологии сети, включает в себя этап, на котором идентифицируют (3234) один или несколько слоев (например, слой LSTM слой с полными соединениями) соответствующей топологии сети в качестве множества топологий подсети; (ii) трансформируют (3236) каждую топологию подсети в соответствующую эквивалентную аналоговую подсеть аналоговых компонентов; и (iii) составляют (3238) каждую эквивалентную аналоговую подсеть, чтобы получить соответствующую эквивалентную аналоговую сеть.

[0418] Обращаясь обратно к Фигуре 32A, способ также включает в себя этап, на котором формируют (3210) множество литографических масок (например, маски 256) для изготовления множества схем, причем каждая схема реализует соответствующую эквивалентную аналоговую сеть аналоговых компонентов.

[0419] Обращаясь далее к Фигуре 32E, в некоторых вариантах осуществления, каждая схема получается посредством: (i) формирования (3240) схематики для соответствующей эквивалентной аналоговой сети аналоговых компонентов; и (ii) формирования (3242) соответствующей конструкции компоновки схемы на основе схематики (с использованием специального программного обеспечения, например, CADENCE). В некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором объединяют (3244) одну или несколько конструкций компоновки схемы перед этапом, на котором формируют множество литографических масок для изготовления множества схем.

[0420] Обращаясь далее к Фигуре 32B, в некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых: (i) получают (3212) новую топологию нейронной сети и весовые коэффициенты обученной нейронной сети; (ii) выбирают (3214) одну или несколько литографических масок из множества литографических масок на основе сравнения новой топологии нейронной сети с множеством топологий нейронной сети. В некоторых вариантах осуществления, новая топология нейронной сети включает в себя множество топологий подсети, и этап, на котором выбирают одну или несколько литографических масок, дополнительно основан на сравнении (3216) каждой топологии подсети с каждой топологией сети из множества топологий сети; (iii) вычисляют (3218) матрицу весов для новой эквивалентной аналоговой сети на основе весовых коэффициентов; (iv) формируют (3220) матрицу сопротивлений для матрицы весов; и (v) формируют (3222) новую литографическую маску для изготовления схемы, реализующей новую эквивалентную аналоговую сеть, на основе матрицы сопротивлений и одной или нескольких литографических масок.

[0421] Обращаясь далее к Фигуре 32C, одну или несколько топологий подсети из множества топологий подсети не удается сравнить (3224) с какой-либо топологией сети из множества топологий сети, и способ дополнительно включает в себя этапы, на которых: (i) трансформируют (3226) каждую топологию подсети из одной или нескольких топологий подсети в соответствующую эквивалентную аналоговую подсеть аналоговых компонентов; и (ii) формируют (3228) одну или несколько литографических масок для изготовления одной или нескольких схем, причем каждая схема из одной или нескольких схем реализует соответствующую эквивалентную аналоговую подсеть аналоговых компонентов.

Примерные Способы для Оптимизации Эффективности Использования Энергии Нейроморфных Аналоговых Интегральных Микросхем

[0422] Фигуры 33A-33J показывают блок-схему способа 3300 для оптимизации (3302) эффективности использования энергии аналоговых нейроморфных схем (которые моделируют обученные нейронные сети), в соответствии с некоторыми вариантами осуществления. Способ выполняется (3204) в вычислительном устройстве 200 (например, с использованием модуля 264 оптимизации эффективности использования энергии) с одним или несколькими процессорами 202, и памятью 214, хранящей одну или несколько программ, сконфигурированных для исполнения одним или несколькими процессорами 202.

[0423] Способ включает в себя этап, на котором получают (3306) интегральную микросхему (например, IC 262), реализующую аналоговую сеть (например, трансформированную аналоговую нейронную сеть 228) аналоговых компонентов, включающую в себя множество операционных усилителей и множество резисторов. Аналоговая сеть представляет собой обученную нейронную сеть (например, нейронные сети 220), причем каждый операционный усилитель представляет собой соответствующий аналоговый нейрон, а каждый резистор представляет собой соответствующее соединение между соответствующим первым аналоговым нейроном и соответствующим вторым аналоговым нейроном.

[0424] Способ также включает в себя этап, на котором формируют (3308) логические выводы (например, с использованием модуля 266 логического вывода) с использованием интегральной микросхемы для множества тестовых вводов, включая одновременный перенос сигналов от одного слоя к последующему слою аналоговой сети. В некоторых вариантах осуществления, аналоговая сеть имеет слоистую структур, с сигналами, одновременно исходящими от предыдущего слоя к следующему. Во время процесса логического вывода, сигналы распространяются по схеме слой за слоем; моделирование на уровне устройства; задержки времени каждую минуту.

[0425] Способ также включает в себя этап, на котором, в то время, как формируют логические выводы с использованием интегральной микросхемы: определяют (3310), сбалансирован ли уровень вывода сигнала множества операционных усилителей (например, с использованием модуля 268 мониторинга сигнала). Операционные усилители проходят через переходный период (например, период, который длится менее 1 миллисекунды от переходного к сигналу плато) после приема вводов, после чего уровень сигнала сбалансирован и не меняется. В соответствии с определением того, что уровень вывода сигнала является сбалансированным: (i) определяют (3312) активный набор аналоговых нейронов аналоговой сети, влияющий на формирование сигнала для распространения сигналов. Активный набор нейронов не обязательно должен быть частью слоя/слоев. Другими словами, этап определения работает независимо от того, включает ли в себя аналоговая сеть слои нейронов; и (ii) выключают (3314) питание (например, с использованием модуля 270 оптимизации питания) для одного или нескольких аналоговых нейронов аналоговой сети, отличных от активного набора аналоговых нейронов, на предварительно определенный период времени. Например, некоторые варианты осуществления выключают питание (например, с использованием модуля 270 оптимизации питания) операционных усилителей, которые находятся в слоях позади активного слоя (в котором сигнал распространяется в данный момент), и которые не оказывают влияние на формирование сигнала в активном слое. Это может быть вычислено на основе задержек RC распространения сигнала через IC. Таким образом все слои позади рабочего (или активного слоя) выключаются для экономии питания. Таким образом распространение сигналов по чипу подобно серфингу - волна формирования сигнала распространяется по чипу, и все слои, которые не оказывают влияние на формирование сигнала, выключаются. В некоторых вариантах осуществления, применительно к сетям слой-за-слоем, сигнала распространяется слой за слоем, и способ дополнительно включает в себя этап, на котором уменьшают потребление энергии до слоя, соответствующего активному набору нейронов, потому что нет необходимости в усилении до этого слоя.

[0426] Обращаясь далее к Фигуре 33B, в некоторых вариантах осуществления, этап, на котором определяют активный набор аналоговых нейронов, основан на вычислении (3316) задержек распространения сигнала через аналоговую сеть. Обращаясь далее к Фигуре 33C, в некоторых вариантах осуществления, этап, на котором определяют активный набор аналоговых нейронов, основан на обнаружении (3318) распространения сигналов через аналоговую сеть.

[0427] Обращаясь далее к Фигуре 33D, в некоторых вариантах осуществления, обученная нейронная сеть является нейронной сетью с прямой связью, и активный набор аналоговых нейронов принадлежит к активному слою аналоговой сети, и этап, на котором выключают питание, включает в себя этап, на котором выключают (3320) питание для одного или нескольких слоев до активного слоя аналоговой сети.

[0428] Обращаясь далее к Фигуре 33E, в некоторых вариантах осуществления, предварительно определенный период времени вычисляется (3322) на основе моделирования распространения сигналов через аналоговую сеть, с учетом задержек сигнала (с использованием специального программного обеспечения, например, CADENCE).

[0429] Обращаясь далее к Фигуре 33F, в некоторых вариантах осуществления, обученная нейронная сеть является (3324) рекуррентной нейронной сетью (RNN), и аналоговая сеть дополнительно включает в себя один или несколько аналоговых компонентов отличных от множества операционных усилителей, и множество резисторов. В таких случаях, способ дополнительно включает в себя этап, на котором, в соответствии с определением того, что уровень вывода сигнала является сбалансированным, выключают (3326) питание (например, с использованием модуля 270 оптимизации питания), для одного или нескольких аналоговых компонентов, на предварительно определенный период времени.

[0430] Обращаясь далее к Фигуре 33G, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором выключают (3328) питание (например, с использованием модуля 270 оптимизации питания) для одного или нескольких аналоговых нейронов аналоговой сети после предварительно определенного периода времени.

[0431] Обращаясь далее к Фигуре 33H, в некоторых вариантах осуществления, этап, на котором определяют, является ли уровень вывода сигнала множества операционных усилителей, сбалансированным, основан на обнаружении (3330) того, выводит ли один или несколько операционных усилителей аналоговой сети уровень сигнала больше предварительно определенного порогового уровня сигнала (например, по мощности, току или напряжению).

[0432] Обращаясь далее к Фигуре 33I, в некоторых вариантах осуществления, способ дополнительно включает в себя этап, на котором повторяют (3332) (например, посредством модуля 270 оптимизации питания) выключение на предварительно определенный период времени и включение активного набора аналоговых нейронов на предварительно определенный период времени в то время, как формируют логические выводы.

[0433] Обращаясь далее к Фигуре 33J, в некоторых вариантах осуществления, способ дополнительно включает в себя этапы, на которых, в соответствии с определением того, что уровень вывода сигнала является сбалансированным, для каждого цикла (3334) логического вывода: (i) в течение первого интервала времени, определяют (3336) первый слой аналоговых нейронов аналоговой сети, влияющий на формирование сигнала для распространения сигналов; и (b) выключают (3338) питание (например, с использованием модуля 270 оптимизации питания) для первого одного или нескольких аналоговых нейронов аналоговой сети, до первого слоя, на предварительно определенный период времени; и в течение второго интервала времени, следующего за первым интервалом времени, выключают (3340) питание (например, с использованием модуля 270 оптимизации питания) для второго одного или нескольких аналоговых нейронов, включая первый слой аналоговых нейронов и первый один или несколько аналоговых нейронов аналоговой сети, на предварительно определенный период.

[0434] Обращаясь далее к Фигуре 33K, в некоторых вариантах осуществления, один или несколько аналоговых нейронов состоят (3342) из аналоговых нейронов первого одного или нескольких слоев аналоговой сети, и активный набор аналоговых нейронов состоит из аналоговых нейронов второго слоя аналоговой сети, и второй слой аналоговой сети отличается от слоев первого одного или нескольких слоев.

[0435] Некоторые варианты осуществления включают в себя средство для осуществления задержки и/или управления распространением сигнала от слоя к слою результирующей аппаратно-реализованной нейронной сети.

Пример Трансформации MobileNet v.1

[0436] Примерная трансформация MobileNet v.1 в эквивалентную аналоговую сеть описывается в данном документе, в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления, формируются одиночные аналоговые нейроны, затем преобразуются в схематику SPICE с трансформацией весовых коэффициентов из MobileNet в значения резистора. Архитектура MobileNet изображена в Таблице, показанной на Фигуре 34. В таблице, первый столбец 3402 соответствует типу слоя и шагу, второй столбец 3404 соответствует форме фильтра для соответствующего слоя, а третий столбец 3406 соответствует входному размеру для соответствующего слоя. В MobileNet v.1 за каждым сверточным слоем следует слой пакетной нормализации и функция активации ReLU 6 (y=max(0, min(6, x)). Сеть состоит из 27 сверточных слоев, 1 плотного слоя и имеет около 600 миллионов операций умножения-накопления для 224×224×3 входного изображения. Выходные значения являются результатом функции активации softmax, которая означает, что значения распределяются в диапазоне [0, 1] и сумма равна 1. Некоторые варианты осуществления осуществляют принятие в качестве ввода MobileNet 32×32 и альфы=1 для трансформации. В некоторых вариантах осуществления, сеть предварительно обучается в отношении задачи CIFAR-10 (50000 32×32×3 изображений, разделенных на 10 непересекающихся классов). Слои пакетной нормализации работают в режиме ‘тест’, чтобы создавать простую линейную трансформацию сигнала, так что слои интерпретируются в качестве множителя весового коэффициента + некоторое дополнительное смещение. Слои Convolutional, AveragePooling и Dense трансформируются с использованием методик, описанных выше, в соответствии с некоторыми вариантами осуществления. В некоторых вариантах осуществления, функция активации Softmax не реализуется в трансформированной сети, а применяется к выводу трансформированной сети (или эквивалентной аналоговой сети) отдельно.

[0437] В некоторых вариантах осуществления, результирующая трансформированная сеть включает в себя 30 слоев, включая входной слой, приблизительно 104000 аналоговых нейронов, и приблизительно 11 миллионов соединений. После трансформации, средняя абсолютная ошибка вывода (вычисленная по 100 произвольным выборкам) трансформированной сети в сравнении с MobileNet v.1 была 4.e-8.

[0438] Поскольку каждый сверточный и другие слои у MobileNet имеют функцию активации ReLU6, то выходной сигнал в каждом слое трансформированной сети также ограничивается значением 6. Как часть трансформации, весовые коэффициенты приводятся в соответствии с номинальным набором резисторов. При каждом номинальном наборе возможны разные значения весового коэффициента. Некоторые варианты осуществления используют номинальные наборы e24, e48 и e96 резисторов, с диапазоном [0.1-1] МОм. При условии, что диапазоны весовых коэффициентов для каждого слоя меняются, и для большинства слоев значения весового коэффициента не превышают 1-2, для достижения большей точности весового коэффициента, некоторые варианты осуществления уменьшают значения R- и R+. В некоторых вариантах осуществления, значения R- и R+ выбираются отдельно для каждого слоя из набора [0.05, 0.1, 0.2, 0.5, 1]МОм. В некоторых вариантах осуществления, для каждого слоя, выбирается значение, которое дает наибольшую точность весового коэффициента. Затем все весовые коэффициенты (включая смещение) в трансформированной сети ‘квантуются’, т.е. устанавливаются в наиболее близкое значение, которое может быть достигнуто с помощью используемых резисторов. В некоторых вариантах осуществления, это уменьшает точность трансформированной сети в сравнении с оригинальной MobileNet в соответствии с Таблицей, показанной ниже. Таблица показывает среднеквадратическую ошибку трансформированной сети при использовании разных наборов резисторов, в соответствии с некоторыми вариантами осуществления.

Набор резисторов Среднеквадратическая ошибка E24 0.1-1 МОм 0.01 E24 0.1-5 МОм 0.004 E48 0.1-1 МОм 0.007 E96 0.1-1 МОм 0.003

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

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

Похожие патенты RU2796649C2

название год авторы номер документа
СПОСОБ СОЗДАНИЯ КОДОВОЙ КНИГИ И ПОИСКА В НЕЙ ПРИ ВЕКТОРНОМ КВАНТОВАНИИ ДАННЫХ 2012
  • Рыжков Александр Павлович
  • Афанасьев Андрей Алексеевич
  • Катков Олег Николаевич
RU2504027C1
СПОСОБ И СИСТЕМА НЕИНВАЗИВНОЙ СКРИНИНГОВОЙ ОЦЕНКИ ФИЗИОЛОГИЧЕСКИХ ПАРАМЕТРОВ И ПАТОЛОГИЙ 2016
  • Ежков Александр Викторович
  • Бекмачев Александр Егорович
  • Садовский Сергей Павлович
  • Сунцова Ольга Валерьевна
RU2657384C2
СИСТЕМА И СПОСОБ ДЛЯ ИСКУССТВЕННОЙ НЕЙРОННОЙ СЕТИ, ИНВАРИАНТНОЙ К СДВИГУ 2017
  • Парамонов Владимир Петрович
  • Лаврухин Виталий Сергеевич
  • Чернявский Алексей Станиславович
RU2656990C1
СПОСОБ НЕЙРОСЕТЕВОГО ПРОГНОЗИРОВАНИЯ ИЗМЕНЕНИЯ ЗНАЧЕНИЙ ФУНКЦИИ С ЕЁ ПРЕДВАРИТЕЛЬНОЙ ВЕЙВЛЕТ-ОБРАБОТКОЙ И УСТРОЙСТВО ЕГО ОСУЩЕСТВЛЕНИЯ 2015
  • Белов Алексей Анатольевич
  • Ермолаев Валерий Андреевич
  • Кропотов Юрий Анатольевич
  • Проскуряков Александр Юрьевич
RU2600099C1
ГЕНЕРАТОРЫ ИЗОБРАЖЕНИЙ С УСЛОВНО НЕЗАВИСИМЫМ СИНТЕЗОМ ПИКСЕЛЕЙ 2021
  • Анохин Иван Александрович
  • Дёмочкин Кирилл Владиславович
  • Хахулин Тарас Андреевич
  • Стеркин Глеб Михайлович
  • Лемпицкий Виктор Сергеевич
  • Корженков Денис Михайлович
RU2770132C1
Способ и устройство автоматического распознавания типа манипуляции радиосигналов 2016
  • Елизаров Вячеслав Владимирович
  • Касаткин Алексей Сергеевич
  • Наливаев Андрей Валерьевич
  • Смирнов Павел Леонидович
  • Шепилов Александр Михайлович
RU2619717C1
СИСТЕМЫ И СПОСОБЫ ВЫРАБОТКИ АУДИОСИГНАЛА 2019
  • Чжоу, Мэйлинь
  • Ляо, Фэнгюнь
  • Ци, Синь
RU2804933C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ЛОКАЛЬНОГО ПРАВИЛА СОСТЯЗАТЕЛЬНОГО ОБУЧЕНИЯ, КОТОРОЕ ПРИВОДИТ К РАЗРЕЖЕННОЙ СВЯЗНОСТИ 2012
  • Апарин Владимир
RU2586864C2
Способ автоматического распознавания типа манипуляции радиосигналов 2016
  • Елизаров Вячеслав Владимирович
  • Касаткин Алексей Сергеевич
  • Наливаев Андрей Валерьевич
  • Смирнов Павел Леонидович
  • Шепилов Александр Михайлович
RU2622846C1
СВЕРХПРОВОДЯЩИЙ НЕЙРОН ДЛЯ МНОГОСЛОЙНОГО ПЕРСЕПТРОНА 2019
  • Щеголев Андрей Евгеньевич
  • Соловьев Игорь Игоревич
  • Кленов Николай Викторович
  • Бакурский Сергей Викторович
  • Больгинов Виталий Владимирович
  • Терешонок Максим Валерьевич
  • Куприянов Михаил Юрьевич
RU2734581C1

Иллюстрации к изобретению RU 2 796 649 C2

Реферат патента 2023 года АНАЛОГОВАЯ АППАРАТНАЯ РЕАЛИЗАЦИЯ НЕЙРОННЫХ СЕТЕЙ

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

Формула изобретения RU 2 796 649 C2

1. Способ аппаратной реализации нейронных сетей, содержащий этапы, на которых:

получают топологию нейронной сети и весовые коэффициенты обученной нейронной сети;

трансформируют топологию нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов;

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

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

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

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

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

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

3. Способ по п.2, дополнительно содержащий этапы, на которых:

получают новые весовые коэффициенты для обученной нейронной сети;

вычисляют новую матрицу весов для эквивалентной аналоговой сети на основе новых весовых коэффициентов; и

формируют новую матрицу сопротивлений для новой матрицы весов.

4. Способ по п.1, в котором один или более блоков функции включают в себя один или более базовых блоков функции, выбранных из группы, состоящей из следующего:

блок взвешенного суммирования с выводом блока в виде , где является функцией активации Выпрямленной Линейной Единицы (ReLU) или аналогичной функцией активации, представляет собой i-й ввод, представляет собой весовой коэффициент, соответствующий i-му вводу, и представляет собой значение смещения, и является оператором суммирования;

блок умножителя сигнала с выводом блока в виде , где представляет собой i-й ввод, представляет собой j-й ввод, и является предварительно определенным коэффициентом;

блок активации по сигмоиде с выводом блока в виде , где представляет собой ввод, а A и B являются предварительно определенными значениями коэффициента блока активации по сигмоиде;

блок активации по гиперболическому тангенсу с выводом блока в виде , где представляет собой ввод, а A и B являются предварительно определенными значениями коэффициента; и

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

5. Способ по п.1, в котором этап, на котором идентифицируют один или более блоков функции, включает в себя этап, на котором выбирают один или более блоков функции на основе типа соответствующего слоя.

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

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

для каждого подслоя первого слоя топологии нейронной сети:

выбирают один или более блоков подфункции на основе соответствующей промежуточной математической функции для соответствующего подслоя, и

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

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

8. Способ по п.1, дополнительно содержащий этапы, на которых:

формируют эквивалентную цифровую сеть цифровых компонентов для одного или более выходных слоев топологии нейронной сети; и

соединяют вывод одного или более слоев эквивалентной аналоговой сети с эквивалентной цифровой сетью цифровых компонентов.

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

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

11. Способ по п.1, в котором топология нейронной сети включает в себя один или более нейронов GRU или LSTM, и этап, на котором трансформируют топологию нейронной сети, включает в себя этап, на котором формируют один или более блоков задержки сигнала для каждого рекуррентного соединения одного или более нейронов GRU или LSTM.

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

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

замена функций неограниченной активации ограниченной активацией; и

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

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

15. Способ по п.14, дополнительно содержащий этапы, на которых:

получают новые весовые коэффициенты для обученной нейронной сети;

вычисляют новую матрицу весов для эквивалентной аналоговой сети на основе новых весовых коэффициентов;

формируют новую матрицу сопротивлений для новой матрицы весов; и

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

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

17. Система для аппаратной реализации нейронных сетей, содержащая:

один или более процессоров;

память, при этом память хранит одну или более программ, сконфигурированных для исполнения одним или более процессорами, и одна или более программ содержат инструкции для:

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

трансформации топологии нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов;

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

формирования схематической модели для реализации эквивалентной аналоговой сети на основе матрицы весов, включая выбор значений компонентов для аналоговых компонентов,

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

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

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

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

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

трансформации топологии нейронной сети в эквивалентную аналоговую сеть аналоговых компонентов;

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

формирования схематической модели для реализации эквивалентной аналоговой сети на основе матрицы весов, включая выбор значений компонентов для аналоговых компонентов,

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

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

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

19. Способ аппаратной реализации нейронных сетей, содержащий этапы, на которых:

получают топологию нейронной сети и весовые коэффициенты обученной нейронной сети;

вычисляют одно или более ограничений соединения на основе конструктивных ограничений аналоговой интегральной микросхемы (IC);

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

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

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

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

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

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

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

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

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

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

27. Способ по п.19, в котором топология нейронной сети включает в себя вводов, весовой вектор и однослойный персептрон с нейроном вычисления с функцией активации,

этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, содержит этапы, на которых:

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

вычисляют количество слоев для эквивалентной сети с разреженными соединениями с использованием уравнения ; и

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

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

.

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

этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, содержит этапы, на которых:

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

вычисляют количество слоев для эквивалентной сети с разреженными соединениями с использованием уравнения ;

осуществляют разложение однослойного персептрона на сетей однослойного персептрона, при этом каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления;

для каждой сети однослойного персептрона из сетей однослойного персептрона:

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

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

этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, содержит этапы, на которых, для каждой сети однослойного персептрона из сетей однослойного персептрона:

устанавливают весовой вектор , причем iя строка матрицы весов соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона; и

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

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

этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, содержит этапы, на которых:

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

осуществляют разложение многослойного персептрона на сетей однослойного персептрона, при этом каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления, при этом этап, на котором осуществляют разложение многослойного персептрона, включает в себя этап, на котором дублируют один или более вводов из вводов, которые совместно используются нейронами вычисления;

для каждой сети однослойного персептрона из сетей однослойного персептрона:

вычисляют количество слоев для соответствующей эквивалентной пирамидоподобной подсети с использованием уравнения , при этом является количеством вводов для соответствующего нейрона вычисления в многослойном персептроне; и

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

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

этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, содержит этапы, на которых, для каждой сети однослойного персептрона из сетей однослойного персептрона:

устанавливают весовой вектор , причем iя строка матрицы весов соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона, где является соответствующим слоем соответствующего нейрона вычисления в многослойном персептроне; и

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

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

этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, содержит этапы, на которых:

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

осуществляют разложение CNN на сетей однослойного персептрона, причем каждая сеть однослойного персептрона включает в себя соответствующий нейрон вычисления из нейронов вычисления, при этом этап, на котором осуществляют разложение CNN, включает в себя этап, на котором дублируют один или более вводов из вводов, которые совместно используются нейронами вычисления;

для каждой сети однослойного персептрона из сетей однослойного персептрона:

вычисляют количество слоев для соответствующей эквивалентной пирамидоподобной подсети с использованием уравнения , при этом является соответствующим слоем у соответствующего нейрона вычисления в CNN, а является количеством вводов для соответствующего нейрона вычисления в CNN; и

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

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

этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, содержит этапы, на которых, для каждой сети однослойного персептрона из сетей однослойного персептрона:

устанавливают весовой вектор , причем iя строка матрицы весов соответствует соответствующему нейрону вычисления, который соответствует соответствующей сети однослойного персептрона, где является соответствующим слоем соответствующего нейрона вычисления в CNN; и

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

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

этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, содержит этап, на котором выполняют трапециевидную трансформацию, которая содержит:

получение возможной степени входного соединения и возможной степени выходного соединения в соответствии с одним или более ограничениями соединения;

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

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

32. Способ по п.31, в котором этап, на котором выполняют трапециевидную трансформацию, дополнительно содержит этапы, на которых, в соответствии с определением того, что :

дробят слой , чтобы получить подслой с нейронами и подслой с нейронами так, что ;

для подслоя с нейронами, выполняют этапы конструирования и формирования; и

для подслоя с нейронами, рекурсивно выполняют этапы дробления, конструирования и формирования.

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

34. Способ по п.32, в котором топология нейронной сети включает в себя рекуррентную нейронную сеть (RNN), которая включает в себя (i) вычисление линейной комбинации для двух слоев с полными соединениями; (ii) поэлементное сложение; и (iii) вычисление нелинейной функции, причем способ дополнительно содержит этап, на котором выполняют трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями для (i) двух слоев с полными соединениями и (ii) вычисления нелинейной функции.

35. Способ по п.32, в котором топология нейронной сети включает в себя сеть долгой краткосрочной памяти (LSTM) или сеть управляемых рекуррентных блоков (GRU), которые включают в себя (i) вычисление линейной комбинации для множества слоев с полными соединениями, (ii) поэлементное сложение, (iii) произведение Адамара и (iv) множество вычислений нелинейной функции, причем способ дополнительно содержит этап, на котором выполняют трапециевидную трансформацию и вычисление матрицы весов для эквивалентной сети с разреженными соединениями для (i) множества слоев с полными соединениями и (ii) множества вычислений нелинейной функции.

36. Способ по п.32, в котором топология нейронной сети включает в себя сверточную нейронную сеть (CNN), которая включает в себя (i) множество слоев с частичными соединениями и (ii) один или более слоев с полными соединениями, причем способ дополнительно содержит этапы, на которых:

трансформируют множество слоев с частичными соединениями в эквивалентные слои с полными соединениями путем вставки отсутствующих соединений с нулевыми весовыми коэффициентами; и

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

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

этап, на котором трансформируют топологию нейронной сети в эквивалентную сеть с разреженными соединениями аналоговых компонентов, содержит этап, на котором выполняют трансформацию аппроксимации, который содержит этапы, на которых:

получают возможную степень входного соединения и возможную степень выходного соединения в соответствии с одним или более ограничениями соединения;

выбирают параметр из набора ;

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

конструируют трапециевидную нейронную сеть с вводами и выводами, при этом каждый нейрон в последнем слое трапециевидной нейронной сети выполняет функцию активации, а все другие нейроны выполняют тождественную функцию, и

этап, на котором вычисляют матрицу весов для эквивалентной сети с разреженными соединениями, содержит этапы, на которых:

формируют весовые коэффициенты для пирамидальной нейронной сети, включая (i) установку весовых коэффициентов каждого нейрона i первого слоя пирамидальной нейронной сети в соответствии со следующим правилом: (a) , где является ненулевой константой, а ; и (b) , для всех весовых коэффициентов j нейрона за исключением ; и (ii) установку всех других весовых коэффициентов пирамидальной нейронной сети в 1; и

формируют весовые коэффициенты для трапециевидной нейронной сети, включая (i) установку весовых коэффициентов каждого нейрона i первого слоя трапециевидной нейронной сети в соответствии с уравнением ; и (ii) установку других весовых коэффициентов трапециевидной нейронной сети в 1.

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

конструируют соответствующую пирамидально-трапециевидную сеть PTNNXj путем выполнения трансформации аппроксимации до соответствующего однослойного персептрона, состоящего из вводов, выходных нейронов и матрицы весов; и

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

39. Система для аппаратной реализации нейронных сетей, содержащая:

один или более процессоров;

память, при этом память хранит одну или более программ, сконфигурированных для исполнения одним или более процессорами, и одна или более программ содержат инструкции для:

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

вычисления одного или более ограничений соединения на основе конструктивных ограничений аналоговой интегральной микросхемы (IC);

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

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

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

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

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

вычисления одного или более ограничений соединения на основе конструктивных ограничений аналоговой интегральной микросхемы (IC);

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

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

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

41. Способ аппаратной реализации нейронных сетей, содержащий этапы, на которых:

получают топологию нейронной сети и весовые коэффициенты обученной нейронной сети;

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

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

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

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

42. Способ по п.41, в котором этап, на котором формируют матрицу сопротивлений для матрицы весов, содержит этапы, на которых:

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

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

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

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

43. Способ по п.42, в котором предварительно определенный диапазон возможных значений сопротивления включает в себя сопротивления в соответствии с номинальным рядом E24 в диапазоне от 100 кОм до 1 МОм.

44. Способ по п.42, в котором и выбираются независимо для каждого слоя эквивалентной аналоговой сети.

45. Способ по п.42, в котором и выбираются независимо для каждого аналогового нейрона эквивалентной аналоговой сети.

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

модифицируют первые один или более весовых коэффициентов на первое значение; и

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

47. Способ по п.41, дополнительно содержащий этапы, на которых:

получают предварительно определенный диапазон весовых коэффициентов; и

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

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

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

50. Система для аппаратной реализации нейронных сетей, содержащая:

один или более процессоров;

память, при этом память хранит одну или более программ, сконфигурированных для исполнения одним или более процессорами, и одна или более программ содержат инструкции для:

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

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

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

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

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

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

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

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

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

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

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

52. Способ аппаратной реализации нейронных сетей, содержащий этапы, на которых:

получают топологию нейронной сети и весовые коэффициенты обученной нейронной сети;

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

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

формируют матрицу сопротивлений для матрицы весов, при этом каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов; и

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

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

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

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

54. Способ по п.53, в котором этап, на котором прореживают эквивалентную аналоговую сеть, дополнительно содержит этап, на котором удаляют один или более аналоговых нейронов эквивалентной аналоговой сети без каких-либо входных соединений.

55. Способ по п.52, в котором этап, на котором прореживают эквивалентную аналоговую сеть, содержит этапы, на которых:

ранжируют аналоговые нейроны эквивалентной аналоговой сети на основе обнаружения использования аналоговых нейронов при выполнении вычислений для одного или более наборов данных;

выбирают один или более аналоговых нейронов эквивалентной аналоговой сети на основе ранжирования; и

удаляют один или более аналоговых нейронов из эквивалентной аналоговой сети.

56. Способ по п.55, в котором этап, на котором обнаруживают использование аналогового нейрона, содержит этапы, на которых:

строят модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования; и

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

57. Способ по п.55, в котором этап, на котором обнаруживают использование аналогового нейрона, содержит этапы, на которых:

строят модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования; и

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

58. Способ по п.55, в котором этап, на котором обнаруживают использование аналоговых нейронов, содержит этапы, на которых:

строят модель эквивалентной аналоговой сети с использованием программного обеспечения для моделирования; и

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

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

60. Способ по п.52, дополнительно содержащий этапы, на которых, для каждого аналогового нейрона эквивалентной аналоговой сети:

вычисляют соответствующее значение смещения для соответствующего аналогового нейрона на основе весовых коэффициентов обученной нейронной сети в то время, как вычисляется матрица весов;

в соответствии с определением того, что соответствующее значение смещения выше предварительно определенной максимальной пороговой величины смещения, удаляют соответствующий аналоговый нейрон из эквивалентной аналоговой сети; и

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

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

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

63. Способ по п.62, в котором упомянутое прореживание выполняется итерационно с учетом точности или уровня совпадения вывода между обученной нейронной сетью и эквивалентной аналоговой сетью.

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

65. Система для аппаратной реализации нейронных сетей, содержащая:

один или более процессоров;

память, при этом память хранит одну или более программ, сконфигурированных для исполнения одним или более процессорами, и одна или более программ содержат инструкции для:

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

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

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

формирования матрицы сопротивлений для матрицы весов, при этом каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов; и

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

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

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

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

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

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

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

формирования матрицы сопротивлений для матрицы весов, при этом каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов; и

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

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

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

67. Интегральная микросхема, содержащая:

аналоговую сеть аналоговых компонентов, изготовленную способом, который содержит этапы, на которых:

получают топологию нейронной сети и весовые коэффициенты обученной нейронной сети;

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

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

формируют матрицу сопротивлений для матрицы весов, при этом каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов;

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

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

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

68. Интегральная микросхема по п.67, дополнительно содержащая модуль дискретизации аналогового сигнала, выполненный с возможностью обработки 1-мерных или 2-мерных аналоговых вводов с частотой дискретизации на основе количества логических выводов интегральной микросхемы.

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

70. Интегральная микросхема по п.67, дополнительно содержащая модуль обработки тактового сигнала, выполненный с возможностью обработки одного или более кадров, полученных от CCD камеры.

71. Интегральная микросхема по п.67, в которой обученная нейронная сеть является сетью долгой краткосрочной памяти (LSTM), причем интегральная микросхема дополнительно содержит один или более модулей тактового генератора для синхронизации тактов сигнала и для обеспечения обработки временного ряда.

72. Интегральная микросхема по п.67, дополнительно содержащая один или более аналого-цифровых преобразователей, выполненных с возможностью формирования цифрового сигнала на основе вывода эквивалентной аналоговой сети аналоговых компонентов.

73. Интегральная микросхема по п.67, при этом микросхема дополнительно включает в себя один или более модулей обработки сигнала, выполненных с возможностью обработки 1-мерных или 2-мерных аналоговых сигналов, полученных от граничных приложений.

74. Интегральная микросхема по п.67, в которой:

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

топология нейронной сети является 1-Мерной Глубокой Сверточной Нейронной сетью (1D-DCNN), разработанной для обнаружения 3 бинарных газовых компонентов на основе измерений посредством 16 газовых датчиков, и включает в себя 16 1-D сверточных блоков по датчикам, 3 совместно используемых или общих 1-D сверточных блоков и 3 плотных слоя, и

эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) блоки задержки для создания задержки на любое количество временных шагов, (iii) лимит сигналов, равный 5, (iv) 15 слоев, (v) приблизительно 100000 аналоговых нейронов и (vi) приблизительно 4900000 соединений.

75. Интегральная микросхема по п.67, в которой:

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

топология нейронной сети включает в себя 4 слоя LSTM с 64 нейронами в каждом слое, за которыми следуют два плотных слоя с 64 нейронами и 1 нейроном, соответственно, и

эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов, равный 5, (iii) 18 слоев, (iv) от 3000 до 3200 аналоговых нейронов, и (v) от 123000 до 124000 соединений.

76. Интегральная микросхема по п.67, в которой:

обученная нейронная сеть обучается с использованием обучающих наборов данных, содержащих данные временного ряда, включающие в себя данные разряда и температуры во время непрерывного использования разных имеющихся в продаже ионно-литиевых (Li-Ion) батарей, для мониторинга исправного состояния (SOH) и состояния заряда (SOC) ионно-литиевых батарей для использования в системах управления батареями (BMS),

топология нейронной сети включает в себя входной слой, 2 слоя LSTM с 64 нейронами в каждом слое, за которыми следует плотный выходной слой с 2 нейронами для формирования значений SOC и SOH, и

эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов, равный 5, (iii) 9 слоев, (iv) от 1200 до 1300 аналоговых нейронов, и (v) от 51000 до 52000 соединений.

77. Интегральная микросхема по п.67, в которой:

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

топология нейронной сети включает в себя входной слой с 18 нейронами, простой рекуррентный слой с 100 нейронами и плотный слой с 1 нейроном, и

эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов, равный 5, (iii) 4 слоя, (iv) от 200 до 300 аналоговых нейронов, и (v) от 2200 до 2400 соединений.

78. Интегральная микросхема по п.67, в которой:

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

топология нейронной сети является слоем Разделяемой по Глубинам Сверточной Нейронной Сети (DS-CNN) с 1 нейроном, и

эквивалентная аналоговая сеть включает в себя: (i) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (ii) лимит сигналов, равный 5, (iii) 13 слоев, (iv) приблизительно 72000 аналоговых нейронов, и (v) приблизительно 2.6 миллиона соединений.

79. Интегральная микросхема по п.67, в которой:

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

топология нейронной сети включает в себя два слоя Conv1D, каждый с 16 фильтрами и размером ядра 20, выполняющим свертку временного ряда, два слоя LSTM, каждый с 16 нейронами, и два плотных слоя с 16 нейронами и 1 нейроном, соответственно, и

эквивалентная аналоговая сеть включает в себя: (i) блоки задержки для создания любого количества временных шагов, (ii) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (iii) лимит сигналов, равный 5, (iv) 16 слоев, (v) от 700 до 800 аналоговых нейронов, и (vi) от 12000 до 12500 соединений.

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

81. Интегральная микросхема по п.67, в которой:

обученная нейронная сеть обучается выполнять распознавание типа активности человека,

топология нейронной сети включает в себя три сверточные сети по каналам, причем каждая со сверточным слоем из 12 фильтров и размером ядра 64 и за каждой следует слой максимального пула, и два общих плотных слоя из 1024 нейронов и N нейронов, соответственно, где N - количество классов, и

эквивалентная аналоговая сеть включает в себя: (i) блоки задержки для создания любого количества временных шагов, (ii) максимум 100 входных и выходных соединений из расчета на аналоговый нейрон, (iii) выходной слой из 10 аналоговых нейронов, (iv) лимит сигналов, равный 5, (v) 10 слоев, (vi) от 1200 до 1300 аналоговых нейронов, и (vi) от 20000 до 21000 соединений.

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

83. Система для аппаратной реализации нейронных сетей, содержащая:

один или более процессоров;

память, при этом память хранит одну или более программ, сконфигурированных для исполнения одним или более процессорами, и одна или более программ содержат инструкции для:

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

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

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

формирования матрицы сопротивлений для матрицы весов, при этом каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов;

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

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

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

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

получения топологии нейронной сети и весовых коэффициентов обученной нейронной сети;

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

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

формирования матрицы сопротивлений для матрицы весов, при этом каждый элемент матрицы сопротивлений соответствует соответствующему весовому коэффициенту матрицы весов;

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

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

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

Документы, цитированные в отчете о поиске Патент 2023 года RU2796649C2

WEBER TIAGO OLIVEIRA et al., "Amplifier-based MOS Analog Neural Network Implementation and Weights Optimization", August 2019, 32nd SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN (SBCCI), ACM, [Найдено 13.09.2022] в сети Интернет
Токарный резец 1924
  • Г. Клопшток
SU2016A1
EP 3663988 A1, 10.06.2020
US 5047655 A, 10.09.1991
US 5315163 A, 24.05.1994

RU 2 796 649 C2

Авторы

Тимофеевс Александрс

Маслов Борис

Ковшов Николай Вадимович

Годовский Дмитрий Юльевич

Даты

2023-05-29Публикация

2020-06-25Подача