KR20190139539A - 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법 - Google Patents

저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법 Download PDF

Info

Publication number
KR20190139539A
KR20190139539A KR1020180066138A KR20180066138A KR20190139539A KR 20190139539 A KR20190139539 A KR 20190139539A KR 1020180066138 A KR1020180066138 A KR 1020180066138A KR 20180066138 A KR20180066138 A KR 20180066138A KR 20190139539 A KR20190139539 A KR 20190139539A
Authority
KR
South Korea
Prior art keywords
neural network
parameter
channel
residual block
value
Prior art date
Application number
KR1020180066138A
Other languages
English (en)
Other versions
KR102142403B1 (ko
Inventor
한성균
유지상
Original Assignee
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광운대학교 산학협력단 filed Critical 광운대학교 산학협력단
Priority to KR1020180066138A priority Critical patent/KR102142403B1/ko
Publication of KR20190139539A publication Critical patent/KR20190139539A/ko
Application granted granted Critical
Publication of KR102142403B1 publication Critical patent/KR102142403B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

역 잔여 블록(Inverted Residual Block) 내부의 채널 확장 파라미터의 값을 변화시키면서 테스트를 수행하고, 테스트 결과를 분석하여 최적의 채널 확장 매개변수를 설정하는, 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법에 관한 것으로서, 합성곱 신경망 모델을 저장하는 신경망 모델부; 상기 합성곱 신경망 모델을 학습하거나 테스트 하기 위한 데이터 셋을 저장하는 테스트셋 저장부; 상기 합성곱 신경망 모델의 역 잔여 블록 내부의 채널확장 파라미터의 값을 변화시키는 파라미터 변화부; 변화된 파라미터가 반영된 합성곱 신경망 모델을 학습시키고 테스트 하는 학습실험부; 및, 상기 학습된 합성곱 신경망 모델의 테스트 결과를 수집하고, 수집결과를 분석하여 최적의 파라미터를 검출하는 분석부를 포함하는 구성을 마련하여, 종래기술에 비하여 1% 미만의 정확도 하락과 약 40%의 모델 경량화 및 연산 속도의 개선할 수 있다.

Description

저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법 { A System of Searching the Channel Expansion Parameter for the Speed-up of Inverted Residual Block and the method thereof for low specification embedded system and the method thereof }
본 발명은 모델 경량화를 위하여, 고속화 및 연산량의 최적화를 위한 공간-채널 분리가능 컨벌루션을 포함하며, 역 잔여 블록(Inverted Residual Block)내부의 채널 확장 파라미터의 값을 변화시키며 테스트를 수행하고, 그 결과를 분석하여 최적의 채널 확장 매개변수를 설정하는, 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법에 관한 것이다.
최근 합성곱 신경망을 이용한 영상처리 분야가 각광받고 있다. 그 결과 객체 분류의 정확도는 이미 2015년 사람의 정확도를 능가하였다[비특허문헌 2]. 그러나 이러한 높은 정확도를 갖는 모델은 네트워크의 구조가 깊고 그 연산량과 모델 파라미터의 수가 매우 많아 연산 능력이 낮은 임베디드 시스템 상에서 구현이 어렵다.
이를 개선하기위해 엑셉션(Xception)[비특허문헌 3]과 모바일넷(MobileNetV1)[비특허문헌 4]에서는 합성곱 연산의 효율을 높인 공간-채널 분리가능 컨볼루션(Depth-wise Separable Convolution)을 제안하였고, MobileNetV2[비특허문헌 1]에서는 비선형 활성화 함수(Activation Function)에서 정보의 손실을 줄일 수 있는 선형 병목(Linear Bottleneck) 구조와 기존의 잔여블록(Residual Block) 방식과 반대로 내부의 채널을 늘리는 역 잔여 블록(Inverted Residual Block) 방식을 제안하였다. 이러한 방법들을 이용하여 경량화 된 모델로 더 정확한 예측이 가능하게 되었다.
하지만 스마트폰과 같은 저 사양의 임베디드 환경에서는 합성곱 신경망을 이용하는 동작 외에도 다양한 프로그램들이 동시에 실행되어 실제로 가용 가능한 연산 능력은 더 낮아지게 된다.
Mark Sandler, "MobileNetV2: Inverted Residuals and Linear Bottlenecks," arXiv:1801.04381v3, Cornell University Library, 2018 Markoff, John, "A Learning Advance in Artificial Intelligence Rivals Human Abilities," The New York Times, 10 December 2015. Francois Chollet, "Xception: Deep Learning with Depthwise Separable Convolutions," arXiv:1610.02357v3, Cornell University Library, 2016 Andrew G. Howard, "MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications," arXiv:1704.04861, Cornell University Library, 2017 Kaiming He, "Deep Residual Learning for Image Recognition," arXiv:1512.03385, Cornell University Library, 2015
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 역 잔여 블록(Inverted Residual Block)의 채널 확장 파라미터(Channel Expansion Factor)의 값을 1부터 10까지의 배율에 대해 각각 학습과 테스트를 진행하고, 배율에 따른 정확도와 모델 파라미터의 크기 및 연산 시간을 분석 하여, 최적의 모델을 설정하는, 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 관한 것으로서, 합성곱 신경망 모델을 저장하는 신경망 모델부; 상기 합성곱 신경망 모델을 학습하거나 테스트 하기 위한 데이터 셋을 저장하는 테스트셋 저장부; 상기 합성곱 신경망 모델의 역 잔여 블록 내부의 채널확장 파라미터의 값을 변화시키는 파라미터 변화부; 변화된 파라미터가 반영된 합성곱 신경망 모델을 학습시키고 테스트 하는 학습실험부; 및, 상기 학습된 합성곱 신경망 모델의 테스트 결과를 수집하고, 수집결과를 분석하여 최적의 파라미터를 검출하는 분석부를 포함하는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서, 상기 합성곱 신경망 모델은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하되, 역 잔여 블록(Inverted Residual Block)의 마지막 합성곱 연산의 출력이 선형 출력을 갖도록 구성되는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서, 상기 파라미터 변화부는 상기 채널확장 파라미터를 1부터 10까지 1씩 증가시켜 순차적으로 변화시키는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서, 상기 분석부는 채널 확장 파라미터의 값 변화에 따른 정확도와 연산시간 간의 증가분을 이용하여, 최적의 파라미터 값을 검출하는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서, 상기 분석부는 채널확장 파라미터의 각 값에 따른 단위비용 △C를 다음 수식에 따라 산출하여, 상기 단위비용 △C를 이용하여 최적의 파라미터 값으로 설정하는 것을 특징으로 한다.
[수식 1]
Figure pat00001
단, Tk는 채널확장 파라미터가 k일 때의 연산시간을 나타내고, Ak는 채널확장 파라미터가 k일 때의 정확도를 나타냄.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서, 상기 분석부는 상기 단위비용 △C가 사전에 설정된 기준값 보다 작은 연속적인 파라미터의 값 중 가장 큰 값을 최적의 파라미터 값으로 설정하는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서, 상기 분석부는 사전에 설정된 최소 정확도를 설정하고, 상기 채널확장 파라미터를 증가시켜 테스트하고, 테스트 결과 최소 정확도 이상이 되는 최소 채널확장 파라미터를 최적의 파라미터 값으로 설정하는 것을 특징으로 한다.
또한, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법에 관한 것으로서, (a) 채널확장 파라미터 값을 초기화하는 단계; (b) 사전에 설정된 데이터 셋으로 합성곱 신경망 모델을 학습시키고 테스트하는 단계; (c) 테스트된 결과를 이용하여 해당 채널확장 파라미터의 신경망 모델의 단위 비용을 산출하는 단계; (d) 상기 단위 비용을 사전에 설정된 기준값과 대비하는 단계; (e) 상기 단위 비용이 상기 기준값 보다 작으면, 채널 확장 파라미터 값을 증가시키고, 상기 (b)단계 내지 (d)단계를 반복하는 단계; 및, (f) 상기 단위 비용이 기준값 보다 크면, 채널확장 파라미터의 직전 파라미터 값을 최적의 파라미터 값으로 검출하여 설정하는 단계를 포함하는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법에 있어서, 상기 합성곱 신경망 모델은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하되, 역 잔여 블록(Inverted Residual Block)의 마지막 합성곱 연산의 출력이 선형 출력을 갖도록 구성되는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법에 있어서, 상기 (a)단계에서, 상기 채널확장 파라미터 값을 1로 초기화하고, 상기 (e)단계에서, 상기 채널확장 파라미터 값을 +1 증가시키는 것을 특징으로 한다.
또, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법에 있어서, 상기 (c)단계에서, 채널확장 파라미터의 각 값에 따른 단위비용 △C를 다음 수식에 따라 산출하여, 상기 단위비용 △C를 이용하여 최적의 파라미터 값으로 설정하는 것을 특징으로 한다.
[수식 2]
Figure pat00002
단, Tk는 채널확장 파라미터가 k일 때의 연산시간을 나타내고, Ak는 채널확장 파라미터가 k일 때의 정확도를 나타냄.
또한, 본 발명은 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
상술한 바와 같이, 본 발명에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법에 의하면, 종래기술에 비하여 1% 미만의 정확도 하락과 약 40%의 모델 경량화 및 연산 속도의 개선할 수 있는 효과가 얻어진다.
도 1은 본 발명을 실시하기 위한 전체 시스템의 구성을 도시한 도면.
도 2는 일반적인 컨벌루션 방식을 설명하는 도면.
도 3은 본 발명에서 사용되는 따른 공간-채널 분리가능 컨벌루션 방식을 설명하는 도면.
도 4는 본 발명에서 사용되는 1×1 합성곱을 설명하는 도면.
도 5는 본 발명에서 사용되는 잔여블록 방식을 설명하는 도면.
도 6은 본 발명에서 사용되는 역 잔여블록 방식을 설명하는 도면.
도 7은 본 발명에서 사용되는 합성곱 신경망의 구조에 대한 예시도.
도 8은 본 발명의 일실시예에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템의 구성에 대한 블록도.
도 9는 본 발명의 일실시예에 따른 합성곱 방법에 따른 연산 비용을 비교한 표.
도 10은 본 발명의 일실시예에 따른 테스트 환경을 예시한 표.
도 11은 본 발명의 일실시예에 따라 채널확장 파라미터의 변화에 따른 테스트 결과를 예시한 표.
도 12는 본 발명의 일실시예에 따른 테스트 결과 중 정확도(accuracy)와 추론시간(inference time)을 표시한 그래프.
도 13은 본 발명의 일실시예에 따른 채널확장 파라미터의 값에 따른 단위비용을 나타낸 표.
도 14는 발명의 제1 실시예에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법을 설명하는 흐름도.
도 15는 발명의 제2 실시예에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법을 설명하는 흐름도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템의 구성의 예들에 대하여 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 신경망 모델(11)과 테스트 셋(12)을 입력받아, 합성곱 신경망(CNN) 모델의 경량화를 위하여 상기 신경망 모델(11)의 채널확장 매개변수(또는 파라미터)를 최적화하는 컴퓨터 단말(20) 상의 프로그램 시스템으로 실시될 수 있다. 즉, 상기 채널확장 매개변수 설정 방법 또는 시스템은 프로그램으로 구성되어 컴퓨터 단말(20)에 설치되어 실행될 수 있다. 컴퓨터 단말(20)에 설치된 프로그램은 하나의 프로그램 시스템(30)과 같이 동작할 수 있다.
이때, 신경망 모델(11)은 합성곱 신경망 모델(CNN, Convolutional Neural Network)로서, 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하되, 선형 병목(Linear Bottleneck) 방식과 역 잔여 블록(Inverted Residual Block)을 채용하는 신경망 모델이다.
또한, 테스트 셋(12)은 신경망 모델(11)을 학습시키고 분석하기 위한 테스트 데이터들이다. 바람직하게는, 테스트 셋(12)은 Cifar-10 데이터셋을 사용한다.
한편, 다른 실시예로서, 상기 채널확장 매개변수 설정 방법 또는 시스템은 프로그램으로 구성되어 범용 컴퓨터에서 동작하는 것 외에 ASIC(주문형 반도체) 등 하나의 전자회로로 구성되어 실시될 수 있다. 또는 신경망 모델(11)의 채널확장 매개변수(또는 파라미터)를 최적화하는 것만을 전용으로 처리하는 전용 단말(30)로 개발될 수도 있다. 이를 매개변수 설정 시스템이라 부르기로 한다. 그 외 가능한 다른 형태도 실시될 수 있다.
다음으로, 본 발명의 구성에 대한 설명에 앞서, 본 발명에서 사용되는 신경망에 대하여 보다 구체적으로 설명한다.
본 발명에서 사용되는 신경망은 합성곱 신경망 모델(CNN, Convolutional Neural Network)로서, 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하되, 선형 병목(Linear Bottleneck) 방식과 역 잔여 블록(Inverted Residual Block)을 채용하는 신경망 모델이다.
먼저, 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식에 대하여 설명한다.
도 2는 일반적인 컨벌루션을 나타낸다.
도 2에서 보는 바와 같이, 입력 영상에 대해 한 가지 종류의 필터를 곱하는 경우, 3개의 채널을 다 동시에 고려해서 컨벌루션 연산을 수행한다. 즉, 각 채널에 대해 합성곱(convolution, 컨볼루션) 연산 후 가중 연산(Weighted sum)으로 하나의 점으로 생성한다. 도 2와 같이, 3×3×3의 정보를 1개의 점으로 만든다.
도 3은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution)을 나타낸다.
도 3에서 보는 바와 같이, 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution)은 도 3(a)의 공간에 대한 깊이방향(Depth-wise)의 합성곱과, 도 3(b)의 채널에 대한 포인트 방향(Point-wise)의 합성곱 연산 등 2가지의 단계로 나누어 합성곱 연산을 수행한다. 즉, 각 채널 별로 3×3 공간 방향으로 합성곱을 수행하고, 1×1 합성곱으로 채널 방향으로 합성곱을 수행한다.
구체적으로, 공간-채널 분리가능 컨벌루션은 일반적인 컨벌루션과는 달리, 도 3(a)와 같이, 채널을 보존한 공간 방향에 대한 합성곱 연산(Depth-wise Convolution)을 진행하여 채널을 보존한다. 그리고 도 3(b)와 같이, 채널들(예를 들어 도 3의 3개 채널)에 각각 1×1 합성곱을 적용하여 하나의 점으로 만든다.
여기서 1×1 합성곱은 포인트 방향(Point-wise)의 합성곱이다.
도 4는 포인트 방향(Point-wise)의 합성곱을 예시하고 있다. 도 4에서 (a)는 입력을 나타내고 (b)는 (a)의 입력에 필터를 적용한 후의 출력을 나타낸다. 1×1 합성곱은 1×1 차원의 공간과 N차원의 채널을 가지는 입력을 받고(도 4(a)), 필터를 거쳐, 1×1×1의 점으로 만들어 출력한다(도 4(b)). 이때, 출력의 채널 차원을 M으로 만들 수 있다.
다음으로, 잔여블록(Residual Block) 방식과, 병목(Bottleneck) 구조에 대하여 설명한다.
도 5에서 보는 바와 같이, 일반적으로 CNN 레이어(층, layer)가 여러 개 쌓여 전체 모델 구조(Architecture)를 이루는 CNN모델과 다르게, 잔여블록 구조는 2~3층의 CNN이 쌓여있고, 입력의 특징맵과 출력의 특징맵이 연결되어 있는 구조로 구성된다. 이러한 블록을 여러 개 쌓아서 전체 신경망 구조를 이루게 된다.(도 5는 잔여블록 구조의 예시이며, 좌측과 우측의 차이는 병목구조의 유무 차이이다.)
이때, 잔여블록(Residual Block) 방식은 입력과 출력이 직접로 연결되어, 출력에 입력을 그대로 더해준다. 즉, 입력단의 특징 맵들을 그대로 가져다가 출력단에 붙인다(concatenate)는 의미이다. 결과적으로, 신경망은 실제 연산량 및 파라미터의 양보다 더 많은 특징맵을 얻을 수 있다.
도 5(a)의 예에서, 블록은 해당 블록 내부에서 64개의 특징맵을 생성하지만, 입력의 특징맵 64개를 그대로 가져다가 붙여 총 128개의 특징맵을 얻을 수 있다. 또한, 도 5(b)의 예에서, 256개의 입력을 출력의 특징맵에 붙이므로, 총 512개의 특징맵이 얻어진다. 그 효과로는, 실제 CNN에서의 학습을 통한 특징맵 업데이트가 없더라도 최종 단에서의 성능이 향상된다. 따라서 잔여블록(Residual Block) 방식은 메모리와 연산량 측면에서 매우 효율적이다.
한편, 병목 구조(Bottleneck Architecture)는 잔여블록(Residual Block) 내부에서 채널의 수를 줄였다가 원래로 확장시키는 층(layer) 구조를 갖는다. 이때, 1×1 합성곱 또는 포인트 방향(Point-wise)의 합성곱을 이용하여, 채널 수를 줄이거나 확장시킨다.
도 5(a)는 채널의 수를 줄이지 않고 원래의 채널의 수를 유지한 채 합성곱을 수행하는 방식이다. 3×3 합성곱을 연속 적용하여, 채널 수가 유지되고 있다.
이에 반해, 도 5(b)는 채널의 수를 줄인 후 복구시키는 구조로서, 병목 구조를 나타내고 있다. 즉, 도 5(b)와 같이, 병목 구조는 1×1 합성곱으로 원래 채널 수(256개)에서 채널 수(64개)를 줄인 후 3×3 합성곱을 통과시킨다. 그리고 다시 1×1 합성곱을 지나가 채널(Channel)의 수(256개)를 복구하는 형태이다.
따라서 도 5(a)는 64개의 채널을 입력받아 처리하고 도 5(b)는 256개의 특징맵을 입력받아 처리하나, 도 5(a)와 도 5(b)는 모두 블록 내부에서 64개 특징맵을 처리하여 동일한 연산량을 가진다. 즉, 병목 구조는 채널의 축소를 통해 연산량을 줄이는 방식이다. 도 5(a)와 도 5(b)의 총 연산량은 비슷하거나 도 5(b)가 더 적다. 그러나 얻을 수 있는 특징맵의 개수가 도 5(b)의 방식(병목 구조)이 더 좋으므로, 정확도 향상 및 연산량 측면에서 더 유리한 구조가 된다.
한편, 선형 병목(Linear Bottleneck) 구조는, 비선형인 활성 함수(Activation Function)를 포함하지 않는 선형적인 병목(Bottleneck)구조를 의미한다.
일반적으로 CNN을 여러 층을 쌓아 모델을 구성하는 경우, 각 층의 끝에 비선형성을 포함하는 비선형 활성화 함수(Activation Function)가 추가된다. 비선형성을 갖는 활성화 함수는 다중 수치 행렬 곱셈을 ‘있다, 없다’등의 단일 수치 연산으로 줄여주는 역할을 한다. 이러한 활성화 함수의 적용을 통해 다중 층을 가진 신경망을 구성할 수 있다.
본 발명에 따른 신경망에서 사용되는 활성화 함수인 ReLU6(Rectified Linear Unit)는 0보다 작은 값을 제거하고, 최댓값을 6으로 제한한다. 여기서 제거된 정보의 손실은 네트워크의 성능을 향상시키기 위하여 특징맵의 채널수를 늘림으로써 해결이 가능하다.
역 잔여블록에서는 내부에서 특징맵의 채널을 확장시킨 후 축소시키므로, 축소 된 특징맵에는 축소되기 전에 얻어진 고차원 특징이 포함된다. 따라서 여기에 일반적인 비선형 활성화 함수를 적용시키게 될 경우, 저 차원에 포함되어 있는 고차원의 내용까지 제거되어 얻어지는 특징맵의 성능이 떨어지게 된다. 이를 방지하기 위하여 역 잔여블록의 마지막 CNN 층(layer)의 출력이 다음 단의 역 잔여블록으로 연결되기 전에(앞서 잔여블록 구조는 잔여블록을 구성한 후 여러 개의 잔여블록을 쌓아 전체 구조를 만든다), 선형 출력을 갖는 선형 병목(Linear Bottleneck) 구조를 도입한다. 이 구조의 적용은 역 잔여블록의 마지막 층(layer)의 출력에서만 활성화 함수를 사용하지 않으면 되므로 매우 간단히 구현된다.
다음으로, 역 잔여블록(Inverted Residual Block) 방식을 설명한다.
역 잔여블록(Inverted Residual Block) 방식은 앞서 설명한 잔여블록(Residual Block) 방식과 동일한 구조를 갖는다. 다만, 역 잔여블록 방식은 잔여블록 방식과 달리 중간에 채널을 줄이지 않고 확장시킨다.
채널 확장 파라미터가 6인 경우에 대한 예시가 도 6에 도시되고 있다.
도 6에서 보는 바와 같이, 입력 단에 24차원의 정보가 들어오는 경우, 채널 확장 파라미터를 곱한 144차원으로 블록 내부에서 채널을 확장시킨 후, 마지막 단에서 다시 24차원으로 압축한다.
따라서 역 잔여블록(Inverted Residual Block)은 실제로 갖는 데이터의 양보다 더 적게 메모리를 차지하여 정보를 저장할 수 있다. 즉, 블록(Block)의 입력과 출력의 크기가 실제 블록이 갖는 정보량보다 작기 때문에, 역 잔여블록(Inverted Residual Block)은 메모리 측면에서 매우 효율적인 구조를 갖는다.
다음으로, 본 발명에서 사용되는 합성곱 신경망의 구조를 예시하여 설명한다.
도 7에서 보는 바와 같이, 본 발명에서 사용되는 합성곱 신경망의 일례는 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 구성되며, 특히, 블록 내부의 컨벌루션 연산이 1×1 -> 3×3 -> 1×1 합성곱으로 나뉘어 연산된다.
또한 선형 병목(Linear Bottleneck) 구조는 블록의 출력단에 가장 가까운 층(layer)에만 비선형 활성화 함수인 ReLU가 적용되지 않고 선형(Linear) 출력을 내보내도록 적용된다. 즉, 마지막 층(layer)에만 ReLU를 적용하지 않기만 하면 된다.
또한, 블록 내부는 역 잔여블록(Inverted Residual Block) 방식이 적용되어, 처음 1×1 합성곱에서 채널을 확장시키고, 마지막 1×1 합성곱에서는 채널을 축소시키도록 구성된다.
즉, 본 발명에서 사용하는 CNN 신경망 모델은 공간-채널 분리가능 컨벌루션 방식으로서, 역 잔여블록의 구조를 가지고, 활성 함수가 선형인 구조의 신경망으로 정의될 수 있다. 활성 함수가 선형인 구조라는 것은 역 잔여블록 마지막 단에서 활성화 함수를 적용하지 않아 선형 출력을 갖는다는 의미이다.
다음으로, 본 발명의 일실시예에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템의 구성을 도 8를 참조하여 설명한다.
도 8에서 보는 바와 같이, 본 발명에 따른 채널 확장 매개변수 설정 시스템법은 합성곱 신경망 모델(CNN)을 저장하는 신경망 모델부(31), 신경망 모델을 학습하고 테스트하기 위한 학습 데이터 셋을 저장하는 테스트셋 저장부(32), 합성곱 신경망 모델에서 채널 확장 매개변수를 값을 변화시키는 파라미터 변화부(33), 매개변수가 반영된 합성곱 신경망 모델을 학습하고 테스트 하는 학습실험부(34), 및 매개변수가 반영된 합성곱 신경망 모델의 결과를 분석하여 최적의 매개변수를 검출하는 분석부(35)로 구성된다. 또한, 합성곱 신경망 모델(CNN), 테스트셋 등을 저장하는 저장부(38)로 구성된다.
먼저, 신경망 모델부(31)는 합성곱 신경망 모델(CNN)을 저장한다. 신경망 모델(CNN)을 입력받아 저장하거나, 사전에 설정되어 저장될 수 있다.
특히, 합성곱 신경망 모델은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하고, 선형 병목(Linear Bottleneck) 방식과 역 잔여 블록(Inverted Residual Block)을 채용하는 신경망 모델이다.
따라서 합성곱 신경망 모델(CNN)은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱 연산을 수행한다.
일반적으로 많이 쓰이는 표준 컨볼루션(Standard Convolution) 연산이 공간 방향과 채널 방향을 한번에 더하여 연산하는 것과 다르게, 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution)은 공간에 대한 깊이방향(Depth-wise)과 채널에 대한 포인트 방향(Point-wise)의 두가지 순서로 합성곱 연산을 진행한다.
표준 컨볼루션(Standard Convolution)과 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution)에 따른 연산 비용을 비교한 표가 도 9의 표에 도시되고 있다.
도 9의 표에서는 두 합성곱 연산에 대해 입력이 k × k × c, 출력이 f × f × N인 합성곱 연산의 비용(Cost)을 비교하였다. 표준 컨볼루션(Standard Convolution)의 연산 비용은 k × k × c × N × f × f 로 계산이 가능하다. 하지만 D공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution)은 공간에 대한 연산 만을 우선 수행하여 k × k × c × f × f 의 연산 비용이 계산되고, 다음으로 c개의 채널에 대한 합성곱 연산이 수행되므로 c × N × f × f 의 연산 비용이 더해지게 된다.
이 합성곱 연산 방식을 적용한 [비특허문헌 4]의 실험결과를 참조하면 약간의 정확도 감소가 발생하나 3 × 3 합성곱 연산을 기준으로 약 9배의 연산량을 감소 시킨다.
또한, 합성곱 신경망 모델(CNN)은 선형 병목(Linear Bottleneck) 방식을 적용한다.
신경망에서 비선형 활성화 함수를 사용하는 이유는 다중 행렬 곱셈을 단일 수치 연산으로 만들 수 없기 때문이다. 여기서 활성화 함수를 거치면서 채널이 줄게 되고, 그 결과 정보의 손실이 발생하여 모델의 정확도가 하락할 수 있게 된다. 본 발명에서 사용하는 합성곱 신경망 모델(CNN)은 이를 해결하기 위해 역 잔여 블록(Inverted Residual Block)의 마지막 합성곱 연산의 출력이 선형 출력을 갖도록 하여 문제를 해결한다. 즉, 역 잔여 블록(Inverted Residual Block) 내부에서 채널을 확장하여 정확도를 높이고 블록의 출력이 선형 출력을 갖도록 구성된다.
또한, 합성곱 신경망 모델(CNN)은 역 잔여(Inverted Residual) 방식을 이용한다.
ResNet[비특허문헌 5]에서 사용하는 잔여 블록(Residual Block)의 경우, 블록(Block) 내부의 채널을 줄였다가 늘리는 방식으로 구성이 되어있다. 하지만 역 잔여(Inverted Residual)은 그와 반대로 블록(Block) 내부의 채널을 확장시켰다가 줄이는 방식으로 구성된다. 그 결과 잔여 블록(Residual Block)의 장점을 유지하면서 블록(Block)에는 실제 정보량보다 더 적은 입/출력 모델 파라미터가 들어가게 되므로 메모리에 대한 효율성이 좋아진다. 또한 블록(Block) 내부의 채널을 확장시킴으로써 기존의 잔여 블록(Residual Block)보다 더 높은 정확도를 갖는다.
다음으로, 테스트셋 저장부(32)는 합성곱 신경망 모델(CNN)을 학습하고 테스트하기 위한 학습 데이터 셋을 저장한다. 데이터 셋은 입력받아 저장되거나, 사전에 설정되어 저장될 수 있다.
학습 데이터 셋은 합성곱 신경망 모델을 학습시키고 이를 테스트 하기 위한 데이터 셋으로서, 학습 또는 테스트용 이미지들이다. 바람직하게는, Cifar-10 데이터의 이미지들을 학습 데이터 셋으로 사용한다.
특히 바람직하게는, 데이터 셋의 학습과 테스트에는 각각 128과 100의 배치 크기(Batch Size)를 사용한다.
Cifar-10 데이터 셋은 일반적으로 기계학습 및 딥러닝을 이용한 컴퓨터 비전 분야에서 모델을 학습시키는 데 사용되는 이미지 모음이다. Cifar-10 데이터 셋에는 10개의 서로 다른 클래스에 총 60,000장의 이미지가 포함되어 있으며, 각 이미지는 32×32픽셀로 구성된 3채널(RGB) 컬러 이미지이다. 10개의 클래스는 각각 순서대로 비행기(plane), 차(car), 새(bird), 고양이(cat), 사슴(deer), 개(dog), 개구리(frog), 말(horse), 배(ship), 트럭(truck)으로 구성되어 있으며, 각 클래스는 6,000개의 이미지가 포함되어 있다.
학습용 데이터 셋과 테스트용 데이터 셋은 모두 Cifar-10의 데이터 셋으로 선택된다. 총 60,000장으로 구성된 Cifar-10 데이터 셋은 10,000장식 나뉘어 총 6개의 배치로 구성되어 있으며, 그 중 5개의 배치는 학습용, 나머지 1개가 테스트용 배치가 될 수 있다. 다시 말해서, 60,000장으로 구성된 Cifar-10 데이터 셋의 이미지 중 50,000장은 학습용, 10,000장은 테스트용으로 사용될 수 있다.
실험에서는 한 번의 시행(Epoch)에 학습에는 학습용 50,000장의 이미지 중 128장의 이미지로 구성된 배치를 사용하여 50,000장에 대한 학습이 진행되고, 테스트에는 테스트용 10,000장의 이미지 중 100장의 이미지로 구성된 배치가 이용하여 10,000장에 대한 테스트가 진행된다.
다음으로, 파라미터 변화부(33)는 합성곱 신경망 모델(CNN)의 역 잔여 블록(Inverted Residual Block) 내부의 채널확장 매개변수(파라미터)의 값을 변화시킨다. 바람직하게는, 상기 채널확장 파라미터를 1부터 10까지 1씩 증가시켜 순차적으로 변화시킨다.
다음으로, 학습실험부(34)는 파라미터가 반영된 합성곱 신경망 모델을 학습시키고 테스트 한다. 즉, 테스트 대상인 합성곱 신경망 모델은 채널확장 파라미터가 반영된 모델이다. 채널확장 파라미터는 합성곱 신경망 모델에서 사용하는 역 잔여 블록(Inverted Residual Block) 내부의 채널확장 파라미터이다.
학습실험부(34)는 변화된 채널확장 파라미터가 반영된 합성곱 신경망 모델에 대하여 학습을 시킨다. 이때, 저장된 테스트 데이터 셋(또는 테스트 셋)을 합성곱 신경망 모델에 입력시켜 학습을 시킨다. 특히, 학습용 데이터 셋을 사용한다. 바람직하게는, 128의 배치 크기를 사용한다.
바람직하게는, 도 10에서 보는 바와 같이, 학습실험부(34)는 Geforce GTX 1080 GPU이며, Ubuntu 16.04 LTS 환경에서 Pytorch를 이용하여 테스트 환경을 구성한다.
다음으로, 분석부(35)는 매개변수가 반영된 합성곱 신경망 모델의 테스트 결과를 수집하고, 이를 분석하여 최적의 매개변수를 검출한다.
즉, 분석부(35)는 변화된 채널확장 파라미터가 반영된 합성곱 신경망 모델의 테스트 결과를 수집한다. 앞서 채널확장 파라미터를 1부터 1단위로 순차적으로 반영하여 변화시킨다. 이때, 각 파라미터가 반영된 합성곱 신경망 모델의 학습 결과 또는 테스트 결과를 수집한다.
테스트 결과의 일례가 도 11의 표에 도시되고 있다. 도 11의 표는 채널 확장 파라미터의 값 변화에 따른 정확도와 모델의 크기, 그리고 연산 시간(Inference Time)을 비교한 결과이다.
도 11의 표와 같이, 채널확장 파라미터는 1부터 1 단위로 순차적으로 증가시키면서 신경망 모델에 반영된다. 이때, 각 파라미터 별로 해당 신경망 모델의 정확도(accuracy), 손실(loss), 모델 크기, 연산시간 등을 수집한다.
먼저, 정확도(accuracy)에 대하여 설명한다.
객체분류에서 정확도는 전체 테스트 데이터 셋(10,000장의 이미지)중 올바른 클래스로 모델이 추론한 경우에 대한 확률로, 다음의 수학식에 의해 산출된다.
[수학식 1]
Figure pat00003
여기서 Ai는 i번째의 시행(epoch)에 대한 실험을 나타낸다. 즉, 시행(epoch)이 200인 경우(50,000장의 학습용 이미지를 200번 반복 학습), 테스트(test) 또한 200번이 진행(10,000장의 테스트 이미지를 200번 반복 테스트)된다. 따라서 시행(epoch)이 200이면 i = 0, 1, 2, 3, … , 200 이 된다. 그리고 각 시행(epoch)에 대한 확률 A1, A2, A3, … , A200은 각기 별도로 계산된다. n은 전체 테스트 데이터 셋(실험 예의 경우 10,000)을 나타내고, t는 모델이 올바르게 객체를 분류한 횟수를 의미한다.
다음으로, 손실(loss)을 설명한다.
손실(loss)은 손실함수(loss function)을 통해 구해지는 값으로, 신경망을 학습할 때 학습 상태에 대해 측정하는 하나의 지표이다. 신경망의 학습 시에는 가중치 혹은 특징 맵들이 스스로 특징을 찾아가고, 그 때의 특징 값들이 최적이 될 수 있도록 신경망 모델이 학습되어야 한다. 이때, 이 특징 값들이 특징을 잘 찾아가고 있는지 볼 때 손실(loss) 값을 본다. 즉, 학습 중에는 작아질수록 잘 학습되어지고 있다는 의미이다. 따라서, 테스트 시에는 작을수록 잘 학습되었다는 것을 의미한다.
본 발명에서 손실함수(loss function)로서, 크로스 엔트로피(Cross-entropy) 손실함수를 사용한다. 손실함수는 다음과 같다.
[수학식 2]
Figure pat00004
여기서 Hy(y)는 손실(loss)를 나타냅니다. y는 신경망이 예측한 정답 레이블의 값, y’은 실제 정답 레이블의 값, I는 분류하고자 하는 클래스(class)의 개수(Cifar-10이므로 10이 됨)를 나타낸다.
다음으로, 모델 크기는 학습 후 저장된 모델 파일의 크기를 나타낸다.
또한, 연산 시간은 테스트 과정에서 데이터 셋이 학습된 신경망 모델을 한번 거치는 동안 소요된 시간을 의미한다. 앞서의 예에서, 10,000장의 Cifar-10 데이터 셋의 실험 이미지를 100개의 이미지가 합쳐진 배치(batch)를 구성하여 테스트를 한다. 이때, 100개의 이미지가 1개의 배치(batch)가 되므로 테스트 셋은 총 100개의 배치(batch)로 구성된다(100×100=10,000).
그런데, 연산시간은 이미지 100개가 들어있는 1개의 배치(batch)가 학습된 신경망 모델을 거쳐 최종 단에서 객체분류를 하기까지 소요된 시간이다.
도 11에서 보는 바와 같이, 손실(Loss)이 수렴하는 부분에서 가장 높은 정확도를 보인 모델을 저장할 수 있다. 또한, 학습 시에는 채널 확장 파라미터의 값이 작아질수록 에포크(Epoch)가 증가하더라도 손실(Loss)이 떨어지지 않는 것을 발견할 수 있다. 또한, 너무 큰 값을 사용하면 손실(Loss)이 떨어지더라도 과적합(Overfitting)에 의해 테스트 정확도가 좋아지지 않는 것을 확인할 수 있다.
또한, 분석부(35)는 채널확장 파라미터를 증가시키면서 획득된 테스트 결과인 정확도의 증가분의 크기 변화에 의하여 최적의 채널확장 파라미터를 추출한다.
도 12는 테스트 결과 중 정확도(accuracy)와 연산시간(inference time)을 표시한 그래프로서, 채널확장 파라미터를 증가시킬 때의 정확도와 연산시간을 대비한 그래프이다. 도 12에서 보는 바와 같이, 채널확장 파라미터의 값을 1에서 10까지 증가함에 따라, 연산시간(Inference Time)은 선형적으로 증가하는 반면, 그에 따른 정확도(Accuracy)는 그 증가폭이 점차 감소하는 것을 알 수 있다.
따라서 다음 수식과 같이, 채널확장 파라미터를 증가함에 따른 단위비용 △C를 산출한다.
[수학식 3]
Figure pat00005
여기서, Tk는 채널확장 파라미터가 k일 때의 연산시간을 나타내고, Ak는 채널확장 파라미터가 k일 때의 정확도를 나타낸다.
채널확장 파라미터의 값에 따른 단위비용을 도 13의 표에 도시되고 있다.
분석부(35)는 단위비용을 사전에 설정된 기준값과 비교하여, 단위비용이 기준값 이하인 연속적인 파라미터 값 중에서 가장 큰 채널확장 파라미터의 값을 최적의 파라미터로 설정한다. 예를 들어, 기준값이 10으로 사전에 설정되었다면, 채널확장 파라미터의 값은 3으로 설정된다. 즉, 파라미터의 값이 2나 3으로 설정된 경우, 이때의 단위 비용은 1.89 또는 6.67이므로, 단위비용의 조건에 만족한다. 이때의 가장 큰 파라미터의 값은 3이므로, 최적의 채널확장 파라미터는 3으로 설정한다.
또한, 다른 실시예로서, 분석부(35)는 사전에 설정된 최소 정확도를 설정하고, 채널확장 파라미터를 증가시켜 테스트하고, 테스트 결과 최소 정확도 이상이 되는 최소 채널확장 파라미터를 최적의 채널확장 파라미터로 설정할 수 있다. 예를 들어, 최소 정확도를 90%로 설정하고, 정확도가 90%가 넘는 테스트 결과 중 최소 채널확장 파라미터를 최적의 파라미터로 설정한다.
사용자에게 테스트 데이터 셋으로 테스트를 할 때 원하는 정확도(예를 들어 90%의 정확도를 목표로 하는 입력을 받음)를 입력 받고
2) 다음으로 파라미터가 1인 경우부터 학습을 진행하여 원하는 정확도를 넘는 경우 학습이 종료(파라미터가 작을수록 빠르게 학습 되니 제안해주신 방법대로 1부터 커지는 것이 옳은 것 같습니다)
3) 원하는 정확도가 나오지 않는 경우 정확도 대비 속도(수식 1)을 계산하여 합리적인 모델을 저장
다음으로, 본 발명의 제1 실시예에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법을 도 14를 참조하여 설명한다.
도 14에서 보는 바와 같이, 먼저, 채널확장 파라미터 값을 초기화한다(S10).
바람직하게는, 채널확장 파라미터 값을 1로 설정한다.
다음으로, 채널확장 파라미터 값이 설정되면, 사전에 설정된 데이터 셋으로 합성곱 신경망 모델을 학습시키고 테스트 한다(S20).
그리고 테스트된 결과를 이용하여 해당 채널확장 파라미터 값 k일 때의 신경망 모델의 단위 비용 △C를 산출한다(S30). 단위비용은 앞서 수학식 3과 같이 산출한다.
다음으로, 단위 비용이 기준값 보다 큰 지를 대비한다.
단위 비용이 기준값 보다 작으면, 채널 확장 파라미터 값 k를 +1 증가시킨다(S40). 그리고 증가된 채널확장 파라미터으로 설정된 합성곱 신경망 모델을 학습시키고 테스트하고, 단위비용을 산출하여 비교하는 작업을 반복 수행한다.
또한, 단위 비용이 기준값 보다 크면, 채널확장 파라미터 값 k-1을 최적의 파라미터 값으로 검출한다(S50).
다음으로, 본 발명의 제2 실시예에 따른 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법을 도 15를 참조하여 설명한다.
도 15에서 보는 바와 같이, 먼저, 채널확장 파라미터 값을 초기화한다(S110).
바람직하게는, 채널확장 파라미터 값을 1로 설정한다.
다음으로, 채널확장 파라미터 값이 설정되면, 사전에 설정된 데이터 셋으로 합성곱 신경망 모델을 학습시키고 테스트 한다(S120).
그리고 테스트된 결과를 이용하여 해당 채널확장 파라미터 값 k일 때의 신경망 모델의 정확도(accuracy)를 산출한다(S130).
다음으로, 정확도가 사전에 정해진 최소 정확도(또는 기준값) 보다 큰 지를 대비한다.
단위 비용이 기준값 보다 작으면, 채널 확장 파라미터 값 k를 +1 증가시킨다(S140). 그리고 증가된 채널확장 파라미터으로 설정된 합성곱 신경망 모델을 학습시키고 테스트하고, 정확도를 산출하여 비교하는 작업을 반복 수행한다.
또한, 정확도가 사전에 정해진 기준값(또는 최소 정확도) 이상이면, 채널확장 파라미터 값 k를 최적의 파라미터 값으로 검출한다(S150).
다음으로, 본 발명의 효과를 보다 구체적으로 설명한다.
[비특허문헌 1]에서 사용하는 채널 확장 파라미터의 값으로 6을 이용하여 역 잔여 블록(Inverted Residual Block) 내부의 채널을 확장시킨 경우, 9,179KB 크기의 모델을 이용하여 26ms의 연산시간으로 92.03%의 정확도로 객체 분류를 수행한다.
본 발명에 따른 채널 확장 파라미터의 값이 3인 경우가 [비특허문헌 1]의 방법을 사용한 결과보다 약 40% 작은 모델로 약 40% 빠른 16ms의 연산 시간을 이용하여 91.21%의 정확도로 객체 분류가 가능하다. 따라서 1% 미만의 정확도 포기로 모델 크기와 속도 측면에서 각각 40%가량의 성능이 개선 가능했으며, 채널 확장 파라미터의 값이 3인 모델이 [비특허문헌 1]의 방법보다 낮은 연산 능력만 가용 가능한 임베디드 시스템에서의 실시간 객체 분류에 대해 더 효율적이다.
본 발명에서는 모바일넷(MobileNetV2)[비특허문헌 1]의 역 잔여 블록(Inverted Residual Block) 내부의 채널 확장 파라미터의 값을 감소시켜 [비특허문헌 1]보다 더 경량화가 가능한 방법을 제안하였다. 역 잔여 블록(Inverted Residual Block) 내부의 채널 확장은 채널 확장 파라미터의 값이 배율로 곱해져 채널이 늘어나게 된다.
이를 위하여 채널 확장 파라미터의 값 변화에 따른 모델의 크기와 정확도, 연산 시간에 대한 분석작업을 수행한다. 파라미터의 값에 비례하여 모델의 크기가 선형적으로 커지며, 모델의 크기가 작을수록 연산 시간이 빨라지는 상관관계를 확인하였다. 또한 신경망 모델은 채널 확장 파라미터의 값이 [비특허문헌 1]에서 제안하는 6보다 작아도 충분한 특징(Feature)을 얻을 수 있는 것을 파라미터와 정확도의 관계에서 파악하였다.
따라서 본 발명에 따르면, 채널 확장 파라미터의 값이 3인 경우가 [비특허문헌 1]에서 제안하는 6일때의 결과와 비교하여 0.82% 낮은 정확도로 40%가량 더 경량화된 모델로 40%가량 더 빠르게 객체의 분류가 가능하였다.
이러한 결과를 얻을 수 있었던 이유는 역 잔여 블록(Inverted Residual Block) 내부에서 입력된 정보가 갖는 채널을 [비특허문헌 1]의 방법보다 절반의 크기로 확장시키게 되어 모델이 갖는 전체 파라미터의 수가 줄어들게 되었고, 전체 합성곱 연산의 양 또한 줄어들게 되어 총 연산의 속도가 빨라지게 되었다고 판단된다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
11 : 신경망 모델 12 : 테스트 셋
20 : 컴퓨터 단말 30 : 프로그램 시스템
31 : 신경망 모델부 32 : 테스트셋 저장부
33 : 파라미터 변화부 34 : 학습실험부
35 : 분석부 38 : 저장부

