Алгоритм трассировки нейросети


В результате решения задачи найден алгоритм трассировки нейросети. Рассмотрим его по шагам.

Шаг 1. Дополняем матрицу следования S транзитивными связями по алгоритму, представленному в подразд. 2.4.

 

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

 

Шаг 3. Организуем перебор всех эталонов обобщенных ситуаций (обобщенных эталонов), закрепив нейроны выходного слоя Bыxi (i = 1,..., m) за соответствующими решениями. Для каждого обобщенного эталона выполняем шаги 4—15. Если все обобщенные эталоны обработаны, выполнение алгоритма заканчиваем.

 

Шаг 4. Для обобщенного эталона i (i = 1, 2,..., т) строим мат

 

Шаг 5. В матрице

 

Шаг 6. Присваиваем признак «возбужден» всем нейронам входного слоя матрицы



Шаг 7. Проверяем количество строк


Шаг 7. Проверяем количество строк матрицы

 

Шаг 8. Исключаем строки (и соответствующие им столбцы) матрицы

 

Шаг 9. Исключаем из матрицы



 

Шаг 10. Выделяем множество строк матрицы

 

Шаг 11. В совокупности выделенных столбцов находим первую строку, содержащую максимальное число единиц и не содержащую единиц в других столбцах, т. е. число единиц в найденной строке и выделенных столбцах не должно быть меньше т. Соответствующий этой строке нейрон может быть использован повторно. Если таковой строки найти не удается, выполняем шаг 13.

 

Шаг 12. Исключаем из рассмотрения нейроны (вычеркиваем строки и столбцы), которым соответствуют единицы в найденной строке. Присваиваем нейрону, соответствующему выделенной строке, признак «возбужден». Уничтожаем в этой строке все нули и символы транзитивных связей, если они имеются. Строка преобразуется во вход матрицы

 

Шаг 13. В совокупности выделенных столбцов находим первую строку, содержащую максимальное число нулевых элементов. Если такой строки нет, выполняем шаг 15.

 

Шаг 14. Меняем значения возбуждения соответствующих связей, т.е. заменяем нули единицами. Присваиваем нейрону, соответствующему выделенной строке, значение т, равное количеству единиц в строке, и признак «возбужден». Вычеркиванием строк и столбцов исключаем из рассмотрения нейроны, передавшие энергию возбуждения найденному. Примечание. Значения весов связей одного нейрона могут корректироваться лишь однажды. При обучении другим эталонам нейрон может использоваться повторно, если в обучении участвуют все нейроны, передающие ему возбуждение с весом, равным единице. При этом достаточно учитывать лишь число единиц в строке. В процессе такого обучения эталоны друг другу не мешают. Внесенные изменения весов учитываем в матрице S. Выполняем шаг 7.

 

Шаг 15. В каждом выделенном столбце находим первый сверху непустой элемент, соответствующий транзитивной связи. Вводим в нейросеть дополнительную связь, присваивая найденному элементу единичное значение. Исключаем из рассмотрения (вычеркиваем строки и столбцы) нейроны, соответствующие обработанным столбцам. Отражаем внесенные изменения в матрице S. Примечание. Указанная транзитивная связь (см. выше) потребуется на последней стадии обучения обобщенному эталону и может обнаружиться лишь в строке, соответствующей нейрону выходного слоя, поэтому формировать значение m уже излишне. Выполняем шаг 7.

 

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

Так, в нашем примере удачно сложился терм в результате связи [C1, C2, С3, С4, С5 6]. Он использовался при получении трех — R1, R4, R5.

 


Приведение нейросети после трассировки


Рассмотрим простейшую передаточную функцию

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

Однако, например, при распознавании знаков алфавита величины возбуждения нейронов выходного слоя в ответ на предъявление различных эталонов могут быть различными. Так, эталон латинской / «засветит» на входном слое (на сетчатке) меньшее число нейронов, чем, скажем, буква Q. При рассмотренной передаточной функции величины возбуждения на выходе будут существенно разными.

Возникает вопрос: не приводит ли некоторое незначительное изменение (зашумление) ситуации А, логично требующее решения Приведение нейросети после трассировки

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

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

Значение  находим не по обобщенному эталону, а по каждой конкретной эталонной ситуации, входящей в состав обобщенноПриведение нейросети после трассировки образует реальный эталон в составе обобщенного эталона {А1, В1, С1, С2, С3, С4, С5}. По нему (другие ситуации аналогичны) находим величину возбуждения

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



Трассировка двухслойной нейросети


В подразд. 2.9 указывалось, что любой предикат алгебры логики может быть записан в виде дизъюнктивной нормальной формы как дизъюнкция конъюнкций значений предиката и утверждений, принимающих значения ИСТИНА — ЛОЖЬ, а также их отрицаний. Поэтому будем считать, что каждый предикат системы, на основе которого строится нейронная сеть для принятия решений, представляет собой дизъюнкцию конъюнкций событий, приводящих к общему решению. Например, система предикатов (2.1) в записи на Алголе имеет вид:

 

Тогда трассировка нейросети заданной структуры по каждому предикату производится в два этапа. На первом этапе формируются термы — конъюнкции событий, за которыми закрепляются нейроны. Эти нейроны «собирают» возбуждение нейронов входного слоя. На втором этапе исключаются из рассмотрения нейроны входного слоя, на основе которых сформированы термы. Входным слоем нейронов становятся нейроны входного слоя сети, соответствующие событиям, не вошедшим в состав термов, а также нейроны, реализующие термы. Формируется связь этих нейронов с нейроном выходного слоя, закрепленным за решением.

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



в такой сети первоначально может




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


показана трассировка двухслойной сети,


На рис. 3. 14 показана трассировка двухслойной сети, реализующей систему предикатов (3.2). Связи между слоями первоначально заданы по принципу «каждый с каждым». Выделены связи с весами, равными единице.

В дополнение к сказанному отметим следующее.

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

Таким образом, необходимо обобщение предлагаемого здесь алгоритма трассировки.



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


Пусть выбрана нейросеть (рис. 3.1), где первоначально заданные связи обозначены тонкими стрелками. Строим соответствующую матрицу следования S и в ней транзитивные связи (рис. 3.2). Проверяем, все ли нейроны выходного слоя достижимы из любого нейрона входного слоя? Если нет, считаем, что сеть составлена некорректно.

Из нейрона В\ не исходит ни одной статической цепочки, заканчивающейся нейроном Вых5, в связи с тем, что в строке, соответствующей нейрону Вых5, нет даже транзитивной связи в столбце, соответствующем нейрону В\. Это относится и к нейрону В3.



Введем непосредственные синапсические связи


Введем непосредственные синапсические связи В1





3.2 — весами элемента матрицы.




Имитируя прокладываемые пути возбуждений, первоначально


Сформируем (см. подразд. 2.5) статический путь возбуждения [В1,А1, С1, СЗ, С4, С5]

 



 

ТРАССИРОВКА НЕЙРОСЕТИ 3 Вых\\ (рис. 3.3, а). Имитируя прокладываемые пути возбуждений, первоначально присваиваем нейронам входного слоя, отображенным нулевыми строками этой матрицы, признак «возбужден».

 

Найдем входы матрицы

 



 




Матрица следования при обучении первому






Рис. 3.3. Матрица следования при обучении первому эталону:
а — общий вид; б — первый шаг преобразования матрицы следования;
в — после исключения нейронов В1,А1, и 6;
г — после исключения «невозбужденных» входов

Присвоим нейрону 6 признак «возбужден», а также значение

 



 

Исключим из матрицы

 



 




входам матрицы, т. е. нейронам


