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

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

Info

Publication number
KR20180043154A
KR20180043154A KR1020170048449A KR20170048449A KR20180043154A KR 20180043154 A KR20180043154 A KR 20180043154A KR 1020170048449 A KR1020170048449 A KR 1020170048449A KR 20170048449 A KR20170048449 A KR 20170048449A KR 20180043154 A KR20180043154 A KR 20180043154A
Authority
KR
South Korea
Prior art keywords
network parameters
network
quantization
hessian
parameters
Prior art date
Application number
KR1020170048449A
Other languages
English (en)
Other versions
KR102382125B1 (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 KR20180043154A publication Critical patent/KR20180043154A/ko
Application granted granted Critical
Publication of KR102382125B1 publication Critical patent/KR102382125B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

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

Abstract

본 발명은 뉴럴 네트워크 양자화 방법 및 장치가 제공된다.
상기 뉴럴 네트워크 양자화 방법은, 뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix: 헤시안 행렬)의 대각성분들을 결정하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는 것을 포함한다.

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)를 사용하기 어려운 실정이다.
따라서, 본 발명의 기술적 사상에 따르면, 적어도 본 명세서에 기술된 문제점들 및/또는 단점들을 해결하고, 적어도 이하에서 설명되는 이점들을 제공하기 위해 만들어졌다.
본 발명이 해결하고자 하는 기술적 과제는, 뉴럴 네트워크 양자화에 관한 방법이다.
본 발명이 해결하고자 하는 기술적 과제는, 뉴럴 네트워크 양자화에 관한 장치이다.
본 발명이 해결하고자 하는 기술적 과제들은, 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따라, 뉴럴 네트워크(neural network)의 네트워크 파라미터들의, 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분을 결정하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는 뉴럴 네트워크 양자화 방법이 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따라, 네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 모멘트 추정치 및 이차 모멘트 추정치들을 이용하여 뉴럴 네트워크(neural network)를 훈련(training)하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여, 상기 네트워크 파라미터들에 가중치를 부여하는 뉴럴 네트워크 양자화 방법이 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따라, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media) 및 적어도 하나의 프로세서(processor)를 포함하되, 상기 적어도 하나의 프로세서는 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분들을 결정하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는 뉴럴 네트워크 양자화 장치가 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따라, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media) 및 적어도 하나의 프로세서(processor)를 포함하되, 상기 적어도 하나의 프로세서는, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 모멘트 추정치 및 이차 모멘트 추정치를 이용하여 뉴럴 네트워크(neural network)를 훈련(training)하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여 상기 네트워크 파라미터들에 가중치를 부여하는 뉴럴 네트워크 양자화 장치가 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따라, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분들을 결정하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는, 단계를 수행하는 적어도 하나의 프로세서(processor), 및 상기 명령들과 상기 결정된 대각성분들을 저장하는, 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media) 를 포함하는 칩셋을 제조하는 방법이 제공된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따라, 장치가 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분들을 결정하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는, 단계를 수행하는 적어도 하나의 프로세서(processor)인지 검사하고, 상기 명령들을 저장하는, 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media)인지 검사하는 것을 포함하는 장치 검사 방법이 제공된다.
본 발명의 임의의 실시예의 앞서 언급한 내용 및 이와 다른 양상들, 특징들, 및 이점은 첨부 도면들과 관련한 다음의 상세한 설명으로부터, 보다 명확해 질 것이다.
도 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는, 본 발명의 몇몇 실시예에 따른, 다양한 네트워크 양자화 방법에 대한 코드 길이들의 또 다른 예시적인 플롯이다.
도 10a는, 본 발명의 몇몇 실시예에 따른, 본 발명의 기술적 사상에 따른 장치에 대한 예시적인 블록 다이어그램이다.
도 10b는, 본 발명의 몇몇 실시예에 따른, 본 발명의 기술적 사상에 따른 장치를 제조 및 검사하는 방법에 대한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(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)으로 인한 실제 압축비의 제약하에서, 네트워크 양자화 문제를 해결하는 것에 대해 설명한다. 따라서, 이하의 설명은 3 개의 섹션으로 나뉜다.
I. 헤시안 가중(Hessian-weight)을 이용한 네트워크 양자화
II. 엔트로피 - 제한 네트워크 양자화
III. 실험적 / 시뮬레이션 결과들
본 발명의 기술적 사상에 따른, 종래의 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)
본 발명의 몇몇 실시예에 따라, 헤시안 가중된 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)을 사용한 양자화를 포함한다. 위에서 세부적으로 설명한 바와 같이, 본 발명은, 그중에서도, (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와 같은 가변-고정 엔트로피 인코딩을 사용하는 실시예에서, 엔트로피 제한된 스칼라 양자화를 사용하는 개시된 양자화 방식은 여전히 유지된다.
몇몇 실시예에서, 디더링 된 스칼라 양자화(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)에 의해 디더링되고, 균일 스칼라 양자화, 및 마지막으로 LZW 코드 같은 무손실의 엔트로피 인코딩이 따른다.
도 10a는 본 발명의 몇몇 실시예에 따른 본 발명의 장치에 대한 예시적인 블록 다이어그램이다. 뉴럴 네트워크 장치(1000)는 적어도 하나의 프로세서(1010)를 포함하고, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1020)를 포함한다. 상기 적어도 하나의 프로세서(1010)는 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1020)에 저장된 명령들을 실행할 때, 뉴럴 네트워크의 네트워크 파라미터의 이차 편미분 행렬(헤시안 행렬)의 대각 성분들을 결정하고, 네트워크 파라미터들의 양자화 단계의 일부로서, 결정된 대각 성분들을 이용하여 네트워크 파라미터들에 가중치(헤시안 가중)를 부여하는 것을 수행한다. 또한, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1020)는, 적어도 하나의 프로세서(1010)가 결정하고 이용하는 단계를 수행하기 위한 명령들을 저장한다.
몇몇 실시예에서, 적어도 하나의 프로세서(1010)는 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1020)에 저장된 명령들을 실행할 때, 네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 모멘트 추정치 및 이차 모멘트 추정치를 이용하여 뉴럴 네트워크(neural network)를 훈련(training)하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여 상기 네트워크 파라미터들에 가중치를 부여하는 것을 수행한다. 또한, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(1020)는, 적어도 하나의 프로세서(1010)가 훈련(training)하고 이용하는 단계를 수행하기 위한 명령들을 저장한다.
도 10b는 본 발명의 몇몇 실시예에 따른, 본 발명의 장치를 제조 및 검사하는 방법에 대한 흐름도이다.
적어도 하나의 프로세서 및 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체를 포함하는 장치(이 경우, 칩셋)가 제조된다(1050). 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 적어도 하나의 프로세서는 뉴럴 네트워크의 네트워크 파라미터의 이차 편미분 행렬(헤시안 행렬)의 대각 성분들을 결정하고, 네트워크 파라미터들의 양자화 단계의 일부로서, 결정된 대각 성분들을 이용하여 네트워크 파라미터들에 가중치(헤시안 가중)를 부여하는 것을 수행한다. 또한, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체는, 적어도 하나의 프로세서가 결정하고 이용하는 단계를 수행하기 위한 명령들을 저장한다.
상기 장치(이 경우, 칩셋)를 검사(test)한다(1060). 그 장치가 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 적어도 하나의 프로세서는 뉴럴 네트워크의 네트워크 파라미터의 이차 편미분 행렬(헤시안 행렬)의 대각 성분들을 결정하고, 네트워크 파라미터들의 양자화 단계의 일부로서, 결정된 대각 성분들을 이용하여 네트워크 파라미터들에 가중치(헤시안 가중)를 부여하는 것을 수행하는 적어도 하나의 프로세서를 가지고 있는지, 및 적어도 하나의 프로세서가 결정하고 이용하는 단계를 수행하기 위한 명령들을 저장하는 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체를 가지고 있는지 검사한다.
몇몇 실시예에서, 칩셋은 하나 이상의 프로세서 및 적어도 하나의 비일시성의 컴퓨터 판독 가능한 매체를 포함하여 제조된다. 적어도 하나의 프로세서는 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 모멘트 추정치 및 이차 모멘트 추정치를 이용하여 뉴럴 네트워크(neural network)를 훈련(training)하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여 상기 네트워크 파라미터들에 가중치를 부여하는 것을 수행한다. 또한, 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체는, 적어도 하나의 프로세서가 훈련(training)하고 이용하는 단계를 수행하기 위한 명령들을 저장한다
이 실시예에서, 상기 칩셋은 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때, 네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 및 이차 모멘트 추정치를 이용하여 뉴럴 네트워크(neural network)를 훈련(training)하고, 상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여 상기 네트워크 파라미터들에 가중치를 부여하는 것을 수행하는 적어도 하나의 프로세서를 가지고 있는지, 및 적어도 하나의 프로세서가 훈련(training)하고 이용하는 단계를 수행하기 위한 명령들을 저장하는 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체를 가지고 있는지 검사한다.
본 개시의 실시예와 관련하여, 통상의 지식을 가진 자라면 이해할 수 있듯이, 상술한 단계들 및/또는 동작들은 특정 실시예 및/또는 구현예에 따라, 상이한 에포크들(epochs) 등에 대해 다른 순서 또는 병렬로, 또는 동시에 발생할 수있다. 상이한 실시예들은 다른 순서 또는 상이한 방법 또는 수단에 의해 동작을 수행 할 수있다. 통상의 지식을 가진 자가 이해할 수있는 바와 같이, 일부 도면은 수행된 동작의 간략화 된 표현이고, 본 명세서의 설명은 개요를 간략화한 것이며, 실제 구현은 훨씬 더 복잡하고, 더 많은 단계 및/또는 구성요소를 요구하며, 또한 특정 구현의 요구 사항에 따라 달라진다. 표현을 단순화 한 것은, 통상의 지식을 가진자가 이러한 도면들을 알고 이해할 수 있고, 본 설명에 관련이 없거나 및/또는 도움이 되지 않기 때문에, 다른 필수 단계를 나타내지 않는다.
유사하게, 일부 도면들은 단지 관련 구성요소만 보여주는 간략화 된 블록 다이어그램들이고, 이러한 관련 구성요소들 중 일부는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자들에게 잘 알려진 바와 같이, 실제 하드웨어 보다 해당 분야에서 잘 알려진 기능 및/또는 구동을 표현할 뿐이다이러한 경우에, 구성요소/모듈들의 일부/전부는 다양한 방법 및/또는 조합으로 실행되거나 공급될 수 있고, 부분적으로 펌웨어 및/또는 하드웨어로 실행되거나 공급될 수 있다. 이는 적어도 하기와 같은 펌웨어 및/또는 하드웨어를 포함할 수 있으나, 이에 한정되지 않는다: 하나 이상의, 응용 주문형 집적 회로(application-specific integrated circuits; ASICs), 표준 집적 회로(standard integrated circuits), 마이크로컨트롤러(microcontrollers) 및/또는 임베디드 컨트롤러(embedded controllers)들을 포함하는 적절한 명령들을 수행하는 컨트롤러, 필드 프로그래머블 게이트 어레이(field-programmable gate arrays; FPGAs), 컴플랙스 프로그래머블 논리 디바이스(complex programmable logic devices; CPLDs), 및 이와 비슷한 구성요소/모듈. 또한 이 시스템 구성요소들 및/또는 데이터 구조들의 전부/일부는, 컴퓨터 판독 가능한 매체 및/또는 하나 이상의 관련된 컴퓨팅 시스템 또는 장치들을 적어도 설명된 기술들의 일부를 수행하게 하기 위해 실행하거나 달리 사용하거나 제공하도록 가능하게 하거나 설정하기 위하여, 컨텐츠로(예컨대, 실행파일, 다른 기계 판독가능한 소프트웨어 명령어 또는 구조화된 데이터) 비일시성의 컴퓨터 판독 가능한 매체에(예컨대, 하드디스크; 메모리; 컴퓨터 네트워크, 셀룰러 무선 네트워크 또는 다른 데이터 전송 매체; DVD 나 플래쉬 메모리 장치 같은 적절한 드라이브나 적절한 연결을 통해 판독되는 휴대용 매체) 저장될 수 있다.
하나 이상의 프로세서, 단순한 마이크로 컨트롤러, 컨트롤러, 및 그러한 것들은, 단독이든 혹은 다중 처리 장치이든, 본 발명의 실시예를 구현하기 위하여 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들의 시퀀스를 실행하기 위해 사용될 수 있다. 일부 실시예에서, 하드-와이어드 회로(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)일 수 있다.
이상 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1010 : 프로세서 1020 : 비일시성의 컴퓨터 판독 가능한 매체

Claims (21)

  1. 뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분들을 결정하고,
    상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는 것을 포함하는 뉴럴 네트워크 양자화 방법.
  2. 제 1항에 있어서,
    상기 네트워크 파라미터들은 헤시안 가중된 평균(Hessian-weighted means)을 클러스터 중심으로 사용하여, 헤시안 가중된 k- 평균 클러스터링(Hessian-weighted k- means clustering)에 의해 양자화되는 뉴럴 네트워크 양자화 방법.
  3. 제 2항에 있어서,
    상기 양자화된 파라미터들은 바이너리 인코딩(binary encoding)에 의해 인코딩되는 뉴럴 네트워크 양자화 방법.
  4. 제 1항에 있어서,
    상기 네트워크 파라미터들은, 클러스터 중심으로 헤시안 가중된 평균을 사용하여, 균일 양자화에 의해 클러스터링 되고,
    상기 양자화된 네트워크 파라미터들은, 가변 길이 바이너리 인코딩(variable-length binary encoding)에 의해, 인코딩되는 뉴럴 네트워크 양자화 방법.
  5. 제 1항에 있어서,
    상기 뉴럴 네트워크는 다중 레이어들(multiple layers)을 가진 딥 뉴럴 네트워크(deep neural network)이고,
    상기 양자화는 모든 레이어들에 동시에 수행되는 뉴럴 네트워크 양자화 방법.
  6. 제 1항에 있어서,
    엔트로피 코딩(entropy coding)이 사용되고,
    양자화 클러스터링(quantization clustering)은, 엔트로피-제한 스칼라 양자화(entropy-constrained scalar quantization; ECSQ)를 사용하여 수행되는 뉴럴 네트워크 양자화 방법.
  7. 제 6항에 있어서,
    상기 네트워크 파라미터들은, 클러스터 중심으로 헤시안 가중된 평균을 사용하여, 균일 양자화에 의해 클러스터링 되는 뉴럴 네트워크 양자화 방법.
  8. 제 6항에 있어서,
    상기 ECSQ를 수행하기 위해, 반복 연산(iterative operations)을 사용하여, 상기 네트워크 파라미터들을 클러스터링 하는 뉴럴 네트워크 양자화 방법.
  9. 제 8항에 있어서,
    상기 반복 연산을 사용하여 상기 네트워크 파라미터들을 클러스터링 하는것은,
    클러스터들의 왜곡 측정과, 클러스터링 후의 상기 네트워크 파라미터들의 엔트로피에 대한, 라그랑지안 비용함수(Lagrangian cost function)을 정의하고,
    상기 라그랑지안 비용함수가 쓰레숄드(threshold)미만으로 감소할 때까지, 반복적으로 할당(assigning) 및 갱신(updating)하는 것을 포함하는 뉴럴 네트워크 양자화 방법.
  10. 제 8항에 있어서,
    헤시안 가중이, 상기 반복 연산(iterative operations)을 수행하는데 이용되는 뉴럴 네트워크 양자화 방법.
  11. 네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 모멘트 추정치 및 이차 모멘트 추정치들을 이용하여, 뉴럴 네트워크(neural network)를 훈련(training)하고,
    상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여, 상기 네트워크 파라미터들에 가중치를 부여하는 것을 포함하는 뉴럴 네트워크 양자화 방법.
  12. 제 11항에 있어서,
    상기 훈련은, 확률적 기울기 강하(stochastic gradient descent; SGD) 옵티마이저(optimizer)에 의해 수행되는 뉴럴 네트워크 양자화 방법.
  13. 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media); 및
    적어도 하나의 프로세서(processor)를 포함하되,
    상기 적어도 하나의 프로세서는 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때,
    뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix: 헤시안 행렬)의 대각성분들을 결정하고,
    상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여, 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는 뉴럴 네트워크 양자화 장치.
  14. 제 13항에 있어서,
    상기 양자화된 파라미터들은 바이너리 인코딩(binary encoding)에 의해 인코딩되는 뉴럴 네트워크 양자화 장치.
  15. 제 13항에 있어서,
    상기 네트워크 파라미터들은 헤시안 가중된 평균(Hessian-weighted means)을 클러스터 중심으로 사용하여, 헤시안 가중된 k- 평균 클러스터링(Hessian-weighted k- means clustering)에 의해 양자화 되고,
    상기 네트워크 파라미터들은, 고정 길이 바이너리 인코딩(fixed-length binary encoding)에 의해 인코딩되는 뉴럴 네트워크 양자화 장치.
  16. 제 13항에 있어서,
    상기 네트워크 파라미터들은, 클러스터 중심으로 헤시안 가중된 평균을 사용하여, 균일 양자화에 의해 클러스터링 되고,
    상기 양자화된 네트워크 파라미터들은, 가변 길이 바이너리 인코딩(variable-length binary encoding)에 의해 인코딩되는 뉴럴 네트워크 양자화 장치.
  17. 제 13항에 있어서,
    상기 뉴럴 네트워크는 다중 레이어들(multiple layers)을 가진 딥 뉴럴 네트워크(deep neural network)이고,
    상기 양자화는 모든 레이어들에 동시에 수행되는 뉴럴 네트워크 양자화 장치.
  18. 제 13항에 있어서,
    엔트로피 코딩(entropy coding)이 사용되고,
    양자화 클러스터링(quantization clustering)은, 엔트로피-제한 스칼라 양자화(entropy-constrained scalar quantization;ECSQ)를 사용하여 수행되는 뉴럴 네트워크 양자화 장치.
  19. 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media); 및
    적어도 하나의 프로세서(processor)를 포함하되,
    상기 적어도 하나의 프로세서는,
    상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때,
    네트워크 파라미터들(network parameters)의 기울기(gradients)의 일차 모멘트 추정치 및 이차 모멘트 추정치를 이용하여, 뉴럴 네트워크(neural network)를 훈련(training)하고,
    상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 이차 모멘트 추정치를 이용하여 상기 네트워크 파라미터들에 가중치를 부여하는 뉴럴 네트워크 양자화 장치.
  20. 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때,
    뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분들을 결정하고,
    상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여, 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는것을 수행하는 적어도 하나의 프로세서(processor); 및
    상기 명령들과 상기 결정된 대각성분들을 저장하는, 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media) 를 포함하는 칩셋을 제조하는 방법.
  21. 뉴럴 네트워크 양자화 장치가,
    하나 이상의 비일시성의 컴퓨터 판독 가능한 매체에 저장된 명령들을 실행할 때,
    뉴럴 네트워크(neural network)의 네트워크 파라미터들의 손실함수(loss function)의 이차 편미분 행렬(Hessian matrix:헤시안 행렬)의 대각성분들을 결정하고,
    상기 네트워크 파라미터들을 양자화하는 단계의 일부로서, 상기 결정된 대각성분들을 이용하여 상기 네트워크 파라미터들에 가중치(Hessian-weighting;헤시안 가중)를 부여하는 단계를 수행하는 적어도 하나의 프로세서(processor)를 포함하는지 검사하고,
    상기 장치가, 상기 명령들을 저장하는, 상기 하나 이상의 비일시성의 컴퓨터 판독 가능한 매체(non-transitory computer-readable media)를 포함하는지 검사하는 것을 포함하는 장치 검사 방법.
