Классическая сеть Хопфилда [312], функционирующая в дискретном времени, строится следующим образом. Пусть {e
Эта процедура выполняется до тех пор, пока после очередной итерации не окажется, что x=x'. Вектор x, полученный в ходе последней итерации, считается ответом. Для нейросетевой реализации формула работы сети переписывается в следующем виде:
или
x'=sign(Ax),
где
На рис. 17 приведена схема сети Хопфилда [312] для распознавания четырехмерных образов. Обычно сети Хопфилда [312] относят к сетям с формируемой синаптической картой. Однако, используя разработанный в первой части главы набор элементов, можно построить обучаемую сеть. Для построения такой сети используем «прозрачные» пороговые элементы. Ниже приведен алгоритм обучения сети Хопфилда [312].
1. Положим все синаптические веса равными нулю.
2. Предъявим сети первый эталон e¹ и проведем один такт функционирования вперед, то есть цикл будет работать не до равновесия, а один раз (см. рис. 17б).
3. Подадим на выход каждого нейрона соответствующую координату вектора e¹ (см. рис. 17в). Поправка, вычисленная на
4. Далее проведем шаг обучения с параметрами обучения, равными единице. В результате получим α
Повторяя этот алгоритм, начиная со второго шага, для всех эталонов получим
Сеть Кохонена
Сети Кохонена [131, 132] (частный случай метода динамических ядер [224, 262]) являются типичным представителем сетей решающих задачу классификации без учителя. Рассмотрим пространственный вариант сети Кохонена. Дан набор из
Существует множество различных алгоритмов решения этой задачи. Рассмотрим наиболее эффективный из них.
1. Зададимся некоторым набором начальных точек α
2. Разобьем множество точек {x
3. По полученному разбиению вычислим новые точки α
Обозначив через |
Второй и третий шаги алгоритма будем повторять до тех пор, пока набор точек α
Теперь рассмотрим сетевую реализацию. Во первых, вычисление квадрата евклидова расстояния достаточно сложно реализовать в виде сети (рис. 18а). Однако заметим, что нет необходимости вычислять квадрат расстояния полностью. Действительно,
Отметим, что в последней формуле первое слагаемое не зависит от точки
Второе соображение, позволяющее упростить обучение сети, состоит в отказе от разделения второго и третьего шагов алгоритма.
Алгоритм классификации.
1. На вход нейронной сети, состоящей из одного слоя нейронов, приведенных на рис. 18б, подается вектор
2. Номер нейрона, выдавшего минимальный ответ, является номером класса, к которому принадлежит вектор
Алгоритм обучения.
1. Полагаем поправки всех синапсов равными нулю.
2. Для каждой точки множества {x
1. Предъявляем точку сети для классификации.
2. Пусть при классификации получен ответ — класс
3. Вычисленные для данной точки поправки добавляются к ранее вычисленным.
3. Для каждого нейрона производим следующую процедуру.
1. Если поправка, вычисленная последним синапсом равна 0, то нейрон удаляется из сети.
2. Полагаем параметр обучения равным величине, обратной к поправке, вычисленной последним синапсом.
3. Вычисляем сумму квадратов накопленных в первых
4. Проводим шаг обучения с параметрами