Claims (12)

  1. 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템에 있어서,
    합성곱 신경망 모델을 저장하는 신경망 모델부;
    상기 합성곱 신경망 모델을 학습하거나 테스트 하기 위한 데이터 셋을 저장하는 테스트셋 저장부;
    상기 합성곱 신경망 모델의 역 잔여 블록 내부의 채널확장 파라미터의 값을 변화시키는 파라미터 변화부;
    변화된 파라미터가 반영된 합성곱 신경망 모델을 학습시키고 테스트 하는 학습실험부; 및,
    상기 학습된 합성곱 신경망 모델의 테스트 결과를 수집하고, 수집결과를 분석하여 최적의 파라미터를 검출하는 분석부를 포함하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  2. 제1항에 있어서,
    상기 합성곱 신경망 모델은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하되, 역 잔여 블록(Inverted Residual Block)의 마지막 합성곱 연산의 출력이 선형 출력을 갖도록 구성되는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  3. 제1항에 있어서,
    상기 파라미터 변화부는 상기 채널확장 파라미터를 1부터 10까지 1씩 증가시켜 순차적으로 변화시키는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  4. 제1항에 있어서,
    상기 분석부는 채널 확장 파라미터의 값 변화에 따른 정확도와 연산시간 간의 증가분을 이용하여, 최적의 파라미터 값을 검출하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  5. 제4항에 있어서,
    상기 분석부는 채널확장 파라미터의 각 값에 따른 단위비용 △C를 다음 수식에 따라 산출하여, 상기 단위비용 △C를 이용하여 최적의 파라미터 값으로 설정하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
    [수식 1]
    Figure pat00006

    단, Tk는 채널확장 파라미터가 k일 때의 연산시간을 나타내고, Ak는 채널확장 파라미터가 k일 때의 정확도를 나타냄.
  6. 제5항에 있어서,
    상기 분석부는 상기 단위비용 △C가 사전에 설정된 기준값 보다 작은 연속적인 파라미터의 값 중 가장 큰 값을 최적의 파라미터 값으로 설정하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  7. 제1항에 있어서,
    상기 분석부는 사전에 설정된 최소 정확도를 설정하고, 상기 채널확장 파라미터를 증가시켜 테스트하고, 테스트 결과 최소 정확도 이상이 되는 최소 채널확장 파라미터를 최적의 파라미터 값으로 설정하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  8. 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법에 있어서,
    (a) 채널확장 파라미터 값을 초기화하는 단계;
    (b) 사전에 설정된 데이터 셋으로 합성곱 신경망 모델을 학습시키고 테스트하는 단계;
    (c) 테스트된 결과를 이용하여 해당 채널확장 파라미터의 신경망 모델의 단위 비용을 산출하는 단계;
    (d) 상기 단위 비용을 사전에 설정된 기준값과 대비하는 단계;
    (e) 상기 단위 비용이 상기 기준값 보다 작으면, 채널 확장 파라미터 값을 증가시키고, 상기 (b)단계 내지 (d)단계를 반복하는 단계; 및,
    (f) 상기 단위 비용이 기준값 보다 크면, 채널확장 파라미터의 직전 파라미터 값을 최적의 파라미터 값으로 검출하여 설정하는 단계를 포함하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법.
  9. 제8항에 있어서,
    상기 합성곱 신경망 모델은 공간-채널 분리가능 컨벌루션(Depth-wise Separable Convolution) 방식으로 합성곱을 수행하되, 역 잔여 블록(Inverted Residual Block)의 마지막 합성곱 연산의 출력이 선형 출력을 갖도록 구성되는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법.
  10. 제8항에 있어서,
    상기 (a)단계에서, 상기 채널확장 파라미터 값을 1로 초기화하고,
    상기 (e)단계에서, 상기 채널확장 파라미터 값을 +1 증가시키는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템.
  11. 제8항에 있어서,
    상기 (c)단계에서, 채널확장 파라미터의 각 값에 따른 단위비용 △C를 다음 수식에 따라 산출하여, 상기 단위비용 △C를 이용하여 최적의 파라미터 값으로 설정하는 것을 특징으로 하는 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 방법.
    [수식 2]
    Figure pat00007

    단, Tk는 채널확장 파라미터가 k일 때의 연산시간을 나타내고, Ak는 채널확장 파라미터가 k일 때의 정확도를 나타냄.
  12. 제8항 내지 제11항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020180066138A 2018-06-08 2018-06-08 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법 KR102142403B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180066138A KR102142403B1 (ko) 2018-06-08 2018-06-08 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180066138A KR102142403B1 (ko) 2018-06-08 2018-06-08 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190139539A true KR20190139539A (ko) 2019-12-18
