Експертна система

от Уикипедия, свободната енциклопедия
Базова архитектура на експертна система.

Експертна система представлява един от класовете системи с изкуствен интелект, които могат да получават, натрупват и коригират знания от определена предметна област, да осъществяват извод на нови знания, да решават различни практически задачи на базата на натрупаните знания и да обясняват получените резултати и пътя на решението.[1]

В изкуствения интелект, експертна система наричаме компютърна система, която наподобява способността за вземане на решения от човек, експерт в дадена област. Експертните системи са предназначени за решаване на сложни проблеми, като правят изводи въз основа на зададена база знания, а не следвайки последователност от процедури написани от програмист, какъвто е случаят в конвенционалното програмиране. Първите експертни системи са били създадени през 70-те и след това се разпространили през 80-те години на двадесети век. Експертните системи са сред първите наистина успешни форми на софтуер, разработен на базата на изкуствения интелект.

Експертната система притежава уникална структура, различна от традиционното компютърно програмиране. Тя е разделена на две части, една фиксирана, независима от експертната система: интерпретатор (логическо устройство), и една променлива: базата от знания. За да се пусне в експлоатация експертна система, интерпретаторът разчита на началната база от знания, заложени от експерта. През 80-те години се появява трета променлива: диалогов интерфейс за комуникация с потребителите. Тази способност да се води разговор с потребителите е наречена по-късно „диалогичност“.

История[редактиране | редактиране на кода]

Експертните системи са въведени от изследователи, работили по Станфордския Евристичен Проект, като сред тях са Брус Бюкенън (създател на системите Dendral и Mycin), Едуард Шортлиф, Рендъл Дейвис и др. Експертните системи са сред първите успешни форми на софтуер от класа на изкуствения интелект.

Експертните системи са били разработвани активно и във Франция, където изследователите са били фокусирани върху машини, използващи логика и логически аргументи. Френският език за програмиране Пролог, разработен през 1972 г., бележи съществен напредък след експертните системи Dendral и Mycin – бил е разработен като ядро, на което да може да бъдат стартирани различни експертни системи. Пролог има вграден интерпретатор с прав извод с правила и следствия, бил е разработен като средство за серийно създаване на експертни системи и е бил първият декларативен език за програмиране, а впоследствие става най-продаваната система за изкуствен интелект в света.

През 80-те години експертните системи се разпространяват масово, тъй като била осъзната възможността им да бъдат използвани като инструменти за решаване на реални, практически проблеми. Университетите започват да предлагат обучения по експертни системи, а над две трети от компаниите от Fortune 1000 започват да прилагат технологията в ежедневните бизнес процеси.

Софтуерна архитектура[редактиране | редактиране на кода]

В технологията на експерните системи, базата от познания се описва чрез правила от типа IF… THEN… на формалния език.

Всяко правило от този тип съдържа IF-част (условие, ако), последвана от THEN-част (следствие от условието, тогава). По този начин правилата логически свързват набраната база от познания по проблема със стъпките, който могат да бъдат направени за неговото решаване. Например:

  • „Ако нещо е жив организъм, тогава то е смъртно“
  • „Ако се знае за някой на колко години е, тогава годината му на раждане е равна на годината сега минус възрастта му“.

Подобна формулировка като горната е удобна за използване в ежедневния език, но е неприложима в компютърните науки, затова се използват конкретни конструкции на правилата с определен дизайн, който трябва да съответства на дизайна на самото логическо устройство.

Интерпретатор (Логическо устройство)[редактиране | редактиране на кода]

Интерпретаторът, или логическото устройство, представлява компютърна програма, която извлича изводи и взема решения на база зададените правила. Тези изводи се основават на логиката, като има различни видове логика – логика на съждението, модална логика, вероятностна логика и др. Логиката на съждението е естествената човешка логика, която се структурира в т.нар. силогизми (умозаключения). Експертните системи, които се основават на логиката на съждението, се наричат нулево-базирани експертни системи. Чрез логика, интерпретаторът използва вече събраната информация, за да генерира изцяло нова, логически обоснована информация.

Интерпретаторът работи по два начина: или на серии, или диалогично (последователно). В първия случай експертната система разполага още от самото начало с цялата необходима база данни. От гледна точка на потребителя, тези експертни системи работят като класически програмен код: потребителят въвежда входните данни и получава резултата на момента. Логическите действия остават скрити от потребителя в самата програма. Диалогичните интерпретатори се използват тогава, когато не е възможно да се зададат предварително всички входни данни, поради сложността на решавания проблем. В тези случаи софтуерът трябва сам да „открие“ последователността от стъпки за решаване на проблема, като последователно изисква необходимата му входна информация от потребителя и достига до решение по възможно най-оптимален път. По този начин работата на диалогичния интерпретатор наподобява диалог между експертната система и потребителя. В зависимост от конкретната имплементация, диалогичните интерпретатори използват три типа алгоритми за действие – прав извод, обратен извод или смесен извод.

При експертните системи с прав извод, интерпретаторът първо търси правило, чието условие се удовлетворява от наличните данни в контекста, т.е. търси правило, условията на което са съпоставими със съдържанието на контекста. Ако съществува повече от едно такова правило, се използват различни методи за избор на правило, например – първо срещнато или неприлагано до момента, или с най-скоро записани данни и т.н. След като намери подходящо правило, интерпретаторът изпълнява следствието от условието на това правило (дясната част на правилото). С изпълнението на дясната част на правилото най-често се коригира контекста, което отваря възможност за използването на други правила от интерпретатора. След тази стъпка, ако не е достигната съответната цел, отново се преминава към търсене на ново правило според настоящия контекст.

