Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. (липень 2013) |
CMA-ES означає Коваріаційна матриця стратегії еволюції адаптації.
Еволюційна стратегія (ЕС) є , похідною від методів чисельної оптимізації нелінійних або неопуклих проблем безперервної оптимізації. Вони належать до класу еволюційних алгоритмів і . Еволюційний алгоритм в цілому засновано на принципі біологічної еволюції, а саме повторній взаємодії варіації (через мутації і рекомбінації) і : в кожному поколінні (ітерації) нові особи (розв'язки) породжують зміни, а потім деякі генерації вибирають для наступного покоління на основі їх придатності або на основі цільової функції значення. Подібно до цього, в послідовності поколінь створюються все кращі генерації.
В еволюційній стратегії, нові рішення відбирають відповідно до багатовимірного нормального розподілу. Парні залежності між змінними в цьому розподілі представлені у коваріаційній матриці. Адаптація коваріаційної матриці (CMA) є методом для поновлення коваріаційної матриці цього розподілу. Це особливо корисно, якщо функція є погано обумовленою.
Адаптація коваріаційної матриці становить вивчення другого порядку моделі базової цільової функції, схоже на обчислення зворотної матриці Гессе в класичній оптимізації. На відміну від більшості класичних методів, виконується менше припущень про природу основної цільової функції. Тільки рейтинг між кандидатами на найкраще рішення використані для вивчення розподілу вибірки, і ні похідних, ні навіть самі значення функції не використовують.
Принципи
В CMA-ES алгоритмі використовують два основні принципи для адаптації параметрів розподілу пошуку.
По-перше, принцип максимальної правдоподібності, що заснована на ідеї, підвищення ймовірності успішного вирішення кандидатів і пошуку кроків. Середній розподіл оновлюється, та ймовірність вибрати минулі успішні рішення є максимальним. Коваріаційна матриця розподілу оновлюється (поступово), що збільшує ймовірність того що будуть повторені попередні успішні кроки пошуку. Обидва оновлення можна розглядати як природний градієнт спуску. Крім того, в результаті, CMA проводить повторний аналіз головних компонентів успішного кроку пошуку, зберігаючи при цьому всі головні осі. Оцінка розподілу алгоритмів і методу ґрунтується на дуже схожих ідеях, але оцінка коваріаційної матриці на максимальній ймовірності успішного вирішення вказується замість успішного пошуку кроку.
По-друге, існують два шляхи еволюції розподілу — пошук і розвиток шляхів. Ці шляхи містять важливу інформацію про кореляцію між послідовними кроками. Зокрема, якщо послідовні кроки йдуть в тому ж напрямку, еволюція шляхів стають довгою. Еволюція шляху експлуатується у двох напрямках. Один шлях використовується для адаптації процедури коваріаційної матриці замість одного успішного кроку пошуку і полегшує набагато швидше, дисперсією збільшення сприятливих напрямків. Інший шлях використовується для проведення додаткових змін розміру кроку управління. Розміру кроку управління прагне зробити послідовні рухи розподілу. Розмір кроку контролю ефективно запобігає передчасному зближенню та призводить до оптимального розв'язку.
Алгоритм
Відповідно до найбільш часто використовуваних (μ / μ W, λ)-CMA-ES створено алгоритм, де в кожній ітерації зважене поєднання μ з найкращим з рішень λ нового кандидата використовується для оновлення параметрів розподілу.
Основний цикл складається з трьох основних частин:
- відбір нових рішень,
- зміна порядку з обраних рішень, заснованих на їх придатність,
- оновлення внутрішніх змінних стану на основі повторного замовлення зразків.
Псевдокод алгоритму виглядає наступним чином.
set // number of samples per iteration, at least two, generally > 4 initialize , , , , // initialize state variables while not terminate // iterate for in // sample new solutions and evaluate them = sample_multivariate_normal(mean=, covariance_matrix=) = fitness() ← with = argsort(, ) // 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
Приклад коду в 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.5; % 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 = 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. % --------------------------------------------------------------- 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);
Практичне використання
На відміну від більшості інших еволюційних алгоритмів, CMA-ES майже не містить параметрів. Однак розмір популяції λ може бути змінений користувачем, щоб змінити поведінку характеру пошуку. CMA-ES була емпірично успішною в сотнях додатків і вважається корисною, зокрема, у випадку неопуклої, не сепарабельної, погано обумовленою, мультимодальної цільової функції. Розмірність простору пошуку коливається зазвичай від двох до кількох сотень. Якщо припустити, що оптимізація сценаріїв — це чорний ящик, де градієнтів немає і функція оцінки виражає вартість пошуку, CMA-ES метод, ймовірно, поступається іншим методам в наступних умовах:
- у випадку маломірних функцій, наприклад, симплекс-метод або сурогатні методи, засновані на сепарабельних функцій без залежностей між змінними проєктування, зокрема, у випадку мультимодальності;
- у випадку опукло-квадратичної функції з низьким або середнім числом обумовленості в матриці Гессе. (Тут BFGS або NEWUOA, як правило, в десять разів швидше);
- у випадку функції, яка може бути вирішена за допомогою порівняно невеликого числа оцінок функції, наприклад, NEWUOA або багаторівневий пошук координат (MCS).
Посилання
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya mistit pravopisni leksichni gramatichni stilistichni abo inshi movni pomilki yaki treba vipraviti Vi mozhete dopomogti vdoskonaliti cyu stattyu pogodivshi yiyi iz chinnimi movnimi standartami lipen 2013 CMA ES oznachaye Kovariacijna matricya strategiyi evolyuciyi adaptaciyi Evolyucijna strategiya ES ye pohidnoyu vid metodiv chiselnoyi optimizaciyi nelinijnih abo neopuklih problem bezperervnoyi optimizaciyi Voni nalezhat do klasu evolyucijnih algoritmiv i Evolyucijnij algoritm v cilomu zasnovano na principi biologichnoyi evolyuciyi a same povtornij vzayemodiyi variaciyi cherez mutaciyi i rekombinaciyi i v kozhnomu pokolinni iteraciyi novi osobi rozv yazki porodzhuyut zmini a potim deyaki generaciyi vibirayut dlya nastupnogo pokolinnya na osnovi yih pridatnosti abo na osnovi cilovoyi funkciyi znachennya Podibno do cogo v poslidovnosti pokolin stvoryuyutsya vse krashi generaciyi V evolyucijnij strategiyi novi rishennya vidbirayut vidpovidno do bagatovimirnogo normalnogo rozpodilu Parni zalezhnosti mizh zminnimi v comu rozpodili predstavleni u kovariacijnij matrici Adaptaciya kovariacijnoyi matrici CMA ye metodom dlya ponovlennya kovariacijnoyi matrici cogo rozpodilu Ce osoblivo korisno yaksho funkciya ye pogano obumovlenoyu Adaptaciya kovariacijnoyi matrici stanovit vivchennya drugogo poryadku modeli bazovoyi cilovoyi funkciyi shozhe na obchislennya zvorotnoyi matrici Gesse v klasichnij optimizaciyi Na vidminu vid bilshosti klasichnih metodiv vikonuyetsya menshe pripushen pro prirodu osnovnoyi cilovoyi funkciyi Tilki rejting mizh kandidatami na najkrashe rishennya vikoristani dlya vivchennya rozpodilu vibirki i ni pohidnih ni navit sami znachennya funkciyi ne vikoristovuyut PrincipiKoncepciya adaptaciyi kovariacijnoyi matrici U pokolinnyah rozpodil form mozhe adaptuvatisya do elipsoyidalnoyi abo formi hrebta V CMA ES algoritmi vikoristovuyut dva osnovni principi dlya adaptaciyi parametriv rozpodilu poshuku Po pershe princip maksimalnoyi pravdopodibnosti sho zasnovana na ideyi pidvishennya jmovirnosti uspishnogo virishennya kandidativ i poshuku krokiv Serednij rozpodil onovlyuyetsya ta jmovirnist vibrati minuli uspishni rishennya ye maksimalnim Kovariacijna matricya rozpodilu onovlyuyetsya postupovo sho zbilshuye jmovirnist togo sho budut povtoreni poperedni uspishni kroki poshuku Obidva onovlennya mozhna rozglyadati yak prirodnij gradiyent spusku Krim togo v rezultati CMA provodit povtornij analiz golovnih komponentiv uspishnogo kroku poshuku zberigayuchi pri comu vsi golovni osi Ocinka rozpodilu algoritmiv i metodu gruntuyetsya na duzhe shozhih ideyah ale ocinka kovariacijnoyi matrici na maksimalnij jmovirnosti uspishnogo virishennya vkazuyetsya zamist uspishnogo poshuku kroku Po druge isnuyut dva shlyahi evolyuciyi rozpodilu poshuk i rozvitok shlyahiv Ci shlyahi mistyat vazhlivu informaciyu pro korelyaciyu mizh poslidovnimi krokami Zokrema yaksho poslidovni kroki jdut v tomu zh napryamku evolyuciya shlyahiv stayut dovgoyu Evolyuciya shlyahu ekspluatuyetsya u dvoh napryamkah Odin shlyah vikoristovuyetsya dlya adaptaciyi proceduri kovariacijnoyi matrici zamist odnogo uspishnogo kroku poshuku i polegshuye nabagato shvidshe dispersiyeyu zbilshennya spriyatlivih napryamkiv Inshij shlyah vikoristovuyetsya dlya provedennya dodatkovih zmin rozmiru kroku upravlinnya Rozmiru kroku upravlinnya pragne zrobiti poslidovni ruhi rozpodilu Rozmir kroku kontrolyu efektivno zapobigaye peredchasnomu zblizhennyu ta prizvodit do optimalnogo rozv yazku AlgoritmVidpovidno do najbilsh chasto vikoristovuvanih m m W l CMA ES stvoreno algoritm de v kozhnij iteraciyi zvazhene poyednannya m z najkrashim z rishen l novogo kandidata vikoristovuyetsya dlya onovlennya parametriv rozpodilu Osnovnij cikl skladayetsya z troh osnovnih chastin vidbir novih rishen zmina poryadku z obranih rishen zasnovanih na yih pridatnist onovlennya vnutrishnih zminnih stanu na osnovi povtornogo zamovlennya zrazkiv Psevdokod algoritmu viglyadaye nastupnim chinom set l displaystyle lambda number of samples per iteration at least two generally gt 4 initialize m displaystyle m s displaystyle sigma C I displaystyle C I p s 0 displaystyle p sigma 0 p c 0 displaystyle p c 0 initialize state variables while not terminate iterate for i displaystyle i in 1 l displaystyle 1 lambda sample l displaystyle lambda new solutions and evaluate them x i displaystyle x i sample multivariate normal mean m displaystyle m covariance matrix s 2 C displaystyle sigma 2 C f i displaystyle f i fitness x i displaystyle x i x 1 l displaystyle x 1 lambda x s 1 s l displaystyle x s 1 s lambda with s i displaystyle s i argsort f 1 l displaystyle f 1 lambda i displaystyle i sort solutions m displaystyle m m displaystyle m we need later m m displaystyle m m and x i m displaystyle x i m m displaystyle m update m x 1 displaystyle x 1 x l displaystyle x lambda move mean to better solutions p s displaystyle p sigma update ps p s displaystyle p sigma s 1 C 1 2 m m displaystyle sigma 1 C 1 2 m m update isotropic evolution path p c displaystyle p c update pc p c displaystyle p c s 1 m m displaystyle sigma 1 m m p s displaystyle p sigma update anisotropic evolution path C displaystyle C update C C displaystyle C p c displaystyle p c x 1 m s displaystyle x 1 m sigma x l m s displaystyle x lambda m sigma update covariance matrix s displaystyle sigma update sigma s displaystyle sigma p s displaystyle p sigma update step size using isotropic path length return m displaystyle m or x 1 displaystyle x 1 Priklad kodu v Matlab Octavefunction 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 5 coordinate wise standard deviation step size stopfitness 1e 10 stop if fitness lt 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 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 lt 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 lt 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 gt 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 lt stopfitness max D gt 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 function f frosenbrock x if size x 1 lt 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 Praktichne vikoristannyaNa vidminu vid bilshosti inshih evolyucijnih algoritmiv CMA ES majzhe ne mistit parametriv Odnak rozmir populyaciyi l mozhe buti zminenij koristuvachem shob zminiti povedinku harakteru poshuku CMA ES bula empirichno uspishnoyu v sotnyah dodatkiv i vvazhayetsya korisnoyu zokrema u vipadku neopukloyi ne separabelnoyi pogano obumovlenoyu multimodalnoyi cilovoyi funkciyi Rozmirnist prostoru poshuku kolivayetsya zazvichaj vid dvoh do kilkoh soten Yaksho pripustiti sho optimizaciya scenariyiv ce chornij yashik de gradiyentiv nemaye i funkciya ocinki virazhaye vartist poshuku CMA ES metod jmovirno postupayetsya inshim metodam v nastupnih umovah u vipadku malomirnih funkcij napriklad simpleks metod abo surogatni metodi zasnovani na separabelnih funkcij bez zalezhnostej mizh zminnimi proyektuvannya zokrema u vipadku multimodalnosti u vipadku opuklo kvadratichnoyi funkciyi z nizkim abo serednim chislom obumovlenosti v matrici Gesse Tut BFGS abo NEWUOA yak pravilo v desyat raziv shvidshe u vipadku funkciyi yaka mozhe buti virishena za dopomogoyu porivnyano nevelikogo chisla ocinok funkciyi napriklad NEWUOA abo bagatorivnevij poshuk koordinat MCS Posilannya