Московский государственный университет путей сообщения
Опубликован: 12.09.2011 | Доступ: свободный | Студентов: 3903 / 394 | Оценка: 4.67 / 4.33 | Длительность: 18:55:00
Специальности: Программист
Лекция 4:

Обучение логической нейронной сети

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Аннотация: Предполагается краткое знакомство с трассировкой – обучением логической нейронной сети, структура которой предложена разработчику заранее. Трассировка может быть применена и при развитии уже используемой логической нейронной сети. Она производится по обобщенным эталонам, отражающим одно или множество ситуаций, требующих одного и того же решения на основе логического описания системы принятия решений. При этом на заданной структуре имитируется однослойная логическая нейронная сеть. Полностью ознакомиться с алгоритмом трассировки однослойных сетей можно по [6, 7]. Структурированная, скобочная структура логического описания требует применения более сложного алгоритма трассировки, изложенного в [7].
Ключевые слова: нейросеть, ПО, граф, обучение нейронной сети , логическая нейронная сеть, запись, обобщенный эталон , рецептор, нейрон, выходной слой, логическое описание, система принятия решений, логическая функция, логическая переменная, достоверность, логические операции, функция активации, операции, алгебра логики, симметричное свойство, конъюнкция, дизъюнкция, дистрибутивное преобразование , выражение, логические выражения, значение, истина, размножение решений , путь, значение сигнала, сеть, логическая сеть, вес, матрица следования , функция, входной слой, функция активации нейрона, игра, ациклический, индекс, веса синапсических связей, нейронная сеть, обучение нейронной сети, длина пути, vi, чередование, путь возбуждения, входной нейрон, алгоритм, компромисс, параллельное программирование, транзитивные связи , статический путь возбуждения , C2, матрица, исключение, трассировка нейронной сети , алгебра, дистрибутивное преобразование, путь в графе, входная вершина, терм, матрица следования

Что означает обучение нейросети?

— Аннушка… Аннушка?.. — забормотал поэт, тревожно озираясь, — позвольте, позвольте…

К слову "Аннушка" привязались слова "подсолнечное масло", а затем почему-то "Понтий Пилат". Пилата поэт отринул и стал вязать цепочку, начиная со слова "Аннушка". И цепочка эта связалась очень быстро и тотчас привела к сумасшедшему профессору.

М. Булгаков, "Мастер и Маргарита"

… Бытует теоретико-практическая предпосылка, объявляющая, что нейросеть формируется "под задачу". Однако в природе есть идеальная, универсальная, "унифицированная" нейросеть — наш мозг!.. И каждый из нас не испытывает серьезных технических трудностей, если, совершая жизненную ошибку, становится не коммерсантом-коробейником, а, скажем, блестящим специалистом по реликтовым захоронениям в мезозойский период. Более того, говорят, что если человек талантлив в одном, то он талантлив во всем.

Итак, мы научились строить уже обученные простейшие логические нейронные сети. Они обучены, ибо представляют собой законченные функциональные устройства специального назначения. Более того, мы умеем приводить их к однослойным сетям, - к таблицам с ассоциативной выборкой: на что более всего похож предъявленный образ, или на какую известную похожа сложившаяся ситуация, и какие действия предпринять?

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

– Нет! – говорит он и открывает ящик стола. – Вот красивый и сложный граф с достаточным количеством входных и выходных вершин. Интерпретируйте его логической нейронной сетью и произведите обучение этой сети в соответствии с логическим описанием СПР!

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

Предварительно введем понятие обобщенного эталона .

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

Например, в примере о Васе, Пете & Ко обобщенным эталоном , приводящим к решению 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 нейронов входного слоя, и не менее двух нейронов выходного слоя.

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

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

Функция активации нейрона, в частности, заданная нам или выбранная нами сознательно, имеет вид

V=\sum \limits_j \omega_j V_j
V_i= \begin{cases}
V,&\text{если V>h}\\
0,&\text{в противном случае}
\end{cases}

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

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

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

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

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

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

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

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

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

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

V_i=\sum \limits_j V_j - h

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

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

Рис. 4.3. Нейросеть, предложенная для обучения
< Лекция 3 || Лекция 4: 123 || Лекция 5 >
Кирилл Артамонов
Кирилл Артамонов

"Тогда как задать возбуждение рецепторов, если инспектор точно установил, что скорость автомобиля при наезде на пешехода была равна 114 км/час?
По-видимому, он рассуждает на основе близости скорости к границам указанного интервала: "Достоверность того, что скорость автомобиля составляет 100 км/час, я найду как (114 – 100):(120 – 100), а достоверность того, что скорость автомобиля составляет 120 км/час, я найду как (120 – 114):(120 – 100). Следует обратить внимание на то, что сумма найденных достоверностей равна единице."

Вопрос по расчёту скорости и сумме достоверности: этот математический (приведенный выше в виде контекста из материала лекции 1, страницы 3) метод справедлив к скоростным показателям выходящим за рамки диапазона 100-120. 
То есть, практически применяв к расчёту, скорости из диапазона 114-155, к диапазону 100-120, получал в результате суммирования достоверностей единицу.
Это похоже на то, как я видимые разные скоростные показатели своим рецептором, буду воспринимать линейно с помощью одного диапазона, так как он универсален. 
Правильно ли это ? 
И как манипулировать данными показателями, если есть универсальный диапазон, по результату выводящий в сумме постоянно единицу на разных скоростных показателях стремящегося.

Владислав Гладышев
Владислав Гладышев

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