Porównanie oprogramowania procesowego Gaussa
Jest to porównanie oprogramowania do analizy statystycznej, które umożliwia wnioskowanie o procesach Gaussa, często z wykorzystaniem przybliżeń .
Artykuł został napisany z punktu widzenia statystyki bayesowskiej , która może posługiwać się inną terminologią niż powszechnie stosowana w krigingu . Następna sekcja powinna wyjaśnić matematyczne/obliczeniowe znaczenie informacji podanych w tabeli niezależnie od terminologii kontekstowej.
Opis kolumn
Ta sekcja szczegółowo opisuje znaczenie kolumn w poniższej tabeli.
Solvery
Kolumny te dotyczą algorytmów użytych do rozwiązania układu liniowego zdefiniowanego przez wcześniejszą macierz kowariancji , tj. macierz zbudowaną przez obliczenie jądra.
- Dokładny : czy zaimplementowane są ogólne algorytmy dokładne. Algorytmy te są zwykle odpowiednie tylko do kilku tysięcy punktów danych.
-
Specjalistyczne : czy zaimplementowane są wyspecjalizowane algorytmy dokładne dla określonych klas problemów. Obsługiwane algorytmy specjalistyczne można wskazać jako:
- Kronecker : algorytmy dla rozdzielnych jąder na danych siatki.
- Toeplitz : algorytmy dla stacjonarnych jąder na danych równomiernie rozmieszczonych.
- Semisep. : algorytmy półrozdzielnych macierzy kowariancji.
- Rzadki : algorytmy zoptymalizowane dla rzadkich macierzy kowariancji.
- Blok : algorytmy zoptymalizowane pod kątem macierzy kowariancji o przekątnej blokowej .
- Markowa : algorytmy dla jąder, które reprezentują (lub mogą być sformułowane jako) proces Markowa.
-
Przybliżony : czy zaimplementowano ogólne lub specjalistyczne algorytmy przybliżone. Obsługiwane algorytmy przybliżone można wskazać jako:
- Rzadki : algorytmy oparte na wyborze zestawu „punktów indukujących” w przestrzeni wejściowej lub bardziej ogólnie nałożeniu rzadkiej struktury na odwrotność macierzy kowariancji.
- Hierarchiczne : algorytmy przybliżające macierz kowariancji macierzą hierarchiczną .
Wejście
dotyczą punktów, w których oceniany jest proces proces .
- ND : czy obsługiwane jest wprowadzanie wielowymiarowe. Jeśli tak, wielowymiarowe wyjście jest zawsze możliwe poprzez dodanie wymiaru do danych wejściowych, nawet bez bezpośredniego wsparcia.
- Nierzeczywiste : czy obsługiwane są dowolne nierzeczywiste dane wejściowe (na przykład tekst lub liczby zespolone ).
Wyjście
Kolumny te dotyczą wartości uzyskanych w procesie oraz sposobu, w jaki są one połączone z danymi używanymi w dopasowaniu.
- Prawdopodobieństwo : czy obsługiwane są arbitralne prawdopodobieństwa inne niż gaussowskie .
-
Błędy : czy dla prawdopodobieństwa Gaussa obsługiwane są arbitralne, niejednorodne skorelowane błędy w punktach danych. Błędy można obsłużyć ręcznie, dodając komponent jądra, ta kolumna dotyczy możliwości manipulowania nimi oddzielnie. Obsługa błędów częściowych może być wskazana jako:
- iid : punkty danych muszą być niezależne i identycznie rozmieszczone .
- Nieskorelowane : punkty danych muszą być niezależne, ale mogą mieć różne rozkłady.
- Stacjonarne : punkty danych mogą być skorelowane, ale macierz kowariancji musi być macierzą Toeplitza , w szczególności oznacza to, że wariancje muszą być jednolite.
Hiperparametry
Te kolumny dotyczą znajdowania wartości zmiennych, które w jakiś sposób wchodzą w definicję konkretnego problemu, ale których nie można wywnioskować za pomocą dopasowania procesu Gaussa, na przykład parametrów we wzorze jądra.
- Prior : czy obsługiwane jest określanie dowolnych hiperpriorów dla hiperparametrów .
- Posterior : czy szacowanie tylnej części jest obsługiwane poza oszacowaniem punktowym , ewentualnie w połączeniu z innym oprogramowaniem.
Jeśli zarówno komórki „Prior”, jak i „Posterior” zawierają „Ręcznie”, oprogramowanie zapewnia interfejs do obliczania krańcowego prawdopodobieństwa i jego hiperparametrów gradientu wrt, które można wprowadzić do algorytmu optymalizacji/próbkowania, np. opadania gradientu lub łańcucha Markowa Monte Carlo .
Transformacje liniowe
Kolumny te dotyczą możliwości jednoczesnego dopasowania punktów danych do procesu i jego transformacji liniowych.
- pochodna : czy możliwe jest przyjęcie dowolnej liczby pochodnych aż do maksimum dozwolonego przez gładkość jądra dla dowolnego różniczkowalnego jądra. Przykładowe częściowe specyfikacje mogą dotyczyć maksymalnej wyprowadzalności lub implementacji tylko dla niektórych jąder. Całki można otrzymać pośrednio z pochodnych.
- Skończony skończone dowolne w określonych punktach danych.
- Suma : czy możliwe jest sumowanie różnych jąder i uzyskiwanie oddzielnego dostępu do procesów odpowiadających każdemu z dodatków. Jest to szczególny przypadek skończonej transformacji liniowej, ale jest wymieniony osobno, ponieważ jest cechą wspólną.
Tabela porównawcza
Nazwa | Licencja | Język | Solvery | Wejście | Wyjście | Hiperparametry | Transformacje liniowe | Nazwa | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dokładny | Specjalistyczne | Przybliżony | ND | Nierzeczywiste | Prawdopodobieństwo | Błędy | Wcześniejszy | Tylny | pochodna | Skończone | Suma | ||||
PyMC | Apache | Pyton | Tak | Kroneckera | Rzadki | ND | NIE | Każdy | Współzależny | Tak | Tak | NIE | Tak | Tak | PyMC |
Stan | BSD , GPL | zwyczaj | Tak | NIE | NIE | ND | NIE | Każdy | Współzależny | Tak | Tak | NIE | Tak | Tak | Stan |
nauka scikit | BSD | Pyton | Tak | NIE | NIE | ND | Tak | Bernoulliego | Nieskorelowane | Ręcznie | Ręcznie | NIE | NIE | NIE | nauka scikit |
fbm | Bezpłatny | C | Tak | NIE | NIE | ND | NIE | Bernoulliego, Poissona | Nieskorelowane, stacjonarne | Wiele | Tak | NIE | NIE | Tak | fbm |
GPML | BSD | MATLAB | Tak | NIE | Rzadki | ND | NIE | Wiele | id | Ręcznie | Ręcznie | NIE | NIE | NIE | GPML |
GPstuff | GNU GPL | MATLAB , r | Tak | Rzadki, Markow | Rzadki | ND | NIE | Wiele | Współzależny | Wiele | Tak | Pierwszy RBF | NIE | Tak | GPstuff |
GPy | BSD | Pyton | Tak | NIE | Rzadki | ND | NIE | Wiele | Nieskorelowane | Tak | Tak | NIE | NIE | NIE | GPy |
GPflow | Apache | Pyton | Tak | NIE | Rzadki | ND | NIE | Wiele | Nieskorelowane | Tak | Tak | NIE | NIE | NIE | GPflow |
GPyTorch | MIT | Pyton | Tak | Toeplitz, Kronecker | Rzadki | ND | NIE | Wiele | Nieskorelowane | Tak | Tak | Pierwszy RBF | Ręcznie | Ręcznie | GPyTorch |
GPvecchia | GNU GPL | R | Tak | NIE | Rzadkie, hierarchiczne | ND | NIE | Rodzina wykładnicza | Nieskorelowane | NIE | NIE | NIE | NIE | NIE | GPvecchia |
pyGP | BSD | Pyton | Tak | NIE | Rzadki | ND | Wykresy, ręcznie | Bernoulliego | id | Ręcznie | Ręcznie | NIE | NIE | NIE | pyGP |
gptk | BSD | R | Tak | Blok? | Rzadki | ND | NIE | Gaussa | NIE | Ręcznie | Ręcznie | NIE | NIE | NIE | gptk |
celeryt | MIT | Python , Julia , C++ | NIE | Semisep. | NIE | 1D | NIE | Gaussa | Nieskorelowane | Ręcznie | Ręcznie | NIE | NIE | NIE | celeryt |
Jerzy | MIT | Pythona , C++ | Tak | NIE | Hierarchiczny | ND | NIE | Gaussa | Nieskorelowane | Ręcznie | Ręcznie | NIE | NIE | Ręcznie | Jerzy |
neuronowe styczne | Apache | Pyton | Tak | Blok, Kronecker | NIE | ND | NIE | Gaussa | NIE | NIE | NIE | NIE | NIE | NIE | neuronowe styczne |
KościKriging | GNU GPL | R | Tak | NIE | NIE | ND | NIE? | Gaussa | Nieskorelowane | SCAD RBF | MAPA | NIE | NIE | NIE | KościKriging |
Otwarte TURNY | GNU LGPL | Pythona , C++ | Tak | NIE | NIE | ND | NIE | Gaussa | Nieskorelowane | Ręcznie (bez grad.) | MAPA | NIE | NIE | NIE | Otwarte TURNY |
UQLab | Prawnie zastrzeżony | MATLAB | Tak | NIE | NIE | ND | NIE | Gaussa | Współzależny | NIE | MAPA | NIE | NIE | NIE | UQLab |
ooDACE | Prawnie zastrzeżony | MATLAB | Tak | NIE | NIE | ND | NIE | Gaussa | Współzależny | NIE | MAPA | NIE | NIE | NIE | ooDACE |
KLEŃ | Prawnie zastrzeżony | MATLAB | Tak | NIE | NIE | ND | NIE | Gaussa | NIE | NIE | MAPA | NIE | NIE | NIE | KLEŃ |
GpGp | MIT | R | NIE | NIE | Rzadki | ND | NIE | Gaussa | id | Ręcznie | Ręcznie | NIE | NIE | NIE | GpGp |
SuperGauss | GNU GPL | R , C++ | NIE | Toeplitz | NIE | 1D | NIE | Gaussa | NIE | Ręcznie | Ręcznie | NIE | NIE | NIE | SuperGauss |
STK | GNU GPL | MATLAB | Tak | NIE | NIE | ND | NIE | Gaussa | Nieskorelowane | Ręcznie | Ręcznie | NIE | NIE | Ręcznie | STK |
GSTools | GNU LGPL | Pyton | Tak | NIE | NIE | ND | NIE | Gaussa | NIE | NIE | NIE | NIE | NIE | NIE | GSTools |
PyKrige | BSD | Pyton | Tak | NIE | NIE | 2D, 3D | NIE | Gaussa | id | NIE | NIE | NIE | NIE | NIE | PyKrige |
GPR | Apache | C++ | Tak | NIE | Rzadki | ND | NIE | Gaussa | id | Niektóre, ręcznie | Ręcznie | Pierwszy | NIE | NIE | GPR |
celeryt2 | MIT | Pyton | NIE | Semisep. | NIE | 1D | NIE | Gaussa | Nieskorelowane | Ręcznie | Ręcznie | NIE | NIE | Tak | celeryt2 |
GPJax | Apache | Pyton | Tak | NIE | Rzadki | ND | Wykresy | Bernoulliego | NIE | Tak | Tak | NIE | NIE | NIE | GPJax |
Steno | MIT | Pyton | Tak | Niska ranga | Rzadki | ND | NIE | Gaussa | id | Ręcznie | Ręcznie | Przybliżony | NIE | Tak | Steno |
Nazwa | Licencja | Język | Dokładny | Specjalistyczne | Przybliżony | ND | Nierzeczywiste | Prawdopodobieństwo | Błędy | Wcześniejszy | Tylny | pochodna | Skończone | Suma | Nazwa |
Solvery | Wejście | Wyjście | Hiperparametry | Transformacje liniowe |
Notatki
Linki zewnętrzne
- [1] Strona internetowa, na której znajduje się książka CE Rasmussena Procesy Gaussa dla uczenia maszynowego ; zawiera (częściowo nieaktualną) listę oprogramowania.