Опубликован: 25.12.2006 | Уровень: специалист | Доступ: платный
Лекция 9:

Извлечение знаний с помощью нейронных сетей

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Извлечение правил

Даже если параметры, описывающие признаки классифицируемых объектов, представляют собой непрерывные величины, для их представления можно использовать бинарные нейроны и принцип кодирования типа термометра. При таком способе кодирования область изменения параметра делится на конечное число M интервалов и для представления всех значений, лежащих в m-м интервале используется следующее состояние M бинарных нейронов: \begin{array}{c}(0,\ldots ,\underbrace{1, \ldots ,1})\\ m\end{array}.

. Пример кодировки непрерывной величины с помощью бинарных нейронов и принципа термометра. Интервал  (0, 50) разбит на 5 равных частей. Значение 34.0 попадает в 4-й интервал. При этом состояния первых 4 из 5 кодирующих бинарных нейронов  равно единице, а 5-го - нулю.

Рис. 9.1. . Пример кодировки непрерывной величины с помощью бинарных нейронов и принципа термометра. Интервал (0, 50) разбит на 5 равных частей. Значение 34.0 попадает в 4-й интервал. При этом состояния первых 4 из 5 кодирующих бинарных нейронов равно единице, а 5-го - нулю.

При наличии многих непрерывных входов число заменяющих их бинарных нейронов может стать весьма большим. Однако, прореживание связей приводит к получению относительно компактной сети. Но и для нее выделение классификационных правил представляет проблему. Если нейрон имеет d входов, то число различных бинарных векторов, которые он может обработать составляет 2^d, а это большая величина даже при малом d. Далее, состояния нейрона скрытого слоя являются непрерывными, что также является препятствием для извлечения правил. Для его устранения все значения, которые принимают нейроны скрытого слоя кластеризуются и заменяются значениями, определяющими центры кластеров. Число таких кластеров выбирается небольшим. После такой дискретизации активностей промежуточных нейронов производится проверка точности классификации объектов сетью. Если она остается приемлемой, то подготовка к извлечению правил заканчивается. Приведем формальное описание алгоритма дискретизации значений активности нейронов скрытого слоя

Алгоритм дискретизации

  1. Выбирается значение параметра \varepsilon\in(0,1), управляющего числом кластеров активности нейрона скрытого слоя. Пусть h_1 - активность этого нейрона при предъявлении сети первого вектора обучающего набора. Положим число кластеров N_{clust}=1, положение кластера A_{clust}(1)h_1, count(1)=1, sum(1)=h_1.
  2. Для всех векторов обучающего набора k=1,\ldots ,K
    • определяется активность нейрона скрытого слоя h
    • если существует индекс j такой что
      |h-A_{clust}(j)|=\min_{j\in\{1,\ldots ,N_{clust}\}}|h-A_{clust}(j)|
      и
      |h-A_{clust}(j)|\leq\varepsilon
      , то count(j):=count(j)+1, sum(N_{clust}):=sum(N_{clust})+h иначе
      N_{clust}=N_{clust}+1, A_{clust}(N_{clust})=h,\\ count(N_{clust})=1, sum(N_{clust})=h
      .
  3. Заменить A_{clust} на среднее значение активаций нейрона, объединенных в один и тот же кластер: A_{clust}(j)^=sum(j)/count(j),j1,\ldots ,N_{clust}.
  4. Проверить точность классификации объектов сетью при замене истинных значений активации нейрона скрытого слоя на A_{clust}(j).
  5. Если точность классификации оказалась ниже заданного значения, то уменьшить значение \varepsilon и вернуться к шагу 1.

Рассмотрим приведенный в (Lu, Setiono and Liu, 1995) пример, в котором прореженная сеть содержала три нейрона скрытого слоя, дискретизация активности которых была проведена при значении параметра \varepsilon=0.6. Ее результаты отражены в таблице 9.1.

Таблица 9.1. Дискретизация состояний нейронов скрытого слоя
нейрон скрытого слоя число кластеров дискретное значение активности
1 3 (-1,0,1)
2 2 (0, 1)
3 3 (-1, 0.24, 1)

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

Таблица 9.2. Связь дискретных значений активности нейронов скрытого и выходного слоев.
h1 h2 h3 o1 o2
-1 1 -1 0.92 0.08
-1 1 1 0.00 1.00
-1 1 0.24 0.01 0.99
-1 0 -1 1.00 0.00
-1 0 1 0.11 0.89
-1 0 0.24 0.93 0.07
1 1 -1 0.00 1.00
1 1 1 0.00 1.00
1 1 0.24 0.00 1.00
1 0 -1 0.89 0.11
1 0 1 0.00 1.00
1 0 0.24 0.00 1.00
0 1 -1 0.18 0.82
0 1 1 0.00 1.00
0 1 0.24 0.00 1.00
0 0 -1 1.00 0.00
0 0 1 0.00 1.00
0 0 0.24 0.18 0.82

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

  • правило 1 если h2=0,h3=-1, то o1=1, o2=0 (объект класса А)
  • правило 2 если h1=-1,h2=1,h3=-1, то o1=1, o2=0 (объект класса А)
  • правило 3 если h1=-1,h2=0,h3=0.24, то o1=1, o2=0 (объект класса А)
  • правило 4 в остальных случаях o1=1, o2=0 (объект класса В)

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

Двухслойная сеть после прореживания связей и входных нейронов. Положительные связи выделены.

Рис. 9.2. Двухслойная сеть после прореживания связей и входных нейронов. Положительные связи выделены.

Связь между активностями входных бинарных нейронов и нейронов скрытого слоя для данной сети определяется следующими правилами:

Для первого нейрона скрытого слоя:

i_{13}=1\Rightarrow h_1=-1
i_1=i_{13}=i_{15}=0,i_{17}=1\Rightarrow h_1=-1

Для второго нейрона скрытого слоя:

i_{2}=1\Rightarrow h_2=1
i_{17}=1\Rightarrow h_2=1
i_2=i_{17}=0\Rightarrow h_2=0

Для третьего нейрона скрытого слоя:

i_{13}=0\Rightarrow h_3=-1
i_5=i_{15}=1\Rightarrow h_3=-1
i_4=i_{13}=1, i_{17}=0\Rightarrow h_3=-0.24
i_5=0, i_{13}=i_{15}=1\Rightarrow h_3=0.24

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

i_2=i_{13}=i_{17}=0\Rightarrow o_1=1, o_2=0
i_2=i_{17}=0, i_{5}=i_{15}=1\Rightarrow o_1=1, o_2=0
i_5=i_{13}=i_{15}=1\Rightarrow o_1=1, o_2=0
i_1=i_{13}=i_{15}=0, i_{17}=1\Rightarrow o_1=1, o_2=0
i_2=i_{17}=0, i_{4}=i_{13}=1\Rightarrow o_1=1, o_2=0

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

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

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

Рис. 9.3. . Третий нейрон скрытого слоя связан с максимальным числом входов. Число дискретных значений его активности равно 3. Для облегчения процедуры выделения классифицирующих правил этот нейрон может быть заменен вспомогательной сетью с тремя выходными нейронами, кодирующими дискретные значения активности.

Обучающие примеры для вспомогательной сети группируются согласно их дискретизованным значениям активации "проблемного" нейрона. Для d дискретных значений D_1,D_2,\ldots ,D_d всем обучающим примерам, соответствующим уровню активации D_j, ставится в соответствие d -мерный целевой вектор, состоящий из нулей и одной единицы в j -й позиции. Вспомогательная сеть содержит свой слой скрытых нейронов. Она обучается и прореживается тем же способом, что и основная нейронная сеть. Метод извлечения правил применяется к каждой вспомогательной сети, для того чтобы связать значения входов с дискретными значениями активации проблемных нейронов скрытого слоя оригинальной сети. Подобный процесс осуществляется рекурсивно для всех скрытых нейронов с большим числом входов до тех пор пока это число не станет достаточно малым или же новая вспомогательная сеть уже не сможет быть далее упрощена.

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Дмитрий Степаненко
Дмитрий Степаненко
Россия
Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург