CMA-ES - CMA-ES

Стратегия эволюции адаптации ковариационной матрицы (CMA-ES) - это особый вид стратегии численной оптимизации . Стратегии Evolution (ES) являются стохастическими , производными свободными методами для численной оптимизации в не- линейного или не- выпуклой непрерывной оптимизации задач. Они относятся к классу эволюционных алгоритмов и эволюционных вычислений . Эволюционный алгоритм в целом основан на принципе биологической эволюции , а именно повторное взаимодействие вариации (через рекомбинацию и мутацию) , а также выбор: в каждом поколении (итерация) новые лица (кандидаты решения, обозначенные как ) генерируются вариациями, как правило , в стохастический способ текущих родительских особей. Затем некоторые люди выбираются, чтобы стать родителями в следующем поколении, на основе их приспособленности или значения целевой функции . Таким образом, в последовательности поколений создаются люди с лучшими и лучшими ценностями.

В стратегии эволюции новые возможные решения отбираются в соответствии с многомерным нормальным распределением в . Рекомбинация сводится к выбору нового среднего значения для распределения. Мутация сводится к добавлению случайного вектора, возмущения с нулевым средним. Парные зависимости между переменными в распределении представлены ковариационной матрицей . Адаптация ковариационной матрицы (CMA) - это метод обновления ковариационной матрицы этого распределения. Это особенно полезно , если функция является плохо обусловленной .

Адаптация ковариационной матрицы сводится к изучению модели второго порядка базовой целевой функции, аналогичной аппроксимации обратной матрицы Гессе в квазиньютоновском методе при классической оптимизации . В отличие от большинства классических методов делается меньше предположений о природе основной целевой функции. Для изучения выборочного распределения используется только ранжирование возможных решений, и метод не требует ни производных, ни даже самих значений функций.

Принципы

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

В алгоритме CMA-ES используются два основных принципа адаптации параметров поискового распределения.

Во-первых, принцип максимального правдоподобия , основанный на идее увеличения вероятности успешных возможных решений и шагов поиска. Среднее значение распределения обновляется таким образом, чтобы вероятность ранее успешных решений-кандидатов была максимальной. Ковариационная матрица распределения обновляется (пошагово) таким образом, что вероятность ранее успешных шагов поиска увеличивается. Оба обновления можно интерпретировать как естественный градиентный спуск. Кроме того, как следствие, CMA проводит повторный анализ главных компонентов успешных шагов поиска, сохраняя при этом все главные оси. Оценка алгоритмов распределения и метода кросс-энтропии основаны на очень похожих идеях, но оценивают (без приращения) ковариационную матрицу, максимизируя вероятность успешных точек решения вместо успешных шагов поиска .

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

Алгоритм

Далее описывается наиболее часто используемый ( μ / μ w λ ) -CMA-ES, где на каждом шаге итерации для обновления параметров распределения используется взвешенная комбинация μ лучших из λ новых возможных решений. Основной цикл состоит из трех основных частей: 1) выборка новых решений, 2) изменение порядка выбранных решений на основе их соответствия, 3) обновление переменных внутреннего состояния на основе переупорядоченных выборок. Псевдокод алгоритма выглядит следующим образом .

set   // number of samples per iteration, at least two, generally > 4
initialize , , , ,   // initialize state variables
while not terminate do  // iterate
    for  in  do  // sample  new solutions and evaluate them
        sample_multivariate_normal(mean, covariance_matrix)
        
     with  // sort solutions
      // we need later  and        
     ← update_m  // move mean to better solutions 
     ← update_ps  // update isotropic evolution path
     ← update_pc  // update anisotropic evolution path
     ← update_C  // update covariance matrix
     ← update_sigma  // update step-size using isotropic path length
return  or 

Порядок пяти заданий обновления актуальна: необходимо обновить первым, и должны обновляться до , и должны быть обновлены последними. Далее указаны уравнения обновления для пяти переменных состояния.

Даны размер пространства поиска и шаг итерации . Пять переменных состояния:

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

Итерация начинается с выборки возможных решений из многомерного нормального распределения , т. Е. Для

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

новое среднее значение вычисляется как

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

Размер шага обновляется с использованием кумулятивной адаптации размера шага (CSA), иногда также обозначаемой как управление длиной пути . Сначала обновляется путь эволюции (или путь поиска) .

куда

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

Размер шага увеличивается тогда и только тогда, когда он больше ожидаемого значения.

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

Наконец, обновляется ковариационная матрица , причем сначала обновляется соответствующий путь эволюции.

