대규모 데이터 세트에 대한 가우스 프로세스 회귀


10

나는 온라인 비디오와 강의 노트에서 가우시안 프로세스 회귀에 대해 배웠으며, 점이 있는 데이터 세트가 있으면 데이터가 차원 다변량 가우시안 에서 샘플링되었다고 가정합니다 . 그래서 내 질문은 가우스 프로세스 회귀가 여전히 작동 하는 이 1 천만입니다. 커널 매트릭스가 프로세스를 완전히 비효율적으로 렌더링하지 않습니까? 그렇다면 여러 번 반복해서 데이터 세트에서 샘플링하는 것과 같이이를 처리 할 수있는 기술이 있습니까? 그러한 경우를 다루는 좋은 방법은 무엇입니까? nnn


3
왜 대용량 데이터를 다루기위한 것이 아니라 가우시안 프로세스를 사용하고 싶습니까?
Tim

답변:


7

GP를 대규모 데이터 세트로 확장하기위한 다양한 접근 방식이 있습니다.

낮은 순위 접근 : 공분산 행렬에 대해 낮은 순위 근사값을 만들기 위해 노력합니다. 가장 유명한 점은 데이터를 점의 하위 집합에 투영하는 Nystroms 방법입니다. FITC와 PITC를 기반으로 개발 된 점이 아닌 의사 지점을 사용하여 개발되었습니다. 이것들은 예를 들어 GPy python 라이브러리에 포함되어 있습니다. 다른 방법으로는 임의 푸리에 기능이 있습니다.

H- 행렬 : 공분산 행렬의 계층 구조를 사용하고 각 구조 하위 행렬에 낮은 순위 근사를 적용합니다. 이것은 인기있는 라이브러리에서 덜 일반적으로 구현됩니다.

Kronecker Methods : 계산 오버 헤드 병목 현상을 가속화하기 위해 공분산 행렬의 Kronecker 곱을 사용합니다.

베이지안위원회 머신 : 여기에는 데이터를 서브셋으로 나누고 GP를 사용하여 각각을 모델링하는 작업이 포함됩니다. 그런 다음 최적의 베이지안 출력 조합을 사용하여 예측을 결합 할 수 있습니다. Mark Deisenroth의 논문은 여기 에 따라야 할 정도로 쉬워야한다 .


5

일반적으로 수행 할 수있는 작업은 데이터 세트의 하위 샘플 (가방)에 대해 가우시안 프로세스를 훈련시키는 것입니다. Bagging은 sk learn에서 구현되며 쉽게 사용할 수 있습니다. 예를 들어 문서를 참조하십시오 .

을 관측치 수, 사용하는 백 수 및 포인트 수를 호출 하면 훈련 시간을 에서 로 변경할 수 있습니다. . 따라서 작은 가방을 사용하지만 모든 데이터를 사용하면 교육 시간이 훨씬 단축됩니다. 불행히도, 이것은 종종 모델의 성능을 떨어 뜨립니다.nnbagsnpO(n3)O(nbagsnp3)

배깅 기술 외에도 가우시안 프로세스 회귀를 확장 가능하게 만드는 방법에 대한 활발한 연구가 있습니다. 확장 가능한 구조화 된 가우스 프로세스에 대한 커널 보간 (KISS-GP) 기사에서는 훈련 시간을 로 단축하고 matlab 코드와 함께 제공합니다.O(n)


5

당신은 물었다 :

𝑛가 1000 만인 경우 가우스 프로세스 회귀가 여전히 작동합니까?

큰 매트릭스를 구성하고 뒤집는 표준적인 의미가 아닙니다. 1) 다른 모델을 선택하거나 2) 근사치를 만드는 두 가지 옵션이 있습니다.

1) 일부 GP 기반 모델은 위의 답변에 연결된 베이지안위원회 시스템과 같이 매우 큰 데이터 세트로 확장 될 수 있습니다. GP 모델을 선택해야 할 이유가 있으며, 더 계산 가능한 모델로 전환해야하는 경우 원래 모델의 속성을 유지하지 못할 수 있습니다. 예를 들어 BCM의 예측 분산은 데이터 분할에 크게 의존합니다.

2) GP의 근사에 대한 '고전적인'접근 방식은 커널 매트릭스를 근사화하는 것입니다. http://www.jmlr.org/papers/volume6/quinonero-candela05a/quinonero-candela05a.pdf 에 이러한 종류의 방법에 대한 좋은 검토가 있습니다 . 실제로, 우리는 일반적으로 이러한 행렬 근사를 모형 근사치로 볼 수 있으며 베이지안위원회 기계와 함께 집중할 수 있습니다. 그것들은 모형에 대한 변화이며 그러한 변화가 언제 병리 적 일지 이해하기 어려울 수 있습니다. 다음은 훌륭한 리뷰입니다 : https://papers.nips.cc/paper/6477-understanding-probabilistic-sparse-gaussian-process-approximations.pdf

큰 GP에 대한 근사를 옹호하는 방법은 커널 행렬 또는 모델의 근사를 피하고 변동 추론을 사용하여 사후 분포를 근사하는 것 입니다. 많은 계산은 '낮은 순위'행렬 근사치처럼 보이지만 매우 바람직한 속성이 있습니다. KL로 측정 한대로 계산이 많을수록 ( "순위") 근사값이 실제 후부에 가깝습니다. 분기.

이 기사는 좋은 출발점입니다. http://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf https://arxiv.org/pdf/1309.6835

나는 같은 주장에 더 긴 기사를 썼다 : https://www.prowler.io/blog/sparse-gps-approximate-the-posterior-not-the-model

실제로, 변이 근사는 많은 경우에 실제로 효과적입니다. 실제 응용 프로그램에서 광범위하게 사용했습니다. 그리고 최근에는 왜 작동 해야하는지에 대한 훌륭한 이론이 있습니다 ( https://arxiv.org/abs/1903.03571 ).

마지막 플러그 : GP의 변형 추론은 gpflow ( https://github.com/GPflow/GPflow ) 에서 구현됩니다.


1
그는 SE에 Q & A 답변있어 멋진의 종류 - 그냥 사람이 가로 질러 와서 알 수없는 경우 기록을 위해, 제임스는 마이크 오스본, 닐 로렌스와 등을 따라 필드의 기관 중 하나가 될 것입니다
j__
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.