Научная статья на тему 'Алгебраический подход к формализации семантики задач'

Алгебраический подход к формализации семантики задач Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
101
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕМАНТИКА ЗАДАЧИ / АЛГЕБРА / СЕМАНТИЧЕСКАЯ СЕТЬ / СИСТЕМА ИНТЕГРИРОВАННОГО ВИДА / НЕЙРОННАЯ СЕТЬ / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / НЕЧЁТКИЕ МНОЖЕСТВА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мунерман Виктор Иосифович, Симакова Анна Александровна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Мунерман Виктор Иосифович, Симакова Анна Александровна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Алгебраический подход к формализации семантики задач»

Мунерман В.И.1, Симакова А.А.2

Смоленский государственный университет, г. Смоленск, доцент кафедры информатики,

vimoon@gmail.com

2Смоленский государственный университет, г. Смоленск, студентка физико-математического

факультета, bessima 13@yandex . ru

АЛГЕБРАИЧЕСКИЙ ПОДХОД К ФОРМАЛИЗАЦИИ СЕМАНТИКИ

ЗАДАЧ

КЛЮЧЕВЫЕ СЛОВА

Семантика задачи, алгебра, семантическая сеть, система интегрированного вида, нейронная сеть, искусственный интеллект, нечёткие множества.

АННОТАЦИЯ

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

Процесс решения задачи, как правило, включает два этапа: представление задачи и поиск (перебор). Успех решения задачи в значительной мере определяется формой ее представления. Формы представления задачи могут быть различными и зависят как от природы самой задачи, так и от ее решателя.

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

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

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

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

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

В дальнейшем под алгеброй понимается конечное множество, вида:

<S,M,й5,Qм> . (1)

Здесь:

• 5 - структура задачи, например, матрица, граф и тому подобные структуры;

• М - множество, которому принадлежат элементы структуры, например, множества натуральных, действительных чисел, множество {0, 1};

• й - множество операций над 5;

• йм - множество операций над М.

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

Например, в задачах на графах, в частности в задаче поиска кратчайшего пути от одной вершины до остальных (на самом деле это могут быть задачи различных классов, но обладающих некими свойствами). В данном случае имеем некую структуру, именуемую графом и фиксированную операцию преобразования этой структуры (например, алгоритм Флоида-Уоршелла), а также известно конкретное арифметическое множество (Ы, R и т. п.), к которому будут принадлежать элементы данной структуры. Итак, в подобных задачах алгеброй будет являться следующее множество объектов X, А, й х>, где G - граф, X - некоторое множество, А - алгоритм Флоида-Уоршелла, й х - операции над А.

Реализацию подобной системы было решено разбить на два этапа:

• этап лингвистической обработки данных (этап формализации и преобразования полученных данных);

• этап машинного обучения (этап накопления, обработки и принятия решения). Оба находятся в тесной взаимосвязи, рассмотрим их подробнее.

Этап лингвистической обработки подразумевает работу с неструктурированными данными, представленными в обычной форме. На этом этапе мы строим модель знаний, то есть переходим от знаний, представленных в текстовой форме, к их аналогам, пригодных для ввода в память интеллектуальной системы, т.е. формализуем данную задачу. Формализация задачи происходит за счет получения и обработки лингвистических переменных. Под лингвистической переменной понимается единица входных данных (слово), полученная из формулировки задачи. Множество лингвистических переменных обозначим через L={ 11 12 ■ ■■,1В} , где s>0.

Этот этап построения системы основан на обработке множества L методами кластерного анализа. А именно, данное множество подвергнем кластеризации, в ходе которого определим множество дескрипторов, по которым будет оцениваться объекты в выборке. При этом количество объектов, полученных в результате преобразования, не должно превышать количества объектов во множестве L . Обозначим это множество через К ={ к 1,к2, ■ ■■,кт } , где 0 < т < s. Таким образом, получаем сюръективное отображение а множества L во множество К :

а: L - К . (2)

Полученное множество К будем разделять на кластеры. В качестве определяющих групп будем использовать номера построенных заранее множества объектов вида (1), которые будут храниться в базе. Обозначим это множество через N = {1, 2, ..., с}, где с>0. (более подробно кластеризация будет описана на втором этапе реализации системы). Таким образом, получим следующее инъективное отображение в:

в: К ^ N (3)

Очевидно, что некоторый объект к, еК может отобразится как в а1, так и в а j, при этом i * ]. Поэтому мы получаем некоторое множество векторов, размерности т. А именно:

{(к 1,п),(к2,п),...(кт,п2)|0<т<з,к1 еК,аеЛ;1,],1 е[1,с],с>0}. (4)

Итак, на первом этапе наша система имеет следующее представление (рис. 1) Рассмотрим второй этап построения нашей системы - этап машинного обучения. На этом этапе происходит накопление и обработка данных, а также принятие решения относительно алгебраической системы. Основной метод преобразований данных осуществляется с помощью нейронной сети, которая непосредственно занимается кластеризацией наших данных.

Рис. 1 Лингвистический этап системы

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

Итак, учитывая, что нам необходимо на выходе получить конкретную алгебраическую систему вида (1), то наша сеть будет выглядеть следующим образом (рис. 2).

Данные, полученные с первого этапа, отправляются сразу на 2 слоя: множество структур S и множеств различных мощностей М. На каждом из них данные обрабатываются с помощью алгоритма кластеризации, рассмотрим более подробно кластеризацию на втором слое.

Слой множеств М различных устно стен

Рис. 2 Нейронная сеть

При поступлении данных на слой, они обрабатываются с помощью нейронов, которые сначала объединяют эти данные в нечёткие кластеры, а затем находят степень принадлежности входных элементов к определённому элементу множества М, например степень принадлежности данного кластера к множеству действительных чисел.

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

