Korea Digital Contents Society

Current Issue

Journal of Digital Contents Society - Vol. 25 , No. 2

[ Article ]
Journal of Digital Contents Society - Vol. 23, No. 4, pp. 735-742
Abbreviation: J. DCS
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 30 Apr 2022
Received 23 Feb 2022 Revised 04 Apr 2022 Accepted 07 Apr 2022
DOI: https://doi.org/10.9728/dcs.2022.23.4.735

이미지 내 객체 분류를 위한 노드 가지치기 기반 압축된 심층 합성곱 신경망 모델
오상원1 ; 오승민2 ; 김영광1 ; 신혜주3 ; 김진술4, *
1전남대학교 ICT융합시스템공학과 석사과정
2전남대학교 ICT융합시스템공학과 박사과정
3전남대학교 산업공학과 학사과정
4전남대학교 ICT융합시스템공학과 교수

Node Pruning-based Compact Deep Convolutional Neural Network Model for Object Classification in Images
Sangwon Oh1 ; Seungmin Oh2 ; Yeonggwang Kim1 ; Hyeju Shin3 ; Jinsul Kim4, *
1Master’s Course, Department of ICT Convergence System Engineering, Chonnam National University, Gwangju, Korea
2Doctor’s Course, Department of ICT Convergence System Engineering, Chonnam National University, Gwangju, Korea
3Undergraduate, Department of Industrial Engineering, Chonnam National University, Gwangju, Korea
4Professor, Department of ICT Convergence System Engineering, Chonnam National University, Gwangju, Korea
Correspondence to : *Jinsul Kim E-mail: jsworld@chonnam.ac.kr


Copyright ⓒ 2022 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
Funding Information ▼

초록

최근 심층 합성곱 신경망 알고리즘을 사용한 이미지 분류 시스템들은 대용량의 데이터를 높은 정확도로 학습할 만큼 발전되었다. 하지만 심층 합성곱 신경망을 이용하기 위해선 대용량의 데이터들을 학습할 충분한 시간과 용량이 필요하다는 단점이 있다. 따라서 본 연구에서는 다양한 환경에서 사용할 수 있는 압축된 심층 합성곱 신경망 모델을 제안한다. 이미지 내에서 객체를 분류하기 위해 웹캠을 통해 손동작 이미지들을 촬영하여 데이터를 수집했다. 그리고 CNN을 기반으로 한 새로운 딥러닝 모델을 설계하여 수집된 손동작 사진 데이터에 학습시켜 98%의 정확도로 분류했다. 이후 노드 가지치기(Node Pruning) 기법을 사용하여 심층 합성곱 신경망 모델을 압축하여 기존보다 약 3배 감소한 학습시간과 기존의 63%만큼 압축된 인자 개수를 보여줬다.

Abstract

Modern DCNN(Deep Convolutional Neural Network)-based image classification system can train huge amounts of data with high accuracy. However, to use a DCNN, we need a long time and enormous compute capacity to train huge amounts of data for using DCNN. Therefore, this paper proposed a compact DCNN model that can be used in various environments. To classify objects within an image, a dataset was collected by photographing hand gesture images through a webcam. Then new deep learning model based on CNN was designed and trained hand gesture image data and classified with 98% accuracy. We then used node pruning to lighten DCNN models, showing training times that were reduced by about three times compared to original model and hyper-parameter number that was reduced by 63% of the pre-pruned model.


Keywords: Deep learning, Convolutional Neural Network, Image Preprocessing, Object Classification, Node Pruning
키워드: 딥러닝, 이미지 전처리, 객체 분류, 노드 가지치기

Ⅰ. 서 론
1-1 연구 배경 및 목적

최근 딥러닝을 사용하는 애플리케이션 및 시스템이 다양한 곳에서 사용되고 연구되고 있다. 이전에는 특수한 산업 분야에서 기계학습을 사용해야 했지만, 기술이 발달함에 따라서 모바일 애플리케이션 시장의 중요성이 올라가고[1], 이를 포함한 범용성 있는 산업 분야에서 더 나은 성능을 위해서 복합적인 기술이 필요하다. 특히 시각적인 감지 혹은 식별을 요구하는 수많은 애플리케이션은 심층 합성곱 신경망 알고리즘을 많이 선택한다. 그래서 다양한 분야에서 초기 CNN보다 더 높은 정확도와 더 빠른 학습속도를 가지는 기계학습 알고리즘을 사용하기 위해 연구했다.

CNN의 합성곱 개념이 이미지를 처리하기에 적합하므로 최근 연구들은 CNN을 기반으로 한 새로운 딥러닝 알고리즘을 개발하는 것에 초점을 맞추었다. VGGnet은 옥스퍼드의 Visual Geometry Community에 의해 138,357,544개 이상의 학습 인자들을 사용하여 이미지를 학습하기 위해 제안 및 개발되었다[2]. 이는 7% 미만의 손실을 주면서 대용량의 사진을 인지하는데 매우 성공적인 결과를 보여줬다. VGGnet와 같은 최신 CNN 기반 딥러닝 알고리즘들은 이전보다 학습 인자 및 신경망 계층의 수가 많아져서 정확도가 높아지고 수용할 수 있는 데이터의 크기가 훨씬 커졌다.

하지만 이러한 성능이 발전할수록 일부 산업 환경에서 치명적으로 다가오는 단점이 생긴다. 대용량의 데이터들을 높은 정확도로 분류 및 예측하기 위해 모델의 크기는 더욱 커지고 세밀해져 간다. 이에 따라 모델의 용량이 커지고 학습속도는 느려지므로 작은 용량과 빠른 속도를 요구하는 일부 분야에서는 이미지 처리를 위해 딥러닝을 사용하지 못하는 실정이다. 특히 실시간 스트리밍을 지원하는 시스템에서는 이러한 문제를 해결하기 위해 보강학습이나 MEC 서버를 이용한 연구가 이루어졌고[3], 스마트 팩토리 내 소형 컴퓨팅 장치에서 딥러닝을 활용하여 이미지를 처리하기 위해서는 간단한 모델을 가진 알고리즘만 쓸 수밖에 없다. 그래서 이러한 산업 분야에서 심층 합성곱 신경망이 널리 쓰이기 위해서는 그 용량이 줄어들어야 하고 속도가 빨라져야 한다. 따라서 본 연구를 통해 심층 합성곱 신경망 모델을 사용하여 이미지를 분류한 후 기존의 심층 합성곱 신경망 모델을 압축한 후 다시 이미지를 분류하여서 새롭게 제안된 심층 합성곱 신경망 모델이 학습 속도와 용량의 관점에서 성능 향상을 입증하는 데 연구 목적이 있다.

1-2 연구 범위 및 방법

이전에 이미지 속 객체를 인지하기 위해서 CNN을 사용한 많은 연구가 이전에 존재해왔다[4], [5]. 그중 몇몇은 센서를 기반으로 한 접근에 집중하였다[6]. 그리고 손동작 이미지를 기반으로 한 순수 심층 합성곱 신경망 접근법이 연구되었지만, 정확도라는 성능지표에만 집중하여 용량과 속도 문제를 해결하지 못했다[7]. 그리고 최적화를 위해서 가지치기(Pruning)에 관한 연구 또한 이전에 존재했다. 그중 신경망 가지치기가 압축된 모바일 엣지 기반 애플리케이션 기반 연구에서 사용되었다[8]. 하지만 손동작을 인지 및 분류를 위해서 위 연구들의 방법들이 혼합되어서 최상의 결과를 도출하도록 연구된 적은 없었다.

본 연구에서는 이미지 내에서 객체를 검출하고 분류하기 위한 학습을 시행하기 위해서 데이터를 직접 촬영했다. 웹캠을 통해 손동작 이미지를 수집했고, 이를 분류하기 위해서 우선 심층 합성곱 신경망 기반 알고리즘 모델을 사용했다. 그리고 딥러닝 모델을 최적화하기 위해서 노드 가지치기 방법을 사용했다. 위 과정에서 합성곱 계층의 순서를 위해 가장 효과적인 신경망 프로세스가 개발되었다. 사용자 정의 손동작을 통한 시스템 관리를 위해서 데이터들을 주고, 제안된 딥러닝 신경망 최적화 및 압축 방법을 사용하여 기존보다 모델의 인자 개수가 62.95%만큼 감소했고, 학습시간은 3배가 감소했다.

본 논문에서는 제안된 모델들의 설명을 통해 적절한 연구방법론, 그리고 효과적인 신경망 프로세스 구축 전략들을 논의했다. 2장에서는 본 연구를 시행하기 위해 사용된 알고리즘 및 방법들에 대한 자세한 설명과 고안된 아이디어들에 관한 서술이 담겨 있다. 그리고 손동작 인지를 위해서 데이터들을 어떻게 수집했으며 학습을 최적화하기 위한 전처리 방법과 분류하기 위한 학습 라벨(Label)들이 명시되어 있다. 3장에서는 본격적으로 학습을 진행할 때의 연구 장비의 환경들에 대한 자세한 설정들 및 실제 학습을 진행했을 때의 결과 및 의미하는 바를 설명했다. 4장에서는 실험 결과를 통한 결론을 설명한다.


Ⅱ. 이론적 배경
2-1 CNN