Вновь выделим столбцы, соответствующие «возбужденным» входам матрицы, т. е. нейронам В\, А\, 6. Находим строку в выделенной совокупности столбцов с максимальным числом нулей. Строка соответствует нейрону 11. Заменяем в этой строке нули единицами, т. е. максимально увеличиваем веса. Присваиваем нейрону 11 признак «возбужден» и значение

 



 



 

Последовательное исключение сверху вниз динамически учитывает появление таких нейронов и гарантирует полное исключение за один проход. Матрица



 

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

Изменения отразим в матрице S.

Не будем приводить новый вид матрицы следования S, а на изображении самой сети (рис. 3.4) выделим построенную трассу (опорный или динамический путь возбуждения по предполагаемому эталону).

В результате имеем сеть, обученную реакции на эталон одной комбинации событий.




требующий решения R2. Свяжем это


Составим обобщенный эталон ситуации {А\, В2, 53, С\, С2, СЗ}, требующий решения R2. Свяжем это решение с нейроном Вых2.

 

ТРАССИРОВКА НЕЙРОСЕТИ 6 Вых2]

 

По сети, представленной на рис. 3.4, или по матрице (см. рис. 3.2), построим с учетом частичного обучения матрицу статического пути возбуждения(рис. 3.5).




ранее суммировалось возбуждение пяти


На нейроне 6 ранее суммировалось возбуждение пяти нейронов: С1,С2, СЗ, С4, С5. Таким образом, и соответствующая строка матрицы S содержит пять единиц

 



 

Исключим из данной матрицы строки и столбцы, соответствующие нейронам 6 и 11. Матрица примет вид, приведенный на рис. 3.6.

Объединим столбцы множества входов матрицы, обладающих признаком «возбужден», в данном случае первые шесть столбцов. Найдем в них первую строку, содержащую максимальное число нулей. Это строка, соответствующая нейрону 4.




в ней все нули на


Изменим в ней все нули на единицы, положим

Исключим из матрицы

Вновь объединим столбцы множества входов, обладающих признаком «возбужден», соответствующие нейронам ВЗ, С3, 4. В совокупности столбцов выберем первую строку, содержащую максимальное число нулей, — строку, соответствующую нейрону 1.

Заменим нуль на единицу, положим

Исключим из матрицы строку и столбец, соответствующие нейрону ВЗ, передавшему энергию возбуждения нейрону 1, а также исключим строки и столбцы, соответствующие образовавшимся входам — «не возбужденным» нейронам 2 и 3.

В столбцах, соответствующих нейронам — входам с признаком «возбужден», найдем строку с наибольшим числом нулей. Такая строка соответствует нейрону 10. Заменим нули на единицы, присвоим нейрону признак «возбужден», полагаем

В матрице

Нейрон 9, не обладающий признаком «возбужден», образует вход матрицы. Исключим соответствующие ему строку и столбец.

Выделим столбцы, соответствующие нейронам С3 и 10, и в них находим строку с максимальным числом нулей. Такая строка соответствует нейрону 5. Заменяем в ней нуль единицей, полагаем

Исключим из матрицы

В совокупности выделенных столбцов, соответствующих нейронам 5 и 10, строка, соответствующая нейрону 12, имеет единственный нуль. Заменим его на единицу, присвоим нейрону 12 признак «возбужден», положим ТРАССИРОВКА НЕЙРОСЕТИ 8  строку истолбец, соответствующие нейрону 5. И наконец, на последнем шаге, заменив нули в строке, соответствующей нейрону Вых2, единицами, окончательно получим искомый путь возбуждения (рис. 3.7).


Обучим сеть ситуации, требующей решения


Обучим сеть ситуации, требующей решения R3. Пусть этому решению соответствует нейрон ВыхЗ. Матрица

ТРАССИРОВКА НЕЙРОСЕТИ 9 ТРАССИРОВКА НЕЙРОСЕТИ 9  изображен на рис. 3.8, б. Присвоим всем нейронам, образующим входы матрицы, признак «возбужден». Выделим и объединим столбцы, соответствующие входам матрицы Однако вследствие ранее выполненных построений — в результате частичного обучения — появляются новые особенности. Поэтому расширим последующие действия.