KR1020170048449A 2016-10-19 2017-04-14 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치 KR102382125B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662409961P 2016-10-19 2016-10-19
US62/409,961 2016-10-19
US15/433,531 2017-02-15
US15/433,531 US11321609B2 (en) 2016-10-19 2017-02-15 Method and apparatus for neural network quantization

Publications (2)

Publication Number Publication Date
KR20180043154A true KR20180043154A (ko) 2018-04-27
KR102382125B1 KR102382125B1 (ko) 2022-04-01

Family

ID=61903993

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US11321609B2 (ko)
KR (1) KR102382125B1 (ko)
CN (1) CN107967515B (ko)
TW (1) TWI767922B (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019216515A1 (ko) * 2018-05-09 2019-11-14 삼성전자주식회사 전자 장치 및 그 제어 방법
US20200126185A1 (en) 2018-10-19 2020-04-23 Samsung Electronics Co., Ltd. Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof
US10817988B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10817989B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
US10819993B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Methods and apparatuses for performing encoding and decoding on image
US10825204B2 (en) 2018-10-19 2020-11-03 Samsung Electronics Co., Ltd. Artificial intelligence encoding and artificial intelligence decoding methods and apparatuses using deep neural network
US10950009B2 (en) 2018-10-19 2021-03-16 Samsung Electronics Co., Ltd. AI encoding apparatus and operation method of the same, and AI decoding apparatus and operation method of the same
US11182876B2 (en) 2020-02-24 2021-11-23 Samsung Electronics Co., Ltd. Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image by using pre-processing
KR102340091B1 (ko) * 2021-03-26 2021-12-16 세종대학교산학협력단 인공신경망의 양자화 오차 보상 시스템 및 그 방법
US11436442B2 (en) 2019-11-21 2022-09-06 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11616988B2 (en) 2018-10-19 2023-03-28 Samsung Electronics Co., Ltd. Method and device for evaluating subjective quality of video
US11720998B2 (en) 2019-11-08 2023-08-08 Samsung Electronics Co., Ltd. Artificial intelligence (AI) encoding apparatus and operating method thereof and AI decoding apparatus and operating method thereof
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
WO2023177025A1 (ko) * 2022-03-16 2023-09-21 서울대학교산학협력단 이력 현상을 이용한 파라미터 양자화 기반 인공 신경망 연산 방법 및 장치

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018084576A1 (en) 2016-11-03 2018-05-11 Samsung Electronics Co., Ltd. Electronic device and controlling method thereof
US11593632B2 (en) 2016-12-15 2023-02-28 WaveOne Inc. Deep learning based on image encoding and decoding
US11537869B2 (en) * 2017-02-17 2022-12-27 Twitter, Inc. Difference metric for machine learning-based processing systems
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
WO2018218249A1 (en) * 2017-05-26 2018-11-29 Google Llc Tiled image compression using neural networks
US11410073B1 (en) * 2017-05-31 2022-08-09 The Mathworks, Inc. Systems and methods for robust feature selection
US10713265B2 (en) * 2017-06-20 2020-07-14 Vmware, Inc. Methods and systems to quantize and compress time series data
US11556775B2 (en) * 2017-10-24 2023-01-17 Baidu Usa Llc Systems and methods for trace norm regularization and faster inference for embedded models
JP2019080232A (ja) * 2017-10-26 2019-05-23 株式会社Preferred Networks 勾配圧縮装置、勾配圧縮方法及びプログラム
GB2568084B (en) * 2017-11-03 2022-01-12 Imagination Tech Ltd Error allocation format selection for hardware implementation of deep neural network
US11321504B2 (en) * 2018-05-09 2022-05-03 Palo Alto Research Center Incorporated Learning constitutive equations of physical components with constraints discovery
EP3794515A1 (en) * 2018-05-17 2021-03-24 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Concepts for distributed learning of neural networks and/or transmission of parameterization updates therefor
CN109102064B (zh) * 2018-06-26 2020-11-13 杭州雄迈集成电路技术股份有限公司 一种高精度的神经网络量化压缩方法
CN109146057B (zh) * 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
KR20200004700A (ko) * 2018-07-04 2020-01-14 삼성전자주식회사 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
CN112437930A (zh) * 2018-07-12 2021-03-02 华为技术有限公司 以熟练的推理速度和功耗,生成神经网络的压缩表示
CN109086807B (zh) * 2018-07-16 2022-03-18 哈尔滨工程大学 一种基于空洞卷积堆叠网络的半监督光流学习方法
KR20200013162A (ko) * 2018-07-19 2020-02-06 삼성전자주식회사 전자 장치 및 그의 제어 방법
IT201800007377A1 (it) * 2018-07-20 2020-01-20 Rete neurale avente un numero ridotto di parametri
CN109165736B (zh) * 2018-08-08 2023-12-12 北京字节跳动网络技术有限公司 应用于卷积神经网络的信息处理方法和装置
KR20200027085A (ko) * 2018-08-30 2020-03-12 삼성전자주식회사 전자 장치 및 그 제어 방법
CN109212960B (zh) * 2018-08-30 2020-08-14 周军 基于权值敏感度的二值神经网络硬件压缩方法
CN110874636B (zh) * 2018-09-04 2023-06-30 杭州海康威视数字技术股份有限公司 一种神经网络模型压缩方法、装置和计算机设备
EP3620983B1 (en) * 2018-09-05 2023-10-25 Sartorius Stedim Data Analytics AB Computer-implemented method, computer program product and system for data analysis
US12001949B2 (en) 2018-09-05 2024-06-04 Sartorius Stedim Data Analytics Ab Computer-implemented method, computer program product and system for data analysis
WO2020056718A1 (zh) * 2018-09-21 2020-03-26 华为技术有限公司 在设备中的神经网络模型的量化方法和装置
US11645535B2 (en) 2018-09-24 2023-05-09 Samsung Electronics Co., Ltd. Normalization method for training deep neural networks
CN112771547A (zh) * 2018-09-25 2021-05-07 诺基亚技术有限公司 通信系统中的端到端学习
CN111105007B (zh) * 2018-10-26 2024-04-12 中国科学院半导体研究所 用于目标检测的深度卷积神经网络的压缩加速方法
TWI682325B (zh) * 2018-11-20 2020-01-11 新唐科技股份有限公司 辨識系統及辨識方法
CN109523016B (zh) * 2018-11-21 2020-09-01 济南大学 面向嵌入式系统的多值量化深度神经网络压缩方法及系统
US10748033B2 (en) 2018-12-11 2020-08-18 Industrial Technology Research Institute Object detection method using CNN model and object detection apparatus using the same
CN109766993B (zh) * 2018-12-13 2020-12-18 浙江大学 一种适合硬件的卷积神经网络压缩方法
DE102018222345A1 (de) * 2018-12-19 2020-06-25 Robert Bosch Gmbh Verfahren zum Trainieren eines neuronalen Netzes
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
CN109635935B (zh) * 2018-12-29 2022-10-14 北京航空航天大学 基于模长聚类的深度卷积神经网络模型自适应量化方法
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
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
CN110309904B (zh) * 2019-01-29 2022-08-09 广州红贝科技有限公司 一种神经网络压缩方法
CN109782603A (zh) * 2019-02-03 2019-05-21 中国石油大学(华东) 旋转机械耦合故障的检测方法及监测系统
US11645745B2 (en) * 2019-02-15 2023-05-09 Surgical Safety Technologies Inc. System and method for adverse event detection or severity estimation from surgical data
JP2022525392A (ja) * 2019-03-15 2022-05-13 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 低変位ランクベースのディープニューラルネットワーク圧縮
CN111723901B (zh) * 2019-03-19 2024-01-12 百度在线网络技术(北京)有限公司 神经网络模型的训练方法及装置
CN110020616B (zh) * 2019-03-26 2021-05-11 深兰科技(上海)有限公司 一种目标识别方法及设备
JP7298266B2 (ja) 2019-04-19 2023-06-27 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
CN110135465B (zh) * 2019-04-22 2022-12-09 腾讯科技(深圳)有限公司 模型参数表示空间大小估计方法及装置、推荐方法
US10964362B2 (en) 2019-04-25 2021-03-30 Marvell Asia Pte, Ltd. Three-port memory cell and array for in-memory computing
CN110263294B (zh) * 2019-05-23 2020-08-04 阿里巴巴集团控股有限公司 损失函数取值的确定方法、装置和电子设备
US10956597B2 (en) 2019-05-23 2021-03-23 Advanced New Technologies Co., Ltd. Loss function value determination method and device and electronic equipment
CN110222821B (zh) * 2019-05-30 2022-03-25 浙江大学 基于权重分布的卷积神经网络低位宽量化方法
CN110263917B (zh) * 2019-06-06 2023-09-22 深圳前海微众银行股份有限公司 一种神经网络压缩方法及装置
CN112085186B (zh) * 2019-06-12 2024-03-05 上海寒武纪信息科技有限公司 一种神经网络的量化参数确定方法及相关产品
CN110378467A (zh) * 2019-06-17 2019-10-25 浙江大学 一种针对深度学习网络参数的量化方法
EP3991102A1 (en) * 2019-06-26 2022-05-04 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Pruning and/or quantizing machine learning predictors
US20220129759A1 (en) * 2019-06-26 2022-04-28 Intel Corporation Universal Loss-Error-Aware Quantization for Deep Neural Networks with Flexible Ultra-Low-Bit Weights and Activations
CN114080613A (zh) * 2019-07-02 2022-02-22 交互数字Ce专利控股公司 对深度神经网络进行编码的系统和方法
CN110443165B (zh) * 2019-07-23 2022-04-29 北京迈格威科技有限公司 神经网络量化方法、图像识别方法、装置和计算机设备
WO2021036412A1 (zh) * 2019-08-23 2021-03-04 上海寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN112434781A (zh) * 2019-08-26 2021-03-02 上海寒武纪信息科技有限公司 用于处理数据的方法、装置以及相关产品
CN110807336B (zh) * 2019-09-19 2023-10-31 平安科技(深圳)有限公司 基于最优传输损失的序列模型的翻译方法及相关设备
US11681911B2 (en) * 2019-10-15 2023-06-20 Naver Corporation Method and system for training neural sequence-to-sequence models by incorporating global features
CN110837856B (zh) * 2019-10-31 2023-05-30 深圳市商汤科技有限公司 神经网络训练及目标检测方法、装置、设备和存储介质
US11995555B1 (en) * 2019-12-17 2024-05-28 Perceive Corporation Training a neural network with quantized weights
TWI702536B (zh) * 2019-12-31 2020-08-21 財團法人工業技術研究院 基於適應標註的物件偵測模型的訓練方法及系統
US20210232891A1 (en) * 2020-01-23 2021-07-29 Tencent America LLC Neural network model compression with structured weight unification
CN111340226B (zh) * 2020-03-06 2022-01-25 北京市商汤科技开发有限公司 一种量化神经网络模型的训练及测试方法、装置及设备
WO2021225699A1 (en) * 2020-05-07 2021-11-11 Google Llc Emitting word timings with end-to-end models
CN112132024B (zh) * 2020-09-22 2024-02-27 中国农业大学 水下目标识别网络优化方法及装置
CN114492811B (zh) * 2020-10-23 2024-05-07 本源量子计算科技(合肥)股份有限公司 量子连通图谱的优化方法、装置、终端及存储介质
CN112488309B (zh) * 2020-12-21 2023-10-20 清华大学深圳国际研究生院 基于临界阻尼动量的深度神经网络的训练方法及系统
CN112529165B (zh) * 2020-12-22 2024-02-02 上海有个机器人有限公司 深度神经网络剪枝方法、装置、终端及存储介质
TWI778493B (zh) * 2021-01-12 2022-09-21 鴻海精密工業股份有限公司 多神經網路模型載入方法、裝置、電子設備及電腦可讀取記錄媒體
CN113096109A (zh) * 2021-04-22 2021-07-09 四川大学 一种肺部医学图像分析方法、设备及系统
US11777812B2 (en) * 2021-06-25 2023-10-03 Qualcomm Technologies, Inc. Zone-based federated learning
CN114720956B (zh) * 2022-06-07 2022-11-01 成都信息工程大学 针对双偏振天气雷达的水凝物粒子分类识别方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008133951A2 (en) * 2007-04-24 2008-11-06 Massachusetts Institute Of Technology Method and apparatus for image processing
US8229232B2 (en) 2007-08-24 2012-07-24 CVISION Technologies, Inc. Computer vision-based methods for enhanced JBIG2 and generic bitonal compression
US8503539B2 (en) 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
US9204112B2 (en) 2012-02-07 2015-12-01 Stmicroelectronics S.R.L. Systems, circuits, and methods for efficient hierarchical object recognition based on clustered invariant features
US9716959B2 (en) 2013-05-29 2017-07-25 Qualcomm Incorporated Compensating for error in decomposed representations of sound fields
GB201313125D0 (en) * 2013-07-23 2013-09-04 Univ Singapore Technology & Design Method and system for classifying images
US9418458B2 (en) 2015-01-05 2016-08-16 Superfish Ltd. Graph image representation from convolutional neural networks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Ming Tu et al., Reducing the Model Order of Deep Neural Networks Using Information Theory, arXiv:1605.04859v1, 1-6pages* *
Yann Le Cun et al., Optimal Brain Damage, Advances in neural information, 598-605pages* *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019216515A1 (ko) * 2018-05-09 2019-11-14 삼성전자주식회사 전자 장치 및 그 제어 방법
US11170472B2 (en) 2018-10-19 2021-11-09 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10817985B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
US20210358083A1 (en) 2018-10-19 2021-11-18 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10817989B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
US11748847B2 (en) 2018-10-19 2023-09-05 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10819993B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Methods and apparatuses for performing encoding and decoding on image
US10819992B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Methods and apparatuses for performing encoding and decoding on image
US10817987B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10825204B2 (en) 2018-10-19 2020-11-03 Samsung Electronics Co., Ltd. Artificial intelligence encoding and artificial intelligence decoding methods and apparatuses using deep neural network
US10825139B2 (en) 2018-10-19 2020-11-03 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
US10832447B2 (en) 2018-10-19 2020-11-10 Samsung Electronics Co., Ltd. Artificial intelligence encoding and artificial intelligence decoding methods and apparatuses using deep neural network
US11190782B2 (en) 2018-10-19 2021-11-30 Samsung Electronics Co., Ltd. Methods and apparatuses for performing encoding and decoding on image
US11170473B2 (en) 2018-10-19 2021-11-09 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US20200126185A1 (en) 2018-10-19 2020-04-23 Samsung Electronics Co., Ltd. Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof
US10817986B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10817988B2 (en) 2018-10-19 2020-10-27 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
US10950009B2 (en) 2018-10-19 2021-03-16 Samsung Electronics Co., Ltd. AI encoding apparatus and operation method of the same, and AI decoding apparatus and operation method of the same
US11200702B2 (en) 2018-10-19 2021-12-14 Samsung Electronics Co., Ltd. AI encoding apparatus and operation method of the same, and AI decoding apparatus and operation method of the same
US11720997B2 (en) 2018-10-19 2023-08-08 Samsung Electronics Co.. Ltd. Artificial intelligence (AI) encoding device and operating method thereof and AI decoding device and operating method thereof
US11288770B2 (en) 2018-10-19 2022-03-29 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
US11688038B2 (en) 2018-10-19 2023-06-27 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
US11616988B2 (en) 2018-10-19 2023-03-28 Samsung Electronics Co., Ltd. Method and device for evaluating subjective quality of video
US11647210B2 (en) 2018-10-19 2023-05-09 Samsung Electronics Co., Ltd. Methods and apparatuses for performing encoding and decoding on image
US11734577B2 (en) 2019-06-05 2023-08-22 Samsung Electronics Co., Ltd Electronic apparatus and method of performing operations thereof
US11720998B2 (en) 2019-11-08 2023-08-08 Samsung Electronics Co., Ltd. Artificial intelligence (AI) encoding apparatus and operating method thereof and AI decoding apparatus and operating method thereof
US11436442B2 (en) 2019-11-21 2022-09-06 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11182876B2 (en) 2020-02-24 2021-11-23 Samsung Electronics Co., Ltd. Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image by using pre-processing
KR102340091B1 (ko) * 2021-03-26 2021-12-16 세종대학교산학협력단 인공신경망의 양자화 오차 보상 시스템 및 그 방법
WO2023177025A1 (ko) * 2022-03-16 2023-09-21 서울대학교산학협력단 이력 현상을 이용한 파라미터 양자화 기반 인공 신경망 연산 방법 및 장치

Also Published As

Publication number Publication date
US20180107925A1 (en) 2018-04-19
KR102382125B1 (ko) 2022-04-01
CN107967515A (zh) 2018-04-27
TWI767922B (zh) 2022-06-21
TW201816669A (zh) 2018-05-01
US11321609B2 (en) 2022-05-03
CN107967515B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
KR102382125B1 (ko) 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치
KR20180043172A (ko) 뉴럴 네트워크 양자화(neural network quantization) 방법 및 장치
Choi et al. Towards the limit of network quantization
Sohoni et al. Low-memory neural network training: A technical report
US11403528B2 (en) Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance
Gysel et al. Hardware-oriented approximation of convolutional neural networks
JP6644939B2 (ja) ピラミッドベクトル量子化器形状サーチ
WO2019086104A1 (en) Neural network representation
KR20180013674A (ko) 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치
JP2019028746A (ja) ネットワーク係数圧縮装置、ネットワーク係数圧縮方法およびプログラム
WO2017149722A1 (ja) 演算装置および演算方法
US8386249B2 (en) Compressing feature space transforms
EP4341932A1 (en) Compressing audio waveforms using neural networks and vector quantizers
Nilsson et al. On the estimation of differential entropy from data located on embedded manifolds
KR102615073B1 (ko) 유사도 검색을 위한 신경 해싱
JP4981122B2 (ja) 抑制されたベクトル量子化
Variani et al. West: Word encoded sequence transducers
Hoang et al. FPGA oriented compression of DNN using layer-targeted weights and activations quantization
Tyagi et al. Fast intent classification for spoken language understanding systems
WO2020177863A1 (en) Training of algorithms
CN113316791A (zh) 通信系统中的训练
Pereira et al. Evaluating robustness to noise and compression of deep neural networks for keyword spotting
RU2504027C1 (ru) Способ создания кодовой книги и поиска в ней при векторном квантовании данных
Subia-Waud et al. Weight fixing networks
Harchli et al. Vector quantization for speech compression by a new version of PRSOM

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