Se trata de una comparación de software de análisis estadístico que permite hacer inferencias con procesos gaussianos a menudo utilizando aproximaciones .
Este artículo está escrito desde el punto de vista de la estadística bayesiana , que puede usar una terminología diferente a la que se usa comúnmente en kriging . La siguiente sección debe aclarar el significado matemático / computacional de la información proporcionada en la tabla independientemente de la terminología contextual.
Descripción de columnas
Esta sección detalla el significado de las columnas en la tabla a continuación.
Solucionadores
Estas columnas tratan de los algoritmos utilizados para resolver el sistema lineal definido por la matriz de covarianza anterior , es decir, la matriz construida mediante la evaluación del kernel.
- Exacto : si se implementan algoritmos exactos genéricos . Estos algoritmos suelen ser apropiados solo hasta algunos miles de puntos de datos.
- Especializado : si se implementan algoritmos exactos especializados para clases específicas de problemas. Los algoritmos especializados admitidos pueden indicarse como:
- Kronecker : algoritmos para núcleos separables en datos de cuadrícula. [1]
- Toeplitz : algoritmos para núcleos estacionarios sobre datos espaciados uniformemente. [2]
- Semisep. : algoritmos para matrices de covarianza semiseparables. [3]
- Sparse : algoritmos optimizados para matrices de covarianza dispersas .
- Bloque : algoritmos optimizados para matrices de covarianza diagonal de bloque .
- Aproximado : si se implementan algoritmos aproximados genéricos o especializados . Los algoritmos aproximados admitidos pueden indicarse como:
- Escaso : algoritmos basados en elegir un conjunto de "puntos inductores" en el espacio de entrada. [4]
- Jerárquico : algoritmos que aproximan la matriz de covarianza con una matriz jerárquica . [5]
Aporte
Estas columnas tratan sobre los puntos en los que se evalúa el proceso gaussiano, es decir si el proceso es .
- ND : si se admite la entrada multidimensional. Si es así, la salida multidimensional siempre es posible agregando una dimensión a la entrada, incluso sin apoyo directo.
- No real : si se admite una entrada arbitraria no real (por ejemplo, texto o números complejos ).
Producción
Estas columnas tratan sobre los valores producidos por el proceso y cómo están conectados a los datos utilizados en el ajuste.
- Probabilidad : si se admiten verosimilitudes arbitrarias no gaussianas .
- Errores : si se admiten errores arbitrarios no uniformes correlacionados en puntos de datos para la verosimilitud gaussiana. Los errores se pueden manejar manualmente agregando un componente del kernel, esta columna trata sobre la posibilidad de manipularlos por separado. El soporte de error parcial puede indicarse como:
- iid : los puntos de datos deben ser independientes y estar distribuidos de forma idéntica .
- Sin correlación : los puntos de datos deben ser independientes, pero pueden tener distribuciones diferentes.
- Estacionario : los puntos de datos pueden correlacionarse, pero la matriz de covarianza debe ser una matriz de Toeplitz , en particular esto implica que las varianzas deben ser uniformes.
Hiperparámetros
Estas columnas tratan de encontrar valores de variables que entran de alguna manera en la definición del problema específico pero que no pueden ser inferidos por el ajuste del proceso gaussiano, por ejemplo parámetros en la fórmula del kernel.
- Prior : si se admite la especificación de hiperpriorres arbitrarios en los hiperparámetros .
- Posterior : si la estimación de la parte posterior se apoya más allá de la estimación puntual , posiblemente junto con otro software.
Si las celdas "Anterior" y "Posterior" contienen "Manualmente", el software proporciona una interfaz para calcular la probabilidad marginal y sus hiperparámetros de gradiente wrt, que pueden introducirse en un algoritmo de optimización / muestreo, por ejemplo, descenso de gradiente o cadena de Markov Monte Carlo .
Transformaciones lineales
Estas columnas tratan sobre la posibilidad de ajustar puntos de datos simultáneamente a un proceso y a sus transformaciones lineales.
- Deriv. : si es posible tomar un número arbitrario de derivadas hasta el máximo permitido por la suavidad del kernel, para cualquier kernel diferenciable. Las especificaciones parciales de ejemplo pueden ser la máxima derivabilidad o implementación solo para algunos núcleos. Las integrales se pueden obtener indirectamente a partir de derivados.
- Finito : si finito arbitrario se permiten transformaciones lineales en los puntos de datos especificados.
- Suma : si es posible sumar varios núcleos y acceder por separado a los procesos correspondientes a cada sumando. Es un caso particular de transformación lineal finita pero se enumera por separado porque es una característica común.
Tabla de comparación
Nombre | Licencia | Idioma | Solucionadores | Aporte | Producción | Hiperparámetros | Transformaciones lineales | Nombre | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Exacto | Especializado | Aproximado | DAKOTA DEL NORTE | No real | Probabilidad | Errores | Previo | Posterior | Deriv. | Finito | Suma | ||||
PyMC3 | apache | Pitón | sí | Kronecker | Escaso | DAKOTA DEL NORTE | No | Alguna | Correlacionado | sí | sí | No | sí | sí | PyMC3 |
GPvecchia | GNU GPL | R | sí | No | Escasa, jerárquica | 1D | No | Familia exponencial | Correlacionado | No | No | No | sí | sí | GPvecchia |
GpGp | MIT | R | No | No | Escaso | DAKOTA DEL NORTE | No | Gaussiano | Correlacionado | sí | sí | No | sí | sí | GpGp |
GPy [6] | BSD | Pitón | sí | No | Escaso | DAKOTA DEL NORTE | No | Muchos | No correlacionado | sí | sí | No | No | No | GPy |
pyGP [7] | BSD | Pitón | sí | No | Escaso | DAKOTA DEL NORTE | Gráficos, manualmente | Bernoulli | iid | A mano | A mano | No | No | No | pyGPs |
Stan | BSD , GPL | personalizado | sí | No | No | DAKOTA DEL NORTE | No | Alguna | Correlacionado | sí | sí | No | sí | sí | Stan |
GPyTorch [8] | MIT | Pitón | sí | No | Escaso | DAKOTA DEL NORTE | No | Bernoulli | No | Primer RBF | GPyTorch | ||||
GPML [9] [10] | BSD | MATLAB | sí | No | Escaso | DAKOTA DEL NORTE | No | Muchos | iid | A mano | A mano | No | No | No | GPML |
fbm [10] | Libre | C | sí | No | No | DAKOTA DEL NORTE | No | Bernoulli, Poisson | No correlacionado, estacionario | Muchos | sí | No | fbm | ||
gptk | BSD | R | sí | ¿Cuadra? | Escaso | DAKOTA DEL NORTE | No | Gaussiano | No | A mano | A mano | No | No | No | gptk |
SuperGauss | GNU GPL | R , C ++ | No | Toeplitz [a] | No | 1D | No | Gaussiano | No | A mano | A mano | No | No | No | SuperGauss |
celerita [3] | MIT | Python , Julia , C ++ | No | Semisep. [B] | No | 1D | No | Gaussiano | No correlacionado | A mano | A mano | No | No | celerita | |
Jorge | MIT | Python , C ++ | sí | No | Jerárquico | DAKOTA DEL NORTE | No | Gaussiano | No correlacionado | A mano | A mano | No | No | A mano | Jorge |
neurales-tangentes [11] [c] | apache | Pitón | sí | Bloque, Kronecker | No | No | Gaussiano | No | No | No | No | No | No | neurales-tangentes | |
STK | GNU GPL | MATLAB | sí | No | No | DAKOTA DEL NORTE | No | Gaussiano | No correlacionado | A mano | A mano | No | No | A mano | STK |
UQLab [12] | Propiedad | MATLAB | UQLab | ||||||||||||
ooDACE [13] | Propiedad | MATLAB | DAKOTA DEL NORTE | No | ooDACE | ||||||||||
GPstuff [10] | GNU GPL | MATLAB , R | sí | No | Escaso | DAKOTA DEL NORTE | No | Muchos | Muchos | sí | Primer RBF | GPstuff | |||
GSTools | GNU LGPL | Pitón | sí | No | No | DAKOTA DEL NORTE | No | Gaussiano | No | No | No | No | No | No | GSTools |
GPR | apache | C ++ | sí | No | Escaso | DAKOTA DEL NORTE | No | Gaussiano | iid | Algunos, manualmente | A mano | Primero | No | No | GPR |
scikit-learn | BSD | Pitón | sí | No | No | 1D | No | Bernoulli | scikit-learn | ||||||
PyKrige | BSD | Pitón | 2D, 3D | No | PyKrige | ||||||||||
GPflow [6] | apache | Pitón | sí | No | Escaso | Muchos | sí | sí | GPflow | ||||||
Nombre | Licencia | Idioma | Exacto | Especializado | Aproximado | DAKOTA DEL NORTE | No real | Probabilidad | Errores | Previo | Posterior | Deriv. | Finito | Suma | Nombre |
Solucionadores | Aporte | Producción | Hiperparámetros | Transformaciones lineales |
Notas
- ^ SuperGauss implementa un solucionador Toeplitz superrápido con complejidad computacional.
- ^ celerita implementa solo una subálgebra específica de granos que se puede resolver en. [3]
- ^ neural-tangents es un paquete especializado para redes neuronales infinitamente amplias.
Referencias
- ^ P. Cunningham, John; Gilboa, Elad; Saatçi, Yunus (febrero de 2015). "Escala de inferencia multidimensional para procesos gaussianos estructurados". Transacciones IEEE sobre análisis de patrones e inteligencia de máquinas . 37 (2): 424–436. doi : 10.1109 / TPAMI.2013.192 . PMID 26353252 . S2CID 6878550 .
- ^ Leith, DJ; Zhang, Yunong; Leithead, WE (2005). "Regresión del proceso gaussiano de series de tiempo basada en el cálculo de Toeplitz de operaciones O (N2) y almacenamiento de nivel O (N)". Actas de la 44ª Conferencia de IEEE sobre Decisión y Control : 3711–3716. doi : 10.1109 / CDC.2005.1582739 . S2CID 13627455 .
- ^ a b c Foreman-Mackey, Daniel; Angus, Ruth; Agol, Eric; Ambikasaran, Sivaram (9 de noviembre de 2017). "Modelado de procesos gaussianos rápidos y escalables con aplicaciones a series de tiempo astronómicas". El diario astronómico . 154 (6): 220. arXiv : 1703.09710 . Código Bib : 2017AJ .... 154..220F . doi : 10.3847 / 1538-3881 / aa9332 . S2CID 88521913 .
- ^ Quiñonero-Candela, Joaquín; Rasmussen, Carl Edward (5 de diciembre de 2005). "Una visión unificadora de la regresión del proceso gaussiano aproximado escaso" . Revista de investigación sobre aprendizaje automático . 6 : 1939-1959 . Consultado el 23 de mayo de 2020 .
- ^ Ambikasaran, S .; Foreman-Mackey, D .; Greengard, L .; Hogg, DW; O'Neil, M. (1 de febrero de 2016). "Métodos directos rápidos para procesos gaussianos". Transacciones IEEE sobre análisis de patrones e inteligencia de máquinas . 38 (2): 252–265. arXiv : 1403.6015 . doi : 10.1109 / TPAMI.2015.2448083 . PMID 26761732 . S2CID 15206293 .
- ^ a b Matthews, Alexander G. de G .; van der Wilk, Mark; Nickson, Tom; Fujii, Keisuke; Boukouvalas, Alexis; León-Villagrá, Pablo; Ghahramani, Zoubin; Hensman, James (abril de 2017). "GPflow: una biblioteca de procesos gaussianos que usa TensorFlow" . Revista de investigación sobre aprendizaje automático . 18 (40): 1–6. arXiv : 1610.08733 . Consultado el 6 de julio de 2020 .
- ^ Neumann, Marion; Huang, Shan; E. Marthaler, Daniel; Kersting, Kristian (2015). "pyGPs - una biblioteca de Python para clasificación y regresión del proceso gaussiano" . Revista de investigación sobre aprendizaje automático . 16 : 2611–2616.
- ^ Gardner, Jacob R; Pleiss, Geoff; Bindel, David; Weinberger, Kilian Q; Wilson, Andrew Gordon (2018). "GPyTorch: Inferencia del proceso gaussiano de matriz-matriz de caja negra con aceleración de GPU" (PDF) . Avances en sistemas de procesamiento de información neuronal . 31 : 7576–7586. arXiv : 1809.11165 . Consultado el 23 de mayo de 2020 .
- ^ Rasmussen, Carl Edward; Nickisch, Hannes (noviembre de 2010). "Caja de herramientas de procesos gaussianos para aprendizaje automático (GPML)". Revista de investigación sobre aprendizaje automático . 11 (2): 3011-3015. doi : 10.1016 / 0002-9610 (74) 90157-3 . PMID 4204594 .
- ^ a b c Vanhatalo, Jarno; Riihimäki, Jaakko; Hartikainen, Jouni; Jylänki, Pasi; Tolvanen, Ville; Vehtari, Aki (abril de 2013). "GPstuff: modelado bayesiano con procesos gaussianos" . Revista de investigación sobre aprendizaje automático . 14 : 1175-1179 . Consultado el 23 de mayo de 2020 .
- ^ Novak, Roman; Xiao, Lechao; Hron, Jiri; Lee, Jaehoon; Alemi, Alexander A .; Sohl-Dickstein, Jascha; Schoenholz, Samuel S. (2020). "Tangentes neuronales: redes neuronales infinitas rápidas y fáciles en Python". Congreso Internacional de Representaciones del Aprendizaje . arXiv : 1912.02803 .
- ^ Marelli, Stefano; Sudret, Bruno (2014). "UQLab: un marco para la cuantificación de la incertidumbre en MATLAB" (PDF) . Vulnerabilidad, incertidumbre y riesgo. Cuantificación, mitigación y gestión : 2554–2563. doi : 10.3929 / ethz-a-010238238 . Consultado el 28 de mayo de 2020 .
- ^ Couckuyt, Ivo; Dhaene, Tom; Demeester, Piet (2014). "Caja de herramientas ooDACE: una implementación de Kriging flexible orientada a objetos" (PDF) . Revista de investigación sobre aprendizaje automático . 15 : 3183–3186 . Consultado el 8 de julio de 2020 .