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

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

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

Алгоритмы трассировки по обобщенным эталонам как не содержащим скобки, так и содержащим их, исключительно просты и не трудоемки. Они основаны на анализе матрицы следования , описывающей логическую нейронную сеть, и приведены в [1 - 4]. Здесь приводятся примеры.

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

5.2.  Обучение нейросети для распознавания букв

Продолжим рассмотрение примера в разделе 2.1. Теперь предположим, что структура сети (рис.4.1), а также функция активации, заданы, и нам предстоит обучить сеть распознаванию букв О и А.

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

 Нейросеть, подлежащая обучению


Рис. 4.1. Нейросеть, подлежащая обучению

Пусть функция активации нейрона заданная нам или выбранная нами имеет вид:

.

V_i= \begin{cases}

V,&\text{если V>h}\\

0,&\text{в противном случае}

\end{cases}

Здесь \omega_j— синапсический вес входа или вес связи, по которой передается возбуждение от нейрона j нейрону i.

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

На рис.4.2 приведен результат такой трассировки для нашего примера, где выделенные красным стрелки соответствуют связям с единичными весами, а синим — с нулевыми.

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

 Обученная нейросеть


Рис. 4.2. Обученная нейросеть

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

5.3.  Обучение нейросети игре в железнодорожную рулетку

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

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

V_i=\sum \limits_j V_j - h

где j — индекс нейрона, "передающего" свое возбуждение данному нейрону, h — порог.

 Нейросеть, предложенная для обучения


Рис. 4.3. Нейросеть, предложенная для обучения

5.4.  Матрица следования

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

Для данного случая матрица следования показана на рис.4.4.

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

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


Рис. 4.4. Матрица следования для обучаемой нейросети

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

Окончательный результат обучения нейронной сети методом трассировки показан на рис.4.5, где выделены связи с единичными весами. Другие связи нулевые. Так как первоначальных связей оказалось недостаточно, пришлось ввести дополнительные связи с единичными весами. Матрица следования для обученной нейронной сети представлена на рис.4.6.

 Обученная нейронная сеть


Рис. 4.5. Обученная нейронная сеть

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


Рис. 4.6. Матрица следования для обученной нейронной сети

Посчитаем с помощью введенной функции активации величины возбуждения нейронов для, например, ситуации A1&B2 и учитывая h = 1: V_1. Ни один нейрон выходного слоя не возбудился! То же — для ситуаций A1&B1 и A2&B1. Рассчитаем ситуацию A2&B2: V_1. Мы видим, что построенная нейросеть распознает единственную ситуацию, заданную четко.

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

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

V_i= \begin{cases}

0,\ если\ V=\sum \limits_j \omega_j V_j \le h}\\

\sum \limits_j \omega_j V_j,\ в\ противном\ случае}

\end{cases}

Рассчитайте и убедитесь, что, например, для h = 1сеть правильно распознает все эталонные ситуации, обеспечивая равную величину возбуждения нейронов выходного слоя. Так, при ситуации A1&B1 получаем следующие величины возбуждения нейронов: V_1. Аналогично, — для ситуаций A1&B2 и A2&B1. Для ситуации A2&B2 находим V_1 = 0, V_2 = 0, V_3 = 0, V_{R1} = 0, V_{R2} = 0, V_{R3} = 0, V_{R4} = 2.

Сеть работает прекрасно, гарантируя правильность реакции на недостоверные ситуации, и позволяя находить среднее.

Из рассмотренного примера видно, сколько различных вариантов развития имеет игра. Например, если скорость паровозов — величина переменная и случайная, так же как и чередование и длина однопутных участков, и решение следует принимать и корректировать в динамике, в зависимости от длины пройденного пути и значения скорости.

5.5.  Обучение нейросети для "современной" системы принятия решений

Продвинемся еще на шаг по пути иллюстративного освоения принципов обучения логической нейронной сети.

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

A1&B1&C1&C2&C3&C4&C5 \toR1

A1&B2&B3&C1&C2&C3 \toR2

A1&B2&B3&C4&C5 \toR3 (4.1)

A2&B3&C1&C2&C3&C4&C5 \toR4

A2&B1&B2&C1&C2&C3&C4&C5 \toR5

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

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

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

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

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

Введем синапсические связи В1 \toВых5 и В3 \toВых5 , что отмечено на рис.4.6 жирными стрелками, а на рис.4.7 – нулевыми весами введенных связей.

 Нейросеть, подлежащая обучению


