УДК 510.64-519.816 ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ОБУЧЕНИЯ НЕЧЕТКИХ КОГНИТИВНЫХ КАРТ А.А. Аверкин ([email protected]) Государственное бюджетное учреждение науки Российской Академии Наук Вычислительный центр им. А.А. Дородницына, Москва А.А. Паринов ([email protected]) НИУ МЭИ, Москва Нечеткие когнитивные карты являются средством представления знаний. Использование нечетких когнитивных карт затруднено в связи с необходимостью указывать большое количество точных значений весов связей между факторами. Задача автоматического определения точных значений весов связей между факторами решается в результате обучения когнитивной карты. В данной статье предложена параллельная реализация генетического алгоритма обучения когнитивных карт, основанных на нечетких реляционных уравнениях. Введение Нечеткие когнитивные карты являются достаточно удобным средством представления знаний эксперта при моделировании причинноследственных отношений в динамических системах. Одной из трудностей при реализации нечетких когнитивных карт является необходимость экспертного определения большого количества точных значений весов связей между факторами. Возникает проблема автоматической подстройки значений весов связей между факторами на основании обучающей выборки, которая решается в результате обучения когнитивной карты. В качестве модели когнитивных карт используется нейросетевая модель - модель Кошко [Kosko, 1993]. При использовании нейронной модели для подстройки весов когнитивной карты возможно использовать как генетический алгоритм так и нейросетевые алгоритмы обучения. Генетический алгоритм более универсален, но требует значительных вычислительных ресурсов [Stach et al., 2005]. В данной работе предложена параллельная реализация генетического алгоритма обучения модели когнитивной карты, основанной на нечетких реляционных уравнений. 1. Нечеткие когнитивные карты В настоящее время прогнозирование развития динамических систем связано с привлечением группы экспертов данной предметной области. Удобным инструментом агрегации знаний многочисленной и сильно распределенной группы экспертов, социальной сети экспертов является математический аппарат когнитивных карт и нечетких когнитивных карт. Когнитивная карта представляется в виде знакового орграфа. Преимуществами использования когнитивных карт является наглядность, что является важным фактором при работе группы экспертов предметной области. Пример когнитивной карты экономической ситуации приведен на рис.1. Уров ень прибыли Количеств о фирм произв одителей 2 + 5 + Цены на продукцию 1 Дефицит продукции + 6 Уров ень конкуренции + + 3 Объем произв одимой продукции 4 + + Уров ень спроса 8 _ + 7 Уров ень доходов пот ребителей Рис.1. Когнитивная карта Нечеткие когнитивные карты (Fuzzy cognitive maps, FCM) , предложенные Кошко, являются обобщением когнитивных карт. В нечетких когнитивных картах каждой вершине, обозначающей фактор, присваивается нечеткая переменная сi[0,1], характеризующая активность данного фактора. Связи между i-м фактором-причиной и j-м факторомследствием, присваивается нечеткое значение wij[-1,1] [Kosko, 1993]. Нечеткую когнитивную карту можно представить в виде матрицы смежности W={wij}. Нечеткие когнитивные карты используются для получения прогноза развития системы и для получения стратегии, которую необходимо использовать для того, чтобы достичь желаемый результат. Задача поиска прогноза состоит в определении вектора состояний Сi (t) при t=1…n. Для использования когнитивных карт в качестве инструмента агрегирования знаний группы экспертов требуется указание точных значений нечетких переменных связей между факторами, что представляет трудность при создании когнитивной карты с большим количеством вершин. Для автоматической настройки значений переменных связей используются алгоритмы обучения когнитивной карты. Задача обучения когнитивной карты состоит в минимизации ошибки результата прогнозирования. Ошибка прогнозирования оценивается как погрешность между прогнозируемыми показателями карты и реальными значениями факторов, известных из исторических наблюдений. Существующие системы моделирования нечетких когнитивных карт используют следующие подходы к моделированию: 1. Нейронный 2. Подход на основе нечетких реляционных уравнений Нейронный подход к моделированию когнитивной карты позволяет использовать нейронный [Carlsson et al., 1996] и генетический алгоритм обучений [Stach et al., 2005]. Российскими учеными развивается направление моделирования когнитивных карт на основе нечетких реляционных уравнений [Силов, 1995]. Для обучения моделей когнитивных карт на основе нечетких реляционных уравнений можно использовать генетический алгоритм [Аверкин и др., 2010]. Важную роль играет возможность ускорения работы генетического алгоритма с использованием компьютеров с многоядерными процессорами. Для сетей на основе нейронной модели (модели Кошко) был разработан параллельный алгоритм обучения [Stach et al., 2010]. Для модели когнитивной карты на основе нечетких реляционных уравнений нами разработан оригинальный параллельный алгоритм обучения. Рассмотрим подробнее последовательную и параллельную реализацию генетического алгоритма. При реализации подхода основанного на нечетких уравнениях логический вывод обобщается с использованием t-норм и s-норм [Кулинич, 2003]. Используя t-нормы и s-нормы формула определения значения активности нейронов записывается в виде: Сi(t+1)=S[T(Сj(t), wji)], (1) Также определяется вектор приращений. Прогноз развития ситуации определяется с помощью матричного уравнения : (2) P(t 1) P(t ) W , где ( ) (max, T ) - макстриангулярная композиция, которая в частном случае представляется в виде: pi (t 1) max j ( p j (t ) wij ) . (3) Для реализации алгоритма обучения когнитивной карты на основе нечетких уравнений необходимо наличие набора из 3-х строк, характеризующих значения величин активности факторов в t, t+1, t+2 моменты времени соответственно. Приращение значений факторов от i-й итерации к (i+1) итерации составляет исходный вектор приращений X. В этом случае значения, рассчитанные по формуле (2) должны совпадать с историческими значениями приращений на (i + 2) итерации. Пусть Ai(t) – значение активности i-го фактора в момент времени t. Тогда A(t), Ai(t+1), Ai(t+2) – значение активности i-го фактора в t, t+1, t+2 моменты времени соответственно. Исходный вектор приращений задается формулой: A (t 1) Ai (t ) xi i , Ai (t ) результирующий вектор приращений: A (t 1) Ai (t ) yi i . Ai (t ) Пусть oi(t) – приращение i-го фактора, полученное в результате прогноза на исходном векторе x(t). Тогда задача обучения состоит в минимизации ошибки, определяемой по формуле 1 K N E (W ) t 1 i 1 ((o(i) y (i)) 2 , (4) 2 с учетом введенных значений x, y, o. 2. Параллельная реализация генетического алгоритма Для решения задачи обучения когнитивной карты на основе нечетких реляционных уравнений был разработан генетический алгоритм. В качестве хромосомы выделяется одномерный массив значений, в который разложен двумерный массив весов нечеткой когнитивной карты. Основные этапы алгоритма: 1. Этап задания первичных значений. На этом этапе для всех ненулевых значений весов исходной карты определяется новое ненулевое значение веса, задаваемое малым случайным числом. Исходные ненулевые значения весов определяются экспертом. Первый этап повторяется количество раз равное размеру популяции. Таким образом, формируется первоначальная популяция случайных решений. 2. Определяется функция приспособленности (fitness function) для каждой хромосомы. Функция приспособленности является обратной к функции характеризующей ошибку сети, определяемой по формуле (4) 3. Определяется пул родителей по методу «рулетки». В пул родителей добавляются «элитные особи». Под элитными особями в генетических алгоритмах подразумеваются особи, которые показали наилучшее значение функции приспособленности на нескольких последних поколениях (по одной особи от поколения). 5. Происходит скрещивание хромосом, попавших в пул родителей. Скрещивание хромосом A и B происходит следующим образом. Случайным образом определяется граница скрещивания l. Обозначим Al+ часть хромосомы A, состоящую из генов, расположенных начиная с l, и Al- – часть хромосомы, расположенную до l. Тогда результатом скрещивания будут две хромосомы Al-Bl+ и Bl-Al+. Вероятность скрещивания определена заранее. Если скрещивания не происходит, обе родительские хромосомы без изменений переходят в популяцию потомков. 6. Из потомков, полученных на шаге 6, формируется новая популяция (размер ее в точности совпадает с размером популяции на предыдущем шаге алгоритма). 7. Происходят мутации в популяции потомков. При мутации выбирается случайный ген и заменяется на новое случайное значение. Вероятность мутации определена заранее. Если мутации не происходит, хромосома переходит на следующую итерацию алгоритма неизменной. 8. Определяются следующие параметры поколения: элитная особь; значение приспособленности элитной особи; среднее значение приспособленности популяции. 9. Если значение приспособленности элитной особи больше заранее заданного значения максимальной приспособленности, алгоритм останавливается и выбранная хромосома раскладывается в матрицу смежности нечеткой когнитивной карты. Обучение считается завершенным. Иначе происходит переход на этап 3. При реализации параллельного алгоритма были распараллелены этап задания первичных значений, этап определения функции приспособленности и этап скрещивания хромосом. Параллельный алгоритм реализован на языке Microsoft C# .NET 4.0. Были проведены вычислительные эксперименты на компьютере с установленным многоядерным процессором. 4. 3. Результаты эксперимента В качестве исходных данных для проведения экспериментов использовались параметры модели прогнозирования макроэкономических показателей экономики РФ [Аверкин и др., 2010]. Результаты проведения экспериментов на компьютере с установленным процессором Core i7 (8 ядер) приведены в Таблице 1.: Табл. 1. Кол-во вершин 500 1000 1500 2000 2500 3000 Параллельный алгоритм 1 ядро 2 ядра 4 ядра 8 ядер Время Время Ускорение Время Ускорение Время Ускорение 0.975 0.620 1.573 0.356 2.739 0.133 7.309 12.879 7.243 1.778 4.998 2.577 1.931 6.669 43.473 22.950 1.894 18.689 2.326 6.799 6.394 103.056 56.744 1.816 38.227 2.696 17.232 5.980 201.292 139.510 1.443 95.559 2.106 34.938 5.761 347.843 241.923 1.438 166.596 2.088 68.379 5.087 Рис. 2. График ускорения для карт с различным количеством вершин Из данных таблицы 1 видно, что ускорение, достигаемое при запуске алгоритма на восьми ядерном процессоре, в 7 раз больше при вычислениях модели с 500-ми вершинами и в 5 раз больше при вычислениях, производимых на модели с 3000-ми вершинами. Снижение ускорения при росте количества вершин объясняется увеличением затрат ресурсов компьютера на организацию нитей в многопоточной программе при увеличении количества вершин. 4. Заключение В данной работе предложена параллельная реализация генетического алгоритма обучения когнитивной карты, при построении которой используется подход на основе нечетких реляционных уравнений. Наблюдается значительное ускорение вычислений - в 7 раз на 8 ядерной машине на 500 вершинах, которое может быть значительно увеличено при использовании нескольких многоядерных машин в распределенной компьютерной системе. Благодарности. Работа частично выполнена при финансовой поддержке РФФИ (проекты № 10-01-00851 и 12-07-00441). Список литературы [Аверкин и др., 2010] Аверкин А.А., Паринов А.А.. Генетический алгоритм обучения нечетких когнитивных карт, Труды вольного экономического общества России, том сто сорок третий, Москва, 2010., стр. 69-79. [Кулинич, 2003] Кулинич А. А. Разработка принципов и методов построения программных систем поддержки принятия решений в слабо структурированных ситуациях на основе моделирования знаний эксперта. Автореферат на соискание ученой степени кандидата технических наук. – М.: РАН, 2003. [Силов,1995] Силов В.Б. Принятие стратегических решений в нечеткой обстановке. М.: ИНПРО-РЕС, 1995. [Axelrod, 1976] R. Axelrod. Structure of Decision: the Cognitive Maps of Political Elites. Princeton University Press, New Jersey, 1976. [Carlsson et al., 1996] C. Carlsson, R. Fuller. Adaptive fuzzy cognitive maps for hyperknowledge representation in strategy formation process, Budapesht, 1996 [Dombi et al., 2003] J. Dombi, J. D. Dombi. Cognitive maps based on pliant logic. Departure of Informatics, University of Szeged. I.J. of Simulation, Vol. 6, No. 6., 2003 [Kosko, 1986] В. Kosko, ‘Fuzzy cognitive maps’, International Journal of Man-Machine Studies, 1986, vol. 24, no. 1, pp. 65-75. [Kosko, 1993] В. Kosko. Fuzzy thinking. Hyperion, 1993. [Stach et al., 2005] W. Stach, L. Kurgan,W. Pedrycz, M. Reformat. Genetic learning of fuzzy cognitive maps. Fuzzy sets and systems, no. 153, 2005. pp. 371-401. [Stach et al., 2010] W. Stach, L. Kurgan,W. Pedrycz, A divide and conquer method for learning large Fuzzy Cognitive Maps, Edmodton, Canada, 2010. [Sadiq et al., 2006] R. Sadiq, Y. Kleiner, B. Rajani. Interpreting fuzzy cognitive maps (FCMs) using fuzzy measures to evaluate water quality failures in distribution networks. Joint International Conference on Computation in Civil and Building Engineering (ICCCBE XI), Montreal, QC., June 14-16, 2006, pp. 1-10