딥러닝은 그 자체로 핵심 기술이 될 만큼 본 연구에서 특별하지 않다. 하지만 본 연구에서 사용할 딥러닝 범주에 속하는 주요 알고리즘은 CNN이라고 불리는 딥러닝 신경망의 파생된 알고리즘이다. CNN은 학습 데이터에서 중요한 특성을 추출하기 위해 합성곱의 개념을 사용한다. 합성곱을 통해 데이터를 처리하면 해당 신경망에서 특정 위치에 수렴하는 특징(Convergence Feature)이 발생한다. 이에 해당하면 큰 값을 할당하고, 그렇지 않으면 낮은 값을 할당한다. 즉, 각 커널 셀 값의 요소별 곱셈과 그에 상응하는 영상 픽셀(Image Pixel)값이 합성곱 행렬의 주어진 위치에서 커널 셀과 겹쳐지는 부분을 합산한다. 정밀한 공식은 식 (1)에서 설명한다.

hi,j=k=1ml=1mwk,lxi+k-1,j+l-1(1) 

합성곱 계층에서 입력행렬 x에서 작동하는 m차원의 커널 w를 가진 합성곱 신경망의 출력값인 h가 있다. 하지만 출력값의 크기가 크고 복잡하면 이를 다시 한번 축소해야 한다. 이 과정을 풀링(Pooling) 또는 서브 샘플링(Subsampling)이라 부른다. 이 방법은 합성곱 신경망 출력값을 상수의 성질을 띠게 해준다. 실제로 최대 풀링(Max Pooling) 및 평균 풀링(Average Pooling) 이라는 두 가지의 풀링 기법을 사용한다. 최대 풀링은 커널 내에서 주어진 위치에서 가장 높은 입력 값을 산출한다. 수학적으로 표현하면 식 (2)로 설명할 수 있다. 평균 풀링과 비교할 때, 최대 풀링이 일반적으로 사용되기 때문에 CNN에서 풀링을 말하면 최대 풀링을 사용한 경우가 대부분이다.

pi,j=maxxi+k-1,j+l-1(2) 

이러한 풀링 기법은 합성곱 계층의 결과가 혼란스러운 학습을 하지 않게 도와주고 학습의 정확도를 높여준다.

2-2 Node Pruning

노드 가지치기(Node Pruning)의 기본 아이디어는 네트워크 가지치기의 개념에서 비롯되었다. Hu et al.[9] 은 네트워크 가지치기를 위한 희소성 비활성화 탐색(Explore Sparsity Inactivation)을 제안했다. ELU (Exponential Linear Unit)[10] 활성화 함수는 추론하는 동안 희소성을 부과하며, 출력할 때 양의 활성화(Positive Activation)의 평균 백분율은 뉴런의 중요성을 결정할 수 있다. L1 정규화는 주어진 계층에서 특징 맵(Feature Map)의 돌출성을 추정하는 데 유용하다 [11]. 이러한 아이디어는 각 계층에서 필터 순위를 정하는 데 적용할 수 있다. 그림 1.에서 노드 가지치기가 작동하는 구조를 확인할 수 있다. 훈련된 신경망을 가지치기하여 계산에서의 오버헤드를 낮추면서 동일한 결과로 압축된 크기를 만들어 동일한 정확도를 얻을 수 있다. 따라서 본 연구에서 제안된 모델은 2단계로 작동한다. 첫 번째 단계에서는 주어진 데이터와 함께 적절한 데이터로 훈련을 시작한다. 그런 다음 훈련된 모델이 기준을 설정하기 위해 서로 비교된다. 두 번째 단계에서는 필터 노드 L1 정규화의 결과에 따라 기존 모델을 가지치기한다. 이렇게 압축된 소형 네트워크는 동일한 정확도를 얻기 위해 다시 학습된다.


Fig. 1. 
Node Pruning in Neural Networks [9]


Ⅲ. 제안하는 방법

본 연구에서는 이미지를 분류하기 위해서 딥러닝 알고리즘으로 CNN을 택하였다. 하지만 단일의 영상(Image)처리가 아닌 동영상을 처리해야 하고 기존보다 높은 학습속도를 가지기 위해서 단순히 기존 CNN 알고리즘을 그대로 쓰지는 않는다. 따라서 본 연구에서 학습을 효과적으로 진행하기 위해서 CNN 알고리즘 기반 계층을 사용하여 복층구조의 모델을 설계하고 필요에 따라 임의의 신경망들을 추가하여서 새로운 모델을 고안하여 사용한다. 표 1.에 본 연구에서 쓰일 심층 합성곱 신경망의 계층들과 그에 따른 설명들이 있고 전체적인 심층 합성곱 신경망 모델의 작동 구조는 그림 2.에서 확인할 수 있다.