Рис. 4.7. Нейросеть, подлежащая обучению

 Матрица следования с транзитивными связями


Рис. 4.8. Матрица следования с транзитивными связями

По первому выражению в (4.1) сформируем статический путь возбуждения {B1, A1, C1, C2, C3, C4, C5} \toВых1, объединяющий только интересующие нас сейчас нейроны и учитывающий только те связи, что могут быть основой необходимой трассы, и отобразим его матрицей S_1[B1,A1,C1,C2,C3,C4,C5 \toВых1] на рис.4.9. Эта матрица формируется на основе матрицы S вычеркиванием всех строк и столбцов, которые соответствуют не интересующим нас нейронам.

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


Рис. 4.9. Матрица следования S1 для обучения первому эталону

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

Найдем входы матрицы S_1(пустые строки), обладающие признаком "возбужден". Выделим в одну совокупность соответствующие им столбцы, в данном случае столбцы 1 - 7, и найдем в ней строку, содержащую максимальное число "нулей", — строку, соответствующую нейрону 6. Заменяем в этой строке (в выделенной совокупности столбцов) "нули" "единицами", т. е. максимально увеличиваем соответствующие веса. Присваиваем нейрону 6 признак "возбужден", а также значение m_6= 5, характеризующее то количество нейронов, "возбуждение" которых мы "собрали" на входе этого нейрона. Впредь мы можем только повторно использовать этот нейрон, но менять веса связей на его входе мы не должны. Изменение весов отображаем в матрице S.

Исключаем из матрицы S_1строки и столбцы, соответствующие нейронам С1, С2, С3, С4, С5. Новый вид матрицы S_1представлен на рис.4.10.

 Первый шаг преобразования матрицы следования S1


Рис. 4.10. Первый шаг преобразования матрицы следования S1

Вновь выделяем столбцы, соответствующие "возбужденным" входам матрицы. Это столбцы, соответствующие нейронам В1, А1, 6. Находим строку в выделенной совокупности столбцов, имеющую максимальное число "нулей". Такая строка соответствует нейрону 11. Заменяем в этой строке (в выделенной совокупности столбцов) "нули" "единицами", т. е. максимально увеличиваем веса. Присваиваем нейрону 11 признак "возбужден" и значение m_{11}= 3. Отражаем изменение весов в матрице S.

Исключаем из матрицы S_1строки и столбцы, соответствующие нейронам В1, А1, 6. Матрица принимает вид, изображенный на рис.4.11.

 Второй шаг преобразования матрицы следования S1


Рис. 4.11. Второй шаг преобразования матрицы следования S1

Исключаем из матрицы все входы, которые соответствуют нейронам 1, 2, 3, 4, 5, не обладающим признаком "возбужден". Ведь строящийся нами путь возбуждения уже миновал эти нейроны! Исключение этих нейронов породит новые нейроны, нуждающиеся в исключении по той же причине, — нейроны 9 и 10.

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

 Последний шаг преобразования матрицы следования S1


Рис. 4.12. Последний шаг преобразования матрицы следования S1

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

 Нейросеть, обученная первому эталону


Рис. 4.13. Нейросеть, обученная первому эталону

Мы не будем приводить новый вид матрицы следования S, а на изображении самой сети (рис.4.13) выделим темным построенную трассу.

Реакции на один обобщенный эталон мы сеть научили.

По сети на рис.4.13 или по матрице на рис.4.8 (с учетом частичного обучения!) построим (рис.4.14) матрицу статического пути возбуждения S_2[B2, B3, A1, C1, C2, C3 \toВых2].

 Первоначальный вид матрицы следования S2 для обучения второму эталону


Рис. 4.14. Первоначальный вид матрицы следования S2 для обучения второму эталону

Нейрон 6 ранее "объединил" возбуждение пяти нейронов: С1, С2, С3, С4, С5, т. е. в матрице S в соответствующей строке содержится пять единиц и m_6 = 5. Однако в составленной матрице S_2в строке, соответствующей этому нейрону, присутствуют лишь три единицы. Значит, этот нейрон не может быть использован для трассировки необходимого пути возбуждения, т. к. комбинация С1&С2&С3&С4&С5 нам здесь не нужна.

То же следует сказать и о нейроне 11.

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

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


Рис. 4.15. Матрица следования S2 для обучения второму эталону

 Нейросеть после обучения двум эталонам


Рис. 4.16. Нейросеть после обучения двум эталонам

Обучим сеть третьей ситуации, требующей решения R3. Закрепим за этим решением нейрон Вых3. Матрица S_3[B2, B3, A1, C4, C5 \toВых3] представлена на рис.4.17.

 Матрица следования S3 для обучения третьему эталону (начальный вид)


Рис. 4.17. Матрица следования S3 для обучения третьему эталону (начальный вид)

Исключаем из матрицы S_3представительство тех ранее использованных ("возбужденных") нейронов, для которых значение m (указано в дополнительном столбце матрицы) превышает количество единиц в соответствующей строке. Это значит, что эти нейроны "собрали" уже возбуждение нейронов, которые в данном пути возбуждения, т. е. в матрице S_3, не используются. Это нейроны 4, 5, 6, 11. Переиспользование их невозможно.

Повторяем попытки исключения из матрицы S_3представительство тех нейронов, для которых значение m стало превышать количество единиц в соответствующей строке. И так далее — до исчерпания этой возможности.

В данном случае нам придется исключить из рассмотрения (вследствие исключения нейронов 4 и 5) нейроны 10 и 12. Матрица S_3примет окончательный вид на рис.4.18.

 Окончательный вид матрицы следования S3 для обучения третьему эталону


Рис. 4.18. Окончательный вид матрицы следования S3 для обучения третьему эталону

Присваиваем всем нейронам, образующим входы матрицы, признак "возбужден".

Выделяем и объединяем столбцы, соответствующие входам матрицы S_3.

Отобразим новую особенность алгоритма трассировки, обусловленную наличием в матрице S_3"единиц".

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

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

 Первый шаг преобразования матрицы следования S3


Рис. 4.19. Первый шаг преобразования матрицы следования S3

Подтверждаем нейрону 1 признак "возбужден" и превращаем его во вход матрицы S_3, уничтожив веса в его строке.

Вновь находим множество входов матрицы и выделяем соответствующие им столбцы. Пытаемся найти строку, содержащую единицы в этих и только этих столбцах, но таких больше нет. Тогда находим строку, содержащую максимальное число нулей. Первая такая строка соответствует нейрону 2. "Объединяем" на нем возбуждение нейронов В2 и А1, заменяя нули единицами. Полагаем m2 = 2, исключаем нейроны В2 и А1 из рассмотрения, присваиваем нейрону 2 признак "возбужден". Отражаем сделанные изменения весов в матрице S.

 Нейросеть после обучения третьему эталону


Рис. 4.20. Нейросеть после обучения третьему эталону

Исключаем входы, не обладающие признаком "возбужден", — нейроны 3 и 5. Продолжая процесс подобно предыдущему, получаем результат обучения трем эталонам (рис.4.20).

Окончательный вид полностью обученной нейронной сети представлен на рис.4.21, где, напоминаем, веса, принявшие значение 1, в том числе введенные дополнительно, соответствуют жирным стрелкам.

 Обученная нейросеть


Рис. 4.21. Обученная нейросеть

5.6.  Ключевые термины

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

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

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

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

5.  Транзитивные связи – отражают не непосредственные связи между нейронами, а их совместное участие в некоторой логической цепочке.

6.  Дистрибутивное преобразование – приведение логической функции к виду "дизъюнкции конъюнкций", то есть, к такому виду, при котором отдельные высказывания о значениях факторов объединены операцией И (в конъюнкции), а несколько таких конъюнкций объединены операцией ИЛИ (дизъюнкцией). Такое преобразование в основном использует известное из булевой алгебры свойство дистрибутивности конъюнкции относительно дизъюнкции и дизъюнкции относительно конъюнкции.

7.  Размножение решений – постановка каждой "конъюнкции", образованной в результате дистрибутивного преобразования, того решения, которое соответствует значению ИСТИНА всего логического выражения.

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

Выводы

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

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

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

4.  Алгоритм трассировки допускает развитие структуры заданного графа в том случае, если связей в нем оказывается недостаточно. Необходимые связи вводятся автоматически.

Литература

1. Барский в нейронные сети. http://www. *****.

2. Галушкин сети: основы теории. Изд-во: Горячая линия –

Телеком, 20с.

3. Яхъяева множества и нейронные сети. Изд-во: БИНОМ.

Лаборатория знаний, 2012. – 315 с.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5