KR20180043172A - 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 - Google Patents

뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 Download PDF

Info

Publication number
KR20180043172A
KR20180043172A KR1020170133616A KR20170133616A KR20180043172A KR 20180043172 A KR20180043172 A KR 20180043172A KR 1020170133616 A KR1020170133616 A KR 1020170133616A KR 20170133616 A KR20170133616 A KR 20170133616A KR 20180043172 A KR20180043172 A KR 20180043172A
Authority
KR
South Korea
Prior art keywords
quantization
vector
network
quantized
processor
Prior art date
Application number
KR1020170133616A
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
Priority claimed from US15/433,531 external-priority patent/US11321609B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180043172A publication Critical patent/KR20180043172A/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/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/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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • 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/047Probabilistic or stochastic 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Investigating, Analyzing Materials By Fluorescence Or Luminescence (AREA)
  • Spectrometry And Color Measurement (AREA)

Abstract

본 발명은 뉴럴 네트워크 양자화 방법 및 장치가 제공된다.
상기 뉴럴 네트워크 양자화 방법은, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 공유 양자화된 벡터를 미세 조정하고, 공유 양자화된 벡터를 이용하여 인코딩하는 것을 포함한다.

Description

뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치{METHOD AND APPARATUS FOR NEURAL NETWORK QUANTIZATION}
본 발명은, 딥 뉴럴 네트웍스(deep neural networks)에 관한 발명으로, 특히 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치에 관한 발명이다.
기계 학습 기술(machin learning technology)은 지속적으로 발전하고 있으며, 웹 검색(web searchs), 콘텐츠 필터링(content filtering), 상품 구매 웹사이트의 자동 추천(automated recommendations), 자동화 된 게임(automated game playing), 객체 검출(object detection), 이미지 분류(image classification), 스피치 인식(speech recognition), 기계 번역(machine translations), 약물 검색(drub discovery), 및 유전학(genomics)에서 현대 사회의 많은 측면을 지원하게 되었다. 기계 학습 분야의 최신 기술은 딥 뉴럴 네트웍스(deep neural networks) 라 할 수 있다. 이 딥 뉴럴 네트웍스(deep neural networks)는 다양한 수준의 추출을 통해 데이터의 표현을 배우는(보통, 매우 많은 양의 데이터) 다중 처리 레이어(multiple processing layer)로 구성된 컴퓨팅 모델을 이용한다. 따라서, “딥 러닝(deep learning)”, “딥 네트웍스(deep networks)” 등의 용어는 [LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. “Deep learning.” Nature, vol. 521, pp. 436-444 (28 May 2015)]를 참조한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
기계 학습의 첫 단계이자 가장 중요한 단계는 훈련(training)이다. 이미지들의 분류에 대한 기계 학습 시스템을 고려해 본다. 예컨대 사람, 애완동물, 차 및 주택의 많은 이미지 데이터 집합들이 수집되고, 이미지는 각각의 카테고리로 분류된다. 훈련(training)하는 동안, 기계에 이미지가 보여지고, 기계는 각 카테고리에 하나씩 점수 백터의 형태로 결과를 산출한다. 그 최종 목표는 올바른 카테고리가 모든 카테고리에서 가장 높은 점수를 가지는 것이지만, 이는 훈련(training)전에는 발생하기 어려울 것이다. 출력 점수와 원하는 점수의 패턴간의 오차 (또는 거리)를 측정하는 목적 함수(objective function)는, 훈련(training)에 사용된다. 조금 더 구체적으로, 그 기계는, 상기 목적 함수로부터 계산된 오차를 줄이기 위하여, 그 기계의 내부 조절가능한 파라미터들을 수정한다. 이 내부 조절가능한 파라미터들은, 종종 가중치(weight)들이라 불리며, 이 가중치들은 그 기계의 입-출력함수를 정의한다. 전형적인 딥 러닝 시스템에서는, 수억개의 그러한 조정가능한 가중치/파라미터들이 있을 수 있고, 기계를 훈련(training)시키는 수억개의 표본이 있을 수 있다.
가중치 벡터(weight vector)를 적절하게 조절하기 위해서, 학습 알고리즘은 기울기 벡터(gradient vector)를 계산한다. 이 기울기 벡터는, 만약 그 가중치가 약간 증가하면, 오류의 정도가 얼마나 증가 또는 감소할지를 나타낸다. 그 다음에 가중치 벡터가 기울기 벡터의 반대 방향으로 조절된다. 모든 훈련 예제(training examples)를 거쳐 평균된 상기 목적함수는, 가중치 값의 고차원 공간에서 일종의 언덕 지형으로 시각화 할 수 있다. 음의 기울기 벡터는 이 언덕 지형에서 급감하는 방향을 나타내고, 이를 최소값으로 근접시킬수록 그 출력 오류는 평균적으로 작을 것이다. 실제로, 확률적 기울기 강하(stochastic gradient descent; SGD)라고 불리우는 절차가 전형적으로 이용된다. 이것은 몇가지 표본에 대한 입력 벡터를 보여주고, 그 출력과 오류를 계산하고, 그러한 표본들의 평균 기울기를 계산하고, 이에 따라 가중치를 적용하는 것으로 구성된다. 이 과정은, 그 목적 함수의 평균이 감소를 중단할 때까지, 그 훈련(training) 세트의 많은 작은 표본들의 세트들에 대해 반복된다. 각 표본들의 작은 세트가, 전 표본들에 대해 노이즈가 있는(noisy) 기울기의 평균 추정치를 제공하기 때문에, 이를 ‘확률적’ 이라고 부른다. 이러한 간단한 절차는, 훨씬 정교한 최적화 기술들과 비교했을 때, 좋은 가중치들의 세트를 매우 빠르게 찾는다. 훈련 후에 그 시스템의 성능은, 테스트 세트라고 부르는, 별개의 표본들의 집합들로 측정된다. 이는 그 기계의 일반화 능력을 테스트 하는 역할을 한다. 이 능력은 훈련중에는 보지 못한, 새로운 입력들에 대해 현명한 응답을 할 수 있는 능력이다.
앞서 언급한 바와 같이, 수억개의 네트워크 파라미터/가중치들이 존재할 것이고, 이러한 네트워크 파라미터/가중치들을 저장하기 위해서는 상당히 많은 양의 메모리가 필요할 것이다. 따라서, 딥 뉴럴 네트웍스(deep neural networks)는 매우 강력하지만, 이를 실행하기 위해서, 특히 메모리 저장 장치와 관련된, 상당한 양의 자원(resource)을 요구한다. 예컨대, [Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton 의 "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems 2012] 에는 6천 1백만 개의 네트워크 파라미터들을 가지고 있고, [Simonyan, Karen, and Andrew Zisserman의 "Very deep convolutional networks for large-scale image recognition," arXiv preprint arXiv:1409.1556 (2014)] 에는 1억 3천 8백만 개의 네트워크 파라미터들을 보유한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
이로인해 모바일/휴대용 장치(mobile/portable devices)와 같이 한정적인 저장 용량을 갖춘 장치에, 딥 뉴럴 네트웍스(deep neural networks)를 사용하기 어려운 실정이다.
따라서, 본 발명의 기술적 사상에 따르면, 적어도 본 명세서에 기술된 문제점들 및/또는 단점들을 해결하고, 적어도 이하에서 설명되는 이점들을 제공하기 위해 만들어졌다.
본 발명이 해결하고자 하는 기술적 과제는, 뉴럴 네트워크 양자화에 관한 방법이다.
본 발명이 해결하고자 하는 기술적 과제는, 뉴럴 네트워크 양자화에 관한 장치이다.
본 발명이 해결하고자 하는 기술적 과제들은, 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따르면, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 공유 양자화된 벡터를 미세 조정하고, 공유 양자화된 벡터를 이용하여 인코딩하는 것을 포함하는 다차원 벡터를 이용한 네트워크 양자화 방법이 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따르면, 하나 이상의 비일시적 컴퓨터 판독가능한 매체, 및 적어도 하나의 프로세서를 포함하되, 적어도 하나의 프로세서는 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령어를 실행할 때, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 공유 양자화된 벡터를 미세조정하고, 공유 양자화된 벡터를 이용하여 인코딩하는 다차원 벡터를 이용한 네트워크 양자화 장치가 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따르면, 적어도 하나의 프로세서와 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는 칩셋의 제조 방법으로서, 적어도 하나의 프로세서는 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 수행할 때, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 공유 양자화된 벡터를 미세조정하고, 공유 양자화된 벡터를 이용하여 인코딩하고, 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 명령을 저장하는 칩셋 제조 방법이 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따르면, 네트워크 양자화 장치가 적어도 하나의 프로세서를 포함하는지 검사하고, 네트워크 양자화 장치가 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는지 검사하는 것을 포함하되, 적어도 하나의 프로세서는 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 수행할 때, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 공유 양자화된 벡터를 미세조정하고, 공유 양자화된 벡터를 이용하여 인코딩하고, 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 명령을 저장하는 네트워크 양자화 장치의 테스트 방법이 제공된다.
본 발명의 임의의 실시예의 앞서 언급한 내용 및 이와 다른 양상들, 특징들, 및 이점은 첨부 도면들과 관련한 다음의 상세한 설명으로부터, 보다 명확해 질 것이다.
도 1은, 본 발명의 몇몇 실시예에 따른, 뉴럴 네트워크 훈련(training)이 완료된 후에 실행되는, 뉴럴 네크워크의 압축 기술들의 예시적인 블록 다이어그램이다.
도 2는, 본 발명의 몇몇 실시예에 따른, 뉴럴 네트워크 훈련(training)이 완료된 후에 실행되는, 뉴럴 네크워크의 압축 기술들의 또 다른 예시적인 블록 다이어그램이다.
도 3a는, 본 발명의 몇몇 실시예에 따른, 네트워크 양자화를 위한 클러스트링 및 인코딩의 예시적인 블록 다이어그램이다.
도 3b는, 본 발명의 몇몇 실시예에 따른, 압축해제 하는 동안 바이너리 인코딩에 의해 인코딩된 양자화된 값을, 디코딩하는 예시적인 블록 다이어그램이다.
도 4는, 본 발명의 몇몇 실시예에 따른, 로이드 알고리즘(Lloyd's algorithm)을 이용하여 k- 평균 클러스트링( k- means clustering)을 수행하는 것에 대한 예시적인 흐름도이다.
도 5는, 본 발명의 몇몇 실시예에 따른, 본 발명의 네트워크 양자화 시스템의 예시적인 블록 다이어그램이다.
도 6은, 본 발명의 몇몇 실시예에 따른, 로이드 알고리즘(Lloyd's algorithm)을 이용하여, 헤시안 가중된 k- 평균 클러스트링(Hessian-weighted k- means clustering)을 수행하는 것에 대한 예시적인 흐름도이다.
도 7은, 본 발명의 몇몇 실시예에 따른, 균일 양자화(uniform quantization)를 수행하는 것에 대한 예시적인 흐름도이다.
도 8은, 본 발명의 몇몇 실시예에 따른, 네트워크 양자화에 관한 ECSQ 문제를 해결하기 위해, 반복 알고리즘을 수행하는 예시적인 흐름도이다.
도 9a는, 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법에 대한 코드 길이들의 예시적인 플롯(plot)이다.
도 9b는, 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법들에 대한 압축비(compression ratios)의 예시적인 플롯이다.
도 9c는, 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법에 대한 코드 길이들의 또 다른 예시적인 플롯이다.
도 10은, 본 발명의 몇몇 실시예에 따라, ECVQ 및 엔트로피 코딩에 의한 네트워크 압축 및 압축해제를 설명하기 위한 예시적인 블록도이다.
도 11은 본 발명의 몇몇 실시예들에 따른 유니버셜 양자화 및 엔트로피 코딩에 의한 네트워크 압축 및 압축해제를 설명하기 위한 예시적인 블록도이다.
도 12는 본 발명의 몇몇 실시예에 따른 유니버셜 네트워크 양자화 후, 유니버셜 소스 코딩에 대한 인코더 및 디코더를 설명하기 위한 예시적인 블록도이다.
도 13a는 몇몇 실시예에 따른 미세 조정 전 다양한 격자 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 13b는 몇몇 실시예에 따른 미세 조정 후 다양한 격자 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 14a는 몇몇 실시예에 따른 미세 조정 전 다양한 유니버셜 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 14b는 몇몇 실시예에 따른 미세 조정 후 다양한 유니버셜 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 15는 몇몇 실시예에 따른 다양한 코딩 방식을 이용한 균일 및 유니버셜 양자화에 대한 정확도 대 압축비에 대한 예시적인 플롯이다.
도 16은 본 발명의 몇몇 실시예에 따른 본 발명의 장치에 대한 예시적인 블록 다이어그램이다.
도 17은 본 발명의 몇몇 실시예들에 따른 뉴럴 네트워크 장치를 제조하고, 테스트하기 위한 예시적인 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
위에서 언급한 바와 같이, 딥 뉴럴 네트웍스(deep neural networks)의 메모리 요구는, 그 이용에 제한이 있다. 특히, 그것들의 메모리/저장장치의 요구가 한정적인 메모리 자원을 가진 장비들을 배제시킨다. 그러나, 뉴럴 네트워크의 전체 크기를 감소시키기 위한 다양한 수단이 있는데, 때때로 이를 "네트워크 압축"이라고 부른다. 예컨대, 다음을 살펴보도록 한다. [Michael C Mozer and Paul Smolensky, Skeletonization: A technique for trimming the fat from a network via relevance assessment, in Advances in Neural Information Processing Systems, pp. 107-115, 1989 ("Mozer & Smolensky 1989"); Yann LeCun, John S Denker, Sara A Solla, Richard E Howard, and Lawrence D Jackel, Optimal brain damage, in Advances in Neural Information Processing Systems, pp. 598-605, 1990 ("LeCun et al. 1990"); Babak Hassibi and David G Stork. "Second order derivatives for network pruning: Optimal brain surgeon" in Advances in Neural Information Processing Systems, pp. 164-171, 1993 ("Hassibi & Stork 1993"); Song Han, Jeff Pool, John Tran, and William Dally. Learning both weights and connections for efficient neural network. In Advances in Neural Information Processing Systems, pp. 1135-1143, 2015 ("Han et al. 2015a"); Vincent Vanhoucke, Andrew Senior, and Mark Z Mao, Improving the speed of neural networks on CPUs, in Deep Learning and Unsupervised Feature Learning Workshop, NIPS, 2011 ("Vanhoucke et al. 2011"); Kyuyeon Hwang and Wonyong Sung, Fixed-point feedforward deep neural network design using weights +1, 0, and -1, in IEEE Workshop on Signal Processing Systems, pp. 1-6, 2014 ("Hwang & Sung 2014"); Sajid Anwar, Kyuyeon Hwang, and Wonyong Sung, Fixed point optimization of deep convolutional neural networks for object recognition, in IEEE International Conference on Acoustics, Speech and Signal Processing, pp. 1131-1135, 2015 ("Anwar et al. 2015"); Matthieu Courbariaux, Jean-Pierre David, and Yoshua Bengio, Training deep neural networks with low precision multiplications, arXiv preprint arXiv:1412.7024, 2014 ("Courbariaux et al. 2014"); Matthieu Courbariaux, Yoshua Bengio, and Jean-Pierre David. Binaryconnect: Training deep neural networks with binary weights during propagations. In Advances in Neural Information Processing Systems, pp. 3123-3131, 2015 ("Courbariaux et al. 2015"); Suyog Gupta, Ankur Agrawal, Kailash Gopalakrishnan, and Pritish Narayanan, Deep learning with limited numerical precision, in Proceedings of the 32nd International Conference on Machine Learning, pp. 1737-1746, 2015 ("Gupta et al. 2015"); Darryl D Lin, Sachin S Talathi, and V Sreekanth Annapureddy, Fixed point quantization of deep convolutional networks, arXiv preprint arXiv:1511.06393, 2015 ("Lin, D., et al. 2015"); Zhouhan Lin, Matthieu Courbariaux, Roland Memisevic, and Yoshua Bengio, Neural networks with few multiplications, arXiv preprint arXiv:1510.03009, 2015 ("Lin, Z., et al. 2015"); Mohammad Rastegari, Vicente Ordonez, Joseph Redmon, and Ali Farhadi, XNOR-Net: Imagenet classification using binary convolutional neural networks, arXiv preprint arXiv:1603.05279, 2016 ("Rastegari et al. 2016"); Tara N Sainath, Brian Kingsbury, Vikas Sindhwani, Ebru Arisoy, and Bhuvana Ramabhadran. Low rank matrix factorization for deep neural network training with high-dimensional output targets, in IEEE International Conference on Acoustics, Speech and Signal Processing, pp. 6655-6659, 2013 ("Sainath et al. 2013"); Jian Xue, Jinyu Li, and Yifan Gong, Restructuring of deep neural network acoustic models with singular value decomposition, in INTERSPEECH, pp. 2365-2369, 2013 ("Xue et al. 2013"); Max Jaderberg, Andrea Vedaldi, and Andrew Zisserman, Speeding up convolutional neural networks with low rank expansions, in Proceedings of the British Machine Vision Conference, 2014 ("Jaderberg et al. 2014"); Vadim Lebedev, Yaroslav Ganin, Maksim Rakhuba, Ivan Oseledets, and Victor Lempitsky, Speeding-up convolutional neural networks using fine-tuned CP-decomposition, arXiv preprint arXiv:1412.6553, 2014 ("Lebedev et al. 2014"); Zichao Yang, Marcin Moczulski, Misha Denil, Nando de Freitas, Alex Smola, Le Song, and Ziyu Wang, Deep fried convnets, in Proceedings of the IEEE International Conference on Computer Vision, pp. 1476-1483, 2015 ("Yang et al. 2015"); Yong-Deok Kim, Eunhyeok Park, Sungjoo Yoo, Taelim Choi, Lu Yang, and Dongjun Shin, Compression of deep convolutional neural networks for fast and low power mobile applications, arXiv preprint arXiv:1511.06530, 2015 ("Kim et al. 2015"); and Cheng Tai, Tong Xiao, Xiaogang Wang, et al., Convolutional neural networks with low-rank regularization, arXiv preprint arXiv:1511.06067, 2015 ("Tai et al. 2015")] 이는 본 명세서에 그 전체가 참고문헌으로 인용되어 있다.
도 1은, 본 발명의 몇몇 실시예에 따른, 뉴럴 네트워크 훈련(training)이 완료된 후에 실행되는 뉴럴 네크워크의 압축 기술들의 예시적인 블록 다이어그램이다. 도 1은, 저장될 네트워크 파라미터/가중치들의 수를 줄이는 것을 목표로 하는, 몇몇 전형적인 네트워크 압축 방식(network compression scheme)들을 보여준다. 상기 도 1의 네트워크 압축 방식(network compression scheme)은 단지 예시적인 것이며, 본 발명의 개시는 도 1에 개시된 또는 미 개시된 어떠한 방법으로도 한정되지 않는다. 게다가 본 발명의 개시에 따른 몇몇 실시예들에는 임의의 가능한 네트워크 압축 기술의 조합들을 명확히 포함하고 있다.
도 1에 나타나듯이, 먼저 네트워크 훈련(training)이 완성된다(110). 이는 모든 네트워크 파라미터/가중치들(parameters/weights)이 생성되었음을 의미한다. 네트워크 압축은 네트워크 프루닝(network pruning, 120), 프루닝되지 않은 네트워크 파라미터들의 미세 조정(130), 네트워크 양자화(network quantization, 140), 및 상기 양자화된 값들의 미세조정(150)을 포함한다.
네트워크 프루닝(120)은, 네트워크 파라미터들의 값들을 0으로 세팅하여, 네트워크 파라미터들을 완전히 제거한다. 프루닝된 네트워크를 위해, 오로지 프루닝 되지 않은 네트워크 파라미터들과 그 각각의 위치들(인덱스들)만, 원래의 모델에 유지되는 것이 필요하다. 조금 더 세부적인 내용은, [Hassibi & Stork 1993; Han et al. 2015a; and LeCun et al. 1990.]를 참조한다. 상기 프루닝으로 인한 정확도 손실을 어느정도 복구하기 위해, 프루닝 되지 않은 파라미터들의 미세조정(130)이 다음으로 수행될 수 있다. 조금 더 상세한 것은 후술할 섹션 I의 서브섹션 D를 살펴본다. 다음으로, 네트워크 양자화(140)가 수행된다. 네트워크 양자화의 기본 개념은 네트워크 파라미터들을, 적은 수의 클러스터(cluster)들로 클러스터링하고, 각 네트워크 파라미터를 상기 네트워크 파라미터들이 속해있는 클러스터 중심(cluster center)값으로 양자화하고, 실제 파라미터 값 대신에 바이너리 인코딩(binary encoding)에 의해 인코딩된 양자화된 값을 저장하는 것이다. 따라서, 네트워크 양자화는 그 파라미터들을 양자화 하고, 양자화된 그 값들을 더 작은 비트 크기의 바이너리 코드워드(binary codeword)들로 인코딩함으로써, 대표하는(프루닝 되지 않은) 네트워크 파라미터들의 필요 비트 수를 감소시킨다. 작은 크기의 룩업 테이블(lookup table)을 이용하여, 상기 양자화된 값들을 실제 값들 대신 저장된 상기 바이너리 코드워드들로부터 되찾아 올 수 있다. 예로써, 도 3a, 도 3b 및 하기의 실시예를 참조한다. 같은 클러스터에 있는 네트워크 파라미터들은 예측 단계(prediction stage)에서 같은 양자화된 값(즉, 클러스터 중심)을 가질 것이다. 달리 말하면, 상기 클러스터들(클러스터 중심들)의 대표 값들(즉, 양자화된 값들)은 인코딩되어 메모리에 저장된다. 그리고 상기 저장된 값들은 상기 실제 양자화된 값들 대신 바이너리 코드워드들에 기초하여 판독되고, 예측에 사용될 것이다. 마지막으로, 상기 양자화된 값들(즉, 상기 클러스터 중심들)은 미세 조정된다(150). 앞서 언급한 바와 같이, 다양한 네트워크 압축 기술들이 존재하고, 이에 관해서 미세 조정 단계(130, 150)는 선택적이다. 그러나 상기 프루닝 및/또는 양자화가, 점점 더 공격적으로 수행될수록(더 많은 데이터를 프루닝할수록 및/또는 더 적은 수의 클러스터로 나누어질수록), 원래 성능을 복구하기 위해서 점점 더 필수적이게 될 것이다.
네트워크 양자화에 대한 접근 중 하나의 구체적인 실시예인, k- 평균 클러스터링( k- means clustering)을, 도 2, 도 3a 및 도 3b를 참조로 하여, 다음으로 논의 한다.
도 2는, 본 발명의 몇몇 실시예에 따른 뉴럴 네트워크 훈련(training)이 완료된 후에 실행되는 뉴럴 네크워크의 압축 기술들의 또 다른 예시적인 블록 다이어그램이다. 뉴럴 네트워크 훈련(training)이 완료(210)된 후에, 네트워크 프루닝(network pruning)을 포함한 네트워크 압축(220), 프루닝 되지 않은 네트워크 파라미터들의 미세조정(230), 네트워크 양자화(240), 및 양자화된 값들의 미세조정(250)이 수행된다.
도 2를 참조하면, 조금 더 구체적이고 세부적인, 네트워크 양자화(240) 접근법에 대해 설명된다. 상기 네트워크 양자화(240)는 클러스터링(243)과 인코딩(245)을 포함한다. 클러스터링(243)은, 상기 네트워크 파라미터들이 k 개의, 공통 원소를 갖지 않는 집합(클러스터)들로 분리되는, k- 평균 계층별 클러스터링( k- means layer-by-layer clustering)을 포함한다. 그리고 나서 각 클러스터에 있는 상기 네트워크 파라미터들은, 같은 값 또는 "대표 값"(즉, 이 경우 클러스터 중심)으로 양자화된 값이다. 클러스터링 후, 무손실의 바이너리 인코딩(245)은, 실제 파라미터 값들을 저장하는 것을 대신하여, 상기 양자화된 파라미터들을, 바이너리 코드워드들로 인코딩한다. 고정 길이 바이너리 인코딩(fixed-length binary encoding), 또는 가변 길이 바이너리 인코딩(variable-length binary encoding) 중 어느 하나가 인코딩 하기 위해 이용될 수 있다(245). 가변 길이 바이너리 인코딩은 예컨대, 허프만(Huffman coding) 또는 렘펠-지브-웰치(Lempel-Ziv-Welch coding; LZW coding) 코딩 등이 있다. 조금 더 세부적인 사항을 위해서, [Han, Song, et al. "Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding." arXiv preprint arXiv:1510.00149 (2015) ("Han et al. 2015b"); and Gong, Yunchao, et al. "Compressing deep convolutional networks using vector quantization." arXiv preprint arXiv:1412.6115 (2014) ("Gong et al. 2014")]를 참조한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
도 3a는 본 발명의 몇몇 실시예에 따른, 네트워크 양자화를 위한 클러스트링 및 인코딩의 예시적인 블록 다이어그램이다. 도 3a를 참조하면, 원래의 네트워크 파라미터들은 32 비트의 부동소수점 수(float number)들이다(310). 이러한 상기 네트워크 파라미터들(310)은 클러스터 인덱스들(cluster indice, 320)을 가지고 있는 클러스터들로 클러스터링 된다.
예를 들어, 도 3a를 참조하면 1, 2, 3 및 4의 클러스터 인덱스를 가진 4개의 클러스터들이 있고, 각 클러스터 인덱스는 대표 값을 가진다(330). 즉, 도 3a의 "Quantized parameters"를 참조하면, 인덱스 1, 2, 3, 및 4 는 각각 -1.00, 0.00, 1.50, 및 2.00의 값을 가진다. 여기서 알 수 있듯이, 이 경우의 상기 양자화는 상기 원래의 32 비트 부동소수점 수(310)들에 비해 정확도가 떨어진다. 상기 클러스터 인덱스들 1, 2, 3, 및 4를, 고정 길이 바이너리 코드워드들(fixed-length binary codewords)인 00, 01, 10, 11(340F)로 맵핑(mapping)하거나, 가변 길이 바이너리 코드워드들(variable length binary code words)인 1, 01, 001, 000(예컨대, 허프만 인코딩된 코드워드(Huffman encoded codword)들, 340V)로 맵핑하기 위해서, 고정 길이 바이너리 인코딩(fixed-length binary encoding), 또는 가변 길이 바이너리 인코딩(variable-length binary encoding)(예컨대, 허프만 또는 렘펠-지브-웰치 코딩) 중 어느 하나가 이용될 수 있다(350).
도 3b는 본 발명의 몇몇 실시예에 따른, 압축해제 하는 동안 바이너리 인코딩에 의해 인코딩된, 양자화된 값을 디코딩하는 예시적인 블록 다이어그램이다. 도 3b는, 도 3a에 의해 설명된 상기 실시예를 이용하여 디코딩(decoding)하는 것을 설명한다. 도 3a에서 압축된 결과인, 가변 길이 바이너리 코드워드들(340V)은, 압축해제되어 상기 양자화된 값들로 되돌아간다. 이 실시예에서 메모리에 저장된 바이너리 코드워드들은, 맵핑 테이블(mapping table)로부터, 양자화된 값들을 판독하기 위해서 이용된다. 구체적으로, 도 3b를 참조하면, 제1 압축된 클러스터 인덱스 코드워드인 "000"(341V)을 이용할 때, 맵핑 테이블(351)은 매칭되는 양자화된 파라미터 값이 "2.00"임을 보여준다. 그러므로 도 3b의 "Decoded network parameters"(311)에서, 제1 디코딩된 네트워크 파라미터는 "2.00"이다. 그리고, 상기 디코딩 된 값들은 예측을 위한 뉴럴 네트워크에 사용 된다.
그러나, 도 2 및 도 3a에 보여지며, ["Han et al. 2015b" 및 "Gong et al. 2014"] 에서 논의되는 k- 평균 클러스터링은 아래에 설명된 대로 그 결함이 있다. 우선, 수학적 모델을 이용하여 뉴럴 네트웍스를 일반적으로 설명하고, 그 후 k- 평균 클러스터링을 구체적으로 설명한다.
수학식 1은 입력이
Figure pat00001
일 때 출력 벡터가
Figure pat00002
로 맵핑되는 함수
Figure pat00003
를 수행하는 일반적인 비선형 뉴럴 네트워크(non-linear neural network)를 나타낸다.
[수학식 1]
Figure pat00004
여기에서,
Figure pat00005
는 벡터이며, 상기 벡터는 wi (i=1, 2, …, N)인 각각 훈련(training)가능한 네트워크 파라미터로 구성되며, N은 이러한 파라미터들의 전체 개수 이다. 위에서 언급한 바와 같이, 목적 함수(objective function)는, 가중치 벡터들(네트워크 파라미터들)을 적절하게 조절하기 위한, 뉴럴 네트워크 훈련(training) 중의 오류를 최소화하는데 이용된다.
수학식 2의
Figure pat00006
함수(손실함수)는 훈련(training)에 의해 평균적으로 최소화 될 필요가 있는 목적함수로 정의 된다.
[수학식 2]
Figure pat00007
여기에서,
Figure pat00008
는 입력
Figure pat00009
에 대한 뉴럴 네트워크의 예측된 출력이고,
Figure pat00010
는 입력
Figure pat00011
에 대한 기대 출력(expected output)이다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 이해할 수 있는 바와 같이, 예컨대, 크로스 엔트로피(cross entropy)와 평균 제곱 오차(mean square error) 손실함수들을 포함하여, 이용될 수 있는 많은 유형의 손실함수가 존재한다.
임의의 입력 데이터 집합
Figure pat00012
에 대한 평균 손실함수(average loss function) L 은 다음과 같은 수학식 3a에 의해 정의 된다.
[수학식 3a]
Figure pat00013
상기 입력 데이터 집합
Figure pat00014
가 커지면 커질수록, 상기 평균 손실함수
Figure pat00015
은, 기대 손실 함수(expected loss function)
Figure pat00016
로 더 근접해 진다. 상기 기대 손실함수는 다음과 같은 수학식 3b로 나타난다.
[수학식 3b]
Figure pat00017
훈련 집합
Figure pat00018
가 주어지면, 예컨대 미니 배치들을 사용하는 SGD 최적화 방법(SGD optimization method with mini-batches)을 이용해, 수학식 4를 해결함으로써, 상기 네트워크 파라미터들
Figure pat00019
는 최적화 된다(
Figure pat00020
).
[수학식 4]
Figure pat00021
앞서 언급한 상기 SGD 프로세스는, 상기 목적함수의 평균이 감소하는 것을 멈출때까지, 각 반복(iteration)에서 몇 가지 예를 통해, 상기 입력 벡터, 출력, 및 오류가 계산되고, 평균 기울기가 계산되고, 상기 파라미터들이 조절되는 프로세스이다.
훈련/최적화(또는 프루닝 및/또는 미세조정)후에, 이 경우에는 k- 평균 계층별 클러스터링( k- means layer by layer clustering)에 의해, 네트워크 양자화가 수행된다. 이때, 네트워크 파라미터
Figure pat00022
는, k 개의 공통원소가 없는 집합들/클러스터들
Figure pat00023
로 클러스터링 되고, k- 평균 클러스터링은, 수학식 5a에 의해 정의되는, 양자화 오류(quantization error)를 최소화하는 클러스터들을 생성한다.
[수학식 5a]
Figure pat00024
여기에서,
Figure pat00025
는, 수학식 5b에 의해 정의되며, 클러스터
Figure pat00026
에 있는 네트워크 파라미터들/포인트들의 평균이다.
[수학식 5b]
Figure pat00027
k- 평균 클러스터링은 비결정 난해 문제(non-deterministic polynomial time hard problem; NP-hard problem)이다. 그러나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 알 수 있듯이, 국소 최적(local optimum)에 빠르게 수렴하여 종종 사용되는, 몇 가지 효과적인 휴리스틱 알고리즘(heuristic algorithm)들이 존재한다. 가장 많이 알려진 알고리즘 중에 하나는 로이드 알고리즘(Lloyd's algorithm)이다. [Stuart Lloyd. Least squares quantization in PCM. IEEE transactions on information theory, 28(2): 129-137, 1982,] 를 참고하도록 한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
도 4는, 본 발명의 몇몇 실시예에 따른 로이드 알고리즘(Lloyd's algorithm)을 이용하여, k- 평균 클러스트링( k- means clustering)을 수행하는 것에 대한 예시적인 흐름도이다. 대체로, 로이드 알고리즘(Lloyd's algorithm)이 수렴하거나 반복(iteration)의 최대 횟수에 도달할 때까지, 할당(assignment) 및 갱신(updates)의 두가지 단계를 반복하여, 로이드 알고리즘(Lloyd's algorithm)을 진행한다.
도 4를 참조하면, k 개의 클러스터 중심들의 집합
Figure pat00028
은 초기화되고, 반복 인덱스(iterative index) n 은 1로 세팅된다(410). 각 네트워크 파라미터는, 클러스터 중심이, 상기 네트워크 파라미터 값과 가장 가까운 클러스터로 할당된다(420). 이는 상기 클러스터 중심들을 이용하여 생성된, 보로노이 도형(Voronoi diagram)에 따른, 포인트(point)들의 분할을 의미한다. 모든 네트워크 파라미터들이 (재)할당 된 후에(420), 새로운 k 개의 클러스터 중심들의 집합인
Figure pat00029
가 (여기서, x는 반복 횟수) 계산된다 (430). 반복의 횟수(iteration number)가 갱신되면(" n=n+1 ")(440), 상기 반복(iteration) 절차를 종료할지 여부가 결정된다(445). 조금 더 구체적으로, 상기 반복 횟수(iteration number)가 한도를 초과하는지 여부(" n>N "), 또는 네트워크 파라미터들이 (재)할당 되는 과정에서(420), 할당되는 값이 더이상 변화가 없는지(이는 상기 알고리즘이 효과적으로 수렴함을 의미) 여부로, 반복(iteration) 절차를 종료할지가 결정된다(445). 만약 상기 반복(iteration) 절차의 종료 여부를 결정하는 단계에서(445), 절차를 종료하는 것으로 결정되면, 양자화된 네트워크 파라미터들에 대한 코드북(도 3a의 표(350)와 유사)이 생성된다(450). 만약 상기 반복(iteration) 절차의 종료 여부를 결정하는 단계에서(445), 절차를 종료하지 않는 것으로 결정되면, 상기 절차는 할당을 반복한다(420).
다음으로, 네트워크 양자화에 대한 k- 평균 클러스터링을 이용하여 달성된 압축비(compression ratio)를 계산한다. 이러한 계산들을 수행하기 위해, 양자화 전에 네트워크 파라미터 wi ( i =1, 2, ... , N , N 은 파라미터들의 전체 개수)가 각각 b 비트의 길이를 가진 것으로 가정한다. 그러므로 양자화 전에 상기 네트워크 파라미터들을 저장하려면, Nb 비트가 요구된다.
k- 평균 클러스터링이 가변 길이 인코딩(variable-length encoding)을 이용하는 것으로 가정하면, C i 를 클러스터 i 의 네트워크 파라미터들의 수라고 정한다. 여기서, 1 < i < k 를 만족하고, b i 는 클러스터 i 의 네트워크 파라미터들에 대해 할당된 코드워드(즉, 클러스터 i 에 대한 코드워드)들의 비트 수 이다.
그러므로 바이너리 코드워드(binary codeword)들은 Nb 비트 대신
Figure pat00030
비트이다. k 개의 바이너리 코드워드( b i 비트, 1 < i < k ) 및 그 매칭되는 양자화된 파라미터 값(각 b 비트)를 저장한 룩업 테이블(lookup table)을 위해서, 추가적인
Figure pat00031
비트가 필요하다. 따라서, 수학식 6a에서
[수학식 6a]
가변 길이 인코딩(variable length encoding)에서,
압축비 =
Figure pat00032
앞서 본 바와 같이, 가변 길이 인코딩을 이용한 k- 평균 클러스터링에서, 압축비는 클러스터들의 개수(즉,
Figure pat00033
)뿐만 아니라, 다양한 클러스터들의 크기(즉,
Figure pat00034
)와 각 클러스터의 코드워드에 대해 할당된 비트 수(즉, b i 비트, 1 < i < k ) 에도 의존한다. 그러나, 모든 코드워드들의 길이가 같은, 즉
Figure pat00035
인, 고정 길이 코드들에 대해서는, 그 압축비는 수학식 6b로 감소한다.
[수학식 6b]
고정 길이 인코딩(fixed length encoding)에서,
압축비 =
Figure pat00036
앞서 본 바와 같이, 고정 길이 인코딩을 이용한 k- 평균 클러스터링에서, N b 가 주어졌다고 가정했을 때, 압축비는 단지 클러스터들의 개수(즉,
Figure pat00037
)에만 의존한다. 여기에서 k 개의 바이너리 코드워드는 그것들을 분명히 알 수 있기 때문에, 룩업 테이블에 저장하는 것이 필수적이지 않다. 즉, 만약 양자화된 값들이 0에서 k - 1 로 증가하면서 바이너리 수로 인코딩되면, 바이너리 코드워드는 같은 순서대로 저장한다.
위에서 살펴 본 네트워크 양자화에 대한 종래의 k- 평균 클러스터링 방법의 여러 문제점 중 하나는, 모든 네트워크 파라미터들을 그들이 동일한 중요도를 가지고 있는 것처럼 취급한다는 것이다. 그러나, 어떤 네트워크 파라미터들은, 최종 손실함수에 더 큰 영향을 주어, 그로 인해 뉴럴 네트워크의 성능에 더 큰 영향을 줄 수 있는 반면, 다른 네트워크 파라미터들은, 양자화 및 뉴럴 네트워크의 성능에 무시할 수 있는 영향만 끼칠 수 있다. 네트워크 양자화를 위해 이용되는 종래의 k- 평균 클러스터링 방법처럼, 모든 네트워크 파라미터들을 동일한 가중치를 가진 것으로 취급하는 것은, 손실함수 및/또는 최종 결과 성능에 미치는 영향을 최소화할 때의 최적의 방법이 아니다.
종래의 k- 평균 클러스터링의 또 다른 문제점은, 압축비에 대한 인코딩 방식(encoding scheme)의 영향을 고려하지 않는 것이다. 양자화된 값을 인코딩 하기 위해, 고정 길이 인코딩을 이용하는 것을 가정하면, 예컨대, 위의 수학식 6b를 보면, 압축비는 단순히 클러스터들의 개수 k 에 의해서만 결정된다. 그러나, 양자화된 값을 인코딩 하기 위해, 가변 길이 무손실 인코딩이 이용될 때, 예컨대, 위의 수학식 6a를 보면, 압축비는 클러스터들의 개수 k 뿐만 아니라, 클러스터들의 크기와 (적용되는 코딩에 의해 결정되는)코드워드들의 할당된 크기에 의해서도 결정된다. 그러므로 코드워드 길이의 평균이 점진적으로 엔트로피 한계에 접근하는, 예컨대 허프만(Huffman) 또는 LZW 인코딩과 같은, 가변 길이 인코딩이 사용될 때, 종래의 k- 평균 클러스터링은 이러한 요인들을 고려하지 않아서, 심지어 더 큰 성능 손실을 발생 시킬 수 있다.
그 중에서도, 종래의 k- 평균 클러스터링( k- means clustering)을 이용하는 이러한 문제들을 해결하기 위해, 본 발명은 (1)다른 네트워크 파라미터들의 중요성을 측정하기 위한, 네트워크 파라미터에 대한 손실 함수의 2 차 편미분, 즉 헤시안 행렬(Hessian matrix)의 대각 성분(diagonal)의 이용, (2)사용된 특정 바이너리 인코딩 방식(binary encoding scheme)으로 인한 실제 압축비의 제약하에서, 네트워크 양자화 문제를 해결하는 것에 대해 설명한다. 따라서, 이하의 설명은 7개의 섹션으로 나뉜다.
I. 헤시안 가중(Hessian-weight)을 이용한 네트워크 양자화
II. 엔트로피 - 제한 네트워크 양자화
III. 스칼라 양자화에 대한 실험 /시뮬레이션 결과들
IV. 스칼라 양자화에 대한 결론
V. 벡터 및 유니버셜 양자화
VI. 벡터 양자화에 대한 실험 /시뮬레이션 결과
VII. 벡터 양자화에 대한 결론
본 발명의 기술적 사상에 따른, 종래의 k- 평균 클러스터링 보다 더 좋은 성능 결과를 제공하는, 네트워크 양자화 방식(network quantization schemes)을 포함한 네트워크 압축기술들을 설명한다. 예컨대, 헤시안 가중된 k- 평균 클러스터링(Hessian-weighted k- means clustering), (헤시안 가중된 클러스터 중심을 이용한) 균일 양자화(uniform quantization), 엔트로피-제한 스칼라 양자화(entropy-constrained scalar quantization; ECSQ)에 대한 반복 알고리즘, 모든 레이어의 양자화(quantization of all layers together)를 설명한다.
본 발명의 몇몇 실시예들은, 성능 저하를 최소화하면서 네트워크에 대한 저장공간(메모리) 크기를 감소시키기 위한, 뉴럴 네트워크 파라미터의 양자화에 사용될 수있다. 본 발명의 기술적 사상에 따라 설명된 기술들은, 일반적으로 임의의 모든 유형의 뉴럴 네트워크에 적용 가능하다.
본 발명의 몇몇 실시예에 따르면, 도 5는 네트워크 양자화 기술들을 이용한 네트워크 압축 방식(network compression scheme)을 보여준다. 도 5에서, 네트워크 프루닝(network pruning, 520), 프루닝 되지 않은 네트워크 파라미터들의 미세 조정(530), 및 상기 양자화된 값들의 미세조정(550)은, 각각 도 2의 네트워크 프루닝(220), 프루닝 되지 않은 네트워크 파라미터들의 미세 조정(230) 및 양자화된 값들의 미세조정(250)과 유사할 것이다.
도 5의 네트워크 양자화(540)는, 계산(542), 클러스터링(544), 및 인코딩(546)의 3개의 블록을 가지고 있다. 본 발명의 몇몇 실시예에 언급된 바와 같이, 계산 (542)은 헤시안 행렬(Hessian matrix)을 계산하는 단계를 포함하고, 이는 타당성 검증 단계에서 수행될 수 있으며, 이는 네트워크 훈련(training)(510)을 뒤따른다. 본 발명의 몇몇 실시예에 언급된 바와 같이, 클러스터링(540)은 헤시안 가중된 k- 평균 클러스터링(Hessian-weighted k- means clustering), 균일 양자화(uniform quantization) 및 엔트로피-제한 스칼라 양자화 (ECSQ)를 위한 반복 알고리즘 중 하나 이상을 포함할 수 있다. 본 발명의 몇몇 실시예에 언급된 바와 같이, 인코딩(546)은 고정 길이 인코딩과 가변 길이 인코딩 중 하나 이상을 포함할 수있다. 본 발명의 몇몇 실시예에 언급된 바와 같이, SDG 옵티마이저(SDG optimizer)들이, 그들의 훈련(training)(510) 및 미세조정(530)의 효과에 관하여, 도 1의 하단에 언급되어있다.
I. 헤시안 가중을 이용한 네트워크 양자화(Network quantization using Hessian -weight)
이 섹션에서는, 뉴럴 네트워크의 손실함수에 대한 양자화 오류의 영향을 분석하고, 양자화에서, 서로 다른 네트워크 파라미터들의 중요성을 정량화 하는데 사용될 수 있는, 헤시안 가중(Hessian-weight)을 유도한다. 헤시안 행렬(Hessian matrix) 또는 "헤시안(Hessian)"은 이차 편미분으로 구성된다. [LeCun et al. 1990 and Hassibi & Stork 1993]를 참조하면, 헤시안 행렬은 네트워크 파라미터들을 프루닝(pruning)하는데 이용된다. 아래에 보면, 헤시안(특히 헤시안의 대각성분)이, 다른 네트워크 파라미터들의 양자화 오류에 다른 가중치 부여를 위할 뿐만 아니라, 네트워크 양자화를 적용하기 위해서 사용된다. 헤시안 가중된 k- 평균 클러스터링 방법은 네트워크 양자화에 대해 설명된다. 여기에서 각 네트워크 파라미터에 대한 손실함수의 이차 편미분(달리 말해, 헤시안)은, 네트워크 파라미터 클러스터링을 위한 가중된 k- 평균 클러스터링에서, 가중치를 부여하는데 사용된다.
A. 헤시안 가중된 양자화 오류(Hessian-weighted quantization error)
수학식 7a에서 볼 수 있듯이, 임의의 입력 데이터 집합
Figure pat00038
에 대한 평균 손실함수
Figure pat00039
는, w 에 관한 테일러 시리즈(Taylor series)로 전개된다.
[수학식 7a]
Figure pat00040
이때,
Figure pat00041
이고, 수학식 7b에서 볼 수 있듯이,
[수학식 7b]
Figure pat00042
여기서, g (w)는 기울기(gradient)들의 행렬이고, H (w)는 이차 편미분으로 구성되는, 헤시안 정사각 행렬(Hessian square matrix)이다. 훈련(training)/미세조정(fine-tuning)이 완료 되었다고 가정하면, 네트워크 파라미터들은 최적화 되고, 손실 함수는 국소 최저치(local minima)에 도달한다(
Figure pat00043
). 국소 최저치에서, 기울기들은 모두 0이고(즉,
Figure pat00044
), 따라서 수학식 7a의 우변의 첫번째 항은 무시될 수 있다. 이와 유사하게, 평균 손실함수가 국소 최저치
Figure pat00045
에서 대략적으로 이차 함수이라는 가정하에, 수학식 7a의 우변의 세번째 항 역시 무시할 수 있을 것이다. 최종적으로, 이를 간략화 하자면, 헤시안 행렬 H (w)는, 대각 성분이 아닌 성분들을 0으로 세팅하여, 이를 대각 행렬(diagonal metrix)로 근사화 된다. 수학식 7b로부터 수학식 7c가 따른다.
[수학식 7c]
Figure pat00046
여기서,
Figure pat00047
는,
Figure pat00048
에서 계산된 w i 에 관한, 평균 손실함수의 이차 편미분이다. 여기에서, w i 는 헤시안 행렬
Figure pat00049
i 번째 대각 성분을 의미한다. 다음으로, 수학식 7c는,
Figure pat00050
를 그것의 국소 최적(local optimum)
Figure pat00051
에서 네트워크 파라미터 w i 의 양자화 오류로 취급하여, 네트워크 양자화 문제와 연관된다. 즉,
Figure pat00052
Figure pat00053
의 양자화된 값일 때,
Figure pat00054
이다. 그러므로,
Figure pat00055
에서의 평균 손실함수에 대한 양자화의 국소 영향(local impact)은, 대략적으로 수학식 7d처럼 정량화 될 수 있다.
[수학식 7d]
Figure pat00056
국소 최저치에서, 헤시안 행렬
Figure pat00057
의(즉,
Figure pat00058
의) 대각 성분들은, 모두 음이 아니므로, 수학식 7d의 합은 항상 더해진다. 이는 평균 손실함수는 항상 증가하거나, 동일한 값에 머무는 것을 의미한다.
위에서 재훈련(retraining) 및 양자화 사이의 상호작용(interaction)은 고려되지 않았다. 본 발명의 기술적 사상에 따르면, 모든 네트워크 파라미터들의 양자화로 인한 기대 손실(expected loss)은, 더 이상의 재교육은 가정하지 않은채 분석되고, 압축비를 최대화 하는 동안, 성능 손실(performance loss)을 최소화 하는, 최적의 네트워크 양자화 방식(network quantization scheme)들을 찾는데 중점을 둔다.
B. 헤시안 가중된 k- 평균 클러스터링(Hessian-weighted k- means clustering)
지난 섹션에서,
Figure pat00059
에서의 평균 손실함수에 관한 헤시안 가중된 양자화의 국소 영향(local impact)은, 수학식 7d에서 대략적으로 정량화 된다. 이 섹션에서는, 수학식 7d로 나타낸 관계는 메모리 요구를 감소시키고, 양자화 손실을 최소화 하는 네트워크 양자화 방식(network quantization scheme)을 설계하는데 이용된다. 표기상의 간략화를 위해, 지금부터
Figure pat00060
Figure pat00061
라고 가정한다. 수학식 7d로부터, 헤시안 가중된 왜곡 측정(Hessian-weighted distortion measure)을 최소화 하는 최적의 클러스터링은, 수학식 8a에 의해 주어진다.
[수학식 8a]
Figure pat00062
여기에서
Figure pat00063
는, 수학식 8b에서 보여지는 바와 같이, 네트워크 파라미터
Figure pat00064
에 관한 손실함수의 이차 편미분이다.
[수학식 8b]
Figure pat00065
그리고
Figure pat00066
는, 수학식 8c에서 보여지는 바와 같이, 클러스터
Figure pat00067
의 네트워크 파라미터들의 헤시안 가중된 평균이다.
[수학식 8c]
Figure pat00068
수학식 5a의, 종래의 k- 평균 클러스터링 기술 및 이것의 왜곡 측정(distortion measure)과는 대조적으로, 왜곡 측정 수학식 8a의 클러스터 중심은 이제 헤시안 가중된 클러스터 중심, 즉, 수학식 8c의, 클러스터 구성원의 헤시안 가중된 평균이다. 또한, 파라미터들의 원래 값으로부터 큰 편차를 피하기 위해, 이차 편미분이 더 큰 경우, 수학식 8a는 양자화 계산시에 더 큰 패널티를 부여한다. 이는 양자화에 기인한 손실 함수의 영향이, 해당 네트워크 파라미터에 대해 더 클 것으로 예상되기 때문이다. 고정 길이 바이너리 코드가 양자화된 값들을 인코딩하는데 이용될 때, 헤시안 가중된 k- 평균 클러스터링은 양자화 손실을 최소화 하는데 있어 국소적으로 최적화되어 있다. 여기에서, 수학식 6b에서 볼 수 있듯이, 압축비는 오로지 클러스터들의 수에만 의존한다.
도 6은, 본 발명의 몇몇 실시예에 따른 로이드 알고리즘(Lloyd's algorithm)을 이용하여, 헤시안 가중된 k- 평균 클러스트링(Hessian-weighted k- means clustering)을 수행하는 것에 대한 예시적인 흐름도이다.
도 6에서,
Figure pat00069
개의 클러스터 중심들의 집합인
Figure pat00070
는 초기화 되고, 반복 인덱스(iterative index) n 은 1로 세팅된다(610). 각 네트워크 파라미터는, 그 중심이 그 네트워크 파라미터 값과 가까운 클러스터로, 할당된다(620). 이는 포인트들을, 상기 클러스터 중심들에 의해 생성된, 보로노이 도형(Voronoi diagram)에 따라 분할하여 수행될 수 있다. 모든 네트워크 파라미터들을 (재)할당 후(620), 헤시안 가중된 클러스터 중심의 새로운 집합의 평균들이 계산된다(630). 반복의 횟수(iteration number)가 갱신되면(“ n=n+1 ”, 640), 상기 반복(iteration) 절차를 종료할지 여부가 결정된다(645). 조금 더 구체적으로, 상기 반복 횟수(iteration number)가 한도를 초과하는지 여부(“ n>N ”), 또는 네트워크 파라미터들이 (재)할당 되는 과정에서(620), 할당되는 값이 더이상 변화가 없는지(이는 상기 알고리즘이 효과적으로 수렴함을 의미) 여부로, 반복(iteration) 절차를 종료할지가 결정된다(645). 만약 상기 반복(iteration) 절차의 종료 여부를 결정하는 단계에서(645) 절차를 종료하는 것으로 결정되면, 양자화된 네트워크 파라미터들에 대한 코드북이 생성된다(650). 만약 상기 반복(iteration) 절차의 종료 여부를 결정하는 단계에서(645) 절차를 종료하지 않는 것으로 결정되면, 상기 절차는 할당을 반복한다(620).
C. 헤시안 계산(Hessian Computation)
헤시안 가중된 k- 평균 클러스터링을 수행하기 위해, 각 네트워크 파라미터들에 관한 평균 손실함수의 이차 편미분의 계산이 필요하다. 즉, 수학식 9의 계산이 필요하다.
[수학식 9]
Figure pat00071
헤시안 행렬의(즉,
Figure pat00072
의) 대각성분만이 관심의 대상이다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들에게 알려져 있듯이, 헤시안 행렬의 대각 성분을 계산하는 방법은 다양하게 존재한다. 헤시안 행렬의 대각성분의 효과적인 계산은 [in LeCun et al. 1990 and Yann LeCun, Mod`eles connexionnistes de l'apprentissage, PhD thesis, Paris 6, 1987 ("LeCun 1987")]에서 유도된다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다. 이러한 계산 기술은, 일차 편미분(gradient: 기울기)을 계산할 때 이용되는 역 전파 알고리즘(back propagation algorithm)과 유사한, 역 전파 방법(back propagation method)에 기초한다. 그러므로, 헤시안 행렬의 대각 성분들을 계산하는 것은 기울기를 계산하는 것과 같은 복잡도를 가진다.
따라서 본 발명의 몇몇 실시예에서는, 네트워크 훈련(training)을 완료한 후에 헤시안 계산 및 네트워크 양자화가 수행되지만, 본 발명의 다른 몇몇 실시예들에서는, 헤시안 계산(또는 아래 섹터 I의 서브섹터E에서 논의될, 다르지만 동일한 효과를 갖는 계산들)은 기울기의 계산이 진행중인 훈련(training) 단계에서도 수행될 수 있다.
본 발명의 몇몇 실시예에서, 헤시안 대각 성분들을 계산하기 위해 이용되는 손실함수는, 일부 입력 집합
Figure pat00073
에 대한 평균 손실함수이다. 이를 위해서, 훈련(training)에 사용되는, 예컨대 훈련 데이터 집합(training data set)과 같은, 동일한 데이터 집합이 재사용 될 수 있거나, 예컨대 타당성 검증 데이터 집합(validation data set)과 같은, 다른 데이터 집합이 사용될 수 있다. 실험에서 훈련/타당성 검증 데이터 집합의 작은 하위집합을 사용하는 경우에도, 헤시안 대각 성분들의 양호한 근사치를 얻어내는 것이 충분하다는 것이 관찰되었고, 이는 양호한 양자화 결과를 이끌었다.
D. 모든 레이어들의 양자화(Quantization of all layers)
본 발명의 몇몇 실시예에 따르면, 양자화는, [Gong et al. (2014) and Han et al. (2015a)]에 나와 있는 계층별 양자화를 수행하는 것이 아니라, 헤시안 가중을 고려하여, 동시에 뉴럴 네트워크의 모든 레이어의 네트워크 파라미터들에 대해 양자화가 수행된다. 동시에 모든 레이어에 대해 양자화를 수행하는 것에 대한 장점은, 성능에 대한 양자화 오류의 영향이 레이어간에 현저하게 다르다는 것이다. 즉, 어떤 레이어들(예컨대, 컨볼루션 레이어(convolution layers))은 다른 레이어들에 비해 조금 더 중요할 수 있다. 따라서 본 발명의 기술적 사상에 따른, 헤시안 가중을 이용하여, 네트워크 양자화 방식(network quantization scheme)에 대한 모든 레이어를 함께 양자화를 수행하는 것은, 더 개선된 성능 결과를 이끌 수 있다.
전 레이어에 걸친 양자화의 또 다른 장점은, 딥 뉴럴 네트웍스의 깊이가 증가 하는 것이다. [Kaiming, et al. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385 (2015). (He et al. 2015)]를 참조하도록 한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다. 이러한 딥 뉴럴 네트웍스에서, 모든 레이어의 네트워크 파라미터를 함께 양자화하는 것은 조금 더 효과적이다. 이는 계층별 클러스터링 최적화(optimizing clustering layer-by-layer)에 대한 시간이 그 레이어들의 수 및/또는 복잡도에 관해 지수적으로(exponentially) 증가하기 때문이다.
E. 헤시안 가중의 대안들
본 발명의 몇몇 실시예에 따르면, 헤시안 가중을 이용하는 것의 대안으로 기울기들의 이차 모멘트 추정치(second moment estimate)들이 이용된다. 기울기들의 이차 모멘트 추정치들을 이용하는 한 가지 이점은, 기울기들의 이차 모멘트 추정치들은 훈련(training)을 진행하는 동안 계산될 수 있고, 그러므로 추가적인 계산 없이 추후 사용을 위해 저장할 수 있다는 점이다. 특히, 뉴럴 네트워크가, ADAM, Adagrad, Adadelta 또는 RMSprop 과 같은, 상급의 SGD 옵티마이저(advanced SGD optimizer)들에 의해 훈련될 때, 기울기들의 이차 모멘트 추정치들의 함수를 이용하는 것이 이점이 될 수 있다. ADAM, Adagrad, Adadelta 및 RMSprop 은 [Kingma, Diederik, and Jimmy Ba. "ADAM: A method for stochastic optimization." arXiv preprint arXiv:1412.6980 (2014). ("Kingma et al 2014"); Duchi, John, Elad Hazan, and Yoram Singer. "Adaptive subgradient methods for online learning and stochastic optimization." Journal of Machine Learning Research 12.Jul (2011): 2121-2159. ("Duchi et al. 2011"); Zeiler, Matthew D. "ADADELTA: an adaptive learning rate method." arXiv preprint arXiv:1212.5701 (2012). ("Zeiter 2012"); and Tieleman, Tijmen, and Geoffrey Hinton. "Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude." COURSERA: Neural Networks for Machine Learning 4.2 (2012). ("LECTURE 6.5")]를 참조한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
예로서, 수학식 10a에서 보여지는 바와 같이, 기울기들의 이차 모멘트 추정치들의 제곱근(square root)은, ADAM SGD 옵티마이저가 사용될 때의 헤시안 가중의 대안으로 사용될 수 있다.
[수학식 10a]
Figure pat00074
여기서
Figure pat00075
Figure pat00076
의 제곱근에 대한 어떤 함수이고,
Figure pat00077
는 기울기 i 의 이차 모멘트 추정치다.
상기 ADAM 방법은 기울기들의 일차 모멘트 추정치 및 이차 모멘트 추정치들로부터 다른 네트워크 파라미터들에 대한 개별적 적응 학습율(individual adaptive learning rates)을 계산한다. ADAM이라는 이름 그 자체는 적응 모멘트 추정치로부터 유도된다. 파라미터는, ADAM 알고리즘에서, 수학식 10b를 사용하여 갱신된다.
[수학식 10b]
Figure pat00078
여기서, w i (t)
Figure pat00079
번의 반복에서 갱신된 파라미터이고,
Figure pat00080
Figure pat00081
번의 반복에서 계산된 일차 모멘트 추정치고,
Figure pat00082
Figure pat00083
번의 반복에서 계산된 이차 모멘트 추정치다. 일차 모멘트 추정치
Figure pat00084
및 이차 모멘트 추정치
Figure pat00085
는, 수학식 10c에 의해,
Figure pat00086
번의 반복에서의 기울기의 함수
Figure pat00087
로 계산된다.
[수학식 10c]
Figure pat00088
Figure pat00089
여기에서,
Figure pat00090
Figure pat00091
는 아래의 수학식 10d로 계산된다.
[수학식 10d]
Figure pat00092
이 ADAM 방법은, 헤시안 가중을 이용한, 뉴턴 최적화 방법(Newton's optimization method)과 비교될 수 있다. 뉴턴 최적화 방법은 수학식 11과 같이 적용된다.
[수학식 11]
Figure pat00093
여기에서 w (t)는 t번의 반복에서 갱신된 네트워크 파라미터들의 벡터이고, H -1 (t) t 번의 과정에서 계산된 헤시안 행렬의 역행렬이며, g (t) t 번의 반복에서의 기울기이다.
수학식 10b 및 수학식 11로부터, 수학식 10b의 분자
Figure pat00094
가 수학식 11의 기울기 g (t)와 부합하는 동안, 수학식 10b에 있는 분모
Figure pat00095
는 수학식 11의 헤시안 H( t )처럼 행동한다는 것을 볼 수 있다. 이는, 기울기의 이차 모멘트 추정치들의 제곱근과 같은 특정 함수가, 헤시안 가중의 대안으로서 사용될 수 있음을 나타낸다.
다른 몇몇 실시예에서, ADAM 및 임의의 다른 SGD 옵티마이저에서 이차 모멘트 추정치와 유사한 함수들을 찾아 사용할 수 있다. 앞서 언급한 바와 같이, 이차 모멘트 추정치의 한가지 이점은, 훈련(training) 중에 계산되어, 추후 사용을 위해 추가적인 계산 낭비없이 저장할 수 있다는 것이다.
II. 엔트로피-제한 네트워크 양자화(Entropy-constrained network quantization)
섹션 I에서, 네트워크 양자화에 기인한 성능 손실을 정량화하고 최소화하는 방법을 고려하였다. 이 섹션에서는, 압축 비율을 최대화 하기 위한 방법이 고려된다. 특히, 네트워크 양자화를 최적화할 때, 압축비를 적절하게 고려하는 것에 관한 방법을 고려한다.
A. 엔트로피 코딩(Entropy coding)
클러스터링 및 선택적으로 네트워크 파라미터들을 프루닝 한 후에, 가변 길이 바이너리 코드(variable-length binary code)는 다른 길이의 바이너리 코드워드들을 다른 기호(symbol)(즉, 양자화된 값)에 할당하여 무손실 데이터 압축으로 사용될 수 있다. 예컨대, 허프만 코딩(Huffman coding)은 상대적으로 짧은 코드워드들을 빈번한 기호들에, 그리고 상대적으로 긴 코드워드들을 덜 빈번한 기호들에 할당한다. 이론적으로, 주어진 소스(source)에 대한 코드워드의 길이의 평균을 최소화할 수 있는, 최적의 코드들의 집합이 있다. 엔트로피(entropy)는 무손실 데이터 압축에 의해 달성될 수 있는, 기호 당 코드워드 길이의 평균의 이론적인 한계치이다. 이는 Shannon에 의해 증명되었다. 이는 [Claude E. Shannon: A Mathematical Theory of Communication, Bell System Technical Journal, Vol. 27, pp. 379-423, 623-656, 1948]를 참조하도록 한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다. 이러한 이유로, 최적의/거의 최적의 압축을 달성하는 코딩을 때때로 엔트로피 코딩(entropy coding)이라 부른다. [Thomas M Cover and Joy A Thomas. Elements of information theory. John Wiley & Sons, 2012, which is incorporated herein by reference in its entirety]를 참조하도록 하며, 이는 본 명세서에 그 전체가 참고문헌으로 인용되어 있다.
B. 엔트로피-제한 스칼라 양자화(Entropy-constrained scalar quantization; ECSQ)
가변 길이 엔트로피 인코딩이 사용될 때, 압축비(compression ratio)는, 특정 인코딩 방식(encoding scheme)이 사용되어 달성되는, 코드워드의 길이의 평균에 대한 함수이다. 이러한 경우들에서, 코드워드 길이의 평균의 제한 하에, 양자화 손실을 최소화하여, 네트워크 양자화 절차가 최적화 될 수 있다. 그러한 엔트로피 인코딩 방식(entropy encoding scheme)이 사용될 때, 네트워크 양자화에 관한 최적화 문제는 아래에 설명하는 엔트로피-제한 스칼라 양자화 문제로 감소될 수 있다. 양자화된 값의 고정 길이 인코딩에 관하여, k- 평균 클러스터링은 적어도 양자화 오류를 최소화 하는데 있어 최고의 방식(scheme)이다. 왜냐하면 압축비가 단지 클러스터들의 개수에만 의존하기 때문이다. 그러나, 예컨대 허프만 또는 LZW 인코딩과 같은 가변 길이 인코딩에 대해서는, 압축비가 클러스터들의 개수뿐만 아니라 클러스터들의 크기, 코드워드들의 길이에 의존한다. 그러므로, 이러한 경우들에는, 실제 압축비(actual compression ratio)의 제한하에, 양자화 손실을 최소화 하는 것이 더 바람직하다. 실제 압축비는, 최종적으로 사용된 특정 인코딩 방식(encoding scheme)에 기인된, 코드워드 길이의 평균에 대한 함수이다. 한가지 접근법은, 이 문제를 수학식 12a의 압축비의 제한 하에서 수학식 8의 헤시안 가중으로 해결하는 것이다.
[수학식 12a]
Figure pat00096
여기에서
Figure pat00097
는 수학식 12b의 코드워드 길이의 평균이다.
[수학식 12b]
Figure pat00098
어떤 임의의 가변길이 바이너리 코드에 대한 압축비의 제한으로, 이러한 최적화를 해결하는 것은, 일반적으로 매우 복잡하다. 왜냐하면 코드워드 길이의 평균이, 클러스터링 출력에 의존하여 임의적일 수 있기 때문이다. 그러나, 만약, 예를 들어, 허프만 코드와 같은 최적의 코드들이, 클러스터링 후에 사용되는 것을 가정하면, 이는 단순화 될 수 있다. 특히, 최적의 코딩은 소스 코드워드 길이의 평균의 하한, 즉 엔트로피를 근접하게 달성하기 때문에, 코드워드 길이의 평균
Figure pat00099
는 수학식 12c와 같이 근사화된다.
[수학식 12c]
Figure pat00100
여기에서,
Figure pat00101
가, 클러스터 C i 에 있는 네트워크 파라미터들의 개수에 대한 모든 파라미터 개수들의 비로 주어졌을 때, H 는 클러스터링 후의 양자화된 네트워크 파라미터들의 엔트로피이다. 수학식 12d에서 볼 수 있듯이,
Figure pat00102
라고 가정하면, 수학식 12a의 분모는 0에 근접한다.
[수학식 12d]
Figure pat00103
수학식 12c 및 수학식 12d에서, 수학식 12a의 제한은 수학식 12e에 주어진 엔트로피 제한으로 변경될 수 있다.
[수학식 12e]
Figure pat00104
여기에서,
Figure pat00105
이다.
요약하자면, 최적의/엔트로피 코딩이 클러스터링 후에 사용된다고 가정하면, 클러스터링 출력의 엔트로피에 대한 제한은, 압축비의 제한을 근사적으로 대체할 수 있다. 그러면, 네트워크 양자화 문제는, 정보이론(information theory)에서 엔트로피 제한 스칼라 양자화(entropy-constrained scalar quantization; ECSQ)라고 불리는, 엔트로피 제한을 가진 양자화 문제로 변환된다.
네트워크 양자화의 ECSQ에 대한 두 개의 효과적인 휴리스틱 솔루션들은 후술할 보조 섹션에 설명한다. 즉 균일 양자화 및 k- 평균 클러스터링에 대한 로이드 알고리즘(Lloyd's algorithm)과 유사한 반복 알고리즘(iterative algorithm)에 대해 설명한다.
C. 균일 양자화(uniform quantization)
균일 양자화는, 평균 제곱 오류 기준에 대한 소스 분배와 관계 없이, 최적의 높은 레졸루션(high-resolution)의 엔트로피 제한 스칼라 양자화기(entropy-constrained scalar quantizer)이다. 이는 레졸루션이 무한대가 될 때, 즉 클러스터들의 개수인 k 가 무한대로 접근할 때, 상당히 매끄러운 밀도함수(reasonably smooth density function)를 갖는, 임의의 랜덤 소스(random source)에 대한 평균 제곱 양자화 오류를, 최소화할 때의 점근적인 최적을 의미한다. [Gish, Herbert, and John Pierce. "Asymptotically efficient quantizing." IEEE Transactions on Information Theory 14.5 (1968): 676-683.("Gish & Pierce 1968")]를 참조하도록 한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
균일 양자화는 매우 간단한 방식(scheme)이다. 왜냐하면, 클러스터들이 균일하게 간격을 둔 쓰레숄드(threshold)들에 의해 결정되고, 그들의 대표 값들(클러스터 센터들)은, 예컨대 각 클러스터의 네트워크 파라미터 구성원들의 평균(또는 헤시안 가중된 평균)을 사용함으로써 얻을 수 있기 때문이다. 균일 양자화가 점근적인 최적 일지라도, 네트워크 양자화에 대해 사용될 때, 여전히 좋은 성과를 산출하는 시뮬레이션들이 관측된다. 그러므로, 균일 양자화는, 클러스터링 후의 최종의 양자화 값을, 가변 길이 엔트로피 인코딩(예컨대, 허프만 또는 LZW 인코딩)을 사용하여, 인코딩 할 때, 효과적인 네트워크 양자화이다.
도 7은, 본 발명의 몇몇 실시예에 따른, 균일 양자화(uniform quantization)를 수행하는 것에 대한 예시적인 흐름도이다. 도 7에서, 균일하게 간격을 둔 클러스터 쓰레숄드들이, 네트워크 파라미터들을 클러스터들로 나누기 위하여, 세팅된다(710). 그리고, 파라미터들의 값들의 경계를 설정함으로써, 이 네트워크 파라미터들이 파라미터들의 클러스터들로 할당된다(720). 각 클러스터에서 대표 값들이 계산된다(730). 이 실시예에서, 각 클러스터의 대표 값이 클러스터의 네트워크 파라미터 구성원들의 계산된 평균(또는 계산된 헤시안 가중된 평균)으로 세팅된다. 균일 양자화 후에 일부 클러스터들은 비어있을 수 있다. 네트워크 파라미터들은 생성된 코드북에 구현된 코딩에 의해 인코딩/압축 된다(750). 이 실시예에서, 양자화된 값들을 생성된 코드북에 대한 가변 길이 코드워드로 인코딩하기 위해, 허프만 인코딩이 이용된다.
가중되지 않은 평균들 및 헤시안 가중 평균을 갖는 균일 양자화의 성능 비교는 [Choi et al. 2016]의 부록 A.3 에서 찾을 수 있다. 이는 본 명세서에 그 전체가 참고문헌으로 인용되어 있다.
D. ECSQ 해결을 위한 반복 알고리즘(iterative algorithm to solve ECSQ )
섹터 II의 서브섹터 B에 서술된 ECSQ 문제를 해결하기 위한 제안된 또 다른 방식(scheme)은 반복 알고리즘이다. 이는 k- 평균 클러스터링에 대한 로이드 알고리즘(Lloyd's algorithm)과 유사하다. 이 방식(scheme)은, 앞서 서술한 균일 양자화보다 더 복잡하지만, 이 방식(scheme)은 임의의 주어진 이산 입력 소스(discrete input source)에 대한 ECSQ 문제의 국소 최적 포인트(local optimal point)를 찾는다. 이 반복 알고리즘은 일반적인 ECSQ 문제를 해결하는 반복 알고리즘과 유사하다. 이는 [Chou, Philip A., Tom Lookabaugh, and Robert M. Gray. "Entropy-constrained vector quantization." IEEE Transactions on Acoustics, Speech, and Signal Processing 37.1 (1989): 31-42. ("Chou et al. 1989")]를 참조한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다. 그리고 이는 후술할 라그랑지안 멀티플라이어 방법(method of Lagrangian multiplier)을 따른다. 라그랑지안 멀티플라이어 방법은 [Stephen Boyd and Lieven Vandenberghe, Convex Optimization, Cambridge University Press (2004)]를 참조한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
이를 네트워크 양자화 문제에 적용하기 위해서는 라그랑지안 비용함수(Lagrangian cost function) J λ 를 먼저 정의해야 한다. 이는 수학식 13a에 보여진다.
[수학식 13a]
Figure pat00106
여기에서 왜곡 측정 D 및 엔트로피 제한 H 는 수학식 13b에서 보여진다.
[수학식 13b]
Figure pat00107
d λ (i, j)로 표현되는, 개별적인 라그랑지안 비용들의 평균이, 네트워크 파라미터들에 대한 수학식 13a의 라그랑지안 비용함수를 대표하기 위해, 위의 왜곡 측정 D 는 노멀라이징 될 수 있다.
[수학식 13c]
Figure pat00108
이는 수학식 13d로부터 기인한다.
[수학식 13d]
Figure pat00109
네트워크 양자화 문제는 이제, 수학식 13e에 따른 라그랑지안 비용함수를 최소화하는, k 개의 분리된 클러스터들
Figure pat00110
을 찾는 것으로 줄어든다.
[수학식 13e]
Figure pat00111
이러한 최적화 문제는, 선택될 수 있는 두가지 선택적 파라미터들이 있다. 즉, 라그랑지안 멀티플라이어 λ 및 (최초의)클러스터들의 개수 k 이다.
라그랑지안 멀티플라이어 λ 는 엔트로피 제한을 제어한다. 서로 다른 λ 값들로 이 최적화를 해결하는 것은, 다른 엔트로피 제한하에서의 최적의 양자화가 된다. 예컨대, 더 큰 λ 를 사용하여 최적화 하는 경우, 엔트로피 H 에 대해 보다 많은 패널티(penalty)가 효과적으로 주어지며, 결과적으로 이는 더 작은 엔트로피 제한 하에서, 최소화 된 왜곡을 유도한다. 그 엔트로피 제한은 왜곡이 성능 손실을 결정하는 동안의 압축비와 관련 있다. 따라서, 이 서로 다른 λ 값들에 대한 최적화 문제를 해결하여, 압축비와 성능간의 트레이드 오프(trade-off) 곡선을 얻을 수 있다. 그리고 이 곡선은 주어진 성능 한계에 대한 최적 압축비를 보여주거나, 주어진 압축비에 대한 달성 가능한 성능을 보여준다. 허프만 인코딩에 의해 최적화 하고 이를 따를 때, 서로 다른 λ 값들은 별개의 클러스터링에 다른 코드워드 길이의 평균을 공급한다.
수학식 13e의 문제의 정의에서, 클러스터들의 개수 k 는 최적화 후에 남아있는 클러스터들의 개수와 동일하지 않다. 왜냐하면 일부 클러스터들은, 엔트로피 제한 때문에, 비어있는 상태로 끝날 수 있기 때문이다. k 가 충분히 크다면, 엔트로피 제한으로 이 문제를 해결하는 것은, 자동으로 비어있지 않은 클러스터들의 개수 역시 최적화 하기 때문에, 최적화 출력은 k 에 의해 그다지 많은 영향을 받지 않는다. 실제로, 충분히 큰 k 값이 선택되고, 서로 다른 λ 값에 대한 최적화가 진행된다. 이는 서로 다른 압축비에 대해, 달성가능한 최대 성능을 보여주는 곡선을 제공할 것이다. 이 곡선으로부터, 목표 성능(target performance) 및/또는 목표 압축비(target compression)를 만족하는 포인트가 선택될 수 있을 것이다.
λ 와 k 가 주어지면, 이 네트워크 양자화에 대한 ECSQ 문제를 해결하기 위한 휴리스틱 반복 알고리즘(heuristic iterative algorithm)이 하기 알고리즘 1에 제시된다. 알고리즘 1은 k- 평균 클러스터링에 대한 로이드 알고리즘(Lloyd's algorithm)과 유사하다; 오직 하나의 주요한 차이점은 할당단계에서 네트워크 파라미터들을 어떻게 분배할 것인가에 관한 점이다. 로이드 알고리즘(Lloyd's algorithm)에서는 유클리드 거리(Euclidean distance, 즉, 양자화 오류)가 최소화 된다. ECSQ에서는 각각의 라그랑지안 비용함수(즉, 수학식 13c)에서 d λ (i, j))가 대신 최소화 되고, 이는 최적 인코딩 후의 양자화 오류와 기대 코드워드의 길이(expected codeword length) 둘 다 포함한다. 이 실시예에서는 수학식 13b에서 보여지는 헤시안 가중된 양자화 오류를, 비용함수를 정의하는데 사용되지만, 만약 헤시안 가중이 이용 불가능하거나, 다른 양자화 오류 척도(quantization error metrics)가 더 나은 경우에는, 다른 양자화 오차 척도가 사용될 수 있을 것이다.
Figure pat00112
알고리즘 1에 관한 조금 더 세부적인 사항들은 [Choi et al. 2016]의 부록 A.2에서 찾을 수 있다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다.
도 8은, 본 발명의 몇몇 실시예에 따른, 네트워크 양자화에 관한 ECSQ 문제를 해결하기 위해, 반복 알고리즘을 수행하는 예시적인 흐름도이다.
도 8을 참조하면, 초기화(initialization)가 수행된다(810). 이 실시예에서, 초기화(810)는 k개의 클러스터 중심들(
Figure pat00113
)의 초기화, 각 네트워크 파라미터의 헤시안 가중된 중심이 파라미터 값과 가장 가까운 클러스터로의 초기 할당(
Figure pat00114
), 및 초기 분배가 계산되는 것(
Figure pat00115
)을 포함한다. 할당(assignment)이 수행된다(820). 이 실시예에서, 각 네트워크 파라미터
Figure pat00116
는 각각의 라그랑지안 비용을 최소화 하는 클러스터로 할당된다(820). 이는 상기 수학식 13에 나타난다.
클러스터 중심들 및 분배가 갱신된다(830). 달리 말하면, 새로운 클러스터 중심들이 재계산되고, 즉, 네트워크 파라미터 분배들은 물론, 각 클러스터의 네트워크 파라미터들의 평균(또는 헤시안 가중된 평균)도 재계산된다. 반복(iteration)의 횟수가 갱신된다(" n=n+1 ", 840). 그리고 반복 프로세스가 종료되었는지 여부를 결정한다(845). 조금 더 구체적으로 반복의 횟수가 한계를 초과 했는지 여부(" n>N "), 또는 더 이상 할당에 변화가 없는지 여부(이는 알고리즘이 효과적으로 수렴하였음을 의미)를 결정한다(820). 만약 프로세스가 종료한 것으로 결정되면(845), 양자화된 네트워크 파라미터들에 대한 코드북이 생성된다(850). 만약 프로세스가 종료되지 않은 것으로 결정되면(845), 그 프로세스는 할당을 반복한다(820).
III. 스칼라 양자화에 대한 실험 /시뮬레이션 결과(Experimental/Simulation results for Scalar Quantization)
본 발명의 몇몇 실시예에 따라, 헤시안 가중된 k- 평균 클러스터링 방법 및 균일 양자화 방법을 검사하는데, CIFAR-10 데이터 집합을 갖는 사전 훈련된 32 레이어의 ResNET이 이용되었다. CIFAR-10은, Alex Krizhevsky, Vinod Nair, and Geoffrey Hinton 에 의해 수집된 8천만개의 작은 이미지들을 갖는 데이터집합의, 분류된 하위집합(labeled subset)이다. CIFAR-10은 10개의 분야에서 각 분야당 6,000개의 이미지, 즉 총 60,000개의 32x32 컬러 이미지로 구성된다. 50,000개의 훈련 이미지(training image) 및 10,000개의 검사 이미지(test image)가 있다. ResNET(He et al. 2015)는 이미지 분류에 대한 최첨단기술 딥 컨벌루션 뉴럴 네트워크(state-of-the-art deep convolutional neural network) 이다. ResNET은 더 나은 수렴에 관한 식별 경로(identity path)를 추가하면서 뉴럴 네트워크의 깊이를 증가시킨다. 사전 훈련된 ResNET 는 92.58%의 정확도에 도달한다. 네트워크 파라미터들의 총 개수는 464,154개 이다.
도 9a는, 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법에 대한 코드 길이들의 예시적인 플롯(plot)이다. 도 9b는 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법에 대한 압축비의 예시적인 플롯이다. 도 9a 및 도 9b의 네트워크 양자화 방법들은, k- 평균 클러스터링, 헤시안 가중된 k- 평균 클러스터링, 및 균일 양자화를 포함한다. 도 9c는 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법에 대한 코드 길이들의 또 다른 예시적인 플롯이다. 도 9c의 네트워크 양자화 방법은 k- 평균 클러스터링, 균일 양자화, 및 반복 ECSQ 알고리즘(iterative ECSQ algorithm)을 사용한 양자화를 포함한다.
IV. 스칼라 양자화에 관한 결론(Conclusions regarding Scalar Quantization)
위에서 자세히 설명한 바와 같이, 본 발명은 특히, (1) 네트워크 파라미터들의 중요성의 측정으로서, 네트워크 파라미터들에 관한 손실함수의 이차 편미분, 즉, 헤시안 행렬의 대각성분의 이용, 및 (2) 특정 바이너리 인코딩 방식(binary encoding scheme)의 사용에 기인한, 실제 압축비 제한 하에서의 네트워크 양자화를 해결하는 것을 제공한다.
게다가, 본 발명에서는, 네트워크 양자화에 기인된 성능 손실이, 양자화에 기인한 헤시안 가중된 왜곡을 최소화 하여, 국소적으로 최소화 될 수 있다는 것이 유도될 수 있다. 이러한 결과로부터, 고정 길이 바이너리 인코딩이 사용될 때의 네트워크 양자화를 위해, 헤시안 가중된 k- 평균 클러스터링이 개시되었다. 더욱이, 네트워크 양자화를 위한 헤시안 가중된 k- 평균 클러스터링 방법은, 네트워크 파라미터들에 관한 네트워크 손실함수의 이차 편미분이, 네트워크 파라미터 클러스터링을 위한 가중된 k- 평균 클러스터링에서, 가중치로서 사용되는 것을 설명한다.
헤시안 가중된 양자화 방법을 사용하는 것의 한 가지 단점은, 네트워크 손실함수의 이차 편미분(헤시안 행렬의 대각성분)들이 계산되는 것이 필요하다는 것이다. 그러나, 본 발명은 기울기의 계산이 진행중인 훈련(training) 단계에서도, 헤시안 가중이 계산될 수 있는 대안 역시 보여준다. 이에 더해서, 헤시안의 대각 성분을 계산하는 효과적인 방법이 논의 되었고, 이는 기울기의 계산과 같은 복잡도를 가진다. 게다가, 시뮬레이션 결과들은, 심지어 작은 크기의 데이터 집합을 이용하는 것도, 헤시안의 양호한 근사를 산출하고 양호한 양자화 결과를 이끄는데 충분할 수 있다.
또한, 본 발명은 압축비의 제한 하에서, 네트워크 양자화에 관한 최적화 문제는, 엔트로피 코딩(즉, 주어진 소스에 대한 그 코드워드 길이의 평균이 소스의 엔트로피로 접근하는 최적 가변 길이 코딩)이 사용될 때, 엔트로피 제한 스칼라 양자화(ECSQ) 문제를 경감시킬 수 있다.
ECSQ에 대한 두 가지 효과적인 휴리스틱 솔루션(heuristic solution)들이 네트워크 양자화를 위해 공개되었다. 이는, 균일 양자화 및 로이드 알고리즘(Lloyd's algorithm)과 유사한 반복 알고리즘이다. 균일 양자화에 관해서는, 네트워크 파라미터들을 클러스터들로 분할하기 위해, 균일하게 간격을 둔 쓰레숄드(threshold)들이 세팅된다. 클러스터들을 결정한 후에, 각 클러스터들의 대표 값이 클러스터 구성원들의 평균 또는 헤시안 가중된 평균으로 세팅된다. 균일 양자화는 점진적으로 최적화되지만, 시뮬레이션들은 네트워크 양자화를 사용할 때 여전히 양호한 성능을 산출한다는 것을 나타낸다. 또한 네트워크 양자화에 관한 ECSQ 문제를 해결하기 위한, 로이드 알고리즘(Lloyd’s algorithm)과 유사한 반복 알고리즘 외에도, 헤시안 가중된 반복 알고리즘의 버전이 설명 되었다. 여기에서 헤시안 가중된 양자화 손실은, 최적화에서 최소화되기 위한 목적함수로 사용된다.
본 발명의 기술적 사상에 따르면, 헤시안 가중의 대안으로서, 네트워크 파라미터들의 기울기들의 이차 모멘트 추정치들의 함수를 이용하는 것 역시 설명하고 있다. 이는 상급의 SGD 옵티마이저들을 이용할 수 있다. 상급의 SGD 옵티마이저들을 이용한 기울기들의 이차 모멘트 추정치들을 이용하는 장점은 이차 모멘트 추정치들이 훈련(training)/미세조정(fine-tuning) 하는 동안 계산되므로, 추후 사용(네트워크 양자화 동안)을 위하여 추가의 계산 없이 단순히 저장 할 수 있다는 것이다. 이는 헤시안 가중을, 수백만 개의 파라미터들을 가진 딥 뉴럴 네트웍스를 위해서, 조금 더 실현가능하게 만든다.
본 발명의 네트워크 양자화 방식(network quantization scheme)은 계층별 네트워크 양자화를 수행하는 것이 아니라, 모든 레이어의 네트워크 파라미터들의 양자화를 동시에 수행할 수 있다. 그러므로, 헤시안 가중은 레이어들의 내부뿐만 아니라 레이어들 전반에 걸쳐, 다양한 양자화 오류의 영향을 적절하게 다룰 수 있다.
몇몇 실시예에서는, LZW와 같은 유니버셜 엔트로피 코드(universal entropy code)가 사용될 수 있다. LZW 압축의 한 가지 장점은, 데이터의 단일 횟수 통과(single pass through data)를 요구하고, 인코더 및 디코더 둘 다 즉시 딕셔너리(dictionary)를 만들 수 있는 반면, 허프만 인코딩(Huffman encoding)은 데이터의 두 번의 통과가 요구되며(한 번은 기호 주파수를 계산하기 위해, 나머지 한 번은 인코딩을 위해), 딕셔너리는 생성되고 보내지는 것이 필요하다. 허프만 코드와 같은 고정-가변 길이 엔트로피 인코딩 대신, LZW와 같은 가변-고정 엔트로피 인코딩을 사용하는 실시예에서, 엔트로피 제한된 스칼라 양자화를 사용하는 개시된 양자화 방식은 여전히 유지된다.
몇몇 실시예에서, 디더링(dithering) 된 스칼라 양자화(dithered scalar quantization)이 사용될 수 있다. [Zhao, Qian, Hanying Feng, and Michelle Effros, "Multiresolution source coding using entropy constrained dithered scalar quantization." IEEE Data Compression Conference (DCC) Proceedings 2004]를 참조한다. 이는 본 명세서에 그 전체가 참고문헌으로 인용 되어있다. 여기에서, 가중치들 또는 네트워크 파라미터들은 양자화 전에 상수 인자(constant factor)에 의해 디더링(dithering)되고, 균일 스칼라 양자화, 및 마지막으로 LZW 코드 같은 무손실의 엔트로피 인코딩이 따른다.
V. 벡터 및 유니버셜 양자화(Vector and Universal Quantization)
일반적으로, 본 발명의 몇몇 실시예들이 뉴럴 네트워크의 네트워크 파라미터들을 양자화하는데 이용되어, 네트워크의 성능 감소를 최소화하면서 네트워크의 저장 공간의 크기(메모리의 크기)를 감소할 수 있다. 본 명세서에 개시된 기술들은 어떠한 유형의 뉴럴 네트워크에도 일반적으로 적용될 수 있다.
전술한 바와 같이, 네트워크 양자화를 위한 스칼라 양자화 방법은, 예를 들어, 계층별 네트워크 양자화에 사용된 종래의 k-평균 클러스터링의 개선된 방법일 수 있다. 예를 들어, [Gong et al. 2014 and Han et al. 2015b]를 참조한다.
이 섹션에서, 네트워크 양자화를 위해 벡터 및 유니버셜 양자화 방식이 설명된다. 데이터 압축에서, 벡터 양자화기(quantizer)는 스칼라 양자화기보다 낮은 부호율(code rate)이 요구될 수 있다. 예를 들어, [Gray, R., "Vector quantization," IEEE ASSP Magazine, vol. 1, no. 2, pp. 4-29, 1984 ("Gray 1984")]를 참조한다. 뉴럴 네트워크에 관해서, 벡터 양자화는 [Gong et al. 2014]에서 시험되었으나, 이 시험은 고정 길이 바이너리 코드를 따르는 k-평균 클러스터링에 제한되어 있다.
이 섹션에서 설명된, 스칼라 양자화와 관련된 엔트로피-제한 스칼라 양자화(ECSQ) 솔루션은, 예를 들어, 엔트로피-제한 벡터 양자화(ECVQ: Entropy-Constrained Vector Quantization)를 포함하는 벡터 양자화로 일반화될 수 있다.
네트워크 파라미터의 유니버셜 양자화가 또한 이 세션에서 다루어진다. 유니버셜 양자화는 디더링(dithering)을 사용하는 랜덤화된(randomized) 균일 양자화일 수 있다. [Ziv, J. "On universal quantization," IEEE Transactions on Information Theory, vol. 31, no. 3, pp. 344-347, 1985 ("Ziv 1985) and Zamir et al., "On universal quantization by randomized uniform/lattice quantizers," IEEE Transactions on Information Theory, vol. 38, no. 2, pp. 428-436, 1992 (Zamir et al. 1992)]를 참조한다. 간단한 유니버셜 양자화기에 비해, 최적의 엔트로피 제한 벡터 양자화기의 이점은 보편적인 측면에 대해서는 작을 수 있다. 즉 임의의 소스와 레이트(rate)에 대해 이점이 적을 수 있다.
그러나, 본 발명의 몇몇 실시예들에 따르면, 유니버셜 양자화는, 예를 들어, 렘펠-지브-웰치(Lempel-Ziv-Welch: LZW)와 같은 유니버셜 소스 코딩 알고리즘과 조합될 수 있다. 예를 들어, [Welch, T.A., "A technique for high-performance data compression," Computer, vol. 6, no. 17, pp. 8-19, 1984 ("Welch 1984), gzip (http://www.gzip.org/), or bzip2 (http://www.bzip.org/)]를 참조한다.
본 발명의 몇몇 실시예에서, 유니버셜 네트워크 압축 방법은, 보편적으로, 거의 최적의 성능을 예상할 수 있다. 즉, 유니버셜 네트워크 압축 방법은 임의의 뉴럴 네트워크와 임의의 압축비 제약에 대해서 거의 최적의 성능이 예상될 수 있다.
본 발명의 몇몇 실시예들에서, 네트워크 파라미터의 벡터 양자화 이후, 공유 양자화된 벡터들의 미세 조정 방법이 개시되어 있다. 네트워크 양자화를 위한 스칼라 k-평균 클러스터링을 이용하는 공유 양자화된 값의 미세 조정 방법은 [Han et al. 2015b]에 제공된다. [Han et al. 2015b]에서, 네트워크 파라미터들과 관련된 네트워크 손실 함수의 평균 기울기는 모든 클러스터들에 대해 계산되고, 클러스터들의 공유 양자화된 값(클러스터 중심)들을 업데이트하는데 이용될 수 있다.
반면, 본 발명의 몇몇 실시예들에 따르면, 네트워크 양자화를 위해 벡터 양자화가 이용될 때, 양자화된 벡터의 각각의 차원 요소들은 개별적으로 미세조정될 수 있다. 즉, n-차원 벡터의 k개의 클러스터가 존재하면, 네트워크 파라미터들은 kn개의 그룹으로 효과적으로 분리될 수 있고, 그 공유 양자화된 값들은 각 그룹의 평균 기울기를 이용하여 개별적으로 미세 조정될 수 있다.
양자화된 값들의 미세 조정 알고리즘이나, 유니버셜 양자화 이후 벡터의 미세 조정 알고리즘이 여기에서 설명된다. 유니버셜 양자화에서, 균일 또는 격자 양자화의 출력은 실제로 랜덤 디더링(dithering) 값들을 상쇄하기 전에 미세 조정될 수 있다. 디더링(dithering)이 없는 시스템과 유사하게, 네트워크 파라미터들과 관련된 평균 기울기는 모든 클러스터들에 대해, 모든 차원에서 계산되고, 양자화 출력을 업데이트하는데 이용될 수 있다. 몇몇 실시예에서, 기울기는 랜덤 디더링(dithering)을 상쇄한 후에 양자화된 파라미터들에 대해 계산될 수 있다. 반면, 미세 조정된 값들은 랜덤 디더링(dithering)을 상쇄하기 전의 값들이다.
A. 벡터 양자화(Vector Quantization)
위에서 언급한 바와 같이, 벡터 양자화기는 데이터 압축에 있어서, 스칼라 양자화기보다 더 낮은 부호율이 요구될 수 있다(예컨대, [Gray 1984]를 참조한다). 또한, 벡터 양자화가 [Gong et al. 2014]에서 뉴럴 네트워크에 대해 시험되었으나, 이 시험은 고정 길이 바이너리 코딩을 따르는 k-평균 클러스터링에만 제한되었다. 몇몇 실시예에서, 예를 들어, ECSQ와 같은 스칼라 양자화 솔루션은 벡터 양자화로 일반화될 수 있다.
벡터 양자화가 이론상으로는 더 나은 속도-일그러짐 트레이드 오프(rate-distortion trade-off)를 제공하지만, 현실적으로는 벡터 양자화기는 스칼라 양자화기보다 구현이 복잡할 수 있다. 본 발명의 몇몇 실시예에서 단순한 격자 양자화기(lattice qunatizer), 즉, 다차원 균일 양자화기(multi-dimensional uniform qunatizer)는 구현이 간단할 뿐만 아니라, 실험에서 좋은 성능을 보여준다.
벡터 양자화에 대하여, N개의 네트워크 파라미터의 세트
Figure pat00117
, n-차원의 벡터의 세트
Figure pat00118
가 생성될 수 있다. 이러한 구성의 예시는 수학식 14에 주어진다.
[수학식 14]
Figure pat00119
Figure pat00120
이고, 여기에서,
Figure pat00121
이면,
Figure pat00122
이다.
n-차원 벡터는 k 개의 클러스터로 분리될 수 있다. 여기에서
Figure pat00123
는 클러스터
Figure pat00124
에서의 벡터의 세트이다. 코드워드가 각 벡터로 할당될 수 있다. 즉, 모든 n 개의 네트워크 파라미터들은 코드워드에 의해 대표된다. 여기에서,
Figure pat00125
는 클러스터
Figure pat00126
(단,
Figure pat00127
)의 벡터에 할당된 코드워드의 비트 개수이다. 코드북은 (각각
Figure pat00128
인)k 개의 바이너리 코드워드와 이에 대응하는 (각각
Figure pat00129
비트인)n-차원의 양자화된 벡터를 저장할 수 있다.
각각의 네트워크 파라미터는 양자화 전에 b 비트인 것을 가정하면, 벡터 양자화에 대한 압축비는 수학식 15로 주어진다.
[수학식 15]
Figure pat00130
코드북의 크기
Figure pat00131
는 대략적으로 n, 즉, 벡터 양자화의 차원의 개수에 비례한다. 이는 차원 n 이 증가함에 따라 코드북의 오버헤드가 더 커지고, 특정 포인트 이후에는 차원 n 이 압축율의 성능을 감소시키는 주요 인자가 된다는 것을 의미할 수 있다. 그러므로, 벡터 차원의 개수가 증가하여 특정 포인트를 지나면 벡터 양자화의 이점이 감소할 수 있다. 즉, 코드북의 오버헤드가 증가하여 압축율의 성능을 감소시키는 주요한 인자가 되면, 벡터 양자화의 이점이 감소할 수 있다.
B. 엔트로피-제한 벡터 양자화(Entropy-Constrained Vector Quantization: ECVQ)
엔트로피 제한 스칼라 양자화(ECSQ)에서 언급하였듯이, 엔트로피-제한 네트워크 양자화는 엔트로피 코딩이 따를 때 압축비의 제한이 주어진 효과적인 네트워크 양자화 방법일 수 있다. ECSQ와 유사하게 엔트로피 제한이 주어진 최적의 벡터 양자화는 엔트로피-제한 벡터 양자화(ECVQ)라 불릴 수 있다. 본 발명의 몇몇 실시예에서, 전술한 ECSQ 솔루션은 ECVQ 솔루션을 포함하도록 일반화되고 확장될 수 있다.
도 10은, 본 발명의 몇몇 실시예에 따라, ECVQ 및 엔트로피 코딩에 의한 네트워크 압축 및 압축해제를 설명하기 위한 예시적인 블록도이다. 조금 더 구체적으로, 압축은 1010 내지 1050에서 발생하고, 이후 압축된 바이너리 코드워드들을 1060 및 1070에서 압축해제 한다.
압축에서, 훈련된 원본 모델 또는 훈련된 프루닝된 모델이 제공된다(1010). 네트워크 파라미터의 세트는 상기 수학식 14에서 구축된 n-차원 벡터
Figure pat00132
와 같이, n-차원 벡터를 생성하고 구축하는데 이용될 수 있다(1020). ECVQ는 격자 양자화에 의해 수행되거나, 반복적 알고리즘의 사용에 의해 수행될 수 있다(1030). (클러스터 중심과 대응되는) 공유 양자화된 벡터는 미세조정될 수 다(1040). 양자화된 벡터는 예를 들어, LZW, gzip, bzip, 또는 bzip2와 같이 이러한 코드들의 개선된 버전과 같은 유니버셜 코드를 사용할 수 있다(1050).
압축되고, 엔트로피 코딩되고, 벡터 양자화된 바이너리 코드워드는 이후 압축해제될 수 있다. 압축해제하는 동안, 수신된 바이너리 코드워드는 먼저 디코딩되고(1060), 양자화된 네트워크 파라미터는 양자화된 모델을 재생성하는데 이용된다(1070).
C. 격자 양자화(Lattice Quantization, 다차원 균일 양자화: Multi-Dimensinal Uniform Quantization)
평균 제곱 양자화 오류(mean square quantization error)를 최소화하는 최적의 고분해능 ECVQ는 분해능이 무한대로 증가할수록 격자 모양의 코드북을 가질 수 있다. [Gish & Pierce 1968; Gersho, A., "Asymptotically optimal block quantization," IEEE Transactions on Information Theory, vol. 25, no. 4, pp. 373-380, 1979 ("Gersho 1979")]를 참조한다. 점진적으로 증가하는 이러한 문제점들과 다른 특성들 때문에, 이러한 최적의 고분해능 ECVQ들을 실용적이고 널리 사용하기에는 부적합할 수 있다. (그러나, 미래의 개선된 기술들은 훨씬 적절하고 바람직한 최적의 고분해능 ECVQ 방식을 이용할 수 있다.)
몇몇 실시예에서, 균일 양자화기와 유사하게, 다음 프로세스는 네트워크 파라미터의 벡터 양자화를 위해, 상대적으로 단순한 격자 양자화기가 제공될 수 있다.
* 네트워크 파라미터로부터 n-차원 벡터를 구성한다(예를 들어, 수학식 14를 이용한다).
* n-차원 유클리드 공간(Euclidean space)의 각 차원에 균등한 간격의 임계값들을 설정한다.
* n-차원 벡터를 클러스터로 그룹화한다.
* 각각의 클러스터에서 벡터의 평균 또는 헤시안-가중 평균을 취함으로써, 양자화된 벡터(즉, 클러스터 중심)를 얻는다.
D. ECVQ를 해결하기 위한 반복적 알고리즘(Iterative Algorithm to solve ECVQ)
ECVQ에 대한 반복적 솔루션은 스칼라 네트워크 파라미터를 스칼라 네트워크 파라미터로 구성된 n-차원 벡터로 대체하는 ECSQ에 대한 반복적 솔루션(섹션 II, 서브 섹션 D 참조)과 유사할 수 있다. ECSQ에 대한 반복적 솔루션이 주어지면, 일반화과정은 간단하므로 상세한 설명은 생략한다.
E. 공유 양자화된 벡터의 미세 조정(Fine-Tuning of Shared Quantized Vectors)
상기와 같이, 공유 양자화된 값은 네트워크 파라미터의 스칼라 양자화 후, 미세조정될 수 있다. 또한, 공유 양자화된 벡터는 네트워크 파라미터의 벡터 양자화 후 미세조정될 수 있다. 공유 양자화된 벡터의 각 차원 요소는 각각 분리되어 미세조정될 수 있다. 즉, n-차원 벡터의 클러스터가 k개 존재한다고 가정하면, 네트워크 파라미터는 kn개의 그룹으로 효과적으로 분리될 수 있고, 각 그룹의 공유 양자화된 값은 개별적으로 미세조정될 수 있다. 각각의 그룹에서 네트워크 파라미터들과 관련된 네트워크 손실 함수의 평균 기울기는 그 공유 양자화된 값의 미세조정을 위해 이용될 수 있다.
Figure pat00133
Figure pat00134
에 대해,
Figure pat00135
는 수학식 16a에서 정의되는 것처럼, 클러스터 i에서 벡터의 j번째 차원 요소인 네트워크 파라미터의 세트라 한다.
[수학식 16a]
Figure pat00136
게다가,
Figure pat00137
를 클러스터 i에 대한 공유 양자화된 벡터(클러스터 중심)라 한다.
Figure pat00138
에 있는 모든 네트워크 파라미터들은 동일한 값인
Figure pat00139
로 양자화될 수 있다. 이러한 공유 양자화된 벡터의 각 구성요소들은 미세조정될 수 있다. 예를 들어, 공유 양자화된 벡터의 각 구성요소들은 수학식 16b에서 주어진 바와 같이 확률적 기울기 하강법(stochastic gradient descent: SGD)으로 미세조정될 수 있다.
[수학식 16b]
Figure pat00140
여기에서,
Figure pat00141
는 반복 숫자,
Figure pat00142
은 학습율(learning rate), 및
Figure pat00143
는, 수학식 16c에서 보여지는바와 같이,
Figure pat00144
에서 네트워크 파라미터와 관련된 네트워크 손실 함수
Figure pat00145
의 기울기의 평균이다.
[수학식 16c]
Figure pat00146
기울기
Figure pat00147
는 수학식 16d 및 수학식 16에 의해 주어진 값으로 구할 수 있다.
[수학식 16d]
Figure pat00148
[수학식 16e]
Figure pat00149
여기에서,
Figure pat00150
에 대해,
Figure pat00151
이다.
F. 유니버셜 양자화(Universal Quantization, 랜덤화된 균일/격자 양자화: Randomized Uniform/Lattice Quantization)
균일 양자화기 및 격자 양자화기는 구현이 간단하고, 데이터 압축의 여러 분야에서 효과적이기 때문에 널리 사용된다. 그러나, 그 성능은 양자화 분해능이 무한대로 갈수록, 즉 클러스터의 개수
Figure pat00152
일수록, 엔트로피 한계에 점근적으로 접근하는 것이 증명되었다. 유한 분해능에 대해, 즉, 유한의 k개의 클러스터에 대해, 균일 양자화기 및 격자 양자화기는, 양자화 오류가 소스 분포(source distribution)에 의존하기 때문에, 최적에 가까운 성능이 보장될 수 없다.
반면, "유니버셜 양자화"는 균일하게 분포된 디더로 소스를 랜덤화하고(randomize), 임의의 소스 분포에 대한 엔트로피 비율(entropy rate)로부터 보증된 범위 내에서의 우수한 성능을 달성하기 위해 제안되었다. 예를 들어, Ziv 1985를 참고한다. 디더링(dithering)은 보통 z(또는 때때로 u)로 라벨링되는 균일하게 분포되나 무작위의 변수를 이용하여, 양자화 오류를 랜덤화하도록 노이즈를 의도적으로 적용하는 것이다. 예를 들어, [id., pp. 345-346]를 참고한다. 디더링(dithering)은 큰 스케일(large-scale)의 양자화 오류 효과를 생성할 수 있다.
본 발명의 몇몇 실시예들에 따르면, 유니버셜 양자화는 우선, 균일 랜덤화된 디더링(dithering)에 의해, 네트워크 파라미터 랜덤화가 수행된다. 다음, 디더링(dithering)된 네트워크 파리미터는 균일 또는 격자 양자화를 거친다. 마지막으로, 랜덤 디더링(dithering) 값들은 균일 또는 격자 양자화 이후(디코딩을 위해 수신한 후) 양자화된 벡터로부터 감산된다.
본 발명의 몇몇 실시예에 따른 유니버셜 양자화에 대해서, 송신기와 수신기 모두 동일한 랜덤 디더링(dithering) 값을 공유하기 위한 메커니즘을 가지므로, 인코딩에서 사용되는 랜덤 디더링(dithering) 값은, 동일한 랜덤 디더링(dithering) 값을 이용하는 디코더에 의해 수신된 이후, 상쇄될 수 있다.
몇몇 실시예에서, 랜덤 디더링(dithering) 값은 계산 후, 계산된 값을 인코더와 디코더 간에 전송하여 실제로 공유되는 것이 아니라, 인코더와 디코더 둘다 동일한 의사 난수 생성기(pseudo-random number generator)를 이용하여, 인코딩/디코딩의 마지막에 동일한 디더링(dithering) 값을 생성할 수 있다. 예를 들어, 도 11의 의사 난수 생성기(1100)를 참조한다.
공식적인 표기법을 사용하면, 유니버셜 양자화는 수학식 17과 같이 나타낼 수 있다.
[수학식 17]
Figure pat00153
여기에서,
Figure pat00154
는 양자화 전 원본 네트워크 파라미터들로 구성되는 열 벡터이고,
Figure pat00155
는 균일 랜덤 디더링(dithering)에 의해 랜덤화된 네트워크 파라미터들로 구성된 열 벡터이고,
Figure pat00156
는 유니버셜 양자화로부터 최종 양자화된 네트워크 파라미터들로 구성된 열 벡터이고,
Figure pat00157
Figure pat00158
일 때 랜덤 디더링(dithering) 값으로 구성되는 열 벡터이고,
Figure pat00159
는 n-차원 균일 양자화기이다.
몇몇 실시예들에 따라, 네트워크 파라미터의 유니버셜 양자화 방법이 제공된다.
1. 양의 정수
Figure pat00160
이 주어지면, 네트워크 파라미터
Figure pat00161
는 수학식 18과 같이 랜덤화될 수 있다.
[수학식 18]
Figure pat00162
Figure pat00163
는 독립적이고, 동일하게 분포된 균일 랜덤 변수이다. 또한, 균일 분포의 간격은
Figure pat00164
이다. 여기에서,
Figure pat00165
는 균일 또는 격자 양자화의 양자화 단계의 크기(step size)이다. 상기에 기초하면, 랜덤 디더링(dithering) 값은 m개의 네트워크 파라미터마다 변화하는 것을 알 수 있다.
2. 디더링(dithering)된 네트워크 파라미터
Figure pat00166
에 대해 균일 또는 격자 양자화가 수행될 수 있다.
(a) 벡터에 대한 차원수 n이 주어지면, 유클리드 공간의 n 차원 각각에 대해 균일하게 이격된 문턱값(threshold)을 설정한다.
(b) 상기 문턱값을 이용하여, 상기 n 차원 벡터를 클러스터로 그룹화한다.
(c) 예를 들어, 각 클러스터에서 그룹화된 n-차원 벡터의 평균 또는 헤시안-가중 평균을 취하여 각 클러스터에 대한 클러스터 중심을 얻는다.
3. 균일 또는 격자 양자화의 출력으로부터 랜덤 디더링(dithering) 값을 상쇄하여, 최종 양자화된 네트워크 파라미터를 얻는다.
도 11은 본 발명의 몇몇 실시예들에 따른 유니버셜 양자화 및 엔트로피 코딩에 의한 네트워크 압축 및 압축해제를 설명하기 위한 예시적인 블록도이다. 조금 더 구체적으로, 압축은 1110, 1180, 1135, 1190, 및 1150에서 발생한다. 이후 압축된 바이너리 코드워드는 1160, 1165, 및 1170에서 압축해제된다. 도 10의 도면부호와 유사한 도 11의 도면부호는, 실질적으로 유사한 기능을 가지며, 이하에서는 간단하게 설명한다.
상기 수학식 18에 설명되고, 의사 난수 생성기(1100)에 의해 생성된, 독립적이고 동일하게 분배된 균일 랜덤 디더링(dithering) 변수를 이용하여, 훈련된 원본/프루닝된 모델(1110)은 랜덤화된다(1180).
디더링(dithering)된 네트워크 파라미터에 균일 또는 격자 양자화가 수행된다(1135).
벡터에 대한 차원수 n 을 이용하여, 유클리드 공간의 n차원의 각각에 대해 균일하게 이격된 문턱값이 설정되고, n 차원 벡터가 클러스터로 그룹화된다. 클러스터 중심은, 예를 들어, 1135에서 각 클러스터에 대한 벡터의 평균 또는 헤시안-가중 평균을 취함으로써 얻을 수 있다.
다음 섹션에서 자세히 설명하겠지만, 1135로부터의 양자화된 벡터(클러스터 중심)은 미세조정될 수 있다(1190). 엔트로피 코딩은, 1160에서 디코딩되는 바이너리 코드워드를 생성하기 위해, 수행될 수 있다(1150). 디코더는 동일한 의사 난수 생성기(1100)를 이용하여, 1180에서 네트워크 변수에 적용된 독립적으로 동일하게 분포된 균일 랜덤 디더링(dithering) 변수를 상쇄할 수 있다(1165). 마지막으로, 1165에서 양자화된 네트워크 파라미터는 양자화된 모델을 재-창조하는데 이용될 수 있다(1170).
G. 균일 양자화 후 양자화된 값/벡터의 미세 조정(Fine-tuning of Quantized Values/Vectors after Uniform Quantization)
유니버셜 양자화에서, 미세 조정은 양자화 전에 추가되고, 양자화의 끝에서 상쇄되는 랜덤 디더링(dithering) 값 때문에, 간단하지 않을 수 있다.
디더링(dithering)이 없는 양자화 시스템과 유사하게, 네트워크 파라미터와 관련된 평균 기울기는 모든 클러스터에 대해 계산되고, 모든 차원에 대해 계산된다. 또한, 계산된 평균 기울기는 양자화 출력을 업데이트하기 위해 이용될 수 있다. 그러나, 이와 대조적으로, 기울기는 랜덤 디더링(dithering)을 상쇄한 후 양자화된 파라미터와 관련하여 계산되지만, 값은 랜덤 디더링(dithering)을 상쇄하기 전 미세조정된다.
상기 수학식 16a 내지 수학식 16d와 유사하게,
Figure pat00167
는 n-차원 균일 양자화 이후, 클러스터
Figure pat00168
에 대한 공유 양자화된 벡터(클러스터 중심)이다(이 경우, 랜덤 디더링(dithering) 값을 감산하기 전에 얻는다). 또한, 양자화된 벡터의 각각의 구성요소는 예를 들어, 수학식 19a에서 주어지는 것처럼 확률적 경사 하강법을 이용하여 미세조정될 수 있다.
[수학식 19a]
Figure pat00169
여기에서
Figure pat00170
는, 수학식 19b에서 주어지는 바와 같이, 세트
Figure pat00171
에서의 네트워크 파라미터와 관련된 네트워크 손실함수
Figure pat00172
의 평균 기울기이다.
[수학식 19b]
Figure pat00173
이는,
Figure pat00174
에서 계산된다.
위에서 언급한 바와 같이, 평균 기울기는 랜덤 디더링(dithering)을 상쇄한 후에 계산된다. 반면, 업데이트된 공유 양자화된 값/벡터는 랜덤 디더링(dithering)을 감산하기 전에 얻을 수 있다.
H. 유니버셜 소스 코딩(Universal Source Coding)
본 발명의 몇몇 실시예에 따르면, 유니버셜 소스 코딩과 유니버셜 네트워크 양자화의 조합이 제공될 수 있다. 이는 임의의 뉴럴 네트워크와 임의의 압축비 제한에 대해 효과적일 것으라 예상되는 유니버셜 네트워크 압축 프레임워크를 제공할 수 있다.
위에서 언급한 유니버셜 소스 코딩은 렘펠-지브-웰치(LZW), gzip 이나 bzip2 뿐만아니라 LZ77, LZ78, LZSS, LZMA과 같은 렘펠 및 지브 알고리즘과 본 발명의 기술분야에서 통상의 지식을 가진자들이 알고 있는 다른 코드일 수 있다.
유니버셜 소스 코딩은 모든 소스에 대해 엔트로피 비율(entropy rate)을 달성하는 것으로 알려져 있으며, 소스 분포에 대한 정보가 필요하지 않기 때문에, 허프만 코딩(Huffman coding)보다 편리하다. 게다가, 유니버셜 소스 코딩 알고리즘은, 여러 심볼들에 대해서 단일 코드워드를 이용하여, 소스 심볼들 사이에 종속성이 존재하는 경우, 이 종속성을 이용하기 때문에 더 나은 성능을 가질 수 있다. 허프만 코딩은 소스 심볼들의 종속성을 고려하지 않고, 대신 각 소스 심볼의 독립성을 가정하므로, 하나 이상의 소스 심볼에 대해 단일 코드워드를 이용할 수 없다.
네트워크 양자화 후 유니버셜 소스 코딩이 적용될 때, 양자화된 네트워크 파라미터는 랜덤 디더링(dithering) 값들을 상쇄하기 전에 고려될 수 있다. 선택적으로, s-차원의 양자화된 벡터는 양자화된 네트워크 파라미터들로부터 구성될 수 있다. 별개의 양자화된 값/벡터는 유니버셜 소스 코딩에 대한 입력 알파벳(소스 심볼)로 취급될 수 있다. 따라서, 양자화된 값/벡터는, 유니버셜 소스 코딩이 적용되는 동안, 소스 심볼의 리스트로 변환될 수 있다. 인코딩 및 디코딩을 위해 룩업 테이블이 요구될 수 있다. 그러나, 이것에 대한 오버헤드는 상대적으로 작을 수 있다.
도 12는 본 발명의 몇몇 실시예에 따른 유니버셜 네트워크 양자화 후, 유니버셜 소스 코딩에 대한 인코더 및 디코더를 설명하기 위한 예시적인 블록도이다.
양자화된 네트워크 파라미터는 (유니버셜 양자화의 경우, 랜덤 디더링(dithering)을 상쇄하기 전의)s-차원의 양자화된 벡터를 구성하는데 이용될 수 있다. 위에서 언급한 바와 같이, 점선으로 형성된 박스 1210은 선택적인 절차이다. 양자화된 벡터/값은, 양자화된 벡터/값과 대응되는 심볼들을 포함하는 룩업 테이블(1225)을 이용하여 심볼들의 리스트로 변환된다(1220). 심볼들에 대해 유니버셜 코딩이 적용될 수 있다(1230). 유니버셜 코딩된 심볼들에 대해 디코딩이 수행된다(1240). 1240에서 디코딩된 심볼들은, 심볼들과 대응되는 양자화된 벡터/값을 포함하는 룩업 테이블(1255)를 이용하여, 다시 양자화된 벡터/값들로 변환하여 원래의 양자화된 네트워크 파라미터를 생성한다.
VI. 벡터 양자화에 대한 실험/시뮬레이션 결과(Experimental/Simulation Results for Vector Quantization)
본 발명의 몇몇 실시예에 따라, 헤시안 가중된 k- 평균 클러스터링 방법 및 균일 양자화 방법을 검사하는데, CIFAR-10 데이터 집합을 갖는 사전 훈련된 32 레이어의 ResNET이 이용되었다. CIFAR-10은, Alex Krizhevsky, Vinod Nair, and Geoffrey Hinton 에 의해 수집된 8천만개의 작은 이미지들을 갖는 데이터집합의, 분류된 하위집합(labeled subset)이다. CIFAR-10은 10개의 분야에서 각 분야당 6,000개의 이미지, 즉 총 60,000개의 32x32 컬러 이미지로 구성된다. 50,000개의 훈련 이미지(training image) 및 10,000개의 검사 이미지(test image)가 있다. ResNET(He et al. 2015)는 이미지 분류에 대한 최첨단기술 딥 컨벌루션 뉴럴 네트워크(state-of-the-art deep convolutional neural network) 이다. ResNET은 더 나은 수렴에 관한 식별 경로(identity path)를 추가하면서 뉴럴 네트워크의 깊이를 증가시킨다. 사전 훈련된 ResNET 는 92.58%의 정확도에 도달한다. 네트워크 파라미터들의 총 개수는 464,154개 이다.
본 명세서에 개시된 격자 양자화 및 유니버셜 양자화 방식은 32-계층 ResNet으로 계산되었다. 특히, 각 차원의 균일 바운더리(boundary)가 각각
Figure pat00175
Figure pat00176
로 설정되어 테스트되었다. 양자화 단계 크기는 두가지 경우가 동일하나, 제1 테스트는 클러스터 중간에 원점을 갖고, 제2 테스트는 클러스터 바운더리(boundary)에 원점을 갖는다. 허프만 코딩은 양자화 후의 소스 코딩을 위해 사용되었다.
다음 도면에 보여지는바와 같이, 제1 테스트에서, 많은 양의 네트워크 파라미터가 0 주변에 집중되어 있으므로, 클러스터 중심에 원점이 위치하도록 압축하는 것이 더욱 효과적이다.
도 13a는 몇몇 실시예에 따른 미세 조정 전 다양한 격자 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 13b는 몇몇 실시예에 따른 미세 조정 후 다양한 격자 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 13a 및 도 13b에서, 각 차원에서 균일 바운더리(boundary)는
Figure pat00177
로 설정된다.
도 13c는 몇몇 실시예에 따른 미세 조정 전 다양한 격자 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 13d는 몇몇 실시예에 따른 미세 조정 후 다양한 격자 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 13c 및 도 13d에서, 각 차원에서 균일 바운더리(boundary)는
Figure pat00178
로 설정된다.
도 14a는 몇몇 실시예에 따른 미세 조정 전 다양한 유니버셜 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 14b는 몇몇 실시예에 따른 미세 조정 후 다양한 유니버셜 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 14a 및 도 14b에서, 각 차원에서 균일 바운더리(boundary)는
Figure pat00179
로 설정된다.
도 14c는 몇몇 실시예에 따른 미세 조정 전 다양한 유니버셜 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 14d는 몇몇 실시예에 따른 미세 조정 후 다양한 유니버셜 양자화에 대한 정확도 대 그 압축비에 대한 예시적인 플롯이다.
도 14a 및 도 14b에서, 각 차원에서 균일 바운더리(boundary)는
Figure pat00180
로 설정된다.
도 15는 몇몇 실시예에 따른 다양한 코딩 방식을 이용한 균일 및 유니버셜 양자화에 대한 정확도 대 압축비에 대한 예시적인 플롯이다.
VII. 벡터 양자화에 대한 결론
벡터 양자화에 대해서, ECSQ 솔루션은 벡터 양자화(즉, ECVQ)로 일반화된다. 게다가, 간단한 격자 양자화기(즉, 구현이 간단할 뿐만 아니라 실험/시뮬레이션에서 좋은 성능을 보여주는 다차원 균일 양자화기)가 제공된다.
임의의 소스 분포에 대한 엔트로피 비율로부터 보장된 범위 내에서, 양호한 성능을 달성하기 위해, 균일하게 분포된 디더로 소스 심볼을 랜덤화하는 방법 및 시스템, 즉, 유니버셜 양자화가 또한 제공된다. 유니버셜 소스 코딩과 유니버셜 양자화를 조합하여, 유니버셜 네트워크 압축 시스템 및 방법이 개시되고, 이는 임의의 뉴럴 네트워크와 임의의 압축비 제한에 대해 최적에 가까운 성능을 수행할 수 있다.
다차원 균일 양자화의 대안으로, 몇몇 실시예에서, 다른 격자 양자화기가 사용될 수 있다. 여기에서, 보로노이 셀(Voronoi cell)은 다른 유형의 n 차원 폴리토프(polytope)일 수 있다. 즉, 폴리토프(polytope)는 유한개의 초평면(hyperplane)에 의해 둘러싸인 n 차원 유클리드 공간에 있는 볼록한 영역(convex region)일 수 있다.
예를 들어, [Conway, J. and Sloane, N., "Voronoi regions of lattices, second moments of polytopes, and quantization," IEEE Transactions on Information Theory, vol. 28, no. 2, pp. 211-226, 1982 ("Conway & Sloane 1982a"); and Conway, J. and Sloane, N., "Fast quantizing and decoding and algorithms for lattice quantizers and codes," IEEE Transactions on Information Theory, vol. 28, no. 2, pp. 227-232, 1982 ("Conway & Sloane 1982b")]를 참조한다.
예를 들어, 3차원의 경우 격자는 8각형, 6각형, 프리즘, 마름모꼴의 12면체 등의 모양을 가질 수 있다. 몇몇 격자는 다른 것들에 비해 효율적일 수 있다. [onway & Sloane 1982a 및 Conway & Sloane 1982b]는 차원 n의 몇몇 값들에 대해, 가장 효율적인 격자 양자화기를 결정한다.
다차원 균일 양자화기가 가장 효율적인 격자 양자화기가 아니더라도, n 차원의 임의의 값들에 대해 구현하는 것이 간단하기 때문에 본 명세서에서 설명된다. 그러나, 본 발명의 기술분야에서 통상의 지식을 가진자에게 이해되는 바와 같이, 벡터/유니버셜 양자화에 대한 본 발명의 기술적 특징은, 본 명세서에 개시된 바에 한정되지 않는다. 예를 들어, 몇몇 실시예들에서 헤시안-가중은 여전히 벡터 양자화와 유니버셜 양자화에 적용할 수 있다. 특히, 클러스터 중심을 계산할 때, 헤시안-가중된 평균이 일반적인 평균값 대신에 이용될 수 있다.
도 16는 본 발명의 몇몇 실시예에 따른 본 발명의 장치에 대한 예시적인 블록 다이어그램이다. 뉴럴 네트워크 장치(1600)는 적어도 하나의 프로세서(1610)를 포함하고, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1620)를 포함한다. 상기 적어도 하나의 프로세서(1610)는 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1620)에 저장된 명령들을 실행할 때, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여 공유 양자화된 벡터를 클러스터 중심으로서 얻고, 공유 양자화된 벡터/클러스터 중심을 미세 조정하고, 공유 양자화된 벡터/클러스터 중심을 이용하여 인코딩한다. 또한, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1620)는, 적어도 하나의 프로세서(1610)가 결정하고 이용하는 단계를 수행하기 위한 명령들을 저장한다.
도 17은 본 발명의 몇몇 실시예들에 따른 뉴럴 네트워크 장치를 제조하고, 테스트하기 위한 예시적인 순서도이다.
뉴럴 네트워크 장치(이 경우, 칩셋)이 적어도 하나의 프로세서와 하나이상의 비일시적 컴퓨터 판독가능한 매체를 포함하여 제조된다(1750). 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령어들을 실행할 때, 적어도 하나의 프로세서는, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여 공유 양자화된 벡터를 클러스터 중심으로서 얻고, 공유 양자화된 벡터/클러스터 중심을 미세 조정하고, 공유 양자화된 벡터/클러스터 중심을 이용하여 인코딩하는 것을 수행한다. 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 적어도 하나의 프로세서가 이러한 단계를 수행하도록 하기 위한 명령어들을 저장한다.
뉴럴 네트워크 장치(이 경우, 칩셋)가 테스트된다(1760). 테스트(1760)은 뉴럴 네트워크 장치가 적어도 하나의 프로세서를 갖는지 검사하고, 하나이상의 비일시적 컴퓨터 판독가능한 매체를 갖는지 검사한다. 상기 프로세서는, 상기 비일시적 컴퓨터 판독가능한 매체에 저장된 명령어들을 수행할 때, 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 다차원 벡터를 양자화하여 공유 양자화된 벡터를 클러스터 중심으로서 얻고, 공유 양자화된 벡터/클러스터 중심을 미세 조정하고, 공유 양자화된 벡터/클러스터 중심을 이용하여 인코딩한다. 또한, 상기 비일시적 컴퓨터 판독가능한 매체는 적어도 하나의 프로세서가 상기 단계들을 수행하기 위한 명령어들을 저장한다.
본 개시의 실시예와 관련하여, 통상의 지식을 가진 자라면 이해할 수 있듯이, 상술한 단계들 및/또는 동작들은 특정 실시예 및/또는 구현예에 따라, 상이한 에포크들(epochs) 등에 대해 다른 순서 또는 병렬로, 또는 동시에 발생할 수있다. 상이한 실시예들은 다른 순서 또는 상이한 방법 또는 수단에 의해 동작을 수행 할 수있다. 통상의 지식을 가진 자가 이해할 수있는 바와 같이, 일부 도면은 수행된 동작의 간략화 된 표현이고, 본 명세서의 설명은 개요를 간략화한 것이며, 실제 구현은 훨씬 더 복잡하고, 더 많은 단계 및/또는 구성요소를 요구하며, 또한 특정 구현의 요구 사항에 따라 달라진다. 표현을 단순화 한 것은, 통상의 지식을 가진자가 이러한 도면들을 알고 이해할 수 있고, 본 설명에 관련이 없거나 및/또는 도움이 되지 않기 때문에, 다른 필수 단계를 나타내지 않는다.
유사하게, 일부 도면들은 단지 관련 구성요소만 보여주는 간략화 된 블록 다이어그램들이고, 이러한 관련 구성요소들 중 일부는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들에게 잘 알려진 바와 같이, 실제 하드웨어 보다 해당 분야에서 잘 알려진 기능 및/또는 구동을 표현할 뿐이다. 이러한 경우에, 구성요소/모듈들의 일부/전부는 다양한 방법 및/또는 조합으로 실행되거나 공급될 수 있고, 부분적으로 펌웨어 및/또는 하드웨어로 실행되거나 공급될 수 있다. 이는 적어도 하나 이상의, 응용 주문형 집적 회로(application-specific integrated circuits; ASICs), 표준 집적 회로(standard integrated circuits), 마이크로컨트롤러(microcontrollers) 및/또는 임베디드 컨트롤러(embedded controllers)들을 포함하는 적절한 명령들을 수행하는 컨트롤러, 필드 프로그래머블 게이트 어레이(field-programmable gate arrays; FPGAs), 컴플랙스 프로그래머블 논리 디바이스(complex programmable logic devices; CPLDs), 및 이와 비슷한 구성요소/모듈과 같은 펌웨어 및/또는 하드웨어를 포함할 수 있으나, 이에 한정되지 않는다. 또한 이 시스템 구성요소들 및/또는 데이터 구조들의 전부/일부는, 컴퓨터 판독 가능한 매체 및/또는 하나 이상의 관련된 컴퓨팅 시스템 또는 장치들을 적어도 설명된 기술들의 일부를 수행하게 하기 위해 실행하거나 달리 사용하거나 제공하도록 가능하게 하거나 설정하기 위하여, 컨텐츠로(예컨대, 실행 가능하거나 다른 기계 판독가능한 소프트웨어 명령어 또는 구조화된 데이터) 비일시성의 컴퓨터 판독 가능한 매체에(예컨대, 하드디스크, 메모리, 컴퓨터 네트워크, 셀룰러 무선 네트워크 또는 다른 데이터 전송 매체, DVD 또는 플래쉬 메모리 장치 같은, 적절한 드라이브나 적절한 연결을 통해 판독되는 휴대용 매체) 저장될 수 있다.
하나 이상의 프로세서, 단순한 마이크로 컨트롤러, 컨트롤러, 및 그러한 것들은, 단독이든 혹은 다중 처리 장치이든, 본 발명의 실시예를 구현하기 위하여 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들의 시퀀스(sequence)를 실행 하기 위해 사용될 수 있다. 일부 실시예에서, 하드-와이어드 회로(hard-wired circuitry)가 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 조합되어 사용될 수 있다. 그러므로 본 발명의 실시예들은 임의의 하드웨어 회로, 펌웨어, 및/또는 소프트웨어의 특정 조합에 한정되지 않는다. 여기에서 사용된 "컴퓨터 판독 가능한 매체"의 용어는 프로세서에 실행을 위해 제공될 수 있는 명령들을 저장하는 임의의 매체를 지칭한다. 그러한 매체는 비휘발성 매체 또는 휘발성의 매체를 포함할 수 있으나 이에 한정되지는 않는, 다양한 형태로 존재할 수 있다. 비일시성의 컴퓨터 판독 가능한 매체의 일반적인 형태는 예컨대, 플로피 디스크(floppy disk), 플렉서블 디스크(flexible disk), 하드 디스크(hard disk), 마그네틱 테이프(magnetic tape) 또는 임의의 다른 마그네틱 매체, CD-ROM, 임의의 다른 광학적 매체, 펀치 카드(punch card), 페이퍼 테이프(paper tape), 임의의 다른 홀 패턴을 가진 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩(memory chip) 또는 카트리지(cartridge), 또는 프로세서에 의해 실행될 수 있는 명령들을 저장 할 수 있는 임의의 다른 매체가 있을 수 있다.
본 발명의 몇몇 실시예는 적어도 부분적으로 휴대용 장치(portable device)에서 실행 될 수 있다. 여기에서 사용된 "휴대용 장치" 및/또는 "모바일 장치"는, 무선 신호들을 수신할 수 있는 능력을 가지고 있는, 임의의 휴대가능한 또는 이동가능한 전자 장치를 지칭한다. 이는 멀티미디어 플레이어(multimedia player), 통신 장치(communication device), 컴퓨팅 장치(computing device), 또는 네비게이팅 장치(navigating device) 등을 포함할 수 있으나, 이에 한정되지는 않는다. 그러므로, 모바일 장치는 사용자 단말(user equipment; UE), 랩탑(laptop), 태블릿 컴퓨터(tablet computer), PDA(Portable Digital Assistant), mp3 플레이어(mp3 player), 핸드헬드 PC(handheld PC), IMD(Instant Messaging Device), 셀룰러 전화기(cellular telephone), GNSS 수신기(Global Navigational Satellite System receiver), 시계(watch), 또는 인간이 입을 수 있거나 옮길 수 있는 임의의 이러한 장치들을 포함할 수 있다. 그러나 이에 한정되지는 않는다.
본 발명의 다양한 실시예는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들이 이해하고 있듯이, 마이크로 칩(microchip), 실리콘 칩(silicon chip), 컴퓨터 칩(computer chip), 또는 단지 칩(chip)으로도 불리우는 집적 회로(integrated circuit; IC)에서 실행될 수 있다. 예컨대, 이러한 IC는 브로드밴드(broadband) 및/또는 베이스밴드(baseband) 모뎀 칩(modem chip)일 수 있다.
이상 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1610 : 프로세서 1620 : 비일시성의 컴퓨터 판독 가능한 매체

Claims (20)

  1. 훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고,
    상기 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고,
    상기 공유 양자화된 벡터를 미세 조정하고,
    상기 공유 양자화된 벡터를 이용하여 인코딩하는 것을 포함하는 다차원 벡터를 이용한 네트워크 양자화 방법.
  2. 제 1항에 있어서,
    상기 인코딩하는 것은 상기 공유 양자화된 벡터에 엔트로피 코딩을 이용하여 바이너리 코드워드를 생성하는 것을 포함하는 네트워크 양자화 방법.
  3. 제 1항에 있어서,
    상기 다차원 벡터를 양자화하는 것은 격자 양자화를 이용하여 상기 다차원 벡터를 양자화하는 것을 포함하는 네트워크 양자화 방법.
  4. 제 1항에 있어서,
    상기 다차원 벡터를 양자화하는 것은 반복 알고리즘을 이용하여 엔트로피-제한 벡터 양자화를 해결하는 것을 포함하는 네트워크 양자화 방법.
  5. 제 1항에 있어서,
    상기 다차원 벡터를 양자화하는 것은, 유니버셜 양자화를 이용하여 상기 다차원 벡터를 양자화하는 것을 포함하는 네트워크 양자화 방법.
  6. 제 5항에 있어서,
    상기 양자화하기 전 디더링(dithering)을 이용하여 상기 네트워크 파라미터를 랜덤화하는(randomize) 것을 더 포함하는 네트워크 양자화 방법.
  7. 제 6항에 있어서,
    상기 디더링(dithering)을 이용하여 상기 네트워크 파라미터를 랜덤화하는 것은, 의사-난수 발생기(pseudo-random number generator)를 이용하여 랜덤 디더링(dithering) 값(random dithering value)을 생성하는 것을 포함하는 네트워크 양자화 방법.
  8. 제 1항에 있어서,
    상기 다차원 벡터를 양자화하는 것은, 상기 양자화된 벡터를 심볼(symbol)로 변환하는 것을 포함하는 네트워크 양자화 방법.
  9. 제 8항에 있어서,
    상기 양자화된 벡터를 심볼로 변환하는 것은, 룩업 테이블(lookup table)을 이용하여 상기 양자화된 벡터와 대응되는 심볼을 찾는 것을 포함하는 네트워크 양자화 방법.
  10. 제 8항에 있어서,
    인코딩하는 것은, 유니버셜 코딩(universal coding)을 이용하는 것을 포함하는 네트워크 양자화 방법.
  11. 하나 이상의 비일시적 컴퓨터 판독가능한 매체; 및
    적어도 하나의 프로세서를 포함하되,
    상기 적어도 하나의 프로세서는 상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령어를 실행할 때,
    훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고,
    상기 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고,
    상기 공유 양자화된 벡터를 미세조정하고,
    상기 공유 양자화된 벡터를 이용하여 인코딩하는 다차원 벡터를 이용한 네트워크 양자화 장치.
  12. 제 11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 공유 양자화된 벡터에 엔트로피 코딩을 이용하여 바이너리 코드워드를 생성함으로써, 인코딩을 수행하는 네트워크 양자화 장치.
  13. 제 11항에 있어서,
    상기 적어도 하나의 프로세서는 격자 양자화를 이용하여 상기 다차원 벡터를 양자화하는 네트워크 양자화 장치.
  14. 제 11항에 있어서,
    상기 적어도 하나의 프로세서는 엔트로피-제한 벡터 양자화를 해결하기 위해 반복 알고리즘을 사용함으로써 상기 다차원 벡터를 양자화하는 네트워크 양자화 장치.
  15. 제 11항에 있어서,
    상기 적어도 하나의 프로세서는 유니버셜 양자화(universal quantization)를 이용함으로써 상기 다차원 벡터를 양자화하는 네트워크 양자화 장치.
  16. 제 11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 양자화하기 전 디더링(dithering)을 이용하여 상기 네트워크 파라미터를 더 랜덤화하는(randomize) 네트워크 양자화 장치.
  17. 제 16항에 있어서,
    상기 적어도 하나의 프로세서는 랜덤 디더링(dithering) 값(random dithering value)을 생성하기 위해 의사-난수 생성기(pseudo-random number generator)를 이용함으로써 상기 네트워크 파라미터를 랜덤화하는 네트워크 양자화 장치.
  18. 제 16항에 있어서,
    상기 적어도 하나의 프로세서는 상기 다차원 벡터를 양자화할 때, 룩업 테이블(lookup table)을 이용하여 상기 양자화된 벡터와 대응되는 심볼을 찾아, 상기 양자화된 벡터를 심볼로 변환하는 네트워크 양자화 장치.
  19. 적어도 하나의 프로세서와 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는 칩셋의 제조 방법으로서,
    상기 적어도 하나의 프로세서는 상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 수행할 때,
    훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 상기 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 상기 공유 양자화된 벡터를 미세조정하고, 상기 공유 양자화된 벡터를 이용하여 인코딩하고,
    상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 상기 명령을 저장하는 칩셋 제조 방법.
  20. 네트워크 양자화 장치가 적어도 하나의 프로세서를 포함하는지 검사하고,
    상기 네트워크 양자화 장치가 하나 이상의 비일시적 컴퓨터 판독가능한 매체를 포함하는지 검사하는 것을 포함하되,
    상기 적어도 하나의 프로세서는 상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체에 저장된 명령을 수행할 때,
    훈련된 뉴럴 네트워크 모델로부터 네트워크 파라미터를 나타내는 다차원 벡터를 구성하고, 상기 다차원 벡터를 양자화하여, 클러스터 중심으로서 공유 양자화된 벡터를 획득하고, 상기 공유 양자화된 벡터를 미세조정하고, 상기 공유 양자화된 벡터를 이용하여 인코딩하고,
    상기 하나 이상의 비일시적 컴퓨터 판독가능한 매체는 상기 명령을 저장하는 네트워크 양자화 장치의 테스트 방법.
KR1020170133616A 2016-10-19 2017-10-13 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 KR20180043172A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201662409961P 2016-10-19 2016-10-19
US62/409,961 2016-10-19
US15/433,531 US11321609B2 (en) 2016-10-19 2017-02-15 Method and apparatus for neural network quantization
US15/433,531 2017-02-15
US201762480857P 2017-04-03 2017-04-03
US62/480,857 2017-04-03
US15/697,035 2017-09-06
US15/697,035 US20180107926A1 (en) 2016-10-19 2017-09-06 Method and apparatus for neural network quantization

Publications (1)

Publication Number Publication Date
KR20180043172A true KR20180043172A (ko) 2018-04-27

Family

ID=61904634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170133616A KR20180043172A (ko) 2016-10-19 2017-10-13 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치

Country Status (4)

Country Link
US (1) US20180107926A1 (ko)
KR (1) KR20180043172A (ko)
CN (1) CN107967517A (ko)
TW (1) TWI801356B (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020045977A1 (en) * 2018-08-30 2020-03-05 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
KR20200097625A (ko) * 2019-08-27 2020-08-19 (주)데이터리퍼블릭 메뉴 변경에 따른 서비스 사용변화량과 연동되는 서비스 복원 장치
KR20200097624A (ko) * 2019-08-27 2020-08-19 (주)데이터리퍼블릭 유저 데이터 및 서비스 항목 데이터를 활용한 서비스 구현 장치
WO2020197241A1 (en) * 2019-03-25 2020-10-01 Samsung Electronics Co., Ltd. Device and method for compressing machine learning model
KR20220138463A (ko) 2021-03-25 2022-10-13 주식회사 아이팩 용기의 표면처리방법 및 그 표면처리장치

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10748062B2 (en) * 2016-12-15 2020-08-18 WaveOne Inc. Deep learning based adaptive arithmetic coding and codelength regularization
US11037330B2 (en) 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US10878273B2 (en) * 2017-07-06 2020-12-29 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
CN109543826A (zh) * 2017-09-21 2019-03-29 杭州海康威视数字技术股份有限公司 一种基于深度神经网络的激活量量化方法及装置
US11295208B2 (en) * 2017-12-04 2022-04-05 International Business Machines Corporation Robust gradient weight compression schemes for deep learning applications
CN110413255B (zh) * 2018-04-28 2022-08-19 赛灵思电子科技(北京)有限公司 人工神经网络调整方法和装置
US11403528B2 (en) 2018-05-31 2022-08-02 Kneron (Taiwan) Co., Ltd. Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance
US11488019B2 (en) * 2018-06-03 2022-11-01 Kneron (Taiwan) Co., Ltd. Lossless model compression by batch normalization layer pruning in deep neural networks
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN110728350A (zh) * 2018-06-29 2020-01-24 微软技术许可有限责任公司 用于机器学习模型的量化
EP3735658A1 (en) * 2018-07-12 2020-11-11 Huawei Technologies Co. Ltd. Generating a compressed representation of a neural network with proficient inference speed and power consumption
EP3605404B1 (de) * 2018-08-03 2023-10-04 Siemens Healthcare Diagnostics, Inc. Verfahren und vorrichtung zum trainieren einer maschinellen lernroutine zum steuern eines technischen systems
US11449756B2 (en) * 2018-09-24 2022-09-20 Samsung Electronics Co., Ltd. Method to balance sparsity for efficient inference of deep neural networks
US11348009B2 (en) 2018-09-24 2022-05-31 Samsung Electronics Co., Ltd. Non-uniform quantization of pre-trained deep neural network
CN109272046A (zh) * 2018-09-26 2019-01-25 北京科技大学 基于L2重新正则化Adam切换模拟回火SGD的深度学习方法
US20220004848A1 (en) * 2018-11-22 2022-01-06 Nokia Technologies Oy Learning in Communication Systems
US10769529B2 (en) * 2018-12-04 2020-09-08 Google Llc Controlled adaptive optimization
US20200202213A1 (en) * 2018-12-19 2020-06-25 Microsoft Technology Licensing, Llc Scaled learning for training dnn
GB2580171B (en) * 2018-12-21 2021-02-17 Imagination Tech Ltd Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation
WO2020133364A1 (zh) * 2018-12-29 2020-07-02 华为技术有限公司 一种神经网络压缩方法及装置
CN109670057B (zh) * 2019-01-03 2021-06-29 电子科技大学 一种渐进式的端到端深度特征量化系统及方法
US20200218982A1 (en) * 2019-01-04 2020-07-09 Microsoft Technology Licensing, Llc Dithered quantization of parameters during training with a machine learning tool
KR102659494B1 (ko) 2019-01-21 2024-04-23 삼성전자주식회사 전자 장치 및 그 제어 방법
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
CN111723901B (zh) * 2019-03-19 2024-01-12 百度在线网络技术(北京)有限公司 神经网络模型的训练方法及装置
EP3716158A3 (en) * 2019-03-25 2020-11-25 Nokia Technologies Oy Compressing weight updates for decoder-side neural networks
JP7298266B2 (ja) * 2019-04-19 2023-06-27 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN110135465B (zh) * 2019-04-22 2022-12-09 腾讯科技(深圳)有限公司 模型参数表示空间大小估计方法及装置、推荐方法
EP3966741A1 (en) * 2019-05-07 2022-03-16 Imagia Cybernetics Inc. Method and system for initializing a neural network
TWI745697B (zh) * 2019-05-24 2021-11-11 創鑫智慧股份有限公司 用於神經網路參數的運算系統及其壓縮方法
CN110175262A (zh) * 2019-05-31 2019-08-27 武汉斗鱼鱼乐网络科技有限公司 基于聚类的深度学习模型压缩方法、存储介质及系统
CN110263917B (zh) * 2019-06-06 2023-09-22 深圳前海微众银行股份有限公司 一种神经网络压缩方法及装置
CN110378467A (zh) * 2019-06-17 2019-10-25 浙江大学 一种针对深度学习网络参数的量化方法
CN110555315B (zh) * 2019-08-09 2021-04-09 创新先进技术有限公司 基于秘密分享算法的模型参数更新方法、装置和电子设备
US10803184B2 (en) * 2019-08-09 2020-10-13 Alibaba Group Holding Limited Generation of a model parameter
US10936960B1 (en) * 2019-08-09 2021-03-02 Advanced New Technologies Co., Ltd. Determining model parameters using secret sharing
CN110659678B (zh) * 2019-09-09 2023-11-17 腾讯科技(深圳)有限公司 一种用户行为分类方法、系统及存储介质
EP3799068A1 (en) * 2019-09-24 2021-03-31 Siemens Healthcare GmbH System and method for infectious disease notification
CN113112008B (zh) * 2020-01-13 2024-05-10 中科寒武纪科技股份有限公司 用于神经网络数据量化的方法、装置和计算机可读存储介质
CN111291876B (zh) * 2020-01-21 2023-03-28 星宸科技股份有限公司 运算装置、运算方法和运算芯片
EP4100887A4 (en) * 2020-03-05 2023-07-05 Huawei Cloud Computing Technologies Co., Ltd. METHOD AND SYSTEM FOR SHARING AND BITWIDTH ALLOCATION OF DEEP LEARNING MODELS FOR INFERENCE ON DISTRIBUTED SYSTEMS
US11388415B2 (en) * 2020-05-12 2022-07-12 Tencent America LLC Substitutional end-to-end video coding
CN111814448B (zh) * 2020-07-03 2024-01-16 思必驰科技股份有限公司 预训练语言模型量化方法和装置
US20220051133A1 (en) * 2020-08-12 2022-02-17 NEC Laboratories Europe GmbH Decentralized multi-task learning
CN112183742B (zh) * 2020-09-03 2023-05-12 南强智视(厦门)科技有限公司 基于渐进式量化和Hessian信息的神经网络混合量化方法
CN112132024B (zh) * 2020-09-22 2024-02-27 中国农业大学 水下目标识别网络优化方法及装置
WO2022177931A1 (en) * 2021-02-17 2022-08-25 Carnegie Mellon University System and method for the automated learning of lean cnn network architectures
CN113762503A (zh) * 2021-05-27 2021-12-07 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN113422950B (zh) * 2021-05-31 2022-09-30 北京达佳互联信息技术有限公司 训练方法和训练装置、图像数据处理方法和装置、电子设备及存储介质
US11777812B2 (en) * 2021-06-25 2023-10-03 Qualcomm Technologies, Inc. Zone-based federated learning
US11533484B1 (en) * 2021-07-15 2022-12-20 Teraki Gmbh Method and system for optimizing image and video compression for machine vision
WO2023081911A1 (en) * 2021-11-08 2023-05-11 The Regents Of The University Of California Quantization and cryptographic protocol based machine learning models for confidential data analysis and inference
CN114037853B (zh) * 2021-11-11 2024-03-05 西北工业大学 基于拉普拉斯秩约束的深度图像聚类方法
CN114781604B (zh) * 2022-04-13 2024-02-20 广州安凯微电子股份有限公司 神经网络权重参数的编码方法、编码器及神经网络处理器
WO2024068368A1 (en) * 2022-09-27 2024-04-04 Interdigital Ce Patent Holdings, Sas Uniform vector quantization for end-to-end image/video compression

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW524348U (en) * 2000-04-26 2003-03-11 Shan-Yue Fang Circuit for automatically detecting CPU inserting or removing
IL160981A0 (en) * 2001-09-26 2004-08-31 Interact Devices Inc System and method for communicating media signals
US7519941B2 (en) * 2006-04-13 2009-04-14 International Business Machines Corporation Method of manufacturing integrated circuits using pre-made and pre-qualified exposure masks for selected blocks of circuitry
CN103140894B (zh) * 2010-08-17 2017-08-22 技术研究及发展基金公司 在非易失性存储器(nvm)单元中减轻单元间耦合效应
EP2856645A2 (en) * 2012-05-31 2015-04-08 Dolby Laboratories Licensing Corporation Low latency and low complexity phase shift network
CN103971748B (zh) * 2013-02-05 2018-08-24 厦门雅迅网络股份有限公司 一种存储卡检测电路和方法
US20140358565A1 (en) * 2013-05-29 2014-12-04 Qualcomm Incorporated Compression of decomposed representations of a sound field

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020045977A1 (en) * 2018-08-30 2020-03-05 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11475281B2 (en) 2018-08-30 2022-10-18 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
WO2020197241A1 (en) * 2019-03-25 2020-10-01 Samsung Electronics Co., Ltd. Device and method for compressing machine learning model
KR20200097625A (ko) * 2019-08-27 2020-08-19 (주)데이터리퍼블릭 메뉴 변경에 따른 서비스 사용변화량과 연동되는 서비스 복원 장치
KR20200097624A (ko) * 2019-08-27 2020-08-19 (주)데이터리퍼블릭 유저 데이터 및 서비스 항목 데이터를 활용한 서비스 구현 장치
KR20220138463A (ko) 2021-03-25 2022-10-13 주식회사 아이팩 용기의 표면처리방법 및 그 표면처리장치

Also Published As

Publication number Publication date
TWI801356B (zh) 2023-05-11
US20180107926A1 (en) 2018-04-19
CN107967517A (zh) 2018-04-27
TW201818302A (zh) 2018-05-16

Similar Documents

Publication Publication Date Title
KR20180043172A (ko) 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치
KR102382125B1 (ko) 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치
Choi et al. Towards the limit of network quantization
Choi et al. Universal deep neural network compression
US11403528B2 (en) Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance
Miyashita et al. Convolutional neural networks using logarithmic data representation
RU2464649C1 (ru) Способ обработки звукового сигнала
CN109859281B (zh) 一种稀疏神经网络的压缩编码方法
KR20180013674A (ko) 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
CN110309904B (zh) 一种神经网络压缩方法
WO2010080663A1 (en) Method and apparatus for vector quantization codebook search
CN113748605A (zh) 用于压缩神经网络的参数的方法和装置
JP2023505647A (ja) ニューラルネットワークモデルの圧縮
JP2019028746A (ja) ネットワーク係数圧縮装置、ネットワーク係数圧縮方法およびプログラム
Zhe et al. Rate-distortion optimized coding for efficient cnn compression
US8285544B2 (en) Restrained vector quantisation
Isik et al. Successive pruning for model compression via rate distortion theory
EP3994625A1 (en) Neural network for variable bit rate compression
Kavvousanos et al. Hardware implementation aspects of a syndrome-based neural network decoder for bch codes
KR20110033154A (ko) 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법
Subia-Waud et al. Weight fixing networks
EP2372699B1 (en) Coding of audio or video samples using multiple quantizers
Laude et al. Neural network compression using transform coding and clustering
WO2021050039A1 (en) Compression of data that exhibits mixed compressibility
Salehifar et al. On optimal coding of hidden markov sources

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal