KR20220064054A - 행렬곱 연산량 감소 방법 및 장치 - Google Patents

행렬곱 연산량 감소 방법 및 장치 Download PDF

Info

Publication number
KR20220064054A
KR20220064054A KR1020200150140A KR20200150140A KR20220064054A KR 20220064054 A KR20220064054 A KR 20220064054A KR 1020200150140 A KR1020200150140 A KR 1020200150140A KR 20200150140 A KR20200150140 A KR 20200150140A KR 20220064054 A KR20220064054 A KR 20220064054A
Authority
KR
South Korea
Prior art keywords
matrix
neural network
network model
multiplication
products
Prior art date
Application number
KR1020200150140A
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 KR1020200150140A priority Critical patent/KR20220064054A/ko
Priority to PCT/KR2020/018531 priority patent/WO2022102860A1/ko
Publication of KR20220064054A publication Critical patent/KR20220064054A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 방법으로서, 초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계; 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계; 및 상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키는 단계를 포함하는, 행렬곱 연산량 감소 방법을 개시한다.

Description

행렬곱 연산량 감소 방법 및 장치{APPARATUS AND METHOD FOR REDUCING MATRIX PRODUCT OPERATION}
본 발명은 행렬곱의 연산량을 감소시키는 방법 및 장치에 관한 것으로, 더욱 상세하게는 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 방법 및 장치에 관한 것이다.
뉴럴 네트워크는 학습과 추론(inference)으로 동작을 분류할 수 있다. 뉴럴 네트워크의 학습은 많은 연산량과 시간이 소모되므로 GPGPU(General-Purpose computing on Graphics Processing Units; GPGPU)와 같은 고성능 컴퓨팅 환경에서 수행된다. 이에 반해, 뉴럴 네트워크의 추론은 자원이 제한된 임베디드(embedded) 시스템 환경에서 수행된다.
뉴럴 네트워크가 다양하고 복잡한 문제 해결에 적용되면서, 최근 뉴럴 네트워크 모델의 복잡도가 증가하고 있다. 따라서, 임베디드 시스템 환경에서 추론을 진행하기 위한 뉴럴 네트워크 모델의 최적화 및 경량화가 필요하다.
한편, 뉴럴 네트워크 모델을 임베디드 시스템 환경에서 동작 시키기 위해 다양한 방법이 시도되고 있다. 예를 들어, 뉴럴 네트워크 모델을 경량화하기 위해 프루닝(pruning) 기법이 적용된다. 프루닝 기법이란 뉴럴 네트워크 모델의 연산에 필요한 변수들을 0으로 만들어 희소 행렬 꼴로 변화시킴으로써 뉴럴 네트워크 모델을 경량화시키는 기법을 의미한다. 다만, 프루닝 기법을 통해 뉴럴 네트워크 모델의 성능을 증가시키기 위해서는 희소 행렬의 효율적인 연산을 지원하는 추가적인 하드웨어 기능이 동반되어야 하는 문제가 있다.
또한, 종래의 인공 신경망 알고리즘은 에너지 소모를 전혀 고려하지 않고 짧은 시간에 높은 정확도를 내는 것에 초점을 맞추고 있다. 예를 들어, NVIDIA에서 제작하는 GPGPU의 경우, 인공신경망 연산 과정에서 1와트(W)급의 전력이 소모된다. 다만, 임베디드 디바이스의 일종인 모바일 또는 IoT환경에서는 소비할 수 있는 전력이 수십 내지 수백밀리와트(mW)정도로 한정된다는 문제가 있다.
뿐만 아니라 시계열 데이터를 처리하기 위한 순환신경망(RNN) 구조의 딥러닝 연산에서 LSTM모듈의 연산이 뉴럴 네트워크 모델에서 큰 병목 현상을 초래하고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 스마트폰과 같은 임베디드 디바이스를 대상으로 딥 뉴럴 네트워크에 사용되는 변수들을 특이 값 분해를 활용하여 압축함으로써 뉴럴 네트워크 연산 과정에서 병목 현상이 발생하는 행렬곱 연산량을 감소시키는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 방법은, 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 방법으로서, 초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계; 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계; 및 상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키는 단계를 포함할 수 있다.
여기서, 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계는, 행렬의 계산 복잡도에 따라 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계를 포함할 수 있다.
또한, 상기 특이값 분해(Singular Value Decomposition; SVD)는, 행렬곱의 대각선 성분을 간소화할 수 있다.
한편, 상기 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계는, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계를 포함할 수 있다.
여기서, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계는, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 높은 행렬곱을 판단하는 단계; 및 상기 계산 복잡도가 가장 높은 행렬곱을 가장 적은 비율로 간소화하는 단계를 포함할 수 있다.
또한, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계는, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 낮은 행렬곱을 판단하는 단계; 및 상기 계산 복잡도가 가장 낮은 행렬곱을 가장 높은 비율로 간소화하는 단계를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 행렬곱 연산량 감소 장치는, 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 장치로서, 프로세서; 및 상기 프로세서를 통해 실현되는 적어도 하나의 명령을 저장하는 메모리를 포함하고, 상기 적어도 하나의 명령은, 초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령; 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하도록 하는 명령; 및 상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키도록 하는 명령을 포함할 수 있다.
여기서, 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령은, 행렬의 계산 복잡도에 따라 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령을 포함할 수 있다.
또한, 상기 특이값 분해(Singular Value Decomposition; SVD)는, 행렬곱의 대각선 성분을 간소화할 수 있다.
한편, 상기 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하도록 하는 명령은, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령을 포함할 수 있다.
여기서, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령은, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 높은 행렬곱을 판단하도록 하는 명령; 및 상기 계산 복잡도가 가장 높은 행렬곱을 가장 적은 비율로 간소화하도록 하는 명령을 포함할 수 있다.
또한, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령은, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 낮은 행렬곱을 판단하도록 하는 명령; 및 상기 계산 복잡도가 가장 낮은 행렬곱을 가장 높은 비율로 간소화하도록 하는 명령을 포함할 수 있다.
본 발명의 일 실시예는 복잡한 행렬곱의 연산을 가지는 다양한 어플리케이션 압축에 활용될 수 있고, 저장 용량에 제한이 있는 다양한 디지털 시스템에 적용되여 효율적으로 데이터를 압축할 수 있다.
도 1은 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 방법의 동작 순서도이다.
도 2는 특이값 분해를 설명하기 위한 예시도다.
도 3은 복수의 행렬곱을 서로 다른 비율로 간소화하는 방법을 설명하기 위한 예시도다.
도 4는 서로 다른 비율로 간소화한 뉴럴 네트워크 모델의 성능을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 장치의 블록 구성도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 방법의 동작 순서도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 방법은, 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 방법으로서, 초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계(S110)를 포함할 수 있다.
여기서, 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계는, 행렬의 계산 복잡도에 따라 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계를 포함할 수 있다.
또한, 본 발명은 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계(S120)를 포함할 수 있다.
여기서, 상기 특이값 분해(Singular Value Decomposition; SVD)는, 행렬곱의 대각선 성분을 간소화할 수 있다.
한편, 상기 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계는, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계를 포함할 수 있다.
또한, 본 발명은 상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키는 단계(S130)를 포함할 수 있다.
여기서, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계는, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 높은 행렬곱을 판단하는 단계; 및 상기 계산 복잡도가 가장 높은 행렬곱을 가장 적은 비율로 간소화하는 단계를 포함할 수 있다.
또한, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계는, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 낮은 행렬곱을 판단하는 단계; 및 상기 계산 복잡도가 가장 낮은 행렬곱을 가장 높은 비율로 간소화하는 단계를 포함할 수 있다.
도 2는 특이값 분해를 설명하기 위한 예시도이다.
도 2는 행렬곱에서 특이값 분해(Singular Value Decomposition; SVD)를 적용하여 행렬을 간소화한 것을 나타내는 예시도이다. 예를 들어, 행렬곱의 크기를
Figure pat00001
라고 가정하면, 특이값 분해를 통해 행렬곱을
Figure pat00002
의 형태로 분류할 수 있다. 이때, 각 행렬의 크기는
Figure pat00003
,
Figure pat00004
Figure pat00005
일 수 있다. 이후,
Figure pat00006
행렬을 수학식1을 통해
Figure pat00007
행렬로 분해할 수 있다.
Figure pat00008
여기서,
Figure pat00009
행렬은 행렬곱의 대각선 성분을 의미할 수 있다. 한편, 분해된
Figure pat00010
행렬을 통해 수학식 2 및 수학식 3과 같이 행렬의 간소화를 수행할 수 있다.
Figure pat00011
Figure pat00012
행렬의 간소화는 특이값 분해 과정에서 발생한 대각선 성분인
Figure pat00013
행렬을 기준으로 수행될 수 있다. 예를 들어,
Figure pat00014
행렬의 요소값을 하나도 제거하지 않은 상태이면 원래 행렬과 동일한 행렬값을 나타내게 되고, 요소값을 제거할수록 적은 수의 특이벡터(예를 들어,
Figure pat00015
Figure pat00016
)로 원래 행렬을 표현할 수 있지만 기존 행렬의 요소값과는 차이가 날 수 있다.
도 3은 복수의 행렬곱을 서로 다른 비율로 간소화하는 방법을 설명하기 위한 예시도다.
본 발명의 일 실시예에 따르면, 행렬곱 연산량 감소 장치에 입력된 뉴럴 네트워크 모델을 구성하는 복수의 행렬곱을 임의의 비율을 설정하여 대각 성분을 제거함으로써 행렬곱을 간소화할 수 있다. 이 때, 임의의 비율은 행렬곱 연산량 감소 장치에 미리 설정할 수 있다.
또한, 본 발명은 간소화된 행렬에서 뉴럴 네트워크 모델의 성능에 영향을 주는 행렬 부분만을 추출하여 저장할 수 있다. 이 때, 뉴럴 네트워크 모델의 성능에 영향을 주는지 여부는 특이값의 크기 비교를 통해 원래 행렬과 비교하여 판단할 수 있다. 즉, 본 발명은 특이값의 크기를 비교하여 원래 행렬과 비교함으로써 뉴럴 네트워크 모델의 성능에 영향을 크게 주지 않는 특이벡터에 대해 간소화를 수행할 수 있다.
예를 들어, 본 발명은 초기 뉴럴 네트워크 모델을 구성하는 행렬곱의 계산 복잡도에 따라 두 부분으로 나누어 각 부분의 대한 행렬의 간소화 비율을 서로 다르게 적용할 수 있음을 알 수 있다. 즉, 도 3을 참조하면, 계산 복잡도가 높은 부분일수록 높은 비율로 특이값 분해를 통한 간소화를 수행하였을 때 뉴럴 네트워크 모델의 성능(즉, 정확도)에 영향을 많이 줄 수 있으므로 가장 적은 비율로 특이값 분해를 통한 간소화를 수행할 수 있다.
한편, 계산 복잡도가 낮은 부분일수록 뉴럴 네트워크 모델의 성능에 영향을 적게 줄 수 있으므로 가장 높은 비율로 특이값 분해를 통한 간소화를 수행할 수 있다.
다만, 상기 예시에서 초기 뉴럴 네트워크 모델을 구성하는 행렬곱의 계산 복잡도에 따라 두 부분으로 나눈 후, 계산 복잡도가 높은 부분을 가장 적은 비율로 특이값 분해를 통한 간소화를 수행하고, 계산 복잡도가 낮은 부분을 가장 높은 비율로 특이값 분해를 통한 간소화를 수행한다고 하였으나, 간소화의 정도는 행렬곱의 계산 복잡도와 반비례하는 것이 아니라 뉴럴 네트워크 모델의 목표 성능을 달성하기 위해서 유동적으로 적용할 수 있다.
즉, 본 발명은 사용자가 미리 설정한 뉴럴 네트워크 모델의 목표 성능(예를 들어, 정확도 또는 하드웨어 리소스 사용량)을 달성하기 위해 뉴럴 네트워크 모델을 구성하는 복수의 행렬곱에 간소화를 수행할 수 있다.
도 4는 서로 다른 비율로 간소화한 뉴럴 네트워크 모델의 성능을 설명하기 위한 예시도다.
도 4를 참조하면, 뉴럴 네트워크 모델을 두가지 부분, 계산 복잡도가 높은 부분과 계산 복잡도가 낮은 부분으로 나누어 각각 특이값 분해를 통한 간소화를 수행하였을 때, 뉴를 네트워크 모델의 성능을 알 수 있다.
예를 들어, 도 4의 랭크 비율(rank ratio)는 특이값 분해를 통한 간소화 과정에서 행렬의 대각 성분을 제거한 후 남은 대각 성분의 비율을 의미할 수 있다. 여기서, 랭크 비율이 1이라면 간소화를 수행하지 않았음을 의미할 수 있고, 0.25는 간소화를 수행하여 원래 행렬곱의 대각성분이 25퍼센트(%)만이 존재하고, 25퍼센트의 대각성분만을 통해 원래 행렬곱과 유사한 행렬곱을 표현할 수 있음을 의미할 수 있다. 즉, 본 발명에 따라 간소화를 수행하여도 초기 뉴럴 네트워크 모델의 성능을 만족할 수 있음을 알 수 있다.
따라서, 본 발명은 복수의 행렬곱으로 구성되고 학습된 초기 뉴런 네트워크 모델을 행렬의 계산 복잡도에 따라 복수의 행렬곱으로 분류하고, 분류된 행렬곱에 대해 서로 다른 비율로 간소화를 수행할 수 있고, 간소화를 수행한 뉴런 네트워크 모델의 성능과 초기 뉴런 네트워크 모델의 성능을 비교할 수 있다. 이때, 간소화를 수행한 뉴런 네트워크 모델이 사용자가 미리 정의한 오차값 이내를 만족하지 못하는 경우 간소화를 재수행하여 초기 뉴런 네트워크 모델의 성능과 유사한 성능을 유지하도록 할 수 있다.
도 5는 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 장치의 블록 구성도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 행렬곱 연산량 감소 장치(100)는 프로세서(110) 및 프로세서를 통해 실행되는 적어도 하나의 명령 및 명령 수행의 결과를 저장하는 메모리(120) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(130)를 포함할 수 있다.
행렬곱 연산량 감소 장치(100)는 또한, 입력 인터페이스 장치(140), 출력 인터페이스 장치(150), 저장 장치(160) 등을 더 포함할 수 있다. 행렬곱 연산량 감소 장치(100)에 포함된 각각의 구성 요소들은 버스(Bus)(170)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(110)는 메모리(120) 및 저장 장치(160) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(120) 및 저장 장치(160) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(120)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
저장 장치(160)는 또한, 초기 뉴런 네트워크 모델의 행렬곱의 연산량 및 간소화가 수행된 행렬곱의 연산량을 저장할 수 있고, 분류된 행렬곱에 간소화를 수행하는 경우 적용된 서로 다른 비율의 간소화 비율을 저장할 수 있고, 초기 뉴런 네트워크 모델의 성능과 간소화가 수행된 행렬곱의 모델의 성능을 수치화하여 저장할 수 있다.
여기서, 적어도 하나의 명령은, 초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령; 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하도록 하는 명령; 및 상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키도록 하는 명령을 포함할 수 있다.
여기서, 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령은, 행렬의 계산 복잡도에 따라 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령을 포함할 수 있다.
또한, 상기 특이값 분해(Singular Value Decomposition; SVD)는, 행렬곱의 대각선 성분을 간소화할 수 있다.
한편, 상기 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하도록 하는 명령은, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령을 포함할 수 있다.
여기서, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령은, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 높은 행렬곱을 판단하도록 하는 명령; 및 상기 계산 복잡도가 가장 높은 행렬곱을 가장 적은 비율로 간소화하도록 하는 명령을 포함할 수 있다.
또한, 상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령은, 상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 낮은 행렬곱을 판단하도록 하는 명령; 및 상기 계산 복잡도가 가장 낮은 행렬곱을 가장 높은 비율로 간소화하도록 하는 명령을 포함할 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (12)

  1. 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 방법으로서,
    초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계;
    특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계; 및
    상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키는 단계를 포함하는, 행렬곱 연산량 감소 방법.
  2. 청구항 1에 있어서,
    상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계는,
    행렬의 계산 복잡도에 따라 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하는 단계를 포함하는, 행렬곱 연산량 감소 방법.
  3. 청구항 1에 있어서,
    상기 특이값 분해(Singular Value Decomposition; SVD)는,
    행렬곱의 대각선 성분을 간소화하는, 행렬곱 연산량 감소 방법.
  4. 청구항 1에 있어서,
    상기 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하는 단계는,
    상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계를 포함하는, 행렬곱 연산량 감소 방법.
  5. 청구항 4에 있어서,
    상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계는,
    상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 높은 행렬곱을 판단하는 단계; 및
    상기 계산 복잡도가 가장 높은 행렬곱을 가장 적은 비율로 간소화하는 단계를 포함하는, 행렬곱 연산량 감소 방법.
  6. 청구항 4에 있어서,
    상기 복수의 행렬곱을 서로 다른 비율로 간소화하는 단계는,
    상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 낮은 행렬곱을 판단하는 단계; 및
    상기 계산 복잡도가 가장 낮은 행렬곱을 가장 높은 비율로 간소화하는 단계를 포함하는, 행렬곱 연산량 감소 방법.
  7. 복수의 행렬곱으로 구성된 뉴럴 네트워크 모델에서 행렬곱의 연산량을 감소시키는 장치로서,
    프로세서; 및
    상기 프로세서를 통해 실현되는 적어도 하나의 명령을 저장하는 메모리를 포함하고,
    상기 적어도 하나의 명령은,
    초기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령;
    특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하도록 하는 명령; 및
    상기 간소화된 복수의 행렬곱을 기초로 뉴럴 네트워크 모델을 재학습시키도록 하는 명령을 포함하는, 행렬곱 연산량 감소 장치.
  8. 청구항 7에 있어서,
    상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령은,
    행렬의 계산 복잡도에 따라 상기 뉴럴 네트워크 모델을 복수의 행렬곱으로 분류하도록 하는 명령을 포함하는, 행렬곱 연산량 감소 장치.
  9. 청구항 7에 있어서,
    상기 특이값 분해(Singular Value Decomposition; SVD)는,
    행렬곱의 대각선 성분을 간소화하는, 행렬곱 연산량 감소 장치.
  10. 청구항 7에 있어서,
    상기 특이값 분해(Singular Value Decomposition; SVD)에 기반하여 상기 복수의 행렬곱을 간소화하도록 하는 명령은,
    상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령을 포함하는, 행렬곱 연산량 감소 장치.
  11. 청구항 10에 있어서,
    상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령은,
    상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 높은 행렬곱을 판단하도록 하는 명령; 및
    상기 계산 복잡도가 가장 높은 행렬곱을 가장 적은 비율로 간소화하도록 하는 명령을 포함하는, 행렬곱 연산량 감소 장치.
  12. 청구항 10에 있어서,
    상기 복수의 행렬곱을 서로 다른 비율로 간소화하도록 하는 명령은,
    상기 복수의 행렬곱 중 행렬의 계산 복잡도가 가장 낮은 행렬곱을 판단하도록 하는 명령; 및
    상기 계산 복잡도가 가장 낮은 행렬곱을 가장 높은 비율로 간소화하도록 하는 명령을 포함하는, 행렬곱 연산량 감소 장치.
KR1020200150140A 2020-11-11 2020-11-11 행렬곱 연산량 감소 방법 및 장치 KR20220064054A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200150140A KR20220064054A (ko) 2020-11-11 2020-11-11 행렬곱 연산량 감소 방법 및 장치
PCT/KR2020/018531 WO2022102860A1 (ko) 2020-11-11 2020-12-17 행렬곱 연산량 감소 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200150140A KR20220064054A (ko) 2020-11-11 2020-11-11 행렬곱 연산량 감소 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220064054A true KR20220064054A (ko) 2022-05-18

Family

ID=81602447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200150140A KR20220064054A (ko) 2020-11-11 2020-11-11 행렬곱 연산량 감소 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20220064054A (ko)
WO (1) WO2022102860A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101686827B1 (ko) * 2015-03-17 2016-12-16 인천대학교 산학협력단 인공 신경망의 뉴로모픽 하드웨어 구현 방법
US11423311B2 (en) * 2015-06-04 2022-08-23 Samsung Electronics Co., Ltd. Automatic tuning of artificial neural networks
KR102100977B1 (ko) * 2016-02-03 2020-04-14 구글 엘엘씨 압축된 순환 신경망 모델

Also Published As

Publication number Publication date
WO2022102860A1 (ko) 2022-05-19

Similar Documents

Publication Publication Date Title
US11645493B2 (en) Flow for quantized neural networks
CN107844828B (zh) 神经网络中的卷积计算方法和电子设备
US11586883B2 (en) Residual quantization for neural networks
CN108108811B (zh) 神经网络中的卷积计算方法和电子设备
CN109445935B (zh) 云计算环境下一种高性能大数据分析系统自适应配置方法
US20200193274A1 (en) Training neural network accelerators using mixed precision data formats
US11392829B1 (en) Managing data sparsity for neural networks
EP3924892A1 (en) Adjusting activation compression for neural network training
EP3788559A1 (en) Quantization for dnn accelerators
US20230140185A1 (en) Neural network activation compression with non-uniform mantissas
JP2019032808A (ja) 機械学習方法および装置
EP4206957A1 (en) Model training method and related device
Daghero et al. Energy-efficient deep learning inference on edge devices
EP3906616A1 (en) Neural network activation compression with outlier block floating-point
CN110659725A (zh) 神经网络模型的压缩与加速方法、数据处理方法及装置
CN110781686B (zh) 一种语句相似度计算方法、装置及计算机设备
US20220004858A1 (en) Method for processing artificial neural network, and electronic device therefor
US20210073644A1 (en) Compression of machine learning models
CN113705775A (zh) 一种神经网络的剪枝方法、装置、设备及存储介质
CN115129386A (zh) 用于神经网络部署和执行的有效优化
CN112633482A (zh) 一种高效宽度图卷积神经网络模型及其训练方法
CN109325530A (zh) 基于少量无标签数据的深度卷积神经网络的压缩方法
CN113255922B (zh) 量子纠缠量化方法和装置、电子设备、计算机可读介质
KR20220064054A (ko) 행렬곱 연산량 감소 방법 및 장치
Wulfert et al. AIfES: A Next-Generation Edge AI Framework

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application