Искусственный интеллект (ИИ) - сравнительно молодая отрасль информационных технологий. Ее понятийный аппарат еще не вполне сформировался. Не выпущено пока и общепризнанных стандартов для ИИ. Тем не менее, в этом направлении уже сложилось несколько устойчивых методик.
Экспертные системы
Создание экспертных систем, позволяющих на основании некоторой базы знаний делать экспертные оценки (прогнозы погоды, постановки диагнозов и т.п.) - одно из традиционных направлений развития ИИ.
Есть области знаний, разбираться в которых способны лишь хорошо подготовленные специалисты. Их услуги не только дорогостоящи, но и дефицитны, особенно в удалении от крупных городов. Например, нужно поставить диагноз заболевшему человеку, но врач, способный сделать это, занят с другим пациентом или находится в отъезде. В таких случаях компьютерные экспертные системы, созданные на основе опыта специалистов, могут оказаться весьма полезными.
От простого поиска по базе данных подход, используемый в экспертных системах, отличается тем, что в программу заложена возможность не только распознавания информации по заданным критериям, но и возможность ее интерпретации.
Экспертные системы, помимо базы знаний, должны обладать хорошо продуманной системой ввода информации (часто с применением специальных устройств), поскольку исходные данные должны быть занесены в память с максимальной точностью.
Создание базы знаний для экспертной системы также является трудоемким и сложным процессом:
- существенные усилия затрачиваются на получение знаний от экспертов и их корректную формализацию;
- некоторые знания, которые специалисты считают очевидными, не попадают в базу знаний, что может повлиять на качество системы.
Экспертные системы пока не могут полноценно заменить специалистов, но могут ускорить работу людей, помочь в выработке предварительных решений.
Нейронные сети и генетические алгоритмы
Рисунок 1. Схема нейронной сети. Автор24 — интернет-биржа студенческих работ
Многие повседневные действия (распознавание речи, образов, знаков) достаточно трудно реализовать в виде компьютерных алгоритмов. Нейронные сети - самообучающиеся компьютерные программы, способные решать задачи такого рода. Для их разработки используются приемы, сходные с теми, что применял академик Павлов при изучении условных рефлексов. Пропуская через слоистые структуры нейронных сетей множество однотипных данных (например, фотоизображений при распознавании лиц), программисты закрепляют результаты работы алгоритма, приближающиеся к требуемым выходным параметрам, и отсеивают итерации, в ходе которых результат ухудшился. Такой подход известен как машинное обучение.
Генетические алгоритмы - еще одна родственная нейронным сетям форма самообучающихся программ. Задача разбивается на наборы параметров, которые применяются к ситуации последовательно. На основе наиболее удачных результатов производятся дальнейшие вычисления, т.е. происходит нечто вроде эволюции, в ходе которой не способствующие решению задачи наборы параметров отсеиваются.
Рисунок 2. Схема генетического алгоритма. Автор24 — интернет-биржа студенческих работ
Фреймовые технологии
Слово фрейм (от англ. frame - "рамка") применительно к ИИ имеет особый смысл. Фреймовый подход позволяет делать выбор в ситуациях со множеством параметров, которые невозможно просчитать методом перебора всех вариантов, поскольку, это, во-первых, заняло бы слишком большое время, во-вторых потому, что часть параметров могут быть "нечеткими" (например, бытовое словосочетание "сильная простуда" не является корректным медицинским термином). Фреймовые алгоритмы пытаются из избыточной информации извлечь хорошо известные закономерности (паттерны) и на их основании, принимают решение о целесообразности дальнейших вычислений.
Фреймы представляют собой как бы ячейки таблицы, содержащие элементы описания окружающей среды. Из них можно строить логические цепочки, помогающие быстро найти возможные решения и выбрать из них оптимальное.
Семантические сети
Семантические сети, которые не следует путать с нейронными, - еще одна отрасль ИИ, зародившаяся на ранних этапах развития компьютерной техники. Одной из первых реализаций этой концепции можно считать язык программирования Prolog, появившийся еще в 1972 г.
В семантических сетях используются давно и хорошо изученные правила формальной логики. Между описываемыми понятиями, занесенными в базу знаний, устанавливаются отношения, например, "часть - целое", "предок - потомок" и т.п. Такие описания предметной области называются метаданными.
Рисунок 3. Семантическая сеть. Автор24 — интернет-биржа студенческих работ
На основе метаданных с систему добавляется информация о конкретных объектах, подпадающих под данную схему. Например:
- сила тока — параметр электрической сети;
- перегрузка электросети — аварийная ситуация;
- 20 ампер — признак перегрузки.
Если установить между этими данными связи (сила тока превышает 20 ампер, следовательно, наступила аварийная ситуация), то можно применять полученную цепочку для предотвращения аварий, измеряя силу тока, протекающего через различные устройства. Конечно, для реализации такого простого алгоритма не нужен искусственный интеллект, его можно написать на любом универсальном языке программирования, но в семантических сетях взаимоотношения между объектами исчисляются тысячами и миллионами. Обрабатывать такие объемы информации на обычном языке программирования было бы слишком затратно, тем более, что семантические сети можно перенастраивать с одной предметной области на другую, т.е. многократно использовать для решения задач из различных предметных областей.