Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Параметры обучения h1 и h2 определяются компонентом учитель и передаются сети вместе с запросом на обучение. В некоторых случаях бывает полезно использовать более сложную процедуру модификации карты.
Во многих работах отмечается, что при описанной выше процедуре модификации параметров происходит неограниченный рост величин параметров. Существует несколько различных методов решения этой проблемы. Наиболее простым является жесткое ограничение величин параметров некоторыми минимальным и максимальным значениями. При использовании этого метода процедура модификации параметров имеет следующий вид:
Контрастирование
В последние годы широкое распространение получили различные методы контрастирования или скелетонизации нейронных сетей. В ходе процедуры контрастирования достигается высокая степень разреженности синаптической карты нейронной сети, так как большинство связей получают нулевые веса (см. например [47, 100, 303, 304]).
Очевидно, что при такой степени разреженности ненулевых параметров проводить вычисления так, как будто структура сети не изменилась, неэффективно. Возникает потребность в процедуре нормализации сети, то есть фактического удаления нулевых связей из сети, а не только из обучения. Процедура нормализации состоит из двух этапов:
1. Из сети удаляются все связи, имеющие нулевые веса и исключенные из обучения.
2. Из сети удаляются все подсети, выходные сигналы которых не используются другими подсетями в качестве входных сигналов и не являются выходными сигналами сети в целом.
В ходе нормализации возникает одна трудность: если при описании нейронной сети все нейроны одинаковы, и можно описать нейрон один раз, то после удаления отконтрастированных связей нейроны обычно имеют различную структуру. Компонент сеть должен отслеживать ситуации, когда два блока исходно одного и того же типа уже не могут быть представлены в виде этого блока с различными параметрами. В этих случаях компонент сеть порождает новый тип блока. Правила порождения имен блоков приведены в описании выполнения запроса на нормализацию сети.
Примеры сетей и алгоритмов их обучения
В этом разделе намеренно допущено отступление от общей методики — не смешивать разные компоненты. Это сделано для облегчения демонстрации построения нейронных сетей обратного распространения, позволяющих реализовать на них большинство известных алгоритмов обучения нейронных сетей.
Сети Хопфилда
Классическая сеть Хопфилда [312], функционирующая в дискретном времени, строится следующим образом. Пусть {ei} — набор эталонных образов (i=1, …, m). Каждый образ, включая и эталоны, имеет вид n-мерного вектора с координатами, равными нулю или единице. При предъявлении на вход сети образа x сеть вычисляет образ, наиболее похожий на x. В качестве меры близости образов выберем скалярное произведение соответствующих векторов. Вычисления проводятся по следующей формуле:
Эта процедура выполняется до тех пор, пока после очередной итерации не окажется, что x=x'. Вектор x, полученный в ходе последней итерации, считается ответом. Для нейросетевой реализации формула работы сети переписывается в следующем виде:
или
x'=sign(Ax),
где
На рис. 17 приведена схема сети Хопфилда [312] для распознавания четырехмерных образов. Обычно сети Хопфилда [312] относят к сетям с формируемой синаптической картой. Однако, используя разработанный в первой части главы набор элементов, можно построить обучаемую сеть. Для построения такой сети используем «прозрачные» пороговые элементы. Ниже приведен алгоритм обучения сети Хопфилда [312].
1. Положим все синаптические веса равными нулю.
2. Предъявим сети первый эталон e¹ и проведем один такт функционирования вперед, то есть цикл будет работать не до равновесия, а один раз (см. рис. 17б).
3. Подадим на выход каждого нейрона соответствующую координату вектора e¹ (см. рис. 17в). Поправка, вычисленная на j-ом синапсе i-го нейрона, равна произведению сигнала прямого функционирования на сигнал обратного функционирования.
Поскольку при обратном функционировании пороговый элемент прозрачен, а сумматор переходит в точку ветвления, то поправка равна ei¹ej¹.4. Далее проведем шаг обучения с параметрами обучения, равными единице. В результате получим αij=ei¹ej¹.
Повторяя этот алгоритм, начиная со второго шага, для всех эталонов получим
Сеть Кохонена
Сети Кохонена [131, 132] (частный случай метода динамических ядер [224, 262]) являются типичным представителем сетей решающих задачу классификации без учителя. Рассмотрим пространственный вариант сети Кохонена. Дан набор из m точек {xp} в n-мерном пространстве. Необходимо разбить множество точек {xp} на k классов близких в смысле квадрата евклидова расстояния. Для этого необходимо найти k точек αl таких, что
Существует множество различных алгоритмов решения этой задачи. Рассмотрим наиболее эффективный из них.
1. Зададимся некоторым набором начальных точек αl.
2. Разобьем множество точек {xp} на k классов по правилу
3. По полученному разбиению вычислим новые точки αl из условия минимальности
Обозначив через |Pi| число точек в i-ом классе, решение задачи, поставленной на третьем шаге алгоритма, можно записать в виде
Второй и третий шаги алгоритма будем повторять до тех пор, пока набор точек αl не перестанет изменяться. После окончания обучения получаем нейронную сеть, способную для произвольной точки x вычислить квадраты евклидовых расстояний от этой точки до всех точек αl и, тем самым, отнести ее к одному из k классов. Ответом является номер нейрона, выдавшего минимальный сигнал.
Теперь рассмотрим сетевую реализацию. Во первых, вычисление квадрата евклидова расстояния достаточно сложно реализовать в виде сети (рис. 18а). Однако заметим, что нет необходимости вычислять квадрат расстояния полностью. Действительно,
Отметим, что в последней формуле первое слагаемое не зависит от точки x, второе вычисляется адаптивным сумматором, а третье одинаково для всех сравниваемых величин. Таким образом, легко получить нейронную сеть, которая вычислит для каждого класса только первые два слагаемых (рис. 18б).