Optimizare bayesiană - Bayesian optimization
Optimizarea bayesiană este o strategie de proiectare secvențială pentru optimizarea globală a funcțiilor black-box care nu își asumă forme funcționale. De obicei este folosit pentru a optimiza funcțiile costisitoare de evaluat.
Istorie
Termenul este în general atribuit lui Jonas Mockus și este inventat în lucrarea sa dintr-o serie de publicații despre optimizarea globală din anii 1970 și 1980.
Strategie
Optimizarea bayesiană este de obicei utilizată pentru probleme de formă , unde este un set de puncte a căror apartenență poate fi ușor evaluată. Optimizarea bayesiană este deosebit de avantajoasă pentru problemele în care este dificil de evaluat, este o cutie neagră cu o structură necunoscută, se bazează pe mai puțin de 20 de dimensiuni și unde nu sunt evaluate derivatele .
Deoarece funcția obiectivă este necunoscută, strategia bayesiană este de a o trata ca o funcție aleatorie și de a plasa un prior asupra acesteia. Anteriorul surprinde convingeri despre comportamentul funcției. După colectarea evaluărilor funcției, care sunt tratate ca date, priorul este actualizat pentru a forma distribuția posterioară asupra funcției obiective. Distribuția posterioară, la rândul ei, este utilizată pentru a construi o funcție de achiziție (adesea denumită și criterii de eșantionare a umplerii) care determină următorul punct de interogare.
Există mai multe metode utilizate pentru a defini distribuția anterioară / posterioară asupra funcției obiective. Cele mai comune două metode folosesc Procese Gaussiene într-o metodă numită Kriging . O altă metodă mai puțin costisitoare folosește Parzen-Tree Estimator pentru a construi două distribuții pentru punctele „ridicate” și „scăzute” și apoi găsește locația care maximizează îmbunătățirea așteptată.
Optimizarea Bayesiană standard se bazează pe fiecare fiind ușor de evaluat, iar problemele care se abat de la această presupunere sunt cunoscute sub numele de probleme exotice de optimizare Bayesiană . Problemele de optimizare pot deveni exotice dacă se știe că există zgomot, evaluările se fac în paralel, calitatea evaluărilor se bazează pe un compromis între dificultate și acuratețe, prezența condițiilor de mediu aleatorii sau dacă evaluarea implică derivați.
Exemple
Exemple de funcții de achiziție includ probabilitatea de îmbunătățire, îmbunătățirea preconizată, pierderile Bayesiene așteptate, limitele superioare de încredere (UCB), eșantionarea Thompson și hibrizii acestora. Toate fac schimburi de explorare și exploatare, astfel încât să minimizeze numărul de interogări de funcții. Ca atare, optimizarea bayesiană este potrivită pentru funcții care sunt costisitoare de evaluat.
Metode de soluționare
Maximul funcției de achiziție se găsește de obicei recurgând la discretizare sau prin intermediul unui optimizator auxiliar. Funcțiile de achiziție sunt de obicei bine comportate și sunt maximizate folosind o tehnică de optimizare numerică , cum ar fi metoda Newton sau metode cvasi-newtoniene, cum ar fi algoritmul Broyden-Fletcher-Goldfarb-Shanno .
Aplicații
Abordarea a fost aplicată pentru a rezolva o gamă largă de probleme, inclusiv învățarea la rang , grafică computerizată și proiectare vizuală, robotică , rețele de senzori , configurare automată a algoritmilor, cutii de instrumente de învățare automată automată , învățare de întărire , planificare, atenție vizuală, configurare arhitectură în profunzime învățare , analiză statică a programelor, fizică experimentală a particulelor , chimie, proiectarea materialelor și dezvoltarea medicamentelor.
Vezi si
Referințe
linkuri externe
- GPyOpt , bibliotecă open-source Python pentru optimizarea Bayesiană bazată pe GPy .
- Bayesopt , o implementare eficientă în C / C ++ cu suport pentru Python, Matlab și Octave.
- Spearmint , o implementare Python axată pe calcul paralel și cluster.
- SMAC , o implementare Java a optimizării Bayesiene bazate pe pădure aleatorie pentru configurația generală a algoritmului.
- ParBayesianOptimization , o performanță ridicată, implementare paralelă a optimizării bayesiene cu procese Gaussiene în R.
- pybo , o implementare Python a optimizării Bayesiene modulare.
- Bayesopt.m , o implementare Matlab a optimizării bayesiene cu sau fără constrângeri.
- MOE MOE este o implementare Python / C ++ / CUDA a optimizării globale Bayesian folosind procese Gauss.
- SigOpt SigOpt oferă Bayesian Global Optimization ca serviciu SaaS axat pe cazuri de utilizare a întreprinderii.
- Mind Foundry OPTaaS oferă optimizarea Bayesiană globală prin servicii web cu constrângeri de parametri flexibili.
- bayeso , o implementare Python a optimizării bayesiene.
- BoTorch , o bibliotecă open-source modulară și modernă bazată pe PyTorch pentru cercetări de optimizare bayesiană cu suport pentru GPyTorch .
- GPflowOpt , un pachet open-source bazat pe TensorFlow pentru optimizarea bayesiană.
- trieste , o cutie de instrumente open-source Bayesian Optimization construită pe TensorFlow și GPflow .