В выделенных столбцах найдем строку, содержащую максимальное число единиц.




Строка представляет тот нейрон, который


Строка представляет тот нейрон, который приобрел энергию возбуждения одного или нескольких нейронов, образующих входы матрицы. Эти нейроны могут быть исключены из рассмотрения. Так, нейрон 1 возбужден единственным нейроном, принадлежащим текущему множеству входов матрицы, — нейроном В3, который может быть исключен из рассмотрения. Матрица ТРАССИРОВКА НЕЙРОСЕТИ 10  , уничтожив веса в его строке.

Вновь найдем множество входов матрицы и выделим соответствующие столбцы. Отыщем строку, содержащую единицы в этих и только этих столбцах. Таковых больше нет.

 





 

Рис. З.8. Шаги преобразования матрицы следования для обучения третьему эталону: а — общий вид; б — матрица следования после исключения неиспользованных нейронов.


Тогда найдем строку, содержащую максимальное


 



Тогда найдем строку, содержащую максимальное число нулей. Первая такая строка соответствует нейрону 2. Заменим нули единицами, положим = 2, исключим нейроны B2 и A1 из рассмотрения, присвоим нейрону 2 признак «возбужден». Отразим сделанные изменения весов в матрице S.

Исключим входы, не обладающие признаком «возбужден», — нейроны 3 и 5.


В них нет строк, содержащих


Выделим столбцы, соответствующие входам. В них нет строк, содержащих единицы. Тогда найдем строку, содержащую максимальное число нулей. Такая строка соответствует нейрону 7. Заменим нули (в выделенной совокупности столбцов) на единицы, положим

Выделим столбцы, соответствующие «возбужденным» входам и не находим строк, содержащих единицы. Тогда найдем первую строку с максимальным числом нулей. Это строка, соответствующая нейрону 13. Заменим нуль на единицу, нейрону 13 присвоим признак «возбужден», полагаем



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

Исключим нейрон 13 из рассмотрения.

Выделим множество столбцов, соответствующих «возбужденным» входам, т. е. нейронам 1 и 2. Ищем в этих столбцах строку с единицами, затем с максимальным числом нулей, но таковых нет. Следовательно, необходимо ввести дополнительные связи. Для этого в каждом столбце найдем первую сверху транзитивную связь и заменим ее на единицу. Тогда данная сеть дополнится динамическими цепочками возбуждения 1

ТРАССИРОВКА НЕЙРОСЕТИ 12 ВыхЗ.

 

Построение трассы решения R3 закончено, и сеть имеет вид, представленный на рис. 3.9.




к обучению следующему обобщенному эталону


