AEGLOSLAB 로봇공학 전서(全書)

제1부 수학적 기초

1.19 확률·통계 I: 확률변수·가우시안·베이즈 정리

1.19.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자

이 장은 로봇의 센서 잡음과 상태 불확실성을 다루는 확률의 기초, 곧 확률변수와 분포, 다변량 가우시안의 성질, 베이즈 정리를 정리한다. 상태추정·필터·SLAM(9.1·9.3·9.8)은 모두 이 장의 도구 위에 있다. 다룰 질문은 다섯 가지다. 다변량 가우시안은 평균과 공분산으로 어떻게 정의되고 표본 추출과 마할라노비스 타원은 어떻게 계산하는가, 가우시안의 조건부 분포와 주변 분포는 어떤 식으로 얻는가, 선형-가우시안 모델에서 베이즈 갱신은 어떤 형태이며 정보 형식과 어떻게 이어지는가, 가우시안을 비선형 함수에 통과시키면 무엇이 달라지고 선형화·무향 변환은 어디까지 맞는가, 표본 추정의 오차는 표본 수에 따라 어떻게 줄어드는가.

배우는 것:

  • 확률변수와 분포 — 확률밀도·기댓값·분산·공분산, 표본 추출(박스-뮬러·촐레스키).
  • 다변량 가우시안 — 마할라노비스 거리, 카이제곱 타원, 선형 변환, 조건부·주변.
  • 베이즈 정리 — 선형-가우시안 갱신(칼만 형식), 정보 형식.
  • 비선형 변환 — 극좌표→직교 변환의 평균 편향, 선형화·무향 변환·몬테카를로.
  • 표본 오차 — 평균·공분산 추정의 $N^{-1/2}$ 수렴.
  • 라이브러리 — SciPy·NumPy와의 비교.

선수 지식: 1.1(행렬 분해), 1.9(대칭 양정부호 행렬), 1.8(공분산 전파). 추정 이론은 1.20, 확률 과정은 1.21, 필터는 9.1·9.3·9.4이 다룬다.

특히 중요한 독자: 상태추정·센서 융합을 구현하는 엔지니어, 불확실성을 정량화하는 연구자, 확률 모델의 일관성을 검증하는 소프트웨어 개발자.

출처 방침. 서지는 Crossref 응답으로 확인했다(목록은 이 장 끝). 직접 실행한 것: SciPy 1.18.1(stats.multivariate_normal·chi2)과 NumPy 2.5.4(cov·linalg). 읽지 못한 것: 인용한 교과서·논문의 본문(정리 번호는 (확인 필요)), SciPy의 소스. 이 장의 수치는 순수 파이썬 구현(난수는 표준 라이브러리 random의 균일 난수)으로 계산했으며 1.1의 LU 풀이, 1.9의 대칭 고유분해를 불러와 사용했다.

1.19.2 개념 — 불확실성을 분포로 두기

로봇은 상태를 하나의 값이 아닌 분포로 가진다. 센서 측정 $z$는 상태 $x$에 잡음 $v$가 더해진 값이고, 상태의 믿음은 측정이 들어올 때마다 갱신된다. 가우시안은 평균 $\mu$와 공분산 $\Sigma$ 두 가지로 분포가 정해지고 선형 변환·조건부·곱에 대해 닫혀 있어 계산이 쉽다. 그래서 대부분의 추정기가 믿음을 가우시안으로 근사하며, 이 근사가 깨지는 곳(비선형 변환, 다봉 분포, 이상치)이 필터 설계의 어려움이다.

아래 도해는 2차원 가우시안의 표본과 마할라노비스 타원이다. 타원 안의 확률은 카이제곱 분포로 정해진다.

안쪽부터 1σ·2σ·3σ 타원
평균 0, 공분산 [[2, 1.2], [1.2, 1]]인 2차원 가우시안의 표본 300개와 1σ·2σ·3σ 마할라노비스 타원(내부 확률 39.3%·86.5%·98.9%).

1.19.3 원리

1.19.3.1 확률변수와 가우시안

결론: $n$차원 가우시안은 평균과 대칭 양정부호 공분산으로 정해지며, 표본은 촐레스키 분해 $\Sigma=LL^\top$로 표준정규 벡터에서 만든다.

확률변수 $x$의 기댓값 $\mu=\mathbb E[x]$, 공분산 $\Sigma=\mathbb E[(x-\mu)(x-\mu)^\top]$는 대칭 양반정부호이다. 가우시안 $\mathcal N(\mu,\Sigma)$의 밀도는

$$p(x)=\frac{1}{\sqrt{(2\pi)^n\det\Sigma}}\exp\Bigl(-\tfrac12(x-\mu)^\top\Sigma^{-1}(x-\mu)\Bigr)$$

이다. $d^2=(x-\mu)^\top\Sigma^{-1}(x-\mu)$는 마할라노비스 거리의 제곱이며 $x$가 가우시안이면 $d^2$이 자유도 $n$인 카이제곱 분포를 따른다. 따라서 확률 $p$를 포함하는 타원은 $d^2\le\chi^2_{n}(p)$이다. $z\sim\mathcal N(0,I)$에서 $x=\mu+Lz$는 $\mathcal N(\mu,\Sigma)$를 따르며 표준정규 표본은 박스-뮬러 변환(Box & Muller 1958; 서지 확인)으로 균일 난수에서 얻는다. 선형 변환 $y=Ax+b$는 $\mathcal N(A\mu+b,A\Sigma A^\top)$이다(1.8의 공분산 전파의 선형 경우).

1.19.3.2 조건부와 주변 분포

결론: 결합 가우시안의 일부 변수를 조건으로 두면 나머지는 가우시안이며, 조건부 평균은 조건 변수의 선형 함수이고 조건부 공분산은 조건 값과 무관하게 줄어든다.

$x=(x_a,x_b)$가 결합 가우시안이면 주변 분포 $x_a\sim\mathcal N(\mu_a,\Sigma_{aa})$이고

$$x_a\mid x_b\sim\mathcal N\bigl(\mu_a+\Sigma_{ab}\Sigma_{bb}^{-1}(x_b-\mu_b),\ \Sigma_{aa}-\Sigma_{ab}\Sigma_{bb}^{-1}\Sigma_{ba}\bigr)$$

이다. 조건부 공분산 $\Sigma_{aa}-\Sigma_{ab}\Sigma_{bb}^{-1}\Sigma_{ba}$는 $\Sigma_{aa}$의 슈어 보수이며 $\Sigma_{aa}$보다 작거나 같다(관측이 불확실성을 줄인다).

1.19.3.3 베이즈 정리와 선형-가우시안 갱신

결론: 가우시안 사전분포와 선형 측정 $z=Hx+v$($v\sim\mathcal N(0,R)$)의 사후분포는 가우시안이며 평균·공분산은 칼만 이득으로 얻고 정보 행렬은 더해진다.

베이즈 정리는 $p(x\mid z)\propto p(z\mid x)\,p(x)$이다. 사전 $\mathcal N(\mu,\Sigma)$에서

$$K=\Sigma H^\top(H\Sigma H^\top+R)^{-1},\quad \mu^+=\mu+K(z-H\mu),\quad \Sigma^+=\Sigma-KH\Sigma$$

이고, 정보 형식으로는 $(\Sigma^+)^{-1}=\Sigma^{-1}+H^\top R^{-1}H$이다. 두 형식은 같은 사후분포이며 측정이 여러 개이면 정보 형식에서 $H^\top R^{-1}H$가 측정마다 더해진다. 이 갱신이 칼만 필터의 보정 단계이다(9.3).

1.19.3.4 비선형 변환과 가우시안

결론: 가우시안은 선형 변환에서만 가우시안으로 남으며, 비선형 변환 $y=f(x)$의 평균과 공분산은 선형화(1차 근사)로는 평균이 어긋나고 공분산이 작게 나올 수 있다. 무향 변환은 평균·공분산을 2차 항까지 맞춘다고 알려져 있다 (확인 필요: 정리 번호).

선형화는 $\mu_y\approx f(\mu)$, $\Sigma_y\approx J\Sigma J^\top$($J=\partial f/\partial x$)이다(확장 칼만 필터, 9.4). 무향 변환은 $\mu\pm\sqrt{n+\kappa}\,L_{:,k}$ 형태의 시그마점 $2n+1$개를 $f$에 통과시켜 가중 평균·공분산을 구한다(Julier & Uhlmann 2004; 서지 확인, 본문 미확인). 두 방법 모두 결과를 가우시안으로 두므로 결과 분포의 비가우시안 형태(휨·다봉)는 표현하지 못한다. 몬테카를로는 표본을 변환해 직접 계산하며 표본 수가 충분하면 기준으로 쓸 수 있다.

로봇 센서에서 흔한 예가 거리·방위각 측정의 직교 좌표 변환 $x=r\cos\theta$, $y=r\sin\theta$이다. $r$과 $\theta$가 독립 가우시안이면 평균은 $\mathbb E[x]=\mathbb E[r]\,e^{-\sigma_\theta^2/2}$로 $\mathbb E[r]$보다 작고(방위각 잡음이 클수록), 이 편향을 선형화는 잡아내지 못한다.

1.19.3.5 표본 추정과 일관성

표본 평균 $\hat\mu=\tfrac1N\sum x_i$와 표본 공분산의 오차는 $N^{-1/2}$로 줄어든다(중심극한정리). 추정기가 보고한 공분산이 실제 오차를 반영하는지의 일관성은 정규화 오차 제곱(NEES) 등으로 검사하며(9.14), 이 장의 마할라노비스 타원의 포함 비율이 같은 검사이다. 확률 모델과 필터의 정의는 9.1, 추정량의 성질(최대 우도·사후 최대·크라메르-라오 한계)은 1.20이 다룬다.

1.19.4 알고리즘

표본 추출, 조건부, 베이즈 갱신, 무향 변환

sample(μ, L):  z ← 박스-뮬러로 표준정규 n개 ;  x ← μ + L z
mahal2(x, μ, L): L y = x − μ를 앞으로 대입해 풀고 ‖y‖²
cond(μ, Σ, a, b, x_b): K ← Σ_ab Σ_bb⁻¹ ;  μ_a|b ← μ_a + K (x_b − μ_b)
                        Σ_a|b ← Σ_aa − K Σ_ba
bayes(μ, Σ, H, R, z): P ← H Σ Hᵀ + R ;  K ← Σ Hᵀ P⁻¹ ;  μ⁺ ← μ + K (z − Hμ)
                        Σ⁺ ← Σ − K H Σ
unscented(f, μ, Σ, κ): 시그마점 {μ, μ ± √(n+κ) L_k} ;  가중치 {κ/(n+κ), 1/(2(n+κ))}
                        평균 ← Σ w f(점) ;  공분산 ← Σ w (f − 평균)(f − 평균)ᵀ

구현은 1.19.5의 코드에 있다.

1.19.5 풀이 예제 — 표본·조건부·베이즈 갱신·비선형 변환과 라이브러리 확인

3차원 가우시안에서 표본 추정의 수렴과 마할라노비스 타원의 포함 비율을 확인하고, 조건부 분포 공식을 표본 회귀와 비교하며, 선형-가우시안 베이즈 갱신을 격자 계산과 정보 형식으로 검증하고, 극좌표→직교 변환에서 선형화·무향 변환·몬테카를로를 비교한 뒤 SciPy·NumPy와 대조한다. 결론부터 적으면 다음과 같다. ① 표본 공분산의 최대 원소 오차는 $N^{-1/2}$로 줄고 오차에 $\sqrt N$을 곱한 값이 $N=100\sim10^5$에서 약 5.1~5.4로 일정하다. ② 마할라노비스 타원은 공칭 확률 0.5·0.9·0.99를 $2\times10^{-3}$ 안에서 포함한다. ③ 조건부 평균·분산의 공식(2.3924·2.3772)은 표본 $2\times10^5$개의 회귀(2.3933·2.3727)와 $10^{-2}$ 안에서 일치한다. ④ 베이즈 갱신의 칼만 형식은 격자 계산·정보 형식과 4자리까지 같다. ⑤ 극좌표→직교 변환에서 선형화는 평균 $x$가 10.0000으로 해석해 9.5600보다 0.44 크고 분산 $\Sigma_{xx}$가 0.0100으로 해석해 0.3796의 1/38이며 95% 타원이 몬테카를로 표본의 51%만 포함한다. 무향 변환은 평균 9.5600, $\Sigma_{xx}$ 0.3971, 포함 비율 93%이다. ⑥ SciPy·NumPy와 로그 밀도 $5.3\times10^{-15}$, 카이제곱 분위수 $1.6\times10^{-14}$ 안에서 일치한다.

구현. normal·cholesky·sample·mahal2·chi2_cdf·cond_gauss·bayes_update·unscented. 1.1의 solve_lu, matmul, 1.9의 eigsym(타원 도해)

항목값
입력 1$\mu=(1,-2,0.5)$, $\Sigma=\begin{bmatrix}4&1.2&0.5\\1.2&1&0.1\\0.5&0.1&0.8\end{bmatrix}$, $N=10^2\sim10^5$(시드 37)
입력 2같은 가우시안에서 $x_1\mid(x_2,x_3)=(-1,1)$, 표본 $2\times10^5$개
입력 3사전 $\mathcal N(0,\mathrm{diag}(4,1))$, 측정 $z=x_1+x_2+v$, $R=0.5$, $z=3$
입력 4$r\sim\mathcal N(10,0.1^2)$, $\theta\sim\mathcal N(0,0.3^2)$ rad 독립, $x=r\cos\theta$, $y=r\sin\theta$, 몬테카를로 $4\times10^5$개
import math

def normal(rng):
    """박스-뮬러: 균일 난수 두 개에서 표준정규 한 쌍"""
    u1, u2 = 1.0 - rng.random(), rng.random()
    r, t = math.sqrt(-2.0 * math.log(u1)), 2 * math.pi * u2
    return r * math.cos(t), r * math.sin(t)

def mv(M, x):
    return [sum(a * b for a, b in zip(r, x)) for r in M]

def madd(A, B, k=1.0):
    return [[a + k * b for a, b in zip(r, s)]
            for r, s in zip(A, B)]

def cholesky(A):
    """A = L L^T (A는 대칭 양정부호)"""
    n = len(A)
    L = [[0.0] * n for _ in range(n)]
    for i in range(n):
        for j in range(i + 1):
            s = A[i][j] - sum(L[i][k] * L[j][k]
                              for k in range(j))
            L[i][j] = math.sqrt(s) if i == j else s / L[j][j]
    return L

def sample(rng, mu, L, N):
    """N(mu, L L^T)에서 N개 표본"""
    n, out, buf = len(mu), [], []
    for _ in range(N):
        while len(buf) < n:
            buf += normal(rng)
        z = [buf.pop() for _ in range(n)]
        out.append([mu[i] + sum(L[i][k] * z[k]
                                for k in range(i + 1))
                    for i in range(n)])
    return out

def mahal2(x, mu, L):
    """마할라노비스 거리 제곱: L y = x - mu의 ||y||^2"""
    y = []
    for i in range(len(mu)):
        s = x[i] - mu[i]
        s -= sum(L[i][k] * y[k] for k in range(i))
        y.append(s / L[i][i])
    return sum(v * v for v in y)

def chi2_cdf(x, k):
    if k == 2:
        return 1 - math.exp(-x / 2)
    return (math.erf(math.sqrt(x / 2))
            - math.sqrt(2 * x / math.pi) * math.exp(-x / 2))

def cond_gauss(mu, S, ix, iy, y):
    """x | y: 평균 mu_x + S_xy S_yy^-1 (y - mu_y)"""
    Syy = [[S[i][j] for j in iy] for i in iy]
    Sxy = [[S[i][j] for j in iy] for i in ix]
    Sxx = [[S[i][j] for j in ix] for i in ix]
    d = [y[k] - mu[j] for k, j in enumerate(iy)]
    K = [solve_lu(Syy, row)[0] for row in Sxy]
    m = [mu[i] + sum(a * b for a, b in zip(K[r], d))
         for r, i in enumerate(ix)]
    return m, madd(Sxx, matmul(K, transpose(Sxy)), -1.0)

def bayes_update(mu, S, H, R, z):
    """z = Hx + v: 사후 평균·공분산(칼만 형식)"""
    SHt = matmul(S, transpose(H))
    P = madd(matmul(H, SHt), R)
    K = [solve_lu(P, row)[0] for row in SHt]
    r = [a - b for a, b in zip(z, mv(H, mu))]
    m = [a + b for a, b in zip(mu, mv(K, r))]
    return m, madd(S, matmul(matmul(K, H), S), -1.0)

def unscented(f, mu, S, kappa):
    """시그마점 2n+1개를 f에 통과: 평균·공분산"""
    n = len(mu)
    L = cholesky(S)
    c = math.sqrt(n + kappa)
    pts = [list(mu)]
    for k in range(n):
        col = [c * L[i][k] for i in range(n)]
        pts.append([a + b for a, b in zip(mu, col)])
        pts.append([a - b for a, b in zip(mu, col)])
    w = [kappa / (n + kappa)] + [0.5 / (n + kappa)] * (2 * n)
    Y = [f(p) for p in pts]
    m = [sum(a * y[i] for a, y in zip(w, Y))
         for i in range(len(Y[0]))]
    D = [[y[i] - m[i] for i in range(len(m))] for y in Y]
    C = [[sum(a * d[i] * d[j] for a, d in zip(w, D))
          for j in range(len(m))] for i in range(len(m))]
    return m, C

① 표본 추정의 수렴.

표본 수 $N$반복평균 오차 $\lVert\hat\mu-\mu\rVert$공분산 오차 $\max\lvert\hat\Sigma-\Sigma\rvert$오차 $\times\sqrt N$(공분산)
1002000.22520.53085.31
1,0001000.06560.17045.39
10,000300.01970.05355.35
100,000200.00500.01625.12
102 103 104 105 10−3 10−2 10−1 100 표본 수 N 오차 평균 오차 공분산 최대 원소 오차 N−1/2 기울기
표본 수 N에 따른 평균 오차와 공분산 최대 원소 오차(계산값, 반복 평균). 공분산 오차가 N^(−1/2) 기울기를 따른다.

평균 오차도 같은 비율로 줄며(0.2252 → 0.0050), $\sqrt N$을 곱한 공분산 오차가 일정하다.

② 마할라노비스 타원의 포함 비율. 표본 $10^5$개 가운데 타원 $d^2\le\chi^2_k(p)$ 안의 비율이다.

자유도공칭 확률마할라노비스 타원 안의 표본 비율
20.50.5006
20.90.8985
20.990.9907
30.50.5000
30.90.8998
30.990.9903

③ 조건부 분포. 식은 1.19.3.2이다. 표본에서는 $x_1$을 $(x_2,x_3)$에 선형 회귀해 조건부 평균(회귀 직선의 값)과 분산(잔차 분산)을 얻었다.

조건부 $x_1\mid(x_2,x_3)=(-1,1)$공식표본 $2\times10^5$개의 회귀
평균2.39242.3933
분산2.37722.3727
주변 분산 $\Sigma_{11}$(조건 없음)4.0000

조건을 주면 $x_1$의 분산이 4.0000에서 2.3772로 줄어든다.

④ 베이즈 갱신. 격자는 $[-9,9]^2$를 $361\times361$로 나눈 사후 밀도의 합이다.

