KR102358508B1 - 업데이트 횟수에 기초한 프루닝 방법 및 장치 - Google Patents

업데이트 횟수에 기초한 프루닝 방법 및 장치 Download PDF

Info

Publication number
KR102358508B1
KR102358508B1 KR1020200007533A KR20200007533A KR102358508B1 KR 102358508 B1 KR102358508 B1 KR 102358508B1 KR 1020200007533 A KR1020200007533 A KR 1020200007533A KR 20200007533 A KR20200007533 A KR 20200007533A KR 102358508 B1 KR102358508 B1 KR 102358508B1
Authority
KR
South Korea
Prior art keywords
updates
epoch
weight
pruning
neural network
Prior art date
Application number
KR1020200007533A
Other languages
English (en)
Other versions
KR20210093661A (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 KR1020200007533A priority Critical patent/KR102358508B1/ko
Priority to US17/153,087 priority patent/US20210224655A1/en
Publication of KR20210093661A publication Critical patent/KR20210093661A/ko
Application granted granted Critical
Publication of KR102358508B1 publication Critical patent/KR102358508B1/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/08Learning methods
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

각 에포크(epoch)마다 가중치의 업데이트 횟수를 카운트하는 단계, 및 네트워크의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 단계를 포함하는, 업데이트 횟수에 기초한 프루닝 방법 및 장치가 제공된다. 상기 방법 및 장치에 따르면, 가중치 크기(절대값)를 기준으로 가중치를 제거하는 대신 가중치의 업데이트 횟수를 기준으로 가중치를 제거함으로써 학습하지 않는 가중치를 덜 중요한 가중치로 판단하여 먼저 프루닝할 수 있고, 신경망 모델의 정확성을 유지하면서도 종래의 크기에 기초한 프루닝 방법보다 연산 속도를 효율적으로 높일 수 있으며 신경망 모델의 크기도 효율적으로 줄일 수 있다.

Description

업데이트 횟수에 기초한 프루닝 방법 및 장치{METHOD AND APPARATUS FOR PRUNING BASED ON THE NUMBER OF UPDATES}
본 발명은 인공신경망의 프루닝에 관한 것이다.
심층신경망(Deep Neural Network, DNN)은 자연어 처리, 컴퓨터 비전 작업 등 광범위한 분야의 문제에서 뛰어난 성능을 보인다. 심층신경망(DNN)을 이용해 복잡한 문제를 해결하는 데 있어서 정확도를 높이기 위해서는 심층신경망(DNN) 모델이 더 깊어지고 커져야 한다. 그러나 대규모의 심층신경망(DNN) 모델을 구동하기 위해서는 대규모의 컴퓨팅 비용과 에너지 소비가 요구된다. 특히 컴퓨팅, 메모리 자원이 제한된 모바일 환경에서 대규모의 신층신경망(DNN) 모델을 구동하는 것은 매우 어려운 일이다. 이러한 문제를 해결하기 위해 프루닝(pruning)과 같은 압축 기법들이 제안되었다.
프루닝은 정확도에 미치는 영향이 작은 가중치(weight) 연결부를 제거하고, 정확도를 회복하기 위해 네트워크를 재훈련(retraining)시키는 것이다. 대규모의 심층신경망(DNN)은 대체로 내부 중복성(redundancy)이 크기 때문에 정확도의 큰 손실 없이 모델의 크기를 감소시킬 수 있다.
종래의 프루닝 방법은 가중치 크기에 기초한 프루닝(magnitude based pruning)이다. 구체적으로, 가중치를 임의의 값으로 초기화하고 신경망을 학습시킨 후 학습된 가중치의 크기를 비교하여 목표 희소성(sparsity)을 만족시키도록 크기가 작은 가중치를 프루닝한다. 그러나 종래의 프루닝 방법에 의하면 초기값이 작게 설정된 가중치가 프루닝될 확률이 높다. 이는 큰 초기값을 가진 가중치보다 많은 학습 즉, 업데이트를 거쳐 크기가 작아진 가중치가 우선적으로 프루닝될 가능성이 있다는 것을 말한다. 가중치 별로 학습 횟수가 다르므로, 큰 값을 가진 가중치가 작은 값을 가진 가중치보다 중요하지 않을 수도 있다.
한국 공개특허공보 제10-2019-0018885호("중첩 신경망을 프루닝하는 방법 및 장치", 에스케이하이닉스 주식회사, 서울대학교산학협력단, 2019.02.26.)
전술한 문제점을 해결하기 위한 본 발명의 목적은 가중치의 크기보다 더 우선적으로 고려되어야 할 새로운 기준을 도입하여 신경망 모델의 정확성을 유지하면서 연산 속도를 효율적으로 높일 수 있으며, 신경망 모델의 크기도 효율적으로 줄일 수 있는 프루닝 방법을 제공하는 것이다.
전술한 문제점을 해결하기 위한 본 발명의 다른 목적은 가중치의 크기보다 더 우선적으로 고려되어야 할 새로운 기준을 도입하여 신경망 모델의 정확성을 유지하면서 연산 속도를 효율적으로 높일 수 있으며, 신경망 모델의 크기도 효율적으로 줄일 수 있는 프루닝 장치를 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝 방법은 각 에포크(epoch)마다 가중치의 업데이트 횟수를 카운트하는 단계와, 및 네트워크의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 단계를 포함한다.
일 측면에 따르면, 상기 업데이트 횟수를 카운트하는 단계는 제1 에포크 종료 후 가중치 값을 저장하는 단계와, 제2 에포크 종료 후 가중치 값과 상기 저장된 제1 에포크 종료 후 가중치 값을 비교하는 단계 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -와, 및 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시키는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 제1 에포크 종료 후 가중치 값을 저장하는 단계는 상기 제2 에포크가 첫 번째 학습인 경우에는 상기 가중치의 초기값을 저장할 수 있다.
일 측면에 따르면, 상기 가중치를 제거하는 단계는 상기 업데이트 횟수가 동일한 경우 크기가 더 작은 가중치를 제거할 수 있다.
일 측면에 따르면, 상기 프루닝 방법은 상기 심층신경망(DNN) 모델을 재훈련시키는(retraining) 단계를 더 포함할 수 있다.
일 측면에 따르면, 상기 심층신경망(DNN)은 콘볼루션 신경망(Convolutional Neural Network, CNN)일 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝(pruning) 장치는 각 에포크(epoch)마다 가중치의 업데이트 횟수를 카운트하는 업데이트 횟수 카운터; 및 네트워크의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 가중치 제거부를 포함한다.
일 측면에 따르면, 상기 업데이트 횟수 카운터는 제1 에포크 종료 후 가중치 값을 저장하고, 제2 에포크 종료 후 가중치 값과 상기 저장된 제1 에포크 종료 후 가중치 값을 비교하고 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -, 그리고 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시킬 수 있다.
일 측면에 따르면, 상기 제1 에포크 종료 후 가중치 값을 저장하는 것은 상기 제2 에포크가 첫 번째 학습인 경우에는 상기 가중치의 초기값을 저장하는 것일 수 있다.
일 측면에 따르면, 상기 가중치 제거부는 상기 업데이트 횟수가 동일한 경우 크기가 더 작은 가중치를 제거할 수 있다.
일 측면에 따르면, 상기 프루닝 장치는 상기 심층신경망(DNN) 모델을 재훈련시키는(retraining) 학습부를 더 포함할 수 있다.
일 측면에 따르면, 상기 심층신경망(DNN)은 콘볼루션 신경망(Convolutional Neural Network, CNN)일 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 또 다른 실시예에 따른 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝(pruning) 장치는 각 에포크(epoch)마다 가중치의 업데이트 횟수를 카운트하고, 네트워크의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 프로세서를 포함한다.
상기 장치는 가중치 값을 저장하는 메모리를 더 포함할 수 있고, 상기 업데이트 횟수를 카운트하는 것은 제1 에포크 종료 후 가중치 값을 상기 메모리에 저장하고, 제2 에포크 종료 후 가중치 값과 상기 메모리에 저장된 제1 에포크 종료 후 가중치 값을 비교하고 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -, 그리고 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시키는 것일 수 있다.
일 측면에 따르면, 상기 제1 에포크 종료 후 가중치 값을 상기 메모리에 저장하는 것은 상기 제2 에포크가 첫 번째 학습인 경우에는 상기 가중치의 초기값을 상기 메모리에 저장하는 것일 수 있다.
일 측면에 따르면, 상기 프로세서는 상기 업데이트 횟수가 동일한 경우 크기가 더 작은 가중치를 제거할 수 있다.
일 측면에 따르면, 상기 프로세서는, 추가적으로, 상기 심층신경망(DNN) 모델을 재훈련(retraining)시킬 수 있다.
일 측면에 따르면, 상기 심층신경망(DNN)은 콘볼루션 신경망(Convolutional Neural Network, CNN)일 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 또 다른 실시예에 따른 심층신경망(Deep Neural Network, DNN) 모델의 프루닝(pruning)을 수행하기 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터가 각 에포크(epoch)마다 가중치의 업데이트 횟수를 카운트하도록 하는 명령, 및 네트워크의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하도록 하는 명령을 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
전술한 본 발명의 실시예들에 따른 업데이트 횟수에 기초한 프루닝 방법 및 장치에 따르면, 업데이트 횟수가 적은 가중치를 우선적으로 고려하여 학습하지 않는 가중치를 덜 중요한 가중치로 판단하여 먼저 프루닝할 수 있고, 신경망 모델의 정확성을 유지하면서도 종래의 크기에 기초한 프루닝 방법보다 연산 속도를 효율적으로 높일 수 있으며 신경망 모델의 크기도 효율적으로 줄일 수 있다.
도 1은 프루닝의 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법의 개념도이다.
도 3은 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법의 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 업데이트 횟수에 기초한 프루닝 장치의 구성도이다.
도 5는 본 발명의 또 다른 실시예에 따른 업데이트 횟수에 기초한 프루닝 장치의 구성도이다.
도 6 내지 도 9는 본 발명의 실시예들에 따른 업데이트 횟수에 기초한 프루닝 방법 및 장치를 이용한 실험 결과이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람이 본 발명을 쉽게 실시할 수 있도록 명확하고 상세하게 설명하기로 한다.
도 1은 프루닝의 개념을 설명하기 위한 도면이다.
프루닝(pruning)은 정확도에 미치는 영향이 작은 가중치(weight) 연결부를 제거하고, 정확도를 회복하기 위해 네트워크를 재훈련(retraining)시키는 것이다. 대규모의 심층신경망(Deep Neural Network, DNN)은 대체로 내부 중복성(redundancy)이 크기 때문에 정확도의 큰 손실 없이 모델의 크기를 감소시킬 수 있다.
도 1을 참조하면, 심층신경망(DNN)은 도 1(a)와 같이 복수 개의 층(layer)으로 이루어져 있으며, 각 층은 적어도 하나의 노드를 포함하고, 인접한 층의 노드들은 가중치로 연결되어 있다. 프루닝은 네트워크의 성능(즉, 연산 속도) 향상을 위해 이러한 심층신경망(DNN) 연결 상태에서 노드 또는 가중치를 제거하는 것이다. 다만, 프루닝은 네트워크의 정확도 손실을 최소화하는 범위에서 이루어져야 한다.
도 1의 예시에서, 프루닝 이후 심층신경망(DNN)은 도 1(b)와 같이 단순화된다. 심층신경망(DNN)은 프루닝 전에는 14개의 노드, 40개의 가중치로 구성되어 있었으나, 프루닝 후에는 12개의 노드, 10개의 가중치로 단순화된다. 따라서 프루닝된 심층신경망(DNN) 모델을 구동시키는 것은 초기 상태의 심층신경망(DNN) 모델을 구동시키는 것보다 더 적은 연산량을 요구하므로 컴퓨팅 비용과 에너지 소비를 줄일 수 있다.
종래의 프루닝 방법은 수 많은 노드와 가중치 중에서 어떤 것을 제거할지를 결정하기 위한 기준으로 가중치의 크기(절대값)를 이용한다. 즉, 종래의 프루닝 방법은 가중치 크기에 기초한 프루닝(magnitude-based pruning)이다. 구체적으로, 가중치를 임의의 값으로 초기화하고 신경망을 학습시킨 후 학습된 가중치의 크기를 비교하여 목표 희소성(sparsity)을 만족시키도록 크기가 작은 가중치를 프루닝한다. 그러나 종래의 프루닝 방법에 의하면 초기값이 작게 설정된 가중치가 프루닝될 확률이 높다. 이는 큰 초기값을 가진 가중치보다 많은 학습 즉, 업데이트를 거쳐 크기가 작아진 가중치가 우선적으로 프루닝될 가능성이 있다는 것을 말한다. 가중치 별로 학습 횟수가 다르므로, 큰 값을 가진 가중치가 작은 값을 가진 가중치보다 중요하지 않을 수도 있다.
도 2는 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법의 개념도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법은 종래의 가중치 크기(절대값)를 기준으로 가중치를 제거하는 대신 가중치의 업데이트 횟수를 기준으로 가중치를 제거한다. 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법에 의하면, 각 에포크(epoch) 마다 가중치의 업데이트 횟수를 카운트하고, 학습 종료 후 업데이트 횟수가 적은 가중치를 제거한다. 이를 위해, 종래의 가중치 크기에 기초한 프루닝 방법에서 사용하는, 각 가중치의 크기를 성분으로 갖는 가중치 행렬 대신에 각 가중치의 업데이트 횟수를 성분으로 갖는 가중치 업데이트 횟수 행렬을 이용할 수 있다.
본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법은 프로세서 및 메모리를 포함하는 프루닝 장치에 의해서 수행될 수 있다.
도 3은 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법의 순서도이다.
도 3을 참조하면, 단계 S310은 각 에포크마다 가중치의 업데이트 횟수를 카운트하는 단계이다. 일반적으로, 가중치는 학습 시작 전에 임의의 값으로 초기화되고, 학습을 수행할 때마다(즉, 한 에포크(epoch)마다) 가중치 값이 새로운 값으로 업데이트 된다. 학습 과정에서 사용된 가중치는 그 값이 새로운 값으로 업데이트 되고, 사용되지 않은 가중치는 업데이트 되지 않고 이전 에포크에서의 값을 그대로 갖는다.
예를 들어, 업데이트 횟수의 카운팅은 학습 전 가중치 값을 저장하고, 각 에포크마다 가중치 값이 변화하였는지를 확인하여 그 값이 변한 경우 업데이트 횟수를 1만큼 증가시킴으로써 수행될 수 있다. 즉, 학습 전에 임의의 값으로 초기화된 가중치 값을 저장하고, 첫 번째 에포크 종료 후의 가중치 값과 상기 저장된 가중치 값을 비교하여 그 값이 변경된 경우 업데이트 횟수를 1만큼 증가시킬 수 있다. 또한 두 번째 에포크부터는, 현재 에포크 종료 후의 가중치 값과 이전 에포크 종료 후의 가중치 값을 비교하여 그 값이 변경된 경우 업데이트 횟수를 증가시킬 수 있다.
단계 S370은 학습 종료 후 업데이트 횟수가 적은 가중치를 제거하는 단계이다. 여기서, 업데이트 횟수가 '적은' 가중치는 업데이트 횟수가 가장 적은 가중치를 기준으로 오름차순 정렬했을 때 프루닝의 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수를 의미한다. 다시 말하면, 업데이트 횟수를 기준으로 하위 n개(목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수)의 가중치를 말한다.
한편, 업데이트 횟수가 동일한 가중치들의 경우에는 종래의 가중치 크기에 기초한 프루닝과 같이 크기(절대값)가 더 작은 가중치를 제거할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 업데이트 횟수에 기초한 프루닝 장치의 구성도이다.
도 4를 참조하면, 본 발명의 다른 실시예에 따른 업데이트 횟수에 기초한 프루닝 장치(400)는 업데이트 횟수 카운터(410), 가중치 제거부(430)를 포함한다. 또한, 프루닝 장치(400)는 학습부(450)를 더 포함할 수 있다.
업데이트 횟수 카운터(410)는 각 에포크마다 가중치의 업데이트 횟수를 카운트한다. 일반적으로, 가중치는 학습 시작 전에 임의의 값으로 초기화되고, 학습을 수행할 때마다(즉, 한 에포크(epoch)마다) 가중치 값이 새로운 값으로 업데이트 된다. 학습 과정에서 사용된 가중치는 그 값이 새로운 값으로 업데이트 되고, 사용되지 않은 가중치는 업데이트 되지 않고 이전 에포크에서의 값을 그대로 갖는다.
예를 들어, 업데이트 횟수의 카운팅은 학습 전 가중치 값을 저장하고, 각 에포크마다 가중치 값이 변화하였는지를 확인하여 그 값이 변한 경우 업데이트 횟수를 1만큼 증가시킴으로써 수행될 수 있다. 즉, 학습 전에 임의의 값으로 초기화된 가중치 값을 저장하고, 첫 번째 에포크 종료 후의 가중치 값과 상기 저장된 가중치 값을 비교하여 그 값이 변경된 경우 업데이트 횟수를 1만큼 증가시킬 수 있다. 또한 두 번째 에포크부터는, 현재 에포크 종료 후의 가중치 값과 이전 에포크 종료 후의 가중치 값을 비교하여 그 값이 변경된 경우 업데이트 횟수를 증가시킬 수 있다.
가중치 제거부(430)는 학습 종료 후 업데이트 횟수가 적은 가중치를 제거한다. 여기서, 업데이트 횟수가 '적은' 가중치는 업데이트 횟수가 가장 적은 가중치를 기준으로 오름차순 정렬했을 때 프루닝의 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수를 의미한다. 다시 말하면, 업데이트 횟수를 기준으로 하위 n개(목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수)의 가중치를 말한다.
한편, 업데이트 횟수가 동일한 가중치들의 경우에는 종래의 가중치 크기에 기초한 프루닝과 같이 크기(절대값)가 더 작은 가중치를 제거할 수 있다.
학습부(450)는 프루닝된 심층신경망(DNN)을 재훈련(retraining)시킨다.
도 5는 본 발명의 또 다른 실시예에 따른 업데이트 횟수에 기초한 프루닝 장치의 구성도이다.
도 5를 참조하면, 본 발명의 또 다른 실시예에 따른 업데이트 횟수에 기초한 프루닝 장치(500)는 프루닝을 수행하는 프로세서(510) 및 가중치 값을 저장하는 메모리(530)를 포함한다.
프로세서(510)는 각 에포크(epoch)마다 가중치의 업데이트 횟수를 카운트하고, 네트워크의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거한다.
업데이트 횟수의 카운팅은 학습 전 가중치 값을 메모리(530)에 저장하고, 각 에포크마다 가중치 값이 변화하였는지를 확인하여 그 값이 변한 경우 업데이트 횟수를 1만큼 증가시킴으로써 수행될 수 있다. 즉, 학습 전에 임의의 값으로 초기화된 가중치 값을 저장하고, 첫 번째 에포크 종료 후의 가중치 값과 상기 메모리(530)에 저장된 가중치 값을 비교하여 그 값이 변경된 경우 업데이트 횟수를 1만큼 증가시킬 수 있다. 또한 두 번째 에포크부터는, 현재 에포크 종료 후의 가중치 값과 이전 에포크 종료 후의 가중치 값을 비교하여 그 값이 변경된 경우 업데이트 횟수를 증가시킬 수 있다.
한편, 프로세서(510)는 업데이트 횟수가 동일한 가중치들의 경우에는 종래의 가중치 크기에 기초한 프루닝과 같이 크기(절대값)가 더 작은 가중치를 제거할 수 있다.
도 6 내지 도 9는 본 발명의 실시예들에 따른 업데이트 횟수에 기초한 프루닝 방법 및 장치를 이용한 실험 결과이다.
실험은 MNIST, FMNIST에 대하여 5개의 밀집층(dense layer)으로 구성된 네트워크(도 6(a) 참조) 및 CIFAR-10에 대하여 4개의 콘볼루션층(convolution layer)과 5개의 밀집층으로 구성된 네트워크(도 6(b) 참조)를 대상으로 수행되었으며, GPU는 NVIDIA GTX 1080Ti를 이용하였다. 종래의 가중치 크기에 기초한 프루닝과 본 발명의 실시예들에 따른 업데이트 횟수에 기초한 프루닝을 각각 수행하고, 희소성(sparsity)에 따른 정확도를 비교하였다.
도 7의 (a) 내지 (c)의 그래프는 각각 MNIST, FMNIST, 및 CIFAR-19에 대한 네트워크를 대상으로 수행한 프루닝 결과를 나타낸다. 그래프에서, 참조번호 711, 731, 751은 업데이트 횟수에 기초한 프루닝의 희소성(sparsity)에 따른 정확도를 나타낸 것이고, 참조번호 713, 733, 753은 가중치 크기에 기초한 프루닝의 희소성(sparsity)에 따른 정확도를 나타낸 것이고, 참조번호 715, 735, 755는 업데이트 횟수에 기초한 프루닝의 희소성(sparsity)에 따른 손실을 나타낸 것이고, 참조번호 717, 737, 757은 가중치 크기에 기초한 프루닝의 희소성(sparsity)에 따른 손실을 나타낸 것이다.
도 7의 (a) 내지 (c)를 참조하면, 본 발명의 실시예들에 따른 업데이트 횟수에 기초한 프루닝이 종래의 가중치 크기에 기초한 프루닝보다 정확도가 높고, 손실(loss)이 적은 것을 알 수 있다. 구체적으로, 업데이트 횟수에 기초한 프루닝은 MNIST에서 98.2%, FMNIST에서 88.5%, CIFAR-10에서 84.5%의 정확도를 달성하였다.
한편, 도 7의 (a) 내지 (c)를 비교하면, 업데이트 횟수에 기초한 프루닝은 데이터와 네트워크가 복잡할수록 가중치 크기에 기초한 프루닝과의 차이가 더 커지는 것을 알 수 있다.
도 8은 MNIST에 대한 네트워크를 수렴할 때까지 학습시킨 후 업데이트 횟수에 기초한 프루닝(도 8의 (a)) 및 가중치 크기에 기초한 프루닝(도 8의 (b))을 수행한 첫 번째 층의 가중치를 나타낸 것이다. 가중치 크기에 기초한 프루닝은 무작위로 프루닝된 것처럼 보이는 반면, 업데이트 횟수에 기초한 프루닝은 규칙성 있게 프루닝된 것을 볼 수 있다. 이는 가중치 크기에 기초한 프루닝의 경우 가중치의 초기값에 의한 영향을 많이 받기 때문이다. 또한, 이 결과는 정확도에 영향이 없는 일부 데이터가 학습 횟수가 적어 우선적으로 프루닝된 것으로 해석할 수 있다.
도 9는 CIFAR-10에 대한 콘볼루션 신경망을 수렴할 때까지 학습시킨 후 업데이트 횟수에 기초한 프루닝(도 9의 (a) 내지 (d)) 및 가중치 크기에 기초한 프루닝(도 9의 (e) 내지 (h))을 수행한 완전연결층(fully-connected layer)의 가중치이다. 도 8의 결과와 마찬가지로, 콘볼루션 신경망에서도 업데이트 횟수에 기초한 프루닝이 가중치 크기에 기초한 프루닝보다 더 규칙성 있게 가중치를 프루닝하는 것을 알 수 있다.
전술한 본 발명의 일 실시예에 따른 업데이트 횟수에 기초한 프루닝 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
400: 프루닝 장치
410: 업데이트 횟수 카운터
430: 가중치 제거부
450: 학습부

Claims (19)

  1. 프루닝(pruning) 장치에 의해 수행되는 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝(pruning) 방법에 있어서,
    제1 에포크 종료 후 가중치 값을 저장하는 단계;
    제2 에포크 종료 후 가중치 값과 상기 저장된 제1 에포크 종료 후 가중치 값을 비교하는 단계 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -, 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시키는 단계; 및
    상기 심층신경망 모델의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 단계를 포함하는, 업데이트 횟수에 기초한 프루닝 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 에포크 종료 후 가중치 값을 저장하는 단계는
    상기 제2 에포크가 첫 번째 학습인 경우에는 상기 가중치의 초기값을 저장하는, 업데이트 횟수에 기초한 프루닝 방법.
  4. 제1항에 있어서,
    상기 가중치를 제거하는 단계는
    상기 업데이트 횟수가 동일한 경우 크기가 더 작은 가중치를 제거하는, 업데이트 횟수에 기초한 프루닝 방법.
  5. 제1항에 있어서,
    상기 심층신경망(DNN) 모델을 재훈련시키는(retraining) 단계를 더 포함하는, 업데이트 횟수에 기초한 프루닝 방법.
  6. 제1항에 있어서,
    상기 심층신경망(DNN)은 콘볼루션 신경망(Convolutional Neural Network, CNN)인, 업데이트 횟수에 기초한 프루닝 방법.
  7. 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝(pruning) 장치에 있어서,
    제1 에포크 종료 후 가중치 값을 저장하고, 제2 에포크 종료 후 가중치 값과 상기 저장된 제1 에포크 종료 후 가중치 값을 비교하고 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -, 그리고 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시키는 업데이트 횟수 카운터; 및
    상기 심층신경망의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 가중치 제거부를 포함하는, 업데이트 횟수에 기초한 프루닝 장치.
  8. 삭제
  9. 제7항에 있어서,
    상기 제1 에포크 종료 후 가중치 값을 저장하는 것은
    상기 제2 에포크가 첫 번째 학습인 경우에는 상기 가중치의 초기값을 저장하는, 업데이트 횟수에 기초한 프루닝 장치.
  10. 제7항에 있어서,
    상기 가중치 제거부는
    상기 업데이트 횟수가 동일한 경우 크기가 더 작은 가중치를 제거하는, 업데이트 횟수에 기초한 프루닝 장치.
  11. 제7항에 있어서,
    상기 심층신경망(DNN) 모델을 재훈련시키는(retraining) 학습부를 더 포함하는, 업데이트 횟수에 기초한 프루닝 장치.
  12. 제7항에 있어서,
    상기 심층신경망(DNN)은 콘볼루션 신경망(Convolutional Neural Network, CNN)인, 업데이트 횟수에 기초한 프루닝 장치.
  13. 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝(pruning) 장치에 있어서,
    제1 에포크 종료 후 가중치 값을 저장하고, 제2 에포크 종료 후 가중치 값과 상기 저장된 제1 에포크 종료 후 가중치 값을 비교하고 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -, 그리고 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시키고, 그리고
    상기 심층신경망 모델의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하는 프로세서를 포함하는, 업데이트 횟수에 기초한 프루닝 장치.
  14. 삭제
  15. 제13항에 있어서,
    상기 제1 에포크 종료 후 가중치 값을 메모리에 저장하는 것은
    상기 제2 에포크가 첫 번째 학습인 경우에는 상기 가중치의 초기값을 상기 메모리에 저장하는, 업데이트 횟수에 기초한 프루닝 장치.
  16. 제13항에 있어서,
    상기 프로세서는
    상기 업데이트 횟수가 동일한 경우 크기가 더 작은 가중치를 제거하는, 업데이트 횟수에 기초한 프루닝 장치.
  17. 제13항에 있어서,
    상기 프로세서는
    추가적으로, 상기 심층신경망(DNN) 모델을 재훈련시키는(retraining), 업데이트 횟수에 기초한 프루닝 장치.
  18. 제13항에 있어서,
    상기 심층신경망(DNN)은 콘볼루션 신경망(Convolutional Neural Network, CNN)인, 업데이트 횟수에 기초한 프루닝 장치.
  19. 심층신경망(Deep Neural Network, DNN) 모델의 업데이트 횟수에 기초한 프루닝(pruning)을 수행하기 위한 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능한 저장 매체에 있어서, 상기 컴퓨터 프로그램은 상기 컴퓨터가
    제1 에포크 종료 후 가중치 값을 저장하고, 제2 에포크 종료 후 가중치 값과 상기 저장된 제1 에포크 종료 후 가중치 값을 비교하고 - 상기 제2 에포크는 상기 제1 에포크의 다음 에포크임 -, 그리고 상기 비교 결과 상기 가중치 값이 변경된 경우 업데이트 횟수를 1만큼 증가시키도록 하는 명령, 및
    상기 심층신경망 모델의 학습 종료 후 상기 업데이트 횟수가 적은 n개 - 여기서, 상기 n은 목표 희소성(sparsity)을 만족하기 위해 제거되어야 할 가중치의 개수임 - 의 가중치를 제거하도록 하는 명령을 포함하는, 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능한 저장 매체.
KR1020200007533A 2020-01-20 2020-01-20 업데이트 횟수에 기초한 프루닝 방법 및 장치 KR102358508B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200007533A KR102358508B1 (ko) 2020-01-20 2020-01-20 업데이트 횟수에 기초한 프루닝 방법 및 장치
US17/153,087 US20210224655A1 (en) 2020-01-20 2021-01-20 Method and apparatus for pruning based on the number of updates

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200007533A KR102358508B1 (ko) 2020-01-20 2020-01-20 업데이트 횟수에 기초한 프루닝 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210093661A KR20210093661A (ko) 2021-07-28
KR102358508B1 true KR102358508B1 (ko) 2022-02-04

Family

ID=76858170

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200007533A KR102358508B1 (ko) 2020-01-20 2020-01-20 업데이트 횟수에 기초한 프루닝 방법 및 장치

Country Status (2)

Country Link
US (1) US20210224655A1 (ko)
KR (1) KR102358508B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220180180A1 (en) * 2020-12-09 2022-06-09 International Business Machines Corporation Data-driven neural network model compression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102413028B1 (ko) 2017-08-16 2022-06-23 에스케이하이닉스 주식회사 중첩 신경망을 프루닝하는 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Congcong Liu and Huaming Wu, " Channel pruning based on mean gradient for accelerating Convolutional Neural Networks," Signal Processing (2018.10.28.)*

Also Published As

Publication number Publication date
KR20210093661A (ko) 2021-07-28
US20210224655A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
JP7285895B2 (ja) 質問応答としてのマルチタスク学習
US11645529B2 (en) Sparsifying neural network models
US20210182666A1 (en) Weight data storage method and neural network processor based on the method
Dong et al. Rtmobile: Beyond real-time mobile acceleration of rnns for speech recognition
CN108415898B (zh) 深度学习语言模型的词图重打分方法和系统
US20190370664A1 (en) Operation method
KR20180092810A (ko) 신경망 프루닝 및 재훈련을 위한 자동 임계값들
JP2020126624A (ja) ディープニューラルネットワーク基盤の多重パッチ組み合わせを利用して顔を認識し、極度の状況でフォールトトレランス及びフラクチュエーションロバスト性を向上させる方法
CN109791628B (zh) 神经网络模型分块压缩方法、训练方法、计算装置及系统
US11775832B2 (en) Device and method for artificial neural network operation
CN111314138B (zh) 有向网络的检测方法、计算机可读存储介质及相关设备
US20150066836A1 (en) Methods and Systems of Four-Valued Simulation
Ochiai et al. Automatic node selection for deep neural networks using group lasso regularization
CN111563192A (zh) 实体对齐方法、装置、电子设备及存储介质
CN109145107B (zh) 基于卷积神经网络的主题提取方法、装置、介质和设备
CN113435585A (zh) 一种业务处理方法、装置及设备
Boguslawski et al. Huffman coding for storing non-uniformly distributed messages in networks of neural cliques
KR102358508B1 (ko) 업데이트 횟수에 기초한 프루닝 방법 및 장치
CN108009635A (zh) 一种支持增量更新的深度卷积计算模型
Qiu et al. Improving gradient-based adversarial training for text classification by contrastive learning and auto-encoder
CN113282707A (zh) 基于Transformer模型的数据预测方法、装置、服务器及存储介质
CN117272195A (zh) 基于图卷积注意力网络的区块链异常节点检测方法及系统
Byttebier et al. Small-footprint acoustic scene classification through 8-bit quantization-aware training and pruning of ResNet models
US20220067280A1 (en) Multi-token embedding and classifier for masked language models
CN112132281A (zh) 一种基于人工智能的模型训练方法、装置、服务器及介质

Legal Events

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