Описание объектов и понятий с использованием атрибутов
В этом разделе рассматривается способ обучения, при котором примеры и гипотезы определяются в терминах множеств атрибутов. В принципе атрибуты могут относиться к различным типам, в зависимости от их возможных значений. Поэтому любой атрибут может быть числовым или нечисловым. Кроме того, если атрибут является нечисловым, то множество его значений рассматривается как упорядоченное или неупорядоченное. Ограничимся нечисловыми атрибутами с неупорядоченными множествами значений. Такое множество обычно невелико и содержит лишь несколько значений.
Для описания любого объекта достаточно указать конкретные значения атрибутов этого объекта. Таким образом, подобное описание представляет собой вектор значений атрибутов.
На рис. 18.8 показаны некоторые объекты, применяемые в качестве иллюстрации в данном разделе. Эти объекты относятся к пяти классам: гайка, винт, ключ, карандаш, ножницы. Предположим, что эти объекты предъявляются системе машинного зрения. Их силуэты фиксируются видеокамерой, а затем обрабатываются программой визуального распознавания объектов. После получения данных эта программа определяет значения некоторых атрибутов каждого объекта по изображению, полученному видеокамерой. В данном случае рассматриваются такие атрибуты, как размер, форма и количество отверстий в объекте. Предположим, что возможные значения этих атрибутов таковы:
size: small, large % размер: малый, большой
shape: long, compact, other % форма: продолговатая, компактная, другая
holes: none, I,2, 3, many % количество отверстий: ни одного, 1, 2, 3, много
Глава 18.Машинное обучение 419
ч
о
? |
/У>€
Рис. 18.8. Изображения некоторых объектов, получтнысс помощью видеокамеры
Допустим, что система машинного зрения определила значения трех атрибутов для каждого объекта. В листинге 18.1 приведены определения атрибутов, а показанные здесь примеры представлены как множество предложений Prolog в следующей форме:
example [ Class, [ ftttributel = Vail, Attribute 2 - Vai2, ,,,]).
Листинг 18,1. Определения атрибутов и примеры для обучения распознаванию объектов по их силуэтам (показанным на рис. 18.8)
attribute! size, [ small, large]). attribute! shape, [ long, compact, other]). attribute! holes, [ none, 1, 2, 3, many]).
example[
example
example
example
example
example
example
example
example
example
example
example
nut, [ size = small, shape = compact, holes =1] ) . screw, [ size - small, shape = long, holes = none]). key, [ size - small, shape = long, holes = 1]). nut, [ size = small, shape - compact, holes = 1]). key, [ size - large, shape = long, holes =1] ) . screw, [ size - small, shape = compact, holes = none]) nut, [ size = small, shape - compact, holes - 1]). pen, [ size = large, shape = long, holes = none]). scissors, [ size = large, shape = long, holes =2] ) . pen, ; size = large, shape = long, holes = none]) , scissors, [ size = large, shape = other, holes -2] ) . key, : size = small, shape = other, holes =2) ) .
Теперь предположим, что эти примеры переданы в обучающуюся программу, которая должна научиться распознавать предметы этих пяти классов. Результатом обу-
Часть II- Применение языка Prolog в области искусственного интеллекта
чения должно быть описание классов в форме правил, которые могут использоваться для классификации новых объектов. В качестве примеров формата этих правил ниже приведены возможные правила для классов nut (гайка) и key (ключ).
nut <= = [[ size = small, holes = 1]]
key <== [[ shape = long, holes = 1], [ shape = other, holes = 2] ]
Эти правила можно описать словами, как показано ниже.
Объект является гайкой, если он имеет малые размеры и
одно отверстие.
Объект является ключом, если
он имеет продолговатую форму и одно отверстие
ИЛИ
он имеет другую форму и два отверстия.
Правила имеют такую общую форму:
Class <= = [ Conjl, Conj2, ... ]
Здесь Conjl, Conj2 и т.д. представляют собой списки значений атрибутов в такой форме:
[ Attl =Vall, Att2 = Val2, ... ]
Описание класса [ Conjl, Conj2___ ] интерпретируется следующим образом.
1. Объект соответствует описанию, если он согласуется, по меньшей мере, с одним из списков значений атрибутов Conjl, Conj2 и т.д.
2. Объект согласуется со списком значений атрибутов Conj, если все значения атрибутов в этом списке являются такими же, как и у самого объекта.
Например, объект, описанный с помощью выражения
[ size = small, shape = long, holes = 1]
соответствует правилу для ключа key, поскольку его атрибуты согласуются с первым списком значений атрибутов в этом правиле. Итак, значения атрибутов в списке Conj связаны между собой конъюнктивной логической зависимостью; это означает, что ни один из них не может отличаться от значения такого же атрибута объекта. С другой стороны, списки Conjl, Conj2 и т.д. связаны между собой дизъюнктивной логической зависимостью; это означает, что значения атрибутов объекта должны удовлетворять хотя бы одному из этих списков.
Процедура сопоставления объекта с описанием понятия может быть сформулирована на языке Prolog следующим образом:
match ( Object, Description) :-
member ( Conjunction, Description), satisfy ( Object, Conjunction).
satisfy ( Object, Conjunction) :-not (
member) Att = Val, Conjunction), % Значение в описании
member ( Att = ValX, Object), % и значение в объекте
ValX \== Val). % являются разными
Обратите внимание на то, что это определение допускает использование частично заданных объектов, для которых значения некоторых атрибутов могут быть не указаны, иными словами, не включены в список атрибутов и значений. В таком случае предполагается, что незаданное значение удовлетворяет требованиям, которые определены с помощью переменной Conjunction.
Глава 18. Машинное обучение 421