KR20180082344A - 가중치 비트 감축을 위한 반복적인 딥 러닝 양자화 알고리즘 및 방법 - Google Patents

가중치 비트 감축을 위한 반복적인 딥 러닝 양자화 알고리즘 및 방법 Download PDF

Info

Publication number
KR20180082344A
KR20180082344A KR1020180002425A KR20180002425A KR20180082344A KR 20180082344 A KR20180082344 A KR 20180082344A KR 1020180002425 A KR1020180002425 A KR 1020180002425A KR 20180002425 A KR20180002425 A KR 20180002425A KR 20180082344 A KR20180082344 A KR 20180082344A
Authority
KR
South Korea
Prior art keywords
layer
cluster
clusters
quantization
clustering
Prior art date
Application number
KR1020180002425A
Other languages
English (en)
Other versions
KR102668734B1 (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 삼성전자주식회사
Publication of KR20180082344A publication Critical patent/KR20180082344A/ko
Application granted granted Critical
Publication of KR102668734B1 publication Critical patent/KR102668734B1/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
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)
  • Computational Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)

Abstract

딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 시스템 및 방법은 양자화 모듈 및 클러스터-개수 감축 모듈을 포함한다. 양자화 모듈은 딥-러닝 네트워크의 양자화 레이어 각각의 뉴렬 가중치들을 양자화한다. 클러스터-개수 감축 모듈은 복수의 양자화 레이어의 클러스터링 오차들의 최소값인 클러스터링 오차를 갖는 레이어에 대한 클러스터들의 기결정된 개수를 감축한다. 양자화 모듈은 레이어에 대한 감축된 클러스터들의 기결정된 개수에 근거하여 재양자화한다. 클러스터-개수 감축 모듈은 복수의 양자화된 레이어의 클러스터링 오차들의 최소값인 클러스터링 오차를 갖는 다른 레이어를 더 결정하고, 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값에 의하여 감축될 때까지 다른 레이어에 대한 클러스터들의 기결정된 개수를 감축한다.

Description

가중치 비트 감축을 위한 반복적인 딥 러닝 양자화 알고리즘 및 방법{METHOD AND ALGORITHM OF RECURSIVE DEEP LEARNING QUANTIZATION FOR WEIGHT BIT REDUCTION}
본 발명은 딥-러닝 네트워크에 관한 것으로, 좀 더 구체적으로 딥-러닝 네트워크의 가중치 스토리지 비트들을 감축하는 장치 및 방법에 관한 것이다.
딥 러닝은 인공 지능(artificial intelligence, AI) 및 컴퓨터 비전(computer vision) 분야에서 널리 사용되는 기술이다. 컨볼루션 뉴럴 네트워크들(convolution neural networks, CNNs), 심층-신뢰 네트워크들(deep-belief networks, DBNs), 및 오토인코더들(autoencoders)과 같은 다양한 딥-러닝 아키텍쳐들은 시각적인 객체 인식, 자동 대화 인식, 자연 언어 처리, 및 음악/음향 신호 처리와 같은 작업들에 대한 최신의 결과들을 생성하는 것으로 보여왔다. 딥 러닝의 주된 노력은 다양한 네트워크 아키텍쳐들, 러닝 알고리즘들, 및 어플리케이션들에 대한 소프트웨어 구현에 포커싱 되어왔다. 그럼에도, 더욱 강력한 온-보드 러닝 행위를 구체화하는 하드웨어 구현들은 여전히 제한된다. 딥-러닝 하드웨어에 대한 주요 도전 과제는 부적합한 모델 정밀도, 더욱 구체적으로 네트워크 가중치들 및 데이터 입력들의 낮은 계조도와 연관된다. 예를 들어, 소프트웨어 구현은 두 배-정밀도(double-precision) (64 비트) 연산을 만족할 수 있지만, 물리적인 크기 및 전력 소모와 같은 하드웨어 제한들을 고려할 때, 이러한 정밀도 레벨은 신뢰성을 갖기 어렵다.
본 발명은 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 시스템 및 방법을 제공한다.
일 실시예에는 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 시스템을 제공한다. 시스템은 클러스터 초기화기, 뉴럴-가중치 양자화기, 클러스터링-오차 결정기, 및 클러스터-개수 감축기를 포함할 수 있다. 클러스터 초기화기는 클러스터들의 기결정된 개수(k l )를 초기화하여 딥-러닝 네트워크의 각각의 레이어(l)를 양자화할 수 있다. 뉴럴-가중치 양자화기는 가장 낮은 평균 클러스터링 오차(ε l )각각의 양자화 레이어(l)에 대하여 결정될 때까지, 중심점들을 반복적으로 할당할 수 있고, 양자화에 대한 중심점들과 관련된 가중치들을 클러스터링할 수 있다. 클러스터링-오차 결정기는 복수의 양자화 레이어로부터 복수의 양자화 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 레이어(l*)를 결정할 수 있다. 클러스터-개수 감축기는 레이어(l*)를 양자화하는데 이용되는 클러스터들의 개수가 하나 작아지도록 레이어(l*)에 대한 기결정된 개수를 감축할 수 있다. 뉴럴-가중치 양자화기는 레이어(l*)에 대한 감축된 클러스터들의 기결정된 개수에 근거하여 레이어(l*)를 재양자화할 수 있다. 클러스터링-오차 결정기는 복수의 양자화 레이어로부터 복수의 양자화 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 다른 레이어(l*)를 더 결정할 수 있다. 클러스터-개수 감축기는 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값으로 감축될 때까지 다른 레이어를 양자화하는데 이용되는 클러스터들의 개수가 하나 작아지도록 다른 레이어(l*)에 대한 클러스터들의 기결정된 개수를 감축할 수 있다. 일 실시예에서, 뉴럴-가중치 양자화기는 K-평균++을 이용하여, 반복적으로 중심점들을 할당하고, 중심점들과 관련된 가중치들을 클러스터링(예를 들어, 양자화)한다. 클러스터링 오차(ε l )는 제로가 아닌 가중치에 대한 제곱 클러스터 오차를 포함할 수 있다. 클러스터링 오차(ε l )는
Figure pat00001
를 만족하되, n은 레이어를 양자화하는데 이용되는 클러스터들의 기결정된 개수이고, i는 가변 인덱스이고, wi는 제로가 아닌 가중치이고, Cl는 양자화 레이어(l)에 대한 위한 중심점이다.
일 실시예는 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 방법을 제공한다. 방법은 복수의 레이어를 갖는 딥-러닝 네트워크의 각각의 레이어(l)에 대한 클러스터들의 기결정된 개수(k l )를 초기화하는 단계; 각각의 레이어(l) 에 대하여, 가장 낮은 평균 클러스터링 오차(ε l )가 레이어(l)에 대하여 결정될 때까지, 반복적으로 중심점들을 할당하고 양자화에 대한 중심점들과 관련된 가중치들을 클러스터링하는 단계; 레이어(l*)를 양자화하는데 이용되는 클러스터들의 개수가 하나 작아지도록 레이어(l*)에 대한 클러스터들의 기결정된 개수를 감축하는 단계; 레이어(l*)에 대한 감축된 클러스터들의 기결정된 개수에 근거하여 레이어(l*)를 재양자화하는 단계; 및 복수의 레이어로부터 복수의 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 다른 레이어(l*)를 계속 결정하고, 다른 레이어를 양자화하는데 이용되는 클러스터들의 개수가 하나 작아지도록 다른 레이어(l*)에 대한 클러스터들의 기결정된 개수를 감축하고, 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값으로 감축될 때까지 다른 레이어(l*)에 대한 감축된 클러스터들의 기결정된 개수에 근거하여 다른 레이어(l*)를 재양자화하는 단계를 포함할 수 있다.
일 실시예는 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 시스템을 제공한다. 시스템은 가중치-양자화 모듈 및 클러스터-개수 감축 모듈을 포함할 수 있다. 가중치-양자화 모듈은 각각의 레이어에 대하여 초기화된 클러스터들의 기결정된 개수(k l )에 근거하여 딥-러닝 네트워크의 각각의 레이어(l)에 대한 뉴럴 가중치들을 양자화할 수 있다. 클러스터-개수 감축 모듈은 레이어(l*)에 대한 클러스터들의 기결정된 개수를 감축하되, 레이어(l*)는 가중치-양자화 모듈에 의하여 양자화되는 복수의 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l* )를 가질 수 있다. 가중치-양자화 모듈은 레이어(l*)에 대한 감축된 클러스터들의 기결정된 개수에 근거하여 레이어(l*)를 재양자화할 수 있다. 클러스터-개수 감축 모듈은 복수의 양자화 레이어로부터 복수의 양자화 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 다른 레이어(l*)를 더 결정하고, 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값으로 감축될 때까지 다른 레이어(l*)에 대한 클러스터들의 기결정된 개수를 감축할 수 있다.
본 발명은 반복적인 딥 양자화 기술이 딥-러닝 네트워크에 제공되어 낮은 계조도를 나타내면서 좋은 성능을 유지할 수 있다.
이하의 내용에서, 개시된 주제의 사상들은 도면에서 도시되는 예시적인 실시예들을 참조하여 설명될 것이다.
도 1은 딥-러닝 네트워크로 이용되는 종래의 VGG 16 아키텍처를 도시한 도면이다.
도 2는 개시된 주제에 따른 RDQ 기술의 일 실시예를 도시한 도면이다.
도 3은 VGG 16 아키텍처에 적용되는 개시된 주제에 따른 RDQ 기술의 네 번의 반복들의 예시적인 결과들의 테이블을 도시한 도면이다.
도 4는 VGG 16 아키텍처에 적용되는 개시된 주제에 따른 RDQ 기술의 다섯 번의 반복들의 예시적인 결과들의 테이블을 도시한 도면이다.
도 5는 다른 양자화 기술들에 대하여 획득된 VGG 16 아키텍처의 각각의 레이어에 대한 가중치들의 감축에 대한 비교를 진술하는 테이블을 도시한 도면이다.
도 6은 기준점 클러스터 병합 기술의 일 실시예를 도시한 도면이다.
도 7은 개시된 주제에 따른 반복적인 딥 양자화 프로세서의 일 실시예의 기능적인 블록도를 도시한 도면이다.
도 8은 개시된 주제에 따른 반복적인 딥 양자화 프로세서를 포함하는 하나 이상의 집적 회로들 (칩들)을 포함하는 전자 장치를 도시한 도면이다.
이하의 본문에서, 다양한 상세한 설명들은 본문의 이해를 제공하기 위하여 제시된다. 그러나 이러한 상세한 설명 없이 기재된 본 발명의 사상이 당업자에 의해 용이하게 구현될 수 있음은 잘 이해될 것이다. 다른 예에서, 잘 알려진 방법들, 절차들, 구성들, 및 회로들은 본문을 모호하게 하지 않기 위하여 설명되지 않는다.
상세한 설명에서 “하나의 실시예” 또는 일 실시예”를 참조하는 것은 실시예와 연관된 특정한 특징, 구조, 또는 특성이 본문의 적어도 하나의 실시예에 포함될 수 있음을 의미한다. 즉, 본문의 다양한 위치에 제공되는 “하나의 실시예에서”, “일 실시예에서”, 또는 “하나의 실시예에 따라” 또는 유사한 의미를 갖는 다른 표현들은 동일한 실시예를 참조하는 것을 요구하지 않는다. 나아가, 특정한 특징들, 구조들, 또는 특성들은 적절한 방식으로 하나 이상의 실시예들에서 조합될 수 있다. 이 점에 있어서, 여기에서 이용된 “예시”라는 단어는 “예, 사례, 또는 실례로 쓰임”을 의미한다. “예시”로써 여기에서 설명된 실시예는 다른 실시예들에 비하여 필연적으로 선호된다거나 이로운 것으로 구성되는 것은 아니다. 또한, 본문에서 언급된 내용에 따라, 단수 용어는 복수의 형태를 포함하고, 복수 용어는 단수 형태를 포함할 수 있다. 구성 도면들을 포함하는 다양한 도면들은 오직 설명의 목적을 위하여 본문에서 언급되고, 도시되며, 정량화되지 않는다. 유사하게, 다양한 파형들 및 타이밍도들은 단순히 설명의 목적을 위하여 도시된다. 예를 들어, 어떤 구성 요소들의 크기들은 명확화를 위하여 다른 구성 요소들과 관계에서 과장될 수 있다. 나아가, 적절하게 고려된다면, 참조 번호들은 대응 및/또는 유사한 구성 요소들을 지칭하는 도면들 중에서 반복된다.
여기에서 이용되는 용어들은 단순히 특정한 예시적인 실시예들을 설명하는 목적을 위한 것이고, 청구항에 기재된 주제를 한정하는 의도로는 이용되지 않는다. 문맥상 명백히 다르게 지시하지 않는 한, 단수 형태는 본 발명의 개념의 설명 및 부가된 청구항에 이용될 때, 복수의 형태를 포함하는 의도로 이용된 것으로 이해되어야 한다. 나아가, “구성되는”, “구성되고 있는”, “포함하는”, 그리고 “포함하고 있는” 용어들이 본 명세서에서 이용될 때, 이러한 용어들은 정해진 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 구성 요소들의 존재를 명시하나, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 성분들, 및/또는 그것들의 그룹들의 존재 또는 추가를 배제하지 않는 것으로 이해될 것이다. “제1”, “제2” 등과 같은 용어들은 앞서 이용된 구성에 대한 라벨로 이용되고, 별도의 정의가 없는 한, 특정한 순서(예를 들어, 공간적, 시간적, 논리적 등)를 암시하지 않는다. 나아가, 동일한 참조 번호들은 동일하거나 유사한 기능을 갖는 부분들, 구성들, 블록들, 회로들, 유닛들, 또는 모듈들을 지칭하기 위하여 둘 이상의 도면들에 걸쳐 이용될 수 있다. 그러나, 이러한 이용은 단순히 설명의 간결성 및 편의를 위한 것이고, 이러한 구성들 또는 유닛들의 구성 또는 구조적인 세부 사항들이 모든 실시예들 또는 공통적으로 참조되는 부분들/모듈들에서 동일한 것으로 의도되지 않으며, 단순히 본 발명의 특정 실시예들의 교시들을 구현하기 위한 하나의 방식이다.
달리 정의되지 않는다면, 여기에서 이용된 모든 용어들(기술적이고 과학적인 용어들을 포함)은 본 발명이 속한 기술 분야에서 당업자에 의해 일반적으로 이해되는 동일한 의미를 갖는다. 일반적으로 이용된 사전에 정의된 용어들은 관련 기술의 문맥에서 그것들의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 여기에서 명백하게 정의되지 않는 한, 이상화되거나 지나치게 형식적인 감각으로 해석되지 않아야 한다.
여기에서 이용되는 “모듈”이라는 용어는 모듈과 관련되어 여기에서 설명되는 기능을 제공하는 소프트웨어, 펌웨어, 및/또는 하드웨어의 조합을 나타낸다. 여기에서 설명되는 구현에 적용되는 “소프트웨어”라는 용어는 소프트웨어 패키지, 코드 및/또는 명령어 세트 또는 명령어로 구현될 수 있다. 여기에서 설명되는 구현에 적용되는 “하드웨어” 라는 용어는, 예를 들어 하드와이어된 회로(hardwired circuitry), 프로그램화된 회로(programmable circuitry), 상태-기계 회로(state-machine circuitry), 및/또는 프로그램화된 회로에 의하여 실행되는 명령어들을 저장하는 펌웨어를 하나씩 또는 이들의 조합을 포함할 수 있다. 모듈들은 총괄적으로 또는 개별적으로, 소프트웨어, 펌웨어, 및/또는 집적 회로(Integrated circuit, IC), 시스템 온-칩(system on-chip, SoC) 등과 같은 그러나 이에 제한되지 않는 보다 거대한 시스템의 일부를 형성하는 하드웨어로 구현될 수 있다.
도 1은 종래의 VGG 16 아키텍처(100)를 도시한 도면이다. VGG 16 아키텍처(100)는 13개의 콘볼루션(convolutional, CONV) 레이어들, 3개의 완전 접속(fully connected, FC) 레이어들, 및 5개의 풀링 레이어들(pooling layers, PLs)을 포함한다. VGG 16 아키텍처(100)로의 입력은 콘볼루션 레이어(CONV1_1)에 적용되고, 출력은 분류되어 제공된다.
VGG 16 아키텍처(100)와 같은 전형적인 딥-러닝 뉴럴 네트워크에서의 다수의 레이어들에 기인하여, 다양한 레이어들이 네트워크 내부의 다른 레이어들에 의존하므로, 각각의 레이어에 대한 최적의 양자화 비트들을 결정하는 것은 매우 복잡한 작업을 야기한다. 즉, 각각의 레이어에서 양자화 비트들의 최소 개수에 도달하는 그리디 레이어-와이즈(greedy layer-wise) 양자화 접근법이 종종 비효율적으로 나타나고, 전체적인 시스템 정확도의 상당한 손실을 초래하도록, 하나의 레이어에서 뉴런 단위의 가중치들의 양자화는 다른 레이어들의 양자화에 의존한다. 검색의 복잡도를 줄이기 위하여, 현재 기준점들은 뉴런 단위의 가중치들의 양자화를 제한하여 일 유형의 레이어를 동일한 개수의 비트들을 갖도록 한다. 예를 들어, VGG 16 아키텍처에 대하여, 하나의 기준점은 콘볼루션 레이어들에 대한 256개의 양자화 레벨들과 완전 연결(fully connected)된 레이어들에 대한 32개의 양자화 레벨들을 설정한다. 이러한 기준점들에 의하여 부여된 고정된 양자화 레벨들은 무수한 이유들로 인하여 최적이 아니다. 딥-러닝 뉴럴 네트워크에 대한 더 낮은 계조도에 도달하기 위하여, 뉴런 단위의 가중치들은 각각의 레이어에서 최소 양자화 레벨로 양자화되어야 한다.
도 2는 개시된 주제에 따른 반복적인 딥 양자화(recursive deep quantization, RDQ) 기술(200)의 일 실시예를 도시한 도면이다. RDQ 기술(200)은 딥-러닝 뉴럴 네트워크의 레이어들을 양자화하는데 이용될 수 있다. RDQ 기술(200)은 (1) 레이어들이 양자화되는 순서, (2) 각각의 레이어에 대한 양자화를 중지하는 때, (3) 전체적인 최적의 양자화 경로, 및 (4) 네트워크에 대하여 전체적인 최소 양자화 레벨들에 도달하기 위한 다른 양자화된 레이어들의 결과들에 근거하여 레이어가 반복적으로 양자화되는지 여부를 제공한다. 더욱이, 양자화 레벨들이 네트워크에 대하여 성능 손실이 제로 또는 최소인 전체적인 결과와 함께 각각의 레이어에 대하여 최소화되고 최적화될 수 있도록, RDQ 기술(200)은 고정되거나 사전에 제한된 양자화 레벨들을 제거한다. 따라서, RDQ 기술(200)은 낮은 계조도로 나타낼 수 있는 딥-러닝 뉴럴 네트워크를 제공하는데 이용될 수 있고, 예를 들어, 영상 인식 작업에 대한 좋은 성능을 유지하는데 이용될 수 있다.
도 2에서, RDQ 기술(200)은 201 단계에서 시작한다. 202 단계에서, 클러스터들의 개수(k l )는 L개의 레이어들을 갖는 딥-러닝 네트워크의 각각의 레이어(l)에 대하여 초기화된다. l은 1에서 L까지의 범위에 있는 레이어이고, L은 정수이다. 각각의 레이어에 대하여 초기화된 클러스터들의 개수(k l )는 각각의 레이어마다 서로 다르다. 클러스터들의 개수(k l )는 각각의 레이어에 대해 임의로 선택될 수 있다. 다만, 도 6에서 설명될 기준점 클러스터 병합 기술(600)과 같은, 각각의 레이어에 대한 클러스터들의 개수를 초기화하기 위한 다른 더 나은 전략이 이용될 수 있다. RDQ 기술(200)은 딥-러닝 네트워크의 각각의 레이어에 대한 초기화된 클러스터들의 개수(k l )를 가질 필요가 없고, 202 단계에서의 클러스터 초기화 없이 딥-러닝 네트워크의 가중치들에서 직접 작업할 수 있는 것으로 이해되어야 한다. 그럼에도 불구하고, 딥-러닝 네트워크의 각각의 레이어에 대한 클러스터들의 개수를 설정하는 초기화 프로세스의 이용은 전체적인 프로세스를 신속하게 할 것이다.
203 단계에서, l은 1로 초기화되고, 모든 레이어들을 끝까지 거친다. 204 단계에서, K-평균++ 알고리즘은 레이어(l)에서의 뉴럴 네트워크 가중치들에 대한 중심점 할당(centroid allocation) 및 양자화를 결정하는데 이용된다. 205 단계에서, 제로가 아닌 가중치에 대한 제곱 클러스터 오차(square cluster error, ε l )가 레이어(l)에 대하여 결정된다. 일 실시예에서, 제로가 아닌 가중치에 대한 제곱 클러스터 오차(ε l )는 수학식 1과 같이 결정된다.
Figure pat00002
n은 레이어를 양자화하는데 이용되는 클러스터들의 기결정된 개수이고, i는 인덱스 변수이고, wi는 제로가 아닌 가중치이고, Cl는 레이어(l)에 대한 중심점이다. 네트워크를 통한 첫번째 양자화 반복에 대하여, 레이어를 양자화하는데 이용되는 클러스터들의 기결정된 개수는, 예를 들어, 202 단계에서 레이어에 대하여 초기화된 클러스터들의 개수(k l )이다. 그 다음 양자화 반복에 대하여, 레이어를 양자화하는데 이용되는 클러스터들의 개수는 RDQ 기술(200)에 의하여 감축될 수 있다.
206 단계에서, 딥-러닝 네트워크의 모든 레이어들에 대한 가중치들이 양자화되는지 여부 및 제곱 클러스터 오차(ε l )가 각각의 레이어에 대하여 결정되는지 여부가 판별된다. 만약, 206 단계에서, 딥-러닝 네트워크의 모든 레이어들에 대한 모든 가중치들이 양자화되지 않고, 제곱 클러스터 오차(ε l )가 각각의 레이어에 대하여 결정되지 않은 것으로 판별되면, 레이어(l)가 증가되는 단계인 207 단계로 흐름이 이어진다. 그리고, 흐름이 204 단계로 되돌아간다.
만약, 206 단계에서, 딥-러닝 네트워크의 모든 레이어들에 대한 모든 가중치들이 양자화되고, 제곱 클러스터 오차(ε l )가 각각의 레이어에 대하여 결정된 것으로 판별되면, 딥-러닝 네트워크의 인식 성능이 기준 인식 성능에서 문턱 값만큼 감소하는지 판별되는 208 단계로 흐름이 이어진다. 일 실시예에서, 문턱 값은 1%일 수 있다. 다른 실시예들에서, 문턱 값은 1%와 다를 수 있다.
만약, 208 단계에서, 딥-러닝 네트워크의 인식 성능이 문턱 값에 의한 기준 인식 성능으로 감소하지 않는다면, 가장 작은 제곱 클러스터 오차(ε l )를 갖는 레이어가 레이어(l*)로 식별되는 210 단계로 흐름이 이어진다. 211 단계에서, 레이어(l*)의 가중치들을 양자화하는데 이용되었던 클러스터들의 개수는 1만큼 감축된다. 즉, 수학식 2와 같다.
Figure pat00003
레이어(l*)에 대한 클러스터들의 개수는 1만큼 감축되도록 개시되어 있지만, 레이어(l*)에 대한 클러스터들의 개수는 1보다 크게 감축될 수 있는 것으로 이해되어야 한다.
212 단계에서, K-평균++ 알고리즘은 레이어(l*)에 대한 뉴럴 네트워크 가중치들에 대한 중심점 할당 및 클러스터링(즉, 양자화)을 결정하는데 이용된다. 213 단계에서, 레이어(l*)에 대하여 제로가 아닌 가중치(w)에 대한 제곱 클러스터 오차(ε l )가 결정된다. 딥-러닝 네트워크가 다른 레이어들에 대하여 새롭게 결정된 양자화된 가중치들을 이용하여 동작되는 단계인 208 단계로 흐름이 되돌아간다. 특히, 레이어(l*)에 대한 212 단계에서 결정된 양자화된 가중치들은 딥-러닝 네트워크를 동작시키는데 이용된다. 208 단계에서, 딥-러닝 네트워크의 인식 성능이 기준 인식 성능으로부터 문턱 값만큼 감소하는지 여부가 판별된다. 만약, 208 단계에서, 딥-러닝 네트워크의 인식 성능이 문턱 값만큼 감소하지 않는다면, 210 단계로 흐름이 이어진다. 만약, 208 단계에서, 딥-러닝 네트워크의 인식 성능이 문턱 값만큼 감소한다면, 프로세스가 종료되는 209 단계로 흐름이 이어진다.
도 3은 도 1에 도시된 VGG 16 아키텍처(100)에 적용되는 RDQ 기술(200)의 네 개의 반복들의 예시적인 결과들의 테이블(300)을 도시한 도면이다. 테이블(300)의 301에서, VGG 16 아키텍처(100)에 대하여 각각의 레이어에 대한 가중치들의 초기 값이 나타난다. 302에서, 각각의 레이어(l)에 대한 초기화된 클러스터들의 개수(k l )가 나타난다. 이는 도 2의 202 동작 결과에 대응된다. 테이블(300)의 302에서 나타나는 특정 값들은 도 6에서 설명되는 기준점 클러스터 병합 기술(600)을 이용함으로써 획득되었다. 제0 반복에 대하여, 제곱 클러스터 오차(ε l ) 는 각각의 레이어에 대하여 결정되고, VGG 16 아키텍처(100)의 인식 성능은 결정된다. 303에서 표시된 바와 같이, 최상위 5개의 누적 스코어들에 근거한 인식 성능은 88.38%이고, 최상위 1개의 누적 스코어에 근거한 인식 성능은 67.73%이다. 설명의 편의상, 이러한 두 개의 인식 성능들은 기준 인식 성능으로 이용될 것이다.
304에서 표시된 바와 같이, CONV5_1 레이어는 0.148의 가장 낮은 제곱 클러스터 오차(ε l )를 갖는 것으로 판별된다. 이는 도 2의 210 단계에 대응된다. CONV5_1 레이어의 가중치들을 양자화하기 위하여 이용되었던 클러스터들의 개수(예를 들어, 52)는 51개가 되도록 1만큼 감축된다. (제1 반복에서 나타난다.) CONV5_1 레이어의 가중치들은 감축된 클러스터들의 개수를 이용하여 제1 반복에서 재양자화된다. 305에서 표시된 바와 같이, 제1 반복 이후에 딥-러닝 네트워크의 인식 성능은 최상위 5개의 누적 스코어에 대하여 88.38%이고, 최상위 1개의 누적 스코어에 대하여 67.73%이다.
제1 반복 이후에 딥-러닝 네트워크의 인식 성능은 1%의 문턱 값만큼 떨어지지 않는다. 따라서, 306에서 표시된 바와 같이, CONV4_3 레이어는 0.151의 가장 낮은 제곱 클러스터 오차(ε l )를 갖는 것으로 판별된다. CONV4_3 레이어의 가중치들을 양자화하기 위하여 이용되었던 클러스터들의 개수(즉, 51)는 50개가 되도록 1만큼 감축된다. (제2 반복에서 나타난다.) CONV4_3 레이어의 가중치들은 제2 반복에서 재양자화된다. 307에서 표시된 바와 같이, 제1 반복 이후에 딥-러닝 네트워크의 인식 성능은 최상위 5개의 누적 스코어들에 대하여 88.32%이고, 최상위 1개의 누적 스코어에 대하여 67.68%이다.
제2 반복 이후에 딥-러닝 네트워크의 인식 성능은 1%의 문턱 값만큼 떨어지지 않는다. 따라서, 308에서 표시된 바와 같이, CON5_1 레이어는 0.154의 가장 낮은 제공 클러스터 오차를 갖는 것으로 판별된다. CONV5_1 레이어의 가중치들을 양자화하기 위하여 이용되었던 클러스터들의 개수(즉, 51)는 50개가 되도록 1만큼 감축된다. (제3 반복에서 나타난다.) CONV5_1 레이어의 가중치들은 제3 반복에서 재양자화된다. 309에서 표시된 바와 같이, 제2 반복 이후에 딥-러닝 네트워크의 인식 성능은 최상위 5개의 누적 스코어들에 대하여 88.32%이고, 최상위 1개의 누적 스코어에 대하여 67.68%이다. 이러한 프로세스는 딥-러닝 네트워크의 인식 성능이 문턱 값만큼 떨어질 때까지 이어진다.
도 4는 도 1에 도시된 VGG 16 아키텍처(100)에 적용되는 RDQ 기술(200)의 다섯 개의 반복들의 예시적인 결과들의 테이블(400)을 도시한 도면이다. 테이블(400)은 제0 반복의 결과들에 추가하여, 제 18, 제100, 제 200, 및 제360 반복들 이후에 RDQ 기술(200)의 결과들을 나타냄으로써, 도 3의 테이블(300)과 유사하다. 가중치들의 감축을 갖는 레이어들은 굵은 선으로 보여질 수 있다. 401에서 나타나는 바와 같이, 제360 반복 이후에 딥-러닝 네트워크의 인식 성능은 1%의 문턱 값만큼 떨어진다. 따라서, RDQ 기술은 종료된다.
도 5는 다른 양자화 기술들에 대하여 획득된 VGG 16 아키텍처(100)의 각각의 레이어에 대한 가중치들의 감축에 대한 비교를 나타내는 테이블(500)을 도시한 도면이다. 501에서, 레이어 당 4096개의 클러스터들의 균일 양자화에 대한 Sun 기술(Sun technique)이 나타난다. 502에서, K-평균 비균일 양자화 기술을 이용하는 Sun 기술은 501에서 표시된 Sun 기술과 비교하여 각각의 레이어에 대한 클러스터들의 감축을 나타낸다. 503에서, K-평균 및 랜덤 초기화 기술과 함께 프루닝(pruning)한 결과들이 나타난다. 503에서 표시된 기술이 VGG 16 아키텍처에 대하여, 콘볼루션 레이어들에 대한 256 개의 양자화 레벨들과 완전 연결된 레이어들에 대한 32 개의 양자화 레벨들을 설정하는 기준점으로 도 1의 설명에서 언급되었음이 주목될 것이다. 레이어 당 가중치들의 감축에 대한 추가적인 개선이 K-평균 및 로그-공간의 초기화 기술과 함께 프루닝을 이용하는 504에 나타난다. 505에서, 선형 초기화와 함께 K-평균을 이용하는 Song의 기술에 의하여 추가적인 개선이 제공된다. 506에서, 프루닝을 이용하고, 선형 초기화와 함께 K-평균을 이용하고, 기준점 클러스터의 병합(merging)을 이용하는 기술(도 6)에 의하여, 개선이 이어서 제공된다.
마지막으로, RDQ 기술(200)의 결과들이 507에서 표시된다. 도 5에서 표시되지 않았으나, RDQ 기술(200)의 결과들은 도6의 기준점 클러스터 병합 기술(600)을 이용하였다. 그럼에도 불구하고, RDQ 기술(200)은 딥-러닝 네트워크의 각각의 레이어에 대해 초기화된 클러스터들의 개수(k l )를 가질 필요가 없고, 클러스터 초기화 없이 딥-러닝 네트워크의 가중치들에 직접 작업할 수 있다. 테이블(500)으로부터 보여질 수 있는 바와 같이, 여기에서 개시된 RDQ 기술은, 데이터베이스화된 양자화 초기화, 네트워크의 레이어들이 양자화되어야 하는 순서에 대한 자동적인 결정, 및 최적으로 양자화를 종료하는 방식을 제공하는 딥-러닝 뉴럴 네트워크의 레이어들을 양자화하는데 이용될 수 있다.
도 6은 기준점 클러스터 병합 기술(600)의 일 실시예를 도시한 도면이다. 601 단계에서, 프로세스는 시작한다. 602 단계에서, 클러스터들의 개수(k l )는 도 1에 도시된 VGG 16 아키텍처(100)와 같은 딥-러닝 네트워크의 각각의 레이어(l) 에 대하여 초기화된다. 602 단계에서, 거리 문턱 (Tl)이 각각의 레이어(l)에 대하여 설정된다. 동일한 거리 문턱 (Tl)은 각각의 레이어(l)에 대하여 이용될 수 있다. 또는 다른 거리 문턱이 각각의 레이어에 대하여 이용될 수 있다. 604 단계에서, 레이어(l)는 초기화된다. 605 단계에서, 뉴럴 네트워크 가중치들은 레이어(l)에서 양자화되고, 606 단계에서, 두 개의 이웃한 클러스터들이 레이어(l)에서 선택된다.
만약, 607 단계에서, 중심점과 중심점 사이의 거리(DC-C)가 레이어에 대한 문턱 거리(Tl)보다 작다면, 두 개의 이웃한 클러스터들이 병합되어 아래와 같은 새로운 클러스터 중심(Cmerge)을 형성하는 608 단계로 흐름이 이어진다.
Figure pat00004
C1 및 C2 각각은 두 개의 이웃한 클러스터들의 클러스터 중심들이고, N1 및 N2 각각은 두 개의 이웃한 클러스터들 각각에 속하는 가중치 포인트의 개수이다.
만약, 607 단계에서, 두 개의 선택된 이웃한 클러스터들의 중심점과 중심점 사이의 거리(DC-C)가 레이어에 대한 문턱 거리(Tl)보다 크다면, 흐름이 608 단계를 우회한다. 609 단계에서, 중심점과 중심점 사이의 거리들 전부가 레이어에 대한 문턱 거리(Tl)보다 큰지 여부가 판별된다. 만약 아니라면, 610 단계로 흐름이 되돌아가고, 만약 그렇다면, 레이어들 전부가 처리되었는지 여부를 결정하는 611 단계로 흐름이 이어진다. 만약 아니라면, 605 단계로 흐름이 되돌아가고, 만약 그렇다면, 프로세스는 613 단계에서 종료된다.
도 7은 개시된 주제에 따른 반복적인 딥 양자화(RDQ) 프로세서(700)의 일 실시예의 기능적인 블록도를 도시한 도면이다. RDQ 프로세서(700)는 가중치-양자화 모듈(701) 및 클러스터-개수 감축 모듈(702)을 포함할 수 있다. 가중치-양자화 모듈(701)과 클러스터-개수 감축 모듈(702)은 모듈과 관련되어 여기에서 설명되는 기능을 제공하는 소프트웨어, 펌웨어, 및/또는 하드웨어의 조합일 수 있다. 모듈들(701, 702)은 총괄적 또는 개별적으로, 소프트웨어, 펌웨어, 및/또는 집적 회로(Integrated circuit, IC), 시스템 온-칩(system on-chip, SoC) 등과 같은 그러나 이에 제한되지않는 보다 거대한 시스템의 일부를 형성하는 하드웨어로 구현될 수 있다.
가중치-양자화 모듈(701)은 레이어들의 유형 및 개수, 및 레이어 당 가중치들의 개수와 같은 그러나 이에 제한되지않은 딥-러닝 네트워크의 파라미터들 전부를 입력으로 포함할 수 있다. 가중치-양자화 모듈(701)은 입력들을 이용하여 클러스터-개수 감축 모듈(702), 레이어 당 클러스터들의 개수(703), 각각의 레이어에 대하여 제로가 아닌 가중치(w)에 대한 제곱 클러스터 오차(ε l )(704), 및 반복에 대한 인식 성능(705)으로 출력한다. 출력으로, 클러스터-개수 감축 모듈(702)은 가중치-양자화 모듈(701)에 레이어(l*) 및 레이어(l*)에 대한 클러스터들의 감축된 개수(k l* )를 출력한다. 가중치-양자화 모듈(701)과 함께 클러스터-개수 감축 모듈(702)이 동작하여 도 2에 도시된 RDQ 기술(200)의 기능을 제공한다. 일 실시예에서, RDQ 프로세서(700)의 출력은 최적화된 가중치 딥-러닝 네트워크이다.
일 실시예에서, 도 2에 도시된 202 내지 206 동작들은 가중치-양자화 모듈(701)에 의하여 제공될 수 있고, 208 내지 213 동작들은 클러스터-개수 감축 모듈(702)에 의하여 제공될 수 있다. 다른 실시예에서, 그 기능은 가중치-양자화 모듈(701) 및 클러스터-개수 감축 모듈(702) 사이에서 다르게 배열 또는 배분될 수 있다.
도 8은 개시된 주제에 따른 RDQ 프로세서를 포함하는 하나 이상의 집적 회로들 (칩들)을 포함하는 전자 장치(800)를 도시한 도면이다. 전자 장치(800)는 이에 제한되지 않으나, 컴퓨팅 장치, PDA(personal digital assistant), 랩탑(laptop) 컴퓨터, 모바일 컴퓨터, 웹 태블릿, 무선폰, 휴대폰, 스마트폰, 디지털 뮤직 플레이어, 또는 유무선 전자 장치에 이용될 수 있다. 전자 장치(800)는 컨트롤러(810), 이에 제한되지 않으나, 키패드, 키보드, 디스플레이, 또는 터치-스크린 디스플레이와 같은 입/출력 장치(820), 메모리(830), 및 무선 인터페이스(840)를 포함할 수 있다. 컨트롤러(810), 입/출력 장치(820), 메모리(830), 및 무선 인터페이스(840)는 버스(850)를 통하여 서로 연결된다. 컨트롤러(810)는 예를 들어, 적어도 하나의 마이크로 프로세서, 적어도 하나의 디지털 신호 프로세스, 및 적어도 하나의 마이크로 컨트롤러 등을 포함할 수 있다. 메모리(830)는 컨트롤러(810)에 의하여 이용되는 명령 코드 또는 이용이자 데이터를 저장할 수 있다. 전자 장치(800) 및 전자 장치(800)를 포함하는 다양한 시스템 구성 요소들은 여기에서 개시된 주제에 따른 RDQ 프로세서를 포함할 수 있다. 전자 장치(800)는 무선 인터페이스(840)를 이용하여 RF 신호를 이용하는 무선 통신 네트워크에 데이터를 송수신할 수 있다. 무선 인터페이스(840)는 예를 들어, 안테나, 및 무선 트랜시버 등을 포함할 수 있다. 또한, 전자 장치(800)는 이에 제한되지 않으나, CDMA(Code Division Multiple Access), GSM(Global System for Mobile Communications), NADC(North American Digital Communication), E-TDMA(Extended Time Division Multiply Access), WCDMA(Wideband CDMA), CDMA2000, Wi-Fi, Muni Wi-Fi(Municipal Wi-Fi), 블루투스, DECT(Digital Enhanced Cordless Telecommunications), 무선 USB(Wireless Universal Serial Bus), Flash-OFDM(Fast low-latency access with seamless handoff Orthogonal Frequency Division Multiplexing), IEEE 802.20, GPRS(General Packet Radio Service), iBurst, WiBro(Wireless Broadband), WiMAX, WiMAX-Advanced, UMTS-TDD(Universal Mobile Telecommunication Service - Time Division Duplex), HSPA(High Speed Packet Access), EVDO(Evolution Data Optimaized), 및 LTE-Advanced(Long Term Evolution - Advanced), NMDS(Multichannel Multipoint Distribution Service) 등과 같은 통신 시스템의 통신 인터페이스 프로토콜에 이용될 수 있다.
여기에서 설명된 획기적인 개념들이 다양한 응용 분야들에 걸쳐 변경 및 수정될 수 있음은 당업자에 의해 인식될 것이다. 따라서, 청구항에 기재된 주제의 범위는 어떠한 상술한 구체적 예시적인 교시들로 제한되지 않아야 하며, 대신에 이하의 청구항들에 의하여 정의된다.
100: VGG 16 아키텍처
700: RDQ 프로세서
701: 가중치-양자화 모듈
702: 클러스터-개수 감축 모듈