KR102142403B1 KR102142403B1 (ko) 2020-08-07

Family

ID=69052578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180066138A KR102142403B1 (ko) 2018-06-08 2018-06-08 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102142403B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111242131A (zh) * 2020-01-06 2020-06-05 北京十六进制科技有限公司 一种智能阅卷中图像识别的方法、存储介质及装置
KR20210094751A (ko) * 2020-01-22 2021-07-30 고려대학교 세종산학협력단 Yolo 기반 경량 경계 상자 검출과 영상 처리를 통한 정확한 동물 탐지 방법 및 장치
KR20210128616A (ko) * 2020-04-17 2021-10-27 인천대학교 산학협력단 합성곱 신경망 모델에 포함된 합성곱 필터의 개수 조정을 통해 합성곱 연산의 효율을 향상시키기 위한 컴퓨팅 장치 및 그 동작 방법
KR20210157028A (ko) 2020-06-19 2021-12-28 권세기 마스크 착용 상태 검사 시스템
KR20230036249A (ko) * 2021-09-07 2023-03-14 세종대학교산학협력단 Lstm 기반의 이상 인식 방법 및 시스템

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
"MobileNetV2: Inverted Residuals and Linear Bottlenecks," arXiv:1801.04381v3 Cornell University Library, 2 April 2018.* *
"Enhanced Deep Residual Networks for Single Image Super-Resolution", The IEEE Conference on Computer Vision and Pattern Recognition(CVPR)(pp. 136-144), 2017. *
"Image Super-Resolution via Deep Recursive Residual Network", The IEEE Conference on Computer Vision and Pattern Recognition(CVPR)(pp. 3147-3155), 2017. *
Andrew G. Howard, "MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications," arXiv:1704.04861, Cornell University Library, 2017
Francois Chollet, "Xception: Deep Learning with Depthwise Separable Convolutions," arXiv:1610.02357v3, Cornell University Library, 2016
Kaiming He, "Deep Residual Learning for Image Recognition," arXiv:1512.03385, Cornell University Library, 2015
Mark Sandler, "MobileNetV2: Inverted Residuals and Linear Bottlenecks," arXiv:1801.04381v3, Cornell University Library, 2018
Markoff, John, "A Learning Advance in Artificial Intelligence Rivals Human Abilities," The New York Times, 10 December 2015.

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111242131A (zh) * 2020-01-06 2020-06-05 北京十六进制科技有限公司 一种智能阅卷中图像识别的方法、存储介质及装置
CN111242131B (zh) * 2020-01-06 2024-05-10 北京十六进制科技有限公司 一种智能阅卷中图像识别的方法、存储介质及装置
KR20210094751A (ko) * 2020-01-22 2021-07-30 고려대학교 세종산학협력단 Yolo 기반 경량 경계 상자 검출과 영상 처리를 통한 정확한 동물 탐지 방법 및 장치
KR20210128616A (ko) * 2020-04-17 2021-10-27 인천대학교 산학협력단 합성곱 신경망 모델에 포함된 합성곱 필터의 개수 조정을 통해 합성곱 연산의 효율을 향상시키기 위한 컴퓨팅 장치 및 그 동작 방법
KR20210157028A (ko) 2020-06-19 2021-12-28 권세기 마스크 착용 상태 검사 시스템
KR20230036249A (ko) * 2021-09-07 2023-03-14 세종대학교산학협력단 Lstm 기반의 이상 인식 방법 및 시스템

Also Published As

Publication number Publication date
KR102142403B1 (ko) 2020-08-07

Similar Documents

Publication Publication Date Title
KR102142403B1 (ko) 저사양 임베디드 환경에서의 합성곱 신경망 연산을 위한 역 잔여 블록의 채널 확장 매개변수 설정 시스템 및 방법
Yu et al. Nisp: Pruning networks using neuron importance score propagation
He et al. Learning filter pruning criteria for deep convolutional neural networks acceleration
Liu et al. Progressive neural architecture search
CN110633745B (zh) 一种基于人工智能的图像分类训练方法、装置及存储介质
Ma et al. Facial expression recognition using constructive feedforward neural networks
EP3340129B1 (en) Artificial neural network class-based pruning
CN109816032B (zh) 基于生成式对抗网络的无偏映射零样本分类方法和装置
CN110852168A (zh) 基于神经架构搜索的行人重识别模型构建方法及装置
Tscherepanow TopoART: A topology learning hierarchical ART network
KR102011788B1 (ko) 계층적 시각 특징을 이용한 시각 질의 응답 장치 및 방법
Singh et al. Stability based filter pruning for accelerating deep cnns
CN115423739A (zh) 基于SimpleBaseline的遥操作机械臂关键点的检测方法
CN114511042A (zh) 一种模型的训练方法、装置、存储介质及电子装置
CN114611798A (zh) 一种基于动态超图卷积神经网络的od客流预测方法
CN113554716A (zh) 基于知识蒸馏的瓷砖色差检测方法及装置
Kaplan et al. Goal driven network pruning for object recognition
CN111611796A (zh) 下位词的上位词确定方法、装置、电子设备及存储介质
CN112200210A (zh) 使基础分类器适应于新奇类
CN111882028A (zh) 用于卷积神经网络的卷积运算装置
Huang et al. Flow of renyi information in deep neural networks
CN115937594A (zh) 基于局部与全局特征融合的遥感图像分类方法和装置
Romano et al. An improved pooling scheme for convolutional neural networks
Ressi et al. A relevance-based cnn trimming method for low-resources embedded vision
CN114492797A (zh) 模型剪枝方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant