Опубликован: 01.06.2007 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет путей сообщения
Лекция 11:

Трассировка логической структуры нейросети

< Лекция 10 || Лекция 11: 12345 || Лекция 12 >

11.4. Обучение-трассировка нейросети заданной структуры

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

В рассматриваемой сети (рис. 11.2) максимальная длина статического пути возбуждения равна трем. Более того, данная нейросеть является трехслойной в "традиционном" смысле [13, 15, 19, 20], т.е. в ней нет связей "через слой".

Запишем первое логическое выражение из описания (11.1):

((X1& X7)& (X3& X5)) &(X10& X13) -> R1.

Ему соответствует максимальная длина логических цепочек, равная трем, что следует из порядка вложенности скобок. Тогда справедливо предположение о том, что "скобки" (X1&X7) и (X3&X5) могут быть реализованы не далее чем на первом слое (3 - 2 = 1), чтобы не воспрепятствовать формированию подструктур, в которые они входят. Охватывающая их "скобка" ((X1&X7)&(X3&X5)) должна быть реализована на втором слое. Не далее чем на этом же, т.е. на невыходном, слое может быть реализована и скобка (X10& X13).

Предположим, что сквозная нумерация позволяет выделить подмножества нейронов, принадлежащих одному слою или, в общем случае, имеющих одинаковую максимальную длину статической цепочки, как показано на рис. 11.2. Действительно, нейроны 1-12 образуют первый слой нейросети, нейроны 13-21 – второй слой, третий слой – выходной. Тогда и в описывающей нейросеть матрице следования S, наличие которой лишь подразумевается ввиду ее громоздкости, можно отчеркнуть строки и столбцы нейронов, принадлежащих, в данном случае, одному слою. (Напомним, что в матрице S связи обозначаются значениями весов, первоначально равными нулю.)

Построим матрицу S1 (рис. 11.3) на основании выражения, определяющего решение R1.

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

Приступим к реализации первой "скобки" третьего уровня вложенности.

В столбцах, соответствующих событиям Х7 и Х1, ведя поиск в пределах нейронов первого слоя, найдем первую строку, которая содержит максимальное число нулей, указывающих наличие связей. Такая строка, где нули находятся во всех выделенных столбцах, соответствует нейрону 3. В матрицах S и S1 меняем эти нули на единицы – формируем единичные веса связей. В матрице S при строке, соответствующей нейрону 3, указываем число введенных единиц, m3 = 2. В записи выражения меняем "скобку" на имя нейрона, реализующего ее. Запись принимает вид

(3& (X3& X5)) &(X10& X13) -> R1.

Перейдем к реализации "скобки" (X3& X5) того же уровня вложенности.

Матрица S1 после трассировки решения R1

Рис. 11.3. Матрица S1 после трассировки решения R1

В столбцах, соответствующих нейронам X3 и X5, найдем строку, содержащую максимальное число нулей. Такая строка соответствует нейрону 1 первого слоя. Меняем в S и S1 найденные нули на единицы, в матрице S указываем значение m1 = 2. Преобразуем запись выражения:

(3& 1) &(X10& X13) -> R1.

Скобка (X10& X13) может быть реализована как на первом, так и на втором слое. В столбцах, соответствующих нейронам X10 и X13, находим первую строку, содержащую максимальное число нулей. Такая строка соответствует нейрону 6. Меняем выделенные нули на единицы и указываем число таких единиц в S: m6 = 2. Запись выражения преобразуется:

(3& 1) & 6 -> R1.

Анализируя столбцы, соответствующие нейронам 1 и 3, находим нейрон 13 второго слоя, реализующий скобку (3& 1), отмечаем значение m13 = 2. Запись выражения преобразуется к виду

13& 6 -> R1.

Анализируя столбцы, соответствующие нейронам 6 и 13, включив в рассмотрение нейроны выходного слоя, находим первую строку, содержащую максимальное число нулей. Такая строка соответствует нейрону 15. Однако она содержит нуль лишь в столбце нейрона 6. Меняем этот нуль в матрицах S и S1 на единицу, полагаем m15 = 1. Запись выражения преобразуется к виду

13&15 -> R1.

Затем реализуем единственную "скобку" нулевого уровня вложенности с помощью нейрона R1. Трассировка первого решения закончена. В результате ее введены отмеченные на рисунке связи Х3 -> 1, Х5 -> 1, Х7 -> 3, Х1 -> 3, Х10 -> 6, Х13 -> 6, 1 -> 13, 3 -> 13, 6 -> 15, 13 -> R1, 15 -> R1.

Для трассировки решения

((X1&X7)&(X4&X6))&(X2&X12& X14) -> R2

построим матрицу следования S2 (рис. 11.4). Для этого исключим из матрицы S все нейроны- рецепторы, не участвующие в приведенной выше записи выражения, а также неиспользуемые нейроны выходного слоя. Затем с помощью одного просмотра сверху вниз исключим представительство тех нейронов, где число единиц в строках меньше соответствующего значения m.

При анализе "скобки" (X1& X7) обнаруживаем в столбцах, соответствующих нейронам X1 и X7, две единицы в строке, соответствующей нейрону 3, при том, что m3 = 2. Запись выражения преобразуется к виду

(3 & (X4& X6)) &(X2& X12& X14) -> R2.

В строке, соответствующей Х4 и Х6, нет строки, содержащей единицы во всех позициях. Находим первую строку, соответствующую нейрону первого слоя и содержащую максимальное число нулей при нулевом значении m. Такая строка, содержащая нули во всех позициях, соответствует нейрону 2. В матрицах S и S2 меняем выделенные нули на единицы, фиксируем значение m2 = 2. Запись выражения преобразуется:

(3 &2) &(X2& X12& X14) -> R2.

В соответствии с уровнем вложенности присутствующие в записи "скобки" могут быть реализованы как на первом, так и на втором слое нейросети. В столбцах, соответствующих Х2, Х12, Х14, нет строки нейрона первого или второго слоя, содержащей единицы во всех столбцах. Находим первую строку, содержащую максимальное число нулей при нулевом значении m. Такая строка соответствует нейрону 7. Меняем выделенные нули на единицы, фиксируем значение m7 = 2. Запись выражения принимает вид

(3 \& 2) \&(X_2 \& 7) \to R_2. ( 11.2)
< Лекция 10 || Лекция 11: 12345 || Лекция 12 >
Эльвира Герейханова
Эльвира Герейханова

Раньше это можно было зделать просто нажав на тест и посмотреть результаты а сейчас никак

Елена Лобынцева
Елена Лобынцева
Помогите разобраться как можно подобрать НС для распознавания внутренней области выпуклого многоугольника?
Дмитрий Степанов
Дмитрий Степанов
Россия, Москва, МГТУ им. Баумана, 2006
Дмитрий Степаненко
Дмитрий Степаненко
Россия