Table 1. 
Layers of Proposed DCNN Model
Layer Number of Neurons Activation Function Kernel Size
Convolutional 64 ELU 3*3
Convolutional 64 ELU 3*3
Batch Normalization N/A N/A N/A
Max Pooling N/A N/A 2*2
Convolutional 128 ELU 3*3
Convolutional 128 ELU 3*3
Batch Normalization N/A N/A N/A
Max Pooling N/A N/A 2*2
Convolutional 256 ELU 3*3
Convolutional 256 ELU 3*3
Batch Normalization N/A N/A N/A
Max Pooling N/A N/A 2*2
Convolutional 128 ELU 2*2
Convolutional 32 ELU 2*2
Batch Normalization N/A N/A N/A
Flatten N/A N/A N/A
Fully Connected 512 ELU N/A
Fully Connected 256 ELU N/A
Fully Connected 128 ELU N/A
Output 10 Softmax N/A


Fig. 2. 
DCNN Architecture

전체 모델은 8개의 합성곱 계층과 4개의 최대 풀(Max-pool) 계층으로 구성된 특징을 추출하는 부분과 3개의 완전히 연결된 계층(Full Connected Layer) 및 분류기 부분으로 나눌 수 있다. 모든 합성곱 계층 사이에 필터를 가지고 있는 최대 계층은 연산을 줄이는 데 사용된다. 각 계층에서 활성화 함수로 ELU(Exponential Linear Units)를 사용하여 더욱 빠르고 정확한 학습을 위한 모든 네트워크 계층의 활성화 기능을 담당한다.

심층 합성곱 신경망에는 10개의 합성곱 계층이 있으며 다양한 노드들이 증분 방식(Incremental Manner)으로 있다. 이를 확장 컨볼루션(Dilated Convolution) 이라고 한다[12]. 이를 통해 신경망이 특징을 올바르게 추출할 수 있도록 도와준다. 분류하는 부분은 1개의 입력 계층, 2개의 은닉 계층(Hidden Layer) 및 1개의 출력 계층으로 구성된다. 입력 계층은 그다음 첫 번째 은닉 계층에 완전히 연결된 256개의 뉴런으로 구성된다 (해당 뉴런 포함). 이후 50%가 삭제되고 나서 두 번째 은닉 계층(128개의 뉴런 포함)을 통해 출력 계층(3개 뉴런 포함)으로 전달된다[13]. 출력 계층에서 소프트맥스 함수(Softmax Function)를 사용하여 최종 출력 값을 계산한다.

이전에는 신경망의 과적합 현상을 해결하기 위해 각각의 최대풀 계층 이전에 드롭아웃(Dropout)을 시행하는 계층을 추가했다. 드롭아웃은 무작위로 50% 이상의 뉴런들을 신경망에서 제거하는 방법을 말한다. 하지만 본 연구에서 드롭아웃이 효과적으로 과적합을 해결해주지 않았다. 따라서 드롭아웃이 아닌 배치 정규화(Batch Normalization)를 사용했다. 배치 정규화는 각 층의 입력값들을 표준 정규분포를 따르도록 정규화하는 방법을 말한다. 평균을 0, 표준편차를 1로 단순히 만들 뿐만 아니라 정규화된 값에서 규모 확대와 이동 변환을 수행하여 내부 공변량 이동현상(Internal Covariate Shift)을 제거하는 효과가 있게 한다.

심층 합성곱 신경망을 복잡하게 구성할수록 일반적으로 성능은 개선될 수 있다. 그러나 계층을 지나는 데이터의 차원 및 크기에 따라 연산하는 뉴런의 개수는 선형적으로 증가한다. 별도의 가지치기나 Dropout을 사용하지 않으면 1 Epoch를 학습하는 시간과 모델에서 연산하는 인자의 개수가 모델의 계층에 비례하여 급증한다. 이를 줄이기 위해 본 실험에서는 적은 가중치를 가진, 즉 분류 시 크게 영향을 미치지 않는 뉴런들을 가지치기했다. 연산이 복잡한 합성곱 계층에서 노드 가지치기를 시행하여서 연산해야 하는 인자의 개수를 줄여서 학습시간을 감소시켰다. 임의의 노드들을 가지치기할 수 있지만, 본 실험에서는 L1 정규화를 기반으로 노드들을 선택했다. 각 계층에 존재하는 노드 중에서 L1 Norm 값이 작은 노드들을 선택하여 Dropout 함으로서 연산량을 줄였다.