Claims (20)

  1. 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 시스템에 있어서,
    복수의 레이어를 갖는 상기 딥-러닝 네트워크의 레이어(l) 각각에 대한 기결정된 개수(k l )의 클러스터들을 초기화하는 클러스터 초기화기;
    양자화되는 레이어(l) 각각에 대하여, 가장 낮은 평균 클러스터링 오차(ε l )가 결정될 때까지, 반복적으로 중심점들을 할당하고 상기 중심점들과 관련된 가중치들을 클러스터링하는 뉴럴-가중치 양자화기;
    상기 복수의 레이어로부터, 상기 복수의 레이어의 상기 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 레이어(l*)를 결정하는 클러스터링-오차 결정기; 및
    상기 레이어(l*)를 양자화하는데 이용되는 클러스터들의 개수가 하나 작아지도록 상기 레이어(l*)에 대한 클러스터들의 상기 기결정된 개수를 감축하는 클러스터-개수 감축기를 포함하고,
    상기 뉴럴-가중치 양자화기는 상기 레이어(l*) 에 대한 상기 감축된 클러스터들의 기결정된 개수에 근거하여 상기 레이어(l*)를 재양자화하고, 상기 클러스터링-오차 결정기는 상기 복수의 레이어로부터 상기 복수의 레이어의 상기 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 다른 레이어(l*)를 더 결정하고, 상기 클러스터-개수 감축기는 상기 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값만큼 감축될 때까지 상기 다른 레이어를 양자화하는데 이용되는 클러스터들의 상기 개수가 하나 작아지도록 상기 다른 레이어(l*)에 대한 클러스터들의 상기 기결정된 개수를 감축하는 시스템.
  2. 제1 항에 있어서,
    상기 뉴럴-가중치 양자화기는 K-평균++을 이용하여, 반복적으로 상기 중심점을 할당하고 클러스터의 상기 중심점에 대해 상기 클러스터를 양자화하는 시스템.
  3. 제2 항에 있어서,
    상기 클러스터링 오차(ε l )는 제로가 아닌 가중치에 대해 제곱 클러스터 오차를 포함하는 시스템.
  4. 제3 항에 있어서,
    상기 클러스터링 오차(ε l ) 는,
    Figure pat00005
    를 만족하되,
    상기 n은 레이어를 양자화하는데 이용되는 클러스터들의 상기 기결정된 개수이고, 상기 i는 인덱스 변수이고, 상기 wi는 제로가 아닌 가중치이고, 상기 Cl는 레이어(l)를 양자화하기 위한 중심점인 시스템.
  5. 제3 항에 있어서,
    상기 기결정된 문턱 값은 1%인 시스템.
  6. 제1 항에 있어서,
    상기 클러스터 초기화기는,
    두 개의 이웃한 클러스터들 각각의 중심점들 사이의 거리가 새로운 클러스터 중심(Cmerge)을 형성하는 기결정된 거리보다 작은 상기 두 개의 이웃한 클러스터들을 병합함으로써, 양자화된 레이어에 대하여 클러스터들의 상기 기결정된 개수(k l )를 초기화하는 시스템.
  7. 제6 항에 있어서,
    상기 클러스터 초기화기는 상기 새로운 클러스터 중심 Cmerge
    Figure pat00006
    로 결정하되,
    상기 C1 및 C2 각각은 상기 두 개의 이웃한 클러스터들의 상기 클러스터 중심들이고, 상기 N1 및 N2 각각은 상기 두 개의 이웃한 클러스터들 각각에 속하는 가중치 포인트들의 개수인 시스템.
  8. 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 방법에 있어서,
    복수의 양자화 레이어를 갖는 상기 딥-러닝 네트워크의 양자화 레이어(l) 각각에 대한 클러스터들의 기결정된 개수(k l )를 초기화하는 단계;
    양자화 레이어(l) 각각에 대하여, 가장 낮은 평균 클러스터링 오차(ε l )가 상기 양자화 레이어(l)에 대하여 결정될 때까지, 반복적으로 가중치들의 클러스터에 대한 중심점을 할당하고 상기 중심점과 관련해 상기 클러스터를 양자화하는 단계;
    상기 복수의 양자화 레이어로부터, 상기 복수의 양자화 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 레이어(l*)를 결정하는 단계;
    상기 레이어(l*)를 양자화하는데 이용되는 클러스터들의 개수가 하나 작아지도록 상기 레이어(l*)에 대한 클러스터들의 상기 기결정된 개수를 감축하는 단계;
    상기 레이어(l*)에 대한 상기 감축된 클러스터들의 기결정된 개수에 근거하여 상기 레이어(l*)를 재양자화하는 단계; 및
    상기 복수의 양자화 레이어로부터, 상기 복수의 양자화 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(
    Figure pat00007
    )를 갖는 다른 레이어(l*)를 계속 결정하고, 상기 다른 레이어를 양자화하는데 이용되는 클러스터들의 상기 개수가 하나 작아지도록 상기 다른 레이어(l*)에 대한 클러스터들의 상기 기결정된 개수를 감축하고, 상기 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값만큼 감축될 때까지 상기 다른 레이어(l*)에 대한 상기 감축된 클러스터들의 기결정된 개수에 근거하여 상기 다른 레이어(l*)를 재양자화하는 단계를 포함하는 방법.
  9. 제8 항에 있어서,
    상기 가장 낮은 평균 클러스터링 오차가 상기 양자화 레이어에 대하여 결정될 때까지, 반복적으로 가중치들의 상기 클러스터에 대한 상기 중심점을 할당하고, 상기 중심점과 관련해 상기 클러스터를 양자화하는 단계는,
    K-평균++을 이용하여, 반복적으로 상기 중심점을 할당하고 상기 중심점과 관련해 상기 클러스터를 양자화하는 단계를 포함하는 방법.
  10. 제9 항에 있어서,
    상기 클러스터링 오차(ε l )는 제로가 아닌 가중치에 대한 제곱 클러스터 오차를 포함하는 방법.
  11. 제10 항에 있어서,
    상기 클러스터링 오차(ε l )는,
    Figure pat00008
    를 만족하되,
    상기 n은 양자화 레이어를 양자화하는데 이용되는 클러스터들의 상기 기결정된 개수이고, 상기 i는 인덱스 변수이고, 상기 wi는 제로가 아닌 가중치이고, 상기 Cl는 상기 양자화 레이어(l)에 대한 중심점인 방법.
  12. 제10 항에 있어서,
    상기 기결정된 문턱 값은 1%인 방법.
  13. 제8 항에 있어서,
    상기 양자화 레이어에 대한 클러스터들의 상기 기결정된 개수(k l )를 초기화하는 단계는,
    두 개의 이웃한 클러스터들 각각의 중심점들 사이의 거리가 새로운 클러스터 중심(Cmerge)을 형성하는 기결정된 거리보다 작은 상기 두 개의 이웃한 클러스터들을 병합하는 단계를 포함하는 방법.
  14. 제13 항에 있어서,
    상기 새로운 클러스터 중심(Cmerge)은
    Figure pat00009
    를 만족하도록 결정되되,
    상기 C1 및 C2 각각은 상기 두 개의 이웃한 클러스터들의 상기 클러스터 중심들이고, 상기 N1 및 N2 각각은 상기 두 개의 이웃한 클러스터들 각각에 속하는 가중치 포인트들의 개수인 방법.
  15. 딥-러닝 네트워크에 대한 가중치 스토리지 비트들을 감축하는 시스템에 있어서,
    레이어 각각에 대하여 초기화된 클러스터들의 기결정된 개수(k l )에 근거하여 복수의 레이어를 갖는 상기 딥-러닝 네트워크의 레이어(l) 각각에 대한 뉴럴 가중치들을 양자화하는 가중치-양자화 모듈; 및
    레이어(l*)에 대한 클러스터들의 상기 기결정된 개수를 감축하되, 상기 레이어(l*)는 상기 가중치-양자화 모듈에 의하여 양자화되는 복수의 레이어의 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 클러스터-개수 감축 모듈을 포함하고,
    상기 가중치-양자화 모듈은 상기 레이어(l*)에 대한 상기 감축된 클러스터들의 기결정된 개수에 근거하여 상기 레이어(l*)를 재양자화하고,
    상기 클러스터-개수 감축 모듈은 상기 복수의 양자화 레이어로부터 상기 복수의 양자화 레이어의 상기 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l* )를 갖는 다른 레이어(l*)를 더 결정하고, 상기 딥-러닝 네트워크의 인식 성능이 기결정된 문턱 값으로 감축될 때까지 상기 다른 레이어(l*)에 대한 클러스터들의 상기 기결정된 개수를 감축하는 시스템.
  16. 제15 항에 있어서,
    상기 클러스터-개수 감축 모듈은,
    상기 복수의 양자화된 레이어로부터, 상기 복수의 양자화된 레이어의 상기 클러스터링 오차들(ε l )의 최소값인 클러스터링 오차(ε l * )를 갖는 레이어(l*)를 결정하는 클러스터링-오차 결정기를 포함하는 시스템.
  17. 제16 항에 있어서,
    상기 가중치-양자화 모듈은 K-평균++을 이용하여, 반복적으로 중심점을 할당하고 클러스터의 상기 중심점과 관련해 상기 클러스터를 양자화하는 시스템.
  18. 제17 항에 있어서,
    상기 클러스터링 오차(ε l )는 제로가 아닌 가중치에 대한 제곱 클러스터 오차를 포함하는 시스템.
  19. 제18 항에 있어서,
    상기 클러스터링 오차(ε l )는,
    Figure pat00010
    를 만족하되,
    상기 n은 레이어를 양자화하는데 이용되는 클러스터들의 상기 기결정된 개수이고, 상기 i는 인덱스 변수이고, 상기 wi는 제로가 아닌 가중치이고, 상기 Cl는 레이어(l)에 대한 중심점인 시스템.
  20. 제15 항에 있어서,
    두 개의 이웃한 클러스터들 각각의 중심점들 사이의 거리가 새로운 클러스터 중심(Cmerge)을 형성하는 기결정된 거리보다 작은, 상기 두 개의 이웃한 클러스터들을 병합함으로써, 양자화된 레이어에 대하여 클러스터들의 상기 기결정된 개수(k l )를 초기화하는 클러스터 초기화기를 더 포함하고,
    상기 새로운 클러스터 중심(Cmerge)은
    Figure pat00011
    를 만족하되,
    상기 C1 및 C2 각각은 상기 두 개의 이웃한 클러스터들의 상기 클러스터 중심들이고, 상기 N1 및 N2 각각은 상기 두 개의 이웃한 클러스터들 각각에 속하는 가중치 포인트들의 개수인 시스템.

