2.1 가우시안 프로세스를 이용한 격자의 점유 확률 예측
GP 격자 지도는 환경의 각 위치 사이의 공간적 연관성을 GP 확률 분포로 가정하고, 각 격자의 점유 확률을 가우시안 프로세스 회귀(GPR, Gaussian
Process Regression)를 이용해서 평균과 분산으로 나타낸 것이다[10]. GP를 이용한 특정 위치의 점유 확률은 격자 구조에 제한되지 않고, 관심 영역의 어느 지점에 대해서도 연속적으로 추정될 수 있다. 그러나 GP
결과를 격자 구조로 나타낼 경우 환경의 형상 파악과 활용에 용이하기 때문에 이동 로봇을 위해서는 GP 격자 지도를 작성한다.
GP 격자 지도를 구성하는 각 격자의 GP $y({x})$는 평균 함수(mean function) $\mu({x})$와 공분산 함수(covariance
function) $k({x},\: {x}')$로 정의된다.
${ x}$와 ${ x}'$는 격자의 2차원 위치인 $2\times 1$ 벡터이며, 타겟(target) 값인 점유 상태 $y$는 -1에서 1 사이의
값을 가진다. -1은 비점유 격자를 의미하며, 1은 점유 격자를 의미한다. $n$개의 학습 격자 $D=\left\{\left({}{x}^{i},\:{y}^{{i}}\right)|1\le{i}\le{n}\right\}$가
있을 때, 테스트 격자의 위치 ${ x}^{*}$의 점유 상태에 대한 가우시안 분포의 평균과 분산은 다음과 같이 예측된다.
${ X}$는 $2\times n$ 행렬 $\left[{x}^{1},\: \ldots ,\: {x}^{n}\right]$이고, ${bold y}$는
$n\times 1$벡터 $\left[y^{1},\: \ldots ,\: y^{n}\right]^{T}$이다. $k({ X},\: { X})$는
모든 학습 격자들 사이의 $n\times n$ 공분산 행렬이고, $k\left({ X},\: {x}^{*}\right)$는 모든 학습 격자와 테스트
격자로부터 계산된 $n\times 1$ 공분산 벡터이며 $k\left({ X},\: {x}^{*}\right)= k\left({x}^{*},\: {
X}\right)^{T}$이다. $\sigma_{n}^{2}$는 독립적이고 동일하게 분포된(independent and identically distributed)
가우시안 분포로 가정한 측정값의 노이즈를 의미한다.
GP의 공분산 함수로 사용되는 여러 커널 중에서 Matérn 공분산 함수는 공간의 기하학적 연관성을 모델링하기에 적절하다고 알려졌다[11,12]. Matérn 공분산 함수는 감마(gamma) 함수와 Bessel 함수로 정의되는데, 평활도(smoothness)를 제어하는 파라미터 $\nu$가
$3/2$일 때, 다음과 같이 표현된다.
하이퍼파라미터(hyperparameter) $\sigma_{f}$와 $\rho$는 각각 signal variance와 characteristic length
scale로 불리며, $\sigma_{f}$는 커널 계산 결과의 크기(amplitude)를 결정하고 $\rho$는 두 위치의 연관성(correlation)이
간격에 따라 얼마나 급격히 변하는지를 제어한다.
테스트 격자에 대해 예측된 $y\left({x}^{*}\right)$의 범위는 $[-1,\: 1]$이기 때문에, 이를 $[0,\: 1]$ 범위의
확률값으로 변환하여 점유 확률 $m\left({ x}^{*}\right)$를 계산한다.
위 수식은 로지스틱 회귀(logistic regression)를 이용한 수식이며, $\gamma > 0$는 시그모이드(sigmoid)의 형태를 결정하고
$\sigma_{\min}^{2}$는 예측된 분산들의 최솟값이다.
그림 2. 각 센서 레이를 따라 샘플링된 학습 데이터를 이용한 비점유 영역의 가우시안 프로세스 회귀 결과
Fig. 2. Gaussian Process Regression(GPR) for unoccupied regions using sampled training
data per each sensor ray
2.2 로컬 커널을 이용한 가우시안 프로세스 격자 지도 근사화
GP 격자 지도의 점유 확률 예측 성능을 결정하는 것은 공분산 함수를 정의하는 최적화된 하이퍼파라미터와 학습 데이터이다. 하이퍼파라미터는 주변 우도(marginal
likelihood)의 네거티브 로그(negative log)를 최소화하는 과정을 통해서 최적화될 수 있다[12]. 학습 데이터는 최적화 과정과 테스트 격자의 평균 및 분산 예측에 사용되기 때문에, 적절한 학습 데이터 선택은 GP 격자 지도의 예측 성능에 주요한
영향을 미친다. 또한, 예측 과정에서 역행렬 연산이 수행되기 때문에(식 (3)과 (4)), 계산 속도는 학습 데이터의 양에 크게 좌우된다. 기존에 연구된 거리 센서를 이용한 GP 격자 지도 작성 방법들은 학습 데이터를 획득하기 위해서
각 거리 측정값의 빔(beam) 방향 즉, 센서 레이(sensor ray)를 따라서 샘플링을 수행하였다[9,14,15]. 점유 영역에 대한 학습 데이터의 양은 라이다 측정값의 스캔 데이터 개수로 한정된다. 그러나, 비점유 영역에 대한 학습 데이터의 양은 샘플링 주파수에
스캔 데이터 개수를 곱한 값이기 때문에 샘플링 주파수에 따라 크게 달라지며 점유 영역 학습 데이터보다 훨씬 많다. 그림 2는 센서 레이를 따라 샘플링된 학습 데이터를 사용한 비점유 GP 작성 결과를 보여준다. 그림 2(a)는 라이다 측정값으로 작성한 격자 지도이다. 그림 2(b)-(d)는 각각 센서 레이를 따라 샘플링을 최대 10, 20, 50회 수행하고 최적화된 하이퍼파라미터들($\sigma_{f}^{2}$, $\rho$, $\sigma_{n}^{2}$)을
적용한 비점유 GP 예측 결과이다. 진한 파란색일수록 점유 확률이 낮은 비점유 영역에 해당된다. 테스트 위치의 예측 결과가 학습 데이터로부터의 거리에
크게 영향을 받는 GPR의 특성에 의해서, 샘플링 주파수가 작은 경우 샘플링이 수행되지 않은 비점유 영역의 점유 확률이 샘플링이 수행된 비점유 영역의
점유 확률 보다 비교적 높은 것을 확인할 수 있다. 이에 따라 서로 인접한 비점유 영역임에도 불구하고 확률값의 차이로 인해 불필요한 패턴이 생성되었다.
이를 방지하기 위해 샘플링 주파수를 높이면 데이터 양이 지나치게 증가하기 때문에, 다음 탐사 목적지를 실시간으로 결정해서 주행해야 하는 상황에 적합하지
않다. GP의 하이퍼파라미터 혹은 로지스틱 회귀의 형태를 변경하면 샘플링 지점과 예측 지점의 거리에 따른 평균과 분산의 변화 경향이 달라지지만, 서로
인접한 비점유 영역에서 발생하는 샘플링 유무에 의한 확률 변화의 차이를 방지하기는 어렵다.
본 논문에서 제안하는 로컬 커널 기반의 근사화된 GP 격자 지도 예측은 크게 세 단계로 진행되며, 구체적인 순서는그림 3의 Algorithm 1과 같다. Algorithm 1은 현재 획득된 라이다 측정값 ${z}$와 이로부터 작성된 점유 격자 지도 $grid_{{local}}$를
이용해서 근사화된 GP 격자 지도 $map_{{GP}}$를 작성한다. 첫 번째 단계는 라이다 측정값을 이용하여 학습 데이터를 추출하고 하이퍼파라미터를
최적화하는 단계이다(line 1-2). ${ z}$는 $K$개의 스캔 데이터로 구성되며, 각 스캔 데이터 $z^{k}$ 는 측정 방향 $\alpha^{k}$에
존재하는 장애물까지의 거리 정보 $r^{k}$를 가지고 있다. 학습 데이터 ${ X}_{{obs}}$는 이들을 2차원 위치로 변환한 $2\times
K$ 행렬이고, ${ y}_{{obs}}$는 모든 요소가 점유 상태를 의미하는 값 1인 $k\times 1$ 벡터이다.
그림 3. 제안된 로컬 커널을 이용한 근사화된 가우시안 프로세스 격자 지도 작성 알고리즘
Fig. 3. Algorithms to build the approximated Gaussian Process occupancy grid map using
the proposed local kernel
두 번째 단계에서는 점유 영역과 비점유 영역에 대한 GPR을 각각 수행한다(line 3-7). $grid_{{local}}$를 구성하는 모든 격자의
인덱스(index)들을 2차원 위치들로 변환하여 테스트 데이터 ${ X}^{*}$를 획득한다(line 3). 점유 GP는 기존의 GP 예측 방식에
따라, 식 (3)과 (4)에 점유 영역의 학습 데이터(${ X}_{{obs}}$, ${boldy}_{{obs}}$)와 ${bold X}^{*}$를 대입하여 예측된다(line
4). 비점유 GP는 로컬 커널을 이용한 GP 근사화를 이용해서 예측되며(line 5), 구체적인 순서는 그림 3의 Algorithm 2와 같다. 예측된 점유 GP와 비점유 GP에 로지스틱 회귀를 적용하여 0~1의 확률값으로 변환된 점유 GP의 평균 $p_{{obs}}^{*}$과
비점유 GP의 평균 $p_{{emp}}^{*}$을 얻는다(line 6-7).
마지막 세 번째 단계에서는 점유 GP와 비점유 GP를 융합하여 GP 격자 지도를 획득한다. 이를 위해 서로 다른 학습 데이터에 의한 예측값을 통합할
수 있는 Bayesian Committee Machine(BCM)을 사용하며[16], 융합된 GP의 평균 $\mu_{{GP}}$과 분산 $\sigma_{{GP}}^{2}$은 다음과 같다(line 8).
여기에 다시 로지스틱 회귀를 적용하여, 각 격자가 0~1사이의 점유 확률을 나타내는 GP 격자 지도 $map_{{GP}}$를 얻는다(line 9).
앞서 언급한 바와 같이 비점유 GP는 본 논문에서 제안하는 로컬 커널을 이용한 GP 근사화를 이용해서 예측된다. 기존의 방법들처럼 샘플링에 의해 추출된
비점유 영역의 학습 데이터를 식 (3)과 (4)에 대입하여 계산하는 것이 아니라, 라이다 측정값을 이용해서 작성된 격자 지도 $grid_{{local}}$를 학습 데이터로 활용하는 합성곱(convolution)
연산을 통해 근사화된 비점유 GP를 계산한다. 그림 3의 Algorithm 2는 $M\times N$ 크기의 $grid_{{local}}$를 이용한 비점유 GP 예측 과정을 보여준다. 최적화된 하이퍼파라미터를
이용하여 로컬 커널 ${k}_{{emp}}$을 생성한다(line 2). 이 로컬 커널과 학습 데이터로 변환된 $grid_{{local}}$의 합성곱
연산을 수행하여 근사화된 비점유 GP를 계산할 수 있다. ${k}_{{emp}}$의 크기가 $n\times n$일 때, 커널의 각 요소 ${k}_{{emp}}(p,\:
q)$는 다음과 같이 계산된다.
$grid_{{local}}$을 학습 데이터로 변환하기 위하여, 비점유 격자에는 낮은 확률값 $p_{{emp}}$을 부여하고(line 4-5),
비점유 격자가 아닌 격자(점유 격자와 미지의 격자)에는 $p_{{emp}}$ 보다 큰 확률값 $p_{{non}-{emp}}$을 부여한다(line 7).
이는 비점유 격자와 다른 격자들이 서로 구분되도록 하기 위함이다. 본 논문에서 $p_{{emp}}$는 0.1로 설정하였고, $p_{{non}-{emp}}$는
미지의 격자의 점유 확률 $th_{m{unknown}}$과 동일한 0.5로 설정하였다. 앞서 작성한 로컬 커널 ${k}_{{emp}}$와 변환된 $grid_{{local}}$의
합성곱 연산을 통해 비점유 GP의 평균과 분산을 예측한다(line 10-13). 이와 같은 2차원 합성곱 연산은 픽셀-와이즈로 수행되더라도 각 연산에
필요한 메모리 및 계산 부하가 적기 때문에, 고차원 역행렬 계산이 요구되는 기존의 방법보다 더 빠른 계산 속도를 기대할 수 있다. 그림 4는 로컬 커널을 이용한 비점유 GP 근사화 결과를 보여준다. 기존 샘플링 방식의 예측 결과(그림 2(b)-(d))와 달리 비점유 영역의 확률값이 거의 일관적으로 낮은 것을 확인할 수 있다.
그림 4. 로컬 커널을 이용한 비점유 GP 근사화 결과
Fig. 4. GPR for unoccupied regions using the proposed local kernel-based approximation.
2.3 가우시안 프로세스 격자 지도를 이용한 프론티어 확률 계산
GP 격자 지도는 각 격자가 점유 확률을 나타내는 평균과 분산 값을 가지고 있고, 이들을 이용해서 각 격자의 프론티어 확률을 예측할 수 있다. GP
격자 지도 상에서, 인접한 격자와의 점유 확률 차이가 큰 에지 격자들 중 점유 격자들을 제외한 나머지 에지 격자들의 프론티어 확률이 커야 한다. 이런
프론티어 격자의 특성을 반영하여, 아래와 같이 프론티어 확률을 계산할 수 있다[8].
프론티어 확률은 GP 격자 지도 $p_{{GP}}$와 점유 GP $p_{{obs}}$의 그래디언트(gradient)를 이용해서 계산되며, $(i,\:
j)$는 각 격자의 인덱스이다. $\left . ∥\nabla p_{{GP}}\right .∥_{1}$은 모든 에지 격자에서 큰 값으로 계산되며,
$\left . ∥\nabla p_{{obs}}\right .∥_{1}$은 점유 격자에서 큰 값으로 계산된다. $\beta$는 점유 격자의 영향을
제어하는 상수로, $\beta$가 클수록 점유 격자에 의해 프론티어 확률이 낮아지는 격자의 범위가 넓어진다.