DCNN의 학습 효과는 데이터가 얼마나 잘 학습되었는가에 의존되어있다. 즉, 질이 좋은 데이터를 쓰면 쓸수록 본 연구에서 사용한 학습 알고리즘이 더욱 효과적이다. 본 실험에서는 이미지 내에서 객체를 분류하기 위해 웹캠을 사용하여 직접 촬영한 손동작 이미지들을 사용했다. 손동작 데이터들[14]-[16]이 있는 많은 데이터 집합들이 있지만 분류되어있는 데이터에 대한 원 데이터들은 매우 드물다. 데이터들이 부족하고 손동작 분류의 필요성 때문에 본 연구를 위한 새로운 데이터 집합이 구성되었다. 데이터들을 수집하기 위해 다양한 손동작들의 비디오가 제작되었다. 그리고 마침내 10개의 별개의 손동작들이 별도의 10개의 클래스로 결정되었으며 그 10개의 예시 클래스는 그림 3.에서 볼 수 있다.


Fig. 3. 
10 Hand Gesture Dataset Sample Classes

웹캠으로부터 비디오 프레임을 지속해서 얻기 위해 수집 시스템이 개발되었다. 우선 웹캠으로부터 선명한 비디오 프레임을 위한 영역이 생성된다. 그리고 장면을 설정한 후 원하는 ROI(Region of Interest)의 비디오 프레임 위치를 원하는 위치로 설정한 다음 손동작을 표시하지 않고 배경 프레임으로 스냅 샷을 만든다. 동시에 현재 손동작으로 다른 스냅 샷을 찍어 현재 프레임으로 설정한다. 그런 다음 현재 프레임이나 사진에서 배경을 빼고 노이즈를 줄이기 위해 이미지를 흐리게 처리하고 회색조로 변환한다. 이러한 방식으로 10개의 숫자 부호의 손동작 이미지가 촬영된다.

각 부호에 대해 200개의 샘플 이미지가 촬영되어 총 2,000개의 이미지가 수집됐다. 데이터 집합을 생성하는 기본 순서도는 그림 4.에 설명되어 있다.


Fig. 4. 
Data collection for Dataset Making Flowchart

위 데이터 집합을 수집하는 데에 있어 가장 큰 문제점은 실제 딥러닝을 하기에 데이터의 질이 다소 좋지 않다는 것이다. 딥러닝의 주목표는 광범위하게 일반화된 학습이다. 그래서 우리의 데이터가 다양한 숫자 유형을 설명하기 위해서 손동작의 시각적 요소를 중심으로 이동함을 설명해야 한다. 이를 위해 본 데이터에서는 회전(Rotation), 줌인(Zoom-in), 줌아웃(Zoom–out)을 사용한 오그멘테이션(Augmentation) 기법으로 이미지 분석을 시행했다. 이는 학습 데이터의 범위를 확장하고 전처리하여서 이후 모델을 테스트할 때 범용성을 띠도록 안정성을 높여준다.


Ⅳ. 실험 및 결과
4-1 학습 환경 및 설정

본 연구에서 쓰이는 딥러닝을 위해 Python의 Keras[17] 라이브러리와 Tensorflow(Python 기반 딥 러닝 라이브러리)를 사용했다. 그리고 더 나은 학습효과를 위해 본 연구에서는 CPU가 아닌 GPU에서 학습을 진행했다. NVIDIA CUDA 라이브러리는 학습을 진행하는 장치에서 Intel i7-8세대 CPU 및 64GB DDR4 RAM을 사용하여 학습주기를 향상하기 위해 NVIDIA Geforce 2080-ti GPU 이중 인스턴스를 지원한다. 따라서 GPU를 택하였고 이 GPU에는 8GB의 VRAM이 포함되어 있다. 또한 HDFS(Hadoop File System)에서 학습된 모든 가중치(Weights)들은 안정성을 위해 저장된다. 그리고 신경망들은 데이터 증폭 개념을 확실하게 일반화하도록 조정되었다. 결과적으로 제안된 심층 합성곱 신경망 모델이 확장된 데이터 집합에서 처음 실행했을 때, 전체 데이터 수집의 98%를 수신하는 데 성공하였다.

본 학습에서는 입력 데이터의 90%를 학습을 위한 데이터로 사용했고 나머지 10%를 시험을 위해 사용했다. 입력 데이터들은 그림 3.에서 정의한 10가지 손동작 부호 클래스들에 200개씩 속해있고 학습할 때 무작위로 섞어서 진행했다. 모델의 정확도는 입력받은 데이터가 10가지의 클래스 중 어디에 속하는지 학습을 하고 실제로 그 클래스에 속하는지를 판별하는 이진 형태의 데이터를 사용하여 계산되었다.

4-2 사용된 성능지표들