где обозначает транспонирование и

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

Ковариационная матрица обновления приводит к увеличению вероятности для и должны быть взяты пробы из . На этом этап итерации завершен.

Число выборок-кандидатов на итерацию не определяется априори и может варьироваться в широких пределах. Например , меньшие значения приводят к более локальному поиску. Большие значения, например, со значением по умолчанию , делают поиск более глобальным. Иногда алгоритм многократно перезапускается с увеличением в два раза при каждом перезапуске. Помимо настройки (или, возможно, вместо этого, если, например, это предопределено количеством доступных процессоров), введенные выше параметры не являются специфическими для данной целевой функции и, следовательно, не предназначены для изменения пользователем.

Пример кода в MATLAB / Octave

function xmin=purecmaes   % (mu/mu_w, lambda)-CMA-ES
  % --------------------  Initialization --------------------------------  
  % User defined input parameters (need to be edited)
  strfitnessfct = 'frosenbrock';  % name of objective/fitness function
  N = 20;               % number of objective variables/problem dimension
  xmean = rand(N,1);    % objective variables initial point
  sigma = 0.3;          % coordinate wise standard deviation (step size)
  stopfitness = 1e-10;  % stop if fitness < stopfitness (minimization)
  stopeval = 1e3*N^2;   % stop after stopeval number of function evaluations
  
  % Strategy parameter setting: Selection  
  lambda = 4+floor(3*log(N));  % population size, offspring number
  mu = lambda/2;               % number of parents/points for recombination
  weights = log(mu+1/2)-log(1:mu)'; % muXone array for weighted recombination
  mu = floor(mu);        
  weights = weights/sum(weights);     % normalize recombination weights array
  mueff=sum(weights)^2/sum(weights.^2); % variance-effectiveness of sum w_i x_i

  % Strategy parameter setting: Adaptation
  cc = (4+mueff/N) / (N+4 + 2*mueff/N);  % time constant for cumulation for C
  cs = (mueff+2) / (N+mueff+5);  % t-const for cumulation for sigma control
  c1 = 2 / ((N+1.3)^2+mueff);    % learning rate for rank-one update of C
  cmu = min(1-c1, 2 * (mueff-2+1/mueff) / ((N+2)^2+mueff));  % and for rank-mu update
  damps = 1 + 2*max(0, sqrt((mueff-1)/(N+1))-1) + cs; % damping for sigma 
                                                      % usually close to 1
  % Initialize dynamic (internal) strategy parameters and constants
  pc = zeros(N,1); ps = zeros(N,1);   % evolution paths for C and sigma
  B = eye(N,N);                       % B defines the coordinate system
  D = ones(N,1);                      % diagonal D defines the scaling
  C = B * diag(D.^2) * B';            % covariance matrix C
  invsqrtC = B * diag(D.^-1) * B';    % C^-1/2 
  eigeneval = 0;                      % track update of B and D
  chiN=N^0.5*(1-1/(4*N)+1/(21*N^2));  % expectation of 
                                      %   ||N(0,I)|| == norm(randn(N,1)) 
  % -------------------- Generation Loop --------------------------------
  counteval = 0;  % the next 40 lines contain the 20 lines of interesting code 
  while counteval < stopeval
    
      % Generate and evaluate lambda offspring
      for k=1:lambda
          arx(:,k) = xmean + sigma * B * (D .* randn(N,1)); % m + sig * Normal(0,C) 
          arfitness(k) = feval(strfitnessfct, arx(:,k)); % objective function call
          counteval = counteval+1;
      end
    
      % Sort by fitness and compute weighted mean into xmean
      [arfitness, arindex] = sort(arfitness); % minimization
      xold = xmean;
      xmean = arx(:,arindex(1:mu))*weights;   % recombination, new mean value
    
      % Cumulation: Update evolution paths
      ps = (1-cs)*ps ... 
            + sqrt(cs*(2-cs)*mueff) * invsqrtC * (xmean-xold) / sigma; 
      hsig = norm(ps)/sqrt(1-(1-cs)^(2*counteval/lambda))/chiN < 1.4 + 2/(N+1);
      pc = (1-cc)*pc ...
            + hsig * sqrt(cc*(2-cc)*mueff) * (xmean-xold) / sigma;

      % Adapt covariance matrix C
      artmp = (1/sigma) * (arx(:,arindex(1:mu))-repmat(xold,1,mu));
      C = (1-c1-cmu) * C ...                  % regard old matrix  
           + c1 * (pc*pc' ...                 % plus rank one update
                   + (1-hsig) * cc*(2-cc) * C) ... % minor correction if hsig==0
           + cmu * artmp * diag(weights) * artmp'; % plus rank mu update

      % Adapt step size sigma
      sigma = sigma * exp((cs/damps)*(norm(ps)/chiN - 1)); 
    
      % Decomposition of C into B*diag(D.^2)*B' (diagonalization)
      if counteval - eigeneval > lambda/(c1+cmu)/N/10  % to achieve O(N^2)
          eigeneval = counteval;
          C = triu(C) + triu(C,1)'; % enforce symmetry
          [B,D] = eig(C);           % eigen decomposition, B==normalized eigenvectors
          D = sqrt(diag(D));        % D is a vector of standard deviations now
          invsqrtC = B * diag(D.^-1) * B';
      end
    
      % Break, if fitness is good enough or condition exceeds 1e14, better termination methods are advisable 
      if arfitness(1) <= stopfitness || max(D) > 1e7 * min(D)
          break;
      end

  end % while, end generation loop

  xmin = arx(:, arindex(1)); % Return best point of last iteration.
                             % Notice that xmean is expected to be even
                             % better.
