Логические нейронные сети

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


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

В рассматриваемой сети (рис. 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 связи обозначаются значениями весов, первоначально равными нулю.)


Такая строка соответствует нейрону 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.Запись выражения принимает вид



(11.2)


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

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

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

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

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

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


Рис. 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. Запись выражения принимает вид



(11.2)
Преобразование первой скобки производится с помощью нейрона 14 аналогично предыдущему. Фиксируем значение m14 = 2 и формируем новую запись:

14 &(X2& 7)
R2.

Выделяем столбцы, соответствующие нейронам Х2 и 7, и так как в этих столбцах нет строки, соответствующей нейронам второго слоя и содержащей единицы во всех позициях (нейрон 7 принадлежит первому слою и может участвовать в термах, создаваемых на втором слое), находим первую строку, соответствующую нейрону второго слоя и содержащую максимальное число нулей при нулевом значении m. Такая строка соответствует нейрону 16, который становится преемником лишь нейрона 7. Меняем выделенный нуль на единицу, фиксируем значение m16 = 1. Запись выражения принимает вид

14 &(X2&16)
R2.

Теперь выделяем столбцы нейронов Х2 и 16. Находим в них строку с максимальным числом нулей при нулевом значении m не далее, чем на втором слое нейронов. Такая строка соответствует нейрону 9. Меняем выделенный нуль на единицу, полагаем m9 = 1. Запись принимает вид

14 &(9 &16)
R2.

Выделяем столбцы, соответствующие нейронам 9 и 16. В них находим строку с максимальным числом нулей и при нулевом m не далее чем на втором слое нейронов. Такая строка соответствует нейрону 18.

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

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



Введем связь 9
16 и уточним значение m16 = 2. Запись выражения принимает вид

14 &16
R2,

что с очевидностью приводит к окончанию трассировки второго решения, как показано на рис. 11.4.


Рис. 11.4.  Матрица S2 после трассировки решения R2

Заметим, что дополнительная связь Х2
7, введенная на первом этапе реализации "скобки", возможно, исключила бы сложный анализ создавшейся ситуации.

Аналогично, без элементов новизны, производится трассировка решения R3 с помощью матрицы S3 (рис. 11.5) введением единичных весов связей Х1
5, Х10
5, Х8
8, 5
17, 8
17, 17
R3 .

Произведем трассировку решения R4, записав определяющее его выражение

(Х9 & (Х1 & Х10 ))& (Х2 & Х15 )
R4 .

Матрица S4 представлена на рис. 11.6.


Рис. 11.5.  Матрица следования S3 после трассировки решения R3

Выделим столбцы, соответствующие нейронам Х1 и Х10, и находим в них строку, соответствующую нейрону 5, в которой единицы записаны во всех позициях, m5 = 2. Заменим "скобку" именем нейрона 5:

(Х9 &5)& (Х2 & Х15 )
R4 .

"Скобку" (Х2& Х15) реализуем с помощью нейрона 11, и запись принимает вид

(Х9 &5)&11
R4.

Анализ первой скобки приводит к единичному весу связи Х9
10, а затем 10
19. Запись выражения принимает вид

(19&5)&11
R4.

Дальнейший анализ "скобки" свидетельствует о том, что нейрон 19 принадлежит слою максимального уровня, на котором эта "скобка" может

быть реализована. Нейрон 5 принадлежит предыдущему слою. Тогда по правилу, изложенному выше, вводим дополнительную связь 5
19. Полагаем m19 = 2. Запись выражения принимает вид

19&11
R4.

Полученная "скобка" может быть реализована на выходном слое нейронов. Анализируем столбцы, соответствующие нейронам 11 и 19, находим в них первую строку с максимальным числом нулей при нулевом значении m, соответствующую нейрону 20, и вводим единичный вес связи 11
20. Запись выражения принимает вид

19&20
R4.



Однако анализ столбцов, соответствующих нейронам 19 и 20, свидетельствует об отсутствии связей этих нейронов с нейроном R4. Введем дополнительные связи 19
R4 и 20
R4.

Трассировка решения R4 закончена.


Рис. 11.6.  Матрица следования S4 после трассировки решения R4

Для трассировки решения R5 составим матрицу S5 (рис. 11.7) и запишем в первоначальном виде логическое выражение

Х2&(Х11& Х13)
R5.

Выделяем столбцы, соответствующие нейронам Х11 и Х13. В них нет строки, соответствующей нейрону не более чем второго слоя и содержащей единицы. Находим первую строку, содержащую максимальное число нулей при нулевом значении m. Эта строка соответствует нейрону 12. Меняем нуль на единицу, положив m12= 1; запись выражения принимает вид

Х2&(12 & Х13)
R5.

Продолжаем анализ "скобки", в результате чего запись выражения принимает вид

Х2&(21 & Х13)
R5.

Вновь выделяем столбцы, соответствующие нейронам 21 и Х13 и не обнаруживаем в них, в пределах второго слоя, строк, содержащих единицы или нули. Так как нейрон 21 принадлежит предельному для формируемого

терма слою, вводим дополнительную связь Х13
21. Запись выражения принимает вид

Х2&21
R5.

Дальнейшие преобразования приводят к использованию нейрона 9 и к введению дополнительных связей 9
R5 и 21
R5.


Рис. 11.7.  Матрица следования S5 после трассировки решения R5

Трассировка нейросети закончена.


Содержание раздела