본 학습의 성능지표를 계산 및 산출하기 위해 3가지의 분류성능평가지표를 사용하였다. 정밀도(Precision)와 재현율(Recall), 그리고 이 둘의 지표를 데이터들에 독립적으로 표현해주는 F1 스코어(F1-Score)를 사용했다.

정밀도는 모델이 참이라고 분류한 것 중에서 실제로 참인 것의 비율을 나타낸다. 이는 PPV(Positive Predictive Value) 라고 불린다. 흔히 말하는 정답률이 이 지표에 해당한다. 재현율은 실제 참인 것 중에서 모델이 참이라고 예측한 것의 비율이다. 민감도 혹은 Hit Rate라고도 불리며 정밀도와 달리 모델이 참이라고 예측한 경우를 다른 관점에서 해석하고 있다. 일반적으로 균형적인 데이터를 가진 학습에서는 위 둘의 지표가 상호보완적으로 높게 나와야 좋은 데이터라고 할 수 있다. 하지만 하나의 지표만 매우 높거나 낮으면 데이터들의 불균형을 의심해 볼 수 있다. 이러한 문제를 해결하기 위해서 본 학습에서는 F1 Score라는 지표를 추가로 사용했다. F1 스코어는 정밀도와 재현율의 조화평균이다. 사용된 데이터들이 불균형한 구조로 되어 있을 때, 모델의 성능을 정확하게 평가할 수 있으며, 이러한 성능을 하나의 지표로 표현할 수 있다. 수학적으로 정밀도와 재현율 중 큰 비중이 영항을 끼치는 편향을 줄이기 위해서 조화평균을 사용했다. 위 3가지의 지표에 관한 용어와 수식들은 식 (3), 표 2.에 나와 있다.

Precision=TPTP+FP  Recall=TPTP+FNF1-Score=2×Precision×RecallPrecision+Recall(3) 
Table 2. 
Confusion Matrix
True Class
True False
Predicted Class True TP(True Positive) FP(False Positive)
False FN(False Negative) TN(True Negative)

4-3 학습 및 압축 결과

표 3, 4.를 통해 노드 가지치기 전과 후, 각 클래스의 분류에 따른 3가지의 성능지표를 확인할 수 있다. 정밀도, 재현율, F1 스코어의 분포에서 유의미한 차이를 보이는 클래스는 존재하지 않았고, 모든 클래스가 98~99%의 정확도를 보여줬다. 그림 5.는 학습 횟수에 따른 클래스별 F1 스코어의 평균의 변화를 보여준다. 본 학습에서는 학습 횟수가 200회를 넘었을 때 가장 높은 정확도에 도달하였고, 이후 98%의 정확도를 최종 학습이 끝날 때 까지 유지했다. 또한, 테스트 세트의 분류 정확도가 학습 데이터 세트의 분류 정확도의 추세를 따라가면서 학습 데이터 세트의 정확도를 초과하지 않기 때문에 과적합이 일어나지 않았다. 따라서 심층 합성곱 신경망을 통해서 손동작 이미지 분류할 수 있음을 확인했다.

Table 3. 
Class-wise Accuracy for Proposed Model
Digit Class Precision Recall F1 Score
0 1.00 1.00 1.00
1 1.00 1.00 1.00
2 1.00 0.95 0.97
3 0.95 0.95 0.95
4 0.95 1.00 0.98
5 1.00 1.00 1.00
6 0.95 1.00 0.98
7 1.00 0.95 0.97
8 1.00 1.00 1.00
9 1.00 1.00 1.00
Average Class
Accuracy (ACA)
99.00% 98.00% 98.00%

Table 4. 
Class-wise Accuracy for Pruned Proposed Model
Digit Class Precision Recall F1 Score
0 1.00 0.98 0.99
1 0.98 0.95 0.96
2 1.00 0.95 0.97
3 0.95 0.95 0.95
4 0.95 1.00 0.98
5 1.00 1.00 1.00
6 0.95 0.98 0.96
7 0.95 0.95 0.95
8 1.00 1.00 1.00
9 1.00 1.00 1.00
Average Class
Accuracy (ACA)
97.8% 97.6% 97.68%


Fig. 5. 
DCNN Classification Accuracy over Training

그리고 노드 가지치기 기술이 제안된 심층 합성곱 신경망 모델의 크기를 줄이기 위해 수행되었다. 신경망 계층에서의 가지치기는 데이터에 독립적이기 때문에 변동 가능한 요인들과 관계없이 모든 데이터 집합들이 심층신경망 가지치기 방법들에 적용될 수 있다. 따라서 심층 합성곱 신경망 모델 내 어떤 계층에서도 노드 가지치기를 적용할 수 있었다. 본 실험에서는 합성곱 계층에서만 노드 가지치기를 사용했다. 첫 2개의 계층에는 64개의 노드가 있으므로 최소 10개 이상의 노드들이 L1 정규화를 기반으로 가지치기 되었다. 그런 다음 128개의 노드를 20개 이상 정리하고 512개의 노드는 약 40개가 정리됐다. 이러한 일련의 과정을 통해서 모든 합성곱 계층에서 가지치기하였다.

그 결과, 노드 가지치기 전 심층 합성곱 신경망 모델이 10,511,306개의 인자를 가지고 있고 1 Epoch당 242.4초가 걸렸지만, 노드 가지치기 후 L1 정규화 기반 필터 순위를 토대로 총 6,616,544개의 인자를 정리하여 새로운 모델의 인자 개수가 3,894,762개로 축소되었고 정확도는 이전과 동일하며 학습시간은 1 Epoch당 80.72초가 걸렸다.

그리고 노드 가지치기 후 모델의 정확도가 가지치기 전과 비교할 때 심각하게 낮은 성능을 보여주지 않았다. 따라서 노드 가지치기를 사용하여 62.95%의 압축률을 보여줬고 학습시간이 약 3배 감소하였으며, 가지치기 전과 비슷한 정확도를 보여줬다.


Ⅴ. 결 론

본 연구의 목적은 저중량과 빠른 학습속도를 가지는 딥러닝 모델을 요구하는 시스템에서 사용할 수 있는 압축된 심층 합성곱 신경망 모델을 설계하는 것을 목표로 하였다. 특히 실시간 스트리밍 환경 및 스마트 팩토리에서의 소형 컴퓨팅 장치에서도 이미지 내 객체를 처리하기 위해 딥러닝을 요구하는 추세이며, 이에 따라 기존보다 경량화되고 빠른 학습을 수행하는 새로운 딥러닝 모델의 수요도 증가하고 있다. 따라서 다양한 환경에서 객체 인지 및 분류가 가능한 딥러닝 모델을 새로 고안하는 것이 필요하다. 이런 요구를 충족할 수 있도록 본 연구에서는 웹캠을 이용한 손동작 이미지를 학습 데이터로 택하였다. 그리고 기존 CNN 모델을 이용하여 새로운 심층 합성곱 신경망 모델을 설계했고, 이를 통해 98%의 정확도를 보이는 손동작 이미지 분류 모델을 제안했다. 또한, 경량화 및 빠른 학습속도를 위해 노드 가지치기 기술을 적용해 제안한 심층 합성곱 신경망 모델을 개선했다. 그로 인해 기존 인자 개수의 62.95%를 압축하였고 학습 시간이 약 3배 감소한 결과를 도출했다.


Acknowledgments

본 연구는 2022년도 정부(과학기술정보통신부)의 재원으로 정보통신기획평가원의 지원(No. 2021-0-02068, 인공지능 혁신 허브 연구 개발)과 2022년도 한국전력공사의 재원으로 전력연구원(KEPRI) 연구개발과제의 지원을 받아 수행된 연구(과제번호 :R20IA02)로서, 관계부처에 감사드립니다.


