СЕКЦИЯ 1 Л.А. ЖУКОВ, Н.В. РЕШЕТНИКОВА, О.В. КОРЧЕВСКАЯ Сибирский государственный технологический университет, Красноярск Красноярский государственный технический университет zhukov@wallst.ru, sophya2002@mail.ru http://zhukov.wallst.ru О ФОРМАЛИЗАЦИИ НЕЙРОСЕТЕВОЙ ТЕХНОЛОГИИ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ НА ПРИМЕРЕ СЕТЕЙ С УЧИТЕЛЕМ И СЕТЕЙ ХОПФИЛДА Аннотация В настоящей работе предлагается подход к формальному описанию нейросетевой технологии решения исследовательских задач. Формализмы реализованы на примере нейросетей с учителем и сетей Хопфилда. Использованы методы теории формальных языков и грамматик. Рассматривается нейросетевая технология до уровня операций пользователя, реализованных в идеальном нейроимитаторе. Предложена иерархическая система описания грамматики и соответствующего языка. Как отмечается [1] – [3], в настоящее время накоплено большое количество различных алгоритмов обучения и архитектур нейронных сетей, приемов использования нейронных сетей для решения прикладных задач. В работе [3] предложен метод систематизации всего многообразия нейронных сетей в виде их реализации на идеальном нейрокомпьютере, имеющем заданную функциональную структуру. В работе [4] рассматриваются вопросы формального описания структуры и топологии на уровне элементарных составляющих сети (нейронов, связей) для регулярных сетей. В работе [5] указано на необходимость тесной интеграции нейросетевых и иных (например, статистических) методов обработки и анализа данных. В работе [6] подробно приведено описание технологии обработки данных с помощью нейросетевых методов с учителем для решения прикладных задач. Работа не доведена до формального описания технологии нейросетевой обработки данных. Задача формализации нейросетевой технологии с точки зрения конечного пользователя является актуальной. При построении формального описания используем три уровня детализации технологии нейросетевой обработки данных (нумерация начинается с 0): 0) группы операций – имеются в виду группировка на предварительные, основные и вспомогательные операции; УДК 004.032.26(06) Нейронные сети 68 СЕКЦИЯ 1 1) подгруппы операций – неэлементарные составляющие (которые можно разложить на более простые операции) групп операций 0 уровня, например, нормирование, предобработка и т.п.; 2) операции – операции, используемые для нейросетевой обработки данных, рассматриваемые в самом общем виде без учета конкретной реализации; 3) реализация операций – конкретная реализация или алгоритм выполнения (на уровне составляющих сети) операций. Этот уровень предусматривает участие разработчика нейроимитатора (другой подобной программной системы) или хотя бы квалифицированного пользователя. В дальнейшем предлагается рассматривать на 2 уровне (операций пользователя) три группы операций [6]: 1. Предварительные – операции считывания файлов данных, предобработки, представления данных; 1.1. Обязательные – операции считывания файлов данных, предобработка; 1.2. Необязательные – операции представления данных, некоторые операции предобработки; 2. Основные – создание сети, чтение сети, обучение; 3. Вспомогательные – тестирование, упрощение структуры сети, определение значимостей входных параметров, вербализация сети, сохранение проекта (сети). Следует отметить, что предварительные операции реализуются обычно в специализированных программах – предобработчиках или других подходящих пакетах. Некоторые предварительные операции, в частности считывания файлов данных предусмотрены во всех используемых пакетах (в предобработчиках, нейроимитаторах и интегрированных системах), нормирование данных может выполняться как в предобработчиках, так и некоторых нейроимитаторах. Некоторые нейроимитаторы (не все) автоматически после загрузки данных проводят их нормирование. Приведем схематично группировку указанных операций по месту выполнения (идеальный случай, т.е. здесь и далее описана идеальная ситуация – желаемое, но не всегда действительное). В действительности же группировка операций не является такой очевидной и не все операции из приведенных групп реализуются в полном объеме. В большинстве случаев каждый автор соответствующего программного пакета сам определяет и трактует необходимый набор операций для реализации. Предварительные Основные УДК 004.032.26(06) Нейронные сети Вспомогательные 69 СЕКЦИЯ 1 Предобработчик Статистические пакеты Нейроимитатор Интегрированные системы + - - частично - - частично + +/- + / частично + +/- В целом основные и некоторые из предварительных операций являются обязательными для выполнения, а вспомогательные являются дополнительными и могут не выполняться при обработке данных. В данной работе рассматриваются возможные последовательности действий при обработке данных, выполняемые для одной нейросети. Из этого следует, например, что создание нейронной сети обязательно присутствует в слове рассматриваемого формального языка один и ровно один раз. Предварительные операции условно разделим на несколько подгрупп: операции представления данных (сбор данных, структура таблицы базы данных, предварительный выбор поля ответа), предобработка (преобразование символьных полей и полей типа дата, поиск и заполнение пробелов, нормирование), операции считывания файлов данных. Основные операции представляют создание/чтение и обучение нейронной сети. Вспомогательные операции – это тестирование, упрощение нейросетей, определение значимостей входных параметров, вербализация, открытие и сохранение сети. 1. Формализация технологии для нейронных сетей с учителем Имеем следующий нетерминальный алфавит (словарь). Для удобства здесь перечислены символы 0 и 1 уровней: 0 уровень Before main B Предварительные операции M Основные операции Main operations A Вспомогательные операции Auxiliary operations Операции сбора данных, создания таблицы, считывания, предобработки данных Создание / чтение сети и обучение сети Тестирование, упрощение нейросетей, определение значимостей входных и внутренних параметров, вербализация, сохранение сети (проекта) 1 уровень УДК 004.032.26(06) Нейронные сети 70 СЕКЦИЯ 1 I Представление ных дан- P Предобработка Preprocessing L C Обучение сети Упрощение структуры сети Learn Contrasting N Нормирование Normalization E Заполнение пробелов Empty data T Тестирование Test / Validate D Предварительное описание данных Data Data introducing Сбор данных, создание структуры таблицы базы данных, выбор поля ответа (предварительный) Изменение структуры таблицы, преобразование символьных полей и полей типа дата и других нечисловых полей, поиск и заполнение пробелов, нормирование Обучение сети Упрощение структуры сети, например, операции контрастирования и бинаризации Преобразование данных для приведения значений к определенному диапазону Заполнение пробелов по некоторому алгоритму Тестирование по примеру и по выборке Создание структуры таблицы, предварительный выбор поля ответа На уровне операций пользователя рассматриваются конкретные операции (предусмотренные в идеальных нейроимитаторах, операции рассматриваются без учета конкретной реализации в самом общем виде), входящие в состав подгрупп. Эти операции представляют собой буквы терминального алфавита (словаря), некоторые из которых приведены ниже: reading data Открытие файла данных inputs contrast v Считывание файлов данных Контрастирование входных параметров Контрастирование синапсов Контрастирование нейронов Вербализация сети i Определение importance Удаление входных параметров с дообучением Удаление синапсов с дообучением Удаление нейронов с дообучением Описание внутренней структуры сети Расчет значимостей входных rd ci cs cn значи- synapses contrast neurons contrast verbalization УДК 004.032.26(06) Нейронные сети 71 СЕКЦИЯ 1 мостей параметров b1 Бинаризация сети ±1 binary rp Открытие (чтение) сети Тестирование сети по выборке Тестирование сети по примеру Создание сети read project Нормирование линейное Нормирование на интервал [a,b] linear normalization normalization lr Обучение методом случайного поиска ls Обучение методом наискорейшего спуска learning casual method learning quickest method tt tv mk nl nd test validate make или внутренних параметров, показывающих их значимость при определении выходного поля Приведение весов синапсов к значениям из множества {-1, 1} Чтение сохраненной сети Тестирование при известном значении поля ответа Тестирование при неизвестном поле ответа Создание сети (выбор структуры, поля ответа, характеристик нейронов) Нормирование на интервал [0, 1] линейно Нормирование на интервал [0,1] нестрого, но линейно [-s, +s], [-2s, +2s], результатом нормирования будет диапазон [a, b], где a<0, b>1 by the search by the descent 2. Формализация технологии для нейронных сетей Хопфилда Нейронные сети с учителем чаще других архитектур применяются для решения исследовательских задач, тем не менее, существует целый класс задач для решения которых требуются другие типы нейронных сетей. Например, для анализа изображений или некоторых других оптимизационных задач (сводимых к задачам минимизации энергии) эффективнее использовать нейронные сети Хопфилда (НСХ) [7]. Далее предложено формальное описание нейросетевой технологии для сетей Хопфилда с использованием методики [8], [9]. Сеть Хопфилда представляет собой однослойную нейронную сеть с обратными связями [2] и УДК 004.032.26(06) Нейронные сети 72 СЕКЦИЯ 1 принадлежит к классу так называемых релаксационных нейронных сетей, в основе функционирования которых лежит итеративный принцип работы. Сеть Хопфилда из начального состояния сходится к ближайшему локальному минимуму энергии сети, состояние нейронов в котором и будет восстановленным образом для задач распознавания, и решением – для оптимизационных задач. Таким образом, для оптимизационной задачи необходима предварительная нейронная кодировка, т.е. каким образом нейронную сеть можно приспособить к решению таких задач. Несмотря на то, что сеть Хопфилда и позволяет эффективно распознавать задачу восстановления образов по неполной или искаженной информации, важнейшей особенностью работы сети является генерация ложных образов, связанных с обобщающими возможностями сети [2]. В связи с этим представляется возможным проводить предобработку образа, которая снизила бы вероятность возникновения подобной проблемы. В частности, для задач распознавания изображений можно предложить: выбеливание фрагментов, усреднение части искаженного изображения, определение значимости входных фрагментов образа, так как, как правило, можно выделить фрагменты изображения более или менее существенные для задачи распознавания. Например, определение значимости фрагментов можно определить сходно со способами определения значимости входных параметров в нейронных сетях с учителем и без него [8]. Сети Хопфилда обладают невысокой емкостью (число запоминаемых образов), что объясняется обобщающими возможностями сети [10]. Число запоминаемых образов для сети Хопфилда обычно примерно равно 0.15*N [10], где N – число нейронов. Для сложных сетей такого типа и малого числа образов можно предложить набор операций изменения структуры сети, в том числе: упрощения нейросети, операции контрастирования и бинаризации, а также определение значимости внутренних связей. Рассмотрим три группы технологических операций при нейросетевой обработке данных для НСХ, формальное описание технологии приведено далее: B Предварительные операции M Основные операции 0 уровень Before main Main operations Операции сбора данных, предобработки данных, формирование векторов – признаков, считывания Создание / чтение сети и обучение сети / расчет матрицы весов УДК 004.032.26(06) Нейронные сети 73 СЕКЦИЯ 1 Вспомогательные операции A Auxiliary operations I Представление данных 1 уровень Data introducing P Предобработка Preprocessing Тестирование, упрощение нейросетей, определение значимостей входных и внутренних параметров, сохранение сети (проекта) Сбор данных, согласно обучающим образам формируется матрица весов или рассчитывается заранее (для оптимизационных задач) Формирование образа (вектора с признаками), предобработка, Заполнение пробелов по некоторому алгоритму, усреднение, определение значимости входных фрагментов / нейронная кодировка оптимизационной задачи Детальное описание формального языка и соответствующей грамматики систематизирует и уточняет процесс обработки и технологической составляющей исследования данных с помощью нейросетевых методов. Кроме формальных языков использовалась методология IDEF. Приведенная методика позволяет в общем случае формализовать технологию работы пользователя с использованием нейронных сетей любой архитектуры, что может быть использовано в методологическом плане исследователями, занимающимися обработкой данных с помощью искусственных нейронных сетей и разработчиками, реализующими программынейроимитаторы для определения их основных функций, недопустимых последовательностей операций. Список литературы 1. Горбань А.Н., Россиев Д.А. Нейронные сети на персональных компьютерах. Н.: Наука, 1996. 2. Нейроинформатика / А.Н. Горбань, В.Л. Дудин-Барковский, А.Н. Кирдин и др. Новосибирск: Наука. Сибирское предприятие РАН, 1998. 296 с. 3. Миркес Е.М. Нейрокомпьютер. Проект стандарта. Новосибирск: Наука, 1999. 337 с. 4. Дорогов А.Ю. Быстрые нейронные сети. М.: Изд-во Санкт-Петербургского университета, 2002. 77 с. 5. Царегородцев В.Г. Взгляд на архитектуру и требования к нейроимитатору для решения современных индустриальных задач // Научная сессия МИФИ-2004: Сб. науч. тр. Ч.2. М.: МИФИ, 2004. С. 160-167. УДК 004.032.26(06) Нейронные сети 74 СЕКЦИЯ 1 6. Жуков Л.А. Технология нейросетевого решения прикладных классификационных задач для использования в экологии, биологии и медицине: Научное издание / Красноярск. госуд. техн. ун-т. Красноярск, 2004. 148 с.: ил. 26. - Библиогр.: 399 назв. - Рус. - Рукопись деп. в ВИНИТИ 13.05.2004, № 800-В2004. 7. Уоссерман Ф. Нейрокомпьютерная техника: Теория и практика, 1992. 184 с. 8. Решетникова Н.В., Жуков Л.А. Формальное определение языка технологии обработки данных нейронных сетей с учителем // Нейроинформатика и ее приложения: Материалы XII Всероссийского семинара. ИВМ СО РАН, Красноярск, 2004. С.109-111. 9. Решетникова Н.В., Жуков Л.А. Графическое представление формальной грамматики технологии обработки данных с помощью нейронных сетей с учителем // Моделирование неравновесных систем: Материалы VII Всероссийского семинара. ИВМ СО РАН, Красноярск, 2004. С.126-127. 10. Короткий С. Нейронные сети – http://lii.newmail.ru УДК 004.032.26(06) Нейронные сети 75