Описание объектов и понятий с использованием атрибутов

В этом разделе рассматривается способ обучения, при котором примеры и гипоте­зы определяются в терминах множеств атрибутов. В принципе атрибуты могут отно­ситься к различным типам, в зависимости от их возможных значений. Поэтому лю­бой атрибут может быть числовым или нечисловым. Кроме того, если атрибут явля­ется нечисловым, то множество его значений рассматривается как упорядоченное или неупорядоченное. Ограничимся нечисловыми атрибутами с неупорядоченными множествами значений. Такое множество обычно невелико и содержит лишь не­сколько значений.

Для описания любого объекта достаточно указать конкретные значения атрибутов этого объекта. Таким образом, подобное описание представляет собой вектор значе­ний атрибутов.

На рис. 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