Способ обработки информации в нейронных сетях
Изобретение относится к вычислительной технике и может быть использовано при построении дискретных нейронных сетей. Техническим результатом является обеспечение максимального распараллеливания вычислений в нейронных сетях за счет механизма готовности данных и повышения быстродействия путем выполнения операций непосредственно в памяти локальных пулов команд. Для этого способ обработки информации в нейронных сетях заключается в том, что в локальные пулы команд записывают цифровые коды программ и процедур, описывающих нейронную сеть, из устройств ввода вводят представленные электрическими сигналами цифровые коды данных, из локальных пулов команд считывают цифровые коды, соответствующие совместным командам, выполняют над цифровыми кодами данных машинные операции, фиксируют цифровые коды результатов преобразований и выводят цифровые коды данных в устройства вывода, в командные ячейки локальных пулов команд загружают цифровые коды данных, представленных в виде пакетов данных, каждый из которых содержит цифровые коды полей с коммуникационной информацией и значениями данных, в локальных пулах команд циклически выполняют операции чтения, модификации и записи над цифровыми кодами командных ячеек до момента записи в одноименные поля командных ячеек цифровых значений флагов сигналов готовности данных, цифровые коды значений результатов операций формируют и выводят в виде пакетов данных. 1 ил.
Реферат
Изобретение относится к вычислительной технике и может быть использовано при построении систем обработки информации.
Известен аппаратный способ обработки информации в нейронных сетях, заключающийся в циклическом (по числу слоев в нейронной сети) выполнении последовательности операций извлечения из памяти матрицы цифровых кодов значений функциональных параметров текущего слоя формальных нейронов и значений цифровых кодов входного вектора данных, умножении вектора на матрицу, формировании значений цифровых кодов выходного вектора, его преобразования функцией активации и фиксации цифрового кода результата в памяти вычислительной машины [Галушкин А.И. Нейрокомпьютеры. Кн.3: Учеб. Пособие для вузов / Общая ред. А.И.Галушкина. - М.: ИПРЖР, 2000, С.382-401].
Основной недостаток аппаратного способа обработки информации - его узкая специализация - направленность на решение конкретного круга задач.
Известен также программный способ обработки информации в нейронных сетях, согласно которому производится размещение в памяти цифровых кодов программ и процедур, эмулирующих нейронную сеть, последовательная выборка цифровых кодов команд из памяти, выполнение соответствующей командам последовательности машинных операций и фиксация полученных цифровых кодов результатов в памяти вычислительной машины [Галушкин А.И. Нейрокомпьютеры. Кн.3: Учеб. Пособие для вузов / Общая ред. А.И.Галушкина. - М.: ИПРЖР, 2000, С.50-81].
Недостатком данного универсального способа обработки информации в нейронных сетях является невысокое быстродействие и ограничения на размеры эмулируемой нейронной сети.
Наиболее близким к предлагаемому изобретению является способ обработки информации в нейронных сетях, заключающийся в том, что в память локальных пулов команд записывают представленные электрическими сигналами цифровые коды программ и процедур, описывающих нейронную сеть, считывают из памяти локальных пулов команд совокупности цифровых кодов совместных команд, выполняют соответствующие совместным командам машинные операции над цифровыми кодами данных, фиксируют цифровые коды результатов операций в локальной памяти и выполняют операций ввода/вывода над цифровыми кодами данных [Галушкин А.И. Нейрокомпьютеры. Кн.3: Учеб. Пособие для вузов / Общая ред. А.И.Галушкина. - М.: ИПРЖР, 2000, С.185-187].
В качестве основного недостатка последнего способа следует назвать сложность достижения максимальной степени параллелизма функционирования, свойственной нейронным сетям, из-за последовательной характера управления вычислениями в фон-неймановских машинах и, как следствие, ограниченное быстродействие при решении нейросетевых задач.
Задачей настоящего изобретения является обеспечение максимального распараллеливания вычислительного процесса в нейронных сетях за счет использования для управления вычислительным процессом механизма готовности командных пакетов к обработке и повышение быстродействия путем перенесения операций по преобразованию информации непосредственно в многофункциональную память локальных пулов команд.
Поставленная задача достигается тем, что в локальные пулы команд записывают представленные электрическими сигналами цифровые коды программ и процедур, описывающих нейронную сеть, вводят в локальные пулы команд представленные электрическими сигналами цифровые коды данных, соответствующие входной информации для описанной программами и процедурами нейронной сети, считывают цифровые коды, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети и записаны в локальные пулы команд, выполняют в локальных пулах команд над цифровыми кодами данных машинные операции, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети, фиксируют в локальных пулах команд цифровые коды результатов выполнения машинных операций, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети, и выводят из локальных пулов команд цифровые коды результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети, кроме того, в командные ячейки локальных пулов команд вводят цифровые коды данных, представленные в виде пакетов данных, каждый из которых содержит цифровые коды полей с коммуникационной информацией, соответствующей топологии нейронной сети, и цифровые коды полей с значениями данных, подлежащих обработке в нейронной сети, выполняют в локальных пулах команд машинные операции, соответствующие совместным командам, программам и процедурам нейронной сети, путем последовательности операций чтения, модификации и записи над цифровыми кодами командных ячеек, содержащих поля с командной информацией, соответствующей операциям нейросетевого логического базиса, коммуникационной информацией, соответствующей топологии нейронной сети, поля с значениями данных, флагами сигналов готовности данных и значениями функциональных параметров формальных нейронов, входящих в состав нейронной сети, до момента записи в одноименные поля командных ячеек цифровых значений флагов сигналов готовности данных, фиксируют в локальных пулах команд и выводят из локальных пулов команд цифровые коды значений результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети, в виде пакетов данных, причем записывают цифровые коды совместных команд, процедур и программ нейронной сети в совокупности командных ячеек локальных пулов команд, каждая из которых соответствует формальному нейрону нейронной сети.
При реализации нейросетевых операционных устройств в соответствии с заявляемым способом обработки информации в нейронных сетях возникает технический результат - сокращение времени решения задачи нейронной сетью.
На чертеже представлена структурная схема одного из возможных вариантов нейросетевого операционного устройства на базе бинарных формальных нейронов, выполненного в соответствии с предлагаемым способом обработки информации в нейронных сетях.
Нейросетевое операционное устройство содержит локальные пулы командных пакетов (СРР) 1, каждый из которых образован из локальной памяти готовности данных (RDM) 2, локальной памяти команд (СМ) 3, локальной функциональной памяти (FM) 4 и локальной аккумуляторной памяти (AM) 5, кольцевую шину (RB) 6, с которой соединены блоки ввода данных (In) 7, блоки вывода данных (Out) 8 и локальные стеки данных 9 (DS), схема готовности (RS) 10 и дешифратор (DC) 11, блок вентилей (GB) 12, сумматор (Sum) 13, блок дискретизации (DB) 14, регистр пакетов данных (DPR) 15. Выходная шина адреса (Adr) 16 локального стека данных взаимосвязана с адресными шинами локальной памяти управления готовностью, локальной памяти готовности данных, локальной памяти команд, локальной функциональной памяти, локальной аккумуляторной памятью и дешифратором, а выходная шина данных (Data) 17 - с управляющим входом блока вентилей, входная и выходная шины которого соединены соответственно с выходной шиной локальной памяти функциональных параметров и входной шинной сумматора, вторая входная шина которого соединена с выходной шиной локальной аккумуляторной памяти, а выходная шина - с входным регистром (AMR) 18 аккумуляторной памяти и входной шиной блока дискриминации, выходные шины блока дискриминации и локальной памяти команд взаимосвязаны с входной шиной регистра пакетов данных, выходная шина которого соединена с кольцевой шиной, выходные шины локальной памяти готовности данных и дешифратора поразрядно объедены монтажным ИЛИ и взаимосвязаны с входным регистром (RDR) 19 локальной памяти готовности данных и с входной шиной схемы готовности, выход которой соединен с входными регистрами локальной памяти готовности данных локальной аккумуляторной памяти, адресным регистром (AR) 20 локальной функциональной памяти и регистром пакетов данных, а шина программирования (Prg) 21 необходима для занесения исходной информации о топологии и параметрах нейронной сети в режимах программирования и настройки.
В качестве иллюстрации способа обработки информации в нейронных сетях рассмотрим функционирование нейросетевого операционного устройства, представленного на чертеже.
Записывают представленные электрическими сигналами цифровые коды программ и процедур, описывающих нейронную сеть, в локальные пулы команд (СРР - Command Packages Pool) 1.
Нейронная сеть описывается путем записи для каждого командного пакета в соответствующее адресное сечение локальной памяти команд (СМ - Command Memory) 3 цифровых кодов полей с командной информацией, задающей операции нейросетевого логического базиса, коммуникационной информацией, соответствующей топологии нейронной сети (адресов командных пакетов - приемников результата). Для записи указанных полей в локальную память команд СМ 3 используются пакеты данных, в поле «Value» которых помещены соответствующие цифровые коды
Address of local pool | CP address | Operand address | Value |
которые из блока ввода (In - Input) 7 через кольцевую шину (RB - Ring Bus) 6 заносятся в локальный стек данных (DS - Data Stack) 9 (поле «Address of local pool»), а затем через шину Prg 21 - в адресное сечение (поле «CP address» и поле «Operand address») локальной памяти команд СМ 3.
Аналогично записываются в локальную функциональную память (FM - Functional Memory) 4 функциональные параметры нейронной сети в виде значений цифровых кодов весовых коэффициентов и порогов срабатывания формальных нейронов сети. Процесс записи значений цифровых кодов функциональных параметров подобен рассмотренной последовательности описания нейронной сети с той лишь разницей, что поле «Value» пакета данных помещается в адресное сечение соответствующей локальной функциональной памяти РМ 4. Указанный порядок записи командной информации и функциональных параметров в локальные пулы команд СРР 1 важен при представлении электрическими сигналами цифровых кодов программ и процедур, описывающих необученную нейронную сеть, т.к. топология задает связи между элементами нейронной сети, а функциональные параметры могут корректироваться в процессе обучения уже сформированной нейронной сети. Если же нейронная сеть обучена и значения функциональных параметров заранее известны, то порядок записи командной информации и функциональных параметров нейронной сети в локальные пулы команд СРР 1 может быть произвольным.
Вводят в локальные пулы команд представленные электрическими сигналами цифровые коды данных, соответствующие входной информации для описанной программами и процедурами нейронной сети.
Цифровые коды данных, соответствующие входной информации нейронной сети, в виде пакетов данных в вышеприведенном формате вводятся из блока ввода In 7 на кольцевую шину RB 6 и далее в локальные стеки данных DS 9. Затем значения данных из поля «Value» пакета данных в виде бинарного кода по шине данных Data 17 в соответствии с цифровым кодом адреса на шине Adr 16 вводятся в локальный пул командных пакетов СРР1.
Считывают цифровые коды, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети и записаны в локальные пулы команд.
Цифровой код адреса на шине Adr 16 вызывает считывание цифровых кодов, находящихся в соответствующем адресном сечении локального пула командных пакетов СРР 1, а именно из локальной памяти команд СМ 3, локальной функциональной памяти FM 4, локальной аккумуляторной памяти (AM - Accumulation Memory) 5 и локальной памяти готовности данных (RDM - Readiness of Data Memory) 2.
Выполняют в локальных пулах команд над цифровыми кодами данных машинные операции, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети.
Машинные операции нейросетевого логического базиса включают операции по взвешиванию значений входных данных, поступающих в локальный пул командных пакетов СРР 1, суммированию взвешенных значений в сумматоре Sum 13 и нелинейного преобразования полученной суммы, например, с помощью дискриминатора (DB - Digitization Block) 14.
Для взвешивания (умножения на весовой коэффициент) бинарного значения из поля «Value» пакета данных, поступающего по шине данных Data 17, используется блок вентилей (GB - Gates Block) 12. Блок вентилей GB 12 логически умножает разряды цифрового кода значения весового коэффициента wi, выбранного локальной функциональной памяти FM 4, на бинарное значение xi, поступающее по шине данных Data 17.
При передаче через блок вентилей GB 12 цифровой код значения весового коэффициента wi преобразуется операцией поразрядной конъюнкции xiwi и складывается на сумматоре Sum 13 с цифровым кодом ранее накопленного значения, выбранным из того же адресного сечения локальной аккумуляторной памяти AM 5.
Нелинейное преобразование полученной суммы выполняется дискриминатором DB 14 путем сравнения цифрового кода накопленной в локальной аккумуляторной памяти AM суммы всех поступивших к данному моменту произведений xiwi с цифровым кодом порога срабатывания формального нейрона w0, выбираемого из локальной функциональной памяти FM 4.
То есть в процессе выполнения машинных операций нейросетевого логического базиса в локальном пуле командных пакетов СРР 1 реализуется последовательность операций чтения, модификации и записи цифровых кодов данных. При этом в командных ячейках СРР 1 сохраняются не отдельные бинарные значения кодов хi, а производится накопление значений цифровых кодов весовых коэффициентов wi, ассоциированных со всеми поступившими к настоящему времени входными данными xi.
Фиксируют в локальных пулах команд цифровые коды результатов выполнения машинных операций, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети.
С выхода сумматора цифровой код нового значения суммы фиксируется во входном регистре аккумуляторной памяти (AMR - AM Register) 18 и затем фиксируется по тому же адресу в локальной аккумуляторной памяти AM 5.
Одновременно в том же адресном сечении блока локальной памяти готовности данных RDM 2 фиксируется значение логического нуля, соответствующее сигналу готовности и сформированное поразрядной операции «монтажное ИЛИ» между выбранным из памяти RDM 2 текущим значением цифрового кода сигналов готовности данных и унитарным кодом вида 11...101, формируемым дешифратором DC 11 из цифрового кода Adr 16 (поле «operand address» пакета данных).
Цифровой код результата поразрядной операции «монтажное ИЛИ» фиксируется во входном регистре (RDR - RDM Register) 19, а затем в том же адресном сечении локальной памяти готовности данных RDM 2 в качестве текущего значения цифрового кода сигналов готовности данных.
Выводят из локальных пулов команд цифровые коды результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети.
Схема готовности (RS - Readiness Scheme) 10 инициирует вывод на кольцевую шину RB 6 последовательности пакетов данных (через регистр пакетов данных DPR - Data Packages Register 15), если установлены в нуль все биты цифрового кода сигналов готовности в некотором адресном сечении блока локальной памяти готовности данных RDM 2. При этом в коммуникационных полях пакетов данных помещаются цифровые коды адресов командных ячеек - приемников результата (поля «Address of local pool», «CP address», «Operand address») из локальной памяти команд CM 3, а в полях «Value» - бинарные значение с выхода дискриминатора DB 14.
Бинарные значения формируются дискриминатором DB 14, который сравнивает цифровой код накопленной в локальной аккумуляторной памяти AM 5 суммы всех поступивших к данному моменту произведений xiwi с цифровым кодом порога срабатывания формального нейрона w0, выбранного из локальной функциональной памяти FM 4. Выдачу цифрового кода w0 обеспечивают обнулением адресного регистра (AR - Address Register) 20, через который на адресную шину локальной функциональной памяти FM 4 поступает цифровой код из поля «Operand address» пакета данных.
После вывода на кольцевую шину RB 6 всей последовательности пакетов данных в исходное состояние возвращается командная ячейка, адресуемая кодом адреса с шины Adr 16 путем обнуления соответствующего адресного сечения локальной аккумуляторной памяти AM 5 (обнуление входного регистра AMR 18) и записи цифрового кода из всех единиц через входной регистр RDR 19 в то же адресное сечение локальной памяти готовности данных RDM 2 устройства.
Как следует из вышеизложенного, обработка цифровых кодов осуществляется непосредственно в локальных пулах командных пакетов СРР 1 (одновременно с фиксацией в локальных стеках данных DS 9 вновь поступающих цифровых кодов пакетов данных) путем циклического выполнения операций чтения, модификации и записи цифровых кодов содержимого локальной памяти готовности данных RDM 2, локальной аккумуляторной памяти AM 5 и локальной функциональной памяти FM 4. А контролирует момент завершение процесса обработки цифровых кодов командного пакета схема готовности RS 10, переводящая командную ячейку в исходное состояние и разрешающая формирование и вывод цифровых кодов пакетов данных с результатами преобразований.
Сформированные цифровые коды пакетов данных через кольцевую шину RB 6 заносятся в соответствующие полям «Address of local pool» в локальные стеки данных DS 9, либо (для случая формирования результатов работы нейронной сети) выводятся через блоки вывода данных Out 8, если цифровые коды коммуникационных полей пакетов данных соответствуют одному из адресов блоков вывода данных Out 8.
Таким образом, заявляемый способ обработки информации в нейронных сетях, согласно которому в локальные пулы команд записывают представленные электрическими сигналами цифровые коды программ и процедур, описывающих нейронную сеть, вводят в локальные пулы команд представленные электрическими сигналами цифровые коды данных, соответствующие входной информации для описанной программами и процедурами нейронной сети, считывают цифровые коды, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети и записаны в локальные пулы команд, выполняют в локальных пулах команд над цифровыми кодами данных машинные операции, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети, фиксируют в локальных пулах команд цифровые коды результатов выполнения машинных операций, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети, и выводят из локальных пулов команд цифровые коды результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети, кроме того, в командные ячейки локальных пулов команд вводят цифровые коды данных, представленные в виде пакетов данных, каждый из которых содержит цифровые коды полей с коммуникационной информацией, соответствующей топологии нейронной сети, и цифровые коды полей с значениями данных, подлежащих обработке в нейронной сети, выполняют в локальных пулах команд машинные операции, соответствующие совместным командам, программам и процедурам нейронной сети, путем последовательности операций чтения, модификации и записи над цифровыми кодами командных ячеек, содержащих поля с командной информацией, соответствующей операциям нейросетевого логического базиса, коммуникационной информацией, соответствующей топологии нейронной сети, поля с значениями данных, флагами сигналов готовности данных и значениями функциональных параметров формальных нейронов, входящих в состав нейронной сети, до момента записи в одноименные поля командных ячеек цифровых значений флагов сигналов готовности данных, фиксируют в локальных пулах команд и выводят из локальных пулов команд цифровые коды значений результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети в виде пакетов данных, причем записывают цифровые коды совместных команд, процедур и программ нейронной сети в совокупности командных ячеек локальных пулов команд, каждая из которых соответствует формальному нейрону нейронной сети, позволяет обеспечить максимальное распараллеливание вычислительного процесса в нейронных сетях за счет отказа от использования последовательных принципов фон-неймановского управления и применения механизма готовности данных в качестве средства самоуправления вычислениями во всех локальных пулах командных пакетов и, кроме того, повысить быстродействие путем перенесения операций по преобразованию информации непосредственно в пул команд и совмещения во времени процессов обработки информации с загрузкой пакетов данных в многофункциональную память.
Способ обработки информации в нейронных сетях, заключающийся в том, что в локальные пулы команд записывают представленные электрическими сигналами цифровые коды программ и процедур, описывающих нейронную сеть,вводят в локальные пулы команд представленные электрическими сигналами цифровые коды данных, соответствующие входной информации для описанной программами и процедурами нейронной сети, считывают цифровые коды, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети и записаны в локальные пулы команд, выполняют в локальных пулах команд над цифровыми кодами данных машинные операции, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети, фиксируют в локальных пулах команд цифровые коды результатов выполнения машинных операций, соответствующие совместным командам, которые входят в состав программ и процедур нейронной сети, и выводят из локальных пулов команд цифровые коды результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети, отличающийся тем, что в командные ячейки локальных пулов команд вводят цифровые коды данных, представленные в виде пакетов данных, каждый из которых содержит цифровые коды полей с коммуникационной информацией, соответствующей топологии нейронной сети, и цифровые коды полей с значениями данных, подлежащих обработке в нейронной сети, выполняют в локальных пулах команд машинные операции, соответствующие совместным командам, программам и процедурам нейронной сети, путем последовательности операций чтения, модификации и записи над цифровыми кодами командных ячеек, содержащих поля с командной информацией, соответствующей операциям нейросетевого логического базиса, коммуникационной информацией, соответствующей топологии нейронной сети, поля с значениями данных, флагами сигналов готовности данных и значениями функциональных параметров формальных нейронов, входящих в состав нейронной сети, до момента записи в одноименные поля командных ячеек цифровых значений флагов сигналов готовности данных, фиксируют в локальных пулах команд и выводят из локальных пулов команд цифровые коды значений результатов выполнения машинных операций, в том числе и соответствующие выходной информации для описанной программами и процедурами нейронной сети, в виде пакетов данных, причемзаписывают цифровые коды совместных команд, процедур и программ нейронной сети в совокупности командных ячеек локальных пулов команд, каждая из которых соответствует формальному нейрону нейронной сети.