KR1020180002425A 2017-01-09 2018-01-08 가중치 비트 감축을 위한 반복적인 딥 러닝 양자화 알고리즘 및 방법 KR102668734B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762444352P 2017-01-09 2017-01-09
US62/444,352 2017-01-09
US15/464,330 2017-03-20
US15/464,330 US11392825B2 (en) 2017-01-09 2017-03-20 Method and algorithm of recursive deep learning quantization for weight bit reduction

Publications (2)

Publication Number Publication Date
KR20180082344A true KR20180082344A (ko) 2018-07-18
KR102668734B1 KR102668734B1 (ko) 2024-05-23

Family

ID=62783173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180002425A KR102668734B1 (ko) 2017-01-09 2018-01-08 가중치 비트 감축을 위한 반복적인 딥 러닝 양자화 알고리즘 및 방법

Country Status (3)

Country Link
US (2) US11392825B2 (ko)
KR (1) KR102668734B1 (ko)
CN (1) CN108288087B (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020175862A1 (ko) * 2019-02-25 2020-09-03 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
KR20200104201A (ko) * 2019-02-25 2020-09-03 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
KR20210081859A (ko) 2019-12-24 2021-07-02 한국과학기술원 오류가 있는 고전적 학습 표본에 대한 패리티 학습 양자 알고리즘, 양자 회로 및 이를 이용한 시스템
KR102389910B1 (ko) 2021-12-30 2022-04-22 주식회사 모빌린트 그레디언트 독립적인 업데이트를 추가하여 그레디언트-기반 학습의 한계점을 보완하는 신경망의 양자화 인식 학습 방법
KR102486619B1 (ko) * 2022-05-26 2023-01-11 주식회사 노타 양자화 모델에서의 메모리 사용량과 대역폭 감축을 위한 데이터 저장 방법 및 시스템
KR20240038399A (ko) 2022-09-16 2024-03-25 조금배 Hard SAT 생성 방법 및 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법
KR20240050628A (ko) 2022-10-12 2024-04-19 연세대학교 산학협력단 인공 신경망을 위한 양자화 정밀도 조절 장치 및 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3657399A1 (en) * 2017-05-23 2020-05-27 Shanghai Cambricon Information Technology Co., Ltd Weight pruning and quantization method for a neural network and accelerating device therefor
US10778194B2 (en) * 2017-08-28 2020-09-15 University Of Florida Research Foundation, Inc. Automatic composition of universal filters
WO2020012061A1 (en) * 2018-07-12 2020-01-16 Nokia Technologies Oy Watermark embedding techniques for neural networks and their use
KR20200086581A (ko) * 2019-01-09 2020-07-17 삼성전자주식회사 뉴럴 네트워크 양자화를 위한 방법 및 장치
US10325352B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for transforming CNN layers to optimize CNN parameter quantization to be used for mobile devices or compact networks with high precision via hardware optimization
US10325185B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for online batch normalization, on-device learning, and continual learning applicable to mobile devices or IOT devices additionally referring to one or more previous batches to be used for military purpose, drone or robot, and testing method and testing device using the same
US11551054B2 (en) 2019-08-27 2023-01-10 International Business Machines Corporation System-aware selective quantization for performance optimized distributed deep learning
US11263518B2 (en) 2019-10-04 2022-03-01 International Business Machines Corporation Bi-scaled deep neural networks
CN113112012B (zh) * 2020-01-10 2023-04-25 腾讯美国有限责任公司 用于视频图像处理的方法、装置和计算机设备
US11935271B2 (en) * 2020-01-10 2024-03-19 Tencent America LLC Neural network model compression with selective structured weight unification
US11861467B2 (en) * 2020-03-05 2024-01-02 Qualcomm Incorporated Adaptive quantization for execution of machine learning models
WO2021230763A1 (en) * 2020-05-14 2021-11-18 Huawei Technologies Co., Ltd Robust compression mechanism for neural networks
CN111832701B (zh) * 2020-06-09 2023-09-22 北京百度网讯科技有限公司 模型的蒸馏方法、装置、电子设备及存储介质
CN111738348B (zh) * 2020-06-29 2023-07-11 南方电网科学研究院有限责任公司 一种电力数据异常检测方法和装置
US11948083B2 (en) * 2020-11-16 2024-04-02 UMNAI Limited Method for an explainable autoencoder and an explainable generative adversarial network

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421467B1 (en) 1999-05-28 2002-07-16 Texas Tech University Adaptive vector quantization/quantizer
EP1652133A4 (en) * 2003-07-09 2009-06-10 Raptor International Inc METHOD AND SYSTEM FOR DATA ANALYSIS USING NEURONAL NETWORKS
KR100930799B1 (ko) 2007-09-17 2009-12-09 한국전자통신연구원 자동화된 클러스터링 방법 및 이를 이용한 이동통신환경에서 다중 경로의 클러스터링 방법 및 장치
US8655108B2 (en) * 2007-09-19 2014-02-18 Sharp Laboratories Of America, Inc. Adaptive image up-scaling technique
WO2009141818A1 (en) * 2008-05-19 2009-11-26 Technion Research & Development Foundation Ltd. Apparatus and method for incremental physical data clustering
US8768239B2 (en) * 2011-05-13 2014-07-01 Xerox Corporation Methods and systems for clustering students based on their performance
US20130031063A1 (en) * 2011-07-26 2013-01-31 International Business Machines Corporation Compression of data partitioned into clusters
CN103218419B (zh) * 2013-03-29 2016-08-31 新浪网技术(中国)有限公司 网络标签聚类方法和系统
CN103455534B (zh) * 2013-04-28 2017-02-08 北界创想(北京)软件有限公司 对文档进行聚类的方法和装置
US10152673B2 (en) 2013-06-21 2018-12-11 Aselsan Elektronik Sanayi Ve Ticaret Anonim Sirketi Method for pseudo-recurrent processing of data using a feedforward neural network architecture
US10417525B2 (en) 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
US20170316311A1 (en) 2015-03-24 2017-11-02 Hrl Laboratories, Llc Sparse inference modules for deep learning
US11221990B2 (en) 2015-04-03 2022-01-11 The Mitre Corporation Ultra-high compression of images based on deep learning
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
CN104915552A (zh) * 2015-05-27 2015-09-16 百度在线网络技术(北京)有限公司 一种预测系统故障的方法及装置
CN105389588B (zh) * 2015-11-04 2019-02-22 上海交通大学 基于多语义码本图像特征表示方法
CN106304234B (zh) * 2016-08-09 2019-07-23 南京邮电大学 一种基于聚类路由协议的无线传感器网络能耗优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K.-L. Du et al., "Clustering: A neural network approach," Neural Networks 23 (2010) 89107 (2010.01.31.)* *
Song Han et al., "DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CODING", arXiv:1510.00149v5 [cs.CV] 15 Feb 2016 (2016.02.15.)* *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020175862A1 (ko) * 2019-02-25 2020-09-03 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
KR20200104201A (ko) * 2019-02-25 2020-09-03 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
KR20200106475A (ko) * 2019-02-25 2020-09-14 주식회사 딥엑스 인공신경망의 비트 양자화 방법 및 시스템
US11263513B2 (en) 2019-02-25 2022-03-01 Deepx Co., Ltd. Method and system for bit quantization of artificial neural network
KR20210081859A (ko) 2019-12-24 2021-07-02 한국과학기술원 오류가 있는 고전적 학습 표본에 대한 패리티 학습 양자 알고리즘, 양자 회로 및 이를 이용한 시스템
KR102389910B1 (ko) 2021-12-30 2022-04-22 주식회사 모빌린트 그레디언트 독립적인 업데이트를 추가하여 그레디언트-기반 학습의 한계점을 보완하는 신경망의 양자화 인식 학습 방법
WO2023128083A1 (ko) * 2021-12-30 2023-07-06 주식회사 모빌린트 그레디언트 독립적인 업데이트를 추가하여 그레디언트-기반 학습의 한계점을 보완하는 신경망의 양자화 인식 학습 방법
KR102486619B1 (ko) * 2022-05-26 2023-01-11 주식회사 노타 양자화 모델에서의 메모리 사용량과 대역폭 감축을 위한 데이터 저장 방법 및 시스템
KR20240038399A (ko) 2022-09-16 2024-03-25 조금배 Hard SAT 생성 방법 및 SAT에 기반을 둔 양자 내성 암호 알고리즘 구현 방법
KR20240038561A (ko) 2022-09-16 2024-03-25 조금배 Sat에 기반을 둔 양자 내성 암호 알고리즘 구현 방법
KR20240050628A (ko) 2022-10-12 2024-04-19 연세대학교 산학협력단 인공 신경망을 위한 양자화 정밀도 조절 장치 및 방법

Also Published As

Publication number Publication date
US20180197081A1 (en) 2018-07-12
US20220269941A1 (en) 2022-08-25
US11755908B2 (en) 2023-09-12
KR102668734B1 (ko) 2024-05-23
CN108288087B (zh) 2023-07-18
US11392825B2 (en) 2022-07-19
CN108288087A (zh) 2018-07-17

Similar Documents

Publication Publication Date Title
KR20180082344A (ko) 가중치 비트 감축을 위한 반복적인 딥 러닝 양자화 알고리즘 및 방법
US20210133278A1 (en) Piecewise quantization for neural networks
CN109788489B (zh) 一种基站规划方法及装置
US20160379140A1 (en) Weight benefit evaluator for training data
CN111858454B (zh) 一种gpu通信方法、设备以及介质
EP2941826B1 (en) Multiple output dynamic element matching algorithm with mismatch noise shaping for digital to analog converters
KR102415214B1 (ko) 이상치를 고려한 뉴럴네트워크 가속 방법 및 장치
US11681850B2 (en) Multi-patterning graph reduction and checking flow method
KR101661868B1 (ko) 오디오 신호를 위한 비트 할당 방법 및 장치
CN107680144A (zh) 一种WebP文件转换的方法及装置
CN112529199A (zh) 纠缠量子态提纯方法、装置、设备、存储介质及产品
US9251110B2 (en) Modifying the spectral energy content of a data bus
CN112488287A (zh) 卷积神经网络压缩方法、系统、设备及介质
WO2021012148A1 (zh) 基于深度神经网络的数据处理方法、装置及移动设备
CN114730367A (zh) 模型训练方法、装置、存储介质和程序产品
CN117273092A (zh) 一种模型量化方法、装置、电子设备及存储介质
CN114239792B (zh) 利用量化模型进行图像处理的系统、装置及存储介质
US20170235356A1 (en) Electronic device and method of reducing power thereof
CN104918314B (zh) 一种ap的功耗调整方法及装置
CN114881221A (zh) 映射方案优化方法及装置、电子设备、可读存储介质
CN113935456A (zh) 脉冲神经网络层内数据处理方法及设备、处理芯片
FI127938B (en) Wireless network plan with multiband access points
EP3924890A1 (en) Load distribution for a distributed neural network
US9971663B2 (en) Method and apparatus for multiple memory shared collar architecture
US20240095519A1 (en) Extreme sparse deep learning edge inference accelerator

Legal Events

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