end
% ---------------------------------------------------------------  
function f=frosenbrock(x)
    if size(x,1) < 2 error('dimension must be greater one'); end
    f = 100*sum((x(1:end-1).^2 - x(2:end)).^2) + sum((x(1:end-1)-1).^2);
end

Теоретические основы

Учитывая параметры среднеквадратичных распределения, дисперсия и ковариация- нормальное распределение вероятностей для отбора новых решений - кандидатов является распределение максимальной вероятности энтропии над , то есть распределением выборки с минимальным количеством априорной информации , встроенной в дистрибутив. Дополнительные сведения об уравнениях обновления CMA-ES приведены ниже.

Переменная метрика

CMA-ES реализует стохастический метод переменной метрики . В самом частном случае выпукло-квадратичной целевой функции

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

Обновления с максимальной вероятностью

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

куда

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

Обновление ранга ковариационной матрицы, то есть самого правого слагаемого в уравнении обновления , максимизирует логарифмическую вероятность в этом

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

Естественный градиентный спуск в пространстве выборочных распределений

Акимото и др. и Glasmachers et al. независимо обнаружил, что обновление параметров распределения напоминает спуск в направлении выбранного естественного градиента ожидаемого значения целевой функции (которое должно быть минимизировано), где математическое ожидание берется под выборочное распределение. Таким образом, с установкой параметров и , т. Е. Без управления размером шага и обновления ранга один, CMA-ES можно рассматривать как реализацию Стратегии естественного развития (NES). Естественный градиент не зависит от параметризации распределения. Взятый по параметрам θ выборочного распределения p , градиент может быть выражен как

где зависит от вектора параметров . Так называемая оценка функции , указывает на относительную чувствительность р WRT & thetas , и ожидание берется по распределению р . Естественный градиент от , с соблюдением информационной метрикой Фишера (информационная мера расстояния между вероятностными распределениями и кривизной относительной энтропии ), теперь читает

где информация Фишера матрица является ожидание гессианом из -ln р и оказывает выражение не зависящее от выбранной параметризации. Комбинируя предыдущие равенства, получаем

Аппроксимация последнего математического ожидания методом Монте-Карло берет среднее по λ выборкам из p

где использованы обозначения сверху и поэтому монотонно убывают по .

Ollivier et al. наконец, нашел строгий вывод для более надежных весов, как они определены в CMA-ES (веса часто равны нулю при i > μ ). Они сформулированы в виде последовательной оценки для ВПРА из в точке , в составе с фиксированным однообразно уменьшился преобразование , то есть,

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

такова плотность многомерного нормального распределения . Тогда у нас есть явное выражение для обратной информационной матрицы Фишера, где фиксировано

и для

и после некоторых расчетов обновления в CMA-ES оказываются как

и

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

Стационарность или беспристрастность

Сравнительно легко увидеть, что обновляемые уравнения CMA-ES удовлетворяют некоторым условиям стационарности в том смысле, что они по существу несмещены. При нейтральном выборе, где мы находим, что

и при некоторых мягких дополнительных предположениях на начальные условия

и с дополнительной незначительной поправкой в ​​обновлении ковариационной матрицы для случая, когда индикаторная функция оценивается как ноль, мы находим

Инвариантность

Свойства инвариантности подразумевают равномерное выполнение класса целевых функций. Утверждалось, что они являются преимуществом, потому что они позволяют обобщать и прогнозировать поведение алгоритма и, следовательно, усиливают смысл эмпирических результатов, полученных для отдельных функций. Для CMA-ES установлены следующие свойства инвариантности.

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

