В задачах компьютерного моделирования искусственных нейронных сетей возникает необходимость использования специальных наборов данных для представления структуры сети и параметров составляющих ее элементов. Оставляя за рамками настоящей статьи вопросы обучения и использования нейронных сетей, рассмотрим структуру многослойного персептрона [1] (рис. 1). Он состоит из слоя входных элементов (рецепторов), одного или нескольких слоев ассоциативных элементов (нейронов), слоя выходных (реагирующих) элементов. Каждый элемент имеет функцию активации (передаточную функцию), которая в простейшем случае представляет собой алгебраическую сумму всех сигналов, поступающих на вход элемента. Элементы сети связаны между собой послойно. Каждая связь имеет весовой коэффициент, на который умножается сигнал при переходе из одного элемента в другой. Число входов, как и число нейронов в каждом слое, может быть любым. Число слоёв тоже может быть любым, однако пока не доказано наличие преимуществ сети, содержащей более 3-х слоёв.
Представление персептрона при помощи динамических структур данных
Для реализации компьютерной модели нейронной сети в памяти компьютера могут быть использованы динамические структуры данных [2] (рис. 2). Структура «сеть» имеет указатели на «голову» и «хвост» динамического двусвязного списка входов и динамического двусвязного списка слоев. Каждый слой содержит указатели на первый и последний нейрон в слое. Каждый нейрон имеет указатели на «голову» и «хвост» динамического двусвязного списка связей, каждая из которых связывает нейрон с каким-либо нейроном из предыдущего слоя. Пример описания указанных структур данных на языке Си приведен на рис. 3.
С динамическими структурами данных удобно работать в памяти компьютера, однако при сохранении созданной и обученной сети на диск необходимы, очевидно, дополнительные средства. Использование для этих целей типизированных файлов не обеспечивает достаточной скорости чтения, прямого доступа и целостности данных. Традиционно для хранения больших объемов данных используются реляционные СУБД [3]. Данные, описывающие структуру многослойного персептрона, достаточно хорошо структурированы, однако напрямую не могут быть представлены в реляционном виде (для этих целей хорошо подошли бы сетевые или иерархические СУБД, но такие программные средства практически не используются). Для описания структуры персептрона в терминах реляционной модели требуется ее нормализация.
Реляционное представление персептрона
Нормализованная реляционная модель данных, описывающая структуру многослойного персептрона, приведена на рис. 4. Логическая связь между сущностями «слой-нейрон», «нейрон-связь», «сеть-слой», «нейрон-входная связь», «вход-входная связь», а также «сеть-вход» являются связями типа «один-ко-многим» и реализуются в БД при помощи ограничений целостности внешних ключей.
Рис. 1. Многослойный персептрон
Рис. 2. Представление нейронной сети при помощи динамических структур данных
Рис. 3. Пример описания структур данных на языке Си
Известно, что совокупность экземпляров сущностей в реляционной БД представляет собой множество, то есть на уровне БД не может быть определен порядок следования, размещения этих экземпляров. Для нейронов и связей это не является критичным, т.к. результат работы сети будет определяться лишь структурой самой сети. Для входов же сети (input), порядок их следования, размещения является важным, т.к. он определяет способ взаимодействия рецепторов сети с внешней системой. Для этого в сущности «input» определен атрибут «input_seq», при помощи которого будет задаваться «порядковый номер» входа при подаче на него внешнего воздействия.
Порядок следования слоев нейронов может быть определен неявно, как порядок следования входящих в слои нейронов, задаваемый направленными связями. Более того, сама сущность «слой» в некотором смысле является избыточной, т.к. определив при помощи связей порядок следования нейронов, можно сделать вывод о количестве слоев и о распределении нейронов по этим слоям. Тем не менее, присутствие сущности «слой» (layer) с атрибутом, определяющим порядковый номер слоя (layer_seq), в модели желательно, т.к. далеко не все реляционные СУБД поддерживают рекурсивные SQL-запросы, а в отсутствии такого вида запросов нахождение в БД «цепочек» нейронов возможно только алгоритмическим (нереляционным) способом, что, очевидно, сильно снижает преимущества использования реляционного представления данных.
Заключение
Предложенная реляционная модель представления многослойного персептрона может быть использована при разработке систем и средств моделировании нейронных сетей. Возможные количественные ограничения на количество слоев и нейронов сети определяются только возможностями используемой СУБД. Модель инвариантна к типу применяемой реляционной СУБД.
Развитием предложенной модели является реализация дополнительных ограничений целостности, таких как, например, исключение дублирования связей, исключение связей «через слой», обратно-направленных связей. Такие ограничения реализуются при помощи триггеров, которые поддерживаются большинством современных СУБД.
Рис. 4. Реляционная модель представления многослойного персептрона
Библиографическая ссылка
Кузин Д.А., Запевалов А.В., Сырчин А.В. Реляционная модель представлениямногослойного персептрона // Современные наукоемкие технологии. – 2013. – № 4. – С. 45-48;URL: https://top-technologies.ru/ru/article/view?id=31602 (дата обращения: 03.12.2024).