Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers

  1. (School of Electrical Engineering, Korea Advanced Institute of Science and Technology, Korea)
  2. (The 3rd R&D Institute - 4th directorate, Agency for Defense Development, Korea)
  3. (The 5th R&D Insitute - 1st Directorate, Agency for Defense Development, Korea)



vessel path prediction, recurrent neural network (RNN), long-short-term memory (LSTM)

1. Introduction

선박의 이동 경로 예측은 선박 간의 충돌을 방지하거나, 특정 위치에 선박이 도착할 가능성 등을 예측하는 데 필요하다. 하지만, 해상에서는 지정된 이동 경로가 없어, 선박의 자유도가 높으므로 이동 경로를 예측하기가 매우 어렵다. 이를 해결하기 위해, (1)에서는 군집화와 신경망을 이용하여 다음 위치를 분류하는 문제로 경로를 예측하는 방법을 보였다. 본 논문에서는 Long Short-Term Memory (LSTM) (2)을 이용하여 선박의 이동 경로를 예측하는 방법을 제안하려고 한다. LSTM을 비롯한 recurrent neural network (RNN)은 시간이 포함된 데이터를 취급하기 적합하여, 경로 예측 등에 많이 사용되었다 (3). 특히, LSTM은 Memory를 포함하여, 기존의 RNN이 단기의 데이터에만 의존하는 것과는 달리, 장기의 데이터들을 고려하여 예측을 할 수 있는 방법으로, 경로 예측에 효과적이다. 일반적으로 LSTM을 사용하는 방법들은 LSTM을 특징 벡터를 추출하기 위해 사용하고, fully connected layer (FC)를 회귀 모델로 사용한다. 본 논문에서 제안하는 LSTM 기반의 방법은 이와는 달리, 3개의 LSTM을 이용하는 방법으로, LSTM들이 특징 벡터 추출 및 회귀 모델을 모두 구성하는 형태이다. 또한, 기존 입력 및 출력 벡터와는 다른 선박 이동 경로 예측에 최적화된 입력 및 출력 벡터를 제안한다. 제안하는 방법의 효과를 보이기 위하여, 일반적으로 사용되는 형태인 1개의 LSTM과 1개의 FC를 가지는 구조를 대조군으로 삼는다. 실험을 통해 제안하는 3개의 LSTM을 사용하는 방법이 매우 정확하게 선박의 이동 경로를 예측함을 보이며, 대조군보다 더 정확하게 선박의 이동 경로를 예측함을 보인다.

2. Proposed Method

본 논문에서는 선박 이동 경로 예측을 위하여 LSTM을 이용하는 방법을 제안한다. 제안하는 방법을 설명하기에 앞서, 일반적으로 많이 사용되는 구조를 가지는 대조군을 먼저 설명한다. 대조군은 FC가 회귀 모델로 많이 사용되는 것을 고려하여, LSTM으로 특징 벡터를 추출하고, 추출된 특징 벡터에서 FC를 회귀 모델로 향후 경로를 예측한 것이다. 그림 1과 같이 1개의 LSTM과 1개의 FC로 이루어진 모델로, LSTM은 512개의 출력 노드를 가지고 FC는 512개의 입력을 받아 4개의 값을 출력하는 형태이다. 이때, 입력 $N_{t}^{B}$는 (1)과 같이 정의한다.

(1)
$N_{t}^{B}=(x_{t},\: y_{t},\: v_{t},\:\theta_{t})$

여기서, $x_{t},\: y_{t}$는 각각 시간 $t$에서의 위도와 경도를 나타내고, $v_{t}$와 $\theta_{t}$는 각각 시간 $t$에서의 속도와 방향을 나타낸다. 그리고, 출력 $O_{t}^{B}$는 (2)와 같이 정의한다.

그림 1 LSTM-Baseline 구조

Fig. 1 LSTM-Baseline architecture

../../Resources/kiee/KIEE.2020.69.7.1131/fig1.png

(2)
$O_{t}^{B}=(\triangle x,\:\triangle y,\: v_{t+1},\:\theta_{t+1})$

여기서, $\triangle x,\:\triangle y$는 각각 위도와 경도의 변화량으로, $x_{t},\:y_{t}$에 $\triangle x,\:\triangle y$를 더하여 다음 시간 $t+1$에서의 위도와 경도의 값 $x_{t+1},\:y_{t+1}$을 예측한다. 이 방법을 LSTM-B (LSTM-Baseline)이라고 정의한다.