사후칼만 형식격자 계산정보 형식 $(\Sigma_0^{-1}+H^\top R^{-1}H)^{-1}$
$\mu_1$2.18182.1818
$\mu_2$0.54550.5455
$\Sigma_{11}$1.09091.09091.0909
$\Sigma_{22}$0.81820.81820.8182
$\Sigma_{12}$-0.7273-0.7273-0.7273

⑤ 극좌표→직교 변환. 분포가 가우시안이 아니게 되는 대표 예이다.

방법평균 $x$평균 $y$$\Sigma_{xx}$$\Sigma_{yy}$$\Sigma_{xy}$95% 타원 안의 몬테카를로 표본 비율
몬테카를로 (40만 표본)9.56060.00770.37898.2289-0.01480.930
선형화10.00000.00000.01009.00000.00000.512
무향 변환 ($\kappa=1$)9.56000.00000.39718.21860.00000.932
해석해 ($r,\theta$ 독립 가우시안)9.560000.37968.23730
8 9 10 11 −6 −3 0 3 6 x (m) y (m) 몬테카를로 표본 선형화 95% 무향 변환 95%
극좌표 측정(r~N(10, 0.1²) m, θ~N(0, 0.3²) rad)의 직교 좌표 변환 표본(몬테카를로)과 가우시안 근사의 95% 타원. 선형화의 타원은 x 방향이 좁아 표본 대부분을 놓치고, 무향 변환의 타원은 표본이 휜 영역을 대체로 포함한다.

선형화는 평균을 변환의 중심 $f(\mu)=(10,0)$에 두므로 $x$의 평균이 $\mathbb E[x]=9.56$보다 0.44(방위각 잡음 $\sigma_\theta=0.3$ rad의 영향) 크고, $\partial x/\partial\theta=-r\sin\theta$가 $\theta=0$에서 0이어서 $\Sigma_{xx}$에 방위각 잡음이 반영되지 않아 0.0100으로 과소 평가한다. 그 결과 95% 타원이 몬테카를로 표본의 약 51%만 포함해 거의 절반의 표본을 놓친다(공칭 95%). 무향 변환은 평균을 정확히 맞추고 $\Sigma_{xx}$ 0.3971(해석해 0.3796)로 몬테카를로 표본의 93%를 포함한다. 몬테카를로 표본 자체도 휜 분포여서 가우시안 95% 타원 안의 비율이 93%이며 가우시안 모델이 완전하지 않음을 보인다.

⑥ 라이브러리 호출 결과(실행 2026-11-03). 스크립트는 robotics/fig-src/1.19-libcheck.py, 출력은 robotics/fig-src/data/1.19-libcheck-output.txt에 있다.

항목최대 차이
촐레스키 $LL^\top$ 대 $\Sigma$, numpy.linalg.cholesky와의 차이0.0·0.0
로그 밀도: 이 장 대 scipy.stats.multivariate_normal.logpdf$5.3\times10^{-15}$
표본 공분산: 이 장 대 numpy.cov$8.9\times10^{-16}$
카이제곱 분위수: 이 장(이분법) 대 scipy.stats.chi2.ppf$1.6\times10^{-14}$
카이제곱 누적분포: 이 장 대 chi2.cdf$1.1\times10^{-16}$
조건부 평균·분산: 이 장 대 numpy.linalg.solve0.0·0.0
베이즈 갱신: 칼만 형식 대 정보 형식(numpy) 평균·공분산$1.3\times10^{-15}$·$2.2\times10^{-16}$

한계. 수치는 합성 입력(시드 고정)이다. 표본 추정의 수렴은 한 공분산에서, 비선형 변환은 한 사례(극좌표)에서 측정했다. 무향 변환은 $\kappa=1$ 하나만 비교했고 다른 매개변수화(알파·베타·카파)와 고차 근사(9.4)는 다루지 않았다. 이상치·다봉 분포·비가우시안 잡음은 다루지 않았다. 난수는 표준 라이브러리의 균일 난수에 박스-뮬러를 적용한 것이다.

견해: 이 책은 센서 모델의 비선형 변환(거리·방위각 등)에서 방위각 잡음이 크면(대략 0.1 rad 이상) 선형화의 평균·공분산을 신뢰하지 않고 무향 변환이나 몬테카를로로 검증한 뒤 사용하는 것을 기본으로 둔다고 본다. 근거는 위 예제에서 방위각 표준편차 0.3 rad일 때 선형화가 평균을 0.44 m 어긋나게 하고 공분산을 1/38로 줄여 95% 타원이 표본의 51%만 포함했으며, 무향 변환은 평균을 정확히 맞추고 93%를 포함했다는 점이다. 0.1 rad의 경계는 검증하지 않았다 (추정).

1.19.6 설계 트레이드오프 — 불확실성의 표현과 전파

공개 문헌에서 확인되는 선택지는 세 가지다.

  • ① 가우시안과 선형화(EKF 방식). 연산이 가장 가볍다. 비선형이 강하면 평균·공분산이 틀린다.
  • ② 가우시안과 무향 변환(UKF 방식). 야코비안이 필요 없고 2차 정확도이다. 비가우시안 형태를 표현하지 못한다.
  • ③ 표본 기반(몬테카를로·파티클). 비가우시안을 표현한다. 표본 수에 따라 비용이 커지며 오차가 $N^{-1/2}$로 줄어든다(9.5).
방식장점한계알맞은 경우
① 선형화가벼움, 해석적큰 잡음·강한 비선형에서 편향작은 잡음, 근사 선형
② 무향 변환야코비안 불필요, 2차비가우시안 불가중간 비선형, 야코비안 곤란
③ 표본 기반일반 분포비용, 수렴 느림다봉·강한 비선형, 기준 계산

견해: 분포 표현의 선택은 정확도 요구보다 모델 검증 방법(NEES·타원 포함 비율)을 먼저 정하는 것이 맞다고 본다. 근거는 이 장에서 같은 가우시안 보고(선형화 대 무향 변환)가 포함 비율(51% 대 93%)이라는 단순한 검사로 가려졌다는 점이다.

1.19.7 응용 축 비교

응용 축확률 기초가 맡는 일요구관련 장
산업·제조보정 파라미터의 불확실성, 측정 잡음 모델정확도1.12, 1.20
물류·이동위치추정의 공분산 전파일관성9.3, 9.14
도로 주행센서 융합의 베이즈 갱신실시간, 일관성9.1, 9.3
서비스인식 불확실성의 표현강건성9.1
의료·헬스케어정합·추적의 불확실성 평가정밀도, 검증1.20
휴머노이드·범용전신 상태추정의 공분산수치 안정9.4
필드장시간 항법 오차의 전파표류 평가1.8, 9.14
국방·안보원리 수준에서 해당하는 고유 요구 없음——

이 표는 이 책의 정리이며 장별 요구는 다르다.

1.19.8 관련 규격·프로토콜

문서발행무엇을 정하나상세 장
「A Note on the Generation of Random Normal Deviates」Box·Muller, Ann. Math. Statist. 29(2), 1958정규 난수 생성—
「Unscented Filtering and Nonlinear Estimation」Julier·Uhlmann, Proc. IEEE 92(3), 2004무향 변환9.4
『State Estimation for Robotics』Barfoot, Cambridge University Press로봇 상태추정의 확률 기초9.3
『Estimation with Applications to Tracking and Navigation』Bar-Shalom 외, Wiley, 2001(Crossref 등록 2002)추정·일관성 검사9.14
SciPy stats·NumPyPyPI scipy 1.18.1, numpy 2.5.4분포·선형대수 함수—
수학 표기·기호표이 책확률·가우시안 표기A.2

확률 기초의 표기에 국제 표준은 없다. 추정기의 보고는 평균·공분산과 함께 일관성 검사(NEES·포함 비율)를 적는 것이 상호운용의 기준이다.

1.19.9 관련 규제·인증 요구와의 연결

직접 적용되는 규제는 없다. 위치·자세 불확실성의 과소 보고(선형화의 과도한 확신)는 안전 기능이 가정하는 위치 오차 범위를 깨뜨릴 수 있으므로 불확실성의 일관성이 안전 관련 소프트웨어의 검증 항목이 될 수 있다. 소프트웨어 안전과 품질 표준은 26.20이 다룬다.

1.19.10 한계·유의점·미해결

  • 정리의 출처. 중심극한정리, 가우시안의 조건부·주변 공식, 무향 변환의 정확도의 정리 번호와 교과서(Barfoot·Bar-Shalom 외) 장 번호는 확인하지 않았다 (확인 필요).
  • 범위. 비가우시안·이상치·다봉 분포, 매개변수화가 다른 무향 변환, 베이즈 비모수(가우시안 과정, 1.21)는 다루지 않았다.
  • 수치. 몬테카를로 기준의 표본 오차(40만 개, 약 $10^{-2}$)가 있다.
  • 라이브러리. SciPy·NumPy의 소스는 읽지 않았고 실행 결과로만 비교했다.

1.19.11 체크포인트·연구 질문

체크포인트:

  1. 가우시안의 밀도와 마할라노비스 거리의 정의, 타원의 포함 확률을 카이제곱 분위수로 구하는 방법을 설명할 수 있는가.
  2. 촐레스키 분해로 상관 있는 가우시안 표본을 만드는 절차를 적을 수 있는가.
  3. 결합 가우시안의 조건부 평균·공분산 공식을 유도하고 조건이 불확실성을 줄이는 이유를 설명할 수 있는가.
  4. 선형-가우시안 베이즈 갱신의 칼만 형식과 정보 형식이 같은 사후분포임을 보일 수 있는가.
  5. 비선형 변환에서 선형화의 평균 편향과 공분산 과소 평가가 생기는 이유를 설명할 수 있는가.
  6. 무향 변환의 시그마점과 가중치를 적고 선형화와의 차이를 설명할 수 있는가.
  7. 마할라노비스 타원의 포함 비율로 추정기의 일관성을 검사하는 방법을 말할 수 있는가.

연구 질문(47.12에 수록한다):

  • 로봇 센서(LiDAR 거리·카메라 방위각)에서 선형화가 편향되는 잡음 크기의 경계는 어디이며 센서 모델별로 다른가.
  • 무향 변환의 매개변수($\kappa$ 등) 선택은 비선형 변환의 종류에 따라 얼마나 민감한가.
  • 가우시안 믿음의 일관성 검사(NEES)가 비가우시안 오차에서 얼마나 과도하게 낙관적이거나 비관적인가(9.14).

1차 출처

  • G. E. P. Box, M. E. Muller, 「A Note on the Generation of Random Normal Deviates」, The Annals of Mathematical Statistics 29(2), 610–611, 1958(doi:10.1214/aoms/1177706645) — 서지만 확인.
  • S. J. Julier, J. K. Uhlmann, 「Unscented Filtering and Nonlinear Estimation」, Proceedings of the IEEE 92(3), 401–422, 2004(doi:10.1109/jproc.2003.823141) — 서지만 확인.
  • T. D. Barfoot, 『State Estimation for Robotics』, Cambridge University Press, 2017(doi:10.1017/9781316671528) (확인 필요: 장 번호).
  • Y. Bar-Shalom, X. R. Li, T. Kirubarajan, 『Estimation with Applications to Tracking and Navigation』, Wiley(Crossref 등록 2002, doi:10.1002/0471221279) (확인 필요: 장 번호).
  • SciPy 1.18.1(stats.multivariate_normal·stats.chi2 실행), NumPy 2.5.4(cov·linalg 실행), 2026-11-03.

다음 장. 1.20은 확률·통계 II로, 추정 이론(최대 우도·사후 최대·크라메르-라오 한계)과 정보 이론을 다룬다. 이 장의 분포와 베이즈 갱신 위에서 추정량의 성질과 정확도의 이론적 한계를 정리한다.