KR102629142B1 - 신경망 모델 압축 방법 및 이를 수행하는 장치 - Google Patents

신경망 모델 압축 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR102629142B1
KR102629142B1 KR1020230031075A KR20230031075A KR102629142B1 KR 102629142 B1 KR102629142 B1 KR 102629142B1 KR 1020230031075 A KR1020230031075 A KR 1020230031075A KR 20230031075 A KR20230031075 A KR 20230031075A KR 102629142 B1 KR102629142 B1 KR 102629142B1
Authority
KR
South Korea
Prior art keywords
layer
channel
filter
layers
importance
Prior art date
Application number
KR1020230031075A
Other languages
English (en)
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 KR1020230031075A priority Critical patent/KR102629142B1/ko
Application granted granted Critical
Publication of KR102629142B1 publication Critical patent/KR102629142B1/ko

Links

Classifications

    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

신경망 모델을 압축하는 방법이 개시된다. 방법은, 신경망 모델에 포함된 레이어들 중에서 기설정된 연산자와 관련된 후보 레이어들을 식별하는 단계, 후보 레이어들 중에서 최상위 레이어와 관련된 중요도를 획득하는 단계, 중요도를 기초로 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정하는 단계, 및 후보 레이어들에 포함된 필터들 중에서 타겟 채널에 대응되는 필터를 제거함으로써 신경망 모델을 압축하는 단계를 포함한다.

Description

