Сети Хопфилда
Перейдем от одноэлементных систем к нейронным сетям. Пусть
![](../../../../img/tex/1/b/8/1b8426187933273efdd988db8c2890e6.png)
![](../../../../img/tex/1/b/8/1b8426187933273efdd988db8c2890e6.png)
![](../../../../img/tex/2/0/f/20fe23820c41a41e46d2489e52c76f55.png)
В данном разделе речь пойдет в основном о полносвязных сетях. Пусть на выходах всех нейронов получены сигналы xj ( j-номер нейрона). Обозначим x вектор этих выходных сигналов. Прохождение вектора сигналов x через сеть связей сводится к умножению матрицы (
![](../../../../img/tex/1/b/8/1b8426187933273efdd988db8c2890e6.png)
![](../../../../img/tex/6/c/7/6c7ce8bc567b163047353399b7c79ad5.png)
Это соответствие "прохождение сети
![](../../../../img/tex/a/d/6/ad6c79cc25e43bd22c60f930527222bb.png)
В частности, вычисление градиента квадратичной формы
![](../../../../img/tex/a/7/d/a7df7352293ab1aabe1e0abf33d3d47f.png)
может осуществляться полносвязной сетью с симметричной матрицей связей:
![](../../../../img/tex/7/9/c/79caa52b7a066224cb219a92214cfe71.png)
![](../../../../img/tex/3/f/1/3f123de01541d97e51b6684158a7d106.png)
Что можно сделать, если мы умеем вычислять градиент квадратичной формы?
В первую очередь, можно методом наискорейшего спуска искать точку минимума многочлена второго порядка. Пусть задан такой многочлен:
![](../../../../img/tex/5/3/2/532626e0ddc8ba76b5796bf3ef25ce35.png)
![](../../../../img/tex/9/3/8/93873dbb0edea8b2bb208bac83931c92.png)
![](../../../../img/tex/3/f/1/3f123de01541d97e51b6684158a7d106.png)
Зададим теперь функционирование сети формулой
![]() |
(8) |
Нелинейных элементов вовсе не нужно! Каждый (j-й) нейрон имеет входные веса
![](../../../../img/tex/7/6/8/76847e7ab3f7a6d46b38ecabb00f8f23.png)
![](../../../../img/tex/e/5/f/e5f30823b5dce09a5d1c1d11f0d82e79.png)
![](../../../../img/tex/4/3/5/435e8bb47460bc8b2c055424dd46d626.png)
![](../../../../img/tex/2/6/f/26f82c5ffa7f3295218eaa05977d4657.png)
Выбор шага h>0 может вызвать затруднение ( он зависит от коэффициентов минимизируемого многочлена). Есть, однако, простое решение: в каждый момент дискретного времени T выбирается свое значение
![](../../../../img/tex/9/6/6/96685fbfa497a161d765b3d3209a7d49.png)
![](../../../../img/tex/5/e/f/5efb258e0acde8e8e9f0a12ea35ab24b.png)
![](../../../../img/tex/9/2/c/92c1a0dfae9a990ddf4c33249d128b51.png)
Итак, простая симметричная полносвязная сеть без нелинейных элементов может методом наискорейшего спуска искать точку минимума квадратичного многочлена.
Решение системы линейных уравнений
![](../../../../img/tex/a/d/f/adfb8a7a5e5c8de049c190b871e8c304.png)
![](../../../../img/tex/b/a/c/bac2465d2e2ec301d5746f2dd4ce84e9.png)
Поэтому решение системы может производиться нейронной сетью. Простейшая сеть, вычисляющая градиент этого многочлена, не полносвязна, а состоит из двух слоев: первый с матрицей связей A, второй - с транспонированной матрицей
![](../../../../img/tex/4/e/9/4e9dc34c364c79e1cf54adf2264daec3.png)
![](../../../../img/tex/0/e/d/0ed652be6ac7e9465c4a91887b50fc00.png)
![](../../../../img/tex/8/3/e/83e6f5073f39a86306eb7cf21e920044.png)
Небольшая модификация позволяет вместо безусловного минимума многочлена второго порядка P искать точку условного минимума с условиями
![](../../../../img/tex/c/c/5/cc513649965c074220f1848b98a23c7f.png)
![](../../../../img/tex/b/a/f/bafdd75dc9deb0f16043c13763cc8ee8.png)
![](../../../../img/tex/2/f/4/2f4b43d2e23bd6fc7e6c6646843b1bb9.png)
следует использовать:
![](../../../../img/tex/5/8/6/58639940bfe467af6900068f99712d29.png)
при
![](../../../../img/tex/c/2/3/c2303045dbb92d2f0c3d2ba3faeed141.png)
![]() | (9) |
![](../../../../img/tex/c/b/f/cbf00e7037177cb490673164cb04656b.png)
![](../../../../img/tex/e/3/8/e3889e7a7776145ec75cd9ceb40b7b3f.png)
где m - число элементов в выборке, верхний индекс j - номер вектора данных в выборке, верхний индекс Т означает транспонирование, а
![](../../../../img/tex/9/7/6/9763b3c12fc0e3cd4656d55ef306385c.png)
Пусть у вектора данных x известно несколько координат:
![](../../../../img/tex/c/c/5/cc513649965c074220f1848b98a23c7f.png)
![](../../../../img/tex/b/a/f/bafdd75dc9deb0f16043c13763cc8ee8.png)
![](../../../../img/tex/2/9/7/297ca3f8ab5d4478f58a8df2b08f3311.png)
![](../../../../img/tex/c/c/5/cc513649965c074220f1848b98a23c7f.png)
![](../../../../img/tex/b/a/f/bafdd75dc9deb0f16043c13763cc8ee8.png)
Таким образом, чтобы построить сеть, заполняющую пробелы в данных, достаточно сконструировать сеть для поиска точек условного минимума многочлена
![](../../../../img/tex/9/7/2/97233e4dd6da7d1ee8c0350e45443e29.png)
при условиях следующего вида:
![](../../../../img/tex/c/c/5/cc513649965c074220f1848b98a23c7f.png)
![](../../../../img/tex/b/a/f/bafdd75dc9deb0f16043c13763cc8ee8.png)
![](../../../../img/tex/5/3/a/53acc714bd2093d69716740f6c6797ce.png)
На первый взгляд, пошаговое накопление
![](../../../../img/tex/5/3/a/53acc714bd2093d69716740f6c6797ce.png)
![](../../../../img/tex/5/3/a/53acc714bd2093d69716740f6c6797ce.png)
![](../../../../img/tex/e/f/6/ef64bee241e49878c2fc8c9c6d1533a9.png)
Если же добавка ? имеет вид
![](../../../../img/tex/f/a/f/fafcaf0e76b016670eb3371f66b29751.png)
![]() | (10) |
![](../../../../img/tex/f/e/f/fef8dc9beb7628a49b7723858e05223c.png)
где 1 - единичная матрица, ?>0 - достаточно малое число,
![](../../../../img/tex/2/b/f/2bf985389e518957a5394d8ca0a0da06.png)
![](../../../../img/tex/f/3/a/f3a88dd6f155eb14f671a9df77e92469.png)
![](../../../../img/tex/2/b/f/2bf985389e518957a5394d8ca0a0da06.png)
![](../../../../img/tex/f/4/3/f43685252b3248bde43b5b7dca680829.png)
В формуле для пошагового накопления матрицы Q ее изменение ?Q при появлении новых данных получается с помощью вектора
![](../../../../img/tex/5/4/5/545dee54e754a905583f8556fc6450f9.png)
![](../../../../img/tex/f/2/0/f2055631abd798c9e9759730763c5560.png)
Описанный процесс формирования сети можно назвать обучением. Вообще говоря, можно проводить формальное различение между формированием сети по явным формулам и по алгоритмам, не использующим явных формул для весов связей (неявным). Тогда термин "обучение" предполагает неявные алгоритмы, а для явных остается название "формирование".
Здесь мы такого различия проводить не будем.
Если при обучении сети поступают некомплектные данные
![](../../../../img/tex/2/b/f/2bf985389e518957a5394d8ca0a0da06.png)
Во всех задачах оптимизации существенную роль играет вопрос о правилах остановки: когда следует прекратить циклическое функционирование сети, остановиться и считать полученный результат ответом? Простейший выбор - остановка по малости изменений: если изменения сигналов сети за цикл меньше некоторого фиксированного малого ? (при использовании переменного шага ? может быть его функцией), то оптимизация заканчивается.
До сих пор речь шла о минимизации положительно определенных квадратичных форм и многочленов второго порядка. Однако самое знаменитое приложение полносвязных сетей связано с увеличением значений положительно определенных квадратичных форм. Речь идет о системах ассоциативной памяти [2.4, 2.5, 2.6, 2.7, 2.9, 2.10, 2.12].
Предположим, что задано несколько эталонных векторов данных
![](../../../../img/tex/c/a/8/ca84b58a53393b4cee3db09ab99e2b31.png)
![]() | (11) |
![](../../../../img/tex/5/b/b/5bbd2904693d3174b11af56248f82962.png)
Ограничимся рассмотрением эталонов, и ожидаемых результатов обработки с координатами
![](../../../../img/tex/7/9/4/79411806c67488764b9519447274a415.png)
![]() | (12) |
Функция H называется "энергией" сети, она минимизируется в ходе функционирования. Слагаемое
![](../../../../img/tex/9/e/e/9eef8b711a4026c341490c193a95f29b.png)
![](../../../../img/tex/5/7/f/57f9335712510c2de5906b1899c3614e.png)
![](../../../../img/tex/7/9/4/79411806c67488764b9519447274a415.png)
Параметр ? определяет соотношение между интенсивностями этих двух процессов. Целесообразно постепенно менять ? со временем, начиная с малых ?<1, и приходя в конце концов к ?>1.
Подробнее системы ассоциативной памяти рассмотрены в отдельной лекции. Здесь же мы ограничимся обсуждением получающихся весов связей. Матрица связей построенной сети определяется функцией
![](../../../../img/tex/9/e/e/9eef8b711a4026c341490c193a95f29b.png)
![](../../../../img/tex/e/c/a/eca293166d26112e1d9540d9c573d536.png)
![]() | (13) |
![](../../../../img/tex/7/8/d/78d30b992c98702f8020b5cca401153c.png)
В результате возбуждение i-го нейрона передается j-му (и симметрично, от j-го к i-му), если у большинства эталонов знак i-й и j-й координат совпадают. В противном случае эти нейроны тормозят друг друга: возбуждение i-го ведет к торможению j-го, торможение i-го - к возбуждению j-го (воздействие j-го на i-й симметрично). Это правило образования ассоциативных связей (правило Хебба) сыграло огромную роль в теории нейронных сетей.