Нейросетевая оптимизация
Оптимизация и сеть Хопфилда
В 1985г. Хопфилд и Танк предложили использовать минимизирующие энергию нейронные сети для решения задач оптимизации (Hopfield & Tank, 1985). В качестве примера они, естественно, рассмотрели задачу коммивояжера.
Для решения этой задачи с помощью нейронной сети Хопфилда нужно закодировать маршрут активностью нейронов и так подобрать связи между ними, чтобы энергия сети оказалась связанной с полной длиной маршрута. Хопфилд и Танк предложили для этого следующий способ.
Рассмотрим сеть, состоящую из бинарных нейронов, состояния которых мы обозначим
, где индекс
кодирует город, а индекс
-
номер города в маршруте (см.
рисунок 6.1). Если обозначить через
расстояние между
-м и
-м городами, решение задачи коммивояжера
сводится к минимизации целевой функции
![L(\nu)=\frac{1}{2}\sum_{i,j,\alpha}^{i\neq
j}d_{ij}\nu_{i\alpha}\left(\nu_{j \alpha-1}+\nu_{j \alpha+1}\right)](/sites/default/files/tex_cache/0fcf2bed9e21d04a82aacf4c09635a94.png)
![\sum_i \nu_{i\alpha}=1 (\forall\alpha),](/sites/default/files/tex_cache/3c48d322ebcfff3842145211014302c1.png)
![\sum_\alpha \nu_{i\alpha}=1 (\forall i)](/sites/default/files/tex_cache/029a1acc58daca31a2c78a8a9350fcd0.png)
Общий подход к ограничениям в задачах оптимизации состоит в том, что в итоговый функционал, подлежащий минимизации, включаются штрафные члены, увеличивающие целевую функцию при отклонении от накладываемых ограничений. В данном случае в качестве энергии состояния сети можно выбрать функционал
![E(\nu)=\frac{1}{2}\sum^{i\neq
j}_{i,j,\alpha}d_{ij}\nu_{i\alpha}\left(\nu_{j
\alpha-1}+\nu_{j\alpha+1}\right)+\\\frac{\gamma}{2}\left[\sum_{\alpha}\left(\sum_{i}\nu_{i\alpha}-1\right)^2+\sum_{i}\left(\sum_{\alpha}\nu_{i\alpha}-1\right)^2\right],](/sites/default/files/tex_cache/a25c90b4ad73f8d7041cce4869abe277.png)
![\gamma](/sites/default/files/tex_cache/ae539dfcc999c28e25a0f3ae65c1de79.png)
![Слева - один из возможных маршрутов коммивояжера в случае задачи с 5 городами. Справа - кодировка этого маршрута состояниями 25 бинарных нейронов](/EDI/08_01_19_2/1546899581-11707/tutorial/240/objects/6/files/06-01.gif)
Рис. 6.1. Слева - один из возможных маршрутов коммивояжера в случае задачи с 5 городами. Справа - кодировка этого маршрута состояниями 25 бинарных нейронов
Осмысленному решению будет соответствовать стационарное состояние сети, в котором лишь нейронов сети будут активными
(
) и в
каждом столбце и в каждой строке матрицы
будет находиться один и только один единичный элемент.
Величина множителя Лагранжа регулирует "торг" между поиском маршрута минимальной протяженности и осмысленностью вида
самого маршрута. Частное решение, соответствующее локальному минимуму функционала
может быть осмысленным (второе слагаемое обращаются
на нем в ноль), но первое слагаемое (длина маршрута) для него, возможно будет слишком велико. Наоборот, длина маршрута может быть
достаточно мала, но одно из оставшихся слагаемых будет ненулевым и маршрут окажется не интерпретируем или недостаточен (например,
проходит не через все города).
После того, как минимизируемая целевая функция для задачи коммивояжера построена, можно определить, какие связи в нейронной
сети Хопфилда следует выбрать, так чтобы функционал энергии состояния в ней совпал с этой функцией. Для этого достаточно приравнять
выражение для к энергии рекуррентной сети:
![E(\nu)=\frac{1}{2}\sum^{i\neq
j}_{i,j,}\sum_{\alpha,\beta}^{\alpha\neq\beta}w_{i\alpha
j\beta}\nu_{i\alpha}\nu_{j\beta}+\sum_{i,\alpha}\vartheta_{i\alpha}\nu_{i\alpha}.](/sites/default/files/tex_cache/aa9ea96f8ce078a96d3aec1c6a0487ac.png)
Таким образом находятся значения синаптических связей в сети:
![w_{i\alpha j\beta}=-d_{ij}(\delta_{\alpha-1 \beta}+\delta_{\alpha+1
\beta})\gamma\delta_{\alpha\beta}-\gamma\delta_{ij}](/sites/default/files/tex_cache/1a9d7f644bb11acbbb018e27c5b3b9ed.png)
![\vartheta_{i\alpha}](/sites/default/files/tex_cache/7b471c08e2b7e2a75a4363bb6a5c0cad.png)
![N^3.](/sites/default/files/tex_cache/8278cbab2b7cc7f93314fb12f631f416.png)
![(0,\ldots,1,\ldots,0),](/sites/default/files/tex_cache/64d29744aac1305da9f07261ba8f2b4a.png)
После того как сеть построена, можно, стартуя со случайного начального состояния, проследить ее эволюцию к стационарной конфигурации, которая может дать если не оптимальное, то по крайней мере хорошее решение задачи. К сожалению, в описанном виде сеть чаще всего "застревает" в локальном минимуме относительно далеком от оптимума.
Для улучшения ситуации Хопфилд и Танк предложили использовать сети с непрерывными (аналоговыми) нейронами, принимающими любые
значения в интервале 2Состояния аналоговых нейронов мы обозначаем латинскими буквами, тогда как состояния бинарных нейронов - греческими.
В качестве тестовых они использовали задачи с 10 и 30 городами. В первом случае сеть в 20 попытках 16 раз
эволюционировала к состояниям, описывающим осмысленный маршрут и в 10 случаях давала один из двух возможных оптимальных маршрутов.
Поскольку для задачи с
городами полное число всевозможных маршрутов равно
!(делитель
возникает вследствие инвариантности маршрута
относительно циклического сдвига и обращения направления движения), то в задаче с 10 городами оно составляет 181440. Таким образом,
выигрыш при использовании сети, по сравнению со случайным выбором составляет
. В случае задачи с 30 городами полное число маршрутов
приблизительно равно
. Экономия, даваемая сетью, составила в этом случае
. В дальнейшем было показано, что использование
сети Кохонена дает лучшие результаты при решении той же задачи. Однако, поскольку на практике (в робототехнике, при проведении стыковки космических аппаратов, в автоматической навигации) необходимо быстро находить хорошее,
но не обязательно лучшее решение, то при электронной реализации аналоговая сеть Хопфилда дает исключительно эффективное решение задач
оптимизации.
В дальнейшем разные исследователи выявили и другие особенности описанного подхода. Было показано, что недостатком оригинальной схемы Хопфилда и Танка является то, что простейшая сеть Хопфилда имеет тенденцию включать в маршрут ближайшие друг к другу города. Это происходит из-за того, что в определяющую длину маршрута часть функции Ляпунова входят парные произведения состояний нейронов сети. В результате, с увеличением числа городов маршрут, предлагаемый сетью, как правило, распадается на локально оптимальные участки, соединение которых, однако, далеко от оптимального. Ситуацию можно улучшить, если стимулировать сеть находить, например, локально наилучшие тройки городов. Для этого основная часть функции Ляпунова может быть представлена в виде
![\sum^{i\neq j\neq k}_{i,j,k,\alpha}
(d_{ij}+d_{jk})x_{i\alpha}x_{j\alpha+1}x_{k\alpha+2}.](/sites/default/files/tex_cache/c6d3425f3a084194d1ebb1e559dba6e3.png)
Однако, сети, динамика которых направляется такой функцией Ляпунова, должны состоять из более сложных нейронов, нелинейно суммирующих внешние воздействия - нейронов высокого порядка ( в данном случае - второго):
![h_i=\vartheta_i+\sum_{j}w_{ij}x_{j}+\sum_{j,k}w_{ijk}x_{j}x_{k}.](/sites/default/files/tex_cache/fb86bc926b71df7d06f366a2a4748b22.png)
Купер показал, что использование таких сетей значительно улучшает результаты поиска оптимального решения. Так для такая сеть
вдвое чаще находит оптимальное решение, чем обычная сеть Хопфилда. Повышение порядка сети приводит к дальнейшему улучшению
найденных сетью решений.
Отметим в заключение, что мы упомянули только о небольшой части разработанных к настоящему времени способов улучшения свойств минимизирующих энергию нейронных сетей при решения задач оптимизации.