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.

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.