Главная arrow Логика arrow Нейроны в системах
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Нейроны в системах Печать

Реализация нейронов в вычислительных системах

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

Виртуальная машина, реализующая преобразование абстракций нейронной сети в абстракции операционной системы, будет содержать шесть уровней: 1. уровень операционной системы; 2. уровень хранилища; 3. уровень управления телами нейрона; 4. уровень управления секциями нейрона; 5. уровень логики поведения секции; 6. уровень логики поведения нейрона.

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

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

Физически нейрон реализуется в хранилище данных как поток данных (Data Stream). Благодаря этому каждый нейрон можно рассматривать как некоторый файл. В результате работа с нейроном ведется посредством функций работы с файлами, такими как чтения блока данных, запись блока данных, перемещение файлового указателя.

Идентификация, поиск, управление и обработка нейронов в хранилище обеспечивается с помощью идентификаторов нейронов. Идентификатор нейрона является основным понятием хранилища данных. Этот идентификатор представляет собой целое число. При рождении каждому нейрону назначается идентификатор. Идентификатор остается неизменным на протяжении всей жизни нейрона. После смерти нейрона этот идентификатор может быть назначен другому нейрону. В одно и тоже время в хранилище не может существовать двух различных нейронов с одним и тем же идентификатором. Если в качестве идентификатора нейрона взять 32-битовое целое число со знаком, то хранилище сможет содержать до 231= 2'147'483'648 различных нейронов.

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

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

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

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

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

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

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

  1. Данные тела нейрона;
  2. Идентификатор типа нейрона;
  3. Данные тела секции;
  4. Идентификатор типа секции;
  5. Данные других уровней, расположенные в теле секции;
  6. Идентификатор нейрона в хранилище.

Каждая секция нейрона может рассматриваться как поток данных (или как файл, отображенный в память) и интерпретироваться другими уровнями любым способом. Уровень логики поведения секции будет рассматривать секцию как табличную структуру, состоящую из неограниченного количества записей по N полей в каждой. Поля в секции, например, нумеруются не отрицательными целыми числами с шагом 1. Каждое поле имеет свой фиксированный тип. Порядок расположения записей в секции нейрона назовем естественным порядком записей в секции. Тогда, например, записи в секции будут нумероваться целыми не отрицательными числами с шагом 1.

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

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

Каждый нейрон принадлежит типу, от которого он был порожден. Описатель типа так же является нейроном и имеет свой идентификатор. По аналогии с объектно-ориентированным программированием нейроны описатели типа можно называть типами классов. Каждый нейрон может выступать в роли класса. Порождение нейрона от класса можно называть наследованием. От одного класса может быть порождено неограниченное количество нейронов. Каждый нейрон подразделяется на секции. Каждая секция имеет свой тип. Носителем типа секции выступает нейрон секции. Каждая секция будет иметь свой числовой идентификатор, равный идентификатору нейрона секции. Рассмотренное представление формального языка как нейронной сети будет обладать свойствами как сетевой, так и реляционной баз данных.