Прежде чем перейти к обзору и классификации лингвистических программ, необходимо остановиться на определении и описании интеллектуальных информационных систем. Это связано с тем, что большой класс лингвистических программ построен по принципу функционирования этих систем. Кроме того, во многих лингвистических программах используются те или иные технологии искусственного интеллекта.
Искусственный интеллект
(Artificial Intelligence)
■.■,■■■.. ■ i. ■
Исследования по искусственному интеллекту уходят корнями в далекое прошлое. Природу знаний и природу размышлений изучали Аристотель, Платон и Сократ, но собственная история искусственного интеллекта как науки началась уже в наше время.
Термин «искусственный интеллект» впервые ввел Джон Маккарти, профессор Стэнфордского университета, автор многих ярких работ. Искусственный интеллект (AI) представляет собой набор техник программирования, заставляющих компьютер действовать подобно человеку. Идея искусственного интеллекта имеет приблизительно 35-летний возраст, но только недавно появились достаточно мощные компьютеры, чтобы делать коммерчески привлекательными AI-приложения. AI-исследования развились в пять отдельных, но связанных областей:
— естественные языки;
— робототехника;
— системы ощущения (системы зрения и слуха);
— экспертные системы;
— нейронные сети.
Чтобы работать с естественными языками, необходимо создание систем, которые переводят обычные человеческие инструкции в язык, который компьютеры могут понимать и выполнять. Робототехника в большей степени относится к промышленности. Исследование систем ощущения направлено на создание машин, обладающих визуальными и слуховыми способностями, которые воздействуют на их физическое поведение. Другими словами, это исследование нацелено на создание роботов, которые могут видеть или слышать и реагировать соответственно тому, что они видят или слышат.
Экспертные системы — это системы, которые используют логику принятия решения человека-эксперта. Самая новая отрасль AI — нейронные сети, которые устроены по аналогии с тем, как работает человеческая нервная система, но фактически используют статистический анализ, чтобы распознать модели из большого количества информации посредством адаптивного изучения.
■
Нейронные сети
В то время как экспертные системы пробуют ввести опыт людей в компьютерную программу, нейронные сети пытаются создать значимые модели из большого количества данных. Нейронные сети могут распознавать модели, недостаточно ясные для людей, и адаптировать их при получении новой информации.
Ключевая характеристика нейронных сетей состоит в том, что они обучаются. Программой нейронных сетей сначала дается набор данных, состоящих из многих переменных, связанных с большим количеством случаев, или исходов, в которых ре-
зультаты известны. Программа анализирует данные и обрабатывает все корреляции, а затем выбирает набор переменных, которые строго соотнесены с частными известными результатами как начальная модель. Эта начальная модель используется, чтобы попробовать предсказать результаты различных случаев, а предсказанные результаты сравниваются с известными результатами. Базируясь на этом сравнении, программа изменяет модель, регулируя параметры переменных или даже заменяя их. Этот процесс программа нейронных сетей повторяет много раз, стремясь улучшить прогнозирующую способность при наладке модели. Когда в этом итерационном подходе дальнейшее усовершенствование исчерпывается, программа готова делать предсказания для будущих случаев.
Как только станет доступным новое большое количество случаев, эти случаи также вводятся в нейронную сеть, и модель еще раз корректируется. Нейронная сеть обучается в основном относительно причинно-следственных моделей из этих дополнительных данных, и ее прогнозирующая способность, соответственно, улучшается.
Коммерческие программы нейронных сетей доступны за приемлемую цену, но наиболее трудная часть создания и применения нейронных сетей — частый сбор данных и обеспечение данных. При этом возрастает число развертывающихся приложений. Bank of America применяет нейронную сеть для оценки коммерческих заявок на получение ссуды. American Express использует нейронную систему, чтобы читать почерк на кредитной карте; штат Вайоминг — чтобы читать заполненные от руки налоговые формы. Oil giant Arco с ее помощью пытается обнаружить места газовых и нефтяных месторождений под поверхностью земли. Mellon Bank работает над нейронной системой, которая ускорит распознавание мошеннических подделок кредитных карточек, контролируя такие показатели, как частота использования кредитной карточки и размеры расходов относительно предельного размера кредита. Журнал Spiegel, который создает каталоги для продажи по почте, использует нейронную сеть как способ сокращения списка рассылки, чтобы устранить тех, кто маловероятно закажет журнал снова.
Экспертные системы
Проектирование экспертных систем имеет определенные отличия от создания традиционного программного продукта. Суть этого отличия в том, что разработчики не пытаются сразу построить конечный продукт, а создают прототип экспертной системы. Прототип должен удовлетворять основным требованиям, предъявляемым к системе, в частности, процесс его создания должен быть минимально трудоемким. Для удовлетворения этих требований используются разнообразные инструментальные средства (специализированные языки искусственного интеллекта, оболочки экспертных систем и др.), ускоряющие процесс разработки. Вероятно, может потребоваться создание не одного, а нескольких прототипов, базирующихся на различных способах представления знаний, с последующим выбором наиболее удачного. В том случае, когда достигнута удовлетворительная работа прототипа по всему комплексу задач, возможно принятие решения об окончательном перепрограммировании всей системы на языках низкого уровня с целью улучшения ее характеристик: увеличения быстродействия, уменьшения занимаемой памяти, повышения эргономических параметров интерфейса.
Опыт разработки экспертных систем позволяет выделить следующие этапы при их создании:
• идентификация — определение проблемы, ресурсов, целей,
экспертов; неформальное (вербальное) описание проблемы;
• формализация — выражение введенных понятий на некото
ром формальном языке, построение модели исследуемой
области;
• этап выполнения — создание одного или нескольких прото
типов;
• этап тестирования — оценка выбранного метода представ
ления знаний и работоспособности всей системы в целом на
основе проверки прототипа;
• этап опытной эксплуатации — проверка пригодности систе
мы для конечного пользователя;
• модификация системы — полное перепрограммирование или
доведение прототипа до состояния программного продукта.
■
Известны три основные разновидности исполнения экспертных систем.
1. Экспертные системы, выполненные в виде отдельных
программ на некотором алгоритмическом языке, база
знаний которых является непосредственно частью этой
программы. Как правило, такие системы предназначены
для решения задач в одной фиксированной предметной
области.
2. Оболочки экспертных систем — программный продукт,
обладающий средствами представления знаний для оп
ределенных предметных областей. Задача пользователя
заключается не в непосредственном программировании,
а в формализации и вводе знаний с использованием пре
доставленных оболочкой возможностей. Недостатком
этих систем можно считать невозможность охвата одной
системой всех существующих предметных областей.
3. Генераторы экспертных систем — мощные программные
продукты, предназначенные для получения оболочек,
ориентированных на то или иное представление знаний
в зависимости от рассматриваемой предметной области.
Для построения и проектирования экспертных систем необходимо:
а) определение организационных и математических основ
экспертных систем;
б) определение исходных понятий и логических основ, эта
пов создания и средств обработки базы знаний;
в) рассмотрение этапов создания экспертной системы, про
ектирование автоматизированных информационных си
стем и проектирование баз данных, а также проектирова-
ние и создание интерфейса пользователя, ориентированного на мировые стандарты.
Потребность отражения человеческих знаний в памяти компьютера породила, а затем и стимулировала быстрое развитие нового направления в информатике — инженерии знаний. Предметом этого направления служит соотношение человеческих знаний и его формализованного информационного отображения на ЭВМ. Адекватное отображение знаний специалистов является центральной проблемой создания информационных систем вообще и экспертных систем в частности.
Под базой знаний понимается отражение знаний эксперта о предметной области, способы анализа поступающих фактов и методы вывода, т.е. порождение новых знаний на основании имеющихся и вновь поступивших. Наиболее определенными и широко используемыми в современных информационных системах являются следующие виды знаний:
— глубинные и поверхностные;
— качественные и количественные;
— приближенные (неопределенные) и точные (определенные);
— конкретные и общие;
— описательные и предписывающие.
При построении экспертной системы с особой остротой встал вопрос о том, какие знания должны быть в них представлены и в какой форме. Структура знаний зависит от сферы их использования и может носить довольно сложный характер. Эта структура включает в себя:
а) различные факты из предметной области;
б) взаимосвязи между ними;
в) правила действий.
Знание, полученное инженером знания, затем загружается в компьютерную систему в специализированном формате — в блоке, названном базой знаний. Эта база знаний содержит пра-
3 Заказ 105
вила и заключения, которые используются при принятии решений, а также параметры, или факты, необходимые для решения.
Экспертные системы относят к числу интеллектуальных вычислительных систем. Они предназначены для моделирования или имитации опытных специальных экспертов при решении задач по какому-либо узкому вопросу. Экспертные системы призваны оказывать помощь специалистам, когда их собственных знаний, опыта и интуиции не хватает для самостоятельного решения возникающих проблем. Такие системы представляют собой машинные программы, решающие задачи примерно так же, как решает их эксперт в реальной обстановке. Это позволяет накапливать, систематизировать и сохранять знания и профессиональный опыт тех экспертов, которые выполняют конкретные задачи наилучшим образом.
Стандартная архитектура экспертной системы представлена на рис. 2.
Рис. 2. Архитектура экспертной системы
Характеристики экспертных систем:
1) способность рассуждать при неполных и противоречи
вых данных;
2) способность объяснять цепочку рассуждений понятным
для пользователя способом;
3) конструкция системы должна обеспечивать возможность
эволюционного наращивания базы знаний;
4) на выходе экспертная система должна выдавать совет —
не таблицу цифр или красивые картинки, а четкий совет;
5) система должна быть экономически выгодна.
Не останавливаясь на подробном перечне многочисленных областей применения, отметим лишь некоторые сферы, в которых экспертные системы были успешно опробованы: химия, сельское хозяйство, электроника, образование, финансы, геология, медицина, военное дело, программное обеспечение и многие другие. Ныне эти системы активно используются в разнообразных процессах компьютерной обработки лингвистических данных.
Из перечня основных типов решаемых ими задач можно выделить интерпретацию, прогноз, диагностику, проектирование, планирование, управление, наблюдение, отладку, ремонт, обучение.
В качестве критериев, по которым можно судить о возможности создания экспертной системы, следует отметить следующие:
• необходимость символьных рассуждений; очевидно, нет смыс
ла разрабатывать экспертную систему для численных расче
тов, например, для преобразований Фурье, интегрирования,
решения систем алгебраических уравнений и др.;
• наличие экспертов, компетентных в избранном круге вопро
сов, которые согласны сотрудничать при создании ЭС;
• важность и актуальность поставленной проблемы. Это могут
быть проблемы, требующие высокого уровня экспертизы,
либо простые, но трудоемкие, многократно повторяющиеся
проверки. Нет смысла тратить время на решение проблем,
которые возникают редко и могут быть разрешены челове
ком с обычной квалификацией;
• четкое ограничение круга решаемых задач, т.е. выбор доста
точно «узкой» предметной области, чтобы избежать «комби
наторного взрыва» объема информации, необходимой для
компетентного решения поставленной задачи;
• наличие согласованных мнений экспертов о том, как следует
решать поставленные задачи, какие факты необходимо ис
пользовать и каковы общие правила вынесения суждений.
В противном случае невозможно расширить базу знаний за пределы опыта одного человека и осуществить сплав экспертных знаний из нескольких областей;
• достаточность исходных данных для проверки работоспособ
ности экспертной системы в выбранной предметной облас
ти, чтобы разработчики смогли убедиться в достижимости
некоторого заданного уровня ее функционирования;
• обеспечение возможности постепенного наращивания систе
мы. База знаний должна легко расширяться и корректиро
ваться, так как правила часто меняются с появлением новых
фактов.
Ценность использования ЭС проявляется, как правило, в следующих аспектах:
— в сборе, оперативном уточнении, кодировании и распрост
ранении экспертных знаний;
— в эффективном решении проблем, сложность которых пре
вышает человеческие возможности и для которых требуются
экспертные знания нескольких областей;
— в сохранении наиболее уязвимой ценности коллектива — кол
лективной памяти.
Создание баз знаний открывает широкие возможности, которые обусловлены безошибочностью и тщательностью, присущими ЭВМ, и синтезом знаний экспертов. Если база знаний объединяет информацию по нескольким дисциплинам, то такой сплав знаний приобретает дополнительную ценность.
■
- |