способ хранения сети виртуальных нейронов и нейронный компьютер для его осуществления
Классы МПК: | G06F12/06 адресация физического блока памяти, например адресация по базе, модульная адресация, расширение адресного пространства, выделение памяти G11C15/00 Цифровые запоминающие устройства, в которых информация, состоящая из нескольких частей, записывается и считывается путем выбора одной или нескольких таких частей, те устройства ассоциативной памяти G06T1/40 нейронные схемы G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций G06G7/60 живых организмов, например их нервной системы G06N3/00 Компьютерные системы, основанные на биологических моделях |
Автор(ы): | Прогаров О.В. |
Патентообладатель(и): | Прогаров Олег Валерианович |
Приоритеты: |
подача заявки:
1999-07-13 публикация патента:
20.10.2000 |
Изобретение относится к вычислительной технике и может быть использовано для воспроизведения искусственного интеллекта. Техническим результатом является обеспечение возможности решения задач в реальном времени. Согласно способу оперативную память нейронного компьютера разделяют на память узлов, память связей и память ссылок. Второе изобретение - нейронный компьютер содержит процессор для вычисления параметров элементов сети виртуальных нейронов, магистраль, память узлов для хранения в одной или нескольких ее ячейках параметров отдельного виртуального нейрона сети, память связей для хранения в одной или нескольких ее ячейках параметров соединений указанного отдельного нейрона и память ссылок. 2 с. и 21 з.п. ф-лы , 3 ил.
Рисунок 1, Рисунок 2, Рисунок 3
Формула изобретения
1. Способ сохранения сети виртуальных нейронов путем размещения составляющих эту сеть элементов, к которым относятся виртуальные нейроны и/или соединения между ними, в оперативной памяти нейронного компьютера, отличающийся тем, что указанную память предварительно разделяют на память узлов, память связей и память ссылок, после чего для каждого виртуального нейрона сети в отведенных для него одной или нескольких ячейках памяти узлов размещают его параметры, в отведенных для его соединений одной или нескольких ячейках памяти связей размещают параметры указанных соединений, а в отведенных для его соединений одной или нескольких ячейках памяти ссылок размещают адреса элементов указанной сети, с которыми соединен указанный нейрон. 2. Способ хранения сети виртуальных нейронов по п.1, отличающийся тем, что для каждого виртуального нейрона сети в отведенных для его соединений одной или нескольких ячейках памяти связей размещают веса указанных соединений. 3. Способ хранения сети виртуальных нейронов по п.1, отличающийся тем, что для каждого виртуального нейрона сети в отведенных для него одной или нескольких ячейках памяти узлов размещают одно или несколько состояний указанного нейрона. 4. Способ хранения сети виртуальных нейронов по п.1, отличающийся тем, что для каждого виртуального нейрона сети в отведенных для него одной или нескольких ячейках памяти узлов размещают индекс предшествующих узлов - адрес одной или нескольких ячеек памяти связей и памяти ссылок, в которых предварительно размещают соответственно параметры первого входящего соединения указанного нейрона и адрес виртуального нейрона, который в структуре этой сети с указанным нейроном образует упомянутое соединение. 5. Способ хранения сети виртуальных нейронов по п.1, отличающийся тем, что для каждого виртуального нейрона сети в отведенных для него одной или нескольких ячейках памяти узлов размещают индекс последующих узлов - адрес одной или нескольких ячеек памяти ссылок, в которых предварительно размещают адрес виртуального нейрона, который в структуре этой сети с указанным нейроном образует его первое исходящее соединение. 6. Способ хранения сети виртуальных нейронов по п.1, отличающийся тем, что для каждого виртуального нейрона сети в отведенных для его соединений одной или нескольких ячейках памяти ссылок размещают адреса одного или нескольких виртуальных нейронов сети, которые в структуре этой сети для указанного нейрона являются предшествующими. 7. Способ хранения сети виртуальных нейронов по п.1, отличающийся тем, что для каждого виртуального нейрона сети в отведенных для его соединений одной или нескольких ячейках памяти ссылок размещают адреса одного или нескольких виртуальных нейронов сети, которые в структуре этой сети для указанного нейрона являются последующими. 8. Нейронный компьютер, включающий процессор для вычисления параметров элементов сети виртуальных нейронов, к которым относятся эти виртуальные нейроны и/или соединения между ними, и магистраль, отличающийся тем, что он содержит соединенные с процессором посредством указанной магистрали память узлов для хранения в одной или нескольких ее ячейках параметров отдельного виртуального нейрона сети, память связей для хранения в одной или нескольких ее ячейках параметров соединений указанного отдельного нейрона и память ссылок для хранения в одной или нескольких ее ячейках адресов элементов указанной сети, с которыми соединен упомянутый отдельный нейрон. 9. Нейронный компьютер по п.8, отличающийся тем, что число ячеек памяти связей и памяти ссылок кратно числу соединений в указанной сети, а число ячеек памяти узлов кратно числу виртуальных нейронов в той же сети. 10. Нейронный компьютер по п.8, отличающийся тем, что память связей содержит блок памяти соединений для хранения в одной или нескольких его ячейках весов входящих соединений для указанного отдельного нейрона. 11. Нейронный компьютер по п.8, отличающийся тем, что память узлов содержит первый и второй блоки памяти состояний узлов для хранения в одной или нескольких их ячейках состояний указанного отдельного нейрона. 12. Нейронный компьютер по п.8, отличающийся тем, что память узлов содержит блок памяти параметров узлов для хранения в одной или нескольких его ячейках любых параметров указанного отдельного нейрона. 13. Нейронный компьютер по п.8, отличающийся тем, что память узлов содержит блок памяти индексов предшествующих узлов, в одной или нескольких ячейках которого хранят адрес одной или нескольких ячеек памяти связей и памяти ссылок, в которых хранят соответственно параметры первого входящего соединения указанного отдельного нейрона и адрес виртуального нейрона сети, который с указанным отдельным нейроном образует упомянутое соединение. 14. Нейронный компьютер по п.8, отличающийся тем, что память узлов содержит блок памяти индексов последующих узлов, в одной или нескольких ячейках которого хранят адрес одной или нескольких ячеек памяти ссылок, в которых хранят адрес виртуального нейрона сети, который с указанным отдельным нейроном образует его первое исходящее соединение. 15. Нейронный компьютер по п.8, отличающийся тем, что память ссылок содержит блок памяти предшествующих узлов для хранения в одной или нескольких его ячейках адресов виртуальных нейронов, которые в структуре этой сети для указанного отдельного нейрона являются предшествующими. 16. Нейронный компьютер по п.8, отличающийся тем, что память ссылок содержит блок памяти предшествующих узлов для хранения в одной или нескольких его ячейках адресов виртуальных нейронов сети, которые в структуре этой сети для указанного отдельного нейрона являются последующими. 17. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину адресов соединений, которая соединена с памятью связей и памятью ссылок. 18. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину адресов узлов, которая соединена с памятью узлов. 19. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину пред/последующих узлов, которая соединена с памятью ссылок. 20. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину весов соединений, которая соединена с памятью связей. 21. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину чтения и шину записи состояний узлов, которые соединены с памятью узлов. 22. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину индексов пред/последующих узлов, которая соединена с памятью узлов. 23. Нейронный компьютер по п.8, отличающийся тем, что магистраль содержит шину параметров узлов, которая соединена с памятью узлов.Описание изобретения к патенту
Изобретения относятся к вычислительной технике, а более конкретно - к способам и устройствам моделирования нейронных сетей, а также к архитектурам нейронных компьютеров, которые могут быть использованы для решения задач, относящихся к искусственному интеллекту, например, для распознавания образов. Известны различные способы хранения нейронных сетей, каждый из которых тесно связан с физической реализацией процессов моделирования таких сетей, которые осуществляются различными типами устройств. Поэтому в зависимости от типа устройства, способ хранения нейронных сетей различен и определяется данным устройством. Известны несколько способов хранения нейронных сетей, которые можно разбить на группы [1]. К первой группе относятся способы, в которых нейронные сети хранятся в виде совокупности аналоговых или цифровых устройств и физических линий связи между ними. Ко второй группе относятся способы, в которых нейронные сети хранятся в виде голограмм и оптических световых пучков. К третьей группе относятся способы хранения нейронных сетей в виртуальной форме. В этом случае сеть виртуальных нейронов размещается в оперативной памяти программируемого универсального или специализированного вычислительного устройства, используемого для моделирования таких сетей - нейронного компьютера. Прототипом заявляемого способа является способ хранения сети виртуальных нейронов путем размещения составляющих эту сеть элементов, к которым относятся виртуальные нейроны и соединения между ними, в оперативной памяти нейронного компьютера [2] , где хранят данные, характеризующие такую сеть - значения параметров виртуальных нейронов и соединений между ними, а также информацию о структуре сети. Причем для каждого виртуального нейрона сети существуют несколько элементов - виртуальных нейронов той же сети, которые для указанного нейрона являются предшествующими в структуре этой сети и образуют с указанным нейроном его входящие соединения. Также, для указанного нейрона существуют несколько других элементов - виртуальных нейронов той же сети, которые для того же нейрона являются последующими в структуре этой сети и образуют с указанным нейроном его исходящие соединения. Недостатки перечисленных способов и прототипа раскрываются при характеристике устройств, т. к. они одинаковы для способов и устройств, осуществляющих эти способы. Известны различные типы устройств для моделирования нейронных сетей, которые можно разбить на несколько групп. К первой группе относятся устройства, в которых модели нейронов и их соединений реализуются в виде аналоговых или цифровых электронных устройств - процессорных элементов и физических линий связи между ними [1]. Недостатком таких устройств является отсутствие гибкости при перестройке структур нейронных сетей. Поэтому устройства данного типа используются для решения только строго определенных задач, что увеличивает стоимость решения. Ко второй группе можно отнести устройства, в которых модели нейронов и их соединений выполнены средствами функциональной электроники, например, оптоэлектронные и голографические устройства [1]. Недостатками таких устройств является их большая стоимость и неудовлетворительное состояние технологии производства элементов, необходимых для их создания. К третьей группе можно отнести программируемые универсальные или специализированные вычислительные устройства [1], которые используются для моделирования нейронных сетей в виртуальной форме. При этом достигается гибкость изменения соединений между виртуальными нейронами и универсальность - возможность моделирования любых типов таких сетей с произвольной структурой, для выполнения любых задач. Универсальным устройством может быть ЭВМ, выполняющая задачу моделирования сети виртуальных нейронов. Специализированным устройством может быть программно-аппаратный ускорительный сопроцессор, подключаемый обычно к персональной ЭВМ, позволяющий увеличить размер такой сети и скорость ее моделирования - пересчета. Недостатками таких устройств является низкая производительность моделирования, которая, обычно выше для ускорительных сопроцессоров, но все же недостаточна для решения многих задач, особенно, которые необходимо решать в реальном времени. Прототипом заявляемого устройства является программируемый нейронный компьютер [2] , включающий процессор для вычисления параметров элементов сети виртуальных нейронов, к которым относятся эти виртуальные нейроны и/или соединения между ними и магистраль, соединяющая процессор с оперативной памятью. Эта память в устройстве-прототипе содержит данные, характеризующие сеть виртуальных нейронов - значения параметров указанных нейронов, межнейронных соединений и информацию о структуре такой сети. Эти данные последовательно извлекаются из оперативной памяти и по магистрали передаются в процессор, который, в соответствии с принятым алгоритмом моделирования такой сети, вычисляет новые значения параметров виртуальных нейронов и соединений. Вычисленные значения параметров из процессора по магистрали заносятся в оперативную память в те ячейки, где хранятся прежние значения параметров виртуальных нейронов и соединений с целью их корректировки. Данная последовательность операций, выполненная для всех виртуальных нейронов сети, является циклом моделирования сети и повторяется необходимое для получения результатов моделирования число раз. Устройство-прототип, по сравнению с аналогами, имеет большую гибкость и может использоваться при моделировании любых структур таких сетей, обладая при этом меньшей стоимостью. Однако прототип имеет низкую производительность моделирования по причине последовательного извлечения, обработки и занесения данных в память. Это происходит из-за организации памяти в виде линейной последовательности байтов и слов данных, которая предназначена для хранения произвольных структур данных, универсальности процессора, приспособленного для выполнения большого количества универсальных команд. Это происходит также из-за использования стандартной магистрали для обмена информацией в виде байтов и слов данных между процессором и памятью. Данные элементы и их взаимосвязи в устройстве-прототипе разработаны для решения широкого круга задач, т. к. в качестве вычислительного устройства обычно используется универсальный процессор и универсальная память, связанные унифицированной магистралью обмена. Поэтому существующие нейронные компьютеры не являются эффективными для осуществления специфического процесса моделирования сетей виртуальных нейронов. Производительность указанного класса устройств часто повышают путем использования сопроцессоров для обработки сигналов. Однако это не устраняет недостатки прототипа, т. к. рассмотренные выше признаки остаются неизменными. Основным препятствием для увеличения производительности моделирования сетей виртуальных нейронов является конструкция оперативной памяти, что определяет соответствующую структуру магистрали и процессора. Задачей заявляемых изобретений является повышение производительности нейронного компьютера, а значит и скорости моделирования сетей виртуальных нейронов. Для решения поставленной задачи, усовершенствуется рассмотренный в качестве прототипа способ хранения сети виртуальных нейронов путем размещения составляющих эту сеть элементов, к которым относятся виртуальные нейроны и/или соединения между ними, в оперативной памяти нейронного компьютера. Это усовершенствование заключается в том, что указанную память предварительно разделяют на память узлов, память связей и память ссылок, после чего для каждого виртуального нейрона сети в отведенных для него одной или нескольких ячейках памяти узлов размещают его параметры, в отведенных для его соединений одной или нескольких ячейках памяти связей размещают параметры указанных соединений, а в отведенных для его соединений одной или нескольких ячейках памяти ссылок размещают адреса элементов указанной сети, с которыми соединен указанный нейрон. Кроме того, для каждого виртуального нейрона сети в отведенных для его соединений ячейках памяти связей размещают веса указанных соединений, а в отведенных для него ячейках памяти узлов размещают одно или несколько состояний указанного нейрона. Кроме того, в ячейках памяти узлов для каждого виртуального нейрона сети размещают индекс предшествующих узлов - адрес ячеек памяти связей и памяти ссылок, в которых предварительно размещают соответственно параметры первого входящего соединения указанного нейрона и адрес виртуального нейрона, который в структуре этой сети с указанным нейроном образует упомянутое соединение. Также в ячейках памяти узлов для каждого виртуального нейрона сети размещают индекс последующих узлов - адрес ячеек памяти ссылок, в которых предварительно размещают адрес виртуального нейрона, который в структуре сети с указанным нейроном образует его первое исходящее соединение. Кроме того, для каждого виртуального нейрона сети в отведенных для его соединений ячейках памяти ссылок размещают адреса виртуальных нейронов сети, которые в структуре этой сети для указанного нейрона являются предшествующими, а также адреса виртуальных нейронов сети, которые для указанного нейрона являются последующими. Также, для решения поставленной задачи, усовершенствуется рассмотренный в качестве прототипа нейронный компьютер, включающий процессор для вычисления параметров элементов сети виртуальных нейронов, к которым относятся эти виртуальные нейроны и/или соединения между ними и магистраль. Это усовершенствование заключается в том, что указанный нейронный компьютер содержит соединенные с процессором посредством указанной магистрали память узлов для хранения в одной или нескольких ее ячейках параметров отдельного виртуального нейрона сети, память связей для хранения в одной или нескольких ее ячейках параметров соединений указанного отдельного нейрона и память ссылок для хранения в одной или нескольких ее ячейках адресов элементов указанной сети, с которыми соединен упомянутый отдельный нейрон. Кроме того, число ячеек памяти связей и памяти ссылок кратно числу соединений в указанной сети, а число ячеек памяти узлов кратно числу виртуальных нейронов в той же сети. Кроме того, память связей содержит блок памяти весов соединений для хранения в его ячейках весов входящих соединений для каждого отдельного виртуального нейрона сети, а память узлов содержит первый и второй блоки памяти состояний и блок памяти параметров узлов, для хранения в их ячейках соответственно состояний и любых параметров указанного отдельного нейрона. Кроме того, память узлов содержит блок памяти индексов предшествующих узлов, в ячейках которого хранят адрес одной или нескольких ячеек памяти связей и памяти ссылок, в которых хранят соответственно параметры первого входящего соединения отдельного виртуального нейрона сети и адрес виртуального нейрона сети, который с указанным отдельным нейроном образует упомянутое соединение, а также хранят адрес виртуального нейрона сети, который с указанным отдельным нейроном образует его первое исходящее соединение. Кроме того, память ссылок содержит блок памяти предшествующих узлов для хранения в его ячейках адресов виртуальных нейронов сети, которые в структуре этой сети для каждого отдельного виртуального нейрона являются предшествующими. Память ссылок содержит также блок памяти последующих узлов для хранения в его ячейках адресов виртуальных нейронов сети, которые в структуре этой сети для указанного отдельного нейрона являются последующими. Кроме того, магистраль содержит: шину адресов соединений, которая соединена с памятью связей и памятью ссылок, шину адресов узлов, соединенную с памятью узлов, шину пред/последующих узлов, соединенную с памятью ссылок, шину весов соединений, соединенную с памятью связей, шину чтения и шину записи состояний узлов, шину индексов пред/последующих узлов, шину параметров узлов, соединенные с памятью узлов. Предварительное разделение оперативной памяти (в способе хранения сети виртуальных нейронов) на память узлов, память связей и память ссылок, а затем последующее размещение параметров каждого виртуального нейрона сети в отведенных для него ячейках памяти узлов, параметров его соединений - в отведенных для этого ячейках памяти связей, адресов элементов указанной сети, к которым относятся виртуальные нейроны и/или соединения между ними - в отведенных для этого ячейках памяти ссылок позволяет, в отличие от прототипа, извлекать указанные элементы данных одновременно и независимо друг от друга из перечисленных блоков памяти. Вследствие такого способа хранения сети виртуальных нейронов появляется возможность одновременного считывания, обработки и занесения данных по независимым трактам обработки и трактам информационного обмена, что повышает скорость моделирования такой сети по сравнению с прототипом. Размещение для каждого виртуального нейрона сети в ячейках памяти связей весов указанных соединений, а в ячейках памяти узлов состояний указанного нейрона, позволяет разделить и упростить обработку данных указанных типов, а также минимизировать потребные ресурсы оперативной памяти. Размещение для каждого виртуального нейрона сети в ячейках памяти узлов индекса предшествующих узлов - адреса ячеек памяти связей и памяти ссылок, в которых предварительно размещают соответственно параметры первого/входящего соединения указанного нейрона и адрес виртуального нейрона, который в структуре этой сети с указанным нейроном образует упомянутое соединение, позволяет определять местонахождение и количество параметров входящих соединений для каждого виртуального нейрона сети. Размещение для каждого виртуального нейрона сети в ячейках памяти узлов индекса последующих узлов - адреса ячеек памяти ссылок, в которых предварительно размещают адрес виртуального нейрона, который в структуре сети с указанным нейроном образует его первое исходящее соединение, позволяет определять местонахождение и количество параметров исходящих соединений для каждого виртуального нейрона сети. Размещение для каждого виртуального нейрона сети в ячейках памяти ссылок адресов виртуальных нейронов сети, которые в структуре этой сети для указанного нейрона являются предшествующими, позволяет получать параметры и состояния предшествующих виртуальных нейронов сети, которые являются текущими состояниями входящих соединений для указанного нейрона. Это необходимо для вычисления скалярного произведения весов и состояний для каждого виртуального нейрона сети. Размещение для каждого виртуального нейрона сети в ячейках памяти ссылок адресов виртуальных нейронов сети, которые в структуре этой сети для указанного нейрона являются последующими, позволяет определять местонахождение последующих виртуальных нейронов сети для каждого виртуального нейрона. Обеспечение того, что нейронный компьютер, осуществляющий рассмотренный способ, содержит соединенные с процессором посредством магистрали память узлов для хранения в одной или нескольких ее ячейках параметров отдельного виртуального нейрона сети, память связей для хранения в одной или нескольких ее ячейках параметров соединений указанного отдельного нейрона и память ссылок для хранения в одной или нескольких ее ячейках адресов элементов указанной сети, с которыми соединен упомянутый отдельный нейрон, позволяет совмещать во времени следующие операции:одновременное извлечение параметров виртуальных нейронов, параметров их соединений, информации о структуре сети из памяти узлов, связей, ссылок;
вычисление в процессоре, в соответствии с извлеченными параметрами, новых значений параметров виртуальных нейронов и их соединений;
занесение новых значений параметров виртуальных нейронов в память узлов. Обеспечение того, что нейронный компьютер содержит указанную оперативную память приводит к тому, что возникает необходимость выполнения упомянутой магистрали в виде специализированных шин для обмена данными строго определенного типа между блоками памяти и процессором. Это позволяет организовать несколько независимых трактов адресов и данных, в которых информация разного типа обрабатывается одновременно. Такое решение также позволяет ввести в процессор блоки конвейерной обработки, что значительно сокращает время обработки данных, в данном случае - цикл моделирования сети виртуальных нейронов. Циклом моделирования такой сети является время, в течение которого определяются новые параметры и состояния всех виртуальных нейронов сети. Обеспечение того, что число ячеек памяти связей и памяти ссылок кратно числу соединений в указанной сети, а число ячеек памяти узлов кратно числу виртуальных нейронов в той же сети приводит к тому, что время цикла моделирования определяется временем считывания данных из всех ячеек памяти связей или ссылок и равно произведению времени доступа к ячейке блока памяти и числа ячеек указанных блоков памяти. Обеспечение того, что память связей содержит блок памяти весов соединений, позволяет определять веса входящих соединений и вычислять скалярные произведения для каждого виртуального нейрона сети. Обеспечение того, что память узлов содержит первый и второй блоки памяти состояний и блок памяти параметров узлов, позволяет минимизировать потребные ресурсы оперативной памяти для хранения соответственно состояний и любых параметров каждого виртуального нейрона сети, а также совмещать во времени операции считывания и занесения новых состояний виртуальных нейронов в память узлов. В блоке памяти параметров узлов могут храниться такие параметры, как порог, мембранный потенциал, ошибка распознавания (при реализации алгоритма обратного распространения ошибки) и т.д. Обеспечение того, что память узлов содержит блок памяти индексов предшествующих и блок памяти индексов последующих узлов, позволяет для каждого виртуального нейрона сети определять число предшествующих и последующих виртуальных нейронов, образующих с указанным нейроном его входящие и исходящие соединения. Обеспечение того, что память ссылок содержит блок памяти предшествующих и блок памяти последующих узлов, позволяет для каждого виртуального нейрона сети определять местонахождение предшествующих и последующих виртуальных нейронов, образующих с указанным нейроном его входящие и исходящие соединения. Первые необходимы при вычислении скалярного произведения для каждого виртуального нейрона сети, а вторые - для сохранения гибкости сети, когда необходимо определить, с какими виртуальными нейронами связан своими исходящими соединениями указанный нейрон. Обеспечение того, что магистраль содержит шину адресов соединений, которая соединена с памятью связей и памятью ссылок, шину адресов узлов, соединенную с памятью узлов, шину пред/последующих узлов, соединенную с памятью ссылок, шину весов соединений, соединенную с памятью связей, шину чтения и шину записи состояний узлов, шину индексов пред/последующих узлов, шину параметров узлов, соединенные с памятью узлов, позволяет совместить во времени процессы считывания, обработки и занесения данных в блоки памяти параметров узлов и соединений. На фиг. 1 изображен пример сети виртуальных нейронов. На фиг. 2 изображено численное представление параметров и структуры указанной сети в блоках оперативной памяти нейронного компьютера. На фиг. 3 изображена структурная схема устройства. Сеть виртуальных нейронов на фиг. 1 включает виртуальные нейроны с индексами 10, 11, 12, 13, 14, 15, соответствующих адресам памяти узлов 2. На фрагмент сети поступают состояния от виртуальных нейронов с индексами 1, 2, 3, 4. От фрагмента сети состояния выдаются на виртуальные нейроны 20, 21, 22. На фиг. 2 показано содержимое ячеек памяти 1 связей с адресами от 100 до 117, содержимое ячеек памяти 2 узлов с адресами от 10 до 16, от 20 до 22, содержимое ячеек памяти 3 ссылок с адресами от 100 до 117. Заявляемый нейронный компьютер на фиг. 3 содержит следующие блоки: память 1 связей, память 2 узлов, память 3 ссылок, процессор 4, которые соединены с шиной управления 5. Магистраль содержит: шину 6 адресов соединений, шину 7 адресов узлов, шину 8 пред/последующих узлов, шину 9 весов соединений, шину 10 чтения состояний узлов, шину 11 записи состояний узлов, шину 12 индексов пред/последующих узлов, шину 13 параметров узлов. Память 1 связей содержит блок памяти 14 весов соединений, информационный вход/выход которого соединен с шиной 9 весов соединений, а его адресный вход - с шиной 6 адресов соединений. Память 2 узлов содержит: первый 15 и второй 15" блоки памяти состояний узлов, информационные выходы которых соединены с шиной 10 чтения состояний узлов, а их информационные входы - с шиной 11 записи состояний узлов, блок памяти 16 индексов предшествующих узлов и блок памяти 17 индексов последующих узлов, информационные входы/выходы которых соединены с шиной 12 индексов пред/последующих узлов, блок памяти 18 параметров узлов, информационный вход/выход которого соединен с шиной 13 параметров узлов. Адресные входы указанных блоков памяти - 15, 15", 16, 17, 18 соединены с шиной 7 адресов узлов. Кроме того, адресные входы первого 15 и второго 15" блоков памяти состояний узлов соединены с шиной 8 пред/последующих узлов. Память 3 ссылок содержит блок памяти 19 предшествующих узлов и блок памяти 20 последующих узлов, информационные входы/выходы которых соединены с шиной 8 пред/последующих узлов, а их адресные входы - с шиной 6 адресов соединений. Каждый из указанных блоков памяти - 14, 15, 15", 16, 17, 18, 19, 20 содержит регистр данных (на схеме не показан), выполненный в виде двунаправленного шинного формирователя, а в первом 15 и втором 15" блоках памяти состояний узлов шинные формирователи выполнены с раздельными входами и выходами. Каждый из указанных блоков памяти содержит также регистр адреса (на схеме не показан), а первый 15 и второй 15" блоки памяти состояний узлов содержат также мультиплексоры адресов на два входа (на схеме не показаны). Вход регистра адреса в каждом из указанных блоков подключен к выходу мультиплексора адресов, причем первый вход указанного мультиплексора соединен с шиной 7 адресов узлов, а второй - шиной 8 пред/последующих узлов. Процессор 4 содержит: буферную память 21 индексов узлов, информационный вход которой соединен с шиной 12 индексов пред/последующих узлов, а ее информационный выход - с первым входом компаратора 22 адресов соединений, выход которого соединен с шиной 5 управления. Второй вход указанного компаратора соединен с выходом счетчика 23 адресов считывания соединений, тот же выход которого соединен с шиной 6 адресов соединений. Процессор 4 содержит также счетчик 24 адресов считывания узлов, выход которого соединен с шиной 7 адресов узлов и с информационным входом буферной памяти 25 адресов занесения узлов, информационный выход которой соединен с шиной 7 адресов узлов. Процессор 4 содержит также операционный блок 26, который соединен с шинами 9, 10, 11, 12, 13, а также с информационным выходом буферной памяти 27 параметров узлов, информационный вход которой соединен с шиной 13 параметров узлов. Процессор 4 содержит также блок управления 28, который соединен с шиной управления 5. Блок управления 28 выполнен с использованием известных средств, например в виде микропрограммного автомата, поэтому более детально не рассматривается. Операционный блок 26 содержит, например, регистры данных, мультиплексоры данных, арифметическое устройство для вычисления состояний виртуальных нейронов и устройство для вычисления их параметров, например порогов, причем эти устройства действуют параллельно (на схеме не показаны). Первое из устройств выполняет операцию скалярного произведения над вектором весов и вектором состояний входящих соединений виртуального нейрона. Для этого оно содержит умножитель, для перемножения весов и состояний, и накапливающий сумматор, для суммирования этих произведений. Арифметические устройства могут использоваться и в других режимах работы нейронного компьютера. Указанные элементы выполнены с использованием известных средств, поэтому упомянутый блок более детально не рассматривается. Все блоки буферной памяти 21, 25, 27 являются устройствами типа "очередь" - "первый вошел, первый вышел" и выполнены с использованием известных средств, поэтому указанные блоки более детально не рассматриваются. Кроме того, в состав нейронного компьютера входит блок сопряжения (на схеме не показан) с системной магистралью управляющей ЭВМ, который соединен со всеми перечисленными шинами устройства -5, 6, 7, 8, 9, 10, 11, 12, 13. Осуществление способа и работа устройства производятся следующим образом. Перед началом моделирования сети виртуальных нейронов, например, такой как на фиг. 1, в блоки памяти 14, 15, 15", 16, 17, 18, 19, 20 через блок сопряжения с управляющей ЭВМ по шинам 6, 7, 8, 9, 11, 12, 13 загружаются исходные данные численного представления сети виртуальных нейронов, такие как на фиг. 2. После загрузки, содержимое счетчика 23 адресов считывания соединений и счетчика 24 адресов считывания узлов устанавливается равным соответственно числу соединений и числу виртуальных нейронов сети. Пути прохождения различных типов данных образуют несколько независимых информационных трактов, параллельное действие которых раскрывает осуществление способа и работу заявляемого устройства, поэтому ниже перечисляются основные тракты прохождения данных и рассматривается их функционирование. Тракт адресов узлов и адресов соединений. После установки указанных счетчиков 23 и 24, осуществляется процесс моделирования сети, который заключается в следующем. Значение адреса из счетчика 23 адресов считывания соединений через шину 6 адресов соединений передается во внутренние регистры адресов блока памяти 14 весов соединений и блока памяти 19 предшествующих узлов. Значение адреса из счетчика 24 адресов считывания узлов через шину 7 адресов узлов передается во внутренние регистры адресов блока памяти 16 индексов предшествующих узлов и блока памяти 18 параметров узлов. Кроме того, указанные адреса из счетчика 24 заносятся для временного хранения в буферную память 25 адресов занесения узлов, откуда, по мере вычисления новых параметров виртуальных нейронов, выдаются на шину 7 адресов узлов. С этой шины указанные адреса передаются во внутренние регистры адресов одного из блоков памяти 15 или 15" состояний узлов и блока памяти 18 параметров узлов для занесения вычисленных параметров в указанные блоки памяти. Рассмотренная передача адресов по адресным шинам 6 и 7 осуществляется одновременно, поэтому производится параллельное считывание данных из блоков памяти 14, 16, 18, 19 на шины 8,9, 10, 12, 13 и занесение данных в блоки памяти 15 или 15", 18 с шин 11, 13. Причем считывание осуществляется, например, по последовательно убывающим адресам, начальные значения которых задаются счетчиками адресов 23 и 24, а занесение осуществляется по адресам, значения которых извлекаются из буферной памяти 25 адресов занесения узлов. После перебора адресов всех занятых ячеек памяти 1 связей, памяти 2 узлов и памяти 3 ссылок, указанные счетчики 23 и 24 устанавливаются в упомянутые начальные значения, после чего цикл моделирования повторяется. Тракт весов соединений и состояний виртуальных нейронов. Значения весов соединений считываются из блока памяти 14 весов соединений на шину 9 весов соединений. Одновременно из блока памяти 19 предшествующих узлов на шину 8 пред/последующих узлов считываются адреса виртуальных нейронов, предшествующих в структуре сети виртуальному нейрону, который моделируется в данный момент. Указанные адреса с шины 8 передаются во внутренние регистры адресов одного из блоков памяти 15 или 15" состояний узлов для считывания этих состояний, как состояний входящих соединений указанного моделируемого виртуального нейрона на шину 10 чтения состояний узлов. С указанных шин 9 и 10, веса и состояния передаются в операционный блок 26, где вычисляются их скалярные произведения и по заданному алгоритму моделирования формируются новые состояния виртуальных нейронов. Причем веса соединений задерживаются во внутреннем регистре операционного блока 26 до момента поступления состояния "своего" соединения с шины 10. Новые состояния виртуальных нейронов выдаются из указанного блока 26 на шину 11 записи состояний узлов, с которой заносятся в один из блоков памяти 15 или 15" состояний узлов. Если состояния виртуальных нейронов считываются из блока памяти 15 состояний узлов на шину чтения 10 состояний узлов по адресам, поступающим с шины 8 пред/последующих узлов, то заносятся - с шины 11 записи состояний узлов в блок памяти 15" состояний узлов по адресам, поступающим с шины 7 адресов узлов (см. тракт адресов узлов и соединений). В следующем цикле моделирования, наоборот, состояния виртуальных нейронов считываются из блока памяти 15" на шину 10 по адресам с шины 8, а заносятся - с шины 11 в блок памяти 15 по адресам с шины 7. В последующих циклах моделирования этот процесс повторяется требуемое число раз. Тракт параметров виртуальных нейронов. Значения этих параметров считываются из блока памяти 18 параметров узлов по адресам из счетчика 24 адресов считывания узлов и выдаются на шину 13 параметров узлов, с которой поступают на вход буферной памяти 27 параметров узлов, с выхода которой поступают в операционный блок 26. В этом блоке указанные параметры используются для вычисления новых состояний виртуальных нейронов, а также для определения новых значений этих параметров, например, новых значений порогов. Буферная память 27 используется для временного хранения считанных параметров, которые извлекаются из нее, по мере вычисления скалярного произведения вектора весов и состояний для каждого виртуального нейрона, с целью окончательного формирования новых значений параметров и нового состояния виртуального нейрона. Новые значения параметров выдаются из операционного блока 26 на шину 13 параметров узлов, с которой они заносятся в блок памяти 18 параметров узлов по прежним адресам, с целью корректировки прежних значений параметров. Шина 13 параметров узлов используется как для считывания, так и для занесения параметров из/в блок памяти 18 параметров узлов, что осуществляется в разные моменты времени. Выдача состояний и параметров виртуальных нейронов из операционного блока 26 на шины 11 и 13 производится синхронно с выдачей адресов из буферной памяти 25 занесения адресов узлов, т. к. для каждого состояния и значения параметров виртуального нейрона, в буферной памяти 25 имеется соответствующий адрес памяти 2 узлов. Блок управления 28 определяет соответствие между параметрами, состояниями и их адресами, и выдает сигналы управления на шину управления 5, которые, воздействуя на блоки устройства, обеспечивают выполнение рассмотренных операций. Тракт индексов предшествующих узлов. Указанные индексы считываются из блока памяти 16 индексов предшествующих узлов на шину 12 индексов пред/последующих узлов, с которой поступают в буферную память 21 индексов узлов. Это необходимо для определения числа входящих соединений виртуального нейрона, при вычислениях в операционном блоке 26. Число считываемых весов соединений для каждого виртуального нейрона определяется путем сравнения, которое производится в компараторе 22 адресов соединений. Сравнивается индекс блока памяти предшествующих узлов очередного моделируемого виртуального нейрона из буферной памяти 21, с текущим адресом соединения из счетчика 23 адресов считывания соединений. При достижении равенства текущих адресов на входах компаратора 22, на его выходе вырабатывается сигнал совпадения, который через шину управления 5 передается в блок управления 28, который, в соответствии с полученным сигналом, через шину управления 5 выдает требуемые сигналы управления на управляемые блоки. Для оценки производительности предположим, что нейронный компьютер обладает памятью 1 связей и памятью 3 ссылок в объеме 1 млн. ячеек каждая, памятью 2 узлов - 100 тыс. ячеек, а время доступа к данным составляет 10 нс. Также подразумевается, что вычислительные операции осуществляются одновременно с операциями считывания и занесения данных. Тогда минимальное время цикла моделирования сети равно суммарному времени считывания данных из всех ячеек памяти связей 1 или памяти ссылок 3, что в данном примере составляет 10 мс, а значит производительность устройства составит 100 млн. межнейронных соединений/секунду. Кроме того, память 1 связей, память 2 узлов, память 3 ссылок, можно разделить на независимые модули и разместить параметры соединений и виртуальных нейронов последовательно в смежных модулях памяти, используя принцип чередования адресов. Если, например, число модулей принять равным 10, то время доступа к данным уменьшится до 1 нс, значит производительность моделирования возрастет до 1 млрд. соединений/секунду. Использование заявляемых изобретений позволяет увеличить производительность нейронного компьютера при моделировании сетей виртуальных нейронов, что уменьшает время решения задач, например при распознавании образов. Предлагаемые способ и устройство позволяют использовать любые типы структур сетей виртуальных нейронов, в том числе и с обратными связями, что расширяет круг задач искусственного интеллекта. Источники информации
1. Нейрокомпьютер как основа мыслящих ЭВМ. Под ред. А.А.Фролова, Г.И. Шульгина. - М.: Наука, 1993, с. 166-169. 2. Н.М.Амосов, Т.Н.Байдык. Нейрокомпьютеры и интеллектуальные роботы. - Киев: Наукова думка, 1991, с. 70-73 (прототипы).
Класс G06F12/06 адресация физического блока памяти, например адресация по базе, модульная адресация, расширение адресного пространства, выделение памяти
Класс G11C15/00 Цифровые запоминающие устройства, в которых информация, состоящая из нескольких частей, записывается и считывается путем выбора одной или нескольких таких частей, те устройства ассоциативной памяти
Класс G06T1/40 нейронные схемы
Класс G06F17/00 Устройства или методы цифровых вычислений или обработки данных, специально предназначенные для специфических функций
Класс G06G7/60 живых организмов, например их нервной системы
Класс G06N3/00 Компьютерные системы, основанные на биологических моделях