Любой серьезный метод оптимизации параметров должен быть инвариантным к трансляции, но большинство методов не обладают всеми описанными выше свойствами инвариантности. Ярким примером с такими же свойствами инвариантности является метод Нелдера – Мида , в котором исходный симплекс должен быть выбран соответственно.

Конвергенция

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

для некоторых и более строго

или аналогично,

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

Интерпретация как преобразование системы координат

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

может быть эквивалентно выражено в "закодированном пространстве" как

Ковариационная матрица определяет биективное преобразование (кодирование) для всех векторов решений в пространство, где происходит выборка с помощью единичной ковариационной матрицы. Поскольку уравнения обновления в CMA-ES инвариантны относительно преобразований линейной системы координат, CMA-ES можно переписать как процедуру адаптивного кодирования, применяемую к простой стратегии эволюции с тождественной ковариационной матрицей. Эта процедура адаптивного кодирования не ограничивается алгоритмами, которые выбирают из многомерного нормального распределения (например, стратегии эволюции), но в принципе может применяться к любому методу итеративного поиска.

Производительность на практике

В отличие от большинства других эволюционных алгоритмов , CMA-ES с точки зрения пользователя квазипараметрический. Пользователь должен выбрать начальную точку раствора, и начальный размер шага, . Необязательно, количество выборок-кандидатов λ (размер популяции) может быть изменено пользователем, чтобы изменить характерное поведение поиска (см. Выше), а условия завершения могут или должны быть скорректированы в соответствии с имеющейся проблемой.

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

Размер области поиска обычно составляет от двух до нескольких сотен. Предполагая сценарий оптимизации черного ящика, где градиенты недоступны (или бесполезны), а оценки функций являются единственной рассматриваемой стоимостью поиска, метод CMA-ES, вероятно, будет лучше других методов в следующих условиях:

  • на низкоразмерных функциях, например , с помощью симплекс-метода спуска или методов на основе суррогатов (например, кригинга с ожидаемым улучшением);
  • на разделяемых функциях без или с незначительными зависимостями между проектными переменными, в частности, в случае многомодальности или большой размерности, например, путем дифференциальной эволюции ;
  • на (почти) выпуклые -Квадратные функции с низким или умеренной обусловленностью из матрицы Гесса , где BFGS или NEWUOA , как правило , в десять раз быстрее;
  • на функциях, которые уже могут быть решены с помощью сравнительно небольшого количества вычислений функций, скажем, не более чем , где CMA-ES часто работает медленнее, чем, например, NEWUOA или многоуровневый поиск координат (MCS).

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

Варианты и расширения

(1 + 1) -CMA-ES генерирует только одно решение-кандидат на шаг итерации, которое становится новым средним распределением, если оно лучше текущего среднего. Для (1 + 1) -CMA-ES это близкий вариант гауссовой адаптации . Некоторые стратегии Natural Evolution являются близкими вариантами CMA-ES с определенными настройками параметров. Стратегии естественной эволюции не используют пути эволюции (что означает в настройке CMA-ES ) и формализуют обновление дисперсий и ковариаций по фактору Холецкого вместо ковариационной матрицы. CMA-ES также был расширен до многоцелевой оптимизации как MO-CMA-ES. Еще одним замечательным расширением стало добавление отрицательного обновления ковариационной матрицы с так называемым активным CMA. В настоящее время использование дополнительного активного обновления CMA считается вариантом по умолчанию.

Смотрите также

Рекомендации

Библиография

  • Хансен Н., Остермайер А. (2001). Полностью дерандомизированная самоадаптация в эволюционных стратегиях. Эволюционные вычисления , 9 (2) стр. 159–195. [1]
  • Хансен Н., Мюллер С.Д., Кумутсакос П. (2003). Снижение временной сложности стратегии дерандомизированной эволюции с помощью адаптации ковариационной матрицы (CMA-ES). Эволюционные вычисления , 11 (1) стр. 1–18. [2]
  • Хансен Н., Керн С. (2004). Оценка стратегии развития CMA на мультимодальных тестовых функциях. В Xin Yao et al., Редакторы, Parallel Problem Solving from Nature - PPSN VIII , pp. 282–291, Springer. [3]
  • Игель С., Хансен Н., Рот С. (2007). Адаптация ковариационной матрицы для многоцелевой оптимизации. Эволюционные вычисления , 15 (1) стр. 1–28. [4]

внешняя ссылка