신경망 모델 압축 방법 및 이를 수행하는 장치{METHOD FOR COMPRESSING NEURAL NETWORK MODEL AND ELECTRONIC APPARATUS FOR PERFORMING THE SAME}
본 개시는 신경망 모델 압축 방법 및 이를 수행하는 전자 장치에 관한 것이다.
프루닝(pruning)은 신경망 모델을 경량화(또는, 압축)하는 기법 중 하나로, 상대적으로 중요도가 낮아서 불필요한 매개변수(예로, 필터)를 제거하는 방법이다.
지금까지 다양한 프루닝 방법들이 개발되어 왔으나, 레이어 간 연결관계를 고려하지 않고 필터를 제거하여 모델이 함유하고있는 정보의 왜곡이 발생했고, 결과적으로 프루닝으로 인한 모델의 정확도 감소가 심하다는 문제가 있었다.
또한, 제거할 필터를 결정하기 위해서는 각 필터의 중요도를 계산해야 하는 데, 신경망 모델에는 다수의 레이어와 필터가 존재하기 때문에, 모든 필터의 중요도를 계산하기에는 지나치게 많은 시간과 리소스가 든다는 문제가 있다.
따라서, 프루닝으로 인한 모델의 정확도 감소를 줄이고 필터의 중요도 계산을 위한 시간과 리소스를 줄일 수 있는 프루닝 방법이 필요한 실정이다.
본 발명이 해결하고자 하는 일 기술적 과제는, 압축에 따른 신경망 모델의 정확도 감소를 줄일 수 있는 신경망 모델 압축 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 일 기술적 과제는, 필터의 중요도 계산을 위한 시간과 리소스를 줄일 수 있는 신경망 모델 압축 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 개시의 예시적인 일 실시예에 따르면, 전자 장치에 의해 수행되는, 신경망 모델을 압축하는 방법에 있어서, 상기 신경망 모델에 포함된 레이어들 중에서 기설정된 연산자와 관련된 후보 레이어들을 식별하는 단계; 상기 후보 레이어들 중에서 최상위 레이어와 관련된 중요도-상기 중요도는, 상기 최상위 레이어에 포함된 필터의 채널별 중요도 또는 상기 기설정된 연산자를 통해 생성되어 상기 최상위 레이어로 입력되는 피처맵의 채널별 중요도를 포함함-를 획득하는 단계; 상기 중요도를 기초로 상기 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정하는 단계; 및 상기 후보 레이어들에 포함된 필터들 중에서 상기 타겟 채널에 대응되는 필터를 제거함으로써 상기 신경망 모델을 압축하는 단계;를 포함하는 방법이 제공될 수 있다.
본 개시의 예시적인 일 실시예에 따르면, 신경망 모델을 압축하는 전자 장치에 있어서, 적어도 하나의 인스트럭션을 저장하는 메모리; 및 상기 메모리에 작동적으로 연결된 프로세서;를 포함하고, 상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 신경망 모델에 포함된 레이어들 중에서 기설정된 연산자와 관련된 후보 레이어들을 식별하고, 상기 후보 레이어들 중에서 최상위 레이어와 관련된 중요도-상기 중요도는, 상기 최상위 레이어에 포함된 필터의 채널별 중요도 또는 상기 기설정된 연산자를 통해 생성되어 상기 최상위 레이어로 입력되는 피처맵의 채널별 중요도를 포함함-를 획득하고, 상기 중요도를 기초로 상기 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정하고, 상기 후보 레이어들에 포함된 필터들 중에서 상기 타겟 채널에 대응되는 필터를 제거함으로써 상기 신경망 모델을 압축하는 전자 장치가 제공될 수 있다.
본 개시의 예시적인 일 실시예에 따르면, 신경망 모델을 압축하는 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능 기록매체가 제공될 수 있다.
본 개시의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이상과 같은 본 개시의 다양한 실시예에 따르면, 신경망 모델을 압축할 때 압축으로 인한 신경망 모델의 정확도 감소를 줄일 수 있다. 또한, 신경망 모델을 압축할 때 필터의 중요도 계산을 위한 시간과 리소스를 줄일 수 있다. 이에 따라, 사용자는 기존의 압축 방법을 이용하였을 때보다 적은 시간을 들이고도 정확도는 더 높은 압축된 모델을 획득할 수 있다.
그 외에 본 개시의 실시 예로 인하여 얻을 수 있거나 예측되는 효과에 대해서는 본 개시의 실시 예에 대한 상세한 설명에서 직접적 또는 암시적으로 개시하도록 한다. 예컨대, 본 개시의 실시 예에 따라 예측되는 다양한 효과에 대해서는 후술될 상세한 설명 내에서 개시될 것이다.
본 개시의 다른 양상, 이점 및 두드러진 특징들은 첨부된 도면과 관련하여 본 발명의 다양한 실시 예들을 개시하는 다음의 상세한 설명으로부터 당업자에게 명백해질 것이다.
본 개시의 특정 실시 예의 양상, 특징 및 이점은 첨부된 도면들을 참조하여 후술되는 설명을 통해 보다 명확해질 것이다.
도 1은 본 개시의 일 실시예에 신경망 모델 압축 방법을 나타내는 순서도이다.
도 2는 본 개시의 일 실시예에 따른 신경망 모델(M)의 아키텍처를 나타내는 도면이다.
도 3은 필터들 간의 대응 관계를 고려하지 않고 프루닝된 신경망 모델(Me)을 나타내는 도면이다.
도 4a는 본 개시의 일 실시예에 따른 프루닝 방법을 설명하기 위한 도면이다.
도 4b는 도 4a의 신경망 모델(M)이 프루닝된 모습을 나타내는 도면이다.
도 4c는 도 4b의 프루닝된 신경망 모델(M1)이 추가적으로 프루닝된 모습을 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 프루닝 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 개시의 일 실시예에 신경망 모델 압축 방법을 나타내는 순서도이다.
도 1을 참조하면, 전자 장치(100)는 신경망 모델에 포함된 레이어들 중에서 기설정된 연산자와 관련된 후보 레이어들을 식별할 수 있다(S110). 기설정된 연산자는, 요소별 연산자(element-wise operator) 및 접합 연산자(concatenation operator)를 포함할 수 있다. 요소별 연산이란 두 벡터에서 같은 위치의 원소끼리 연산하는 것을 말한다. 예를 들어, 요소별 연산은 덧셈 연산을 포함할 수 있다. 전자 장치(100)는 신경망 모델을 사용자로부터 입력받을 수 있다. 사용자는 경량화하고 싶은 신경망 모델을 전자 장치(100)에 입력 또는 전송할 수 있다.
기설정된 연산자와 관련된 레이어들은, 기설정된 연산자와 '직접 연결'된 제1 레이어들을 포함할 수 있다. 여기서, '직접 연결'이란, 기설정된 연산자와 제1 레이어 사이에 어떠한 레이어도 존재하지 않는 것을 의미할 수 있다. 또한, 기설정된 연산자와 관련된 레이어들은, 제1 레이어들 사이에 존재하는 제2 레이어를 포함할 수 있다.
기설정된 연산자와 관련된 레이어들은 미리 정해진 연결 관계를 형성할 수 있다. 예를 들어, 제1 레이어들은 기설정된 연산자에 스킵 커넥션(skip connection)으로 연결되는 레이어를 포함할 수 있다.
신경망 모델은 다양한 구조를 가질 수 있다. 예를 들어, 신경망 모델은 레지듀얼 네트워크(Residual Network) 및/또는 구글넷(GoogleNet)을 포함할 수 있다.
전자 장치(100)는 후보 레이어들 중에서 최상위 레이어와 관련된 중요도를 획득할 수 있다(S120). 최상위 레이어는 후보 레이어들 중 입력 레이어로부터 가장 먼 레이어를 의미한다. 달리 말해, 최상위 레이어는 다른 후보 레이어들에 비해 레벨이 더 높다고 할 수 있다. 즉, 신경망 모델의 레이어가 입력 레이어로부터 멀어질수록(즉, 출력 레이어와 가까워질수록), 해당 레이어의 레벨이 높아진다고도 할 수 있다. 본 개시에서는 후보 레이어들 중에서 레벨이 가장 높은(즉, 입력 레이어로부터 가장 먼) 레이어를 최상위 레이어로 지칭한다. 따라서, 최상위 레이어가 반드시 신경망 모델의 전체 레이어 중에서 레벨이 가장 높은 것은 아님을 밝혀 둔다.
레이어의 레벨이 높아질수록 레이어를 통해 출력되는 피처맵은 보다 유의미한 정보를 포함할 수 있다. 즉, 하이레벨 피처는 로우레벨 피처에 비해 유의미한 정보를 가지고 있을 수 있다. 따라서, 전자 장치(100)는 모든 레이어와 관련된 중요도를 산출하는 것이 아니라, 최상위 레이어와 관련된 중요도만을 산출할 수 있다. 그리고, 전자 장치(100)는 최상위 레이어와 관련된 중요도를 기준으로 나머지 후보 레이어들을 프루닝할 수 있다. 다시 말해, 전자 장치(100)는 가장 유의미한 정보를 가지고 있는 최상위 레이어를 기준으로 신경망 모델을 프루닝할 수 있다. 이에 따라, 기존의 프루닝 방법에 비해 채널별 중요도 산출을 위한 시간과 리소스가 저감되는 이점이 있다.
최상위 레이어와 관련된 중요도는, 최상위 레이어에 포함된 필터의 채널별 중요도 및/또는 기설정된 연산자를 통해 생성되어 최상위 레이어로 입력되는 피처맵의 채널별 중요도를 포함할 수 있다. 여기서, 필터의 채널별 중요도는, 필터를 포함한 레이어의 입력 채널별 중요도를 의미할 수 있다. 또한, 최상위 레이어와 관련된 중요도는, 최상위 레이어에 포함된 필터의 채널별 중요도, 최상위 레이어로 입력되는 피처맵의 채널별 중요도를 조합하여 산출되는 값일 수 있다. 예를 들어, 전자 장치(100)는 필터의 채널별 중요도와 필터가 적용될 피처맵의 채널별 중요도를 각 채널마다 합산하거나 평균화하여 각 채널별 중요도를 산출할 수 있다.
전자 장치(100)는 메트릭(metric)을 이용하여 필터의 채널별 중요도나 피처맵의 채널별 중요도를 산출할 수 있다. 전자 장치(100)는 피처맵의 채널별 가중치나 필터의 채널별 가중치에 메트릭을 적용하여 필터의 채널별 중요도나 피처맵의 채널별 중요도를 산출할 수 있다. 메트릭(metric)은 필터나 피처맵의 중요도를 결정하기 위한 수학식(formula)일 수 있다. 예를 들어, 메트릭은, L2 norm, 기하중앙값(Geometric Median), Nuclear norm 및/또는 L1 Norm을 포함할 수 있다.
하나의 레이어에 필터가 여러 개 포함된 경우, 전자 장치(100)는 각 필터의 채널별 중요도를 산출할 수 있다. 그리고, 전자 장치(100)는 레이어에 포함된 모든 필터들의 채널별 중요도를 연산(예를 들어, 합산, 평균화, L2 norm 등)함으로써 레이어를 대표하는 채널별 중요도를 산출할 수 있다.
전자 장치(100)는 최상위 레이어와 관련된 중요도를 기초로 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정할 수 있다(S130). 예를 들어, 전자 장치(100)는 최상위 레이어에 포함된 필터의 채널들 중 중요도의 순위가 기설정된 순위보다 작은 채널을 타겟 채널로 결정할 수 있다. 또는, 전자 장치(100)는 최상위 레이어로 입력되는 피처맵의 채널들 중 중요도의 순위가 기설정된 순위보다 작은 제1 채널을 식별할 수 있다. 전자 장치(100)는 최상위 레이어에 포함된 필터의 채널들 중 제1 채널에 대응되는 제2 채널을 타겟 채널로 결정할 수 있다.
한편, 본 개시에서는 타겟 채널이 최상위 레이어에 포함된 필터의 채널들 중에서 선택되는 것을 기준으로 설명하나, 타겟 채널이 최상위 레이어로 입력되는 피처맵의 채널들 중에서 선택되는 것도 가능하다. 예를 들어, 전자 장치(100)는 최상위 레이어로 입력되는 피처맵의 채널들 중 중요도의 순위가 기설정된 순위보다 작은 제1 채널을 타겟 채널로 결정할 수 있다.
전자 장치(100)는 후보 레이어들에 포함된 필터들 중에서 타겟 채널에 대응되는 필터를 제거함으로써 신경망 모델을 압축할 수 있다(S140). 예를 들어, 전자 장치(100)는 신경망 모델에 프루닝을 적용할 수 있다. 타겟 채널에 대응되는 필터는, 최상위 레이어에 포함된 필터들 중에서 타겟 채널과 채널 인덱스가 동일한 제1 필터를 포함할 수 있다. 또한, 타겟 채널에 대응되는 필터는, 최상위 레이어를 제외한 후보 레이어들에 포함된 필터들 중에서 타겟 채널에 대응되는 제2 필터를 포함할 수 있다.
전자 장치(100)는 타겟 채널에 대응되는 특정 필터의 전체를 제거하거나 또는 특정 필터의 일부 채널만을 제거할 수 있다. 예를 들어, 전자 장치(100)는 최상위 레이어에 포함된 필터들에 대해서는 타겟 채널에 대응되는 특정 채널만 제거할 수 있다. 반면에, 전자 장치(100)는 최상위 레이어를 제외한 나머지 후보 레이어들에 포함된 필터들에 대해서는 타겟 채널에 대응되는 필터 전체를 제거할 수 있다. 즉, 전자 장치(100)는 최상위 레이어는 채널 단위로 프루닝하고, 최상위 레이어를 제외한 나머지 후보 레이어들은 필터 단위로 프루닝할 수 있다.
전자 장치(100)는 압축된 신경망 모델을 추가적으로 압축할 필요가 있는지 판단할 수 있다(S150). 예를 들어, 전자 장치(100)는 압축된 신경망 모델에 연산이 불가능한 레이어가 존재하는지 판단할 수 있다. 구체적으로, 압축된 신경망 모델에 연산이 불가능한 레이어가 존재하면, 전자 장치(100)는 압축된 신경망 모델을 추가적으로 압축할 필요가 있다고 판단할 수 있다.
전자 장치(100)는 압축된 신경망 모델에 포함된 레이어에 포함된 필터의 채널수와 해당 레이어로 입력되는 피처맵의 채널수의 동일 여부를 기초로 그 필터를 이용한 연산이 가능한 지 여부를 판단할 수 있다. 예를 들어, 제1 레이어에 포함된 제1 필터의 채널수가 제1 레이어로 입력되는 제1 피처맵의 채널수와 다른 경우, 전자 장치(100)는 제1 필터를 이용한 제1 피처맵에 대한 연산이 불가능하다고 판단할 수 있다.
또한, 제1 필터의 채널수가 제1 피처맵의 채널수와 같더라도 채널 인덱스가 매칭되지 않으면 전자 장치(100)는 제1 필터를 이용한 제1 피처맵에 대한 연산이 불가능하다고 판단할 수 있다. 예를 들어, 제1 필터는 채널 인덱스가 1인 제1 채널 및 채널 인덱스가 2인 제2 채널을 포함할 수 있다. 제1 피처맵은 채널 인덱스가 각각 1인 제3 채널과 채널 인덱스가 3인 제4 채널을 포함할 수 있다. 이 때, 제1 필터와 제1 피처맵의 채널수는 2로 동일하지만, 제1 필터의 제2 채널과 제1 피처맵의 제4 채널이 채널 인덱스가 서로 달라 매칭되지 않는다. 따라서, 전자 장치(100)는 제1 필터를 이용한 제1 피처맵에 대한 연산이 불가능하다고 판단할 수 있다.
압축된 신경망 모델을 추가적으로 압축할 필요가 있다고 판단된 경우(S150-Y), 전자 장치(100)는 압축된 신경망 모델에 포함된 레이어들에 포함된 필터의 개수나 채널수를 기초로 적어도 하나의 필터의 적어도 일부를 제거할 수 있다(S160). 예를 들어, 제1 레이어에 포함된 제1 필터의 채널수가 제1 레이어로 입력되는 제1 피처맵의 채널수와 다른 경우, 전자 장치(100)는 제1 필터의 채널수가 제1 피처맵의 채널수와 동일해지도록 제1 필터 또는 제1 피처맵의 채널수를 조절할 수 있다.
압축된 신경망 모델을 추가적으로 압축할 필요가 없다고 판단된 경우(S150-N), 전자 장치(100)는 압축된 신경망 모델에 포함된 필터를 추가적으로 제거하지 않고 압축 동작을 완료할 수 있다. 압축 동작이 완료되면, 전자 장치(100)는 압축된 신경망 모델을 사용자에게 제공할 수 있다. 예를 들어, 전자 장치(100)는 압축된 신경망 모델을 다운로드하기 위한 다운로드 데이터를 제공할 수 있다.
본 개시에서는 신경망 모델의 압축 방법의 일 예로 프루닝을 중심으로 설명하나, 신경망 모델의 압축 방법이 프루닝에 국한되는 것은 아님을 밝혀 둔다. 예를 들어, 신경망 모델의 압축 방법은 양자화(Quantization), 지식 증류(Knowledge Distillation), 모델 탐색(Neural Architecture Search), 필터 분해(Filter Decomposition)를 포함할 수 있다.
도 2는 본 개시의 일 실시예에 따른 신경망 모델의 아키텍처를 나타내는 도면이다.
도 2를 참조하면, 신경망 모델(M)은 제1 레이어(w1), 제2 레이어(w2) 및 제3 레이어(w3)를 포함할 수 있다. 제1 레이어(w1)는 제1 필터(f1) 및 제2 필터(f2)를 포함할 수 있다. 제2 레이어(w2)는 제3 필터(f3) 및 제4 필터(f4)를 포함할 수 있다. 제3 레이어(w3)는 제5 필터(f5) 및 제6 필터(f6)를 포함할 수 있다.
전자 장치(100)는 입력 값(in)을 신경망 모델(M)에 입력하여 피처맵들(h1, h2, h3)을 획득할 수 있다. 입력 값(in)은 입력 데이터이거나 입력 데이터를 기반으로 생성된 피처맵일 수 있다. 제1 레이어(w1)는 입력 값(in)을 입력 받아 제1 피처맵(h1)을 출력할 수 있다. 제2 레이어(w2)는 제1 피처맵(h1)을 입력 받아 제2 피처맵(h2)을 출력할 수 있다. 제1 피처맵(h1)과 제2 피처맵(h2)은 덧셈 연산자(A)에 의해 더해져 제3 피처맵(h3)이 생성될 수 있다. 제1 레이어(w1)는 덧셈 연산자(A)에 스킵 커넥션(skip connection)으로 연결될 수 있다. 제3 레이어(w3)는 제3 피처맵(h3)을 입력 받을 수 있다.
필터들(f1, f2)의 채널들(11, 21)은 채널 인덱스가 동일하여 서로 대응될 수 있다. 채널 인덱스는, 필터나 피처맵의 채널을 지시하는 값일 수 있다. 필터들(f1, f2)의 채널들(12, 22)은 채널 인덱스가 동일하여 서로 대응될 수 있다. 필터들(f1, f2)의 채널들(11, 21)은 입력 값(in)의 채널(1)에 대응되며, 필터들(f1, f2)의 채널들(12, 22)은 입력 값(in)의 채널(2)에 대응될 수 있다. 제1 필터(f1)는 제1 피처맵(h1)의 채널(3)에 대응되며, 제2 필터(f2)는 제1 피처맵(h1)의 채널(4)에 대응될 수 있다.
필터들(f3, f4)의 채널들(31, 41)은 채널 인덱스가 동일하여 서로 대응될 수 있다. 필터들(f3, f4)의 채널들(32, 42)은 채널 인덱스가 동일하여 서로 대응될 수 있다. 필터들(f3, f4)의 채널들(31, 41)은 제1 피처맵(h1)의 채널(3)에 대응되며, 필터들(f3, f4)의 채널들(32, 42)은 제1 피처맵(h1)의 채널(4)에 대응될 수 있다. 제3 필터(f3)는 제2 피처맵(h2)의 채널(5)에 대응되며, 제4 필터(f4)는 제2 피처맵(h2)의 채널(6)에 대응될 수 있다.
제1 피처맵(h1)의 채널(3)은 제2 피처맵(h2)의 채널(5)에 대응되며 제1 피처맵(h1)의 채널(4)은 제2 피처맵(h2)의 채널(6)에 대응될 수 있다. 피처맵들(h1, h2)의 채널들(3, 5)은 제3 피처맵(h3)의 채널(7)에 대응되며, 피처맵들(h1, h2)의 채널들(4, 6)은 제3 피처맵(h3)의 채널(8)에 대응될 수 있다.
필터들(f5, f6)의 채널들(51, 61)은 채널 인덱스가 동일하여 서로 대응될 수 있다. 필터들(f5, f6)의 채널들(52, 62)은 채널 인덱스가 동일하여 서로 대응될 수 있다. 필터들(f5, f6)의 채널들(51, 61)은 제3 피처맵(h3)의 채널(7)에 대응되며, 필터들(f5, f6)의 채널들(52, 62)은 제3 피처맵(h3)의 채널(8)에 대응될 수 있다.
제1 필터(f1)의 채널(11), 제2 필터(f2)의 채널(21), 제3 필터(f3)의 채널(31), 제4 필터(f4)의 채널(41), 제5 필터(f5)의 채널(51) 및 제6 필터(f6)의 채널(61)은 채널 인덱스가 동일할 수 있다. 채널들(11, 21, 31, 41, 51, 61)은 동일한 채널이라 지칭될 수 있다. 제1 필터(f1)의 채널(12), 제2 필터(f2)의 채널(22), 제3 필터(f3)의 채널(32), 제4 필터(f4)의 채널(42), 제5 필터(f5)의 채널(52) 및 제6 필터(f6)의 채널(62)은 채널 인덱스가 동일할 수 있다. 채널들(12, 22, 32, 42, 52, 62)은 동일한 채널이라 지칭될 수 있다.
이처럼, 신경망 모델(M)에 포함된 필터들은 상호 대응 관계를 가지고 있어서, 필터들간의 대응 관계를 고려하여 신경망 모델(M)을 프루닝할 필요가 있다. 특히, 요소별 연산자를 통해 직접적으로 연결된 레이어들의 경우, 각 레이어에 포함된 필터들의 채널 인덱스를 고려하여 대응되는 필터들을 함께 제거할 필요가 있다. 그렇지 않을 경우, 프루닝된 신경망 모델(M)에서 연산이 불가능한 레이어가 생겨남에 따라 신경망 모델(M)의 정확도가 현저히 감소할 수 있기 때문이다.
도 3은 필터들 간의 대응 관계를 고려하지 않고 프루닝된 신경망 모델(Me)을 나타내는 도면이다.
도 2와 도 3을 비교하면, 신경망 모델(M)에 구조화된 프루닝(structured pruning)이 적용됨에 따라 제1 레이어(w1)에서는 제1 필터(f1)가 제거되었고, 제2 레이어(w2)에서는 제3 필터(f3)의 채널(31)과 제4 필터(f4)의 채널(41)이 제거된 것을 알 수 있다. 제1 레이어(w1)의 필터의 개수(즉, 출력 채널의 수)는 1로 감소하였다. 따라서, 입력 값(in)이 제1 레이어(w1)로 입력되면, 제1 레이어(w1)로부터 출력되는 제1 피처맵(h1)의 채널수도 1로 감소하게 된다. 즉, 입력 값(in)을 입력 받아 제1 레이어(w1)가 출력하는 제1 피처맵(h1)에는 채널(3)이 존재하지 않게 된다.
제2 레이어(w2)의 필터의 개수는 유지되기 때문에, 제2 레이어(w2)로부터 출력되는 제2 피처맵(h2)의 채널수는 2로 유지된다. 즉, 제2 피처맵(h2)은 채널들(5, 6)을 포함한다. 따라서, 제1 피처맵(h1)과 제2 피처맵(h2)의 채널수가 달라지게 되고, 덧셈 연산자(A)를 통한 제1 피처맵(h1)과 제2 피처맵(h2) 간의 덧셈 연산이 불가능해지는 문제가 발생한다. 이러한 문제가 발생하지 않도록, 전자 장치(100)는 서로 다른 레이어에 포함된 필터들 간의 대응 관계를 고려하여 신경망 모델(M)을 프루닝할 수 있다.
도 4a는 본 개시의 일 실시예에 따른 프루닝 방법을 설명하기 위한 도면이다.
도 4a를 참조하면, 전자 장치(100)는 신경망 모델(M)에서 기설정된 연산자와 관련된 후보 레이어들(w1, w2, w3)을 식별할 수 있다. 전자 장치(100)는 후보 레이어들(w1, w2, w3) 중에서 제3 레이어(w3)를 최상위 레이어로 결정할 수 있다.
전자 장치(100)는 제3 레이어(w3)에 포함된 필터들(f5, f6) 각각의 채널별 중요도를 산출할 수 있다. 전자 장치(100)는 제5 필터(f5)의 채널별 중요도와 제6 필터(f6)의 채널별 중요도를 기초로 각 채널을 대표하는 중요도를 산출할 수 있다. 전자 장치(100)는 나머지 후보 레이어들(w1, w2)에 포함된 필터들(f1, f2, f3, f4)의 중요도는 산출하지 않을 수 있다. 전술한 바와 같이, 전자 장치(100)는 가장 유의미한 정보를 가지고 있는 최상위 레이어를 기준으로 신경망 모델(M)을 프루닝하므로, 최상위 레이어를 제외한 나머지 레이어들에 대해서는 중요도를 계산하지 않는다. 이에 따라, 모든 레이어에 대해 중요도를 계산하는 기존의 프루닝 방법에 비해 채널별 중요도 산출을 위한 시간과 리소스가 저감되는 장점이 있다.
전자 장치(100)는 산출된 채널별 중요도를 기초로 중요도가 기설정된 순위보다 낮은 채널을 타겟 채널로 결정할 수 있다. 예를 들어, 전자 장치(100)는 중요도가 가장 낮은 채널(51, 61)을 타겟 채널로 결정할 수 있다. 기설정된 순위는 사용자가 설정한 프루닝 설정값에 따라 달라질 수 있다. 예를 들어, 프루닝 설정값은 압축율을 포함할 수 있다. 압축율이 높게 설정될수록, 기설정된 순위는 높아질 수 있다. 따라서, 압축율이 높게 설정될수록, 타겟 채널로 결정되는 채널수가 증가할 수 있다.
전자 장치(100)는 후보 레이어들(w1, w2, w3)에 포함된 필터들(f1, f2, f3, f4, f5, f6) 중에서 타겟 채널에 대응되는 필터를 제거할 수 있다. 예를 들어, 전자 장치(100)는 최상위 레이어인 제3 레이어(w3)에서 타겟 채널과 채널 인덱스가 동일한 채널을 제거할 수 있다. 달리 말해, 전자 장치(100)는 타겟 채널로 결정된 채널들(51, 61)을 제거할 수 있다. 전자 장치(100)는 나머지 후보 레이어들(w1, w2)에서는 타겟 채널에 대응되는 필터들(f1, f3)을 삭제할 수 있다. 즉, 전자 장치(100)는 최상위 레이어(w3)에 대해서는 채널 단위로 프루닝을 적용하고, 나머지 후보 레이어들(w1, w2)에 대해서는 필터 단위로 프루닝을 적용할 수 있다. 한편, 본 개시의 전자 장치(100)는 구조화된 프루닝(structured pruning)을 이용하여 신경망 모델에 프루닝을 적용할 수 있다. 구조화된 프루닝이란, 가중치를 블록 단위, 채널 단위 또는 필터 단위로 삭제하는 기법을 말한다.
도 4b는 도 4a의 신경망 모델(M)이 프루닝된 모습을 나타내는 도면이다.
도 4a와 도 4b를 비교하면, 프루닝에 따라 제1 필터(f1), 제3 필터(f3), 제5 필터(f5)의 채널(51), 및 제6 필터(f6)의 채널(61)이 제거된 것을 알 수 있다.
전자 장치(100)는 프루닝된 신경망 모델(M1)을 추가적으로 프루닝할 필요가 있는지 판단할 수 있다. 전자 장치(100)는 프루닝된 신경망 모델(M1)에 연산이 불가능한 레이어가 존재하는지 판단할 수 있다. 예를 들어, 제1 레이어의 채널수와 제1 레이어로 입력되는 피처맵의 채널수가 다른 경우, 전자 장치(100)는 제1 레이어에서의 연산이 불가능하다고 판단할 수 있다. 구체적으로, 입력 값(in)이 제1 레이어(w1)로 입력될 경우, 제1 레이어(w1)로부터 출력된 피처맵(h1')의 채널수(즉, 1)와 제2 레이어(w2)의 채널수(즉, 2)가 다르게 되어 제2 레이어(w2)에서의 연산이 불가능하다. 이에 따라, 제2 레이어(w2)는 에러를 출력할 수 있다. 제2 레이어(w2)에서의 연산이 불가능하므로, 덧셈 연산자(A)를 통한 제1 레이어(w1)와 제2 레이어(w2)간의 덧셈 연산도 불가능할 수 있다.
따라서, 전자 장치(100)는 프루닝된 신경망 모델(M1)에서 필터를 추가로 제거할 수 있다. 예를 들어, 전자 장치(100)는 제4 필터(f4)의 채널수가 피처맵(h1')의 채널수와 같아지도록, 제4 필터(f4)의 채널(41)을 제거할 수 있다.
도 4c는 도 4b의 프루닝된 신경망 모델(M1)이 추가적으로 프루닝된 모습을 나타내는 도면이다.
도 4b와 도 4c를 비교하면, 제4 필터(f4)의 채널(41)이 제거된 것을 알 수 있다. 제4 필터(f4)의 채널수와 피처맵(h1')의 채널수가 동일하므로, 제2 레이어(w2)는 정상적으로 피처맵(h2')을 출력할 수 있다. 또한, 피처맵들(h1', h2')의 채널수는 동일하므로 덧셈 연산자(A)를 통한 덧셈 연산이 가능하다.
타겟 채널을 결정하는 방법과 관련하여, 레이어에 포함된 필터의 채널별 중요도를 기초로 타겟 채널을 결정하는 제1 방법과, 피처맵의 채널별 중요도를 기초로 타겟 채널을 결정하는 제2 방법이 있다. 제1 방법에 대해서는 도 4a를 참조하여 상술하였는 바 그 상세한 설명은 생략한다.
제2 방법과 관련하여, 다시 도 4a를 참조하면, 전자 장치(100)는 제3 레이어(w3)로 입력되는 제3 피처맵(h3)의 채널별 중요도를 기초로 타겟 채널을 결정할 수 있다. 예를 들어, 제3 피처맵(h3)의 채널(7)이 중요도가 가장 낮은 경우, 전자 장치(100)는 채널(7)에 대응되는 제5 필터(f5)의 채널(51)과 제6 필터(f6)의 채널(61)을 타겟 채널로 결정할 수 있다. 또한, 전자 장치(100)는 제3 레이어(w3)가 제3 피처맵(h3)을 입력 받아 출력한 제4 피처맵의 채널별 중요도를 기초로 타겟 채널을 결정할 수 있다. 제4 피처맵은 피처맵들(h1, h2, h3)보다 레벨이 높으므로, 보다 유의미한 정보를 포함한다고 볼 수 있다. 따라서, 전자 장치(100)는 레이어(w1, w2, w3)에 포함된 필터들 중에서 제4 피처맵으로부터 결정된 타겟 채널과 대응되는 필터들을 제거할 수 있다.
제1 방법은 입력 데이터 없이도 신경망 모델을 프루닝할 수 있다는 점에서 제2 방법과 차이가 있다. 구체적으로, 제1 방법에서는 피처맵을 기초로 타겟 채널을 결정하지 않기 때문에 신경망 모델에 입력 데이터를 입력할 필요가 없다.
도 5는 본 개시의 일 실시예에 따른 프루닝 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 신경망 모델(Mf)은 제3 레이어(w3)를 포함하지 않는 점을 제외하면 도 2의 신경망 모델(M)과 동일하다. 전자 장치(100)는 입력 값(in)을 신경망 모델(Mf)에 입력하여 피처맵들(h1, h2, h3)을 획득할 수 있다.
전자 장치(100)는 하이 레벨 피처의 채널별 중요도를 기초로 타겟 채널을 결정할 수 있다. 전자 장치(100)는 피처맵들(h1, h2, h3) 중 가장 레벨이 높은 제3 피처맵(h3)의 채널별 중요도를 산출할 수 있다. 예를 들어, 전자 장치(100)는 채널(8) 보다 중요도가 낮은 채널(7)을 타겟 채널로 결정할 수 있다.
전자 장치(100)는 후보 레이어들(w1, w2)에서 포함된 필터들(f1, f2, f3, f4) 중에서 채널(7)에 대응되는 필터(f1, f3)를 제거함으로써 신경망 모델(Mf)을 프루닝할 수 있다. 그리고 전자 장치(100)는 도 4c와 같이 추가적인 프루닝을 수행할 수 있다.
한편, 설명의 편의상 필터의 크기가 1x1인 것을 예로 들었으나, 필터의 크기가 그보다 큰 경우에도 본 개시에 따른 프루닝 방법이 그대로 적용될 수 있다. 이 때, 레이어의 입력 피처맵과 출력 피처맵의 크기가 동일해지도록 각 레이어의 입력 피처맵에 대해 세임 패딩(same padding)이 적용될 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 6을 참조하면, 전자 장치(100)는 통신 인터페이스(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다. 예로, 전자 장치(100)는 물리적 서버 또는 클라우드 서버로 구현될 수 있다.
통신 인터페이스(110)는 적어도 하나의 통신 회로를 포함하며, 다양한 유형의 외부 장치와 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(110)는 외부 장치로부터 프루닝을 적용할 원본 모델, 원본 모델에 대한 프루닝 설정값을 수신할 수 있다. 외부 장치는 사용자 장치일 수 있다. 사용자 장치는, 개인용 컴퓨터 및 모바일 장치를 포함할 수 있다. 사용자 장치는 사용자로부터 신경망 모델, 신경망 모델에 대한 프루닝 설정값을 입력 받아 통신 인터페이스(110)로 전송할 수 있다.
통신 인터페이스(110)는 와이파이 통신 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 및 유선 이더넷(Ethernet) 중 적어도 하나를 포함할 수 있다.
메모리(120)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다. 특히, 메모리(120)는 원본모델을 프루닝하기 위한 인스트럭션(instruction)을 저장할 수 있다. 메모리(120)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리) 또는 휘발성 메모리 등으로 구현될 수 있다.
프로세서(130)는 메모리(120)와 전기적으로 연결되어 전자 장치(100)의 전반적인 기능 및 동작을 제어할 수 있다. 프로세서(130)는 메모리(120)에 저장된 인스트럭션을 실행함으로써 전자 장치(100)를 제어할 수 있다.
프로세서(130)는 신경망 모델에 포함된 레이어들 중에서 기설정된 연산자와 관련된 후보 레이어들을 식별할 수 있다. 후보 레이어들은, 기설정된 연산자와 직접 연결된 제1 레이어들 및 제1 레이어들 사이에 존재하는 제2 레이어를 포함할 수 있다. 예를 들어, 도 2의 신경망 모델(M)의 제1 피처맵(h1)과 덧셈 연산자(A) 사이에 다수의 레이어가 존재할 수 있다. 제2 레이어는, 예를 들어, 제1 피처맵(h1)과 덧셈 연산자(A) 사이에 존재하는 다수의 레이어들 중 덧셈 연산자(A)와 직접 연결되지 않은 레이어일 수 있다.
프로세서(130)는 후보 레이어들 중에서 최상위 레이어와 관련된 중요도를 획득할 수 있다.
프로세서(130)는 획득된 중요도를 기초로 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정할 수 있다.
프로세서(130)는 후보 레이어들에 포함된 필터들 중에서 타겟 채널에 대응되는 필터를 제거함으로써 신경망 모델을 프루닝할 수 있다. 프로세서(130)는 채널 단위로 최상위 레이어를 프루닝하고, 필터 단위로 최상위 레이어를 제외한 다른 후보 레이어들을 프루닝할 수 있다.
프로세서(130)는 프루닝된 신경망 모델을 추가적으로 프루닝할 필요가 있는지 판단할 수 있다. 프로세서(130)는 프루닝된 신경망 모델에 연산이 불가능한 레이어가 존재하는지 판단할 수 있다. 프루닝된 신경망 모델에 연산이 불가능한 레이어가 존재한다고 판단되면, 프로세서(130)는 프루닝된 신경망 모델을 추가적으로 프루닝할 필요가 있다고 판단할 수 있다.
프로세서(130)는 프루닝된 신경망 모델을 추가적으로 프루닝할 필요가 있다고 판단된 경우, 프루닝된 신경망 모델에 포함된 레이어들에 포함된 필터의 개수나 채널수를 기초로 적어도 하나의 필터의 적어도 일부를 제거할 수 있다.
이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어로 구현되는 경우, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
상술한 본 개시의 다양한 실시 예들에 따른 처리 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 처리 동작을 특정 기기가 수행하도록 할 수 있다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.
100: 전자 장치 110: 통신 인터페이스
120: 메모리 130: 프로세서

Claims (17)

  1. 전자 장치에 의해 수행되는, 신경망 모델을 압축하는 방법에 있어서,
    상기 신경망 모델에서 기설정된 연산자와 관련된 레이어들을 식별하는 단계;
    상기 식별된 레이어들 중에서 최상위 레이어와 관련된 중요도-상기 중요도는, 상기 최상위 레이어에 포함된 필터의 채널별 중요도 또는 상기 최상위 레이어로 입력되는 피처맵의 채널별 중요도 중 적어도 하나를 포함함-를 획득하되, 상기 최상위 레이어를 제외한 나머지 레이어와 관련된 중요도는 획득하지 않는 단계;
    상기 중요도를 기초로 상기 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정하는 단계;
    상기 식별된 레이어들 각각에서 상기 타겟 채널에 대응되는 필터를 함께 제거함으로써 상기 신경망 모델을 압축하는 단계;
    상기 압축된 신경망 모델의 상기 식별된 레이어들 중에서 연산불가능 레이어가 존재하는지 판단하는 단계; 및
    상기 연산불가능 레이어가 존재한다고 판단된 경우, 상기 연산불가능 레이어에 포함되며 상기 타겟 채널에 대응되지 않는 필터들 중에서 상기 연산불가능 레이어의 이전 레이어에 대응되지 않는 필터를 제거하는 단계를 포함하는
    방법.
  2. 제1 항에 있어서,
    상기 타겟 채널은,
    상기 최상위 레이어에 포함된 필터의 채널들 중 중요도의 순위가 기설정된 순위보다 작거나, 상기 피처맵의 채널들 중 중요도의 순위가 기설정된 순위보다 작은 채널에 대응되는
    방법.
  3. 제1 항에 있어서,
    상기 타겟 채널에 대응되는 필터는,
    상기 최상위 레이어에 포함된 필터들 중에서 상기 타겟 채널과 채널 인덱스가 동일한 제1 필터, 및
    상기 최상위 레이어를 제외한 상기 식별된 레이어들에 포함된 필터들 중에서 상기 타겟 채널에 대응되는 제2 필터를 포함하는
    방법.
  4. 제1 항에 있어서,
    상기 최상위 레이어는,
    채널 단위로 프루닝(pruning)되고,
    상기 최상위 레이어를 제외한 상기 식별된 레이어들은,
    필터 단위로 프루닝되는 것을 특징으로 하는
    방법.
  5. 삭제
  6. 삭제
  7. 제1 항에 있어서,
    상기 기설정된 연산자는,
    요소별 연산자(element-wise operator)를 포함하고,
    상기 식별된 레이어들은,
    상기 기설정된 연산자와 직접 연결된 제1 레이어들, 및
    상기 제1 레이어들 사이에 존재하는 제2 레이어를 포함하는
    방법.
  8. 제7 항에 있어서,
    상기 제1 레이어들은,
    상기 기설정된 연산자에 스킵 커넥션으로 연결되는 레이어를 포함하는
    방법.
  9. 신경망 모델을 압축하는 전자 장치에 있어서,
    적어도 하나의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 작동적으로 연결된 프로세서;를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 신경망 모델에서 기설정된 연산자와 관련된 레이어들을 식별하고,
    상기 식별된 레이어들 중에서 최상위 레이어와 관련된 중요도-상기 중요도는, 상기 최상위 레이어에 포함된 필터의 채널별 중요도 또는 상기 기설정된 연산자를 통해 생성되어 상기 최상위 레이어로 입력되는 피처맵의 채널별 중요도를 포함함-를 획득하되, 상기 최상위 레이어를 제외한 나머지 레이어와 관련된 중요도는 획득하지 않고,
    상기 중요도를 기초로 상기 최상위 레이어에 포함된 필터의 채널들 중에서 타겟 채널을 결정하고,
    상기 식별된 레이어들 각각에서 상기 타겟 채널에 대응되는 필터를 함께 제거함으로써 상기 신경망 모델을 압축하고,
    상기 압축된 신경망 모델의 상기 식별된 레이어들 중에서 연산불가능 레이어가 존재하는지 판단하고,
    상기 연산불가능 레이어가 존재한다고 판단된 경우, 상기 연산불가능 레이어에 포함되며 상기 타겟 채널에 대응되지 않는 필터들 중에서 상기 연산불가능 레이어의 이전 레이어에 대응되지 않는 필터를 제거하는
    전자 장치.
  10. 제9 항에 있어서,
    상기 타겟 채널은,
    상기 최상위 레이어에 포함된 필터의 채널들 중 중요도의 순위가 기설정된 순위보다 작거나, 상기 피처맵의 채널들 중 중요도의 순위가 기설정된 순위보다 작은 채널에 대응되는
    전자 장치.
  11. 제9 항에 있어서,
    상기 타겟 채널에 대응되는 필터는,
    상기 최상위 레이어에 포함된 필터들 중에서 상기 타겟 채널과 채널 인덱스가 동일한 제1 필터, 및
    상기 최상위 레이어를 제외한 상기 식별된 레이어들에 포함된 필터들 중에서 상기 타겟 채널에 대응되는 제2 필터를 포함하는
    전자 장치.
  12. 제9 항에 있어서,
    상기 최상위 레이어는,
    채널 단위로 프루닝되고,
    상기 최상위 레이어를 제외한 상기 식별된 레이어들은,
    필터 단위로 프루닝되는 것을 특징으로 하는
    전자 장치.
  13. 삭제
  14. 삭제
  15. 제9 항에 있어서,
    상기 기설정된 연산자는,
    요소별 연산자(element-wise operator)를 포함하고,
    상기 식별된 레이어들은,
    상기 기설정된 연산자와 직접 연결된 제1 레이어들, 및
    상기 제1 레이어들 사이에 존재하는 제2 레이어를 포함하는
    전자 장치.
  16. 제15 항에 있어서,
    상기 제1 레이어들은,
    상기 기설정된 연산자에 스킵 커넥션으로 연결되는 레이어를 포함하는
    전자 장치.
  17. 제1 항의 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능 기록매체.
KR1020230031075A 2023-03-09 2023-03-09 신경망 모델 압축 방법 및 이를 수행하는 장치 KR102629142B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230031075A KR102629142B1 (ko) 2023-03-09 2023-03-09 신경망 모델 압축 방법 및 이를 수행하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230031075A KR102629142B1 (ko) 2023-03-09 2023-03-09 신경망 모델 압축 방법 및 이를 수행하는 장치

Publications (1)

Publication Number Publication Date
KR102629142B1 true KR102629142B1 (ko) 2024-01-25

Family

ID=89721735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230031075A KR102629142B1 (ko) 2023-03-09 2023-03-09 신경망 모델 압축 방법 및 이를 수행하는 장치

Country Status (1)

Country Link
KR (1) KR102629142B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220045424A (ko) * 2020-10-05 2022-04-12 삼성전자주식회사 인공 신경망을 압축하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220045424A (ko) * 2020-10-05 2022-04-12 삼성전자주식회사 인공 신경망을 압축하는 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jielei Wang et al., Filter pruning with a feature map entropy importance criterion for convolution neural networks compressing, Neurocomputing 461, 41-54pages (2021.)* *

Similar Documents

Publication Publication Date Title
CN106777229B (zh) 一种个性化推荐实时性测试方法、装置及电子设备
CN108717393B (zh) 一种应用程序测试方法及移动终端
EP3306475B1 (en) System and method for predicting disk failure
US11775806B2 (en) Method of compressing neural network model and electronic apparatus for performing the same
US10901825B2 (en) Implementing a storage drive utilizing a streaming mode
US20150242564A1 (en) Data generating method for 3d printing, method for printing a 3d object, and system for processing 3d printing data
CN103970110A (zh) Can解析方法、装置及系统
US10884653B2 (en) Implementing a mapping between data at a storage drive and data blocks at a host
CN111078551A (zh) 一种全链路测试方法、装置、系统及计算机可读存储介质
KR102629142B1 (ko) 신경망 모델 압축 방법 및 이를 수행하는 장치
CN114826768A (zh) 应用大数据和ai技术的云端漏洞处理方法及ai分析系统
CN110597461A (zh) 块链式账本中的数据存储方法、装置及设备
CN116360704A (zh) 一种内核参数确定方法、装置、存储介质及电子设备
US11783852B2 (en) Information processing device, information processing method, and information processing program
KR102603427B1 (ko) 신경망 모델을 최적화하는 방법 및 이를 수행하는 장치
CN114356218B (zh) Flash存储器的数据纠错方法、设备以及介质
CN111239054A (zh) 一种光谱分析模型应用方法和装置
US20180203426A1 (en) Conversion of a procedural process model to a hybrid process model
CN108958658B (zh) 一种目标数据的获取方法及装置
US9501766B2 (en) Generating a storage drive qualification test plan
CN115543718A (zh) 一种硬盘读写测试的方法、装置、设备及可读介质
KR102585838B1 (ko) 신경망 모델 경량화 방법 및 이를 수행하는 전자 장치
US10726877B2 (en) System and method for generating a compression invariant motion timeline
CN117501300A (zh) 图像处理方法和图像处理装置
US9838032B2 (en) Data compression device, data compression method, and computer program product

Legal Events

Date Code Title Description
GRNT Written decision to grant