RU2609745C2 - Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом - Google Patents

Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом Download PDF

Info

Publication number
RU2609745C2
RU2609745C2 RU2014121655A RU2014121655A RU2609745C2 RU 2609745 C2 RU2609745 C2 RU 2609745C2 RU 2014121655 A RU2014121655 A RU 2014121655A RU 2014121655 A RU2014121655 A RU 2014121655A RU 2609745 C2 RU2609745 C2 RU 2609745C2
Authority
RU
Russia
Prior art keywords
vector
coefficient
scalar
components
loaded
Prior art date
Application number
RU2014121655A
Other languages
English (en)
Other versions
RU2014121655A (ru
Inventor
Павел Вячеславович Скрибцов
Original Assignee
Общество с ограниченной ответственностью "ПАВЛИН Технологии"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "ПАВЛИН Технологии" filed Critical Общество с ограниченной ответственностью "ПАВЛИН Технологии"
Priority to RU2014121655A priority Critical patent/RU2609745C2/ru
Publication of RU2014121655A publication Critical patent/RU2014121655A/ru
Application granted granted Critical
Publication of RU2609745C2 publication Critical patent/RU2609745C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Complex Calculations (AREA)

Abstract

Изобретение относится к вычислительной технике и может использоваться для быстрого выполнения математических вычислений в нейронных сетях типа Multilayer Perceptron (MLP). Техническим результатом является уменьшение сложности устройства. Устройство содержит два блока, осуществляющих расчет суммы квадратов разниц компонент входного вектора и предварительно рассчитанных векторов, блок изменения знака результата и блок суммирования. 2 ил.

Description

Изобретение относится к вычислительной технике и может использоваться для быстрого выполнения математических вычислений, встречающихся при реализации различных устройств обработки сигналов и, в частности, при аппаратной реализации нейронных сетей типа многослойного персептрона (Multilayer Perceptron, MLP).
На момент подачи заявки применение массива умножителей для аппаратной реализации операции скалярного умножения является сложным и дорогостоящим решением, поскольку для аппаратной реализации каждой процедуры умножения, входящих в состав скалярного умножения, требуется применение сложных архитектур, как правило, состоящих из сдвиговых регистров, сумматоров и т.п. Различным способам осуществления операции умножения посвящается большое количество изобретений [US 4622650, РФ №2485574]. Тем не менее на настоящий момент простых решений, сопоставимых по простоте, например, с сумматорами, не существует. Это становится особенно актуально для векторов больших размерностей, когда для быстрого (параллельного) вычисления скалярного умножения требуется применение множества умножителей. В связи с этим, например, разработчики аппаратного обеспечения концентрируют усилия на реализации нейронных сетей типа RBF (Radial Basis Function Network), в которых вычисление скалярного произведения не требуется, а требуются только вычисления разниц векторов [US 5359700]. Однако такое решение не может использоваться для реализации скалярного умножения.
Настоящее изобретение использует возможность провести эквивалентные вычисления меньшей сложности, для получения результата скалярного умножения входного вектора на постоянный векторный множитель и опционального сложения с константой.
Целью изобретения является достижение следующего технического результата: уменьшение сложности аппаратной реализации процедуры вычисления скалярного произведения векторов и опционального сложения, а также возможность применения устройств, осуществляющих операции вычисления квадрата евклидовых расстояний между векторами для реализации скалярного умножения.
Технический результат способа заключается в следующем:
- упрощение схемы устройств, производящих вычисления скалярного произведения входного вектора на вектор параметров и опционального сложения (уменьшение необходимого числа вентилей для реализации);
- возможности использования существующих устройств для аппаратного параллельного вычисления суммы квадратов разниц компонент векторов для аппаратного параллельного вычисления скалярного произведения.
На Фиг. 1 представлен классический способ вычисления скалярного произведения входного вектора
Figure 00000001
на вектор параметров
Figure 00000002
, называемый «весовым вектором», и сложения со скалярным параметром w0, называемым «смещением». Каждая компонента входного вектора подается на вход умножителя на константу, далее все операнды складываются и прибавляется смещение. Если сложение со скаляром не требуется, без ограничения общности можно считать, что он равен нулю. Математическая запись данной операции представлена выражением
Figure 00000003
На Фиг. 2 представлен альтернативный способ, являющийся предметом данной заявки. Значения компонент входного вектора одновременно подаются на два одинаковых блока 1 и 2, осуществляющих расчет суммы квадратов разниц компонент входного вектора с компонентами предварительно рассчитанных и загруженных векторов В и С. Затем модуль 3 осуществляет изменение знака результата, полученного в блоке 1. Суммирующий модуль 4 осуществляет сложение цифровых сигналов, полученных из модулей 2 и 3, а также складывает этот результат с предварительно рассчитанным и загруженным в устройство 4 весовым коэффициентом q. Для того чтобы способ, указанный на Фиг. 2, реализовывал вычисления, эквивалентные устройству, указанному на Фиг. 1, то есть выполнял вычисления по формуле 1, но без применения умножителей, необходимо заранее рассчитать значения загружаемых векторных коэффициентов В и С, а также скалярного коэффициента q по следующим формулам:
Figure 00000004
Figure 00000005
Figure 00000006
Устройство, предложенное в данной заявке (см. Фиг. 2), фактически реализует вычисления, описываемые следующим выражением:
Figure 00000007
где N - количество компонент входного вектора
Figure 00000008
. Для реализации операции возведения в квадрат возможно применение универсальных просмотровых таблиц. Универсальны они в том смысле, что не требуется изменять значения этих таблиц при изменении входного сигнала, весового вектора и смещения. Что касается операции умножения на (-1), то из уровня техники следует, что такая операция фактически сводится только к установке одного знакового бита. Таким образом, предлагаемый способ не требует применения умножителей. Эквивалентность (3) выражению (1) при условии (2) показывается ниже.
Если осуществить раскрытие скобок в выражении (3)
Figure 00000009
становится видно, что существует множество способов выбора значений векторов В, С и скаляра q, при которых выражение (3) эквивалентно выражению (1). Для этого должны выполняться следующие условия:
C,-5,=-w,/2
Figure 00000010
В частности, предложенные в выражении (2) значения предварительно рассчитанных значений векторов В, С и скаляра q удовлетворяют условиям (5).
Можно предложить и другие значения B, C, q, удовлетворяющие (5).
Например:
Figure 00000011
;
Figure 00000012
;
Figure 00000013
и т.п.
Компьютерное моделирование предложенного способа также показывает эквивалентность вычислений с точностью до ошибок округления. Например, при 10 млн попыток расчетов со случайно (диапазон -1…+1) инициализированными весами и смещениями и случайном входном векторе размерности 10 показывает среднее отклонение в расчетах классического и предлагаемого способа с одинарной точностью (плавающая точка, 32 bit) менее 10-4, а максимальное отклонение менее 10-3. Максимальная ошибка округления возникает в редких случаях при малых значениях модуля вектора весового коэффициента при большом абсолютном значении смещения. Для нейронных сетей, как правило, такие случаи означают, что нейрон работает в насыщении, и его выход слабо зависит от входа, а в этом случае незначительные отклонения не принципиальны, так как в этой точке функции активации имеют практически нулевую производную.
Данное изобретение позволяет применять устройства для параллельного расчета сигнала выхода нейронных сетей типа RBF для аппаратного ускорения расчета нейронных сетей типа MLP, применяющих скалярное умножение. В зависимости от гибкости устройств - либо в текущем состоянии, либо после несложной доработки или пост-процессинга. Например, аппаратно реализованный нейрочип Cognimem CM1K позволяет одновременно рассчитывать до 1024 расстояний между 256-мерными векторами и позволяет таким образом ускорять расчет сетей типа RBF. Предлагаемое изобретение позволяет расширить возможности подобных архитектур для применения их для реализации чрезвычайно популярного класса нейронных сетей типа MLP (использующих скалярное умножение).

Claims (5)

  1. Способ осуществления операции скалярного умножения произвольного вектора
    Figure 00000014
    на загружаемый в устройство векторный коэффициент
    Figure 00000015
    и опционального сложения со скалярным коэффициентом w0 при помощи цифровой техники, отличающийся тем, что предварительно рассчитывают векторы В, С и весовой коэффициент q по формулам
  2. Figure 00000016
    ,
  3. В=0,
  4. Figure 00000017
    ,
  5. загружают вектор В в блок 1, загружают вектор С в блок 2, загружают весовой коэффициент q в суммирующий модуль 4, значения компонент входного вектора одновременно подают на блоки 1 и 2, в блоке 1 осуществляют расчет суммы квадратов разниц компонент произвольного вектора
    Figure 00000018
    с компонентами вектора В, в блоке 2 осуществляют расчет суммы квадратов разниц компонентов произвольного вектора
    Figure 00000019
    с компонентами вектора С, в модуле 3 осуществляют изменение знака результата, полученного в блоке 1, в суммирующем модуле 4 осуществляют сложение цифровых сигналов, полученных из модулей 2 и 3, и весового коэффициента q.
RU2014121655A 2014-05-28 2014-05-28 Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом RU2609745C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014121655A RU2609745C2 (ru) 2014-05-28 2014-05-28 Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014121655A RU2609745C2 (ru) 2014-05-28 2014-05-28 Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом

Publications (2)

Publication Number Publication Date
RU2014121655A RU2014121655A (ru) 2015-12-10
RU2609745C2 true RU2609745C2 (ru) 2017-02-02

Family

ID=54843090

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014121655A RU2609745C2 (ru) 2014-05-28 2014-05-28 Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом

Country Status (1)

Country Link
RU (1) RU2609745C2 (ru)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785435B1 (en) * 2016-10-27 2017-10-10 International Business Machines Corporation Floating point instruction with selectable comparison attributes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4622650A (en) * 1981-11-05 1986-11-11 Ulrich Kulisch Circuitry for generating scalar products and sums of floating point numbers with maximum accuracy
SU1619254A1 (ru) * 1988-06-22 1991-01-07 Институт кибернетики им.В.М.Глушкова Скал рный умножитель векторов
US5061866A (en) * 1990-08-06 1991-10-29 The Ohio State University Research Foundation Analog, continuous time vector scalar multiplier circuits and programmable feedback neural network using them
US5359700A (en) * 1991-04-29 1994-10-25 Intel Corporation Neural network incorporating difference neurons
RU2485574C1 (ru) * 2012-04-17 2013-06-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет (ФГБОУ ВПО "ВятГУ") Способ организации умножения чисел с плавающей запятой, представленных в системе остаточных классов

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4622650A (en) * 1981-11-05 1986-11-11 Ulrich Kulisch Circuitry for generating scalar products and sums of floating point numbers with maximum accuracy
SU1619254A1 (ru) * 1988-06-22 1991-01-07 Институт кибернетики им.В.М.Глушкова Скал рный умножитель векторов
US5061866A (en) * 1990-08-06 1991-10-29 The Ohio State University Research Foundation Analog, continuous time vector scalar multiplier circuits and programmable feedback neural network using them
US5359700A (en) * 1991-04-29 1994-10-25 Intel Corporation Neural network incorporating difference neurons
RU2485574C1 (ru) * 2012-04-17 2013-06-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет (ФГБОУ ВПО "ВятГУ") Способ организации умножения чисел с плавающей запятой, представленных в системе остаточных классов

Also Published As

Publication number Publication date
RU2014121655A (ru) 2015-12-10

Similar Documents

Publication Publication Date Title
JP7346510B2 (ja) ニューラルネットワークプロセッサにおけるベクトル計算ユニット
EP3373210B1 (en) Transposing neural network matrices in hardware
Zeng et al. A generalized spectral collocation method with tunable accuracy for variable-order fractional differential equations
Zheng et al. Unknown input observer for linear time-delay systems
EP3261091A1 (en) Memristive computation of a vector cross product
US9495329B2 (en) Calculating node centralities in large networks and graphs
Kazemi et al. Error estimate in fractional differential equations using multiquadratic radial basis functions
RU2609745C2 (ru) Способ осуществления операции скалярного умножения произвольного вектора на загружаемый в устройство векторный коэффициент и опционального сложения со скалярным коэффициентом
WO2018135515A1 (ja) 情報処理装置、ニューラルネットワークの設計方法及び記録媒体
Abdellaoui et al. New existence results for a coupled system of nonlinear differential equations of arbitrary order
Valean On the calculation of two essential harmonic series with a weight 5 structure, involving harmonic numbers of the type H2n
Nguyen-Ba et al. One-step 4-stage Hermite–Birkhoff–Taylor ODE solver of order 12
CN102137050A (zh) 一种数据信号的处理方法和设备
RU2547625C2 (ru) Многовходовой сумматор
Reddy et al. Low-Latency RLS Architecture for FPGA implementation with High throughput adaptive Applications
JP7233636B2 (ja) データ量子化処理方法、装置、電子機器および記憶媒体
Ashayeri et al. Optimal control of fractional-order singular system via Block pulse functions
Nguyen-Ba et al. One-step 7-stage Hermite-Birkhoff-Taylor ODE solver of order 13
Fathi et al. Improving Accuracy, Area and Speed of Approximate Floating-Point Multiplication Using Carry Prediction
US20210019117A1 (en) Random number generation device and random number generation method
RU2647632C1 (ru) Устройство цифровой обработки полифазных дополнительных фазокодоманипулированных сигналов
Nicolau et al. Estimation Aspects of Signal Spectral Components Using Neural Networks
Chagas et al. Approximate prediction-based control method for nonlinear oscillatory systems with applications to chaotic systems
Lee Critical points for two-view triangulation
Yamin et al. A novel method for identifying complex zeros by searching the laplace-plane for local minima