References
1. A. K. Tushar, A. Hossain, A. Ashiquzzaman, J. Lee, and J. Kim, “Mobile Application and Its Universal Impact,” The Journal of Contents Computing, Vol. 1, No. 1, pp. 39-59, Dec 2019.
2. A. Rosebrock, “Imagenet: VGGnet, ResNet, Inception, and Xception with Keras,” Mars, 2017, [Internet]. Available: https://www.pyimagesearch.com/2017/03/20/imagenet-vggnet-resnet-inception-xception-keras/
3. S. Oh, J. Jang, and P. Park, “QoE-based Reinforcement Learning at MEC for Improving 4K Streaming Quality,” The Journal of Contents Computing, Vol. 1, No. 1, pp. 73-82, Dec 2019.
4. H. J. Kim, J. S. Lee, and J. H. Park, “Dynamic hand gesture recognition using a cnn model with 3d receptive fields,” in 2008 international conference on neural networks and signal processing. IEEE, pp. 14–19, June 2008.
5. M. T. F. Rabbi, S. T. Rahman, P. Biswash, J. Kim, A. Sheikh, A. K. Saha, and M. S. Uddin, “Handwritten Signature Verification Using CNN with Data Augmentation,” The Journal of Contents Computing, Vol. 1, No. 1, pp. 25-37, Dec 2019.
6. S. Y. Kim, H. G. Han, J. W. Kim, S. Lee, and T. W. Kim, “A hand gesture recognition sensor using reflected impulses,” IEEE Sensors Journal, Vol. 17, no. 10, pp. 2975–2976, March 2017.
7. A. K. Tushar, A. Ashiquzzaman, A. Afrin, and M. Islam, “A novel transfer learning approach upon hindi, arabic, and bangla numerals using convolutional neural networks,” in Computational Vision and Bio Inspired Computing, pp. 972-981, Feb 2017.
8. A. Ashiquzzaman, L. Van Ma, S. Kim, D. Lee, T. W. Um, and J. Kim, “Compacting deep neural networks for light weight iot & scada based applications with node pruning,” in 2019 International Conference on Artificial Intelligence in Information and Communication (ICAIIC). IEEE, pp. 82-85, March 2019.
9. H. Hu, R. Peng, Y. Tai, C. Tang, and N. Trimming, “Network trimming: A data-driven neuron pruning approach towards efficient deep architectures.” arXiv preprint arXiv:1607.03250, Jul 2016.
10. D.-A. Clevert, T. Unterthiner, and S. Hochreiter, “Fast and accurate deep network learning by exponential linear units (elus),” arXiv preprint arXiv:1511.07289, Nov 2015.
11. N. Kwak, “Principal Component Analysis Based on L1-norm Maximization,” IEEE transactions on pattern analysis and machine intelligence, vol. 30, no. 9, pp. 1672-1680, June 2008.
12. F. Yu and V. Koltun, “Multi-scale context aggregation by dilated convolutions,” arXiv preprint arXiv:1511.07122, Apr 2015.
13. N. Srivastava, G. E. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhutdinov, “Dropout: a simple way to prevent neural networks from overfitting.” Journal of Machine Learning Research, vol. 15, no. 1, pp. 1929–1958, June 2014.
14. Z. Ren, J. Yuan, J. Meng, and Z. Zhang, “Robust part-based hand gesture recognition using kinect sensor,” IEEE transactions on multimedia, vol. 15, no. 5, pp. 1110-1120, Feb 2013.
15. A. Barczak, N. Reyes, M. Abastillas, A. Piccio, and T. Susnjak, “A new 2d static hand gesture colour image dataset for asl gestures,” Res. Lett. Inf. Math. Sci., Vol. 15, pp. 12-20, 2011. http://hdl.handle.net/10179/4514
16. A. K. Tushar, A. Ashiquzzaman, and M. R. Islam, “Faster convergence and reduction of overfitting in numerical hand sign recognition using DCNN,” 2017 IEEE Region 10 Humanitarian Technology Conference (R10-HTC). IEEE, Feb 2017, pp. 638–641.
17. F. Chollet, “keras,” [Internet]. Availble: https://github.com/fchollet/keras, 2015.

저자소개

오상원(Sangwon Oh)

2020년 : 전남대학교 컴퓨터정보통신공학전공 (학사)

2021년~현 재 : 전남대학교 ICT융합시스템공학과 석사과정

※관심분야:딥러닝 및 머신러닝, 데이터 분석, 데이터 전처리, 인간-컴퓨터 상호작용

오승민(Seungmin Oh)

2017년 : 나사렛대학교 디지털콘텐츠학과 (학사)

2021년 : 전남대학교 ICT융합시스템공학과 (석사)

2018년~현 재 : 전남대학교 ICT융합시스템공학과 박사과정

※관심분야:지능형 네트워킹 시스템, 인간-컴퓨터 상호작용, 컴퓨터 비전, 딥러닝 및 머신러닝

김영광(Yeonggwang Kim)

2018년 : 연세대학교 정보통신공학 (학사)

2020년~현 재 : 전남대학교 ICT융합시스템공학과 석사과정

※관심분야:모바일 컴퓨팅, 클라우드 컴퓨팅, 블록체인, 엣지 기반 서버, 네트워크, 인공지능

신혜주(Hyeju Shin)

2022년 2월 : 전남대학교 산업공학과 (학사)

2022년 2월~현 재 : 전남대학교 ICT융합시스템공학과 석사과정

※관심분야:클라우드 컴퓨팅, 모바일 미디어 처리/통신, 미디어 네트워크, 인공지능

김진술(Jinsul Kim)

2001년 : Computer Science from University of Utah, Salt Lake City, Utah, USA (공학사)

2005년 : 한국과학기술원 정보통신공학 (공학석사)

2008년 : 한국과학기술원 정보통신공학 (공학박사)

2005년~2008년: 한국전자통신연구원 IPTV 인프라 기술, 융·복합 방송/통신 분야 연구원

2009년~2012년: 나사렛대학교 멀티미디어학과 교수

2012년~현 재: 전남대학교 전자컴퓨터공학과 교수

※관심분야:QoS/QoE 예측/분석/관리, 모바일 미디어 처리/통신, 클라우드 컴퓨팅 디지털 미디어 및 네트워크 지능기술