< х,рм (X) > , где х - это кластер, полученный на этом этапе, а ^м (X) - функция принадлежности, которая ставит в соответствие каждому элементов к соответствующий элемент из X, при этом (X) выражается действительным число из интервала [0,1], которое определяет степень соответствия элемента множества К конкретному элементу из X. Данная функция определяется отображением ^м (X): (К — X) .

В качестве элементов множества X используем множества различных мощностей. Само же значение ^м (X) будем определять с помощью частоты вхождения элементов в данную группу. Если для X £ А , (X )=1, то это означает, что элемент х определённо принадлежит нечёткому множеству А, а значение ^А (X ) = 0 означает, что элемент х определённо не принадлежит ему.

Полученные результаты передаются на следующие соответствующие слои: слой операций над структурами и слой операций над множествами.

Рассмотрим слой операций над множествами. На нем обрабатываем данные с предыдущего слоя тем же способом, но только кластеры другие и поэтому множество, полученное в результате обработки, будет иметь другие ещё один весовой коэффициент, и полученный кортеж с предыдущего слоя перейдёт уже в четверку элементов, вида < X ,цм (X) ,0 ,цх (О) > , где х - это кластер, полученный на предыдущем этапе, ^м (X) - функция принадлежности для X, О -множество операций над X , Цх (О) - степень принадлежности операции к данному кортежу.

Полученные результаты, со своими весовыми коэффициентами поступают на ещё один слой, который формулирует окончательный результат - это слой Кохонена. На этом слое выходные сигналы с предшествующих слоёв обрабатываются сначала вместе, образуя конечные кластеры со своими новыми коэффициентами принадлежности, а затем эти группы обрабатываются по правилу «победитель забирает всё», т.е. наибольший сигнал превращается в единичный, а остальные обращаются в ноль. Схематически это можно представить в виде следующей структуры (рис. 3).

Рис. 3 Нейронная сеть со слоем Кохонена

Таким образом происходит обработка поступающих данных, которая позволяет в конечном итоге получить алгебраическую систему вида (1). Рассмотрим коротко состояние самой нейронной сети да того, как она будет обучена.

В первоначальном состоянии наша нейронная сеть представляет систему соединённых и взаимодействующих между собой простых процессоров. На её вход поступает множество К, в базе данных хранится несколько записей вида (1) - это в простейшем случае, либо в более сложном представлении она будет комбинировать выходной сигнал вида (1) из нескольких баз данных (впервой базе находится множество структур, во-второй - множества различных мощностей, в-третьей - операции над структурами, в-четвёртой - операции над множествами).

Для накопления знаний нашей системы воспользуемся рядом обучающихся примеров, то есть строим такое отображение X , чтобы в ответ на каждый входной сигнал X формировался правильный выходной сигнал Y , т.е. формируем более полную базу знаний. При этом база данных, предположительно, пополняется за счёт поступления новых задач, которые не

похожи на предыдущие задачи, ранее использовавшиеся в качестве обучающих примеров.

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

Ошибка мала

Ошибка велика

Рис. 4 Обучение нейронной сети

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

После многократного предъявления примеров веса сети стабилизируются, причем сеть дает правильный ответы на все (или почти все) примеры из базы данных. В таком случае говорят, что «сеть обучена» или «сеть натренирована». В программной реализации можно видеть, что в процессе обучения функция ошибки постепенно уменьшается. Когда функция ошибки достигает нуля или приемлемого малого уровня, тренировку останавливают, а полученную сеть считают натренированной и готовой к применению на новых данных.

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

Математически процесс обучения можно описать следующим образом.

В процессе функционирования нейронная сеть формирует выходной сигнал Y в соответствии с входным сигналом X, реализуя некоторую функцию Y=G(X) Если архитектура сети задана, то вид функции G определяется значениям, синоптических весов и смещений сети.

Пусть решением некоторой задачи, является функция Y = F (X), заданная парами входных-выходных данных (X1 Д1), (X2 ^2)(Хп , для которых Yk = F (Хк) (к=1,2,...,п).

Обучение состоит в поиске (синтезе) функции G, близкой к F в смысле некоторой функции ошибки.

Если выбрать множество обучающих примеров - пар (Хк^к), где (к=1,2,...,п) и способ вычисления функции ошибки, то обучение нейронной сети превращается в задачу многомерной оптимизации, имеющую очень большую размерность, при этом, поскольку функция ошибки может иметь произвольный вид, обучение в общем смысле - многоэкстремальная невыпуклая задача оптимизации.

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

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

Предполагается, что такая система будет построена с использованием методов искусственного интеллекта, которые доступны в системе Microsoft Mashing Learning Azure. А именно, Mashing Learning дает возможность осуществить кластеризацию данных с использованием различных алгоритмов кластерного анализа, что необходимо при обработке семантики задачи.

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

Литература

1. Мунерман В.И., Симакова А. А. Преобразование семантики задачи в алгебру -2015.

2. Люгер Дж.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем, 4-е издание. : Пер. с англ. — М ,: Издательский дом "Вильямс", 2003.

3. Дьяконов В. П., Круглов В. В. Mathlab 6.5 SP1/7/7 SP1/7 SP2 +Simulink 5/6. Инструменты искусственного интеллекта и биоинформатики. - М. СОЛОН-ПРЕСС,2006.

4. Павлов С.Н. Системы искусственного интеллекта - Томск: Эль Контент, 2011.—Ч. 1.

5. Емельченков Е.П., Левин Н.А., Мунерман В.И. Математические модели для проектирования информационных систем.

6. Мальцев А. И. Алгебраические системы - М., «Наука» , 1970.

i Надоели баннеры? Вы всегда можете отключить рекламу.