WO2019107900A1 - 컨볼루션 신경망 내 필터 프루닝 장치 및 방법 - Google Patents

컨볼루션 신경망 내 필터 프루닝 장치 및 방법 Download PDF

Info

Publication number
WO2019107900A1
WO2019107900A1 PCT/KR2018/014788 KR2018014788W WO2019107900A1 WO 2019107900 A1 WO2019107900 A1 WO 2019107900A1 KR 2018014788 W KR2018014788 W KR 2018014788W WO 2019107900 A1 WO2019107900 A1 WO 2019107900A1
Authority
WO
WIPO (PCT)
Prior art keywords
filter
similarity
pruning
similar
pruned
Prior art date
Application number
PCT/KR2018/014788
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020180145855A external-priority patent/KR102225308B1/ko
Application filed by 주식회사 날비컴퍼니 filed Critical 주식회사 날비컴퍼니
Publication of WO2019107900A1 publication Critical patent/WO2019107900A1/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

Definitions

  • a filter pruning apparatus in a convolution neural network includes a calculation unit for calculating a similarity between filters included in a convolution layer of any one of a plurality of convolutional layers in a convolutional neural network, ; And a pruning unit for selectively pruning any one of the two filters included in each similar filter pair for at least one similar filter pair having similarity exceeding the threshold similarity.
  • the calculation unit may further include a weighted tensor vectorization unit for normalizing the weighted tensor vectorized for each filter with respect to the weighted tensor of any one of the convolutional layers to generate a normalized matrix,
  • the similarity matrix including the similarity between the filters can be generated to calculate the similarity.
  • FIG. 2 is a diagram showing a schematic configuration of a filter pruning apparatus in a convolutional neural network according to an embodiment of the present invention.
  • FIG. 11 is a flow diagram illustrating an operation of a convolutional neural network filter pruning method according to an embodiment of the present invention.
  • FIG. 2 is a diagram showing a schematic configuration of a filter pruning apparatus 10 in a convolutional neural network according to an embodiment of the present invention.
  • 3 is a diagram for explaining a pruning process by the filter pruning apparatus 10 in the convolutional neural network according to the embodiment of the present invention.
  • FIG. 3 is a diagram illustrating parameters (parameters) that are removed with a filter pruned in a filter pruning device 10 in a convolutional neural network according to an embodiment of the present invention.
  • the pruning unit 12 calculates, for each of a plurality of convolutional layers in the convolutional neural network CNN, a filter included in each convolutional layer before calculating the similarities between the filters in the calculation unit 11, A filter having a norm size smaller than a preset norm size can be pruned as at least a part of the filters.
  • a similar matrix ( ) Can be generated through the following process.
  • Equation (3) A similarity matrix, A normalized matrix, Is a normalized matrix (Transposed matrix).
  • the pruning section 12 may set the similarity corresponding to the pruned filter in the similar matrix to zero and exclude it from consideration. That is, the pruning unit 12 sets the similarity corresponding to the pruned filter in the similar matrix to zero so that the pruned filter no longer belongs to a similar filter pair having similarity exceeding the critical similarity ) can do.
  • the pruning unit 12 selectively prunes any one of the two filters included in the most similar filter pair, it is possible to prune a filter having a relatively small norm size among the two filters.
  • the initial value is an empty set ( ). ≪ / RTI >
  • the degree of similarity between the filters included in any one convolution layer The initial value is set to 0, where The value can have a value between 1 and n.
  • the apparatus 10 may include a layout normalization unit (not shown).
  • the present invention is not limited thereto. May be applied equally to each of a plurality of convolution layers in a CNN convolutional neural network.
  • the pruning method proposed here can be said to be effective. That is, even if any one of the similar output feature maps is lost due to pruning of the similar filter by the present apparatus 10, similar output characteristics remaining through re-learning (retraining) The performance of the CNN on which the filter pruning has been performed can be restored by moving it to be connected to the map.
  • the filter pruning method proposed in the present application it is possible to provide a neural network having a smaller size than that of the existing neural network while minimizing the performance degradation compared to the previous neural network (existing neural network).
  • the proposed method only the threshold similarity value, which is a hyper-parameter commonly applied to each convolution layer, is set, and a pruned network that automatically minimizes the performance degradation by applying the algorithm 1 proposed in the present invention You can provide less effort.
  • the filter pruning method in the convolutional neural network shown in Fig. 11 can be performed by the filter pruning apparatus 10 (this apparatus) in the convolutional neural network described above. Therefore, even if omitted below, the description of the filter pruning apparatus 10 (the present apparatus) in the convolutional neural network can be equally applied to the description of the filter pruning method in the convolutional neural network.
  • a method for filtering a convolutional neural network filter includes, before step S11, for each of a plurality of convolution layers, And pruning a filter having a norm size smaller than the set norm size.
  • a method of filtering a convolutional neural network filter includes a step of performing batch normalization after a convolution layer of any one of a plurality of convolutional layers, The method comprising the steps of:
  • the batch normalization may be performed by removing the parameters related to the filter pruned by step S12 and the feature map of the filter pruned before S11.
  • the above-described convolutional neural network filter pruning method may also be implemented in the form of a computer program or application executed by a computer stored in a recording medium.
  • the present invention can be implemented in the form of an application stored in a recording medium included in a server held by a mobile device such as a smart phone, a tablet, or the like, or an application store providing an application to such a mobile device.
  • the present invention can be implemented in various forms such as a form of software operating in an embedded device / server, a form of a software library used in an application running on an embedded device / server, and a form implemented by a hardware chip.

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

컨볼루션 신경망(CNN) 내 필터 프루닝 방법에 관한 것이며, 컨볼루션 신경망 내 필터 프루닝 방법은, (a) 컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산하는 단계; 및 (b) 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 단계를 포함할 수 있다.

Description

컨볼루션 신경망 내 필터 프루닝 장치 및 방법
본원은 컨볼루션 신경망 내 필터 프루닝 장치 및 방법에 관한 것이다. 특히, 컨볼루션 신경망 내 필터를 필터 간의 유사도를 이용하여 프루닝하는 장치 및 방법에 관한 것이다.
컨볼루션 신경망(합성곱 신경망, convolutional neural networks, CNN)을 사용하는 모바일 애플리케이션의 출현과 함께, 스마트폰 등에 대한 클라이언트측 추론의 필요성이 계속해서 커지고 있다.
일반적으로 사용되는 CNN 아키텍처는 대부분 커다란 신경망 크기를 가지므로, 스마트폰과 같은 클라이언트측 장치에서 이러한 CNN을 사용하기 위해서는 네트워크 크기를 줄이는 것이 필수적이다.
네트워크 크기를 줄이는 방법으로서 신경망 프루닝(pruning) 기술이 존재한다. 신경망 프루닝은 네트워크의 중요하지 않은 매개변수를 제거하여 네트워크의 크기를 줄이는 기술을 의미한다.
일예로, 종래의 문헌[H. Li, A. Kadav, I. Durdanovic, H. Samet, and H. P. Graf. Pruning filters for efficient convnets. CoRR, abs/1608.08710, 2016.]에는 필터의 L1 norm을 계산한 후 가장 작은 L1 norm을 갖는 m개의 필터들을 제거하는 방식으로 CNN 프루닝을 수행하는 기술이 개시되어 있다.
그런데, 상기 문헌의 기술은 단순히 L1 norm만을 이용해 프루닝을 수행하기 때문에, 프루닝을 수행하기 이전의 신경망 대비 정확성이 떨어지고 성능 저하가 크게 발생하는 문제가 있다.
또한, 상기 문헌의 기술은 정확성 저하를 최소화하면서 높은 프루닝 비율을 얻기 위해 프루닝, 재학습 및 오분류율(misclassification rate, MCR) 평가하는 사이클을 반복적으로 수행해야 한다. 즉, 상기 문헌은 가중치 합(weight sum)을 기준으로 프루닝을 수행하는데, 이러한 경우 CNN의 각 레이어에서 얼마나 많은 필터를 제거해야 하는지 미리 알 수 없으므로, 프루닝(잘라내기)로 인한 정확도 저하를 최소화하기 위해 프루닝- 재학습 - MCR 평가를 각 레이어에서 반복적으로 수행해야 한다.
이에 따라, 상기 문헌의 기술은 신경망 크기를 줄이기 위한 프루닝 수행시 정확성 저하를 최소화하면서 높은 프루닝 비율을 달성하기 위해 오랜 시간이 소요되고 효율성이 떨어지는 문제가 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 프루닝을 수행하기 이전의 신경망(기존 신경망) 대비 성능 저하를 최소화하면서 기존 신경망보다 더 작은 크기를 갖는 신경망을 획득할 수 있는 컨볼루션 신경망 내 필터 프루닝 장치 및 방법을 제공하려는 것을 목적으로 한다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 종래기술과 같이 프루닝- 재학습 - MCR 평가를 반복 수행할 필요없이, 단번의 프루닝으로 기존 신경망 대비 성능(정확도) 저하를 최소화하면서 높은 프루닝 비율을 달성할 수 있는 컨볼루션 신경망 내 필터 프루닝 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 컨볼루션 신경망(CNN) 내 필터 프루닝 방법은, (a) 컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산하는 단계; 및 (b) 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 단계를 포함할 수 있다.
또한, 상기 (b) 단계는, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 선택적으로 프루닝할 수 있다.
또한, 상기 (a) 단계에서, 상기 유사도는, 상기 어느 하나의 컨볼루션 레이어의 가중치 텐서에 대하여 각 필터별로 벡터화한 가중치 텐서를 정규화하여 정규화된 매트릭스를 생성하고, 상기 정규화된 매트릭스를 이용해 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 포함하는 상기 유사매트릭스를 생성하여 계산될 수 있다.
또한, 상기 (b) 단계는, (b1) 상기 유사매트릭스를 토대로 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 상기 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 단계; 및 (b2) 상기 유사매트릭스에서 상기 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 단계를 포함하되, 상기 (b1) 단계와 상기 (b2) 단계는 상기 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행될 수 있다.
또한, 본원의 일 실시예에 따른 컨볼루션 신경망(CNN) 내 필터 프루닝 방법은, 상기 (a) 단계 이전에, 상기 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들 중 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝하는 단계를 더 포함할 수 있다.
또한, 상기 (b) 단계는, 상기 복수의 컨볼루션 레이어 중 상기 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들 각각에서 상기 프루닝된 필터의 특징 맵과 관련된 커널들을 제거할 수 있다.
또한, 본원의 일 실시예에 따른 컨볼루션 신경망(CNN) 내 필터 프루닝 방법은, (c) 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어 이후에 배치 정규화(Batch normalization)를 적용하는 단계를 더 포함할 수 있다. 상기 (c) 단계에서 상기 배치 정규화는, 상기 (b) 단계에 의해 프루닝된 필터 및 상기 (a) 단계 이전에 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거하여 이루어질 수 있다.
한편, 본원의 일 실시예에 따른 컨볼루션 신경망(CNN) 내 필터 프루닝 장치는, 컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산하는 계산부; 및 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 프루닝부를 포함할 수 있다.
또한, 상기 프루닝부는, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 선택적으로 프루닝할 수 있다.
또한, 상기 계산부는, 상기 어느 하나의 컨볼루션 레이어의 가중치 텐서에 대하여 각 필터별로 벡터화한 가중치 텐서를 정규화하여 정규화된 매트릭스를 생성하고, 상기 정규화된 매트릭스를 이용해 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 포함하는 상기 유사매트릭스를 생성하여 상기 유사도를 계산할 수 있다.
또한, 상기 프루닝부는, 상기 유사매트릭스를 토대로 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 상기 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하고, 상기 유사매트릭스에서 상기 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하되, 상기 어느 하나를 선택적으로 프루닝하는 과정 및 상기 유사도를 고려하지 않도록 제외하는 과정을 상기 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행할 수 있다.
또한, 상기 프루닝부는, 상기 계산부에서 유사도를 계산하기 이전에, 상기 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들 중 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝할 수 있다.
또한, 상기 프루닝부는, 상기 복수의 컨볼루션 레이어 중 상기 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들 각각에서 상기 프루닝된 필터의 특징 맵과 관련된 커널들을 제거할 수 있다.
또한, 본원의 일 실시예에 따른 컨볼루션 신경망(CNN) 내 필터 프루닝 장치는, 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어 이후에 배치 정규화(Batch normalization)를 적용하는 배치 정규화부를 더 포함할 수 있다. 상기 배치 정규화는, 상기 프루닝부에 의해 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거하여 이루어질 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 컨볼루션 신경망 내 컨볼루션 레이어에 포함된 필터들 간의 유사도를 기반으로 프루닝을 수행함으로써, 프루닝을 수행하기 이전의 신경망(기존 신경망) 대비 성능 저하를 최소화하면서(즉, 기존 신경망의 성능과 대비하여 크게 성능이 떨어지지 않도록 하면서) 기존 신경망보다 더 작은 크기를 갖는 신경망(크기를 줄인 CNN)을 획득할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝함으로써, 각 컨볼루션 레이어에서 프루닝할 필터들을 자동으로 선택해 프루닝(제거, 가지치기)하는바, 종래기술과 같이 프루닝- 재학습 - MCR 평가를 반복 수행할 필요없이, 단번의 프루닝(single pruning)으로 기존 신경망 대비 성능(정확도) 저하를 최소화하면서 높은 프루닝 비율을 달성할 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 CIFAR-10 데이터세트에서 학습된 Vgg-16 네트워크의 각 컨볼루션 레이어에서 각 필터들의 최대 유사도 분포를 나타낸 도면이다.
도 2는 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치의 개략적인 구성을 나타낸 도면이다.
도 3은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치에 의한 프루닝 과정을 설명하기 위한 도면이다.
도 4는 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치의 프루닝부에 의해 수행되는 유사도 기반의 프루닝에 대한 알고리즘을 나타낸 도면이다.
도 5는 본원의 일 실험예에 따른 CIFAR-10 데이터세트의 분류 정확도를 나타낸 도면이다.
도 6은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치에서 고려되는 임계 유사도의 설정 값에 따른 MCR 증가량을 나타낸 도면이다.
도 7은 본원에서 제안하는 방법의 성능을 종래의 문헌에 제시된 방법의 성능과 비교한 도면이다.
도 8은 도 7에 도시된 Vgg16-E 모델의 세부 정보를 나타낸 도면이다.
도 9는 본원에서 제안하는 방법과 종래의 문헌에서 제안하는 방법에 대하여, 임계 유사도의 변화에 따른 MCRI를 비교한 도면이다.
도 10a 내지 도 10f는 본원에서 제안하는 방법에 대한 효과를 시각화하여 나타낸 도면이다.
도 11은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 방법에 대한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본원은 컨볼루션 신경망(합성곱 신경망, convolutional neural networks, CNN) 내 각 컨볼루션 레이어에서 프루닝할 필터(제거할 필터)를 임계 유사도(유사도 임계값)를 이용해 자동으로 선택하고, 선택된 프루닝할 필터들에 대하여 단번의 프루닝(단일 프루닝, single pruning)을 수행할 수 있는 기술에 관한 것이다. 즉, 본원은 CNN 내 컨볼루션 레이어에 포함된 필터들 간의 유사도를 기반으로 프루닝을 수행하는 컨볼루션 신경망 내 필터 프루닝 장치 및 방법에 관한 것이다. 이러한 본원에 의하면, 기존 신경망(즉, 프루닝을 수행하기 이전의 신경망, 원본 신경망) 대비 성능 저하를 최소화하면서 기존 신경망보다 더 작은 크기를 갖는 신경망(소규모 CNN)을 구현(제공)할 수 있다.
본원의 구체적인 설명에 앞서, 도 1은 CIFAR-10 데이터세트(dataset)에서 학습된 Vgg-16 네트워크의 각 컨볼루션 레이어에서 각 필터들의 최대 유사도(유사성, similarity) 분포를 나타낸 도면이다. 다시 말해, 도 1에는 CIFAR-10 데이터세트에서 학습된 Vgg-16 네트워크의 수정된 버전에서 각 컨볼루션 레이어의 필터들 사이(필터 쌍 사이)의 유사도 분포가 도시되어 있다.
도 1을 참조하면, 도 1에서 가로축은 필터 쌍 사이의 유사도(Similarity between filter pairs)를 나타내고, 세로축은 밀도 함수(Density function)를 나타낸다.
도 1에서는 컨볼루션 레이어 내에 유사한 필터가 많을수록(즉, 높은 유사도를 가진 필터가 많이 포함되어 있을수록) 그래프 선이 두껍게 표시(굵은 선으로 표시)될 수 있다. 이에 따르면, conv1_1, conv4_2, conv4_3, conv5_1, conv5_2 및 conv5_3의 경우, 다른 필터 쌍들과 대비하여 높은 유사도를 가진 필터(highly similar filters)가 많이 존재함을 확인할 수 있다.
본원에 의하면, 학습된 CNN의 일부 컨볼루션 레이어들에 유사한 필터들이 많이 존재하고, 각 컨볼루션 레이어 내에서 유사한 필터를 학습하는 현상이 많은CNN 아키텍처에 공통적으로 나타나는 것으로 관찰되었다.
이러한 관찰에 기반하여, 본원은 학습된 CNN의 일부 컨볼루션 레이어 내에 유사 필터(similar filters)를 중복되는 필터인 것으로 가정하여, 필터들 간의 유사도를 기반으로 유사한 필터를 프루닝(제거, 가지치기)함으로써 기존 신경망(프루닝을 수행하기 이전의 신경망, 원본 신경망) 대비 성능 저하를 최소화할 수 있는 컨볼루션 신경망 내 필터 프루닝 장치 및 방법에 대하여 제안한다.
즉, 본원은 컨볼루션 레이어에 포함된 유사 필터들에 대하여, 유사한 필터들 중 하나만 남기고 그와 중복으로 간주되는 다른 필터들을 프루닝하더라도, 기존 신경망 대비 성능 저하가 크지 않다는 점을 고려하여, 필터들 간의 유사도를 기반으로 유사 필터를 프루닝하는 기술을 제안한다.
도 2는 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치(10)의 개략적인 구성을 나타낸 도면이다. 또한, 도 3은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치(10)에 의한 프루닝 과정을 설명하기 위한 도면이다. 특히, 도 3은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치(10)에서 프루닝되는 필터와 함께 제거되는 파라미터(parameters, 매개변수)를 설명하기 위한 도면이다.
이하에서는 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치(10)를 설명의 편의상 본 장치(10)라 하기로 한다.
도 2 및 도 3을 참조하면, 본 장치(10)는 계산부(11) 및 프루닝부(12)를 포함할 수 있다.
먼저, 프루닝부(12)는 후술하는 계산부(11)에서 필터들 간의 유사도를 계산하기 이전에, 컨볼루션 신경망(CNN) 내 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들 중 적어도 일부의 필터로서 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝할 수 있다.
여기서, 미리 설정된 norm 크기는 각 컨볼루션 레이어에 포함된 필터들의 norm 크기 중 가장 큰 norm 크기를 기준으로 미리 설정된 비율로 설정될 수 있다. 여기서, 미리 설정된 비율은 일예로 % 등의 단위로 설정될 수 있으나, 이에만 한정되는 것은 아니다. 본원에서는 미리 설정된 비율이 일예로 10%(달리 표현해, 1/10)로 설정될 수 있다. 또한, 미리 설정된 norm 크기로 고려되는 norm은 일예로 L1 norm을 의미할 수 있으나, 이에 한정되는 것은 아니고, 다른 일예로 L2 norm을 의미할 수 있다.
이에 따르면, 프루닝부(12)는 컨볼루션 신경망(CNN) 내 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들의 norm 크기 중 미리 설정된 norm 크기(예를 들어, 가장 큰 norm 크기의 1/10 크기)보다 작은 norm 크기를 가지는 필터를 프루닝할 수 있다. 다시 말해, 예시적으로 프루닝부(12)는 각 컨볼루션 레이어에 포함된 필터들의 L1 norm 크기 중 가장 큰 L1 norm 크기의 1/10 크기보다 작은 L1 norm 크기를 가지는 필터를 프루닝할 수 있다.
본원에서는 각 컨볼루션 레이어에서 적어도 일부의 필터로서 매우 작은 norm 값을 가지는 필터(예를 들어, 가장 큰 norm 크기의 1/10 크기보다 작은 norm 크기를 가지는 필터)를 지우는 경우, 해당 컨볼루션 레이어에서 가장 큰 norm 값을 가지는 필터를 지우는 것보다 네트워크의 성능에 적은 영향을 미친다는 것을 실험적으로 확인하였다. 이에 근거하여, 본원에서는 각 컨볼루션 레이어에 포함된 필터들 중 적어도 일부의 필터로서 매우 작은 norm을 가지는 필터를 프루닝(제거)함으로써, 적어도 일부의 필터로서 큰 norm 크기를 가지는 필터를 프루닝하는 것에 비해 성능 저하를 줄일 수 있다.
이에 따르면, 본원에서는 프루닝부(12)에 의해 각 컨볼루션 레이어에 포함된 필터들 중 적어도 일부의 필터(즉, 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터)가 프루닝되면, 이후 적어도 일부의 필터에 대한 프루닝이 이루어진 CNN에 대하여 계산부(11)에 의한 유사도 계산 및 프루닝부(12)에 의한 후술하는 알고리즘 1의 적용에 따른 필터의 선택적 프루닝이 이루어질 수 있다. 구체적인 설명은 다음과 같다.
계산부(11)는 컨볼루션 신경망(CNN) 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산할 수 있다. 이하에서는 설명의 편의상, 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어를 Convolutional layer 1이라 표현하기로 한다.
계산부(11)에서 고려되는 컨볼루션 신경망(CNN)은 훈련된 CNN을 의미할 수 있다. 특히, 계산부(11)에서 고려되는 CNN은 프루닝부(12)에 의하여 각 컨볼루션 레이어에 포함된 필터들 중 적어도 일부의 필터(즉, 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터)가 이미 프루닝된 CNN을 의미할 수 있다.
계산부(11)는 필터들 간의 유사도를 계산하기 위해, 필터들 간의 유사도를 포함하는 유사 매트릭스(
Figure PCTKR2018014788-appb-I000001
)를 생성할 수 있다. 즉, 계산부(11)는 어느 하나의 컨볼루션 레이어(Convolutional layer 1)의 가중치 텐서(weight tensor,
Figure PCTKR2018014788-appb-I000002
)에 대하여 각 필터별로 벡터화한 가중치 텐서(
Figure PCTKR2018014788-appb-I000003
)를 정규화하여 정규화된 매트릭스(
Figure PCTKR2018014788-appb-I000004
)를 생성하고, 정규화된 매트릭스를 이용해 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 포함하는 유사매트릭스(
Figure PCTKR2018014788-appb-I000005
)를 생성하여, 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산할 수 있다.
구체적으로, 유사매트릭스(
Figure PCTKR2018014788-appb-I000006
)는 다음의 과정을 통해 생성될 수 있다.
계산부(11)는 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에 포함된 n×m×h×w 형태의 텐서
Figure PCTKR2018014788-appb-I000007
(
Figure PCTKR2018014788-appb-I000008
)를 i번째 열(column)이
Figure PCTKR2018014788-appb-I000009
인 mhw×n 형태의 텐서
Figure PCTKR2018014788-appb-I000010
(
Figure PCTKR2018014788-appb-I000011
)로 바꿀 수(Reshape) 있다.
여기서,
Figure PCTKR2018014788-appb-I000012
는 어느 하나의 컨볼루션 레이어(Convolutional layer 1)의 가중치 텐서(weight tensor)를 나타낸다. 또한,
Figure PCTKR2018014788-appb-I000013
은 어느 하나의 컨볼루션 레이어에 포함된 필터의 개수, 달리 표현하여 어느 하나의 컨볼루션 레이어에 대한 출력 특징 맵(output feature maps)의 개수를 나타낸다.
Figure PCTKR2018014788-appb-I000014
은 하나의 필터 안에 포함된 커널(kernels)의 개수, 달리 표현하여 어느 하나의 컨볼루션 레이어에 대한 입력 특징 맵(input feature maps)의 개수를 나타낸다.
Figure PCTKR2018014788-appb-I000015
는 커널의 높이를 나타내고,
Figure PCTKR2018014788-appb-I000016
는 커널의 너비를 나타낸다.
또한, 어느 하나의 컨볼루션 레이어에 포함된 각 필터에 대응하는 텐서는
Figure PCTKR2018014788-appb-I000017
로 표현될 수 있다. 달리 말해, 텐서
Figure PCTKR2018014788-appb-I000018
는 어느 하나의 컨볼루션 레이어 내 i번째 필터에 대응하는 텐서(즉, i번째 필터 텐서)를 나타낸다. 따라서, 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에 대한 가중치 텐서
Figure PCTKR2018014788-appb-I000019
Figure PCTKR2018014788-appb-I000020
개의 필터 텐서(
Figure PCTKR2018014788-appb-I000021
)로 이루어져 있을 수 있다.
여기서, 필터 텐서
Figure PCTKR2018014788-appb-I000022
를 벡터로 변형(Reshaping)시키면(달리 말해, 필터 텐서
Figure PCTKR2018014788-appb-I000023
를 벡터화하면), 필터 벡터
Figure PCTKR2018014788-appb-I000024
가 획득될 수 있다. 즉, 필터 벡터
Figure PCTKR2018014788-appb-I000025
는 필터 텐서
Figure PCTKR2018014788-appb-I000026
를 벡터화함으로써 생성되는 벡터화된 필터 텐서라 달리 표현될 수 있다.
따라서, 계산부(11)는 어느 하나의 컨볼루션 레이어의 가중치 텐서(
Figure PCTKR2018014788-appb-I000027
)에 포함된
Figure PCTKR2018014788-appb-I000028
개의 필터에 대응하는 텐서(즉, n개의 필터 텐서 Fi ) 각각을 벡터화함으로써,
Figure PCTKR2018014788-appb-I000029
개의 벡터화된 필터 텐서(즉,
Figure PCTKR2018014788-appb-I000030
개의 필터 벡터
Figure PCTKR2018014788-appb-I000031
)를 포함하는 가중치 텐서(가중치 행렬, 달리 표현해 각 필터별로 벡터화한 가중치 텐서
Figure PCTKR2018014788-appb-I000032
)를 획득할 수 있다.
이후, 계산부(11)는 어느 하나의 컨볼루션 레이어 내 각 필터별로 벡터화한 가중치 텐서
Figure PCTKR2018014788-appb-I000033
를 정규화하여 정규화된 매트릭스(
Figure PCTKR2018014788-appb-I000034
)를 생성할 수 있다.
이때, 계산부(11)는 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000035
의 생성시, 본원에서 필터들 간의 유사도 계산시 고려(사용)되는 유사도 척도(similarity measures)의 유형에 따라 서로 다른 정규화를 수행할 수 있다. 유사도 척도의 유형에는 코사인 유사도(cosine similarity) 유형 및 피어슨 상관 계수(Pearson correlation coefficient) 유형이 포함될 수 있다. 다만, 이에만 한정되는 것은 아니고, 유사도 척도로는 종래에 공지되었거나 향후 개발되는 모든 종류의 유사도 계산 기준(유사도 측정 척도)가 고려될 수 있다.
계산부(11)는 유사도 척도의 유형으로서 코사인 유사도 유형이 고려(사용)되는 경우, 열(column)이 하기 식 1로 표현되는 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000036
를 생성할 수 있다. 계산부(11)는 유사도 척도의 유형으로서 피어슨 상관 계수 유형이 고려되는 경우, 열(column)이 하기 식 2로 표현되는 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000037
를 생성할 수 있다.
[식 1]
Figure PCTKR2018014788-appb-I000038
[식 2]
Figure PCTKR2018014788-appb-I000039
상기 식 1 및 식 2에서,
Figure PCTKR2018014788-appb-I000040
는 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000041
내 i번째 열을 나타낸다.
Figure PCTKR2018014788-appb-I000042
는 벡터화된 필터 텐서, 달리 표현해 필터 벡터를 나타낸다.
Figure PCTKR2018014788-appb-I000043
은 모든
Figure PCTKR2018014788-appb-I000044
의 평균 값, 즉 벡터화한 가중치 텐서(
Figure PCTKR2018014788-appb-I000045
)에 포함된 모든 벡터화된 필터 텐서(
Figure PCTKR2018014788-appb-I000046
)의 평균 값을 나타낸다.
Figure PCTKR2018014788-appb-I000047
는 L2 norm 연산을 나타낸다.
이후, 계산부(11)는 생성된 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000048
를 이용하여 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도 정보를 포함하는 유사매트릭스
Figure PCTKR2018014788-appb-I000049
를 생성할 수 있다. 계산부(11)는 하기 식 3을 만족하도록 유사매트릭스를 생성할 수 있다.
[식 3]
Figure PCTKR2018014788-appb-I000050
상기 식 3에서,
Figure PCTKR2018014788-appb-I000051
는 유사매트릭스(similarity matrix),
Figure PCTKR2018014788-appb-I000052
는 정규화된 매트릭스,
Figure PCTKR2018014788-appb-I000053
는 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000054
의 전치 행렬(transposed matrix)을 나타낸다.
또한, n×n 형태로 표현되는 유사매트릭스
Figure PCTKR2018014788-appb-I000055
는 어느 하나의 컨볼루션 레이어에 포함된 필터들 중 i 번째 필터와 j 번째 필터 사이의 유사도를 나타내는 요소
Figure PCTKR2018014788-appb-I000056
를 갖는 매트릭스로 표현될 수 있다. 달리 말해, 유사매트릭스의
Figure PCTKR2018014788-appb-I000057
는 i 번째와 j 번째 필터 간의 유사도 정도(유사도 측정치)를 나타낸다. 이러한 유사매트릭스
Figure PCTKR2018014788-appb-I000058
는 정방대칭행렬(symmetric square matrix)이고 대각요소(diagonal elements)가 1 값을 가질 수 있다.
계산부(11)는 상기 식 3을 이용해 생성된 유사매트릭스를 기반으로 하여, 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산할 수 있다.
다시 말하자면, 계산부(11)는 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 비교하기 위해, 각 필터들에 대응하는 텐서들(즉, 필터 텐서
Figure PCTKR2018014788-appb-I000059
각각)을 벡터화한 가중치 텐서(
Figure PCTKR2018014788-appb-I000060
)에 대하여 정규화를 수행함으로써 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000061
를 생성할 수 있다. 이때, 계산부(11)는 유사도 척도의 유형에 따라 서로 다른 정규화를 수행할 수 있다. 이후, 계산부(11)는 정규화된 매트릭스
Figure PCTKR2018014788-appb-I000062
를 이용해 유사매트릭스
Figure PCTKR2018014788-appb-I000063
를 생성함으로써 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산할 수 있다.
다음으로, 프루닝부(12)는 계산부(11)에서 계산된 유사도를 고려(달리 말해, 유사매트릭스를 고려)하여, 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에 포함된 필터들 중 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝할 수 있다. 이때, 프루닝부(12)는 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 선택적으로 프루닝(제거)할 수 있다.
여기서, 임계 유사도는 본원에서 제안하는 후술하는 알고리즘 1을 중단시키는 기준으로 사용되는 하이퍼 파라미터(hyper-parameter)로서,
Figure PCTKR2018014788-appb-I000064
로 표현될 수 있다. 즉, 임계 유사도는 어느 하나의 컨볼루션 레이어에 포함된 필터들 중 프루닝하고자 하는 필터를 선택하기 위해 기준이 되는 필터간 유사도의 임계값을 의미할 수 있다. 임계 유사도는 일예로 사용자 입력에 의하여 미리 설정될 수 있으나, 이에만 한정되는 것은 아니다.
프루닝부(12)는 계산부(11)에 의해 생성된 유사매트릭스를 토대로 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝할 수 있다. 이후 프루닝부(12)는 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외할 수 있다.
예시적으로, 프루닝부(12)는 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 0으로 설정하여 미고려되도록 제외할 수 있다. 즉, 프루닝부(12)는 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 0으로 설정함으로써, 프루닝된 필터가 더 이상 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍에 속하지 않도록(미고려되도록) 할 수 있다.
프루닝부(12)는 어느 하나를 선택적으로 프루닝하는 과정 및 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 과정을 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행할 수 있다.
즉, 프루닝부(12)는 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 과정 및 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 과정을, 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 어느 하나의 컨볼루션 레이어에 포함된 필터들 내에 존재하는 경우에 한하여 반복적으로 수행할 수 있다.
또한, 프루닝부(12)는 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝할 때, 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 프루닝할 수 있다.
이때, 2개의 필터 중 상대적으로 더 작은 norm 크기를 갖는 필터를 프루닝하는 이유는, 더 큰 norm 크기를 갖는 필터가 큰 활성화(large activations)을 갖는 출력 특징 맵(output feature maps)을 만들 가능성이 더 크기 때문이라 할 수 있다.
프루닝부(12)는 이러한 반복적인 수행을 통하여, 어느 하나의 컨볼루션 레이어에 포함된 필터들 내에 유사한 필터들(similar filters)이 여럿 존재하는 것 없이 해당 유사 필터들 중 하나의 필터만 남겨지도록, 중복으로 간주되는 유사 필터들을 프루닝(제거)할 수 있다. 이때, 프루닝부(12)는 중복으로 간주되는 유사 필터들을 임계 유사도를 이용해 자동으로 선택하여 프루닝(제거)할 수 있다.
프루닝부(12)는 후술하는 알고리즘 1을 이용해 필터를 선택적으로 프루닝할 수 있다. 알고리즘 1에 대한 설명은 도 4를 참조하여 보다 쉽게 이해될 수 있다.
도 4는 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치(10)의 프루닝부(12)에 의해 수행되는 유사도 기반의 프루닝에 대한 알고리즘(알고리즘 1)을 나타낸 도면이다.
도 4를 참조하면, 알고리즘 1을 수행하기 위해 프루닝부(12)는 계산부(11)에 의해 생성된 유사매트릭스(similarity matrix,
Figure PCTKR2018014788-appb-I000065
), 임계 유사도(similarity threshold,
Figure PCTKR2018014788-appb-I000066
), 및 각 필터별로 벡터화한 가중치 텐서(가중치 행렬, weight matrix,
Figure PCTKR2018014788-appb-I000067
)를 입력(Input) 값으로 할 수 있다.
또한, 알고리즘 1의 수행 이전에, 최대 유사도(
Figure PCTKR2018014788-appb-I000068
)는 초기값이 1로 설정(
Figure PCTKR2018014788-appb-I000069
= 1)되고, 프루닝된 필터 리스트를 나타내는
Figure PCTKR2018014788-appb-I000070
는 초기값이 공집합(
Figure PCTKR2018014788-appb-I000071
)으로 설정될 수 있다. 또한, 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 나타내는
Figure PCTKR2018014788-appb-I000072
는 0으로 초기값이 설정되고, 여기서
Figure PCTKR2018014788-appb-I000073
값은 1 부터 n 사이의 값을 가질 수 있다.
프루닝부(12)는 입력 값을 토대로, 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도들 중 임계 유사도를 초과(
Figure PCTKR2018014788-appb-I000074
)하되, 그 중 가장 큰 유사도를 읽어올 수 있다(
Figure PCTKR2018014788-appb-I000075
). 다시 말해, 프루닝부(12)는 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도 값들 중 임계 유사도 값을 초과하되, 그 중 가장 큰 유사도 값을 최유사 필터 쌍에 대응하는 유사도 값으로서 읽어올 수 있다.
이후, 프루닝부(12)는 가장 큰 유사도를 가지는 필터 쌍(filter pairs, 즉, 최유사 필터 쌍) 내 필터 각각이, 어느 하나의 컨볼루션 레이어 내에서 몇번째 필터인지에 관한 값으로서 (
Figure PCTKR2018014788-appb-I000076
) 값을 읽어올 수 있다. 이때,
Figure PCTKR2018014788-appb-I000077
는 가장 큰 유사도를 가지는 필터 쌍 중 어느 한 필터가 몇번째 필터인지를 나타내는 정보이고,
Figure PCTKR2018014788-appb-I000078
는 가장 큰 유사도를 가지는 필터 쌍 중 다른 한 필터가 몇번째 필터인지를 나타내는 정보를 의미할 수 있다.
이후, 프루닝부(12)는
Figure PCTKR2018014788-appb-I000079
번째 필터의 norm 크기와
Figure PCTKR2018014788-appb-I000080
번째 필터의 norm 크기를 비교할 수 있다. 달리 말해, 프루닝부(12)는
Figure PCTKR2018014788-appb-I000081
번째 필터의 필터 벡터(
Figure PCTKR2018014788-appb-I000082
)의 크기와
Figure PCTKR2018014788-appb-I000083
번째 필터의 필터 벡터(
Figure PCTKR2018014788-appb-I000084
)의 크기를 비교할 수 있다.
이때,
Figure PCTKR2018014788-appb-I000085
번째 필터의 필터 벡터(
Figure PCTKR2018014788-appb-I000086
)의 크기 보다
Figure PCTKR2018014788-appb-I000087
번째 필터의 필터 벡터(
Figure PCTKR2018014788-appb-I000088
)의 크기가 큰 것으로 판단되는 경우(즉,
Figure PCTKR2018014788-appb-I000089
를 만족하는 것으로 판단되는 경우), 프루닝부(12)는 2개의 필터 중 norm 크기(필터 벡터의 크기)가 상대적으로 작은 필터인
Figure PCTKR2018014788-appb-I000090
번째 필터를 프루닝하기 위해,
Figure PCTKR2018014788-appb-I000091
Figure PCTKR2018014788-appb-I000092
값으로 치환(
Figure PCTKR2018014788-appb-I000093
)하여 적용할 수 있다.
반면,
Figure PCTKR2018014788-appb-I000094
번째 필터의 필터 벡터(
Figure PCTKR2018014788-appb-I000095
)의 크기 보다
Figure PCTKR2018014788-appb-I000096
번째 필터의 필터 벡터(
Figure PCTKR2018014788-appb-I000097
)의 크기가 작은 것으로 판단되는 경우(즉,
Figure PCTKR2018014788-appb-I000098
를 만족하지 않는 것으로 판단되는 경우), 프루닝부(12)는 2개의 필터 중 norm 크기(필터 벡터의 크기)가 상대적으로 작은 필터인
Figure PCTKR2018014788-appb-I000099
번째 필터를 프루닝하기 위해,
Figure PCTKR2018014788-appb-I000100
Figure PCTKR2018014788-appb-I000101
값으로 치환(
Figure PCTKR2018014788-appb-I000102
)하여 적용할 수 있다.
이후, 프루닝부(12)는
Figure PCTKR2018014788-appb-I000103
값으로 치환 적용된 필터를 프루닝된 필터 리스트를 나타내는
Figure PCTKR2018014788-appb-I000104
에 반영시킬 수 있다. 그리고, 프루닝부(12)는 유사매트릭스에서
Figure PCTKR2018014788-appb-I000105
번째 행(row)과 열(column)을 일예로 0으로 설정(변경하여 적용)할 수 있다.
이후, 프루닝부(12)는 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도들 중 임계 유사도를 초과하는 유사도를 갖는 필터 쌍이 존재하지 않도록, 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 알고리즘 1을 반복적으로 수행할 수 있다. 다시 말해, 유사 필터 쌍이 존재하는 경우에 한하여, 프루닝부(12)는 필터들 간의 유사도들 중 임계 유사도를 초과하되, 그 중 가장 큰 유사도를 갖는 필터 쌍 중 상대적으로 더 작은 norm 크기(필터 벡터 크기)를 갖는 필터를 선택적으로 프루닝하는 과정 및 유사매트릭스에서 프루닝된 필터와 관련된 행과 열을 0으로 설정하는 과정(달리 말해, 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 일예로 0으로 설정하여 제외하는 과정)을 반복적으로 수행할 수 있다.
즉, 프루닝부(12)는 알고리즘 1에 기반하여 상기의 과정을 반복적으로 수행할 때마다, 임계 유사도를 초과하면서 가장 높은 유사도를 갖는 최유사 필터 쌍에 포함된 필터 중 더 작은 norm 크기를 가지는 필터(필터 벡터)를 프루닝할 수 있다.
이러한 프루닝을 통해, 본 장치(10)는 각 컨볼루션 레이어 내에 필터 간의 유사성을 줄이고 가장 큰 norm 크기를 가지는 필터들만 남길 수 있다. 다시 말해, 이러한 프루닝을 통해, 본 장치(10)는 각 컨볼루션 레이어 내 유사 필터 쌍에 대하여 가장 큰 norm 크기를 갖는 하나의 필터만 남겨두고 그와 유사한 나머지 필터들을 프루닝함으로써, 각 컨볼루션 레이어에 유사 필터 쌍이 존재하지 않도록 하여 필터들 간의 유사도를 줄일 수 있다.
또한, 프루닝부(12)는 유사매트릭스에서 프루닝된 필터와 관련된 행과 열을 0으로 설정하는 과정 이후에, 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들 각각에서 프루닝된 필터의 특징 맵(feature map)과 관련된(연결된) 커널들을 제거할 수 있다.
즉, 어느 하나의 컨볼루션 레이어에서 특정 필터가 프루닝(제거)되면, 프루닝된 특정 필터에 대응하는 출력 특징 맵 또한 제거될 수 있다. 따라서, 프루닝부(12)는 어느 하나의 컨볼루션 레이어에 포함된 필터들 중 적어도 일부의 필터를 프루닝하는 경우, 프루닝된 필터(프루닝된 적어도 일부의 필터)에 대응하는 출력 특징 맵과 관련된 모든 연결을 제거할 수 있다. 즉, 프루닝부(12)는 어느 하나의 컨볼루션 레이어에 포함된 적어도 일부의 필터를 프루닝하고자 하는 경우, 프루닝된 필터가 속한 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들에 대하여, 프루닝된 필터의 출력 특징 맵과 관련된(연결되어 있는) 커너들을 함께 제거할 수 있다.
이러한 커널 제거 과정은 앞서 설명한 선택적으로 프루닝하는 과정 및 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 과정과 함께 반복적으로 수행될 수 있다. 즉, 선택적으로 프루닝하는 과정 및 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 과정 및 프루닝된 필터의 특징 맵과 관련된 커널을 제거하는 과정은, 어느 하나의 컨볼루션 레이어 내에 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행될 수 있다.
예시적으로, 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에서 프루닝부(12)에 의해 20개의 필터가 프루닝 되었다고 가정하자. 이러한 경우, 프루닝부(12)는 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에 후속하는 후속 컨볼루션 레이어들(Convolutional layer 2, Convolutional layer 3, …, Convolutional layer N) 각각에서 프루닝된 20개의 필터의 특징 맵(feature map)과 관련된 커널들을 제거할 수 있다.
또한, 도면에 도시하지는 않았으나, 본 장치(10)는 배치 정규화부(미도시)를 포함할 수 있다.
배치 정규화부(미도시)는 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어 이후에 배치 정규화(Batch normalization)를 적용할 수 있다. 이때, 배치 정규화는, 프루닝부(12)에 의해 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거하여 이루어질 수 있다. 여기서, 프루닝부(12)에 의해 프루닝된 필터에는 선택적인 프루닝(즉, 알고리즘 1을 이용하는 선택적인 프루닝)에 의해 프루닝된 필터 및 계산부(11)에 의한 유사도 계산 이전에 프루닝된 필터(즉, 프루닝된 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터)가 포함될 수 있다. 또한, 이러한 프루닝된 필터의 특징 맵과 관련된 파라미터라 함은 프루닝된 필터의 특징 맵에 대응하는 평균(mean), 분산(variance), 감마(gamma), 베타(beta) 중 적어도 하나를 포함하는 파라미터(parameters, 매개변수)를 의미할 수 있다.
다시 말해, 배치 정규화부(미도시)는 어느 하나의 컨볼루션 레이어 이후에 배치 정규화를 적용(수행)할 수 있다. 이때, 배치 정규화부(미도시)는 프루닝부(12)에 의해 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거함으로써 배치 정규화를 적용(수행)할 수 있다.
달리 표현하여, 배치 정규화부(미도시)는 어느 하나의 컨볼루션 레이어(Convolutional layer 1) 이후에, 어느 하나의 컨볼루션 레이어(Convolutional layer 1)의 출력 특징 맵(output feature maps 1)에 대하여 배치 정규화를 적용할 수 있다. 이에 따라, 배치 정규화가 적용된 레이어(Batch Normalization 1, 즉, 어느 하나의 컨볼루션 레이어에 대응하는 배치 정규화된 레이어)에서는 프루닝부(12)에 의해 프루닝된 필터의 특징 맵과 관련된 파라미터가 제거되어 있을 수 있다.
또한, 배치 정규화부(미도시)는 일예로 어느 하나의 컨볼루션 레이어에서 바이어스(bias) 파라미터가 사용되는 경우, 프루닝부(12)에 의해 프루닝된 필터의 인덱스에 대응하는 바이어스 파라미터를 함께 제거할 수 있다. 프루닝된 필터와 함께 제거되는 파라미터에 대한 개념적 이해는 도 3을 참조하여 보다 쉽게 이해될 수 있다.
간단히 설명하자면, 도 3에서 일예로 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에서 빨간색 영역에 속한 필터가 프루닝부(12)에 의해 프루닝되면, 프루닝부(12)는 어느 하나의 컨볼루션 레이어(Convolutional layer 1)에 후속하는 후속 컨볼루션 레이어들 각각에서, 프루닝된 필터의 특징 맵과 관련된 파라미터들(커널들)을 함께 제거할 수 있다.
이때, CNN에 배치 정규화가 적용된 경우에는 필터의 프루닝시, 배치 정규화부(미도시)에 의해 프루닝된 필터의 특징 맵과 관련된 파라미터들로서 평균, 분산, 감마, 베타 등의 파라미터가 함께 제거될 수 있다. 또한, CNN에 바이어스 파라미터가 포함되어 있는 경우에는 필터의 프루닝시, 프루닝된 필터의 인덱스에 대응하는 바이어스(bias)가 함께 제거될 수 있다.
이러한 본원에 의하면, 기존 신경망(프루닝을 수행하기 이전의 신경망, 원본 신경망) 대비 성능 저하를 최소화하면서(즉, 기존 신경망의 성능보다 크게 성능이 떨어지지 않도록 하면서) 소규모 네트워크(소규모 신경망)를 구현할 수 있다.
한편, 앞서 본 장치(10)에 대하여 설명된 내용은 CNN 컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 대해서만 적용되는 것으로 예시하였으나, 이에만 한정되는 것은 아니고, 본 장치(10)에 대하여 설명된 내용은 CNN 컨볼루션 신경망 내 복수의 컨볼루션 레이어 각각에 대하여 모두 동일하게 적용될 수 있다.
즉, 본 장치(10)의 계산부(11), 프루닝부(12) 및 배치 정규화부(미도시)에 대하여 설명된 내용은, CNN 컨볼루션 신경망 내 복수의 컨볼루션 레이어 각각에 대하여 모두 동일하게 적용될 수 있다. 다시 말해, 본 장치(10)는 복수의 컨볼루션 레이어 각각에 대하여, 계산부(11)에 의한 유사도 계산 과정, 프루닝부(12)에 의한 프루닝 과정 및 배치 정규화부(미도시)에 의한 배치 정규화 과정을 수행할 수 있다.
또한, 알고리즘 1을 이용한 선택적 프루닝시, 각 컨볼루션 레이어에서 프루닝되는 필터의 개수는 임계 유사도(
Figure PCTKR2018014788-appb-I000106
)에 의해 결정될 수 있다. 달리 표현하여, 프루닝부(12)는 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터를 선택적으로 프루닝할 수 있는데, 이때, 프루닝되는 필터의 개수는 임계 유사도(
Figure PCTKR2018014788-appb-I000107
)를 초과하는 유사도를 갖는 필터 쌍(유사 필터 쌍)의 개수와 동일(비례)할 수 있다.
또한, 유사도 측정치
Figure PCTKR2018014788-appb-I000108
의 분포는 CNN 내 복수의 컨볼루션 레이어 각각마다 상이하기 때문에, 본원에서 제안하는 알고리즘 1에 의하여 각 컨볼루션 레이어에서 프루닝된 필터의 개수는, 각 컨볼루션 레이어마다 다를 수 있다.
유사한 필터(유사 필터)가 유사한 출력 특징 맵을 생성하기 때문에, 본원에서 제안하는 프루닝 방법은 효과적이라 할 수 있다. 즉, 본 장치(10)에 의한 유사 필터의 프루닝에 의해 유사한 출력 특징 맵 중 어느 하나가 손실되더라도, 모델 용량의 관점에서 볼 때, 재학습(재훈련, retraining)을 통해 남아있는 유사한 출력 특징 맵에 연결되도록 이동시킴으로써 필터 프루닝이 수행된 CNN의 성능을 복원시킬 수 있다. 이에 따라, 본원에서 제안하는 필터 프루닝 방법에 의하면, 이전의 신경망(기존 신경망) 대비 성능 저하를 최소화하면서 기존 신경망보다 더 작은 크기를 갖는 신경망을 제공할 수 있다.
또한, 배치 정규화 과정에 의해 이전의 컨볼루션 레이어의 특징인 입력 분포(input distribution)의 불일치로 인한 내부 공분산(covariance) 이동의 영향이 사라지기 때문에, 본원에서 제안하는 필터 프루닝 방법은 피어슨 상관 계수와 같은 스케일과 이동이 불변인 유사도 척도(similarity measures)와도 잘 맞을 수 있다. 이러한 이유로, 본원에서는 본 장치(10)에서 고려하는 모든 CNN 구조에서 배치 정규화(batch normalization)를 사용할 수 있다. 즉, 본 장치(10)는 CNN에 포함된 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어 이후에 배치 정규화를 적용할 수 있다.
또한, 본원에서는 필터들 간의 유사도 계산시 유사도 척도로서 코사인 유사도(cosine similarity)과 피어슨 상관 계수(Pearson correlation coefficient)를 고려할 수 있는데, 상기 두가지의 유사도 척도 모두 [-1, 1] 사이의 유사도 값을 가질 수 있다. 따라서, 본원에서는 유사도 계산시 고려되는 유사도 척도의 유형과 관계없이, CNN에 포함된 복수의 컨볼루션 레이어 각각에 대하여 모두 동일한 임계 유사도 Sthresh를 적용(사용)할 수 있다.
이때, 앞서 설명한 바와 같이 각 컨볼루션 레이어는 필터 쌍 간의 유사도에 대하여 다른 분포를 가지므로, 각 컨볼루션 레이어에 동일한 임계 유사도 Sthresh가 적용된다 하더라도, 각 컨볼루션 레이어에서 프루닝되는 필터의 수가 서로 다를 수 있다.
또한, 본원에서는 유사도 척도로서 특히 코사인 유사도(cosine similarity)의 절대값과 피어슨 상관 계수(Pearson correlation coefficient)를 사용할 수 있으며, 이 두가지의 유사도 척도는 [0, 1] 사이의 유사도 값을 가질 수 있다. 즉, 본원은 단순히 코사인 유사도의 값과 피어슨 상관 계수의 값을 사용하는 것이 아닌, 이들의 절대값을 유사도 척도로서 사용(즉, 코사인 유사도의 절대값과 피어슨 상관 계수의 절대값을 사용)할 수 있다. 이에 따라, 본원은 절대값을 취하지 않은 유사도 척도를 사용하는 경우와 대비하여, 더 많은 수의 필터를 프루닝하더라도 재학습을 수행하였을 때 더 높은 정확도를 제공할 수 있다.
이하에서는 종래의 CNN 프루닝 기술과 대비하여, 본원에서 제안하는 CNN 프루닝 기술(즉, 본 장치에 의한 CNN 내 필터 프루닝 기술)의 성능을 입증하기 위해 수행된 실험 결과에 대하여 보다 자세히 설명하기로 한다.
도 5는 본원의 일 실험예에 따른 CIFAR-10 데이터세트의 분류 정확도(classification accuracy)를 나타낸 도면이다. 특히, 도 5는 Vgg-16의 각 컨볼루션 레이어에서 10%의 필터를 제거하고 재학습한 CIFAR-10 데이터세트의 분류 정확도를 나타낸 도면이다.
이때, 본원의 일 실험예에서는 각 컨볼루션 레이어에서 필터들 간의 유사도 정도(유사성 정도, amount of similarity)를 나타내기 위해, 일예로 각 필터의 최대 유사도의 평균을 같은 레이어의 다른 필터와 비교하였다. 도 5 의 실험예에서는 일예로 유사도 척도로서 피어슨 상관 계수(특히, 피어슨 상관 계수의 절대 값)을 사용하였다. 또한, 본원의 일 실험예에서의 베이스라인 정확도(baseline accuracy)는 89.2%일 수 있다.
도 5에서 가로축은 각 필터의 최대 유사도의 평균(Mean of each filter's max similarity among others)을 나타내고, 세로축은 10% 필터가 프루닝된 상태에서의 정확도(Accuracy)를 나타낸다. 또한, 도 5에서 베이스라인 정확도는 0.8924(89.2%)일 수 있다.
도 5에서 평균 유사도가 큰 레이어는 유사한 필터(유사 필터)가 여러 개 존재하고 있음을 나타낸다. 즉, 그래프에서 세로축 값이 큰 컨볼루션 레이어일수록, 해당 컨볼루션 레이어 내에 유사 필터가 어려 개 존재하고 있음을 의미할 수 있다.
도 5를 참조하면, 낮은 유사도를 갖는 필터를 포함하는 컨볼루션 레이어의 경우에는 분류 정확도가 크게 감소하는 것으로 나타났다. 반면, 높은 유사도를 갖는 필터를 포함하는 컨볼루션 레이어의 경우에는 분류 정확도가 약간 감소하거나 오히려 증가하는 것으로 나타났다.
즉, 앞서 도 1에서 설명한 바와 같이, 높은 유사도를 가진 필터가 여러 개 존재하는 컨볼루션 레이어(예를 들어, conv1_1, conv4_2, conv4_3, conv5_1, conv5_2 및 conv5_3)의 경우에는, 각 컨볼루션 레이어에서 10%의 필터를 제거하였을 때, 낮은 유사도를 가진 필터를 포함하는 컨볼루션 레이어(예를 들어, conv 2_2, conv3_2 등)와 대비하여 분류 정확도가 기준 정확도(Baseline Accuracy)인 0.8924 보다 높은 것으로 나타났다.
따라서, 본원은 컨볼루션 레이어에 포함된 유사 필터들에 대하여, 유사한 필터들 중 하나만 남기고 그와 중복으로 간주되는 다른 필터들을 프루닝하더라도, 기존 신경망 대비 성능 저하가 크지 않다는 점(오히려 성능이 향상될 수 있다는 점)을 고려하여, 필터들 간의 유사도를 기반으로 유사 필터를 프루닝하는 기술에 대하여 제안한다.
이때, 본원에서는 각 컨볼루션 레이어에서 프루닝하고자 하는 필터(달리 표현해, 프루닝 대상 필터)를 다음과 같이 선택하여 프루닝(제거)할 수 있다. 즉, 본원에서 제안하는 본 장치(10)는 먼저 각 컨볼루션 레이어에 포함된 필터들 중 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝 대상 필터로서 선택하여 프루닝할 수 있다. 이후 본 장치(10)는 필터 간의 유사도를 고려하여, 알고리즘 1을 이용한 유사도 기반 프루닝 방법을 통해 프루닝 대상 필터를 선택하여 프루닝할 수 있다.
즉, 본원은 CNN 내부의 유사 필터들을 제거함으로써 필터의 중복을 줄이는 CNN 내 유사 필터 프루닝 장치 및 방법에 관한 것이다. 이러한 본원은 먼저 CNN에 포함된 각 컨볼루션 레이어에서 매우 작은 norm 크기를 가지는 필터(즉, 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터)를 제거할 수 있다. 이후, 본원은 알고리즘 1을 이용해, 유사도가 매우 높은 필터 쌍들(pairs)(즉, 임계 유사도를 초과하는 유사 필터 쌍들) 각각에서, 각 필터 쌍에 대응하는 2개의 필터 중 상대적으로 norm 크기가 더 작은 어느 하나를 선택적으로 프루닝할 수 있다.
도 6은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 장치에서 고려되는 임계 유사도의 설정 값에 따른 MCR 증가량(MCRI)을 나타낸 도면이다. 즉, 도 6은 본 장치(10)에서 고려되는 임계 유사도(similarity threshold, Sthresh)의 설정 값에 따른 효과를 확인하기 위해,
Figure PCTKR2018014788-appb-I000109
를 1(unpruned)에서 0.4로 0.1만큼씩 낮출 때의 MCR 증가량을 나타낸 도면이다. 일예로, 본원의 실험에서 고려되는 CIFAR-10 데이터 세트의 Vgg-16 네트워크에 대하여,
Figure PCTKR2018014788-appb-I000110
는 1% MCRI 허용 오차 내에서 사용될 수 있다. MCR은 오분류 비율(misclassification rate)을 나타낸다.
도 6에서 coef.는 본원에서 유사도 척도로서 고려되는 피어슨 상관 계수를 의미하고, cosine은 본원에서 유사도 척도로서 고려되는 코사인 유사도를 의미한다. 또한, 가로축은 임계 유사도를 나타내고, 세로축은 베이스라인(baseline)으로부터 MCR 증가량을 나타낸다. 또한, 점선으로 표시된 'Tolerance bound(1%)'는 0% MCRI(MCR 증가량)에 해당하는 기본 MCR이 10.76%일 때의 1% 허용 오차(tolerance)를 나타낸다.
또한, 임계 유사도는 값이 클수록 프루닝 비율이 낮고, 값이 작을수록 프루닝 비율이 높을 수 있다. 달리 말해, 임계 유사도 값이 클수록 적은 수의 필터 프루닝(낮은 프루닝 비율)이 이루어지고, 임계 유사도 값이 작을수록 많은 수의 필터 프루닝(높은 프루닝 비율)이 이루어질 수 있다.
도 6을 참조하면, 임계 유사도가 높을 때에는 상대적으로 낮은 경우에 비해 MCRI가 비교적 작게 나타났다. 또한, 도면에 도시하지는 않았으나, 매우 높은 값을 갖는 임계 유사도(낮은 프루닝 비율)의 경우에는 MCRI가 0 미만인 것으로 나타났다. 이는 컨볼루션 레이어에서 높은 유사도(highly similar filters)를 갖는 필터를 프루닝(제거)할 때, 기존 신경망(필터 프루닝을 수행하지 않은 CNN) 보다 네트워크(CNN) 성능이 더 우수함을 의미할 수 있다. 이러한 현상은 후술하는 도 7에 도시된 Vgg16-F를 참조하여 확인될 수 있으며, 또한 도 5를 통해서도 확인될 수 있다.
한편, 임계 유사도의 값이 0.5 보다 작은 경우에는 임계 유사도 값이 큰 경우와 대비하여 MCR의 증가가 상대적으로 크게 나타남을 확인할 수 있다. 이는 특징 맵 프루닝 방법(feature map pruning methods)의 한계라 할 수 있다. 특징 맵 프루닝 방법은 커널 정리 방법에 비해 네트워크에서 더 큰 구조(structure)를 제거하기 때문에, 재훈련에도 불구하고, 프루닝 비율이 증가하면(즉, 임계 유사도가 낮아지면) 상당한 성능 열화가 발생할 수 있다.
따라서, 임계 유사도 값을 낮게 설정하여 성능 열화가 발생하는 이러한 상황에서 프루닝 비율을 높이기 위해, 예시적으로 본 장치(10)는 필터를 프루닝하는 방법에 의해 제거되는 구조보다 더 작은 구조를 제거하는 커널 프루닝 또는 내부 커널 프루닝 방법을 사용할 수 있다.
이러한 본원의 일 실험예에 따르면, 본 장치(10)에서 고려되는 임계 유사도는 일예로 0.5의 값으로 설정될 수 있으나, 이에 한정되는 것은 아니다.
도 7은 본원에서 제안하는 방법(즉, 본 장치에 의한 CNN 내 필터 프루닝 방법)의 성능을 종래의 문헌에 제시된 방법의 성능과 비교한 도면이다.
이때, 본원과 종래의 문헌 간의 공정한 성능 비교를 위하여, 본원의 일 실험예에서는 동일한 컨볼루션 레이어에서 같은 수의 필터를 제거하기 위해, 각각 다른 프루닝 방법을 만들었으며, 따라서 두 가지의 프루닝 방법 모두 동일한 아키텍처를 생성할 수 있다. 그런 다음, 프루닝된 네트워크에 대하여 MCRI 비교를 수행하였다.
도 7에서 다섯개의 행에 해당하는 네트워크는 종래의 문헌(Li)에서 제안하는 동일 구조를 사용하여 생성된 네트워크의 성능 실험을 한 결과를 보여준다.
즉, Vgg16-Li 내지 Vgg16-D는 종래의 문헌[H. Li, A. Kadav, I. Durdanovic, H. Samet, and H. P. Graf. Pruning filters for efficient convnets. CoRR, abs/1608.08710, 2016.]에서 제안하는 방법에 의해 프루닝된 네트워크의 예를 나타낸다. 이에 따르면, Vgg16-Li 내지 Vgg16-D에 대응하는 네트워크의 경우에는, 각 컨볼루션 레이어 내에 같은 수의 필터가 포함되어 있을 수 있다.
한편, 도 7에서 아래 세개의 행에 해당하는 네트워크는 본원에서 제안하는 구조를 사용하여 생성된 네트워크의 성능 실험을 한 결과를 보여준다.
즉, Vgg16-E 내지 Vgg16-G는 본원에서 제안하는 방법에 의해 프루닝된 네트워크의 예를 나타낸다. 이때, 본원에서는 각 컨볼루션 레이어에서 프루닝할 필터를 임계 유사도를 이용해 자동으로 선택하여 프루닝할 수 있다. 따라서, Vgg16-E 내지 Vgg16-G에 대응하는 네트워크의 경우에는, 각 컨볼루션 레이어에서 프루닝되는 필터의 개수가 각 컨볼루션 레이어마다 상이할 수 있으므로, 각 컨볼루션 레이어 내에 포함된 필터의 수의 경우 적어도 일부가 상이할 수 있다.
도 7을 참조하면, 4가지 유사도 척도(즉, 피어슨 상관 계수의 절대값, 코사인 유사도의 절대값, 피어슨 상관 계수, 코사인 유사도)의 유형에 관계없이, 본원에서 제안하는 방법이 종래의 문헌보다 MCRI이 더 작게 나타남을 확인할 수 있다. 또한, 도 7에서는 피어슨 상관 계수의 절대값이 최상의 성능을 나타냄을 확인할 수 있다.
또한, Vgg16-E는 0.54%의 MCRI에서 80.5%의 프루닝 비율을 달성하는 가장 좋은 모델 중 하나임을 보여주고 있다. 이 모델(Vgg16-E)에 대한 보다 자세한 내용은 도 8에 도시되어 있다.
도 8은 도 7에 도시된 Vgg16-E 모델의 세부 정보를 나타낸 도면이다.
도 8을 참조하면, 앞서 설명한 바와 같이 본원에서 제안하는 방법이 적용된 네트워크 모델(CNN 모델) 중 Vgg16-E의 경우에는, 프루닝 비율이 80.5%인 것으로 나타나고, 플롭 감소(Reduced Flops) 비율이 42.9인 것으로 나타났다.
도 9는 본원에서 제안하는 방법과 종래의 문헌에서 제안하는 방법에 대하여, 임계 유사도의 변화에 따른 MCRI를 비교한 도면이다. 특히, 도 9는 임계 유사도의 값이 1에서 0.4로 감소함에 따른 MCR 증가량(MCRI)을 나타낸다.
도 9에서 Ours는 본원에서 제안하는 방법을 의미하고, Li et al.은 종래의 문헌에서 제안하는 방법을 의미한다.
도 9를 참조하면, 임계 유사도의 값의 거의 모든 값에 대하여, 본원에서 제안하는 방법이 종래의 문헌에서 제안하는 가중치 기반 프루닝 방법보다 우월함을 확인할 수 있다.
그 이유는 본원에서 제안하는 방법의 경우, 임계 유사도보다 높은 유사도를 갖는 필터들에 대해서는 높은 유사도를 갖는 필터(highly similar filters)를 제거함으로써 네트워크의 불필요한 중복(redundancy)을 제거하고, 임계 유사도보다 낮은 유사도를 갖는 필터들에 대해서는 미리 설정된 norm 크기보다 작은 크기를 갖는 낮은 유사도를 갖는 필터(low similar filters)를 제거하기 때문이라 할 수 있다.
종래의 문헌에서 제안하는 가중치 합 기준은 특징 벡터(feature vector)의 L1 norm을 임의 값의 범위를 갖는 프루닝 파라미터로 사용하기 때문에, 자동으로 성능 저하를 최소화하는 프루닝된 네트워크를 제공할 수 없다. 그러므로, 종래의 문헌의 경우에는, 성능 저하를 검사하기 위해 프루닝 과정과 재훈련 과정의 사이클을 각 컨볼루션 레이어 별로 주어진 프루닝 비율에 따라 반복해야 하므로, 효율성이 떨어지는 측면이 있다.
이에 반해, 본원에서 제안하는 방법은 각 컨볼루션 레이어에 공통적으로 적용되는 하이퍼-파라미터인 임계 유사도 값만 설정하면, 본원에서 제안하는 알고리즘 1의 적용에 의해 자동으로 성능 저하를 최소화하는 프루닝된 네트워크를 적은 노력을 들여 제공할 수 있다.
또한, 본원에서는 도 1에서와 같이 각 컨볼루션 레이어에 포함된 필터 쌍 간의 유사도의 분포를 그려줌으로써 임계 유사도에 대한 적절한 값을 보다 쉽게 추정할 수 있다.
도 10a 내지 도 10f는 본원에서 제안하는 방법에 대한 효과를 시각화하여 나타낸 도면이다. 특히, 도 10a 내지 도 10f는 본원에서 제안하는 방법을 기 공지된 스타일변환 네트워크(Styletransfer network)에 적용함으로써 본원에서 제안하는 방법에 의한 효과를 시각화하여 나타낸 도면이다.
본원에서 제안하는 방법에 대한 질적인 결과로서, 본원이 일 실험예에서는 기 공지된 스타일변환(변경) 네트워크를 고려하기로 한다. 스타일변환 네트워크는 예시적으로 문헌 [J. Johnson, A. Alahi, and F. Li. Perceptual losses for real-time style transfer and super-resolution. CoRR, abs/1603.08155, 2016.]를 참조하여 이해될 수 있으며, 이하 구체적인 설명은 생략하기로 한다.
스타일변환 네트워크의 출력은 스타일화된 이미지(stylized image)이므로, 프루닝의 효과를 시각화할 수 있다. 재훈련이 없는 스타일변환 네트워크의 결과는 도 10a 내지 도 10f에 도시되어 있다.
도 10a는 원본(original) 이미지를 나타낸다. 도 10b는 본원에서 제안하는 방법에 의해 프루닝 비율이 50%인 경우(50% pruned(Ours))의 결과 이미지를 나타낸다. 도 10c는 본원에서 제안하는 방법에 의해 프루닝 비율이 75%인 경우(75% pruned(Ours))의 결과 이미지를 나타낸다. 도 10d는 스타일화된(styled) 이미지를 나타낸다. 도 10e와 도 10f는 종래의 문헌[H. Li, A. Kadav, I. Durdanovic, H. Samet, and H. P. Graf. Pruning filters for efficient convnets. CoRR, abs/1608.08710, 2016.]에서 제안하는 방법에 의해 프루닝 비율이 각각 50%인 경우(50% pruned (Li))와 75%인 경우(75% pruned (Li))의 결과 이미지를 나타낸다.
도 10a 내지 도 10f를 참조하면, 종래의 문헌(Li)에서 제안하는 방법을 적용한 경우(즉, 도 10e와 도 10f 이미지의 경우)와 비교했을 때, 본원(Ours)에서 제안하는 방법을 이용하면 동일한 프루닝 비율로 스타일화 효과(stylization effect)가 더 잘 유지됨을 확인할 수 있다. 즉, 본원에서 제안하는 방법은 종래에 공지된 기술들과 대비하여 더 효과적임을 확인할 수 있다.
이러한 본원은 동일한 컨볼루션 레이어에 유사한 필터가 중복되어 있다는 점을 고려하여, 이러한 유사한 필터를 제거함으로써 성능 저하를 최소화하면서 프루닝을 수행할 수 있다.
본원은 CNN 내 각 컨볼루션 레이어에서 프루닝될 필터(프루닝하고자 하는 필터)가 임계 유사도(달리 표현해, 유사도 임계값)에 기초하여 자동으로 선택되고, 단일 프루닝 절차를 통해 성능이 우수한 네트워크(CNN)을 획득할 수 있다.
또한, 본원의 일 실험예에 따르면, CIFAR-10 데이터세트의 Vgg-16 네트워크에서 본원에서 제안하는 방법의 적용에 의한 MCR이 기존 네트워크의 MCR에 비해 0.54 % 증가하여 80.5 %의 프루닝 비율을 달성할 수 있음을 확인하였다. 이는 MCRI가 0.77 %에서 64.3 %의 프루닝 비율을 나타내는 종래의 문헌에서 제안하는 방법보다 본원에서 제안하는 방법이 더 우수함을 의미할 수 있다.
또한, 본원의 일 실험예에 따르면, 스타일변환 네트워크에 본원에서 제안하는 방법을 적용해 프루닝 효과를 시각화하였다. 그 결과, 본원에서 제안하는 방법을 사용하면 종래의 문헌에서 제안하는 기술에 비해 동일한 프루닝 비율에 대하여 스타일화 효과가 더 잘 보존될 수 있어, 종래기술들 대비 성능이 더 우수한 기술임을 증명하였다.
다시 말해, 본원은 CNN의 필터 일부를 필터간의 연관성을 고려해 프루닝하는 기술에 관한 것이다. 이러한 본원에 의하면, 임계 유사도를 고려해 CNN 내 각 컨볼루션 레이어에서 프루닝할 필터들을 자동으로 선택할 수 있고, 기존의 CNN 대비 성능 저하를 최소화하면서 기존의 CNN보다 더 작은 크기의 CNN을 획득할 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 11은 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 방법에 대한 동작 흐름도이다.
도 11에 도시된 컨볼루션 신경망 내 필터 프루닝 방법은 앞서 설명된 컨볼루션 신경망 내 필터 프루닝 장치(10, 본 장치)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 컨볼루션 신경망 내 필터 프루닝 장치(10, 본 장치)에 대하여 설명된 내용은 컨볼루션 신경망 내 필터 프루닝 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 11을 참조하면, 단계 S11에서는 컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산할 수 있다. 여기서, 일예로 컨볼루션 신경망은 훈련된 컨볼루션 신경망일 수 있다.
또한, 단계S11에서, 유사도는, 어느 하나의 컨볼루션 레이어의 가중치 텐서 대하여 각 필터별로 벡터화한 가중치 텐서를 정규화하여 정규화된 매트릭스를 생성하고, 정규화된 매트릭스를 이용해 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 포함하는 유사매트릭스를 생성하여 계산될 수 있다.
다음으로, 단계S12에서는 어느 하나의 컨볼루션 레이어에 포함된 필터들 중에서, 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝할 수 있다.
또한, 단계S12에서는 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 선택적으로 프루닝할 수 있다.
또한, 단계S12는 유사매트릭스를 토대로 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 단계(이하 설명의 편의상 단계S12-1이라 함)를 포함할 수 있다. 또한, 단계S12는 유사매트릭스에서 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 단계(이하 설명의 편의상 단계S12-2라 함)를 포함할 수 있다.
이때, 단계S12-1 및 단계S12-2는 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행될 수 있다.
한편, 도면에 도시하지는 않았으나, 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 방법은, 단계S11 이전에, 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들 중 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝하는 단계를 포함할 수 있다.
또한, 단계S12에서는 필터를 프루닝할 때, 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들 각각에서 프루닝된 필터의 특징 맵과 관련된 커널들을 함께 제거할 수 있다.
또한, 도면에 도시하지는 않았으나, 본원의 일 실시예에 따른 컨볼루션 신경망 내 필터 프루닝 방법은, 단계S12 이후에, 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어 이후에 배치 정규화(Batch normalization)를 적용하는 단계를 포함할 수 있다.
이때, 배치 정규화는, 단계S12에 의해 프루닝된 필터 및 상기 S11 이전에 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거하여 이루어질 수 있다.
상술한 설명에서, 단계 S11 및 S12는 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시 예에 따른 컨볼루션 신경망 내 필터 프루닝 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 컨볼루션 신경망 내 필터 프루닝 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다. 예를 들어, 본원은 스마트폰, 태블릿 등과 같은 모바일 기기, 또는 이러한 모바일 기기에 애플리케이션을 제공하는 앱 스토어 등이 보유하고 있는 서버에 포함되는 기록매체에 저장된 애플리케이션의 형태로 구현될 수 있다. 본원은 임베디드 기기/서버에서 동작하는 소프트웨어 형태, 임베디드 기기/서버에서 동작하는 어플리케이션에서 사용되는 소프트웨어 라이브러리 형태, 하드웨어 칩으로 구현되는 형태 등과 같이 다양한 형태로 구현될 수 있다. 여기서, 컴퓨터라 함은, 일반 PC나 노트북뿐만 아니라, 컴퓨팅 디바이스로서 이해될 수 있는 모든 장치들을 포괄하는 넓은 개념으로 이해함이 바람직하다. 예시적으로, 본원이 적용되는 컴퓨터는 전술한 스마트폰, 태블릿 등과 같은 모바일 기기, 앱 스토어 등이 보유하고 있는 서버 장치 등과 같은 기개발된 컴퓨팅 디바이스 및 향후 개발될 컴퓨팅 디바이스를 모두 지칭할 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.

Claims (16)

  1. 컨볼루션 신경망(CNN) 내 필터 프루닝 방법으로서,
    (a) 컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산하는 단계; 및
    (b) 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 단계,
    를 포함하는 컨볼루션 신경망 내 필터 프루닝 방법.
  2. 제1항에 있어서,
    상기 (b) 단계는,
    각각의 유사 필터 쌍에 포함되는 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 선택적으로 프루닝하는 것인, 컨볼루션 신경망 내 필터 프루닝 방법.
  3. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 유사도는, 상기 어느 하나의 컨볼루션 레이어의 가중치 텐서에 대하여 각 필터별로 벡터화한 가중치 텐서를 정규화하여 정규화된 매트릭스를 생성하고, 상기 정규화된 매트릭스를 이용해 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 포함하는 상기 유사매트릭스를 생성하여 계산되는 것인, 컨볼루션 신경망 내 필터 프루닝 방법.
  4. 제3항에 있어서,
    상기 (b) 단계는,
    (b1) 상기 유사매트릭스를 토대로 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 상기 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 단계; 및
    (b2) 상기 유사매트릭스에서 상기 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하는 단계를 포함하되,
    상기 (b1) 단계와 상기 (b2) 단계는 상기 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행되는 것인, 컨볼루션 신경망 내 필터 프루닝 방법.
  5. 제1항에 있어서,
    상기 (a) 단계 이전에, 상기 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들 중 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝하는 단계,
    를 더 포함하는 컨볼루션 신경망 내 필터 프루닝 방법.
  6. 제1항에 있어서,
    상기 (b) 단계는,
    상기 복수의 컨볼루션 레이어 중 상기 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들 각각에서 상기 프루닝된 필터의 특징 맵과 관련된 커널들을 제거하는 것인, 컨볼루션 신경망 내 필터 프루닝 방법.
  7. 제5항에 있어서,
    (c) 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어 이후에 배치 정규화(Batch normalization)를 적용하는 단계,
    를 더 포함하고,
    상기 (c) 단계에서 상기 배치 정규화는, 상기 (b) 단계에 의해 프루닝된 필터 및 상기 (a) 단계 이전에 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거하여 이루어지는 것인, 컨볼루션 신경망 내 필터 프루닝 방법.
  8. 컨볼루션 신경망(CNN) 내 필터 프루닝 장치로서,
    컨볼루션 신경망 내 복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 계산하는 계산부; 및
    임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍에 대하여, 각각의 유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하는 프루닝부,
    를 포함하는 컨볼루션 신경망 내 필터 프루닝 장치.
  9. 제8항에 있어서,
    상기 프루닝부는,
    각각의 유사 필터 쌍에 포함되는 2개의 필터 중 norm 크기가 상대적으로 작은 필터를 선택적으로 프루닝하는 것인, 컨볼루션 신경망 내 필터 프루닝 장치.
  10. 제8항에 있어서,
    상기 계산부는,
    상기 어느 하나의 컨볼루션 레이어의 가중치 텐서에 대하여 각 필터별로 벡터화한 가중치 텐서를 정규화하여 정규화된 매트릭스를 생성하고, 상기 정규화된 매트릭스를 이용해 어느 하나의 컨볼루션 레이어에 포함된 필터들 간의 유사도를 포함하는 상기 유사매트릭스를 생성하여 상기 유사도를 계산하는 것인, 컨볼루션 신경망 내 필터 프루닝 장치.
  11. 제10항에 있어서,
    상기 프루닝부는,
    상기 유사매트릭스를 토대로 임계 유사도를 초과하는 유사도를 갖는 적어도 하나의 유사 필터 쌍 중 가장 큰 유사도를 갖는 최유사 필터 쌍을 선택하여, 상기 최유사 필터 쌍에 포함되는 2개의 필터 중 어느 하나를 선택적으로 프루닝하고,
    상기 유사매트릭스에서 상기 프루닝된 필터에 대응하는 유사도를 고려하지 않도록 제외하되,
    상기 어느 하나를 선택적으로 프루닝하는 과정 및 상기 유사도를 고려하지 않도록 제외하는 과정을 상기 임계 유사도를 초과하는 유사도를 갖는 유사 필터 쌍이 존재하는 경우에 한하여 반복적으로 수행하는 것인, 컨볼루션 신경망 내 필터 프루닝 장치.
  12. 제8항에 있어서,
    상기 프루닝부는,
    상기 계산부에서 유사도를 계산하기 이전에, 상기 복수의 컨볼루션 레이어 각각에 대하여, 각 컨볼루션 레이어에 포함된 필터들 중 미리 설정된 norm 크기보다 작은 norm 크기를 가지는 필터를 프루닝하는 것인, 컨볼루션 신경망 내 필터 프루닝 장치.
  13. 제8항에 있어서,
    상기 프루닝부는,
    상기 복수의 컨볼루션 레이어 중 상기 어느 하나의 컨볼루션 레이어에 후속하는 후속 컨볼루션 레이어들 각각에서 상기 프루닝된 필터의 특징 맵과 관련된 커널들을 제거하는 것인, 컨볼루션 신경망 내 필터 프루닝 장치.
  14. 제12항에 있어서,
    복수의 컨볼루션 레이어 중 어느 하나의 컨볼루션 레이어 이후에 배치 정규화(Batch normalization)를 적용하는 배치 정규화부,
    를 더 포함하고,
    상기 배치 정규화는, 상기 프루닝부에 의해 프루닝된 필터의 특징 맵과 관련된 파라미터를 제거하여 이루어지는 것인, 컨볼루션 신경망 내 필터 프루닝 장치.
  15. 제1항 내지 제7항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.
  16. 제1항의 방법을 컴퓨터에서 실행시키기 위하여 기록매체에 저장된 애플리케이션.
PCT/KR2018/014788 2017-11-28 2018-11-28 컨볼루션 신경망 내 필터 프루닝 장치 및 방법 WO2019107900A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2017-0160873 2017-11-28
KR20170160873 2017-11-28
KR1020180145855A KR102225308B1 (ko) 2017-11-28 2018-11-23 컨볼루션 신경망 내 필터 프루닝 장치 및 방법
KR10-2018-0145855 2018-11-23

Publications (1)

Publication Number Publication Date
WO2019107900A1 true WO2019107900A1 (ko) 2019-06-06

Family

ID=66665742

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/014788 WO2019107900A1 (ko) 2017-11-28 2018-11-28 컨볼루션 신경망 내 필터 프루닝 장치 및 방법

Country Status (1)

Country Link
WO (1) WO2019107900A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200257980A1 (en) * 2019-02-08 2020-08-13 International Business Machines Corporation Training optimization for neural networks with batch norm layers
CN113240085A (zh) * 2021-05-12 2021-08-10 平安科技(深圳)有限公司 模型剪枝方法、装置、设备及存储介质
CN113657421A (zh) * 2021-06-17 2021-11-16 中国科学院自动化研究所 卷积神经网络压缩方法和装置、图像分类方法和装置
EP3912106A4 (en) * 2019-01-18 2022-11-16 Nokia Technologies Oy NERVE NETWORK COMPRESSION APPARATUS AND METHOD

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160321540A1 (en) * 2015-04-28 2016-11-03 Qualcomm Incorporated Filter specificity as training criterion for neural networks
KR20160143505A (ko) * 2015-06-04 2016-12-14 삼성전자주식회사 신경망의 연산량을 줄이는 방법 및 시스템
JP6042274B2 (ja) * 2013-06-28 2016-12-14 株式会社デンソーアイティーラボラトリ ニューラルネットワーク最適化方法、ニューラルネットワーク最適化装置及びプログラム
JP2017078934A (ja) * 2015-10-20 2017-04-27 富士通株式会社 畳み込みニューラルネットワークの演算方法及び演算プログラム、情報処理装置
US20170337467A1 (en) * 2016-05-18 2017-11-23 Nec Laboratories America, Inc. Security system using a convolutional neural network with pruned filters

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6042274B2 (ja) * 2013-06-28 2016-12-14 株式会社デンソーアイティーラボラトリ ニューラルネットワーク最適化方法、ニューラルネットワーク最適化装置及びプログラム
US20160321540A1 (en) * 2015-04-28 2016-11-03 Qualcomm Incorporated Filter specificity as training criterion for neural networks
KR20160143505A (ko) * 2015-06-04 2016-12-14 삼성전자주식회사 신경망의 연산량을 줄이는 방법 및 시스템
JP2017078934A (ja) * 2015-10-20 2017-04-27 富士通株式会社 畳み込みニューラルネットワークの演算方法及び演算プログラム、情報処理装置
US20170337467A1 (en) * 2016-05-18 2017-11-23 Nec Laboratories America, Inc. Security system using a convolutional neural network with pruned filters

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3912106A4 (en) * 2019-01-18 2022-11-16 Nokia Technologies Oy NERVE NETWORK COMPRESSION APPARATUS AND METHOD
US20200257980A1 (en) * 2019-02-08 2020-08-13 International Business Machines Corporation Training optimization for neural networks with batch norm layers
CN113240085A (zh) * 2021-05-12 2021-08-10 平安科技(深圳)有限公司 模型剪枝方法、装置、设备及存储介质
CN113240085B (zh) * 2021-05-12 2023-12-22 平安科技(深圳)有限公司 模型剪枝方法、装置、设备及存储介质
CN113657421A (zh) * 2021-06-17 2021-11-16 中国科学院自动化研究所 卷积神经网络压缩方法和装置、图像分类方法和装置
CN113657421B (zh) * 2021-06-17 2024-05-28 中国科学院自动化研究所 卷积神经网络压缩方法和装置、图像分类方法和装置

Similar Documents

Publication Publication Date Title
WO2019107900A1 (ko) 컨볼루션 신경망 내 필터 프루닝 장치 및 방법
WO2021080102A1 (en) Method for training and testing adaption network corresponding to obfuscation network capable of processing data to be concealed for privacy, and training device and testing device using the same
EP4032062A1 (en) Image processing method, apparatus, electronic device and computer readable storage medium
WO2021060899A1 (ko) 인공지능 모델을 사용 기관에 특화시키는 학습 방법, 이를 수행하는 장치
WO2015115681A1 (ko) 표정 동작사전을 이용한 표정인식 방법 및 장치
WO2020096403A1 (en) Textured neural avatars
WO2020197239A1 (ko) 뉴럴 네트워크를 이용한 결측 영상 데이터 대체 방법 및 그 장치
WO2021158085A1 (en) Neural network update method, classification method and electronic device
WO2018034426A1 (ko) 커널 rdr을 이용한 태깅 말뭉치 오류 자동수정방법
WO2020242090A1 (en) Apparatus for deep representation learning and method thereof
WO2019098538A1 (en) Device and method for processing convolution operation using kernel
WO2022005090A1 (ko) 진단 결과를 제공하기 위한 방법 및 장치
WO2021261719A1 (en) Method for training obfuscation network which conceals original data to be used for machine learning and training surrogate network which uses obfuscated data generated by obfuscation network and learning device using the same and method for testing trained obfuscation network and testing device using the same
WO2022240030A1 (ko) 반려동물 생애 관리 시스템 및 그 방법
Overall et al. Powered vector method of factor analysis
WO2022240029A1 (ko) 반려동물 식별 시스템 및 그 방법
WO2020138575A1 (ko) 기계 학습 데이터 선택 방법 및 장치
WO2023287239A1 (ko) 함수 최적화 방법 및 장치
WO2023224430A1 (en) Method and apparatus for on-device personalised analysis using a machine learning model
WO2021125496A1 (ko) 전자 장치 및 그 제어 방법
WO2015182979A1 (ko) 영상 처리 방법 및 영상 처리 장치
WO2010143766A1 (ko) 동기화된 복수의 캐릭터의 동작 편집 시스템 및 방법
WO2023038414A1 (en) Information processing method, apparatus, electronic device, storage medium and program product
WO2023068821A1 (ko) 자기-지도 학습 기반의 다중 객체 추적 장치 및 방법
WO2023022321A1 (ko) 분산 학습용 서버 및 분산 학습 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18882717

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18882717

Country of ref document: EP

Kind code of ref document: A1