Главная arrow Логика arrow Распознавание образов
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Распознавание образов Печать

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

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

В классической постановке задачи распознавания (странно называть классической науку, которой от силы несколько десятилетий:) универсальное множество разбивается на части-образы. Образ какого-либо объекта задается набором его частных проявлений. В случае с распознаванием текста в универсальное множество войдут все возможные знаки, в образ "Ы" - все возможные начертания этой буквы, а программа распознавания занимается тем, что на основе небольшого набора примеров начертаний каждой буквы (обучающей выборки) определяет, какую из них символизирует введенная закорючка.

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

Хорошо показывает принцип работы распознавания образов элементарный алгоритм на основе метода множества эталонов. На входе его имеется обучающая выборка - набор примеров A'ij для каждого образа Ai, метрика d и сам распознаваемый объект x. С помощью метрики вычисляем расстояние от x до каждого элемента обучающей выборки d(x, aij) и находим условное расстояние d(x, Ai) как расстояние от x до ближайшего элемента из Ai. Элемент x относится к образу, который окажется ближе всех.

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

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

В обоих алгоритмах может возникнуть неопределенная ситуация - когда x будет находиться на одинаковом расстоянии от нескольких образов. В таком случае программа должна либо спросить у пользователя, к какому образу относить элемент, либо тихо бросить жребий. Это зависит от требований к точности с одной стороны, и удобству использования с другой, лучше всего реализовать оба варианта.

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