"Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час? Вопрос по расчёту скорости и сумме достоверности: этот математический (приведенный выше в виде контекста из материала лекции 1, страницы 3) метод справедлив к скоростным показателям выходящим за рамки диапазона 100-120. |
Обучение логической нейронной сети
Что означает обучение нейросети?
— Аннушка… Аннушка?.. — забормотал поэт, тревожно озираясь, — позвольте, позвольте…
К слову "Аннушка" привязались слова "подсолнечное масло", а затем почему-то "Понтий Пилат". Пилата поэт отринул и стал вязать цепочку, начиная со слова "Аннушка". И цепочка эта связалась очень быстро и тотчас привела к сумасшедшему профессору.
… Бытует теоретико-практическая предпосылка, объявляющая, что нейросеть формируется "под задачу". Однако в природе есть идеальная, универсальная, "унифицированная" нейросеть — наш мозг!.. И каждый из нас не испытывает серьезных технических трудностей, если, совершая жизненную ошибку, становится не коммерсантом-коробейником, а, скажем, блестящим специалистом по реликтовым захоронениям в мезозойский период. Более того, говорят, что если человек талантлив в одном, то он талантлив во всем.
Итак, мы научились строить уже обученные простейшие логические нейронные сети. Они обучены, ибо представляют собой законченные функциональные устройства специального назначения. Более того, мы умеем приводить их к однослойным сетям, - к таблицам с ассоциативной выборкой: на что более всего похож предъявленный образ, или на какую известную похожа сложившаяся ситуация, и какие действия предпринять?
Однако столь несложные построения настораживают шефа. Он боится, что такие примитивные результаты обесценивают долгие и трудные поиски его коллектива.
– Нет! – говорит он и открывает ящик стола. – Вот красивый и сложный граф с достаточным количеством входных и выходных вершин. Интерпретируйте его логической нейронной сетью и произведите обучение этой сети в соответствии с логическим описанием СПР!
Под обучением логической нейронной сети понимается запись в ней причинно-следственных связей вида "если... то...". Эти связи создаются с помощью высоких значений одних синапсических весов при сохранении исходных низких значений других. Объясним это.
Предварительно введем понятие обобщенного эталона .
Под обобщенным эталоном будем понимать совокупное множество всех событий, фигурирующих в отдельном логическом выражении из описания СПР, такое, что единичное возбуждение закрепленных за ними рецепторов – части или всех одновременно - приводит к самому высокому возбуждению нейрона выходного слоя, указывающее на решение, соответствующее данному логическому выражению.
Например, в примере о Васе, Пете & Ко обобщенным эталоном , приводящим к решению R1, является А1&В1&С1&С2&С3&С4&С5. При этом, по смыслу задачи, единичное возбуждение получают комбинации А1&В1&С1, ..., А1&В1&С5. Обобщенный эталон , приводящий к решению R2 – А1&В2&В3&С1&С2&С3 и т.д. Здесь знак & указывает на взаимодействие событий с помощью функции активации. В общем случае логическое описание системы принятия решений (в виде ряда логических функций) может содержать скобки, которые нельзя игнорировать при обучении. Тогда эти скобки указываются в обобщенном эталоне на своих местах, возможно, - в порядке вложенности. Такие структурированные логические описания обсуждаются в [2, 4].
Важно подчеркнуть, что обобщенный эталон отражает единственность вхождения переменных – событий. Это требование следует из того, что при переходе от логических переменных описания СПР к действительным (отображающим достоверность принадлежности) суррогатом логических операций становится некоторая функция активации. А в основе такой функции лежит операция сложения, то есть суммирования сигналов. Естественно, что эти сигналы должны при суммировании учитываться один раз.
Таким образом, каждая логическая функция из описания СПР – прообраз обобщенного эталона - должна быть преобразована так, чтобы все ее переменные входили в текст лишь один раз. (Заметим, что эти преобразования служат не достижению абсолютной правильности выводов, а лишь максимизируют эту правильность. Мы приветствуем людей, мыслящих логично, воспроизводящих структурную взаимосвязь событий. Но чаще наблюдаем такую "кашу" в голове!)
Указанное преобразование достигается "вынесением за скобки". Поскольку в основе операции вынесения за скобки в алгебре логики лежит симметричное свойство дистрибутивности конъюнкции относительно дизъюнкции и дизъюнкции относительно конъюнкции, то такое преобразование можно назвать дистрибутивным . Если дистрибутивное преобразование невозможно, выражение следует разбить относительно некоторой операции дизъюнкции (любое логическое выражение легко преобразуется в "дизъюнкцию конъюнкций") и для каждой части отдельно указать, что ее значение "истина" приводит к тому же самому решению. Этот прием называется размножением решений . В конечном итоге это и есть путь получения однослойных логических нейронных сетей.
Итак, события, приводящие к единичному значению сигналов возбуждения на соответствующих им рецепторах, должны привести к самому высокому значению сигнала на соответствующем нейроне выходного слоя. То есть, заданная комбинация единичных сигналов на входе должна привести к максимальному (по сравнению с другими) сигналу на определенном выходе.
Это достигается прокладкой трассы от всех рассматриваемых входных сигналов к требуемому нейрону выходного слоя через промежуточные нейроны, если сеть не однослойная. Эта трасса строится с помощью комбинации высоких весов "попутных" связей. Практически, выбранные для этого веса полагаются равными единице.
Обучение логической сети таким методом называется трассировкой – по аналогии с некоторыми задачами электронной схемотехники. Там таким способом, на основе набора (матрицы) элементов, изначально связанных между собой "проводочками", создается замысленное функциональное устройство. При этом существование одних "проводочков" подтверждается (их вес высок, так как сопротивление низко), а ненужные "проводочки" можно и "перекусить".
Алгоритмы трассировки по обобщенным эталонам , как не содержащим скобки, так и содержащим их, исключительно просты и нетрудоемки. Они основаны на анализе матрицы следования , описывающей логическую нейронную сеть, и приведены в [1 - 4]. Здесь приводятся примеры.
Следует отметить, что эти алгоритмы предусматривают введение дополнительных связей в том случае, если предоставленных изначально связей оказалось недостаточно. (Не бросать же негодную сеть шефу в лицо!)
Обучение нейросети для распознавания букв
Продолжим рассмотрение примера в разделе 2.1. Теперь предположим, что структура сети (рис.4.1), а также функция активации, заданы, и нам предстоит обучить сеть распознаванию букв О и А.
Пусть экран разбит на столько же клеток что и ранее, и мы убеждаемся лишь в том, что предложенная нейросеть содержит не менее 12 нейронов входного слоя, и не менее двух нейронов выходного слоя.
Функция активации нейрона, в частности, заданная нам или выбранная нами сознательно, имеет вид
Здесь — синапсический вес входа или вес связи, по которой передается возбуждение от нейрона j нейрону i.
Тогда задачей обучения – трассировки является выбор единичных весов некоторых связей и нулевых весов других связей так, чтобы в соответствии с функциональным назначением сети сложились отношения "посылка — следствие", подобные тем, которые мы создали выше при построении уже обученной сети. Они переводят возбуждение рецепторов, образующееся при "показе" эталонов и образов, в максимальное возбуждение тех нейронов выходного слоя, которые говорят "что это такое".
На рис.4.2 приведен результат такой трассировки для нашего примера, где выделенные стрелки соответствуют связям с единичными весами, а другие — с нулевыми.
Задав несколько, в том числе "неопределенных" образов на входе, можно убедиться в ее правильной работе, хотя и демонстрирующей изначально выбранное слабое отличие О от А. Выбором значения h можно добиться того, чтобы "чужие" символы отсеивались.
Получилась интересная игра. Мы задаем на входе случайные возбуждения и спрашиваем: на что это больше похоже из того, что "знает" нейросеть? Все, что надо сделать, это посчитать в едином цикле или параллельно для всех нейронов значение функции активации и сравнить величины возбуждения нейронов выходного слоя, преодолевшие порог.
Обучение нейросети игре в железнодорожную рулетку
Еще глубже погрузимся в изучение проблемы обучения логической нейронной сети. Ранее нам были известны условия игры в железнодорожную рулетку, а мы создали сеть. Теперь пусть нам задана нейросеть, а мы обучим ее игре в рулетку.
Нарисуем некоторый ориентированный ациклический граф (рис.4.3), привлекательный для заказчика, и вложим в него смысл нейросети, поставив в соответствие его вершинам-нейронам (кроме предполагаемых рецепторов) рассмотренную ранее функцию активации
где j — индекс нейрона, "передающего" свое возбуждение данному нейрону, h — порог.