При експертните системи с обратен извод, търсенето се извършва върху следствията (дясната част) от правилата, а за образец за търсене служи зададената крайна цел. След това се анализира условието на намереното правило, а неизвестните все още параметри се задават като нови цели, върху които алгоритъмът на тъсене се повтаря. Процесът продължава, докато целите се удовлетворяват от контекста. При необходимост се извършва връщане назад, за да се изследват неизследваните възможности.

Приложно поле[редактиране | редактиране на кода]

Експертните системи са приложими в области, в които се налага използването на сложна комбинаторика:

  • високо интерактивни приложения и приложения за разговор, IVR, чат ботове
  • диагностика на грешки и медицинско диагностициране
  • подпомагане вземането на решения в сложни системи, контрол на процесите, интерактивни потребителски упътвания
  • образователен софтуер
  • симулиране на логика при машини и системи
  • управление на знанието
  • постоянно променящ се софтуер.

Приложение[редактиране | редактиране на кода]

Експертните системи са проектирани, за да улеснят задачи в сферите на счетоводството, правото, медицината, контролирането на процеси, финансовите услуги, производството, наемането на персонал и ред други. Обичайно, проблемът, който се решава е достатъчно сложен, така че по-прост традиционен алгоритъм не може да даде задоволително решение. Основата на успешна експертна система зависи от редица технически процедури и подобрения, които могат да бъдат проектирани от професионалисти и експерти в областта. Поради това експертните системи обикновено не извеждат окончателен отговор, а ни дават вероятностна препоръка.

Пример за прилагането на експертна система в сферата на финансите е експертна система за ипотека. Кредитните отдели се интересуват от експертните системи за ипотека, поради растящата цена на труда, което прави управлението и приемането на относително малки заеми, по-малко печелившо. Те също виждат възможност за стандартизирано и ефективно разглеждане на ипотечен заем чрез прилагането експертни системи, оценявайки това, че за приемането на ипотеките има строги и бързи правила, които не винаги се прилагат при друг вид заеми. Друго често срещано приложение на експертни системи в сферата на финансите е при даване на търговски препоръки на различни пазари. Тези пазари се влияят от многобройни променливи и човешки емоции, което ги прави близки до невъзможни за предсказване, затова в този вид експертни системи се използват практически правила, изведени от експерти и тестови данни. Експертните системи от този вид могат да варират от тези предоставящи регионални препоръки за търговия на дребно, подобно на Wishabi, до тези използвани за подпомагане на паричните решения на финансови институции и дори правителства.

През 70-те и 80-те години е намерено приложение на експертните системи в компютърните игри, което днес бихме нарекли изкуствен интелект. Например, компютърни бейзбол симулации като Earl Weaver Baseball и Tony La Russa Baseball, всяка от които има много детайлна симулация на игровата стратегия на едноименния бейзболен мениджър. Когато човек играел срещу компютъра, компютърът правил запитване до експертните системи на Earl Weaver или Tony La Russa за това каква стратегия да приложи. Дори тези решения, които имат доза произволност поради естеството на играта (като кога да хвърли изненадваща топка или кога да изиграе бегач, който се опитва да открадне база) били взимани въз основа на вероятности предоставени от Weaver или La Russa. Днес бихме казали – „Изкуственият интелект на играта предоставя противниковата стратегия“.

Друго приложение на експертните системи е автоматизираното генериране на компютърни програми. Вече е официално представена на пазара спонсорираната от фонда на военновъздушните сили на САЩ експертна система (hprcARCHITECT), която генерира компютърни програми за системи базирани на различни процесорни технологии (FPGA/GPU/Multicore) без нуждата от обучен персонал.

Има също голям обем от съвременни изследвания и разработки насочени към използване на експертни системи за моделиране на човешкото поведение и системи за подпомагане вземането на решения. Това е особено важно в сферите на междукултурните отношения и подобряването на операциите по управление в малкия бизнес.

В областта на здравеопазването и медицината, простите (не сложни) експертни системи съществуват както в големи, така и в малки здравни институции (болници и общопрактикуващи лекари). Например в медицинския си кабинет, по време на посещение от пациент, личния лекар може да предпише лекарство на пациента, използвайки интегрираната система за наблюдение на пациентита (например Zedmed Clinical). Системата проверява лекарството предписано на пациента и всякакъв друг вид данни за пациента и ги използва като вход, който се обработва въз основа на базата от знания на системата и произвежда резултат. Ако предписаното лекарство има някакви странични ефекти за пациента, това ще бъде отбелязано и лекарят ще бъде сигнализиран. Системата също може да предостави списък с всички алтернативни лекартва достъпни за пациента, помагайки на лекаря да вземе решение за евентуален план на лечение, ако е възможно.

Бележки[редактиране | редактиране на кода]

  1. В. Йоцов. Сигурност и защита на информацията, София, „ЗА БУКВИТЕ – О ПИСМЕНЕХЬ“ 2006, с.34
  Тази страница частично или изцяло представлява превод на страницата Expert System в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​