가우시안 프로세스(GP)란? AI에서 함수의 분포로 예측값과 불확실성을 함께 구하는 방법
TL;DR
가우시안 프로세스(Gaussian Process, GP)는 함수의 가능한 모양을 확률분포로 다루는 모델입니다. 입력 위치를 유한하게 골랐을 때 그 위치의 함수값들이 함께 다변량 정규분포를 이룬다고 가정합니다. 회귀에서는 관측 데이터와 커널을 결합해 새 입력의 예측 평균과 불확실성을 구합니다. 결과의 신뢰도는 커널·잡음 가정과 데이터 범위에 달려 있으므로 좁은 예측 구간이 실제 정확도를 보장하지는 않습니다.
핵심 3줄 요약
- 핵심 1
함수의 분포를 학습에 사용합니다. 한 개의 곡선만 고르기보다 관측에 맞는 여러 함수의 가능성을 반영합니다. - 핵심 2
커널이 입력 사이의 관계를 정합니다. 변화의 길이 척도와 매끄러움 같은 가정이 예측 평균과 분산에 영향을 줍니다. - 핵심 3
불확실성도 따로 검증합니다. 평균 오차뿐 아니라 구간의 포함률·폭, 잡음의 의미와 계산 비용을 함께 확인합니다.
이 글에서 다룰 내용
- 가우시안 프로세스의 한 문장 정의
- 측정하지 않은 온도를 예측하는 쉬운 예시
- 사전분포·커널·사후분포의 작동 원리
- 길이 척도·잡음·출력 표준편차의 뜻
- GMM·회귀·촐레스키 분해·컨포멀 예측과의 차이
- 실전 사용처와 데이터 분리 체크리스트
- 불확실성·외삽·계산 비용의 주의점
가우시안 프로세스를 한 문장으로 정의하면 무엇인가요?
가우시안 프로세스는 어떤 유한한 입력 위치를 골라도 그 위치의 함수값들이 결합 정규분포를 이루는 확률 과정입니다.
평균 함수는 입력별로 기대하는 함수값을 정하고 공분산 함수는 두 입력의 함수값이 얼마나 함께 변하는지 정합니다. GP에서 이 공분산 함수를 커널이라고 부릅니다. 평균과 커널을 정하면 함수에 대한 사전분포가 정해집니다.
한국어로 가우스 과정이나 가우시안 과정이라고도 합니다. 프로세스라는 말 때문에 프로그램 실행 절차로 오해하기 쉽지만 여기서는 입력마다 확률변수가 대응하는 수학적 대상을 뜻합니다. 입력은 시간일 수도 있고 온도·압력 같은 특징 벡터일 수도 있습니다.
머신러닝에서는 가우시안 프로세스를 회귀와 확률적 분류에 이용합니다. 이 글은 연속적인 정답과 가우시안 관측 잡음을 다루는 기본 가우시안 프로세스 회귀, 즉 GPR을 중심으로 설명합니다. GP라는 개념과 그 개념을 회귀에 적용한 모델을 구분하면 문서를 읽기 쉽습니다.
한 줄 정리: 가우시안 프로세스는 입력과 출력의 관계를 함수의 분포로 표현하고 관측을 반영해 그 분포를 갱신하는 출발점입니다.
쉬운 예시로 이해해 볼까요?
감자나라ai님이 작은 재배 공간에서 위치에 따른 온도를 예측한다고 가정해 보겠습니다. 모든 위치에 센서를 둘 수 없어 일부 지점에서만 온도를 측정했습니다. 알고 싶은 것은 센서가 없는 위치의 온도와 그 예측을 얼마나 믿을 수 있는지입니다.
공간에서 가까운 지점의 온도는 비슷할 것이라는 가정을 커널로 표현합니다. GP 회귀는 측정된 위치와 온도를 보고 그 가정에 잘 맞는 함수가 더 큰 비중을 갖도록 예측 분포를 갱신합니다. 결과에는 위치별 평균 온도와 표준편차가 함께 나옵니다.
다른 조건이 비슷하다면 관측이 충분한 주변에서는 불확실성이 줄어들 수 있습니다. 하지만 벽이나 냉방기 때문에 온도가 갑자기 달라지는 공간에 지나치게 매끄러운 커널을 쓰면 중요한 변화를 놓칩니다. 이 예시는 개념 설명을 위한 가정이며 실제 센서 실험 결과는 아닙니다.
쉬운 예시: 측정 지점 사이에 선 하나를 긋는 데서 끝내지 않고 어떤 곡선들이 그럴듯한지와 위치별 예측의 퍼짐을 함께 살펴봅니다.
왜 AI에서 가우시안 프로세스가 중요한가요?
예측 평균과 불확실성을 함께 다룹니다
같은 평균 예측이라도 데이터가 충분한 곳과 드문 곳은 판단이 달라질 수 있습니다. GPR은 선택한 모델 아래에서 예측 분포를 계산하므로 추가 측정이나 사람 검토가 필요한 위치를 살펴보는 데 도움이 됩니다. 다만 모델의 불확실성과 실제 오류 가능성이 일치하는지는 별도 평가가 필요합니다.
입력 관계에 대한 가정을 드러냅니다
커널에는 가까운 입력끼리 얼마나 비슷한지, 함수가 얼마나 매끄러운지, 주기성이 있는지 같은 가정이 담깁니다. 이런 가정을 명시하면 모델이 왜 관측 바깥에서 특정 모양으로 예측하는지 점검하기 쉽습니다. 커널 선택은 단순한 속도 설정이 아니라 모델링 결정입니다.
관측 비용이 큰 문제의 비교 모델이 됩니다
실험이나 시뮬레이션을 한 번 수행하는 비용이 크다면, 이미 모은 입력·출력으로 관계를 추정하고 아직 확인하지 않은 조건을 검토할 수 있습니다. 데이터가 적다는 이유만으로 GP가 항상 우수한 것은 아닙니다. 입력 특징과 커널 가정이 맞는지 단순한 회귀 모델과 함께 비교합니다.
가우시안 프로세스는 어떤 순서로 작동하나요?
1. 평균과 커널로 사전분포를 정합니다
데이터를 보기 전에 함수가 어떤 모습일지 평균 함수와 커널로 표현합니다. 예를 들어 RBF 커널은 입력 사이의 거리에 따라 관계를 정하며 매우 매끄러운 함수를 가정합니다. 같은 GP라도 주기 커널이나 선형 커널을 쓰면 가능한 함수의 성격이 달라집니다.
2. 관측 잡음을 포함해 데이터를 연결합니다
실제 측정값에는 함수의 참값과 측정 잡음이 함께 들어갑니다. 기본 GPR에서는 가우시안 잡음을 가정하고 학습 입력 사이의 커널 행렬에 잡음 분산을 반영합니다. 잡음을 무시하면 측정값의 우연한 흔들림까지 실제 함수의 변화로 따라갈 수 있습니다.
3. 관측에 조건을 걸어 사후분포를 구합니다
사전분포에 관측값을 반영하면 사후분포가 됩니다. 가우시안 잡음을 쓰는 기본 회귀에서는 이 갱신을 해석적으로 계산할 수 있습니다. 실제 구현은 큰 역행렬을 직접 만드는 대신 촐레스키 분해와 선형계 풀이 등을 사용해 평균과 공분산을 계산합니다.
4. 새 입력의 평균과 분산을 반환합니다
학습 입력과 새 입력 사이의 커널값을 이용해 예측 분포를 구합니다. 평균은 대표 예측값이고 분산은 그 분포의 퍼짐입니다. 여러 위치를 한꺼번에 예측하면 위치 사이의 공분산도 얻을 수 있으므로 각 지점의 표준편차와 전체 곡선의 공동 변화를 구분합니다.
핵심 인사이트: 불확실성은 모델 밖에서 임의로 붙인 여유 폭이 아닙니다. 선택한 평균·커널·잡음 가정에 관측을 반영한 계산 결과입니다.
커널과 주요 설정은 무엇을 뜻하나요?
length_scale은 입력 변화의 척도입니다
RBF 커널의
length_scale
이 작으면 가까운 입력 사이에서도 함수가 빠르게 달라질 수 있고 크면 관계가 더 넓은 입력 범위에 걸쳐 유지됩니다. 하나의 값으로 모든 특징에 같은 척도를 쓰거나 특징별로 값을 둘 수 있습니다. 거리 계산에 들어가는 입력 단위가 달라지면 같은 설정값의 의미도 달라집니다.
alpha와 WhiteKernel은 역할을 나눠 봅니다
scikit-learn의
alpha
는 학습 중 커널 행렬의 대각선에 더하는 값입니다. 수치 안정화에 쓰거나 학습 관측의 추가 잡음 분산으로 해석하며 표본마다 다른 값을 줄 수도 있습니다. 표준편차가 아닌 분산이라는 단위를 확인합니다.
WhiteKernel
은 보통 신호 커널에 더해 공통의 독립적인 가우시안 잡음을 표현합니다.
noise_level
은 잡음 분산이며 고정하지 않으면 학습에서 조정할 수 있습니다.
alpha
와 달리 커널 구성 요소이므로 두 설정을 같은 옵션의 별명처럼 취급하지 않습니다.
학습 설정과 출력 옵션을 구분합니다
커널의 하이퍼파라미터는 로그 주변우도를 최대화하며 조정할 수 있지만 지역 최적점에 머물 수 있습니다.
n_restarts_optimizer
는 다른 초기값에서 추가로 최적화를 시도하는 횟수입니다. 값을 늘린다고 검증 성능 향상이 보장되지는 않습니다.
normalize_y=True
는 정답의 평균을 빼고 단위 분산으로 맞추며 예측을 보고할 때 원래 단위로 되돌립니다. 입력 특징을 표준화하는 옵션은 아닙니다.
return_std=True
는 평균과 표준편차를,
return_cov=True
는 평균과 공분산을 요청하며 두 옵션을 동시에 켜지 않습니다.
가우시안 프로세스와 헷갈리는 용어는 무엇이 다른가요?
가우시안 혼합 모델과의 차이
GMM은 여러 정규분포를 섞어 데이터의 확률밀도를 표현합니다. GP는 입력 위치들에 대응하는 함수값의 결합분포를 정합니다. 가우시안이라는 공통 이름만으로 같은 모델이 되지는 않습니다. GMM의 성분별 소속 확률과 GP 회귀의 예측 표준편차도 뜻이 다릅니다.
일반 회귀와의 차이
회귀는 연속적인 값을 예측하는 작업 전체를 뜻하고 GPR은 그 작업을 수행하는 모델입니다. 선형 회귀가 입력과 정답의 선형 관계를 다루는 데 비해 GP는 커널로 다양한 관계를 표현합니다. 다만 GP에도 선형 커널이 있으므로 모든 GP가 비선형 곡선을 만든다고 설명하면 부정확합니다.
촐레스키 분해와의 차이
촐레스키 분해는 조건을 만족하는 행렬을 삼각행렬의 곱으로 나누는 계산 방법입니다. GP 회귀 내부에서 이 계산을 활용하지만 GP 자체의 정의는 아닙니다. 행렬 계산이 성공했다는 사실과 예측 분포가 현실을 잘 설명한다는 판단은 분리합니다.
컨포멀 예측과의 차이
컨포멀 예측은 별도 보정 데이터의 오차 순위 등을 이용해 예측 집합을 만듭니다. GPR의 기본 구간은 커널과 잡음 등 확률 모델의 가정에서 나옵니다. GP가 반환한 표준편차만으로 컨포멀 예측의 포함률 보장이 생기는 것은 아니며 두 방법은 평가 조건과 보장 근거를 구분해서 비교합니다.
실전에서는 어디에 쓰이나요?
연속적인 실험값과 센서값을 예측합니다
위치·온도·압력 같은 입력으로 측정값을 추정하거나 비싼 시뮬레이션의 결과를 근사하는 후보 모델로 씁니다. 관측 범위 안에서의 예측과 멀리 떨어진 조건의 예측을 나눠 평가하면 모델이 어느 영역에서 쓸 만한지 파악하기 쉽습니다.
시간 변화와 추가 관측 후보를 살펴봅니다
시간을 입력으로 두고 장기 추세와 주기 변화를 커널로 표현할 수 있습니다. scikit-learn은 대기 중 이산화탄소 농도 예측을 예시로 안내합니다. 예측 분산은 추가 관측 위치를 검토하는 자료가 되지만 가장 불확실한 지점이 항상 업무상 가장 중요한 지점은 아닙니다.
가우시안 프로세스를 적용할 때 어떤 순서로 확인하나요?
1. 예측할 대상과 데이터 분리를 정합니다
참함수의 값을 추정할지, 잡음이 섞인 다음 관측값을 예측할지부터 구분합니다. 시간 데이터는 미래가 학습에 섞이지 않도록 나누고 같은 장비나 같은 실험의 반복 측정도 분리 기준을 검토합니다. 입력 스케일링은 학습 데이터에서 맞춘 뒤 검증 데이터에 적용합니다.
2. 커널·잡음과 최적화 결과를 기록합니다
매끄러움이나 주기성에 대한 근거를 적고 커널 후보를 비교합니다. 학습된 길이 척도와 잡음 수준, 최적화 경고, 경계값에 붙은 파라미터를 함께 확인합니다. 잡음과 신호를 모델이 잘못 나눴을 가능성도 있으므로 우도 숫자 하나로 후보를 확정하지 않습니다.
3. 평균 오차와 구간 품질을 따로 평가합니다
학습에 쓰지 않은 자료에서 예측 평균의 오차를 확인하고 선택한 구간에 실제값이 들어간 비율과 구간 폭을 함께 봅니다. 전체 평균뿐 아니라 관측이 드문 영역의 결과도 나눠 살핍니다. 표본 수가 적으면 포함률 자체도 불안정하므로 평가 건수와 대상 범위를 함께 남깁니다.
실전 팁: 예측 평균·표준편차·실제값을 같은 행에 저장하고 어떤 잡음을 포함한 출력인지 표시하세요. 평균이 잘 맞는데 구간은 지나치게 좁은 모델을 구분하기 쉽습니다.
사용할 때 무엇을 주의해야 하나요?
입력 데이터의 히스토그램이 정규분포일 필요는 없습니다. GP의 가우시안 가정은 고정된 입력 위치에서의 함수값 결합분포에 관한 것입니다. 입력값을 정규분포 모양으로 바꿔야 GP를 쓸 수 있다는 뜻이 아닙니다.
예측 표준편차에 포함된 잡음을 확인합니다. scikit-learn에서
alpha
로 지정한 학습 관측 잡음은 새 관측의 잡음으로 자동 합산되지 않습니다. 신호 커널에
WhiteKernel
을 더한 모델은 그 잡음 성분도 예측 분산에 반영합니다. 두 모델의 구간을 비교할 때 무엇을 예측하는지 먼저 맞춥니다.
관측 범위 밖의 예측을 과신하지 않습니다. RBF처럼 멀리 떨어지면 상관이 약해지는 커널에서는 관측에서 멀어질수록 사전분포의 영향이 커집니다. 최근에 증가한 추세가 계속 이어질 것이라고 자동으로 가정하지 않습니다. 외삽에 필요한 구조가 커널에 담겼는지 확인하세요.
기본 구현의 계산 비용을 미리 봅니다. 일반적인 조밀한 GP 회귀는 학습 표본 수에 대해 행렬 저장량이 제곱 규모로, 분해 계산이 세제곱 규모로 커집니다. 큰 데이터에는 근사법 등을 검토하지만 계산을 줄이는 방식에 따라 예측과 불확실성의 성질도 달라집니다.
주의: 확률 모델이 반환한 구간은 가정이 맞는 범위에서 해석합니다. 분포 변화·잘못된 커널·측정 오류까지 자동으로 감지하거나 보장하는 장치는 아닙니다.
자주 묻는 질문
Q1. 가우시안 프로세스는 딥러닝인가요?
기본 GP는 신경망의 여러 층을 학습하는 딥러닝 모델과 다릅니다. 평균과 커널로 함수의 분포를 정하는 확률 모델이며 신경망과 결합한 확장 방법도 있지만 그 확장이 GP의 기본 정의는 아닙니다.
Q2. 입력이 시간 순서여야 하나요?
아닙니다. 입력은 공간 위치나 여러 특징의 벡터일 수 있습니다. 프로세스라는 이름이 시계열 전용을 뜻하지 않으며 선택한 커널이 입력 사이의 관계를 적절히 표현하는지가 중요합니다.
Q3. 학습 전에 predict를 호출해도 결과가 나오나요?
scikit-learn의 GaussianProcessRegressor는 학습 전에도 사전분포에 따른 예측을 지원합니다. 이 결과에는 아직 관측 데이터가 반영되지 않았으므로 학습이 끝난 모델의 성능으로 제시하면 안 됩니다.
Q4. 표준편차가 작으면 반드시 정확한가요?
아닙니다. 모델 가정이 틀렸거나 잡음 수준을 작게 잡으면 실제로 틀리면서도 좁은 분포가 나올 수 있습니다. 독립 데이터에서 평균 오차와 구간 포함률을 나눠 확인해야 합니다.
Q5. 분류에도 같은 계산을 그대로 쓰나요?
GP를 분류에도 쓰지만 정답이 이산 라벨이면 가우시안 잡음을 쓰는 기본 회귀와 우도 및 추론 방식이 달라집니다. scikit-learn의 GaussianProcessClassifier는 로지스틱 연결과 라플라스 근사를 사용하며 회귀의 가우시안 사후분포 계산을 그대로 적용하지 않습니다.
출처
마무리
가우시안 프로세스는 함수의 분포를 평균과 커널로 표현하는 확률 모델입니다. 회귀에서는 관측과 잡음을 반영해 예측 평균뿐 아니라 표준편차나 공분산도 구합니다. 어떤 값이 나왔는지와 그 값 주변에 얼마나 불확실성이 남았는지를 함께 읽는 방법입니다.
초보자라면 커널이 담은 가정, 관측 잡음의 의미, 예측할 대상부터 확인하세요. 그런 다음 독립 데이터에서 평균 오차와 구간 품질을 나눠 평가합니다. 곡선이 매끄럽고 구간이 좁다는 인상보다 실제로 확인한 예측 범위와 오류가 모델 선택의 기준입니다.
