Новосибирский Государственный Университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 2204 / 519 | Оценка: 4.52 / 4.28 | Длительность: 12:23:00
ISBN: 978-5-9556-0063-5
Специальности: Программист
Лекция 8:

Методы глобальной оптимизации

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >

Метод виртуальных частиц

Метод виртуальных (случайных) частиц может надстраиваться почти над любым методом оптимизации. Он создан для:

  1. повышения устойчивости обученных сетей;
  2. вывода сетей из возникающих при обучении локальных минимумов оценки.

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

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

Рассмотрим один из вариантов алгоритма виртуальных частиц. Пусть требуется найти минимум функции H_{pg}(w).Параметры сети разбиваются на группы структурно эквивалентных. Для каждой группы задается свой интервал случайных сдвигов. Определяется число виртуальных частиц n и генерируется n-1 случайных векторов r_1,r_2, \ldots, r_{n-1}. Их координаты независимо и равномерно распределены в заданных интервалах.

Начальное положение основной частицы - w^0. Начальное положение i -ой виртуальной частицы w^0 + r_i, i=1, \ldots, n-1. Случайный вектор для n -й виртуальной частицы строится так:

r_n=(r_1+r_2+\dots+r_{n-1})/n^{1/2} \eqno ( 1)

и её положение задается вектором w^0 + r_n. Всем частицам, кроме n -й, присваивается вес W, 0 < W < 1, n -я получает вес W_n=W/n^{1/2}. Далее минимизируется функция

\begin{align*}
H_W(w) = H_{pg}(w) + W(H_{pg}(w+r_1) + \dots\\
+ H_{pg}(w+r_{n-1})) + W_nH_{pg}(w+r_n).
\end{align*}

Алгоритм локальной оптимизации может быть выбран любой - от наискорейшего спуска и партан-методов до метода сопряженных градиентов. Выбор r_n в виде (1) и W_n=W/n^{1/2} определяется двумя обстоятельствами:

  1. для каждой координаты вектора r_n дисперсия будет совпадать с дисперсией координат векторов r_i, i=1, \ldots, n-1 ;
  2. для квадратичных H_{pg}(w) точки минимума H_{pg}(w) и H_W(w) совпадут.

В методе виртуальных частиц возникает важный вопрос: когда уничтожать имеющиеся виртуальные частицы и порождать новые?

Есть три варианта:

  1. Функция H_W(w) минимизируется до тех пор, пока скорость обучения не упадет ниже критической. После этого вновь производят случайные сдвиги частицы, и обучение продолжается.
  2. Порождение новых частиц производится после каждого цикла базового алгоритма оптимизации - при рестартах. Например, после каждого шага метода наискорейшего спуска, после партан-шага итерационного партан-метода и т.п.
  3. При каждом вычислении оценок и градиентов.

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

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

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

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

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >