KR20210138382A - 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 - Google Patents

뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 Download PDF

Info

Publication number
KR20210138382A
KR20210138382A KR1020200056641A KR20200056641A KR20210138382A KR 20210138382 A KR20210138382 A KR 20210138382A KR 1020200056641 A KR1020200056641 A KR 1020200056641A KR 20200056641 A KR20200056641 A KR 20200056641A KR 20210138382 A KR20210138382 A KR 20210138382A
Authority
KR
South Korea
Prior art keywords
level
learning
reference level
quantization
value
Prior art date
Application number
KR1020200056641A
Other languages
English (en)
Other versions
KR102657904B1 (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 KR1020200056641A priority Critical patent/KR102657904B1/ko
Priority to US17/317,607 priority patent/US20210357753A1/en
Publication of KR20210138382A publication Critical patent/KR20210138382A/ko
Application granted granted Critical
Publication of KR102657904B1 publication Critical patent/KR102657904B1/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
    • 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)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치가 제공된다. 상기 양자화 장치는, 뉴럴 네트워크의 파라미터들의 값 중에서 설정값 이상의 높은 값부터 시작하여 낮은 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정하면서 기준 레벨을 토대로 한 학습을 수행하고, 상기 학습의 수행 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨의 설정 및 학습을 반복적으로 수행한다.

Description

뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치{Method and apparatus for multi-level stepwise quantization for neural network}
본 발명은 뉴럴 네트워크에 관한 것으로, 더욱 상세하게 말하자면, 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치에 관한 것이다.
딥러닝(deep-learning)을 이용한 뉴럴 네트워크(neural network)에 대한 연구가 활발히 진행되면서, 인간의 판단과 유사한 인지 검출 성능을 갖는 다양한 종류의 뉴럴 네트워크들이 계속 발표되어 왔다. 이러한 뉴럴 네트워크들은 전체 계산량 보다는 인식 성능을 목표로 했기 때문에 적게는 수십 메가 바이트부터 많게는 수백 메가 바이트에 이르는 매우 큰 파라미터를 필요로 하게 된다. 카메라로부터 입력되는 이미지 마다 인식 처리를 수행하기 때문에 매 프레임마다 큰 규모의 파라미터를 반복적으로 사용해야 한다. 따라서 높은 하드웨어 연산 성능을 보유한 GPU(Graphics Processing Unit) 서버나 전용 하드웨어 가속기 등이 탑재된 시스템이 아니면 운용하기가 매우 어려운 단점이 존재한다.
높은 검출 정확도와 하드웨어 계산 복잡도는 트레이드 오프(trade-off)의 관계가 존재한다. 따라서 근래에 들어서는 적절한 목표의 인식 검출률에 따라 다양한 응용 애플리케이션을 처리하기 위해 필요한 하드웨어 자원 등을 적절하게 배분해서 결정할 수 있는 알고리즘 등이 발표되고 있는 추세이다. 예를 들어, 모바일 애플리케이션에 적합하도록 성능 감쇄가 크지 않으면서도 전체 연산량을 대폭 절감시킨 모바일넷(MobileNet) 버전1/2/3 등이 연이어 발표되고 있다. 그리고 뉴럴 네트워크 내의 하이퍼 파라미터를 적절하게 결정될 수 있도록 다양하게 레이어 구조, 커널 크기 등을 변경하면서 학습을 진행하여 원하는 뉴럴 네트워크를 생성하도록 도와주는 NASNET, MNASNET 등이 발표되고 있다. 또한 뉴럴 네트워크의 복잡도는 크지만 필요로 하는 파라미터의 수를 대폭 절감시킨 DenseNet, PeleeNet 등도 발표되었다.
딥러닝 뉴럴 네트워크를 이용한 얼굴 인식 및 사물 인식에서, 높은 객체 검출 정확도를 달성하기 위해서는 뉴럴 네트워크 구조가 복잡해짐에 따라 많은 수의 레이어를 가질 수 밖에 없다. 레이어가 많아질수록 단일 이미지를 처리하기 위해서 대용량의 파라미터가 필요함을 의미한다. 따라서 대용량의 파라미터의 크기를 줄이기 위해 뉴럴 네트워크 압축 방식이 필요하다.
본 발명이 해결하고자 하는 과제는 뉴럴 네트워크에서 파라미터 크기를 감소시키는 양자화 방법 및 장치를 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 다중 레벨 단계적 양자화 과정을 통해 파라미터의 크기를 최적화하는 양자화 방법 및 장치를 제공하는 것이다.
본 발명의 일 실시 예에 따르면, 뉴럴 네트워크에서의 양자화 방법이 제공된다. 상기 양자화 방법은, 상기 뉴럴 네트워크의 파라미터들의 값 중에서 설정값 이상의 높은 값부터 시작하여 낮은 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정하는 단계; 및 상기 설정되는 기준 레벨을 고정화시킨 상태에서 기준 레벨 학습을 수행하는 단계를 포함하고, 상기 기준 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨을 설정하는 단계 및 상기 기준 레벨 학습을 수행하는 단계가 반복적으로 수행된다.
일 구현에서, 상기 양자화 방법은, 상기 기준 레벨 학습의 결과가 설정된 기준치를 만족하지 않는 경우에, 상기 기준 레벨에 대한 옵셋 레벨을 추가하고, 상기 옵셋 레벨을 고정화시킨 상태에서 학습을 수행하는 옵셋 레벨 학습을 수행하는 단계를 더 포함할 수 있다.
일 구현에서, 상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨을 설정하는 단계, 상기 기준 레벨 학습을 수행하는 단계 그리고 상기 옵셋 레벨 학습을 수행하는 단계가 반복적으로 수행될 수 있다.
일 구현에서, 상기 고정화는 학습시에 파라미터에 대한 업데이트를 수행하지 않는 것을 나타낼 수 있다.
일 구현에서, 상기 고정화는 상기 기준 레벨이나 상기 옵셋 레벨을 중심으로 설정 범위 내에 포함되는 파라미터들이 고정화되는 것을 포함할 수 있으며, 상기 설정 범위에 포함되지 않는 파라미터는 학습시에 업데이트되는 변동 파라미터일 수 있다.
일 구현에서, 상기 옵셋 레벨 학습을 수행하는 단계에서, 상기 옵셋 레벨은 상기 기준 레벨을 중심으로 설정 범위 내에 포함되는 파라미터 중에서 가장 낮은 값에 대응하는 레벨일 수 있다.
일 구현에서, 상기 옵셋 레벨의 추가는 상기 가장 낮은 값에 대응하는 레벨부터 시작하여 설정 배수만큼 스케일이 증가되는 방향으로 이루어질 수 있다.
일 구현에서, 상기 양자화 방법은, 상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 상기 변동 파라미터가 존재하지 않는 경우, 현재까지 설정된 기준 레벨과 추가된 옵셋 레벨을 토대로 양자화 비트를 결정하는 단계를 더 포함할 수 있다.
일 구현에서, 상기 양자화 비트를 결정하는 단계는, 상기 현재까지 설정된 기준 레벨의 수에 따라 상기 현재까지 설정된 기준 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계; 및 상기 현재까지 추가된 옵셋 레벨의 수에 따라 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계를 포함할 수 있다.
일 구현에서, 상기 양자화 방법은, 상기 양자화 비트를 결정하는 단계 이전에, 상기 현재까지 설정된 기준 레벨에 대응하는 파라미터와 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터를 제외한 나머지 파라미터는 0으로 설정하는 단계를 더 포함할 수 있다.
일 구현에서, 상기 기준 레벨을 설정하는 단계는, 상기 파라미터들의 값 중에서 최대값을 먼저 기준 레벨로 설정하고, 상기 최대값에서부터 최소 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정할 수 있다.
본 발명의 다른 실시 예에 따르면 뉴럴 네트워크에서의 양자화 장치가 제공된다. 상기 양자화 장치는, 입력 인터페이스 장치; 및 상기 인터페이스 장치를 통해 입력되는 데이터를 토대로 상기 뉴럴 네트워크에 대한 다중 레벨 다단계 양자화를 수행하도록 구성된 프로세서를 포함하며, 상기 프로세서는 상기 뉴럴 네트워크의 파라미터들의 값 중에서 설정값 이상의 높은 값부터 시작하여 낮은 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정하면서 기준 레벨을 토대로 한 학습을 수행하고, 상기 학습의 수행 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨의 설정 및 학습을 반복적으로 수행하도록 구성된다.
일 구현에서, 상기 프로세서는, 상기 뉴럴 네트워크의 파라미터들의 값 중에서 임의 값을 선택하여 기준 레벨을 설정하는 단계; 상기 기준 레벨을 고정화시킨 상태에서 학습을 수행하는 기준 레벨 학습을 수행하는 단계; 및 상기 기준 레벨 학습의 결과가 설정된 기준치를 만족하지 않는 경우에, 상기 기준 레벨에 대한 옵셋 레벨을 추가하고, 상기 옵셋 레벨을 고정화시킨 상태에서 학습을 수행하는 옵셋 레벨 학습을 수행하는 단계를 수행하도록 구성될 수 있으며, 상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨을 설정하는 단계, 상기 기준 레벨 학습을 수행하는 단계 그리고 상기 옵셋 레벨 학습을 수행하는 단계가 반복적으로 수행될 수 있다.
일 구현에서, 상기 고정화는 학습시에 파라미터에 대한 업데이트를 수행하지 않는 것을 나타낼 수 있다.
일 구현에서, 상기 고정화는 상기 기준 레벨이나 상기 옵셋 레벨을 중심으로 설정 범위 내에 포함되는 파라미터들이 고정화되는 것을 포함할 수 있으며, 상기 설정 범위에 포함되지 않는 파라미터는 학습시에 업데이트되는 변동 파라미터일 수 있다.
일 구현에서, 상기 옵셋 레벨 학습을 수행하는 단계에서, 상기 옵셋 레벨은 상기 기준 레벨을 중심으로 설정 범위 내에 포함되는 파라미터 중에서 가장 낮은 값에 대응하는 레벨일 수 있다.
일 구현에서, 상기 옵셋 레벨의 추가는 상기 가장 낮은 값에 대응하는 레벨부터 시작하여 설정 배수만큼 스케일이 증가되는 방향으로 이루어질 수 있다.
일 구현에서, 상기 프로세서는, 상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 상기 변동 파라미터가 존재하지 않는 경우, 현재까지 설정된 기준 레벨과 추가된 옵셋 레벨을 토대로 양자화 비트를 결정하는 단계를 추가로 수행하도록 구성될 수 있다.
일 구현에서, 상기 프로세서는 상기 양자화 비트를 결정하는 단계를 수행하는 경우, 상기 현재까지 설정된 기준 레벨의 수에 따라 상기 현재까지 설정된 기준 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계; 및 상기 현재까지 추가된 옵셋 레벨의 수에 따라 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계를 수행하도록 구성될 수 있다.
상기 프로세서는, 상기 양자화 비트를 결정하는 단계를 수행하기 이전에, 상기 현재까지 설정된 기준 레벨에 대응하는 파라미터와 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터를 제외한 나머지 파라미터는 0으로 설정하는 단계를 추가적으로 수행하도록 구성될 수 있다.
본 발명의 실시 예에 따르면, 다중 레벨 단계적 양자화 과정을 통해 파라미터의 크기를 최적화할 수 있다. 또한 기존에는 프루닝(pruning) 및 양자화 과정의 2단계가 수행되는데 반해, 본 발명의 실시 예에 따르면 양자화만 수행되어 파라미터를 최적화시킬 수 있다.
또한, 높은 레벨부터 낮은 레벨로 양자화를 진행함으로써, 가중치가 큰 값을 우선시하여 양자화 학습을 수행할 수 있다. 또한 기준 양자화 레벨의 값을 2의 승수로 적용함으로써 뉴럴 네트워크에서의 컨볼루션 연산시에도 곱셈기 연산을 시프트 연산으로 대체하는 효과를 가질 수 있다.
또한, 기준 레벨 가중치와 옵셋 레벨 가중치로 분할하여 양자화를 각각 따로 수행할 수 있기 때문에 전체 파라미터 비트 규모도 줄일 수 있다.
도 1은 이미지 객체 인지 동작을 수행하는 뉴럴 네트워크의 구조를 나타낸 도이다.
도 2는 일반적인 뉴럴 네트워크에서의 파라미터 압축 방법을 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법을 나타낸 도이다.
도 4는 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법의 결과를 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법의 흐름도이다.
도 6은 본 발명의 실시 예에 따른 양자화 장치의 구조를 나타낸 도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
또한, 본 발명의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 도면을 참조하여 본 발명의 실시 예에 따른 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치에 대하여 설명한다.
도 1은 이미지 객체 인지 동작을 수행하는 뉴럴 네트워크의 구조를 나타낸 도이다.
도 1에서, 뉴럴 네트워크는 CNN(Convolutional Neural Network)이며, 컨볼루셔널(convolutional) 레이어, 풀링(pooling) 레이어, FC(fully connected) 레이어, 소프트맥스(softmax) 레이어 등을 포함한다. 카메라로부터 비디오나 사진 이미지의 데이터가 CNN으로 입력되면, CNN을 통해 객체의 종류(예를 들어, 객체의 종류는 고양이)나 객체의 위치 등의 결과를 출력한다.
이러한 CNN에서의 연산은 대부분 컨볼루션널 연산이며, 커널(kernel)이라고 불리우는 가중치(weigth), 바이어스(bias) 등의 파라미터를 필요로 한다.
이러한 뉴럴 네트워크 구조 설계시, 32-비트 단정밀도 부동 소수점(single-precision floating point) 기반의 연산을 사용하여 학습이 진행되며, 높은 검출 정확도를 위해 뉴럴 네트워크의 구조를 최적화하는데 목표가 맞추어져 있다. 완성된 뉴럴 네트워크 구조를 이용한 하드웨어 객체 인식 동작시, 주로 16-비트 반정밀도 부동 소수점(half-precision floating point) 데이터 형식이나, 8-비트 고정 소수점(fixed point) 형식의 데이터가 주로 사용된다. 전체 파라미터의 크기를 더 줄이기 위해 {-1, 0. 1}만을 사용하는 터너리(Ternary), {-1, 1} 만을 사용하는 바이너리(Binary) 등의 표현을 이용하여 최소한의 양자화 과정을 이용하여 학습을 수행하기도 한다.
그러나 파라미터의 정보를 더욱 적은 비트 크기로 표현하면 전체 크기를 줄일 수 있으나, 그에 따른 검출 정확도가 떨어지는 단점을 갖는다. 따라서 구현에 따라 일부 레이어에 대해서만 터너리, 바이너리를 사용하고, 반정밀도 부동소수점 및 고정 소수점 연산을 결합하여 사용하기도 한다.
도 2는 일반적인 뉴럴 네트워크에서의 파라미터 압축 방법을 나타낸 도이다.
일반적으로, 파라미터 압축을 위해, 2개의 단계를 거쳐 양자화 과정이 진행된다.
첫 번째 단계는 낮은 가중치를 제거하는 프루닝(pruning) 학습 단계이다. 낮은 가중치 값을 갖는 연결을 ‘0’으로 근사화하여, 필요로 하는 전체 MAC(multiply accumulate) 연산 수를 낮추는 방법이다. 이때, 적정한 문턱값(threshold)을 필요로 하는데, 이는 해당 레이어에서 사용되는 가중치의 분포에 따라 결정된다.
표준 편차의 값에 따라서 일정 상수를 곱한 값부터 시작하여 학습을 진행한다. 인지 검출 정확도가 감쇄하지 않는 조건하에서 문턱값을 상향시킴으로써 각각의 레이어에서 프루닝 효과를 증가시키는 방향으로 학습을 진행한다. 각 레이어 마다 진행되는 프루닝 학습은 첫 번째 레이어부터 할 수도 있으며 마지막 레이어부터 진행될 수도 있다. 이러한 과정을 통해 전체 뉴럴 네트워크에서 레이어별 최종 문턱값이 결정되면, 제로(zero)로 변환된 가중치들과 비제로(non-zero) 가중치들로 구분될 수 있다. ‘0’인 경우는 MAC 연산이 필요 없으므로 비제로 가중치에 대해서만 MAC 연산을 진행하게 된다.
두 번째 단계는 비제로 가중치들에 대해서 양자화를 수행하는 단계이다. 전술한 바와 같이 일반적인 양자화 방법은 32-비트 부동 소수점 표현을 16-비트 혹은 8-비트 부동이나 고정 소수점 형태로 변환하거나, 터너리/바이너리 등으로 형식으로 변환하여 학습을 수행하는 것이다.
종래의 경우, 위에 기술된 2가지 단계를 모두 거쳐야 하드웨어에서 사용 가능한 파라미터 결과를 얻을 수 있다. 또한 양자화 과정에서 사용되는 데이터간 간격이 균등 분할되어 분포에 따른 최적화된 양자화 결과가 출력되지 않을 수 있다.
근래에 제안되고 있는 뉴럴 네트워크는 구조 설계 단계부터 노드간 연결의 최적화 과정을 거치기 때문에 종래의 프루닝 방법으로 성능이 확보되지 못하는 있는 실정이다. 이는 기존 프루닝 방법으로 인해 얻어지는 효과가 감소하고 있다는 의미이기도 하다.
본 발명의 실시 예에서는 레벨 기준값에 의한 단계적 양자화 방법을 제공한다. 여기서 뉴럴 네트워크 파라미터가 여러 레벨의 기준값을 중심으로 하여 정규 분포 형태로 존재하도록 학습하는 방법이 선행되며, 이를 위해 높은 기준값부터 단계적으로 고정시켜 학습을 진행해 나간다. 뉴럴 네트워크의 파라미터는 뉴럴 네트워크에서 각 레이어에 입력되는 데이터를 다음 레이어에 전달할 때 레이어에 입력되는 데이터의 반영 강도를 결정하는 값일 수 있으며, 예를 들어, 가중치(weight), 바이어스(bias) 등을 포함할 수 있다. 여기서, 파라미터는 학습 과정에서 발생하는 기타 레이어의 파라미터는 제외한다. 예를 들어, 학습 후에 객체 인지만 수행하는 인퍼런스 동작에서는 배치 노멀라이져(Batch Normalizer) 레이어의 파라미터의 경우, 컨볼루션널 레이어에서 사용되는 가중치 및 바이어스 파라미터로 흡수되어 구현되기 때문에, 배치 노멀라이저에서 사용되는 평균, 분산, 스케일, 시프트 등의 파라미터는 제외한다.
도 3은 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법을 나타낸 도이다.
본 발명의 실시 예에서는 뉴럴 네트워크에서 필요한 파라미터를 계층적 양자화 과정을 통해 전체 크기를 획기적으로 낮추기 위해, 가중치의 분포에 따라서 높은 양자화 레벨부터 양자화 과정을 시작하여 낮은 양자화 레벨까지 순서대로 양자화를 수행한다. 계층적인 방법을 사용하기 때문에 양자화 학습이 수반되어 진행된다. 양자화 과정은 기준점이 되는 값과 기준점에 따른 옵셋(offset) 값을 구하는 과정으로 진행된다.
구체적으로, 원래의 네트워크에서, 부동 소수점 파라미터를 사용하여 학습이 완료된 가중치들의 연결도와 확률 분포 함수를 볼 수 있다(도 3의 310).
이러한 상태에서, 양자화 단계1을 수행한다(도 3의 320). 이를 위해, 가중치 중에서 가장 큰 값을 기준으로 상위 레벨의 베이스 기준 레벨을 만든다. 가중치 중에서 가장 큰 값을 기준으로 베이스 기준 레벨을 설정하고, 해당 베이스 기준 레벨만 존재하는 상태로 만든 후에 이를 고정화시킨 후에 학습을 진행한다. 즉, 베이스 기준 레벨을 중심으로 하는 일정 범위 내의 가중치들은 고정화시키고 학습을 진행한다. 여기서 고정화의 의미는 학습을 통해 가중치가 업데이트 되지 않음을 의미한다.
학습 후에 검출 정확도가 기준치 즉, 베이스 라인만큼 출력되지 않는다면 옵셋(offset) 레벨을 하나씩 추가한다. 옵셋 레벨은 필요성에 따라서 여러 레벨이 추가될 수 있다. 이 과정에서 검출 정확도가 베이스 라인 정도의 성능이 나온다면 레벨 추가는 하지 않는다.
가장 큰 값의 베이스 기준 레벨 및 옵셋 레벨이 고정화된다면, 양자화 단계2를 수행한다(도 3의 330). 이를 위해, 하위 레벨의 베이스 기준 레벨을 만든다. 예를 들어, 고정화되지 않은 가중치들 중에서 가장 큰 값을 기준으로 하위 레벨의 베이스 기준 레벨을 설정하고, 해당 베이스 기준 레벨만 존재하는 상태로 만든 후에 이를 고정화시킨 후에 학습을 진행한다. 이 경우에도, 학습 후에 검출 정확도가 베이스 라인만큼 출력되지 않는다면 옵셋 레벨을 하나씩 추가한다. 옵셋 레벨은 필요성에 따라서 여러 레벨이 추가될 수 있으며, 검출 정확도가 베이스 라인 정도의 성능이 나온다면 레벨 추가가 수행되지 않는다.
위에 기술된 바와 과정을 반복해서 수행하면 여러 개의 베이스 기준 레벨이 만들어질 수 있고 각각의 베이스 기준 레벨에 따른 여러 개의 옵셋 레벨이 생성될 수 있다.
이러한 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법을 통해 얻어진 결과를 살펴보면 다음과 같다.
첫 번째로, 기반이 되는 베이스 기준 라벨 즉, 중앙점(coarse value)을 기준으로 어느 정도의 옵셋(fine offset)값들을 이용하여 학습을 진행한다는 것이다. 그룹별로 양자화를 수행하는 것이 아니라 높은 레벨의 값에서 낮은 레벨의 값으로 양자화를 수행한다는 의미이다. 또한 학습에 따라서 옵셋 레벨이 필요 없을 수도 있다. 예를 들어 베이스 기준 레벨의 간격이 2배수 만큼의 비례 거리를 유지하고 옵셋 레벨이 필요 없는 경우에는, 모든 가중치들의 MAC 연산들이 곱셈기 없이 시프터(shifter) 형태로 곱셈이 이루어질 수 있다. 또한, 베이스 기준 레벨이 1개만 존재하고 옵셋 레벨이 필요 없는 경우, 터너리(ternary) 뉴럴 네트워크의 동작과 유사한 결과가 얻어질 수 있다.
두 번째로, 낮은 레벨의 베이스 기준 레벨에 도달하기 전에 변동 가중치의 학습이 의미가 없어진다면 프루닝의 효과도 볼 수 있다. 이는 종래의 방법에서 프루닝을 수행하고 양자화시키는 2 단계의 동작을 단일 동작으로 모두 처리한다는 것이다. 차이점은 종래의 방법은 최대한 많은 수의 가중치를 0으로 근사화시키고 나머지 활성 가중치를 이용하여 원래의 검출 정확도를 유지하는 방법이라고 한다면, 본 발명의 실시 예에 따른 방법은 약한 의미의 프루닝 방법이라고 볼 수 있다. 하지만 낮은 값의 가중치들은 그만큼 적은 비트 폭으로 표현될 수 있다는 장점을 갖는다.
도 4는 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법의 결과를 나타낸 예시도이다.
도 4에서, 410은 균등한 양자화를 통해 얻어진 8비트 가중치들을 나타낸다. 가중치들의 분포가 최소값과 최대값 사이에 균등 분포를 갖는다면 균등 양자화 방법이 가장 최적화된 방법일 것이다. 그러나 기존에 설명한 바와 같이 가중치들의 확률 분포는 정규 분포와 같은 형태를 갖는 것이 일반적이다.
본 발명의 실시 예에 따른 다중 레벨 단계적 양자화를 수행하면 도 4의 420과 같은 결과가 획득된다. 베이스 기준 레벨(베이스 가중치)이 ‘0’까지 포함한다면 5개의 레벨이고, 옵셋 레벨은 베이스 기준 레벨 ‘0’인 경우까지 포함하여 3개의 레벨이다. 따라서 베이스 가중치들은 3-비트로 양자화될 수 있고 옵셋 레벨은 2-비트로 양자화될 수 있다. 만약에 가중치가 비제로인 경우에 한해서 인코딩을 한다고 하면, 베이스 기준 레벨은 총 4개, 옵셋 레벨은 총 2개이며, 이에 따라 베이스 기준 레벨에 대응하는 가중치들은 2-비트로 양자화될 수 있고 옵셋 레벨의 가중치들은 1-비트로 양자화될 수 있다.
도 5는 본 발명의 실시 예에 따른 다중 레벨 단계적 양자화 방법의 흐름도이다.
본 발명의 실시 예에 따른 양자화 방법은 뉴럴 네트워크에서 모든 레이어에 동시에 적용해서 수행될 수도 있으며, 또는 학습 시간이 오래 소요되어도, 앞단 레이어나 뒷단 레이어부터, 레이어별로 수행될 수도 있다.
먼저, 뉴럴 네트워크의 파라미터가 여러 레벨의 기준값을 중심으로 하여 정규 분포 형태로 존재하도록 학습하는 방법이 선행되어 예를 들어, 도 3의 310과 같은 파라미터인 가중치들의 연결도와 확률 분포 함수가 획득된 것으로 가정한다.
첨부한 도 5에서와 같이, 뉴럴 네트워크의 레이어의 파라미터 즉, 가중치들 중에서 최대 값을 선택하고, 선택된 최대 값을 베이스 기준 레벨로 할당한다(S100). 그리고 베이스 기준 레벨은 고정화시킨다(S110). 고정화의 의미는 학습시에 가중치 업데이트를 수행하지 않는다는 것을 나타낸다. 또한 해당 값만 고정하는 것이 아니라 베이스 기준 레벨을 중심으로 일정 범위 내의 값들은 모두 베이스 기준 레벨로 되어야 하기 때문에, 일정 범위 내 즉, 설정 영역 내의 모든 가중치 값들이 고정화된다. 따라서 설정 영역 내의 가중치들은 고정되어 학습시에 업데이트되지 않으며, 설정 영역에 포함되지 않는 나머지 가중치들은 변동 가중치로서, 학습시에 계속 업데이트 될 수 있다. 이러한 설정 영역은 학습시에 다른 파라미터로서 주어질 수 있다.
기준 레벨을 고정시킨 다음에 학습을 진행하고(S120), 학습 결과에 따른 검출 정확도를 산출하여 설정된 값(기준치)과 비교한다(S130). 학습 결과에 따라 검출 정확도를 획득하는 것은 공지된 기술을 사용할 수 있으므로 여기서는 상세한 설명을 생략한다.
학습 결과에 따른 검출 정확도가 설정된 값 이상이 아닌 경우 즉, 원하는 검출 정확도가 출력되지 않으면, 옵셋 레벨을 추가하여 학습을 추가적으로 수행한다. 베이스 기준 레벨을 중심으로 하는 설정 영역 내에 포함되는 가중치 값들 중에서 옵셋 레벨을 추가한다. 설명의 편의상, 베이스 기준 레벨을 중심으로 하는 설정 영역을 고정 레벨 가중치 영역이라고 명명할 수도 있다.
고정 레벨 가중치 영역에 포함되는 가중치 값들을 기반으로 옵셋 레벨을 추가한다. 옵셋 레벨 추가는 고정 레벨 가중치 영역내의 가장 낮은 가중치 값에 대응하는 레벨로부터 시작하여 설정 배수(예를 들어, 2배수) 만큼 스케일이 증가되는 방향으로 수행된다. 즉, 고정 레벨 가중치 영역내의 가장 낮은 가중치 값에 대응하는 옵셋 레벨을 추가하여 학습을 수행하여도 원하는 검출 정확도가 나오지 않으면, 가장 낮은 가중치 값의 2배수에 대응하는 값에 대응하는 옵셋 레벨을 추가하여 학습을 수행하는 방식으로, 옵셋 레벨 추가 및 그에 따른 학습이 수행된다. 여기서 2배수 만큼 스케일을 증가시키는 이유는 베이스 기준 레벨부터 실제 떨어진 거리가 어느 값이 되더라도 1개 비트를 사용하여 표현할 수 있게 하기 위함이다. 만약에 스케일이 베이스 기준 레벨의 영역에서 최대 값에 이르러서도 원하는 검출 정확도가 나오지 않는다면 옵셋 기준 레벨을 추가해야 한다.
학습 결과에 따른 검출 정확도가 설정된 값 이상이 아닌 경우 옵셋 레벨 추가를 수행한다. 이를 위해, 현재 베이스 기준 레벨에 대해 옵셋 레벨이 없는 상태인 경우에는 옵셋 레벨을 추가하고(S140, S150), 현재 옵셋 레벨이 있는 상태에서 해당 옵셋 레벨의 스케일이 최대인 경우(현재 옵셋 레벨의 스케일이 해당 고정 레벨 가중치 영역의 최대값인 경우)에는 다른 옵셋 레벨을 추가한다(S140, S150). 반면, 현재 옵셋 레벨이 있는 상태에서 해당 옵셋 레벨의 스케일이 최대가 아닌 경우에는, 현재 옵셋 레벨의 스케일을 2배수만큼 증가시킨다(S160).
이와 같이 옵셋 레벨을 추가하거나 옵셋 레벨의 스케일을 증가시킨 다음에, 해당 옵셋 레벨을 이용한 학습을 수행한다. 즉, 옵셋 레벨을 중심으로 일정 범위 내 즉, 설정 영역 내의 가중치들은 고정되어 학습시에 업데이트되지 않으며, 설정 영역에 포함되지 않는 나머지 가중치들은 변동 가중치로서, 학습시에 계속 업데이트 될 수 있다. 옵셋 레벨 추가 후, 학습을 진행한 결과에 따른 검출 정확도가 설정된 값과 비교된다.
베이스 기준 레벨에서의 학습 또는 옵셋 레벨 추가 후의 학습을 수행하여, 단계(S130)에서, 학습에 따른 검출 정확도가 설정된 값 이상으로 원하는 검출 정확도가 나온 경우, 변동 가중치가 존재하는지의 여부에 따라 기준 레벨 추가를 수행한다(S170).
학습 결과 원하는 검출 정확도가 나와도, 베이스 기준 레벨 또는 옵셋 레벨을 중심으로 한 설정 영역에 포함되지 않는 변동 가중치들이 존재하면, 기준 레벨을 추가한다(S180). 예를 들어, 변동 가중치들 중에서 가장 높은 값을 추가적인 기준 레벨로 설정할 수 있다. 단계(S100)에서 설정된 베이스 기준 레벨 이외에, 상이한 기준 레벨을 추가하고, 추가된 기준 레벨을 토대로 기준 레벨 고정화시키고, 다시 학습을 진행한다. 따라서 베이스 기준 레벨 이외에 추가된 기준 레벨을 중심으로 하는 설정 영역 내의 가중치들은 고정화되면서 학습이 수행된다. 추가된 기준 레벨에 대해서도 위의 단계(S110~S170)가 반복적으로 수행된다. 이에 따라, 베이스 기준 레벨을 포함하는 기준 레벨의 수와 각각의 기준 레벨에 따른 옵셋 레벨의 수가 구해지게 된다.
단계(S180)에서, 학습에 따른 검출 정확도가 설정된 값 이상으로 원하는 검출 정확도가 나오고, 변동 가중치가 존재하지 않는 경우, 학습에 사용된 기준 레벨(들)과 옵셋 레벨(들)을 제외한 나머지 가중치들은 0으로 설정한다(S190).
다음에, 학습에 따라 획득된 기준 레벨과 옵셋 레벨에 대해 각각 양자화 비트를 결정한다(S200). 즉, 학습에 따라 사용된 기준 레벨의 수(베이스 기준 레벨을 포함)에 따라 베이스 기준 가중치들에 대한 양자화 비트를 결정하고, 학습에 따라 사용된 옵셋 레벨의 수에 따라 옵셋 가중치들에 대한 양자화 비트를 결정한다. 그러면 각각의 레벨 수에 따라서 양자화 비트 폭이 결정될 수 있다.
이러한 본 발명의 실시 예에 따르면 가중치들에 대해서, 그룹별로 양자화를 수행하는 것이 아니라 높은 레벨의 값에서 낮은 레벨의 값으로 양자화가 이루어지게 된다.
도 6은 본 발명의 실시 예에 따른 양자화 장치의 구조를 나타낸 도이다.
본 발명의 실시 예에 따른 양자화 장치는 첨부한 도 6에 도시되어 있듯이, 컴퓨터 시스템으로 구현될 수 있다.
양자화 장치(100)는 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 및 저장 장치(150)를 포함한다. 각각의 구성 요소들은 버스(bus)(160)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성요소들은 공통 버스(160)가 아니라, 프로세서(110)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.
프로세서(110)는 메모리(120) 및 저장 장치(150) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit, CPU) 또는 본 발명의 실시 예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 이러한 프로세서(110)는 위의 도 3 내지 도 5를 토대로 설명한 방법에서 대응하는 기능을 구현하도록 구성될 수 있다.
메모리(120)는 프로세서(110)와 연결되고 프로세서(110)의 동작과 관련한 다양한 정보를 저장한다. 메모리(120)는 프로세서(110)에서 수행하기 위한 명령을 저장하고 있거나 저장 장치(150)로부터 명령을 로드하여 일시 저장할 수 있다. 프로세서(110)는 메모리(120)에 저장되어 있거나 로드된 명령을 실행할 수 있다. 메모리(120)는 ROM(121) 및 RAM(122)를 포함할 수 있다.
본 발명의 실시 예에서 메모리(120)/저장 장치(150)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (20)

  1. 뉴럴 네트워크에서의 양자화 방법으로서,
    상기 뉴럴 네트워크의 파라미터들의 값 중에서 설정값 이상의 높은 값부터 시작하여 낮은 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정하는 단계; 및
    상기 설정되는 기준 레벨을 고정화시킨 상태에서 기준 레벨 학습을 수행하는 단계
    를 포함하고,
    상기 기준 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨을 설정하는 단계 및 상기 기준 레벨 학습을 수행하는 단계가 반복적으로 수행되는, 양자화 방법.
  2. 제1항에 있어서,
    상기 기준 레벨 학습의 결과가 설정된 기준치를 만족하지 않는 경우에, 상기 기준 레벨에 대한 옵셋 레벨을 추가하고, 상기 옵셋 레벨을 고정화시킨 상태에서 학습을 수행하는 옵셋 레벨 학습을 수행하는 단계
    를 더 포함하는, 양자화 방법.
  3. 제2항에 있어서,
    상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습의 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨을 설정하는 단계, 상기 기준 레벨 학습을 수행하는 단계 그리고 상기 옵셋 레벨 학습을 수행하는 단계가 반복적으로 수행되는, 양자화 방법.
  4. 제2항에 있어서,
    상기 고정화는 학습시에 파라미터에 대한 업데이트를 수행하지 않는 것을 나타내는, 양자화 방법.
  5. 제4항에 있어서,
    상기 고정화는 상기 기준 레벨이나 상기 옵셋 레벨을 중심으로 설정 범위 내에 포함되는 파라미터들이 고정화되는 것을 포함하고, 상기 설정 범위에 포함되지 않는 파라미터는 학습시에 업데이트되는 변동 파라미터인, 양자화 방법.
  6. 제2항에 있어서,
    상기 옵셋 레벨 학습을 수행하는 단계에서,
    상기 옵셋 레벨은 상기 기준 레벨을 중심으로 설정 범위 내에 포함되는 파라미터 중에서 가장 낮은 값에 대응하는 레벨인, 양자화 방법.
  7. 제6항에 있어서,
    상기 옵셋 레벨의 추가는 상기 가장 낮은 값에 대응하는 레벨부터 시작하여 설정 배수만큼 스케일이 증가되는 방향으로 이루어지는, 양자화 방법.
  8. 제2항에 있어서,
    상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 상기 변동 파라미터가 존재하지 않는 경우, 현재까지 설정된 기준 레벨과 추가된 옵셋 레벨을 토대로 양자화 비트를 결정하는 단계
    를 더 포함하는 양자화 방법.
  9. 제8항에 있어서,
    상기 양자화 비트를 결정하는 단계는
    상기 현재까지 설정된 기준 레벨의 수에 따라 상기 현재까지 설정된 기준 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계; 및
    상기 현재까지 추가된 옵셋 레벨의 수에 따라 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계
    를 포함하는, 양자화 방법.
  10. 제8항에 있어서,
    상기 양자화 비트를 결정하는 단계 이전에,
    상기 현재까지 설정된 기준 레벨에 대응하는 파라미터와 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터를 제외한 나머지 파라미터는 0으로 설정하는 단계
    를 더 포함하는, 양자화 방법.
  11. 제1항에 있어서,
    상기 기준 레벨을 설정하는 단계는 상기 파라미터들의 값 중에서 최대값을 먼저 기준 레벨로 설정하고, 상기 최대값에서부터 최소 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정하는, 양자화 방법.
  12. 뉴럴 네트워크에서의 양자화 장치로서,
    입력 인터페이스 장치; 및
    상기 인터페이스 장치를 통해 입력되는 데이터를 토대로 상기 뉴럴 네트워크에 대한 다중 레벨 다단계 양자화를 수행하도록 구성된 프로세서
    를 포함하며,
    상기 프로세서는 상기 뉴럴 네트워크의 파라미터들의 값 중에서 설정값 이상의 높은 값부터 시작하여 낮은 값으로의 방향으로 임의 값을 선택하여 기준 레벨을 설정하면서 기준 레벨을 토대로 한 학습을 수행하고, 상기 학습의 수행 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨의 설정 및 학습을 반복적으로 수행하도록 구성되는, 양자화 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 뉴럴 네트워크의 파라미터들의 값 중에서 임의 값을 선택하여 기준 레벨을 설정하는 단계;
    상기 기준 레벨을 고정화시킨 상태에서 학습을 수행하는 기준 레벨 학습을 수행하는 단계; 및
    상기 기준 레벨 학습의 결과가 설정된 기준치를 만족하지 않는 경우에, 상기 기준 레벨에 대한 옵셋 레벨을 추가하고, 상기 옵셋 레벨을 고정화시킨 상태에서 학습을 수행하는 옵셋 레벨 학습을 수행하는 단계
    를 수행하도록 구성되고,
    상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 학습시에 업데이트가 수행되는 변동 파라미터가 존재하지 않을 때까지, 상기 기준 레벨을 설정하는 단계, 상기 기준 레벨 학습을 수행하는 단계 그리고 상기 옵셋 레벨 학습을 수행하는 단계가 반복적으로 수행되는, 양자화 장치.
  14. 제13항에 있어서,
    상기 고정화는 학습시에 파라미터에 대한 업데이트를 수행하지 않는 것을 나타내는, 양자화 장치.
  15. 제14항에 있어서,
    상기 고정화는 상기 기준 레벨이나 상기 옵셋 레벨을 중심으로 설정 범위 내에 포함되는 파라미터들이 고정화되는 것을 포함하고, 상기 설정 범위에 포함되지 않는 파라미터는 학습시에 업데이트되는 변동 파라미터인, 양자화 장치.
  16. 제13항에 있어서,
    상기 옵셋 레벨 학습을 수행하는 단계에서, 상기 옵셋 레벨은 상기 기준 레벨을 중심으로 설정 범위 내에 포함되는 파라미터 중에서 가장 낮은 값에 대응하는 레벨인, 양자화 장치.
  17. 제16항에 있어서,
    상기 옵셋 레벨의 추가는 상기 가장 낮은 값에 대응하는 레벨부터 시작하여 설정 배수만큼 스케일이 증가되는 방향으로 이루어지는, 양자화 장치.
  18. 제13항에 있어서,
    상기 프로세서는,
    상기 기준 레벨 학습의 결과 또는 상기 옵셋 레벨 학습 결과가 설정된 기준치를 만족하면서 상기 파라미터들 중에서 상기 변동 파라미터가 존재하지 않는 경우, 현재까지 설정된 기준 레벨과 추가된 옵셋 레벨을 토대로 양자화 비트를 결정하는 단계
    를 추가로 수행하도록 구성되는, 양자화 장치.
  19. 제`18항에 있어서,
    상기 프로세서는 상기 양자화 비트를 결정하는 단계를 수행하는 경우,
    상기 현재까지 설정된 기준 레벨의 수에 따라 상기 현재까지 설정된 기준 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계; 및
    상기 현재까지 추가된 옵셋 레벨의 수에 따라 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터의 양자화 비트를 결정하는 단계
    를 수행하도록 구성되는, 양자화 장치.
  20. 제18항에 있어서,
    상기 프로세서는, 상기 양자화 비트를 결정하는 단계를 수행하기 이전에,
    상기 현재까지 설정된 기준 레벨에 대응하는 파라미터와 상기 현재까지 추가된 옵셋 레벨에 대응하는 파라미터를 제외한 나머지 파라미터는 0으로 설정하는 단계
    를 추가적으로 수행하도록 구성되는, 양자화 장치.
KR1020200056641A 2020-05-12 2020-05-12 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 KR102657904B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200056641A KR102657904B1 (ko) 2020-05-12 2020-05-12 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
US17/317,607 US20210357753A1 (en) 2020-05-12 2021-05-11 Method and apparatus for multi-level stepwise quantization for neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200056641A KR102657904B1 (ko) 2020-05-12 2020-05-12 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210138382A true KR20210138382A (ko) 2021-11-19
KR102657904B1 KR102657904B1 (ko) 2024-04-17

Family

ID=78512538

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200056641A KR102657904B1 (ko) 2020-05-12 2020-05-12 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치

Country Status (2)

Country Link
US (1) US20210357753A1 (ko)
KR (1) KR102657904B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11379991B2 (en) * 2020-05-29 2022-07-05 National Technology & Engineering Solutions Of Sandia, Llc Uncertainty-refined image segmentation under domain shift

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180037558A (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법
KR20180129211A (ko) * 2017-05-25 2018-12-05 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
US20190138882A1 (en) * 2017-11-07 2019-05-09 Samusung Electronics Co., Ltd. Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180037558A (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법
KR20180129211A (ko) * 2017-05-25 2018-12-05 삼성전자주식회사 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
US20190138882A1 (en) * 2017-11-07 2019-05-09 Samusung Electronics Co., Ltd. Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization

Also Published As

Publication number Publication date
US20210357753A1 (en) 2021-11-18
KR102657904B1 (ko) 2024-04-17

Similar Documents

Publication Publication Date Title
US11043962B2 (en) Information processing apparatus, information processing method, and recording medium
US20210089922A1 (en) Joint pruning and quantization scheme for deep neural networks
WO2020019236A1 (en) Loss-error-aware quantization of a low-bit neural network
US20200012926A1 (en) Neural network learning device and neural network learning method
CN110969251B (zh) 基于无标签数据的神经网络模型量化方法及装置
CN110413255B (zh) 人工神经网络调整方法和装置
CN110555450A (zh) 人脸识别神经网络调整方法和装置
EP4080416A1 (en) Adaptive search method and apparatus for neural network
EP3906507A1 (en) Dithered quantization of parameters during training with a machine learning tool
US20190279072A1 (en) Method and apparatus for optimizing and applying multilayer neural network model, and storage medium
CN110555508A (zh) 人工神经网络调整方法和装置
KR102655950B1 (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
CN111758104B (zh) 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
CN110705708A (zh) 卷积神经网络模型的压缩方法、装置及计算机存储介质
KR20210138382A (ko) 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
CN111383157B (zh) 图像处理方法、装置、车载运算平台、电子设备及系统
CN114943335A (zh) 一种三值神经网络逐层优化方法
CN113177627B (zh) 优化系统、重新训练系统及其方法及处理器和可读介质
CN116306879A (zh) 数据处理方法、装置、电子设备以及存储介质
WO2022134946A1 (zh) 模型训练方法、装置、存储介质及设备
US11410036B2 (en) Arithmetic processing apparatus, control method, and non-transitory computer-readable recording medium having stored therein control program
CN114492778A (zh) 神经网络模型的运行方法、可读介质和电子设备
CN111614358B (zh) 基于分通道量化的特征提取方法、系统、设备及存储介质
CN114139678A (zh) 卷积神经网络量化方法、装置、电子设备和存储介质

Legal Events

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