제안하는 방법은 그림 2와 같이 3층의 LSTM으로 이루어진 구조를 가진다. 제안하는 방법은 이전 시간의 정보를 고려하지 않는 FC를 사용하지 않고, 3개의 LSTM을 사용하여 LSTM만으로 특징 벡터 추출 및 회귀 모델로 사용한 것이다. 이 중 첫 번째 LSTM은 4개의 입력을 받아 8개의 은닉 노드를 생성하고, 두 번째 LSTM은 8개의 은닉 노드를 입력으로 하여, 다른 8개의 은닉 노드를 생성한다. 세 번째 LSTM은 다시 8개의 은닉 노드를 입력으로 받아 4개의 출력을 생성한다. 그리고, LSTM-B에서는 속도 $v$와 방향 $\theta$를 입출력으로 사용하는데 이렇게 할 경우, 속도와 방향이 독립된 것으로 보는 문제가 있고, 이에 더해 0도 근처에서 방향 변화를 제대로 인식하기 어려울 수 있다. 예를 들어, 359도에서 1도로 변하는 차이를 2도가 아닌 358도로 인식하는 문제가 있다. 따라서, 방향을 $\cos$과 $\sin$ 함수를 이용하여, 위도 방향과 경도 방향으로 분리하고, 이에 속도 $v$를 곱하여 사용하도록 하였다. 또한, 속도와 방향을 바로 예측할 경우, 오차가 매우 클 수 있으므로 $v_{t}^{x},\:v_{t}^{y}$의 변화량만을 예측하여 오차를 줄일 수 있도록 하였다. 이에 따른 입력 $N_{t}^{P}$와 출력 $O_{t}^{P}$의 정의는 (3)-(5)와 같다.

(3)
$N_{t}^{P}=(x_{t},\: y_{t},\: v_{t}^{x},\: v_{t}^{y})$,

(4)
$v_{t}^{x}=v_{t}\cos\theta_{t},\:$$v_{t}^{y}=v_{t}\sin\theta_{t}$.

(5)
$O_{t}^{P}=(\triangle x,\:\triangle y,\:\triangle v^{x},\:\triangle v^{y})$.

여기서, $\triangle v^{x},\:\triangle v^{y}$는 각각 위도와 경도 축에 대한 방향의 변화량으로, $v_{t}^{x},\: v_{t}^{y}$에 $\triangle v^{x},\:\triangle v^{y}$를 더하여 다음 시간 $t+1$에서의 위도와 경도 축에 대한 방향 $v_{t+1}^{x},\:v_{t+1}^{y}$을 예측한다. 이 방법을 LSTM-P (LSTM-Proposed)라고 정의한다.

공정한 비교를 위하여, 두 방법의 학습을 동일하게 진행하였다. 두 방법에서 입출력 데이터를 사용할 때에는 각 데이터의 범위를 같게 하여, 값의 범위가 큰 특정 데이터에 의존하지 않도록 한다. 다시 말하면, 위도, 경도, 속도, 방향들을 최대, 최소값을 정규화하여 (–1, 1)의 범위를 가지도록 한다. 그리고, 출력값 또한 (-1, 1)의 범위를 가지는데 이를 정규화할 때 나눠준 값을 이용해 원래의 범위로 복원한다. 학습은 예측 결과와 실제 경로의 차이를 이용한다. 학습을 위한 목적 함수는 (6)과 같다.

그림 2 LSTM-Proposed 구조

Fig. 2 LSTM-Proposed architecture

../../Resources/kiee/KIEE.2020.69.7.1131/fig2.png

(6)
$L^{i}=\sum_{t=60}^{79}\left | N_{t+1}^{i}-\hat N_{t+1}^{i}\right |$

여기서, $L^{i}$는 LSTM-$i$에 대한 목적 함수를 나타내고, $N_{t+1}^{i}$은 LSTM-$i$에서 사용되는 $t+1$ 시간의 데이터, $\hat N_{t+1}^{i}$은 $t+1$ 시간에 대한 LSTM-$i$의 예측을 나타낸다. 이전 60분의 경로를 이용하여 향후 20분의 경로를 예측하며, 예측된 20분의 경로에 대해서만 목적 함수를 계산한다. 학습은 Adam optimizer (4)를 이용하여 목적 함수를 최소화하는 방식으로 이루어진다. 학습은 각 선박 별로 주어진 데이터를 모두 사용하였을 때를 1 epoch으로 정의하여 총 100 epoch 동안 학습을 진행한다. 이때 학습률 (learning rate)는 $10^{-1}$에서 시작하여, 50 epoch와 75 epoch에서 각각 10씩 나누어준다.

