Общая архитектура и принципы построения системы поддержки принятия решений (гостевой пост Романа Душкина)
29 сентября 2014
Предлагаю вашему вниманию гостевой пост, любезно предоставленный Романом Душкиным. Изначально этот пост был опубликован на ХабраХабре, но тамошние модераторы сочли его наглой рекламой кампании на BoomStarter, несмотря на то, что в посте не было ни слова о деньгах или необходимости поддерживать кампанию. В результате автор был забанен, а пост удален. Вот так просто, без суда и следствия.
Лично я считаю это просто верхом наглости со стороны модераторов Хабра. Дескать, пишите нам уникальные качественные статьи и ни смейте даже думать о том, чтобы получить хоть что-то взамен, даже если это просто одна внешняя ссылка. Так или иначе, у меня здесь, конечно, не Хабр, но аудитория не такая уж и маленькая, в связи с чем Роман предложил опубликовать статью в этом блоге, а я не особо возражал. Надеюсь, вы найдете этот пост интересным. Также я уверен, что Роман с радостью ответит на возникшие у вас вопросы в комментариях.
Сегодня я хотел бы рассказать немного о так называемых системах поддержки принятия решений (СППР), поскольку тема эта становится очень востребованной, а специалистов в этой области наши институты и университеты не готовят. Так что приходится нашим людям уже после студенческой скамьи наполнять себя знаниями, черпая их из разнообразных и порой разрозненных и противоречащих друг другу источников. Ну и я тоже включусь в процесс создания таких источников, поскольку мне точно есть, что сказать на эту тему — в течение своей рабочей деятельности я успел поучаствовать в развёртывании нескольких СППР (в частности, если кто пропустил, может ознакомиться с краткой заметкой относительно одной из них здесь).
Так что если кто интересуется темой и хотел бы ознакомиться с моими мыслями относительно общей архитектуры и принципов построения СППР, то добро пожаловать под кат.
Немного определений
Прежде чем перейти к рассмотрению основной темы, предлагаю закрепить пару понятий. Что такое СППР? СППР — это информационно-аналитическая система, решающая задачи по информационному и интеллектуальному обеспечению лица, принимающего решения (ЛПР). Сегодня СППР используют всю мощь информационно-коммуникационных технологий для того, чтобы обработать огромные массивы информации и дать ЛПР самую выжимку из того, что ему пришлось бы «перелопатить» самостоятельно. Более того, СППР в обязательном порядке имеет функцию по объяснению того, как были получены предлагаемые ею результаты.
В отдельные десятилетия прошлого века на пике популярности в области искусственного интеллекта находились так называемые экспертные системы (ЭС). Так вот надо чётко понимать, что сегодня СППР — это уже далеко не ЭС в том понимании, которое было раньше. СППР может включать в себя как полноценные ЭС, так и их элементы. Однако сама по себе СППР — это система несколько иного класса и уровня. Можно отметить, что СППР неотделима от ЛПР, а потому результаты её работы (рекомендации) всегда валидируются и используются человеком (в конце цепочки передачи информации).
Я не зря в определении выделил слово «система». В подобных определениях всегда надо помнить, что система — это не только программное обеспечение. В состав СППР в обязательном порядке входит информационное обеспечение, то есть вся та база знаний, на основании информации из которой СППР формирует свои рекомендации для ЛПР. Кроме того, без методического и организационного видов обеспечения СППР тоже будет куцей, поскольку персонал, работающий в рамках этой системы, должен быть обучен именно новым задачам, которые позволяют решать информационные технологии. Ведь давно известно, что автоматизация должна проводиться в условиях, когда автоматизируются не устоявшиеся (закостеневшие) процессы, а именно должен осуществляться реинжиниринг процессов с учётом того, что они теперь будут исполняться в автоматизированном режиме. Ну и про другие виды обеспечения нельзя забывать.
Ну и чтобы дополнительно понять сущность СППР, надо отметить тот простой факт, что, к примеру, у врачей давно есть свои собственные СППР — это банальные книжные шкафы со справочниками и авторитетными источниками. Только всю рутинную работу по поиску информации, сопоставлению фактов и хранению в памяти многочисленных сведений выполняет сам врач.
Функциональность СППР и общая архитектура
Основная функциональность СППР следует из её определения. Главной функцией является вывод рекомендаций на основании изучения исторического и текущего состояния объекта исследования и сравнения их с информацией, хранящейся в базе знаний системы. Однако это ещё не всё.
Необходимо всегда помнить, что знания в какой-либо проблемной области всегда являются динамичными. Что-то устаревает, какие-то гипотезы опровергаются, подтверждаются новые теории, исследователи находят новые закономерности и факты. Всё это должно постепенно вноситься в базу знаний СППР, чтобы она была актуальной. Без этого система закостенеет и перестанет отвечать вызовам изменяющейся среды. Ну как это обычно бывает. Другими словами, система должна предоставлять функцию по актуализации знаний.
В процессе актуализации знаний участвуют два человека с ролями «Эксперт» и «Инженер по знаниям» (когнитолог). Первый предоставляет знания зачастую в неструктурированном виде, а второй переносит их в базу знаний СППР в формализованном и полностью структурированном виде и в формате, который используется в самой системе. После этого эксперт верифицирует знания уже в базе знаний, тем самым своим авторитетом подтверждает то, что система может использоваться для поддержки принятия решений, и выдаваемые ею рекомендации основаны на правильных методах вывода и корректных знаниях.
Наконец, поскольку системой будут пользоваться специалисты разных уровней мастерства, то сама система должна иметь механизм объяснения тех рекомендаций, которые она выдаёт. Это очень важная функция в том числе и для процесса верификации знаний.
Таким образом, перечень основных функций СППР выглядит следующим образом:
- Извлечение знаний;
- Верификация знаний;
- Вывод рекомендаций;
- Объяснение рекомендаций.
Всё это позволяет нарисовать самую обобщённую функциональную архитектуру СППР в следующем виде:
Принципы и методы построения
Таким образом, СППР представляет собой систему, при построении которой задействованы специалисты разных направлений деятельности. Кроме традиционных разработчиков, системных архитекторов, аналитиков, тестировщиков и прочая, в этом деле требуются две новые роли: когнитолог и экперт. Сам по себе эксперт ничего сделать не сможет, поскольку зачастую, обладая серьёзными познаниями в рамках проблемной области, такие люди плохо понимают суть информационно-коммуникационных технологий. Поэтому между экспертом и системой обычно (в подавляющем большинстве случаев) стоит инженер по знаниям.
Когнитолог — это примерно то же самое, что и системный аналитик, однако он больше заточен на работу со знаниями, обладает полным пониманием того, как знания извлекать, представлять, преобразовывать друг в друга, использовать в процессе вывода. Именно когнитолог строит нормированную базу знаний, в которой знания обладают минимальным набором так называемых НЕ-факторов. Когнитолог в дальнейшем следит и за тем, чтобы знания в базе знаний системы были верифицированы и актуальны.
В целом есть два метода построения СППР (как раньше было и с ЭС). Во-первых, можно взять и с нуля построить систему, жёстко закодировав в ней все извлечённые на этапе анализа знания. Умудрённый опытом специалист тут же воскликнет, что ригидность такой системы зашкалит, и её сложно будет поддерживать с точки зрения актуализации знаний. Тогда на сцену выходит другой способ — создание фреймворка, в рамках которого строится система и наполняется знаниями. Это примерно так же, как и подход MVC в разработке программного обеспечения. Прямые и обеспечивающие функции системы отдельно, знания и данные для манипуляции отдельно, ну и методы представления и визуализации информации для пользователя отдельно.
Теперь немного о тех методах, которые обычно используются в системах класса СППР. Вот неполный список наиболее важных методов и технологий:
- Прямой и обратный индуктивный и дедуктивный вывод;
- Вывод по аналогии (абдуктивный вывод);
- Нечёткий вывод, работа с неопределёнными и интервальными значениями;
- Машинное обучение;
- Поиск закономерностей в больших массивах данных;
- Обработка естественного языка.
Заключение
Как обычно, с удовольствием отвечу на возникающие у вас вопросы. Пишите их в комментариях к этой статье (если они общего плана), либо личным сообщением.
Если вам интересна эта тема, то отметьтесь в комментариях, чтобы я знал и продолжил написание статей по СППР. Потому как даже если у многих интерес имеется, но они молчат и не высказывают его, я начинаю считать, что тема интересна только мне и перестаю тратить на её развитие время. Так что если интересно — пишите вопросы и комментарии.
Ну и, наконец, при пущей заинтересованности рекомендую обратить внимание на мой новый проект Разработка СППР по диагностике и лечению судорожного синдрома.
Дополнение: СППР ДЛСС — постановка, предназначение, задачи и методы (гостевой пост Романа Душкина)
Метки: Искусственный интеллект, Разработка.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.