서 론
우리나라는 지형적 특성상 3면이 바다로 되어있기 때문에 긴 작전지역과 다양한 국가안보 위협 요소가 상존해 있는 해안경계작전의 중요성이 높다고 할 수 있다. 그러나 군이 직면하고 있는 현실은 감시 대상이 다양해지고 침투 방식이 고도화되는 어려운 상황에도 불구하고 감시 병력이 감축되고 있다는 점이다. 이에 대비하여 감시장비 수를 늘리고 있으나 이는 감시병의 업무 증대와 시각 집중도 저하라는 또 다른 경계 공백 발생의 원인이 되었다. 2019년 6월 삼척항 북한 소형목선 사건
[1], 2020년 6월 중국인 밀입국 침투
[2] 등 최근의 해안경계작전 실패 사례를 보면 감시장비에 물체가 포착 되었으나 감시병이 확인하지 못하여 보고가 지연된 것이 작전 실패 원인의 하나로 분석됐다.
이와 같은 군 해안경계시스템의 사각지대 문제를 해소하고 작전을 효율적으로 수행하기 위해 딥러닝 기반 해안감시장비 도입의 필요성이 대두되고 있다. 이는 병력자원 감소 대비 뿐만 아니라 각종 휴먼에러최소화에도 많은 기여를 할 수 있다는 점에서 감시장비에 인공지능 적용 움직임을 가속화 시키고 있다.
하지만 딥러닝 기반 모델은 높은 수준의 컴퓨팅 능력을 필요로 하기 때문에 해안감시장비와 같이 제한된 컴퓨팅 능력을 갖는 임베디드 시스템에서 효율적으로 운용하기에 어려움이 있다. GPU를 활용하여 연산 능력을 향상 시키는 방안이 있으나 군 감시장비 특성상 외부환경에 노출되어 365일 운용되어야 한다는 점, 유지보수 등과 같은 문제점을 고려하였을 때 하드웨어적 방법만으로는 문제 해결에 제한이 있다.
이를 해소하기 위해 딥러닝 모델의 파라미터 수 및 연산량을 줄이는 모델 경량화가 필요하며 경량화는 모델의 정확도를 유지할 수 있도록 진행되어야 한다.
본 연구에서는 합성곱 신경망 모델인 MobileNet
[3]을 기반으로 기존과 다른 가지치기 기법을 활용하여 경량화 모델을 구성하였다. 이후 기존 MobileNet과 경량화된 MobileNet의 해상객체 이미지 분류 성능을 비교하였다. 또한 본 연구에서 제안하는 가지치기 기법과 기존 가지치기 기법의 차이를 비교하였고 MobileNet 외 다른 합성곱 신경망 모델에도 적용하여 경량화 효과를 확인하였다. 연구를 통해 조금 더 효율적인 기법으로 기존 모델 대비 성능은 유지하면서 컴퓨팅 자원 사용은 감소시킨 경량화 딥러닝 모델이 만들어질 것으로 기대한다.
이론적 배경 및 관련 연구
본 장에서는 연구에서 제안하는 가지치기 기법인 합성곱 층 가지치기와 관련하여 가지치기할 합성곱 층 선정의 기반이 된 이론적 배경과 MobileNet에 대해 살펴본다. 또한 가지치기 기법 연구 동향을 통해 제안하는 기법과 기존 기법의 차이를 확인한다.
2.1 합성곱 신경망의 가중치 업데이트[4]
합성곱 신경망에서 가중치는 경사 하강법을 활용하여 업데이트 된다. 이는 식 (
1)과 같이 업데이트 전 가중치(
xi)에서의 기울기(
∂f(xi)∂xi)에 학습률(α)을 곱 한 값을 연산하여 업데이트된 가중치(
xi + 1)를 산출하는 방식이다.
식 (
1)을 식 (
2)와 같이 정리해보면 업데이트 전후 가중치 값의 차이(
xi +
xi+1)와 손실함수의 기울기 (
∂f(xi)∂xi)가 비례 관계임을 알 수 있다. 즉 업데이트 전후 가중치 값의 차이가 클수록 해당 가중치는 손실함수의 최적화에 민감한 영향을 미치는 가중치로 볼 수 있으며 이러한 가중치가 많은 합성곱 층 역시 손실함수의 최적화에 민감한 영향을 미치는 층이 된다. 반대로 업데이트 전후 가중치 값의 차이가 작다는 것은 업데이트 전 가중치에서 손실함수의 기울기가 작다는 것으로 이미 가중치 값들이 적절하게 수렴되어 손실함수를 최적화 시키는데 많은 영향을 미치지 못하는 층이 된다.
Fig. 1 딥러닝 모델의 손실함수 그래프를 통해 손실함수의 기울기가 큰 가중치는 손실함수의 최적화에 민감한 영향을 미치며 기울기가 작은 가중치는 영향이 적다는 것을 알 수 있다.
Fig. 1.
Loss function graph of deep learning model
2.2 MobileNet
MobileNet은 모바일 기기와 같은 소형장비에 적용하기 위해 경량화된 딥러닝 알고리즘으로 처음 제안되었다. 주된 특징은 Depthwise Separable Convolution (이하 DwS Conv.)을 사용한 것이다. DwS Conv.은 기존 Convolution(이하 Conv.) 연산을 2단계로 나누어 진행하는 방식으로 입력 데이터 각각의 채널에 맞는 싱글 필터 연산 처리를 수행하는 Depthwise Convolution (이하 Dw Conv.)과 이를 1×1 Convolution으로 연산처리 하는 Pointwise Convolution(이하 Pw Conv.)으로 구성된다. 기존 Conv.와 DwS Conv.의 연산량을 비교해보면 DwS Conv.는 기존 Conv.에 비해 약 8∼9배 연산량이 감소 됨을 보인다.
Fig. 2는 MobileNet의 구조를 나타내고 있다. 총 28계층으로 첫 번째 층만 기존 Conv. 연산을 시행하고 이후 필터 수를 늘려가며 DwS Conv.을 수행하고 예측값을 출력한다. 일반적인 합성곱 신경망과의 차이는 Pooling 대신 Stride를 2로 하여 특성맵의 크기를 점차적으로 줄이는 방식을 활용한다.
Fig. 2.
2.3 관련 연구
딥러닝 모델 경량화 기법 중 가지치기
[5]는 모델의 성능에 큰 영향을 미치지 않는 임계값 이하의 가중치나 뉴런, 레이어를 가지치기 하여 파라미터를 줄이고 연산 효율을 높이는 방식이다. Hao Li et al.
[6]은 합성곱 신경망에서 임계치 이하의 필터를 “0”으로 Masking 하여 모델을 경량화 하는 방법론 제안 하였다. Dong-hwi Kim et al.
[7]은 생성적 적대 신경망의 합성곱 층 중 임의의 층 일부를 제거하고 학습을 반복하여 성능을 비교하는 Structure Pruning을 연구를 수행하였다. Pavlo Molchanov et al.
[8]은 필터를 제거 했을 때 Loss의 변화에 미치는 영향을 필터의 중요도로 정의하였다. 이에 따라 모든 필터의 중요도를 계산 후 중요도가 낮은 필터를 가지치기하는 연구를 수행하였다. Sara Elkerdawy et al.
[9]은 Pavlo Molchanov et al.
[8]가 수행한 연구를 기반으로 레이어가 Loss에 미치는 영향을 통해 레이어의 중요도를 계산 후 중요도가 낮은 레이어를 가지치기하는 연구를 수행하였다.
Hao Li et al.
[6]의 연구는 임계값 이하의 필터를 제거하는 것이 아닌 “0”으로 Masking 했다는 점에서 연산 효율은 향상되었으나 연산량이 감소하는 효과는 미비 하였으며 Dong-hwi Kim et al.
[7]은 가지치기 시킬 레이어를 임의로 선정하여 여러 차례 학습을 수행하고 성능을 비교했다는 점에서 경량화 모델을 얻기까지 많은 디버깅이 필요했다. Pavlo Molchanov et al.
[8]과 Sara Elkerdawy et al.
[9]가 수행한 연구는 먼저 필터 또는 레이어를 제거 한 후 손실함수의 변화에 미치는 영향을 기반으로 중요도를 선정하는 방식인데 중요도를 선정하기 위해 수차례 반복 학습을 수행 하였다는 점에서 경량화 모델 확보에 많은 시간이 소요되었다.
본 연구에서 제안하는 가지치기 기법은 가중치를 “0”으로 Masking하는 방식이 아닌 제거하는 방식으로 연산량을 감소시켰으며 가지치기 할 레이어를 선정하기 위한 기준을 정하였다는 점에서 기존의 연구와 차이가 있다. 또한 Pavlo Molchanov et al.
[8], Sara Elkerdawy et al.
[9]가 필터 또는 레이어를 먼저 제거 한 후 그 중요도를 선정한 방식과 달리 학습 과정 중 레이어의 중요도를 선정함으로써 경량화 모델 구성에 소요되는 시간을 감소시켰다는 점에서 기존의 연구와 차이가 있다고 할 수 있다.
실험 구성
본 장에서는
Fig. 3의 연구 흐름도를 기반으로 실험 구성을 제시하며 데이터 수집 및 클래스 구성, 경량화 MobileNet 구성 방법, 모델의 성능을 비교하기 위한 성능평가 방법에 대해 살펴본다. 실험을 위한 환경으로 Python(3.10.12 ver) 기반 Google Colab의 GPU인 NVIDIA Tesla A100(84GB)를 사용하였다.
Fig. 3.
3.1 데이터 수집 및 클래스 구성
본 연구에서 구성하고자 하는 경량화된 모델은 육군의 해안감시장비로 식별 가능한 객체 이미지를 분류하는 모델로 주간 상황만을 가정하여 해상에서 주로 식별될 수 있는 객체 이미지 2,262장을 수집하였다. 수집 데이터 중 1,762장은 학습데이터로 활용 하였는데 이때 학습데이터 중 각 클래스별 100장은 text-to-image 방식으로 만든 생성형 이미지로 대체하여 별도의 데이터 셋을 추가 구성하였다. 이는 데이터가 부족한 환경에서 생성형 이미지를 혼합해서 학습할 경우에도 실제 이미지 데이터셋의 학습시와 유사한 추론성능을 보이는지 확인하기 위해 구성하였으며 GitHub에서 오픈소스로 사용 가능한 Stable Diffusion Web UI를 활용하여 생성하였다. 이미지 생성을 위해 사용한 Prompt 는
Table 1과 같다.
Table 1.
클래스 |
입력 프롬프트 |
전투함 |
Battleship on the sea in the distance |
잠수함 |
Submarine seen from afar |
일반선박 |
Ship floating on the sea in the distance |
부표 |
Buoy floating on the sea |
해상 |
(Calm, Wavy, Rainy, Cloudy) sea |
검증 및 테스트 데이터는 각각 250장씩으로 구성하였고 실제 이미지만을 활용하였다.
데이터는 전투함, 잠수함, 일반선박, 부표, 해상환경 총 5개의 클래스로 구성하였는데 군사용과 비군사용 선박의 구분, 선박과 부표의 구분, 객체의 유무 구분 성능을 확인하고자 하였다. 또한 감시장비의 줌아웃 기능 활용을 고려하여 이미지 내 객체 사이즈를 다양하게 구성하였다. 수집된 데이터 샘플은
Fig. 4와 같으며 각 클래스별 좌측 3개는 실제 이미지, 우측 2개는 생성 이미지를 나타낸다. 최종 구성은
Table 2와 같다.
Fig. 4.
Table 2.
Dataset class composition
클래스 |
학습데이터(생성이미지) |
검증데이터 |
테스트데이터 |
전투함 |
354(100) |
50 |
50 |
잠수함 |
353(100) |
50 |
50 |
일반선박 |
353(100) |
50 |
50 |
부표 |
352(100) |
50 |
50 |
해상 |
350(100) |
50 |
50 |
3.2 경량화 MobileNet 구성
경량화 MobileNet은 손실함수의 최적화에 상대적으로 적은 영향을 미치는 레이어를 가지치기 하여 구성하였다. 이를 위해 먼저 수집한 데이터를 기존 모델에 학습시켰고 손실함수 값이 개선되었던 학습 횟수에서 만들어진 모델을 저장하였다. 이후 각 모델의 합성곱 층 가중치 변화를 분석하여 변화가 적은 합성곱 층은 하나씩 순차적으로 가지치기 하였고 가지치기 하지 않은 합성곱 층의 가중치는 학습 전의 최초 가중치 상태에서 재학습을 진행하였다. 재학습시에는 최초 학습시와 동일한 배치크기, 학습률, epoch로 세팅하여 경량화 MobileNet을 구성하였다.
먼저 전이학습된 MobileNet에 배치 크기 16, 학습률 0.001, epoch은 30회를 적용하여 수집한 데이터를 학습시켰다. 학습 횟수에 따른 모델의 정확도 및 손실값 변화는
Fig. 5과 같다. MobileNet은 수집한 데이터에 대해 준수한 학습 성능을 보였고 epoch 15회에서 검증 데이터에 대해 정확도 94.51 %, 손실값 0.1829로 최적의 모델이 만들어졌다. 검증 데이터에 대한 손실값이 개선된 epoch는 1ㆍ2ㆍ5ㆍ11ㆍ13ㆍ14ㆍ15회였고 이후 epoch 20회까지 손실값 개선이 없어 학습이 조기 종료되었다.
Fig. 5.
MobileNet learning performance
가중치 변화 분석을 위해 학습 횟수 사이에 각 합성곱 층에서 발생한 가중치 값의 차이와 가중치 업데이트 비율을 산출하여 비교하였다. 각 합성곱 층 가중치 값의 차이는 식 (
3) 평균절대오차(Mean Average Error, 이하 MAE)를 활용하여 산출하였다. 이에 따른 Dw Conv.와 Pw Conv.의 MAE는
Fig. 6과 같다.
Fig. 6.
Weights MAE(Up: Dw Conv., Down: Pw Conv.)
각 합성곱 층의 가중치 업데이트 비율은 식 (
4)를 활용하여 정량화 하였다. Dw Conv.와 Pw Conv.의 가중치 업데이트 비율은
Fig. 7과 같다. 이는 학습 횟수 사이에 가중치 업데이트 비율을 의미하는데 비율이 작을수록 가중치 변화가 적었다고 해석할 수 있다.
Fig. 7.
Weights update rate(Left: Dw Conv., Right: Pw Conv.)
가중치 MAE 값과 업데이트 비율 확인 결과 출력층에 가까운 층에서 가중치 값의 차이와 가중치 업데이트 비율이 줄어들고 중간층에서 커지는 경향을 보였다. 이에 따라 출력층에 가까운 DwS Conv.를 하나씩 가지치기하며 성능을 확인하였다. 확인 결과
Table 3과 같이 출력층에서 가까운 DwS Conv. 3개 층을 제거 했을 때 검증 데이터에 대한 학습성능이 기존 모델 대비 비슷한 수준으로 유지됨을 확인하였다. 그 이상의 DwS Conv. 층을 제거하면 학습성능이 저하되었다. 반대로 가중치 MAE와 업데이트 비율이 상대적으로 큰 중간층 및 입력층의 DwS Conv.를 1개씩 제거해본 결과 1개의 층만 제거하더라도 성능이 저하됨을 확인하였다. 이에 따라 경량화된 MobileNet은 DwS Conv.를 10번만 수행하는 모델로 구성하였다.
Table 3.
Comparison of learning performance by block removal
모델(가지치기 층) |
정확도 |
손실값 |
파라미터 |
MobileNet (Non-Pruning) |
94.51 % |
0.1829 |
4.29 mil |
Pruning model #1(1,024 filter 1 layer) |
94.22 % |
0.1852 |
2.16 mil |
Pruning model #2(1,024 filter 2 layers) |
94.27 % |
0.1848 |
1.63 mil |
Pruning model #3(1,024 filter 2 layers, 512 filter 1 layer) |
94.25 % |
0.1831 |
1.36 mil |
Pruning model #4(1,024 filter 2 layers, 512 filter 2 layers) |
91.44 % |
0.2491 |
1.09 mil |
Pruning model #5(128 filter 1 layer) |
90.02 % |
0.2359 |
3.21 mil |
Pruning model #6(256 filter 1 layer) |
90.57 % |
0.2563 |
3.16 mil |
Pruning model #7(512 filter 1 layer) |
90.13 % |
0.2769 |
2.96 mil |
3.3 성능평가 방법
모델의 경량화 성능 평가 지표로 먼저 학습 파라미터 수 대비 정확도의 비율을 측정하는 D(N)(Information Density)과 학습 파라미터 수 및 연산 수 대비 정확도를 측정하는 ΩΩ(
N)(NetScore)을 활용하였고 각각은 식 (
5), 식 (
6)과 같다. Classfication에 대한 평가는 Recall, Precision, mAP를 활용하여 비교하였다.
또한 제안한 가지치기 기법의 경량화 효과를 검증하기 위해 데이터셋은 고정한 가운데 VGG-16과 ResNet-34에 동일한 실험을 반복하였고 생성형 이미지를 일부 포함시킨 데이터셋으로 경량화 MobileNet에 학습시켰을 때 학습성능의 차이를 확인해보았다.
실험 결과
4.1 평가 지표에 의한 성능 분석
평가 지표를 기준으로 검증 데이터에 대하여 평가한 각 모델의 성능 결과는
Table 4와 같으며, 경량화 MobileNet의 혼동행렬은
Fig. 8과 같다. 경량화 MobileNet의 파라미터와 연산량은 기존 MobileNet 대비 각각 68.29 %, 30.45 % 감소하였지만 정확도와 손실값은 비슷한 수준의 성능을 보였다. 모델의 경량화 효율을 평가하는 D(N), Ω(
N)은 경량화 MobileNet에서 각각 3.12배, 2.08배 높게 나타났다. Recall, Precision, mAP도 동일하거나 약간 감소하였지만 비슷한 수준을 보였으며 모델 크기, 학습 및 추론 시간 모두 기존 모델보다 더 감소된 것을 확인하였다.
Fig. 8.
Lightweight MobileNet confusion matrix (Validation data)
Table 4.
Model performance on validation data
구분 |
기존 MobileNet |
경량화 MobileNet |
파라미터 / 연산량 |
4.29 mil / 568 mil |
1.36 mil / 395 mil |
정확도 / 손실값 |
94.51 % / 0.1829 |
94.25 % / 0.1831 |
D(N)
|
2.1817 * 10-5
|
6.8251 * 10-5
|
Ω(N)
|
1.7812 * 10-4
|
3.705 * 10-4
|
Recall / Precision |
0.94 / 0.95 |
0.94 / 0.93 |
mAP |
0.981 |
0.98 |
모델크기 |
48.9 MB |
33.0 MB |
학습 / 추론 시간 |
9 sec / 0.8224 sec |
6 sec / 0.6614 sec |
4.2 테스트 데이터에 의한 성능 분석
모델의 강건성 및 일반화 성능 확인을 위해 학습 및 검증 데이터에 사용되지 않은 데이터를 활용하여 모델을 테스트 하였다. 각 모델의 성능 결과는
Table 5와 같으며, 경량화 MobileNet의 혼동행렬은
Fig. 9와 같다. 테스트 데이터에 대해서도 기존 MobileNet 대비 모든 성능 지표 값들이 비슷한 수준을 보였으며 강건성 및 일반화 성능도 준수한 모습을 보였다.
Fig. 9.
Lightweight MobileNet confusion matrix (Test data)
Table 5.
Model performance on test data
구분 |
기존 MobileNet |
경량화 MobileNet |
정확도 |
95.92 % |
95.51 % |
D(N)
|
2.2133 * 10-5
|
6.9021 * 10-5
|
Ω(N)
|
1.8056 * 10-4
|
3.7451 * 10-4
|
Recall / Precision |
0.94/0.94 |
0.94/0.93 |
mAP |
0.985 |
0.982 |
추론 시간 |
0.8817 sec |
0.6579 sec |
4.3 제안한 가지치기 기법의 경량화 효과 검증
학습 과정 중 VGG-16과 ResNet-18의 합성곱 층 가중치 변화는
Fig. 10과 같다. 가중치 변화를 기반으로 VGG-16은 가중치 변화가 상대적으로 적은 모델의 중간 3개 층을 제거했을 때 검증 데이터에 대해 성능이 유지되었다. 반면 ResNet-18은 합성곱 층의 가중치 변화의 차이가 거의 없는 모습을 보였으며 이로 인해 하나의 층만 제거 하더라도 성능이 저하되었다. 제안한 가지치기 기법을 활용한 VGG-16의 경량화 결과는
Table 6과 같다. VGG-16는 3개의 층을 가지치기하여 경량화 모델이 구성되었으나 파라미터 수가 상대적으로 적은 중간층을 가지치기 하였기 때문에 출력층을 가지치기 했던 MobileNet과 비슷한 수준의 경량화 효과 달성은 어려웠다. 다만 제안한 가지치기 방식에 의해 일부 경량화가 가능하다는 것을 확인할 수 있었다. ResNet-18은 가중치를 미세하게 변화시켜 나가는 Skip-connection이라는 특징으로 인해 모든 층이 손실함수의 최적화에 비슷한 영향을 미쳐 하나의 층만 제거하더라도 성능이 저하되는 것을 확인 할 수 있었다.
Fig. 10.
Weight change analysis(Up: VGG, Down: ResNet)
Table 6.
Comparison of models performance(Val. data)
구분 |
VGG-16 |
VGG-13 |
파라미터 / 연산량 |
138.8 mil / 1550 mil |
115.2 mil / 1210 mil |
정확도 / 손실값 |
95.55 % / 0.1541 |
94.73 % / 0.1611 |
D(N)
|
6.8888 * 10-7
|
8.223 * 10-7
|
Ω(N)
|
1.9683 * 10-5
|
2.4035 * 10-5
|
4.4 생성형 이미지 활용 학습시 성능 비교
기존 데이터셋 학습데이터의 클래스별 100장의 이미지를 생성형 이미지로 대체하여 경량화 MobileNet 에 학습시킨 결과
Fig. 11과 같이 epoch 17에서 최적의 모델이 구성되었다. 기존 데이터셋 학습시의 성능 과 비교한 결과는
Table 7과 같다. 생성형 이미지를 포함한 데이터셋은 검증 데이터 기준 추론 성능이 기존 데이터셋 보다 근소하게 저하되었으나 큰 차이가 발생하지 않았음을 확인 할 수 있었다.
Fig. 11.
Lightweight MobileNet learning performance
Table 7.
Compare performance as datasets change based on Lightweight MobileNet(Val. data)
구분 |
실제이미지데이터 |
생성형 이미지 포함 데이터 |
정확도 |
94.25 % |
94.01 % |
손실값 |
0.1831 |
0.2007 |
Recall / Precision |
0.94 / 0.93 |
0.93 / 0.93 |
결 론
본 연구에서는 합성곱 신경망을 기반으로 해상에서 식별 가능한 객체 이미지를 분류할 수 있는 경량화된 모델을 구현하였다. 그 결과 기존 모델 대비 파라미터수 및 연산량, 모델 크기, 데이터 처리시간은 줄어들면서 성능은 유지되는 경량화 모델이 구성되었다. 본 연구의 특징과 기여점은 다음과 같다.
첫째, 제한된 컴퓨팅 환경을 갖는 야전 운용환경에 활용 가능한 보다 경량화된 모델을 구현하였다는 것이다. 이는 본 연구에서 적용한 해안감시장비 뿐만 아니라 드론, 무인로봇 등과 다른 국방 분야의 환경에서도 적용이 가능하다.
둘째, 기존 가지치기 기법은 학습 후 사용자가 지정한 임계값 이하의 노드나 필터를 제거하는 기법을 사용하였고 임계값을 바꿔가며 여러 번의 학습 및 검증을 반복해야 했다. 본 연구에서는 학습 중 각 레이어의 가중치 변화를 분석하여 모델에 영향을 적게 미치는 층을 가지치기 하는 방식의 모델 경량화를 수행하였다.
셋째, 이미지 데이터를 활용한 딥러닝 모델은 단순한 이미지를 분류를 넘어 Yolo(-n)와 같이 이미지 내에서 한 번에 객체를 탐지(Localization)하고 분류(Classification)하는 방식으로 발전해 왔다. 이러한 객체 탐지 및 분류 모델의 백본 모델을 제안한 방식을 활용하여 경량화 한다면 경량화된 객체 탐지 및 분류 모델의 구현이 가능할 것으로 판단된다.
본 연구의 한계점으로 먼저 해상에서 식별될 수 있는 객체의 클래스가 조금 더 다양해지거나 주변 환경의 변화(야간, 악천후 등)에 따라서도 성능이 유지될 수 있는지에 대한 연구가 필요하다. 또한 조금 더 다양한 합성곱 신경망에 대해서도 제안한 가지치기 기법이 효과적인지에 대한 확인이 필요하며 기존에 연구 되었던 가지치기 알고리즘과의 성능을 비교하는 연구 진행이 필요하다.