Приступим к обучению следующему обобщенному эталону — решению А2 & В3 & С1 & С2 & С3 & С4 & С5 ТРАССИРОВКА НЕЙРОСЕТИ 13 [В3, А2, С1, C2, С3, C4, C5

Исключим из рассмотрения те нейроны, для которых количество единиц в строках меньше т. Такими нейронами являются 4 и 11. Матрица




Присвоим всем нейронам входам признак






Присвоим всем нейронам входам признак «возбужден». Выделим столбцы, соответствующие входам, это первые семь столбцов. Найдем строку с максимальным числом единиц в этих столбцах при отсутствии единиц в других. Строка соответствует нейрону 6. Теперь нейрон 6 представляет нейроны С\, С2, С3, С4, С5, передавшие ему энергию возбуждения. Присвоим ему признак «возбужден», исключим из рассмотрения перечисленные нейроны, матрица


в которых меньше т. Они


Для «невозбужденных» нейронов исключим в матрице строки (и столбцы), число единиц в которых меньше т. Они соответствуют нейронам 5 и 7. Повторим этот щаг до полного исключения таких нейронов  исключаются нейроны 12 и 13. Матрица примет вид, представленный на рис. 3.10, г. ТРАССИРОВКА НЕЙРОСЕТИ 15

Исключим из рассмотрения множество «невозбужденных» входов. К таковым относится нейрон 8. Выделим множество столбцов, соответствующих входам матрицы. В их совокупности найдем первую строку с максимальным числом нулей (единиц нет во всей матрице). Такую строку образует нейрон 3. Нули в ней соответствуют нейронам ВЪ и А2. Исключим эти нейроны из рассмотрения, положим



Вновь выделим множество столбцов, соответствующих входам матрицы, и так как в их совокупности нет строк, содержащих единицы, найдем строку с максимальным количеством нулей, соответствующую нейрону 14. Заменим в ней нуль на единицу, положим

Выделим множество столбцов, соответствующих входам матрицы, и так как в их совокупности нет строк, содержащих единицы, найдем строку с максимальным количеством нулей. Эта строка соответствует нейрону Вых4. Заменим в ней нуль на единицу. Поскольку это нейрон выходного слоя, не станем присваивать ему признак «возбужден» и значение т. Исключим нейрон 14 из рассмотрения. Вид матрицы представлен на рис. 3.10, е.

В этой матрице множество «возбужденных» входов представлено единственным нейроном 3. Однако в соответствующем ему столбце нет ни единичных, ни нулевых элементов. Введем в сеть дополнительную связь, найдя в этом столбце первую сверху транзитивную связь и положив ее вес равным единице. Эта связь порождает динамический путь возбуждения 3

Теперь приступим к трассировке последнего пути возбуждения А2 & В1 & В2 & С1 & С2 & СЗ & С4 & С5

На основе текущей матрицы S построим матрицу ТРАССИРОВКА НЕЙРОСЕТИ 15 Вых5] путем исключения «ненужных» строк и столбцов с сохранением транзитивных связей. Исключим из рассмотрения нейрон 4, для которого количество единиц в строке меньше ТРАССИРОВКА НЕЙРОСЕТИ 15  представлена на рис. 3.12, а.




В совокупности этих столбцов найдем


Присвоим всем входам признак «возбужден». Выделим столбцы, соответствующие «возбужденным» входам. В совокупности этих столбцов найдем строку, содержащую максимальное число единиц в этих и только этих столбцах. В данном случае такая строка соответствует нейрону 6. Присвоим ему признак «возбужден» и исключим из рассмотрения нейроны С1,..., С5.

Далее исключим из рассмотрения нейроны 5 и 7, так как в соответствующих строках отсутствуют единицы при отличных от нуля значениях т, после чего придется исключить по той же причине нейроны 12 и 13. Получившаяся матрица представлена на рис. 3.12, б.

Исключим из рассмотрения «невозбужденный» вход, соответствующий нейрону 8.




в их совокупности найдем строку,


Выделим столбцы, соответствующие «возбужденным» входам, и в их совокупности найдем строку, содержащую наибольшее число единиц при отсутствии единиц в других столбцах. Строка соответствует нейрону 14. Исключим из рассмотрения нейрон 6, как передавший свое возбуждение нейрону 14, присвоим нейрону 14 признак «возбужден». Матрица примет вид, представленный на рис. 3.12, в.

Выделим столбцы входов, соответствующие «возбужденным» нейронам, и в их совокупности найдем строку, соответствующую нейрону выходного слоя Вых5, содержащую максимальное число нулей (строк с единицами больше нет). Заменим нули на единицы. Исключим нейроны В1 и 14 из рассмотрения. Отразим введенные изменения в матрице S. На рис. 3.12, г приведена полученная матрица

Выделим множество столбцов — входов матрицы. В этих столбцах не находим строк, содержащих единицы, а также строк, содержащих нули. Тогда в каждый столбец занесем единицы на места транзитивных связей, т. е. введем связи В2 ТРАССИРОВКА НЕЙРОСЕТИ 17

Трассировка нейросети закончена. Окончательный ее вид представлен на рис. 3.13, где единичные веса соответствуют жирным стрелкам.