3. Experimental Results

그림 3 예측 결과 예시 및 예측 오차 (좌: LSTM-B, 우: LSTM-P, 검정: 이전 경로, 파랑: 실제 경로, 빨강: 예측된 경로)

Fig. 3 Examples of prediction results and corresponding prediction errors (Left: LSTM-B, Right: LSTM-P, Black: Previous path, Blue: Ground truth, Red: Predicted path)

../../Resources/kiee/KIEE.2020.69.7.1131/fig3.png

제안하는 방법의 학습 및 평가를 위하여 수집한 21개의 선박의 이동 경로 데이터를 이용하였다. 이 중, 90%는 모델 학습을 위해 사용하였고, 나머지 10%를 평가를 위해 사용하였다. 평가는 학습에서와 마찬가지로 이전 1시간의 경로를 이용하여 향후 20분의 경로를 예측하는 방식으로 진행되었다.

각 방법의 예측에 대한 평균 오차는 표 1과 같다. 참고로, 실험에 사용한 선박들의 최대 속도는 시속 46.3km로 20분 후의 예측 오차는 최대 30.87km까지 발생할 수 있다. 이와 비교하여 제안하는 방법의 평균 오차는 2.59km로 최대 오차에 비해 약 10% 미만의 오차를 보여 상당히 정확한 예측을 하는 것을 알 수 있다.

표 1 제안하는 방법의 예측 오차

Table 1 Prediction error of the proposed method

방법

평균 오차 (km)

LSTM-Baseline

2.95

LSTM-Proposed

2.59

두 방법을 비교하면, LSTM-B는 1개의 LSTM과 1개의 FC를 사용하며 속도와 방향을 분리하여 사용하였다. 이와는 달리, LSTM-P는 3층의 LSTM을 사용하였고, 속도와 방향을 결합하여 각 위도, 경도 방향으로의 속도 성분을 추출하여 사용하였다. LSTM-B의 평균 오차는 2.95km이고, LSTM-P의 평균 오차는 2.59km로 두 방법 중 LSTM-P의 오차가 더 적은 것을 알 수 있고, 이로 미루어 보아, 3층 구조의 LSTM과 속도와 방향을 결합한 입출력을 사용하는 것이 더 정확한 예측을 가능하게 함을 알 수 있다.

그림 3에서는 LSTM-B와 LSTM-P를 사용하여 예측한 경로들의 예시를 보였다. 예측된 결과를 보면, 대체로 원래 경로와 유사한 형태의 경로를 생성하는 것을 확인할 수 있다. 예측하는 시간이 지남에 따라, 실제 정보가 아닌 가상으로 생성된 정보의 비중이 높아져, 예측이 점점 어려워진다. 하지만, 그림 3의 오른쪽 아래에 있는 그림과 같이, 예측하기 어려운 회전을 가지는 경로에서도, 학습된 모델을 이용하여 실제 경로와 근접한 형태의 회전을 하는 경로를 예측할 수 있음을 확인할 수 있다.

4. Conclusion

본 논문에서는 선박의 이동 경로 예측을 위하여, LSTM을 이용하는 방법을 제안하였다. 3개의 LSTM을 기반으로 하는 구조의 예측 방법 및 선박 이동 경로 예측에 최적화된 입력/출력 벡터를 제안하였고, 제안하는 방법은 매우 정확한 선박 경로 예측 정확도를 보였으며, 일반적으로 사용되는 LSTM과 fully connected layer를 결합한 형태의 방법에 비해 더 높은 성능을 보임을 확인하였다. 이를 기반으로 향후에는 더욱 정확하게 예측할 수 있도록 보다 다양한 형태의 입출력 벡터와 구조를 탐색하려고 한다.

References

1 
S. Gan, S. Liang, K. Li, J. Deng, T. Cheng, 2016, Ship trajectory prediction for intelligent traffic management using clustering and ANN, in Proc. Int. Conf. on ControlDOI
2 
S. Hochreiter, J. Schmidhuber, 1997, Long short-term memory, Neural computationDOI
3 
A. Alahi, K. Goel, V. Ramanathan, A. Robicquet, L. Fei- Fei, S. Savarese, 2016, Social lstm: Human trajectory prediction in crowded spaces, in Proc. IEEE Conf. Comp. Vis. and Patt. Rec.Google Search
4 
D. Kingma, J. Ba, 2014, Adam: A method for stochastic optimization, arXiv preprint arXiv:1412.6980Google Search