KR20220007853A - 신경망의 매개변수를 압축하기 위한 방법 및 장치 - Google Patents

신경망의 매개변수를 압축하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220007853A
KR20220007853A KR1020217033194A KR20217033194A KR20220007853A KR 20220007853 A KR20220007853 A KR 20220007853A KR 1020217033194 A KR1020217033194 A KR 1020217033194A KR 20217033194 A KR20217033194 A KR 20217033194A KR 20220007853 A KR20220007853 A KR 20220007853A
Authority
KR
South Korea
Prior art keywords
weight parameter
parameter
context
value
encoder
Prior art date
Application number
KR1020217033194A
Other languages
English (en)
Inventor
파울 하제
아르투로 마르반 곤잘레스
하이너 키르흐호퍼
탈마 마린
데틀레프 마르페
스테판 마트라게
다비트 노이만
호앙 퉁 응우옌
보이치에흐 사메크
토마스 쉬를
하이코 슈바르츠
지몬 비데만
토마스 비간트
Original Assignee
프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. filed Critical 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베.
Publication of KR20220007853A publication Critical patent/KR20220007853A/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • 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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/702Software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

신경망의 가중치 매개변수를 인코딩하기 위한 인코더가 설명된다. 본 인코더는 신경망의 복수의 가중치 매개변수를 획득하고, 컨텍스트 종속 산술 코딩을 사용하여 신경망의 가중치 매개변수를 인코딩하고, 하나 이상의 이전에 인코딩된 가중치 매개변수에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 인코딩된 신택스 요소에 따라, 가중치 매개변수의 인코딩, 또는 가중치 매개변수의 숫자 표현의 신택스 요소의 인코딩을 위한 컨텍스트를 선택하고, 선택된 컨텍스트를 사용하여 가중치 매개변수, 또는 가중치 매개변수의 신택스 요소를 인코딩하도록 구성된다. 대응하는 디코더, 양자화기, 방법 및 컴퓨터 프로그램도 또한 설명된다.

Description

신경망의 매개변수를 압축하기 위한 방법 및 장치
본 발명의 일 측면에 따른 실시 예는 신경망의 가중치 매개변수를 인코딩하기 위한 인코더에 관한 것이다.
본 발명의 일 측면에 따른 추가 실시 예는 신경망의 가중치 매개변수를 디코딩하기 위한 디코더에 관한 것이다.
본 발명의 일 측면에 따른 추가 실시 예는 신경망의 가중치 매개변수를 양자화하기 위한 양자화기에 관한 것이다.
본 발명의 일 측면에 따른 또 다른 실시 예는 각각의 방법 및 컴퓨터 프로그램에 관한 것이다.
본 발명의 일 측면에 따른 실시 예는 신경망을 양자화하고 비트스트림으로 변환하여 이들의 압축된 표현을 생성하는 장치에 관한 것이다.
추가 실시 예는 첨부된 청구범위에 의해 정의될 것이다.
청구범위에 의해 정의된 바와 같은 임의의 실시 예는 본 명세서에 설명된 임의의 세부사항(특징 및 기능)에 의해 보완될 수 있음에 유의해야 한다.
또한, 본 명세서에서 설명되는 실시 예들은 개별적으로 사용될 수 있으며, 특허청구범위에 포함된 임의의 특징에 의해 보완될 수도 있다.
또한, 본 명세서에서 설명되는 개별 측면은 개별적으로 또는 조합하여 사용될 수 있다는 점에 유의해야 한다. 따라서, 상기 측면 중 다른 하나에 세부 사항을 추가하지 않고 상기 개별 측면 각각에 세부 사항을 추가할 수 있다.
또한 본 개시는 비디오 인코더(입력 비디오 신호의 인코딩된 표현을 제공하기 위한 장치) 및 비디오 디코더(인코딩된 표현에 기초하여 비디오 신호의 디코딩된 표현을 제공하기 위한 장치)에서 사용 가능한 특징들을 명시적으로 또는 암시적으로 설명한다는 점에 유의해야 한다. 따라서, 본 명세서에서 설명된 특징들 중 임의의 것은 비디오 인코더의 맥락과 비디오 디코더의 맥락에서 사용될 수 있다.
더욱, 방법과 관련하여 본 명세서에 개시된 특징 및 기능은 또한 (이러한 기능을 수행하도록 구성된) 장치에서 사용될 수 있다. 또한, 장치와 관련하여 본 명세서에 개시된 임의의 특징 및 기능은 또한 대응하는 방법에서 사용될 수 있다. 다시 말해서, 본 명세서에 개시된 방법은 장치와 관련하여 설명된 임의의 특징 및 기능에 의해 보완될 수 있다.
또한, 본 명세서에서 설명된 특징 및 기능 중 임의의 것은 "구현 대안" 섹션에서 설명되는 바와 같이, 하드웨어 또는 소프트웨어로, 또는 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다.
더욱이, 본 명세서에서 설명된 특징들 및 신택스(구문, syntax) 요소들 중 임의의 것은 개별적으로 그리고 조합하여 선택적으로 비디오 비트 스트림으로 도입될 수 있다.
본 문서는 신경망을 양자화하여 비트스트림으로 변환하여 이들의 압축된 표현을 생성하는 장치에 대해 설명한다.
본 장치의 방법론은 다음으로 구성되는, 여러 주요 부분으로 나뉜다:
1. 관련성 추정
2. 양자화
3. 무손실 인코딩
4. 무손실 디코딩
본 장치의 방법을 살펴보기 전에 먼저 신경망 주제에 대해 간략히 소개한다.
신경망: 가장 기본적인 형태의 신경망은 요소별 비선형 함수가 뒤따르는 아핀 변환의 체인(a chain of affine transformations)을 구성한다. 아래 이미지에서 도시하는 바와 같이, 방향성 순환 그래프로 나타낼 수 있다. 각 노드는 특정 값을 수반하며, 이 값은 에지의 해당 가중치 값과 곱하여 다음 노드로 전달된다. 그러면 들어오는 모든 값이 단순히 집계된다.
도 1은 피드 포워드 신경망의 그래프 표현에 대한 예를 보여준다. 특히, 이 2 계층 신경망은 4차원 입력 벡터를 실제 라인에 매핑하는 비선형 함수이다.
수학적으로, 도 1의 신경망은 다음과 같은 방식으로 출력을 계산한다:
Figure pct00001
여기서 W2와 W1은 신경망 가중치 매개변수(가장자리 가중치)이고 시그마는 일부 비선형 함수이다. 예를 들어, 소위 컨볼루션 계층은 "cuDNN: Efficient Primitives for Deep Learning"(Sharan Chetlur, et al., arXiv: 1410.0759, 2014)에 설명된 것처럼 행렬-행렬 곱으로 캐스팅하여 사용할 수도 있다. 이제부터 주어진 입력에서 출력을 계산하는 절차를 추론이라고 한다. 또한 중간 결과를, 예를 들어 제 1 내적 + 비선형의 계산과 같이, 선형 변환 + 요소별 비선형을 구성하는, 은닉 계층 또는 은닉 활성화 값으로 부를 것이다.
일반적으로, 신경망에는 수백만 개의 매개변수가 있으므로, 표현되기 위해서는 수백의 MB를 필요로 할 수 있다. 결과적으로, 그들의 추론 절차는 큰 행렬 간의 많은 내적 연산의 계산을 포함하기 때문에 실행되기 위해서는 높은 계산 자원을 필요로 한다. 따라서 이러한 내적을 수행하는 복잡성을 줄이는 것이 매우 중요하다.
관련성 추정: 신경망 추론의 복잡성을 줄이는 한 가지 방법은 가중치 매개변수를 양자화하는 것이다. 그러나, 양자화의 직접적인 결과로 메모리 복잡성이 감소함에 따라, 나중에 살펴보는 바와 같이, 양자화는 추론을 수행하는 시간을 줄일 수도 있다.
가장 효율적인 방식으로 가중치 매개변수를 양자화하기 위해서, 네트워크의 "다소 관련성이 있는" 부분을 구별할 수 있어야 한다. 즉, 네트워크의 예측 정확도에 최소한의 영향을 미치면서 이들을 얼마나 교란시킬 수 있는지 알기 위해서는 각 매개변수(또는 매개변수 세트)의 "중요도" 측정이 필요하다.
이하에서, 일부 기존 솔루션에 대한 소개가 제공된다.
문헌에 몇 가지 관련성 추정 방법이 제안되고 있다. 일부는 네트워크의 테일러(Taylor) 확장을 기반으로 한 조치를 제안한다. 예를 들어, "네트워크 프루닝을 위한 2차 도함수: 최선의 뇌 외과의사"(Babak Hassibi 외, 신경 정보 처리 시스템의 개선, 1993), "최선의 뇌 손상"(Yann LeCun 외, 신경 정보 처리 시스템의 개선, 1990), 및 "자원 효율적인 추론을 위한 컨볼루션 신경망의 프루닝"(Pavlo Molchanov 외; arXiv:1611.06440, 2016).
다른 연구에서, 일부 제안된 조치는 매개변수의 크기를 기반으로 한다. 예를 들어, "매우 깊은 신경망 가속을 위한 채널 프루닝"(Yihui He 외, 컴퓨터 시스템의 IEEE 국제 회의의 프로시딩, 2017), "효율적인 컨브넷(convet)을 위한 프루닝 필터"(Hao Li 외; arXiv:1608.08710, 2016) 및 "효율적인 신경망을 위한 가중치 및 연결 학습"(Song Han 외; arXiv: 1506.02626, 2015).
또한, "네트워크 트리밍: 효율적인 심층 아키텍처를 위한 데이터 기반 뉴런 프루닝 방법"에서의 제로 활성화 회수 (Hengyuan Hu 외; arXiv:1607.03250, 2016), "딥 컨볼루션 신경망의 구조적 프루닝"에서의 입자 필터링 기술(Sajid Anwar 외, 컴퓨팅 시스템의 이머징 기술에 대한 ACM 저널(JETC), 2017), "Nisp: 뉴런 중요도 점수 전파를 사용한 네트워크 정리"에서의 뉴런 중요도 점수 전파(NISP)와 같은 사용자 지정 조치 (Ruichi Yu 외의 컴퓨터 비전 및 패턴 인식에 대한 IEEE 회의의 프로시딩, 2018) 또는 "계층별 관련성 전파에 의한 비선형 분류기 결정에 대한 픽셀별 설명"에서의 계층 관련 전파 방법(Sebastian Bach 외, PLOS ONE, 10(7):e0130140, 2015)과 같은 다른 조치가 제안된다. .
병렬 작업으로 문헌은 확장 가능한 베이지안(Bayesian) 방법을 조사하고 신경망에 적용했다. 예를 들어, "변형 드롭아웃 및 로컬 재 매개변수화 트릭"(Diederik P. Kingma 외, arXiv: 1506.02557, 2015), "변형 드롭아웃이 심층 신경망을 희소화함"(Dmitry Molchanov 외; arXiv:1701.05369, 2017) 및 "딥 러닝을 위한 베이지안 압축"(Christos Louisos 외; arXiv:1705.08665, 2017).
본 명세서의 목표는 작업을 잘 수행하는 단일 신경망뿐만 아니라 이들의 전체 분포를 배우는 것이다. 따라서 학습 알고리즘은 평균 및 분산과 같은 각 가중치 매개변수에 대한 충분한 통계를 출력한다. 직접적인 결과로서, 가중치 매개변수의 2차 통계에서 직접 각 가중치 매개변수의 "관련성"을 도출할 수 있다. 다시 말해, 네트워크 출력 결정에 영향을 미치지 않고 그 매개변수를 평균값에서 크게 교란시킬 수 있기 때문에 매개변수의 분산이 높을수록 그 값의 관련성이 더 떨어진다.
이러한 상황의 관점에서, 크게 압축될 때 더욱 해로운 영향을 미치는, 압축된 표현으로의 신경망의 압축과 신경망의 예측 정확도 사이에 개선된 절충안을 제공하는 개념에 대한 필요성이 대두되고 있다.
본 발명의 일 측면은 신경망의 가중치 매개변수를 인코딩하기 위한 인코더이다. 인코더는 신경망의 복수의 가중치 매개변수를 획득하고 컨텍스트 종속 산술 코딩을 사용하여 가중치 매개변수를 인코딩한다. 이 때 인코더는 가중치 매개변수 또는 가중치 매개변수의 숫자 표현의 신택스 요소를 인코딩하기 위한 컨텍스트를 선택한다. 이 선택은 하나 이상의 이전에 인코딩된 가중치 매개변수 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 신택스 요소에 따라 수행된다. 그런 다음 인코더는 선택한 컨텍스트를 사용하여 가중치 매개변수 또는 가중치 매개변수의 신택스 요소를 인코딩한다.
가중치 매개변수는 예를 들어 wi 또는 qi 또는 li일 수 있고 신경망은 예를 들어 신경망의 양자화된 버전일 수 있다. 컨텍스트 종속 산술 코딩은 예를 들어 컨텍스트 적응 이진 산술 코딩 CABAC일 수 있으며, 여기서, 또한 일 예로서, 빈 값의 확률은 상이한 컨텍스트에 대해 결정되고, 예를 들어 각 빈은 컨텍스트와 연관된다.
인코더는 컨텍스트, 예를 들어, 가중 매개변수, 예를 들어, wi의 산술 인코딩일 수 있는 인코딩을 위해, 컨텍스트 인덱스 C를 갖는 컨텍스트일 수 있다. 또는 신택스 요소, 예를 들어, 제로 플래그(zero flag) "sig_flag" 또는 부호 플래그(sign flag) "sign_flag"는 산술적으로 인코딩될 수 있다. 신택스 요소는 또한 예를 들어 빈의 단항 시퀀스 또는 빈의 절단된 단항 시퀀스가 될 수 있는, 가중치 매개변수의 절대값의 인코딩된 표현 또는 가중치 매개변수의 절대값의 최대 유효 부분의 인코딩된 표현일 수 있다. 또한, 신택스 요소는 또한 가중치 매개변수, 예를 들어, 고정 길이 시퀀스의 절대값의 최소 유효 부분의 인코딩된 표현일 수 있다.
신택스 요소는 숫자 표현, 예를 들어 가중치 매개변수의 반올림 또는 양자화된 숫자 표현을 말한다.
그리고 인코더는 이전에 인코딩된 가중치 매개변수, 예를 들어 wi 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 신택스 요소에 따라 컨텍스트를 선택한다.
이전에 인코딩된 가중치 매개변수 또는 신택스 요소에 따라 컨텍스트로 인코딩하는 것은 신경망의 압축에 유익하다는 것이 밝혀졌다.
바람직한 실시 예에서, 인코더는 주어진 컨텍스트와 연관된 하나 이상의 이전에 인코딩된 빈 값에 의존하여 주어진 컨텍스트와 연관된 주어진 빈의 빈 값에 대한 확률을 결정한다.
여기에서 빈은 가중치 매개변수의 제로 플래그 또는 부호 플래그, 또는 가중치 매개변수의 절대값 표현의 비트를 나타낼 수 있다. 빈 값은 예를 들어 0과 1과 같은 이진값일 수 있다. 각 빈은 컨텍스트와 연관되지만, 하나 이상의 컨텍스트와 연관될 수도 있다.
컨텍스트 또는 컨텍스트들과 연관된 인코딩된 빈 값은 예를 들어 제로 플래그, 부호 플래그, 또는 이전에 인코딩된 가중치 매개변수의 절대값 표현의 하나 이상의 비트를 나타낼 수 있는 빈 값을 말할 수 있다.
이러한 요소의 확률은 이전에 인코딩된 가중치 매개변수로부터 결정될 수 있다고 밝혀졌다.
다른 바람직한 실시 예에서 인코더는 다음 방식 중 하나로 가중치 매개변수의 제로 플래그를 인코딩하기 위한 컨텍스트를 선택하며, 여기서 가중치 매개변수는 현재 인코딩된 가중치 매개변수를 말한다.
선택은 이전에 인코딩된 가중치 매개변수의 부호에 따라 수행될 수 있다.
선택은 적어도 세 개의 서로 다른 제로 플래그 컨텍스트에서 수행될 수 있다. 선택은 이전에 인코딩된 가중치 매개변수가 0과 같은지, 0보다 작은지 또는 0보다 큰지에 따라 세 가지 컨텍스트 중 하나를 선택한다.
선택은 현재 인코딩된 가중치 매개변수가 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열에서의 제 1 가중치 매개변수인지 여부에 따라 수행될 수 있다.
이에 대한 예로서 현재 인코딩된 가중치 매개변수의 x 인덱스가 가장 작은 x 인덱스에서 더 큰 x 인덱스로의 스캐닝 순서에 대해, 가능한 가장 낮은 값, 예를 들어 0을 취하는지 여부가 있다.
다른 예로 현재 인코딩된 가중치 매개변수의 x 인덱스가 가장 큰 x 인덱스에서 더 작은 x 인덱스로의 스캐닝 순서에 대해, 가능한 가장 큰 값을 취하는지 여부가 있다.
또 다른 예로 현재 인코딩된 가중치 매개변수의 y 인덱스가 가장 작은 y 인덱스에서 더 큰 y 인덱스로의 스캐닝 순서에 대해, 가능한 가장 낮은 값, 예를 들어 0을 취하는지 여부가 있다.
또 다른 예는 현재 인코딩된 가중치 매개변수의 y 인덱스가 가장 큰 y 인덱스에서 더 작은 y 인덱스로의 스캐닝 순서에 대해, 가능한 가장 큰 값을 취하는지 여부가 있다.
이 때, 예를 들어, 미리 결정된 컨텍스트는 가중치 매개변수의 행렬의 스캐닝 행 또는 스캐닝 열에서의 제 1 가중치 매개변수인 현재 인코딩된 가중치 매개변수에서 선택적으로 사용된다.
선택은 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 이미 인코딩되었는지 및/또는 이용 가능한지에 따라 수행될 수 있다.
이 경우, 선행은 예를 들어 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열의 스캔 방향을 나타낸다.
이전에 인코딩된 가중치 매개변수가 0이고 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 아직 인코딩되지 않았고 이용가능하지 않은 경우 제1 컨텍스트가 선택된 반면에, 이전에 인코딩된 가중치 매개변수가 0보다 작은 경우 제 2 컨텍스트가 선택되고 이전에 인코딩된 가중치 매개변수가 0보다 큰 경우 제 3 컨텍스트가 선택되게 선택을 수행하도록 선택 표준(선택 기준, selection criteria)이 조합될 수 있다.
즉, 이전에 인코딩된 가중치 매개변수가 0인 경우, 예를 들어 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열의 스캔 방향을 고려할 때, 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 아직 인코딩되지 않은 경우, 및 예를 들어, 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열의 스캔 방향을 고려할 때, 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 사용 불가능한 경우, 예를 들어 스캔 방향을 고려할 때 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수의 위치가 가중치 행렬 외부에 있는 경우, 가중치 매개변수, 예를 들어 현재 인코딩된 가중치 매개변수의 제로 플래그를 인코딩하기 위한 제 1 컨텍스트가 선택된다.
예를 들어, 현재 인코딩된 가중치 매개변수에 선행하는 이전에 인코딩된 가중치 매개변수가 0보다 작은 경우, 가중치 매개변수, 예를 들어 현재 인코딩된 가중치 매개변수의 제로 플래그 인코딩을 위한 제 2 컨텍스트가 선택된다.
마지막으로, 다시 예를 들어 현재 인코딩된 가중치 매개변수에 선행하는 이전에 인코딩된 가중치 매개변수가 0보다 큰 경우, 가중치 매개변수, 예를 들어 현재 인코딩된 가중치 매개변수의 제로 플래그의 인코딩을 위한 제 3 컨텍스트가 선택된다.
다시 말하지만, 인코딩은 산술 인코딩일 수 있으며, 제로 플래그는 예를 들어 신택스 요소 "sig_flag"이어야 한다.
위의 기준에 따라 제로 플래그에 대한 컨텍스트를 선택하면 압축이 향상될 수 있음이 밝혀졌다.
다른 바람직한 실시 예에서, 인코더는 숫자 값의 형태로 현재 인코딩된 가중치 매개변수의 위치에 대한 복수의 위치에서 복수의 가중치 매개변수의 상태를 나타내는 복수의 상태 식별자를 결정한다. 그런 다음 인코더는, 현재 인코딩된 가중치 매개변수의 컨텍스트를 나타내는 컨텍스트 인덱스 값을 얻기 위해서, 상태 식별자를 예를 들어, 선형으로 결합한다. 현재 인코딩된 가중치 매개변수는 예를 들어 현재 인코딩된 가중치 매개변수의 제로 플래그, 예를 들어, 신택스 요소 "sig_flag"일 수 있다. 예를 들어, 가능한 상태 식별자 값의 조합은 컨텍스트 값 또는 고유한 컨텍스트 값에 매핑된다.
상태 식별자는 예를 들면 sx-1,y, sx,y-1, sx-1,y-1이라고 할 수 있으며 예를 들어, 가용성, 인코딩 상태(즉, 이미 인코딩되었는지 여부), 0 상태(즉, 0과 같은지 아닌지), 부호, 크기(예를 들어, 절대값) 등과 같은 상태를 나타낼 수 있다.
조합의 예는 C = sx-1,y+3*sx,y-1+9*sx-1,y-1이다. 획득한 컨텍스트 인덱스는 예를 들어 C가 된다.
따라서, 바람직하게는 인코더는 위에서 상세히 설명된 바와 같이, 행에 얼마나 많은 제로 값, 예를 들어, 이전에 인코딩된 가중치 매개변수 및/또는 사용 불가능한 가중치 매개변수가 현재 인코딩된 가중치 매개변수에 인접하는지에 따라서, 컨텍스트를 선택한다.
사용 불가능한 가중치 매개변수는 lx-1,y, lx-2,y, lx-3,y라고 하고 상태 식별자 sx-1,y, sx-2,y, sx-3,y로 나타낸다.
이를 위해 더욱 바람직하게는, 복수의 가중치 매개변수가 행렬로 배열되고, 가중치 매개변수는 lx-1,y, lx-2,y 및 lx-3,y로 표시되고 행렬의 위치 (x-1,y), (x-2,y) 및 (x-3,y)에 각각 대응하고, 상태 식별자 sx-1,y, sx-2,y, sx-3,y로 나타낸다.
또한 복수의 가중치 매개변수가 행렬에 배열되고, 위치 (x,y)가 사용 불가능한 경우, 예를 들어 행렬 외부에 있거나 아직 인코딩되지 않은 경우, 또는 (x,y) 위치의 가중치 매개변수가 0인 경우, 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y가 제 1 값, 예를 들어 0과 같고, 위치 (x,y)의 가중치 매개변수가 0보다 작은 경우, 위치 (x,y)에 대한 상태 식별자 sx,y는 제 2 값, 예를 들어 1과 같고, 위치 (x,y)의 가중치 매개변수가 0보다 큰 경우 위치 (x,y)에 대한 상태 식별자 sx,y는 제 3 값, 예를 들어 2와 같다.
다르게, 복수의 가중치 매개변수는 행렬에 배열되고, 위치 (x,y)를 사용할 수 없는 경우, 예를 들어 행렬 외부에 있거나 아직 인코딩되지 않았거나 (x,y) 위치의 가중치 매개변수가 0인 경우 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 제1 값, 예를 들어, 0과 같고, 위치 (x,y)를 사용 가능한 경우, 예를 들어 행렬 내부에 있고 이미 인코딩되었으며 위치 (x,y)의 가중치 매개변수가 0이 아닌 경우, 위치 (x,y)에 대한 상태 식별자 sx,y는 제 2 값, 예를 들어, 1과 같다.
이러한 컨텍스트 모델링 방식은 광범위한 신경망에 적합하다는 것이 밝혀졌다.
또 다른 바람직한 실시 예에서, 인코더는 다시 위에서 상술한 바와 같이, 예를 들어 현재 인코딩된 가중치 매개변수로부터 고려하여 보면, 예를 들어 미리 결정된 방향으로 존재하는 가중치 벡터의 행렬에서, 가장 가까운 0이 아닌, 예를 들, 이전에 인코딩된, 가중치 매개변수의 거리에 따라, 컨텍스트를 선택한다. 이 때, 예를 들어, 가장 가까운 0이 아닌 가중치 매개변수의 거리를 결정할 때 미리 결정된 수의 가중치 매개변수가 고려된다.
방향은 예를 들어 비슷한 방식으로 왼쪽 또는 왼쪽으로 표시될 수 있다.
이전에 인코딩된 가장 가까운 0이 아닌 가중치 매개변수의 거리에 따라 컨텍스트를 선택함으로써 압축이 향상될 수 있다는 것이 밝혀졌다.
다른 바람직한 실시 예에서, 인코더는 현재 인코딩된 가중치 매개변수에 인접하는, 이전에 인코딩된 하나의 가중치 매개변수만을 고려하여, 제로 플래그, 예를 들어 가중치 매개변수의 신택스 요소 "sig_flag" 또는 부호 플래그, 예를 들어, 신택스 요소 "sign_flag"의 인코딩을 위한 컨텍스트를 선택한다.
이 때, 현재 인코딩된 가중치 매개변수는 예를 들어, 가중치 매개변수의 행렬에서 위치 (x,y)에 위치할 수 있으며, 이전에 인코딩된 가중치 매개변수는 예를 들어, 위치 (x-1,y) 또는 (x,y-1)에 위치될 수 있다. 이웃은 왼쪽 이웃, 상측 이웃, 직접 이웃 등을 의미할 수 있다.
이를 위해 바람직하게 인코더는 이전에 인코딩된 단일 가중치 매개변수에 대한 상태 식별자를 결정할 수 있으며, 여기서 이전에 인코딩된 단일 가중치 매개변수가 사용 불가능하거나 없거나 위치 (x,y)의 가중치 매개변수가 0인 경우, 상태 식별자는 제1 값, 예를 들어 0과 같다. 이전에 인코딩된 단일 가중치 매개변수가 0보다 작은 경우, 상태 식별자는 제 2 값, 예를 들어, 1과 같다. 이전에 인코딩된 단일 가중치 매개변수가 0보다 큰 경우, 상태 식별자는 제 3 값, 예를 들어, 2와 같다. 그런 다음 인코더는 상태 식별자에 따라, 예를 들어 세 가지 컨텍스트 중에서 컨텍스트를 선택한다.
여기에서 "사용 불가능함"은 예를 들어, 이전에 인코딩된 가중치 매개변수가 가중치 매개변수의 행렬 외부에 있거나 아직 인코딩되지 않았다는 것을 의미한다.
압축은 바람직하게는 현재 인코딩된 가중치 매개변수에 인접한 하나의 이전에 인코딩된 가중치 매개변수만을 고려하여 컨텍스트를 선택함으로써 개선될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 인코더는 이전에 인코딩된 가중치 매개변수가 0보다 작은지, 0과 같은지, 0보다 큰지에 따라 상이한 컨텍스트를 선택한다.
압축은 현재 인코딩된 가중치 매개변수에 대한 컨텍스트가 이전에 인코딩된 가중치 매개변수가 0보다 작은지, 0과 같은지 또는 0보다 큰지에 따라 달라질 때 개선될 수 있음을 할 수 있다.
다른 바람직한 실시 예에서, 이전에 인코딩된 가중치 매개변수가 사용 불가능한 경우 인코더는 이전에 인코딩된 가중치 매개변수의 0 값과 연관된 컨텍스트를 선택한다.
여기에서 "사용 불가능함"은 예를 들어 이전에 인코딩된 가중치 매개변수가 가중치 매개변수의 행렬 외부에 있거나 아직 인코딩되지 않았음을 의미한다.
압축은 0 값과 관련된 컨텍스트가 이전에 인코딩된 가중치 매개변수가 사용 가능한지 여부에 따라 달라질 때 개선될 수 있음이 밝혀졌다.
다른 바람직한 실시 예에서, 인코더는 가중치 매개변수의 절대값, 또는 그것의 최대 유효 부분을 나타내는, 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 인코딩한다.
(절단된) 단항 코드의 이진 값을 인코딩하기 위해 인코더를 사용하면 고유의 단순성과 견고성을 활용하여 그러한 방식으로 작동하는 신경망에 대해 본 발명을 사용할 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 인코더는 절단된 단항 코드의 이진 값을 산술적으로 인코딩하고, 여기에서 절단된 단항 코드의 이진 값은 가중치 매개변수의 절대값이 이진 값의 비트 위치와 관련된 각각의 임계값보다 큰지 여부를 설명한다. 이 때, 인코더는 주어진 가중치 매개변수와 관련된 절단된 단항 코드를 제공하여 절단된 단항 코드가 이진 값, 예를 들어, 0으로 종료하도록 하고, 이는 주어진 가중치 매개변수가 미리 결정된 값보다 작은 경우 가중치 매개변수가 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크지 않다는 것을 나타낸다. 또한 인코더는 다른 주어진 가중치 매개변수와 관련된 절단된 단항 코드를 제공하여 절단된 단항 코드가 이진 값, 예를 들어, 1로 종료하도록 하며, 이는 주어진 가중치 매개변수가 미리 결정된 값보다 작지 않거나 대안적으로 더 크거나 같아서 절단된 단항 코드가 종료 이진 값을 포함하지 않지만 그 길이가 제한되도록 한 경우에, 가중치 매개변수가 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크다는 것을 나타낸다. 이에 의해, 단항 코드가 미리 결정된 최대 허용 길이에 이르고/이르거나 현재 비트 위치 또는 다음 비트 위치와 관련된 임계값, 예를 들어 X가 미리 결정된 임계값, 예를 들어, abs_max 보다 크거나 같은 경우, 예를 들어 단항 코드의 종료 이진 값이 선택적으로 생략되거나 추가 이진 값의 제공이 선택적으로 생략된다.
인코더와 디코더 측에서 최대 절대값 abs_max를 알고 있다면, 전송되는 다음 abs_level_greater_X에 대해 X >= abs_max가 유지될 때, abs_level_greater_X 신택스 요소의 인코딩이 종료될 수 있기 때문에 압축 효율을 높일 수 있다는 것이 밝혀졌다.
다른 바람직한 실시 예에서, 인코더는 이는 가중치 매개변수의 절대값이 각각의 이진 값의 개별 비트 위치와 연관된 개별 임계값보다 큰지 여부를 설명하는, 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 인코딩한다. 거기에서 인접한 비트 위치와 관련된 임계값 사이의 차이는 예를 들어 제 1 비트 위치 범위에서 X를 1씩 증가시키는 것으로, 제 1 비트 위치 범위에서 일정하고, 예를 들어 비트 위치의 제 2 범위에서 X=X+2k에 따라 X를 증가시키는 것으로, 제 1 비트 위치범위 이후의 제 2 비트 위치 범위에서 기하급수적으로 증가하고, 여기서 k는 비트 위치가 증가함에 따라 1만큼 증가한다.
본 발명의 일 측면에 의해 대응하는 단항 코드에 대해 압축이 개선될 수 있다는 것이 밝혀졌다.
다른 바람직한 실시 예에서, 인접한 비트 위치와 관련된 임계값 간의 차이는 제 2 비트 위치 범위 이후의 제 3 비트 위치 범위에서 일정한데, 예를 들어 비트 위치의 제 2 범위에서의 마지막에서 두번째의 임계값과 마지막 임계값 사이의 차이와 같다.
인접한 비트 위치와 관련된 임계값 간의 일정한 차이로 압축 효율이 향상될 수 있음이 밝혀졌다.
다른 바람직한 실시 예에서, 인코더는 예를 들어, 비트 위치 X에 따라, 단항 코드 또는 절단된 단항 코드의 상이한 위치에서 비트의 인코딩을 위해 상이한 컨텍스트를 선택하고, 여기서, 예를 들어, 비트 위치 X의 비트는 인코딩될 가중치 매개변수의 절대값이 X보다 큰지 여부를 나타낸다.
비트 위치에 따라 컨텍스트를 선택함으로써 압축이 향상될 수 있음이 밝혀졌었다.
다른 바람직한 실시 예에서, 인코더는 현재 인코딩된 가중치 매개변수의 부호 따라, 예를 들어, 부호 플래그, 예를 들어 신택스 요소 "sign_flag"에 따라, 단항 코드 또는 절단된 단항 코드의 주어진 비트 위치에서 비트의 인코딩을 위해 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택한다.
또 다른 가능성은 제 1 범위의 하나 이상의 비트 위치에서, 예를 들어 단항 코드 또는 절단된 단항 코드의 미리 결정된 수(예: X')보다 작은 X를 갖는 비트 위치에 대해, 현재 인코딩된 매개변수의 부호에 따라, 예를 들어 부호 플래그, 예를 들어 신택스 요소 "sign_flag"에 따라, 및 선택적으로 또한 비트 위치에 따라, 인코더가 비트 인코딩을 위해 비트 위치당 두 개의 가능한 컨텍스트 중에서 컨텍스트를 선택하는 것이다. 인코더는 비트 위치 X의 경우, 제 2 범위의 하나 이상의 비트 위치에서 비트의 인코딩을 위한 컨텍스트를 선택하며, 여기서 X는 현재 인코딩된 가중치 매개변수의 부호와 무관하고 오직 비트 위치 X에만 의존하는, 단항 코드 또는 절단된 단항 코드의 미리 결정된 수, 예를 들어, X'보다 크거나 같다.
비트 인코딩을 위해 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택하는 것도 압축 효율성을 향상시킬 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 인코더는 미리 결정된 것을 사용하여, 예를 들어 고정, 컨텍스트 또는 산술 코딩의 우회 모드 사용하여, 단항 코드 또는 절단된 단항 코드의 제 2 범위의 하나 이상의 비트 위치에 있는 비트, 예를 들어 abs_level_greater_X 플래그를 인코딩하고, 여기서 X는 미리 정의된 숫자 X'보다 크거나 같다.
추가의 바람직한 실시 예에서, 인코더는 미리 결정된 것을 사용하여, 예를 들어 고정, 컨텍스트 또는 산술 코딩의 우회 모드 사용하여, 가중치 매개변수의 절대값의 고정 비트 나머지, 예를 들어 가중치 매개변수의 절대값의 최소 유효 부분을 인코딩한다.
특정 범위의 비트 위치 또는 고정된 비트 나머지에 대해 고정된 바이패스 모드 컨텍스트를 사용함으로써 압축이 개선될 수 있음이 밝혀졌다.
추가의 바람직한 실시 예에서, 인코더는 복수의 이진 값, 예를 들어 abs_level_greater_X을 산술적으로 인코딩하고, 여기서 X는 예를 들어, 가중치 매개변수의 절대값을 나타내는 단항 코드 또는 절단된 단항 코드, 또는 이들의 최대 유효 부분의 1의 단계 또는 1 보다 큰 단계 또는 증가 단계에서 증가할 수 있다. 단항 코드의 이진 값을 인코딩하면 압축 효율성도 증가할 수 있음이 밝혀졌다.
추가의 바람직한 실시 예에서, 단항 코드 또는 절단된 단항 코드의 이진 값, 예를 들어, abs_level_greater_X은 가중치 매개변수, 예를 들어, 현재 인코딩된 가중치 매개변수의 절대값이 X보다 큰지 여부를 나타낸다.
단항 코드가 이러한 방식으로 구성되면, 압축이 특히 효율적일 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 인코더는 X가 미리 결정된 값, 예를 들어, X'보다 작은 경우, 예를 들어 가중치 매개변수의 부호에 따라, 두 가지 가능한 컨텍스트 중에서 고려 중인 이진 값 abs_level_greater_X의 인코딩을 위한 컨텍스트를 선택하고, X가 미리 결정된 값보다 크거나 같은 경우 부호와 독립적이며 비트 위치에 의존하지 않을 수 있는, 비트 위치와 관련된 미리 결정된 컨텍스트를 사용한다.
이러한 방식으로 컨텍스트를 선택하는 것도 압축을 개선할 수 있다는 것이 밝혀졌다.
다른 바람직한 실시 예에서, 가중치 매개변수는 적어도 논리적으로 행렬의 행과 열로 구성된다. 예를 들어, 주어진 계층의 주어진 i 번째 뉴런의 서로 다른 입력 신호와 관련된 가중치 값은 i 번째 행에 배열될 수 있으며, 이 때 주어진 계층의 j번째 입력 신호와 연관된 가중치 값은 j번째 열에 배열될 수 있거나, 예를 들어, 주어진 계층의 주어진 i번째 뉴런의 상이한 입력 신호와 연관된 가중치 값은 i번째 열에 배열될 수 있고, 상기 주어진 계층의 j번째 입력 신호와 연관된 가중치 값은 j번째 행에 배열될 수 있다.
따라서 가중치 매개변수가 인코딩되는 순서는 예를 들어 제 1와 제 2 행이나 열 모두에서 동일한 방향으로, 또는 제 1 및 제 2 행 또는 열에서 반대 방향으로, 행렬의 제 1 행 또는 열을 따른 다음 행렬의 후속 제 2 행 또는 열을 따른다.
행렬이 이러한 방식으로 구성되는 경우, 본 발명의 측면에 따른 압축이 특히 효율적이라는 것이 밝혀졌다.
본 발명의 다른 측면에서 인코더에 대해 상술된 것과 동일한 개념 및 원리가 디코더에도 적용될 수 있고, 따라서 이에 대한 설명은 반복하지 않았다. 디코딩은 그에 따라 압축 해제와 자연스럽게 연관된다.
특히, 본 발명의 다른 측면은 신경망의 가중치 매개변수를 디코딩하기 위한 디코더이다. 디코더는 신경망의 가중치 매개변수를 나타내는 복수의 비트를 획득하고, 컨텍스트 종속 산술 코딩을 사용하여 가중치 매개변수를 디코딩한다. 이 때 디코더가 가중치 매개변수를 디코딩하기 위한 컨텍스트 또는 가중치 매개변수의 숫자 표현의 신택스 요소를 선택한다. 선택은 하나 이상의 이전에 디코딩된 가중치 매개변수 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 신택스 요소에 따라 수행된다. 그런 다음 디코더는 선택한 컨텍스트를 사용하여 가중치 매개변수 또는 가중치 매개변수의 신택스 요소를 디코딩한다.
가중치 매개변수는 예를 들어 wi 또는 qi 또는 li일 수 있고, 신경망은 예를 들어 양자화된 버전의 신경망일 수 있다. 컨텍스트 종속 산술 코딩은 예를 들어 컨텍스트 적응 이진 산술 코딩 CABAC일 수 있고, 여기서, 또한 예로서, 빈 값의 확률은 상이한 컨텍스트에 대해 결정되고, 예를 들어, 각 빈은 컨텍스트와 연관된다.
디코더는 가중치 매개변수, 예를 들어 wi의 산술 디코딩일 수 있는 디코딩을 위한 컨텍스트 인덱스 C를 갖는 컨텍스트와 같은 컨텍스트를 선택한다. 또는 신택스 요소, 예를 들어, 제로 플래그 "sig_flag" 또는 부호 플래그 "sign_flag"는 산술적으로 디코딩될 수 있다. 신택스 요소는 또한 가중치 매개변수의 절대값의 디코딩된 표현 또는 가중치 매개변수의 절대값의 최대 유효 부분의 디코딩된 표현일 수 있으며, 이는 예를 들어 빈의 단항 시퀀스 또는 빈의 절단된 단항 시퀀스일 수 있다. 또한, 신택스 요소는 또한 가중치 매개변수, 예를 들어 고정 길이 시퀀스의 절대값의 최소 유효 부분의 디코딩된 표현일 수 있다.
신택스 요소는 가중치 매개변수의 숫자 표현, 예를 들어, 반올림 또는 양자화된 숫자 표현을 말한다.
그리고 디코더는 이전에 디코딩된 가중치 매개변수, 예를 들어, wi 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 신택스 요소에 따라 컨텍스트를 선택한다.
이전에 디코딩된 가중치 매개변수 또는 신택스 요소에 따라 컨텍스트를 사용하여 디코딩하는 것이 신경망의 압축에 바람직하다는 것이 밝혀졌다.
바람직한 실시 예에서, 디코더는 주어진 컨텍스트와 연관된 하나 이상의 이전에 디코딩된 빈 값에 의존하여 주어진 컨텍스트와 연관된 주어진 빈의 빈 값에 대한 확률을 결정한다.
그 때 빈은 예를 들어 가중치 매개변수의 제로 플래그 또는 부호 플래그, 또는 가중치 매개변수의 절대값 표현의 비트를 나타낼 수 있다. 빈 값은 예를 들어 0과 1과 같은 이진일 수 있다. 각 빈은 컨텍스트와 연관되지만, 하나 이상의 컨텍스트와 연관될 수도 있다.
컨텍스트 또는 컨텍스트와 관련된 디코딩된 빈 값은 예를 들어 빈의 값을 말할 수 있의며, 이것은 제로 플래그, 부호 플래그, 또는 이전에 디코딩된 가중치 매개변수의 절대값 표현의 하나 이상의 비트를 나타낼 수 있다.
이러한 요소의 확률은 이전에 디코딩된 가중치 매개변수로부터 결정될 수 있음이 밝혀졌다.
다른 바람직한 실시 예에서, 디코더는 다음 방식 중 하나로 가중치 매개변수의 제로 플래그를 디코딩하기 위한 컨텍스트를 선택하며, 여기서 가중치 매개변수는 현재 디코딩된 가중치 매개변수를 말한다.
선택은 이전에 디코딩된 가중치 매개변수의 부호에 따라 수행될 수 있다.
선택은 적어도 세 개의 서로 다른 제로 플래그 컨텍스트에서 수행될 수 있다. 선택은 이전에 디코딩된 가중치 매개변수가 0과 같은지, 0보다 작은지 또는 0보다 큰지에 따라 세 가지 컨텍스트 중 하나를 선택한다.
선택은 현재 디코딩된 가중치 매개변수가 가중치 매개변수의 행렬의 스캐닝 행 또는 스캐닝 열의 제 1 가중치 매개변수인지 여부에 따라 수행될 수 있다.
이에 대한 예는 현재 디코딩된 가중치 매개변수의 x 인덱스가 가장 작은 x 인덱스에서 더 큰 x 인덱스로의 스캐닝 순서에 대해 가능한 가장 낮은 값, 예를 들어, 0을 취하는지 여부이다.
또 다른 예는 현재 디코딩된 가중치 매개변수의 x 인덱스가 가장 큰 x 인덱스에서 더 작은 x 인덱스로의 스캐닝 순서에 대해 가능한 가장 큰 값을 취하는지 여부이다.
다른 예는 현재 디코딩된 가중치 매개변수의 y 인덱스가 가장 작은 y 인덱스에서 더 큰 y 인덱스로의 스캐닝 순서에 대해 가능한 가장 낮은 값, 예를 들어 0을 취하는지 여부이다.
또 다른 예는 현재 디코딩된 가중치 매개변수의 y 인덱스가 가장 큰 y 인덱스에서 더 작은 y 인덱스로의 스캐닝 순서에 대해 가능한 가장 큰 값을 취하는지 여부이다.
여기에서, 예를 들어, 미리 결정된 컨텍스트는 가중치 매개변수의 행렬의 스캐닝 행 또는 스캐닝 열의 제 1 가중치 매개변수인 현재 디코딩된 가중치 매개변수에서 선택적으로 사용된다.
선택은 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 이미 디코딩되었는지 및/또는 이용 가능한지에 따라 수행될 수 있다.
이 경우, 선행은 예를 들어 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열의 스캔 방향을 나타낸다.
선택 기준은, 이전에 디코딩된 가중치 매개변수가 0이고 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 아직 디코딩되지 않았고 이용가능하지 않은 경우 제1 컨텍스트가 선택되는 반면, 이전에 디코딩된 가중치 매개변수가 0보다 작은 경우 제 2 컨텍스트가 선택되고, 이전에 디코딩된 가중치 매개변수가 0보다 크면 제3 컨텍스트가 선택되게 선택을 수행하도록 조합될 수도 있다.
즉, 가중치 매개변수, 예를 들어 현재 디코딩된 가중치 매개변수의 제로 플래그를 디코딩하기 위한 제 1 컨텍스트는, 이전에 디코딩된 가중치 매개변수가 0인 경우에, 및 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열의 스캔 방향을 고려할 때 현재 복호화된 가중치 매개변수에 선행하는 가중치 매개변수가 아직 복호화되지 않은 경우에, 및 가중치 매개변수 행렬의 스캐닝 행 또는 스캐닝 열의 스캔 방향을 고려할 때, 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수를 사용할 수 없을 때, 예를 들어 스캔 방향을 고려할 때 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수의 위치가 가중치 행렬 외부에 있는 경우에, 선택된다.
가중치 매개변수, 예를 들어 현재 디코딩된 가중치 매개변수의 제로 플래그의 디코딩을 위한 제 2 컨텍스트는, 현재 디코딩된 가중치 매개변수에 선행하는 이전에 디코딩된 가중치 매개변수가 0보다 작은 경우에, 선택된다.
마지막으로, 가중치 매개변수, 예를 들어, 현재 디코딩된 가중치 매개변수의 제로 플래그의 디코딩을 위한 제 3 컨텍스트는, 현재 디코딩된 가중치 매개변수에 다시 선행하는 이전에 디코딩된 가중치 매개변수가 0보다 큰 경우에, 선택된다.
다시 말하지만, 디코딩은 산술 디코딩일 수 있으며, 제로 플래그는 예를 들어 신택스 요소 "sig_flag"이어야 한다.
상기 기준에 따라 제로 플래그에 대한 컨텍스트를 선택하게 되면 압축이 향상될 수 있음이 밝혀졌다.
다른 바람직한 실시 예에서, 디코더는 숫자 값의 형태로 현재 디코딩된 가중치 매개변수의 위치에 대한 복수의 위치에서 복수의 가중치 매개변수의 상태를 나타내는 복수의 상태 식별자를 결정한다. 그런 다음 디코더는 현재 디코딩된 가중치 매개변수의 컨텍스트를 나타내는 컨텍스트 인덱스 값을 얻기 위해서, 상태 식별자를 선형으로 결합한다. 현재 디코딩된 가중치 매개변수는 예를 들어 현재 디코딩된 가중치 매개변수의 제로 플래그(예: 신택스 요소 "sig_flag")일 수 있다. 예를 들어, 각 가능한 상태 식별자 값의 조합이 컨텍스트 값 또는 고유한 컨텍스트 값에 매핑된다.
상태 식별자는 예를 들어, sx-1,y, sx,y-1, sx-1,y-1라고 할 수 있으며 상태를 가용성, 디코딩 상태(즉, 이미 디코딩되었는지 여부), 제로 상태(즉, 0과 같거나 아님), 부호, 크기(예: 절대값) 등으로 나타낼 수 있다.
조합의 예는 C = sx-1,y+3*sx,y-1+9*sx-1,y-1에 따른다. 획득한 컨텍스트 인덱스는 예를 들어 C가 된다.
이를 위해 바람직하게 디코더는 위에서 설명한 바와 같이, 행에서 얼마나 많은 0 값, 예를 들어, 이전에 디코딩된 가중치 매개변수 및/또는 이용 불가능한 가중치 매개변수가 현재 디코딩된 가중치 매개변수에 인접하는지에 따라, 컨텍스트를 선택한다.
사용 불가능한 가중치 매개변수는 lx-1,y, lx-2,y, lx-3,y라고 하고 상태 식별자 sx-1,y, sx-2,y, sx-3,y로 나타낸다.
이를 위해 더욱 바람직하게 복수의 가중치 매개변수가 행렬로 배열되고, 가중치 매개변수는 lx-1,y, lx-2,y 및 lx-3,y로 표시되고 행렬의 위치 (x-1,y), (x-2,y) 및 (x-3,y)에 각각 대응하고, 상태 식별자 sx-1,y, sx-2,y, sx-3,y로 표시된다.
복수의 가중치 매개변수가 행렬로 배열되고, 위치 (x,y)를 사용할 수 없는 경우, 예를 들어 행렬 외부에 있거나 아직 디코딩되지 않았거나 (x,y) 위치의 가중치 매개변수가 0인 경우, 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 제 1 값, 예를 들어, 0과 같고, 위치 (x,y)의 가중치 매개변수가 0보다 작은 경우 위치 (x,y)에 대한 상태 식별자 sx,y는 제 2 값, 예를 들어, 1과 같고, 위치 (x,y)의 가중치 매개변수가 0보다 큰 경우 위치 (x,y)에 대한 상태 식별자 sx,y는 제 3 값, 예를 들어, 2와 같다.
대안적으로, 복수의 가중치 매개변수는 행렬로 배열되고, 위치 (x,y)를 사용할 수 없는 경우, 예를 들어 행렬 외부에 있거나 아직 디코딩되지 않았거나 (x,y) 위치의 가중치 매개변수가 0인 경우, 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 제 1 값, 예를 들어, 0과 같고, 위치 (x,y)를 사용할 수 있는 경우, 예를 들어 행렬 내부에 있고 이미 디코딩되었으며 (x,y) 위치의 가중치 매개변수가 0이 아닌 경우 위치 (x,y)에 대한 상태 식별자 sx,y는 제 2 값, 예를 들어, 1과 같다.
이러한 컨텍스트 모델링 방식은 광범위한 신경망에 적합하다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 현재 디코딩된 가중치 매개변수에서 볼 때 고려될 때, 디코더는 위에서 설명한 대로 예를 들어 미리 결정된 방향으로 존재하는 가중치 벡터의 행렬에서, 가장 가까운 0이 아닌, 예를 들어, 이전에 디코딩된 가중치 매개변수의 거리에 따라, 컨텍스트를 다시 선택한다. 이 때, 예를 들어, 가장 가까운 0이 아닌 가중치 매개변수의 거리를 결정할 때 미리 결정된 수의 가중치 매개변수가 고려된다.
방향은 예를 들어 비슷한 방식으로 왼쪽 또는 좌측으로 표시될 수 있다.
이전에 디코딩된 가장 가까운 0이 아닌 가중치 매개변수의 거리에 따라 컨텍스트를 선택함으로써 압축이 개선될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 현재 디코딩된 가중치 매개변수에 인접한 하나의 이전에 디코딩된 가중치 매개변수만을 고려하여, 가중치 매개변수의 제로 플래그, 예를 들어, 신택스 요소 "sig_flag" 또는 부호 플래그, 예를 들어, 신택스 요소 "sign_flag"의 디코딩을 위한 컨텍스트를 선택한다.
이 때 현재 디코딩된 가중치 매개변수는 가중치 매개변수의 행렬에서 위치 (x,y)에 위치할 수 있으며, 이전에 디코딩된 가중치 매개변수는 (x-1,y) 또는 (x,y-1) 위치에 위치할 수 있다. 이웃은 왼쪽 이웃, 상측 이웃, 직접 이웃 등을 의미한다.
이를 위해, 바람직하게 디코더는 이전에 디코딩된 단일 가중치 매개변수에 대한 상태 식별자를 결정할 수 있으며, 여기서 이전에 디코딩된 단일 가중치 매개변수를 사용할 수 없거나 위치 (x,y)의 가중치 매개변수가 0인 경우, 상태 식별자는 제 1 값, 예를 들어, 0과 동일하다. 이전에 디코딩된 단일 가중치 매개변수가 0보다 작은 경우, 상태 식별자는 제 2 값, 예를 들어, 1과 같다. 그리고 이전에 디코딩된 단일 가중치 매개변수가 0보다 큰 경우, 상태 식별자는 제 3 값, 예를 들어, 2와 같다. 그런 다음 디코더는 상태 식별자에 따라 세 가지 컨텍스트 중 컨텍스트를 선택한다.
이 때 "사용 불가능함"은 이전에 디코딩된 가중치 매개변수가 가중치 매개변수의 행렬 외부에 위치하거나 아직 디코딩되지 않았음을 의미한다.
현재 디코딩된 가중치 매개변수에 바람직하게 인접하는 하나의 이전에 디코딩된 가중치 매개변수만을 고려하여 컨텍스트를 선택함으로써 압축이 개선될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 이전에 디코딩된 가중치 매개변수가 0보다 작은지, 0과 같은지, 0보다 큰지에 따라 상이한 컨텍스트를 선택한다.
현재 디코딩된 가중치 매개변수에 대한 컨텍스트가 이전에 디코딩된 가중치 매개변수가 0보다 작은지, 같은지 또는 큰지 여부에 의존하는 경우 압축이 개선될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 이전에 디코딩된 가중치 매개변수를 사용할 수 없는 경우 이전에 디코딩된 가중치 매개변수의 0 값과 연관된 컨텍스트를 선택한다.
여기서 "사용 불가능함"은 이전에 디코딩된 가중치 매개변수가 가중치 매개변수의 행렬 외부에 있거나 아직 디코딩되지 않은 것을 의미한다.
압축은 0 값과 관련된 컨텍스트가 이전에 디코딩된 가중치 매개변수를 사용할 수 있는지 여부에 따라 좌우될 때 개선될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 가중치 매개변수의 절대값 또는 그 최대 유효 부분을 나타내는 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 디코딩한다.
(절단된) 단항 코드의 이진 값을 디코딩하는 디코더를 사용하게 되면 고유의 단순성과 견고성을 활용하여 그와 같이 작동하는 신경망에 대해 본 발명의 일 측면을 사용하는 것을 가능하게 한다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 절단된 단항 코드의 이진 값을 산술적으로 디코딩하고, 여기에서 절단된 단항 코드의 이진 값은 가중치 매개변수의 절대값이 이진 값의 비트 위치와 관련된 각각의 임계값보다 큰지 여부를 설명한다. 이 때 디코더는 주어진 가중치 매개변수와 관련된 절단된 단항 코드를 제공하므로 절단된 단항 코드는 이진 값, 예를 들어 0으로 종료하게 되고, 이는 주어진 가중치 매개변수가 미리 결정된 값보다 작은 경우, 가중치 매개변수가 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크지 않음을 나타낸다. 또한 디코더는 다른 주어진 가중치 매개변수와 관련된 절단된 단항 코드를 제공하므로 절단된 단항 코드가 이진 값, 예를 들어, 1로 종료하게 되고, 이는 주어진 가중치 매개변수가 미리 결정된 값보다 작지 않거나 대안적으로 크거나 같아서, 절단된 단항 코드가 종료 이진 값을 포함하지 않고 그 길이가 제한되는 경우, 가중치 매개변수가 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크다는 것을 나타낸다. 이에 의해, 단항 코드가 미리 결정된 최대 허용 길이에 도달하고/하거나 현재 비트 위치 또는 다음 비트 위치와 관련된 임계값, 예를 들어, X가 미리 결정된 임계값, 예를 들어, abs_max 이상인 경우, 단항 코드의 종료 이진 값이 선택적으로 생략되거나, 추가 이진 값의 제공이 선택적으로 생략된다.
최대 절대값 abs_max가 디코더와 디코더 측에서 알려진 경우, 전송되는 다음 abs_level_greater_X에 대해, X >= abs_max가 유지될 때, abs_level_greater_X 신택스 요소의 디코딩이 종료될 수 있기 때문에, 압축 효율이 증가될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 가중치 매개변수의 절대값이 개별 이진 값의 개별 비트 위치와 연관된 개별 임계값보다 큰지 여부를 설명하는 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 디코딩한다. 이 때 인접한 비트 위치와 관련된 임계값 사이의 차이는 예를 들어, 제 1 비트 위치 범위에서 X를 1씩 증가시켜, 제 1 비트 위치 범위에서 일정하고, 예를 들어, 제 2 비트 위치 범위에서 X=X+2k에 따라 X를 증가시켜, 비트 위치의 제1 범위 다음에 오는 비트 위치의 제2 범위에서 기하급수적으로 증가하며, 여기서 k는 비트 위치가 증가함에 따라 1만큼 증가한다.
본 발명의 일 측면에 의해 대응하는 단항 코드에 대해 압축이 개선될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 제 2 비트 위치 범위 이후의 제 3 비트 위치 범위에서, 인접 비트 위치와 관련된 임계값 간의 차이는 일정한데, 예를 들어, 제 2 비트 위치 범위에서의 마지막에서 두번째 임계값과 마지막 임계값 사이의 차이와 같다.
인접한 비트 위치와 관련된 임계값 간의 일정한 차이로 압축 효율이 향상될 수 있음이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 예를 들어 비트 위치 X에 따라, 단항 코드 또는 절단된 단항 코드의 상이한 위치에서 비트의 디코딩을 위해 상이한 컨텍스트를 선택하고, 여기서, 예를 들어, 비트 위치 X의 비트는 디코딩될 가중치 매개변수의 절대값이 X보다 큰지 여부를 나타낸다.
비트 위치에 따라 컨텍스트를 선택함으로써 압축이 향상될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 현재 디코딩된 가중치 매개변수의 부호에 따라, 예를 들어 부호 플래그, 예를 들어 신택스 요소 "sign_flag"에 따라, 단항 코드 또는 절단된 단항 코드의 주어진 비트 위치, 예를 들어, 비트 위치 X에서 비트의 디코딩을 위해 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택한다.
또 다른 가능성은 제 1 범위의 하나 이상의 비트 위치에서, 예를 들어 단항 코드 또는 절단된 단항 코드의 미리 결정된 수(예: X')보다 작은 X를 갖는 비트 위치에 대해, 현재 디코딩된 매개변수의 부호에 따라, 예를 들어 부호 플래그, 예를 들어 신택스 요소 "sign_flag"에 따라, 및 선택적으로 또한 비트 위치에 따라, 디코더가 비트 디코딩을 위해 비트 위치당 두 개의 가능한 컨텍스트 중에서 컨텍스트를 선택하는 것이다. 디코더는 비트 위치 X의 경우, 제 2 범위의 하나 이상의 비트 위치에서 비트의 디코딩을 위한 컨텍스트를 선택하며, 여기서 X는 현재 디코딩된 가중치 매개변수의 부호와 무관하고 오직 비트 위치 X에만 의존하는, 단항 코드 또는 절단된 단항 코드의 미리 결정된 수, 예를 들어, X'보다 크거나 같다.
비트 디코딩을 위해 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택하는 것도 압축 효율성을 향상시킬 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 미리 결정된 것을 사용하여, 예를 들어 고정, 컨텍스트 또는 산술 코딩의 우회 모드 사용하여, 단항 코드 또는 절단된 단항 코드의 제 2 범위의 하나 이상의 비트 위치에 있는 비트, 예를 들어 abs_level_greater_X 플래그를 디코딩하고, 여기서 X는 미리 정의된 숫자 X'보다 크거나 같다.
추가의 바람직한 실시 예에서, 디코더는 미리 결정된 것을 사용하여, 예를 들어 고정, 컨텍스트 또는 산술 코딩의 우회 모드 사용하여, 가중치 매개변수의 절대값의 고정 비트 나머지, 예를 들어 가중치 매개변수의 절대값의 최소 유효 부분을 디코딩한다.
특정 범위의 비트 위치 또는 고정된 비트 나머지에 대해 고정된 바이패스 모드 컨텍스트를 사용함으로써 압축이 개선될 수 있음이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 복수의 이진 값, 예를 들어 abs_level_greater_X을 산술적으로 인코딩하고, 여기서 X는 예를 들어, 가중치 매개변수의 절대값을 나타내는 단항 코드 또는 절단된 단항 코드, 또는 이들의 최대 유효 부분의 1의 단계 또는 1 보다 큰 단계 또는 증가 단계에서 증가할 수 있다. 단항 코드의 이진 값을 디코딩하면 압축 효율성도 증가할 수 있음이 밝혀졌다.
추가의 바람직한 실시 예에서, 단항 코드 또는 절단된 단항 코드의 이진 값, 예를 들어, abs_level_greater_X은 가중치 매개변수, 예를 들어, 현재 디코딩된 가중치 매개변수의 절대값이 X보다 큰지 여부를 나타낸다.
단항 코드가 이러한 방식으로 구성되면, 압축이 특히 효율적일 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 디코더는 X가 미리 결정된 값, 예를 들어, X'보다 작은 경우, 예를 들어 가중치 매개변수의 부호에 따라, 두 가지 가능한 컨텍스트 중에서 고려 중인 이진 값 abs_level_greater_X의 디코딩을 위한 컨텍스트를 선택하고, X가 미리 결정된 값보다 크거나 같은 경우 부호와 독립적이며 비트 위치에 의존하지 않을 수 있는, 비트 위치와 관련된 미리 결정된 컨텍스트를 사용한다.
이러한 방식으로 컨텍스트를 선택하는 것도 압축을 개선할 수 있다는 것이 밝혀졌다.
다른 바람직한 실시 예에서, 가중치 매개변수는 적어도 논리적으로 행렬의 행과 열로 구성된다. 예를 들어, 주어진 계층의 주어진 i 번째 뉴런의 서로 다른 입력 신호와 관련된 가중치 값은 i 번째 행에 배열될 수 있으며, 이 때 주어진 계층의 j번째 입력 신호와 연관된 가중치 값은 j번째 열에 배열될 수 있거나, 예를 들어, 주어진 계층의 주어진 i번째 뉴런의 상이한 입력 신호와 연관된 가중치 값은 i번째 열에 배열될 수 있고, 상기 주어진 계층의 j번째 입력 신호와 연관된 가중치 값은 j번째 행에 배열될 수 있다.
따라서 가중치 매개변수가 디코딩되는 순서는 예를 들어 제 1와 제 2 행이나 열 모두에서 동일한 방향으로, 또는 제 1 및 제 2 행 또는 열에서 반대 방향으로, 행렬의 제 1 행 또는 열을 따른 다음 행렬의 후속 제 2 행 또는 열을 따른다.
행렬이 이러한 방식으로 구성되는 경우, 본 발명의 측면에 따른 압축이 특히 효율적이라는 것이 밝혀졌다.
본 발명의 다른 측면에서, 신경망의 가중치 매개변수를 양자화하기 위한 양자화가 설명된다. 양자화기는 신경망의 복수의 입력 가중치 매개변수, 예를 들어, wi를 획득하고, 왜곡 측정값 Di,k를 사용하여 양자화되지 않은 입력 가중치 매개변수 대신에, 다른 양자화된 값, 예를 들어, qi,k의 사용에 의한, 예를 들어, 양자화 단계로 인한 예상되는 왜곡을 설명하는, 왜곡 측정값 Di,k 사용하고, 예를 들어 다른 양자화된 값, 예를 들어, qi,k의 표현, 예를 들어, 인코딩 또는 산술 인코딩을 위한 추정 또는 계산된 비트 노력을 설명하는 비트량 값, 예를 들어, Ri,k을 사용하여, 입력 가중치 매개변수 예를 들어, wi에 기초하여 양자화된 가중치 매개변수, 예를 들어, qi를 결정한다.
양자화된 가중치 매개변수를 결정하기 위해 이러한 왜곡 측정값을 사용함으로써 신경망의 가중치 매개변수의 양자화가 개선될 수 있다는 것이 밝혀졌다.
바람직한 실시 예에서, 양자화기는 입력 가중치 매개변수의 계산되거나 추정된 분산, 예를 들어, σi²에 따라 왜곡 측정값을 결정하므로, 왜곡 측정값이 계산되거나 추정된 분산에 상대적인 주어진 양자화된 값의 사용으로 인한 예상 왜곡을 설명하도록 한다.
계산되거나 추정된 분산에 의존하여 왜곡 측정값을 결정하는 것은 양자화를 향상시키는 것이 밝혀졌다.
또 다른 바람직한 실시 예에서, 양자화기는, 입력 가중치 매개변수, 예를 들어, wi과 관련된 왜곡 측정값 예를 들어, Di,k 및 양자화된 값, 예를 들어, qi,k을 얻기 위해서, 입력 가중치 매개변수와 양자화된 값 사이의 편차를 설명하는 이차 오차, 예를 들어, (wi-qi,k)²와 및 입력 가중치 매개변수의 계산 또는 추정된 분산, 예를 들어, σi²(표준 편차 σi의 제곱) 간의 몫
Figure pct00002
을 계산한다.
이러한 방식으로 왜곡 측정값을 계산하는 것이 특히 효율적인 것으로 밝혀졌다.
추가의 바람직한 실시 예에서, 양자화기는 주어진 입력 가중치 매개변수, 예들어, wi와 연관된 인덱스 k로 지정된 복수의 가능한 양자화된 값에 대한 왜곡 측정값, 예를 들어, Di,k 및 비트량 값, 예를 들어, Ri,k을 결합하는 비용 함수, 예를 들어, costi,k=Di,k+λ*Ri,k를 평가하고, 비용 함수의 평가에 따라 주어진 입력 가중치 매개변수와 연관된 양자화된 가중치 매개변수로서 양자화된 값을 선택하여, 예를 들어 양자화된 가중치 매개변수가 비용 함수를 최소화하도록 한다.
압축 효율과 예측 정확도 사이의 좋은 절충안을 얻기 위해 위에서 설명된 바와 같은 비용 함수가 평가될 수 있고 레이트-왜곡 최적화된 양자화가 적용될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 양자화기는 인덱스 k에 대해 위의 비용 함수를 최소화하기 위해 주어진 입력 가중치 매개변수, 예를 들어, wi와 연관된, 양자화된 가중치 매개변수, 예를 들어, qi를 선택하고, 여기서 Di,k는 양자화되지 않은 입력 가중치 매개변수, 예를 들어, wi 대신에 인덱스 k, 예를 들어, qi,k(예를 들어, 다른 양자화 단계)를 갖는 양자화된 값의 사용으로 인해 발생된, 절대 또는 상대적, 예를 들어, 예상 분산, 왜곡을 설명하는 왜곡 측정값이고, 여기서, 예를 들어, Di,k는 wi, qi,k와 가중치 매개변수의 결정되거나 추정된 분산 σi²의 함수이다. 또한, Ri,k는 인덱스 k, 예를 들어, qi,k를 갖는 양자화된 값 또는 후보 양자화된 값을 나타내는 데 필요한 추정 또는 계산된 비트 수를 설명하는 비트량 값이고, λ는 미리 결정된 값이다.
비용 함수를 최소화함으로써 압축 효율이 향상될 수 있음이 밝혀졌다.
추가의 바람직한 실시 예에서, 양자화기는 예를 들어 비트스트림으로의 상이한 양자화된 값의 인코딩 또는 산술 인코딩에 필요한 비트의 추정 또는 계산된 수에 따라, 비트량 값, 예를 들어, Ri,k을 획득한다.
인코딩에 필요한 비트 수에 따라 비트량 값을 획득함으로써 양자화 효율이 향상될 수 있다는 것이 밝혀졌였다.
추가의 바람직한 실시 예에서, 양자화기는 양자화된 가중치 매개변수, 예를 들어, qi를 결정하므로, 결정된 양자화된 가중치 매개변수와 연관된 왜곡 측정값이 미리 결정된 값보다 작거나 같고, 예를 들어 입력 가중치 매개변수와 결정된 양자화된 가중치 매개변수 사이의 편차가 입력 가중치 매개변수의 표준편차보다 작거나 기껏해야 입력 가중치 매개변수의 표준편차와 동일하도록 한다.
왜곡 측정값이 미리 결정된 값보다 작거나 같으면 예측의 정확도가 향상될 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 양자화기는 학습 알고리즘예를 들어 훈련 알고리즘을 사용하여, 신경망 훈련, 예를 들어, 인공 신경망을 사용하여, 가중치 매개변수의 변동을 기술하는 분산 정보, 예를 들어, σi²를 획득한다.
훈련을 통해 분산 정보를 얻는 것은 분산 정보의 품질을 향상시킬 수 있고 따라서 예측의 정확도를 향상시킬 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 양자화기는 학습 알고리즘, 예를 들어, 훈련 알고리즘을 사용하고, 신경망, 예를 들어 인공 신경망을 훈련하여, 가중치 매개변수의 평균값을 설명하는 평균값 정보, 예를 들어, σi²를 입력 가중치 매개변수로서 획득하고, 여기서, 평균값 정보는 효율적인 저장 또는 신경망의 효율적인 운영, 또는 비트 스트림의 효율적인 인코딩 및 전송을 위해 양자화기에 의해 양자화된다.
상기 언급된 바와 같이, 이에 의해 신경망과 관련된 저장 또는 동작이 보다 효율적으로 이루어질 수 있다는 것이 밝혀졌다.
추가의 바람직한 실시 예에서, 양자화기는 양자화된 가중치 매개변수의 컨텍스트 기반 산술 인코딩을 위한 컨텍스트에 따라 비트량 값을 결정하고, 여기서, 예를 들어, 현재 컨텍스트의 관점에서 상이한 양자화된 가중치 매개변수 값의 산술 인코딩에 얼마나 많은 비트가 필요할 것인지가 양자화기에 의해 결정되거나 추정될 수 있고, 여기서 현재 컨텍스트는 이전에 인코딩된 양자화된 가중치 매개변수에 의해 결정될 수 있다.
컨텍스트 기반 산술 인코딩을 위한 컨텍스트에 따라 비트량 값을 결정함으로써 양자화 효율이 향상될 수 있다는 것이 밝져혔다.
본 발명의 또 다른 측면에서, 신경망의 가중치 매개변수를 인코딩하기 위한 인코더가 설명되며, 이는 위에서 설명된 바와 같은 양자화기를 포함한다. 그 안에서 양자화기는 입력된 가중치 매개변수에 기초하여 양자화된 가중치 매개변수를 획득하고, 인코더는 컨텍스트 종속 산술 코딩 사용, 예: 상황 적응형 이진 산술 코딩 CABAC를 사용하여, 신경망, 예를 들어, 양자화된 버전의 양자화된 가중치 매개변수, 예를 들어, qi를 인코딩한다. 여기서, 예를 들어, 빈 값의 확률은 상이한 컨텍스트에 대해 결정되고, 예를 들어 각 빈은 컨텍스트와 연관된다.
그러한 인코더는 바람직하게는 전술한 인코더의 특징 또는 기능의 임의의 특징 또는 조합을 포함한다.
전술한 바와 같은 양자화기를 포함하는 인코더는 인코딩 동작을 개선하는 것으로 밝혀졌다.
추가 측면은 신경망의 가중치 매개변수를 인코딩, 디코딩 및 양자화하기 위한 대응하는 방법을 참조한다.
이러한 방법은 위에서 설명한 장치와 동일한 고려 사항을 기반으로 한다. 그러나, 각각의 방법은 또한 장치와 관련하여 본 명세서에서 설명된 특징, 기능 및 세부 사항 중 임의의 것에 의해 보완될 수 있다는 점에 유의해야 한다. 또한, 방법은 개별적으로 또는 조합하여 장치의 특징, 기능 및 세부 사항에 의해 보완될 수 있다.
특히, 인코딩 및 디코딩 방법은 컨텍스트 종속 산술 코딩을 사용하여, 예를 들어 상황 적응형 이진 산술 코딩 CABAC를 사용하여, 신경망의 복수의 가중치 매개변수, 예를 들어, wi 또는 qi 또는 li를 획득하고 신경망, 예를 들어, 양자화된 버전의 가중치 매개변수, 예르 들어, wi 또는 qi 또는 li를 인코딩 또는 디코딩하는 단계를 포함하고, 여기서, 예를 들어, 빈 값의 확률은 상이한 컨텍스트에 대해 결정되고, 예를 들어 각 빈은 컨텍스트와 연관된다.
본 발명의 또 다른 측면은 컴퓨터 프로그램이 컴퓨터에서 실행될 때, 본 명세서에서 설명된방법을 수행하기 위한 컴퓨터 프로그램에 관한 것이다.
본 발명의 일 측면에 따른 실시 예는 다음에 첨부된 도면을 참조하여 설명될 것이다:
도 1은 피드 포워드 신경망의 그래프 표현을 도시하고,
도 2는 본 발명의 일 측면에 따른 인코더의 예시적인 실시 예를 도시하고,
도 3은 본 발명의 일 측면에 따른 디코더의 예시적인 실시 예를 도시하고,
도 4는 본 발명의 일 측면에 따른 양자화기의 예시적인 실시 예를 도시한다.
이하에서, 신경망 계수의 결정을 위한 일부 접근법이 설명될 것이며, 이는 예를 들어 본 명세서에서 개시된 추가 개념과 조합하여 사용될 수 있다. 그러나 신경망의 계수를 결정하기 위한 다른 접근 방식도 사용될 수 있다는 점에 유의해야 한다.
예를 들어, 본 명세서에서 제시된 장치는 후기 베이지안 접근 방식을 기반으로 하는 관련성 추정을 적용한다. 구체적으로, "변형 드롭아웃은 딥 신경망을 희소화함"에 제시된 알고리즘을 적용한다(Dmitry Molchanov; arXiv:1701.05369, 2017). 알고리즘은 특정 작업을 해결하기 위한 네트워크의 각 가중치 매개변수에 대한 최적의 평균과 분산을 추정하기 위해 적용될 수 있다. 이들이 추정되면 관련성 가중치 양자화 알고리즘이 가중치 매개변수의 평균값에 적용된다.
구체적으로, 양자화가 허용되는 간격 크기의 척도로 각 매개변수의 표준 편차를 사용한다(이에 대해서는 나중에 자세히 설명).
이 장치는 평균 및 분산 추정을 위한 두 가지 옵션을 제안한다.
제 1 옵션은 상기 문서에서 설명한 대로 알고리즘을 완전히 적용한다. 따라서 작업을 해결하기 위한 최적의 구성을 달성하기 위해 각 가중치 매개변수의 평균과 분산을 모두 훈련한다. 수단의 초기화는 무작위이거나 사전 훈련된 네트워크에서 가져올 수 있다. 이 접근 방식은 결과 네트워크가 고도로 양자화되고 압축될 수 있다는 이점이 있다. 그러나 훈련을 위해서는 많은 연산 자원이 필요하다는 단점이 있다. 여기에서, 평균과 분산을 추정하기 위해서는전체 훈련 데이터 세트를 필요로 한다.
제 2 옵션은 제 1 옵션과 같은 단점, 즉, 사전 훈련된 네트워크를 초기화로 취하고 매개변수를 분포의 평균으로 고정하므로(따라서 변경되지 않음) 높은 연산 자원을 필요로 하는 단점은 갖지 않는다. 그런 다음 위에서 설명한 알고리즘을 적용하여 각 매개변수의 분산만 추정한다. 이 접근 방식이 높은 압축 이득을 얻지 못할 수 있지만, 연산 자원이 크게 감소한다는 이점이 있는데, 이 옵션이 분산을 추정하기 때문이다. 이 방법은 데이터의 전체 훈련 세트를 사용할 수 있거나 데이터 샘플의 하위 집합(예: 유효성 검사 세트)만 사용할 수 있는 경우에 적용될 수 있다.
위에 표시된 알고리즘은 순방향 전파 방법을 확률적 알고리즘으로 재정의하고 대신 변동 목표를 최소화한다. 구체적으로 알고리즘은 정규화된 오브젝티브
Figure pct00003
를 최소화하려고 시도한다.
여기서 처음 항은 작업을 잘 해결하는 각 매개변수(psi로 매개변수화됨)의 평균과 분산을 구하기 위한 것이고, 다른 항은 평균을 희소화하고 분산을 최대화하기 위한 것이다.
따라서, 제 2 옵션은 네트워크의 정확도에 최소한으로 영향을 미치면서 사전 훈련된 네트워크 값에 적용될 수 있는 최대 분산(또는 섭동)을 구하려고 한다. 그리고 제 1 옵션은 0 평균의 최대 수를 갖는 네트워크를 추가로 구하려고 한다. 따라서 일반적으로 제 1 옵션을 적용할 때 더 높은 압축 이득을 얻지만, 추정을 위해서는 높은 얀산을 자원을 적용해야 하는 비용을 치르게 된다.
이하에서, 예를 들어 신경망 매개변수의 양자화에 사용될 수 있는 접근 방식이 설명될 것이다 (예를 들어, 위에서 설명한 대로 결정된 매개변수의 양자화를 위해). 양자화 접근법은, 예를 들어, 본 명세서에서 개시된 다른 개념들 중 임의의 것과 조합하여 사용될 수 있지만, 또한 개별적으로도 사용될 수도 있다.
양자화: 네트워크의 추정된 평균 및 분산에 기초하여, 장치는 매개변수의 평균 값에 컨텍스트 적응 관련성 가중 양자화 방법을 적용한다.
도 4는 본 발명의 일 측면에 따른 양자화기에 대한 일 예를 도시한다. 신경망(320)의 가중치 매개변수를 양자화하기 위한 양자화기(300)는 신경망(320)의 복수의 입력 가중치 매개변수(310)를 획득하는 것으로 도시된다. 양자화기(300)는 양자화되지 않은 입력 가중치 매개변수 대신에 상이한 양자화된 값의 사용에 의해 야기되는 예상 왜곡을 설명하는 왜곡 측정값(340)을 사용하고 상이한 양자화된 값의 표현을 위해 추정 또는 계산된 비트 노력을 설명하는 비트량 값을 사용하여 입력된 가중치 매개변수(310)에 기초하여 양자화된 가중치 매개변수(330)를 결정한다.
그러나, 다른 양자화 개념/양자화 아키텍처가 사용될 수 있다는 점에 유의해야 한다. 이하에서 양자화, 예를 들어 신경망 매개변수의 양자화에 사용될 수 있는 몇 가지 선택적 세부 사항에 대해 설명하고, 이는 개별적으로 모두 사용할 수 있고 조합하여 사용할 수 있다.
왜곡 측정: 다음 가중된 거리 측정값
Figure pct00004
은, 예를 들어 왜곡 측정값으로 이용될 수 있고, 여기서 wi는 가중치 시퀀스의 i번째 가중치이고,
Figure pct00005
는 관련 표준 편차이고, qi,k는 wi의 가능한 양자화된 버전 중 k번째 버전이다. 만약 양자화된 가중치 qi,k가 각각의 표준 편차 구간 안에 있다면 왜곡 값 Di,k는 1을 초과하지 않는다는 점에 유의한다.
주어진 가중치의 양자화된 버전은 예를 들어 양자화된 값 qi,k를 등거리로 제한하여 고정 소수점 표현을 허용할 수 있는 양자화 함수
Figure pct00006
를 통해 파생된다.
비율 왜곡 최적화 양자화: 압축 효율성과 예측 정확도 사이의 적절한 균형을 얻으려면, 비율 왜곡 최적화 양자화가 적용될 수 있다. 따라서 비용 함수는 왜곡 측정값 Di,k 및 비트량 Ri,k을 갖는 각 후보 양자화된 가중치 qi,k에 대하여,
Figure pct00007
로 정의될 수 있다. 매개변수
Figure pct00008
는 동작점을 제어하며 실제 적용에 따라 선택될 수 있다. 예를 들어, 상술한 바와 같은 왜곡 측정값 Di,k가 적용될 수 있다. 인코딩 알고리즘에 따라, 비트량 Ri,k가 추정될 수 있다. 이것은 qi,k를 비트 스트림으로 인코딩하는 데 필요한 비트 수이다. 그 다음,
Figure pct00009
이 주어지면, 비용 함수 costi,k는 k에 대해 최소화된다.
Di,k가 1을 초과하지 않는 양자화된 가중치만 허용하는 것이 더 중요할 수 있다. 이 경우, 양자화된 가중치 qi,k는 가중치 wi의 표준 차 구간 내에 머물도록 보장된다.
이하에서, 무손실 인코딩 및 디코딩에 대한 개념, 예를 들어 신경망 매개변수 또는 양자화된 신경망 매개변수의 무손실 인코딩 및 디코딩이 기술될 것이다. 무손실 인코딩 및 디코딩에 대한 개념은 예를 들어 상술된 신경망 매개변수 결정과 조합하여 및/또는 위에서 설명된 양자화와 조합하여 사용될 수 있지만 개별적으로 적용될 수도 있다.
무손실 인코딩 및 디코딩: 이전 단계에서 균일 양자화기를 적용한 경우, 양자화된 가중치 매개변수는 정수 값(가중치 레벨) 및 스케일링 인자로 표현될 수 있다. 스케일링 인자는 예를 들어 전체 계층에 대해 고정될 수 있는 양자화 단계 크기로 지칭될 수 있다. 계층의 모든 양자화된 가중치 매개변수를 복원하기 위해 계층의 단계 크기 및 차원이 디코더에 의해 알려질 수 있다. 이들은 예를 들어 개별적으로 전송될 수 있다. 이 경우, 이진 패턴은 차원(정수)으로 시작하여 단계 크기 △(예를 들어, 32비트 부동 소수점 수)가 뒤따르는, 비트스트림에 간단히 기록된다.
컨텍스트 적응 이진 산술 코딩(CABAC)을 사용한 정수 인코딩: 양자화된 가중치 레벨(정수 표현)은 엔트로피 코딩 기술을 사용하여 전송될 수 있다. 따라서 가중치의 계층은 스캔을 사용하여 양자화된 가중치 레벨의 시퀀스에 매핑된다.
도 2는 본 발명의 일 측면에 따른 인코더에 대한 예를 도시한다. 신경망(120)의 가중치 매개변수(110)를 인코딩하는 인코더(100)는 신경망(120)의 복수의 가중치 매개변수(110)를 획득하는 것으로 도시된다. 그러면 인코더(100)는 컨텍스트 종속 산술 코딩(130)을 사용하여 신경망(120)의 가중치 매개변수(110)를 인코딩하고, 여기서 인코더(100)는 하나의 가중치 매개변수(110)의 인코딩을 위해 또는 가중치 매개변수의 숫자 표현의 신택스 요소(110a)의 인코딩을 위해 여러 이용 가능한 컨텍스트(1401, 1402, ... 140n) 중에서 컨텍스트를 선택한다. 선택은 선택을 위한 특정 기준(150)에 따라 수행된다. 본 명세서는 이 기준(150)에 대해 가능한 많은 옵션을 설명한다. 하나의 가능한 기준(150)은 선택이 하나 이상의 이전에 인코딩된 가중치 매개변수에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 인코딩된 신택스 요소에 따라 수행된다는 것이다. 인코더는 선택된 컨텍스트를 사용하여 가중치 매개변수(110) 또는 가중치 매개변수의 신택스 요소(110a)를 인코딩한다.
그러나, 다른 인코딩 개념이 사용될 수 있다는 점에 유의한다. 이하에서, 인코딩, 예를 들어 신경망 매개변수의 인코딩을 위해 사용될 수 있는 몇 가지 선택적 세부사항이 설명되는데, 이들은 개별적으로 사용할 수 있고 조합하여 사용될 수도 있다.
선택적인 예로서, 바람직한 실시 예에서, 행 우선 스캔 순서가 사용되며, 행렬의 최상부 행에서 시작하여, 포함된 값을 왼쪽에서 오른쪽으로 인코딩한다. 이러한 방식으로 모든 행이 위에서 아래로 인코딩된다.
다른 선택적인 예로서, 다른 바람직한 실시 예에서, 행렬은 행 우선 스캔을 적용하기 전에 전치된다.
또 다른 선택적인 예로서, 다른 바람직한 실시 예에서, 행렬은 행 우선 스캔이 적용되기 전에, 수평 및/또는 수직으로 뒤집히고/거나 왼쪽이나 오른쪽으로 90/180/270도 회전된다.
레벨의 코딩을 위해 컨텐스트 적응형 이진 산술 코딩(CABAC)이 사용된다. 자세한 내용은 "H.264/AVC 비디오 압축 표준의 컨텍스트 기반 적응형 이진 산술 코딩"에서 확인할 수 있다(D. Marpe 외; 비디오 기술을 위한 회로 및 시스템에 대한 IEEE 트랜잭션, Vol. 13, No. 7, pp. 620-636, 2003년 7월). 따라서 양자화된 가중치 레벨 l은 일련의 이진 기호 또는 신택스 요소로 분해되며, 이는 다음에 이진 산술 코더(CABAC)로 전달될 수 있다.
제 1 단계에서, 이진 신택스 요소 sig_flag는 양자화된 가중치 레벨에 대해 파생되며, 이는 해당 레벨이 0인지 여부를 지정한다. sig_flag가 1과 같으면 추가 이진 신택스 요소 sign_flag가 파생된다. 빈은 현재 가중치 레벨이 양수인지(예: bin = 0) 또는 음수인지(예: bin = 1)를 나타낸다.
다음에, 다음과 같이, 빈의 단항 시퀀스, 이어서 고정 길이 시퀀스가 인코딩된다:
변수 k는 음이 아닌 정수로 초기화되고 X는 1 << k로 초기화된다.
양자화된 가중치 레벨의 절대값이 X보다 크다는 것을 나타내는, 하나 이상의 신택스 요소 abs_level_greater_X가 인코딩된다. abs_level_greater_X가 1인 경우, 변수 k는 업데이되고(예를 들어, 1 증가), 그 다음에 1<<k가 X에 추가되고 추가 abs_level_greater_X가 인코딩된다. 이 절차는 abs_level_greater_X가 0이 될 때까지 계속된다. 그 후, 길이 k의 고정 길이 코드는 양자화된 가중치 인덱스의 인코딩을 완료하기에 충분하다. 예를 들어, 변수 rem=X-|l|가 k 비트를 사용하여 인코딩될 수 있다. 또는 대안으로, 변수 rem'은 k 비트를 사용하여 인코딩되는
Figure pct00010
로 정의될 수 있다. k 비트의 고정 길이 코드에 대한 변수 rem의 모든 다른 매핑도 대안적으로 사용될 수 있다.
각 abs_level_greater_X 이후에 k를 1씩 증가시킬 때, 이 접근 방식은 지수 골룸(Golomb) 코딩을 적용하는 것과 동일하다(sign_flag가 고려되지 않는 경우).
추가적으로, 인코더와 디코더 측에서 최대 절대값 abs_max를 알고 있다면, 전송될 다음 abs_level_greater_X에 대해, X >= abs_max가 유지될 때, abs_level_greater_X 신택스 요소의 인코딩이 종료될 수 있다.
CABAC를 사용한 정수 디코딩: 양자화된 가중치 레벨(정수 표현)의 디코딩은 인코딩과 유사하게 작동한다.
도 3은 본 발명의 일 측면에 따른 디코더에 대한 예를 도시한다. 신경망(220)의 가중치 매개변수(210)를 디코딩하는 디코더(200)는 신경망(220)의 복수의 가중치 매개변수(210)를 획득하는 것으로 도시된다. 그러면 디코더(200)는 컨텍스트 종속 산술 코딩(230)을 사용하여 신경망(220)의 가중치 매개변수(210)를 디코딩하고, 여기서 디코더(200)는 하나의 가중치 매개변수(210)의 디코딩을 위해 또는 가중치 매개변수의 숫자 표현의 신택스 요소(210a)의 디코딩을 위해 여러 이용 가능한 컨텍스트(2401, 2402, … 240n) 중에서 컨텍스트를 선택한다. 선택은 선택을 위한 특정 기준(250)에 따라 수행된다. 본 명세서는 이 기준(250)에 대해 가능한 많은 옵션을 설명한다. 하나의 가능한 기준(250)은 선택이 하나 이상의 이전에 디코딩된 가중치 매개변수에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 디코딩된 신택스 요소에 따라 수행된다는 것이다. 디코더는 선택된 컨텍스트를 사용하여 가중치 매개변수(210) 또는 가중치 매개변수의 신택스 요소(210a)를 디코딩한다.
그러나 다른 디코딩 개념이 사용될 수 있다는 점에 유의해야 한다. 이하에서 디코딩, 예를 들어 신경망 매개변수의 디코딩에 사용될 수 있는 몇 가지 선택적 세부 사항이 설명되는데, 이들은 개별적으로 사용할 수 있고 조합하여 사용할 수 있다.
디코더는 먼저 sig_flag를 디코딩한다. 이것이 1과 같은 경우, sign_flag와 abs_level_greater_X의 단항 시퀀스가 따라오고, 여기서 k의 업데이트(및 이에 따라 X의 증분)는 인코더에서와 동일한 규칙을 따라야 한다. 마지막으로 k 비트의 고정 길이 코드가 디코딩되고 정수로 해석된다(예를 들어, 둘 중 어느 것이 인코딩되었는지에 따라 rem 또는 rem'). 디코딩된 양자화된 가중치 레벨의 절대값 |l|은 X에서 재구성되어, 고정 길이 부분을 형성할 수 있다. 예를 들어, rem이 고정 길이 부분으로 사용된 경우, |l|=X-rem이다. 또는 rem'이 인코딩된 경우,
Figure pct00011
이다. 마지막 단계로서, 부호를 디코딩된 sign_flag에 따라 |l|에 적용하여, 양자화된 가중치 레벨 l을 산출한다. 마지막으로, 양자화된 가중치 q는 양자화된 가중치 레벨 l에 스텝 크기 △를 곱하여 재구성된다.
바람직한 실시 예에서, k는 0으로 초기화되고 다음과 같이 업데이트된다. 각 abs_level_greater_X가 1과 같으면, 다음 규칙에 따라 필요한 k 업데이트가 수행된다. X > X'인 경우, k는 1씩 증가하고, 여기서 X'는 애플리케이션에 따라 상수이다. 예를 들어, X'는 인코더에 의해 파생되고 디코더에 신호되는 숫자(예: 0에서 100 사이)이다.
컨텍스트 모델링: CABAC 엔트로피 코딩에서 양자화된 가중치 레벨에 대한 대부분의 신택스 요소는 이진 확률 모델링을 사용하여 코딩된다. 각 이진 결정(빈)은 컨텍스트와 연결된다. 컨텍스트는 코딩된 빈 클래스에 대한 확률 모델을 나타낸다. 두 개의 가능한 빈 값 중 하나에 대한 확률은 해당 컨텍스트로 이미 코딩된 빈 값을 기반으로 각 컨텍스트에 대해 추정된다. 애플리케이션에 따라 다른 컨텍스트 모델링 접근 방식이 적용될 수 있다. 일반적으로, 양자화된 가중치 코딩과 관련된 여러 빈에 대해 코딩에 사용되는 컨텍스트는 이미 전송된 신택스 요소를 기반으로 선택된다. 실제 애플리케이션에 따라, SBMP(상태 기반 다중 매개변수 추정기) 또는 HEVC 또는 VTM-4.0과 같은 다양한 확률 추정기가 선택될 수 있다. 선택은 예를 들어 압축 효율성과 복잡성에 영향을 미친다.
SBMP에 대한 세부 내용은 "JVET-K0430-v3 - CE5 관련: 상태 기반 확률 추정기"에서 확인할 수 있다(H. Kirchhofer 외, JVET, Ljubljana, 2018).
HEVC에 대한 세부 내용은 "ITU-T H.265 고효율 비디오 코딩"에서 찾을 수 있다 (ITU - 국제 전기 통신 연합, 시리즈 H: 시청각 및 멀티미디어 시스템 - 시청각 서비스의 인프라 - 동영상 코딩, 2015년 4월).
VTM-4.0에 대한 세부 내용은 "JVET-M1001-v6 - 다목적 비디오 코딩(초안 4)"에서 확인할 수 있다(B. Bross, et al., JVET, Marrakech, 2019).
광범위한 신경망에 맞는 컨텍스트 모델링 방식은 다음과 같다. 가중치 행렬의 특정 위치 (x,y)에서 양자화된 가중치 레벨 l을 디코딩하기 위해, 현재 위치에 로컬 템플릿이 적용된다. 이 템플릿에는 예를 들어 (x-1, y), (x, y-1), (x-1, y-1) 등과 같은 다수의 다른 (순서 지정된) 위치를 포함한다. 각 위치에 대해 상태 식별자가 파생된다.
바람직한 실시 예(Si1로 표시됨)에서, 위치 (x,y)에 대한 상태 식별자 sx,y는 다음과 같이 유도된다: 위치 (x,y)가 행렬 외부를 가리키거나 위치 (x,y)에서 양자화된 가중치 레벨 lx,y가 아직 디코딩되지 않았거나 0과 같은 경우, 상태 식별자 sx,y=0이다. 그렇지 않으면 상태 식별자는 sx,y=lx,y<0 ? 1:2가 된다.
다른 바람직한 실시 예(Si2로 표시됨)에서, 위치 (x,y)에 대한 상태 식별자 sx,y는 다음과 같이 유도된다: 위치 (x,y)가 행렬 외부를 가리키거나 위치 (x,y)에서 양자화된 가중치 레벨 lx,y가 아직 디코딩되지 않았거나 0과 같은 경우, 상태 식별자 sx,y=0이다. 그렇지 않으면, 상태 식별자는 sx,y=1이 된다.
특정 템플릿의 경우, 상태 식별자 시퀀스가 파생되고, 상태 식별자 값의 각각의 가능한 조합이 사용될 컨텍스트를 식별하는 컨텍스트 인덱스에 매핑된다. 템플릿 및 매핑은 신택스 요소마다 다를 수 있다. 예를 들어 (순서 지정된) 위치 (x-1, y), (x, y-1), (x-1, y-1)을 포함하는 템플릿으로부터, 상태 식별자 sx-1,y, sx,y-1, sx-1,y-1의 순서화된 시퀀스가 파생된다. 예를 들어, 이 시퀀스는 컨텍스트 인덱스 C=sx-1,y+3*sx,y-1+9*sx-1,y-1에 매핑될 수 있다. 예를 들어, 컨텍스트 인덱스 C는 sig_flag에 대한 컨텍스트의 수를 식별하는 데 사용될 수 있다.
바람직한 실시 예에서(접근법 1로 표시됨), 위치 (x,y)에서 양자화된 가중치 레벨 l_(x,y)의 sig_flag 또는 sign_flag에 대한 로컬 템플릿은 단 하나의 위치 (x-1, y)(즉, 왼쪽 이웃)로 구성된다. 연관된 상태 식별자 sx-1,y는 바람직한 실시 예 Si1에 따라 유도된다.
sig_flag의 경우, sx-1,y의 값에 따라 세 개의 컨텍스트 중 하나가 선택되거나, sign_flag의 경우 sx-1,y의 값에 따라 세 개의 다른 컨텍스트 중 하나가 선택된다.
다른 바람직한 실시 예에서(접근법 2로 표시됨), sig 플래그에 대한 로컬 템플릿에는 순서가 지정된 세 위치 (x-1, y), (x-2, y), (x-3, y)가 포함된다. 상태 식별자 sx-1,y, sx-2,y, sx-3,y의 연관된 시퀀스는 바람직한 실시 예 Si2에 따라 유도된다.
sig_flag의 경우, 컨텍스트 인덱스 C는 다음과 같이 파생된다:
Sx-1,y≠0이면, C=0이고, 그렇지 않고, Sx-2,y≠0이면 C=1이다. 그렇지 않고 Sx-3,y≠0이면 C=2이다. 그외에는 C=3이다.
이것은 또한 다음 방정식으로 표현될 수 있다:
Figure pct00012
동일한 방식으로 왼쪽에 있는 이웃의 수를 늘리거나 줄일 수 있으므로 컨텍스트 인덱스 C가 왼쪽으로 다음 0이 아닌 가중치까지의 거리와 같아진다(템플릿 크기를 초과하지 않음).
예를 들어, 각 abs_level_greater_X 플래그는 두 컨텍스트의 고유 집합을 적용할 수 있다. 그런 다음 두 컨텍스트 중 하나가 sign_flag의 값에 따라 선택된다.
바람직한 실시 예에서, abs_level_greater_X 플래그의 경우(X는 사전 정의된 숫자 X'보다 작음), 다른 컨텍스트는 X 및/또는 sign_flag의 값에 따라 구별된다.
바람직한 실시 예에서, abs_level_greater_X 플래그의 경우(X는 사전 정의된 숫자 X'보다 크거나 같음), 다른 컨텍스트는 X에 따라 구분된다.
또 다른 바람직한 실시 예에서, abs_level_greater_X 플래그(X는 사전 정의된 숫자 X'보다 크거나 같음)는 고정 코드 길이 1을 사용하여 인코딩된다 (예: 산술 코더의 바이패스 모드 사용).
더욱이, 신택스 요소의 일부 또는 전부는 컨텍스트를 사용하지 않고 인코딩될 수도 있다. 대신에 이들은 예를 들어 CABAC의 소위 바이패스 빈을 사용하여 1비트의 고정 길이로 인코딩된다.
다른 바람직한 실시 예에서, 고정 길이 나머지 rem은 바이패스 모드를 사용하여 인코딩된다.
또 다른 바람직한 실시 예에서, 인코더는 미리 정의된 수 X'를 결정하고, 기호에 따라 X < X'인 각 신택스 요소 abs_level_greater_X에 대해 두 개의 컨텍스트로를 구별하고, X>=X'인 각 abs_level_greater_X에 대해 하나의 컨텍스트를 사용한다.
특히 유리한 측면:
본 발명의 일 측면에 따르면, 각 매개변수의 추정된 표준 편차는 각각의 관련성 점수로 해석될 수 있고 그에 따라 양자화 단계의 왜곡 측정값에 가중치를 부여할 수 있다.
또한, 평균 매개변수 값과 그 분산의 분포를 기반으로 컨텍스트 적응 양자화 방법이 적용될 수 있다.
마지막으로, 효율적인 내적 연산을 수행할 수 있도록 디코딩 절차를 조정할 수 있다.
이들 개념들 중 임의의 것은 임의의 다른 측면와 조합하여 또는 개별적으로 취해질 수 있는 임의의 실시 예에서 선택적으로 사용될 수 있다.
일반화
본 명세서에서 제시된 장치(또는 일반적으로 말하면, 본 명세서에서 개시된 임의의 실시 예)는 일반화되고 다른 관련성 점수 측정값에 적응될 수 있다. 즉, 양자화 절차에 적용되는 왜곡 함수는
Figure pct00013
으로 일반화될 수 있고, 여기서 d(.,.)는 모든 거리 측정값이 될 수 있고 Ri는 모든 관련성 점수 측정값이 될 수 있다.
그러나, 다른 왜곡 기능도 선택적으로 사용할 수 있다. 본 명세서에서 설명된 개념 중 임의의 것과 함께 사용하기 위한 왜곡 측정값을 생성하기 위해 하나 이상의 왜곡 함수를 결합하는 것이 가능할 수도 있다.
다른 작업: 가중 엔트로피 제약이 있는 양자화 알고리즘을 적용할 것을 제안한 작업이 있었다. 자세한 내용은 "네트워크 양자화의 한계를 향하여"(최유진 외; CoRR, abs/1612.01543, 2016) 및 "심층 신경망을 위한 가중 엔트로피 기반 양자화"(박은혁 외, CVPR, 2017)에서 볼 수 있다. 그러나 양자화 알고리즘은 스칼라 양자화를 위한 엔트로피 제약이 있는 로이드(Lloyd) 알고리즘을 기반으로 하고 (또한 "소스 코딩: 소스 및 비디오 코딩의 기초 파트 I" 참조(Thomas Wiegand 및 Heiko Schwarz, Foundations and Trends® in Signal Processing: Vol. 4: No. 1?2, 2011)), 이에 따라 컨텍스트 기반 적응 알고리즘을 적용하지 않으며 관련 내적 알고리즘을 개선하는 것을 목표로 하는 최적화도 적용하지 않는다. 또한 이 문서에서 적용한 방법과 달리 관련성 점수는 테일러 확장 방법 또는 매개변수 크기 기반 방법을 기반으로 한다.
그러나, 위에서 언급한 문서에 설명된 개념은 본 문서의 하나 이상의 측면과 개별적으로 또는 조합하여 선택적으로 사용될 수 있다는 것이 밝혀졌다.
결론
결론적으로, 본 발명에서 설명된 실시 예는 본 명세서에서 설명된 임의의 중요한 요점 또는 측면에 의해 선택적으로 보완될 수 있다. 그러나, 본 명세서에서 설명된 중요한 요점 및 측면은 개별적으로 또는 조합하여 사용될 수 있고, 개별적으로 및 조합하여 본 명세서에 설명된 임의의 실시 예에 도입될 수 있음에 유의한다.
구현 대안
일부 측면이 장치의 맥락에서 설명되었지만, 이러한 측면은 또한 해당 방법의 설명을 나타내며, 여기에서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 대응하는 것이 분명한다. 유사하게, 방법 단계의 맥락에서 설명된 측면는 또한 대응하는 블록 또는 대응하는 장치의 항목 또는 특징의 설명을 나타낸다. 방법 단계의 일부 또는 전부는 예를 들어 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해 (또는 이들을 사용하여) 실행될 수 있다. 일부 실시 예에서, 가장 중요한 방법 단계 중 하나 이상이 그러한 장치에 의해 실행될 수 있다.
특정 구현 요구 사항에 따라, 본 발명의 측면의 실시 예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 전자적으로 판독 가능한 제어 신호가 저장되어 있는 플로피 디스크, DVD, 블루레이, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리와 같은 디지털 저장 매체를 사용하여 수행할 수 있으며, 이들은 각각의 방법이 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협력한다(또는 협력할 수 있다). 따라서, 디지털 저장 매체는 컴퓨터 판독 가능하다.
본 발명의 일 측면에 따른 일부 실시 예는 전자적으로 판독 가능한 제어 신호를 갖는 데이터 캐리어를 포함하며, 이는 프로그램 가능한 컴퓨터 시스템과 협력할 수 있어 본 명세서에서 설명된 방법 중 하나가 수행된다.
일반적으로, 본 발명의 측면의 실시 예는 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있고, 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때 방법 중 하나를 수행하기 위해 작동하는 프로그램 코드이다. 프로그램 코드는 예를 들어 기계 판독 가능한 캐리어에 저장될 수 있다.
다른 실시 예는 기계 판독 가능한 캐리어에 저장된, 본 명세서에서 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
즉, 본 발명의 방법의 실시 예는 컴퓨터 프로그램이 컴퓨터에서 실행될 때 본 명세서에서 설명된 방법 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법의 추가 실시 예는 여기에 기술된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램이 기록되어 있는 데이터 캐리어(또는 디지털 저장 매체, 또는 컴퓨터 판독 가능 매체)이다. 데이터 매체, 디지털 저장 매체 또는 기록 매체는 일반적으로 유형 및/또는 비일시적이다.
따라서, 본 발명의 방법의 추가 실시 예는 본 명세서에서 설명된방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호의 시퀀스이다. 데이터 스트림 또는 신호의 시퀀스는 예를 들어 인터넷을 통해 데이터 통신 연결을 통해 전송되도록 구성될 수 있다.
추가 실시 예는 본 명세서에서 설명된 방법들 중 하나를 수행하도록 구성되거나 적응된 처리 수단, 예를 들어 컴퓨터, 또는 프로그램 가능한 논리 장치를 포함한다.
추가 실시 예는 본 명세서에서 설명된 방법들 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명의 측면에 따른 추가 실시 예는 본 명세서에 기재된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기에 (예를 들어, 전자적으로 또는 광학적으로) 전송하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어 컴퓨터, 모바일 장치, 메모리 장치 등일 수 있다. 장치 또는 시스템은 예를 들어 컴퓨터 프로그램을 수신기로 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시 예에서, 프로그램 가능 논리 장치(예를 들어, 필드 프로그램 가능 게이트 어레이)는 본 명세서에서 설명된 방법의 기능 중 일부 또는 전부를 수행하는 데 사용될 수 있다. 일부 실시 예에서, 필드 프로그램 가능 게이트 어레이는 본 명세서에서 설명된 방법 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법은 바람직하게는 임의의 하드웨어 장치에 의해 수행된다.
본 명세서에 기술된 장치는 하드웨어 장치를 사용하여, 또는 컴퓨터를 사용하여, 또는 하드웨어 장치와 컴퓨터의 조합을 사용하여 구현될 수 있다.
본 명세서에서 설명된 장치, 또는 본 명세서에서 설명된 장치의 임의의 구성요소는 하드웨어 및/또는 소프트웨어로 적어도 부분적으로 구현될 수 있다.
본 명세서에서 설명된 방법은 하드웨어 장치를 사용하거나, 컴퓨터를 사용하거나, 하드웨어 장치와 컴퓨터의 조합을 사용하여 수행될 수 있다.
본 명세서에 기재된 방법 또는 본 명세서에 기재된 장치의 임의의 구성요소는 하드웨어 및/또는 소프트웨어에 의해 적어도 부분적으로 수행될 수 있다.
상술한 실시 예는 본 발명의 한 측면의 원리를 설명하기 위한 것일 뿐이다. 본 명세서에 기술된 배열 및 세부사항의 수정 및 변형이 당업자에게 명백하다는 것이 이해되어야 한다. 따라서, 본 명세서의 실시 예의 설명 및 설명을 통해 제공된 특정 세부사항이 아니라 계류중인 특허 청구범위의 범위에 의해서만 제한되는 것이 의도이다.

Claims (77)

  1. 신경망(120)의 가중치 매개변수(110)를 인코딩하기 위한 인코더(100)에 있어서,
    상기 인코더는 상기 신경망의 복수의 가중치 매개변수를 획득하도록 구성되고;
    상기 인코더는 컨텍스트 종속 산술 코딩(130)을 사용하여 상기 신경망의 상기 가중치 매개변수를 인코딩하도록 구성되고;
    상기 인코더는 하나 이상의 이전에 인코딩된 가중치 매개변수(150)에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 인코딩된 신택스 요소(150)에 따라, 상기 가중치 매개변수의 인코딩을 위해, 또는 상기 가중치 매개변수의 숫자 표현의 신택스 요소(110a)의 인코딩을 위해 컨텍스트(1401, 1402, ... 140n)를 선택하도록 구성되고;
    상기 인코더는 상기 선택된 컨텍스트를 사용하여 상기 가중치 매개변수, 또는 상기 가중치 매개변수의 신택스 요소를 인코딩하도록 구성되는, 인코더.
  2. 제 1 항에 있어서, 상기 인코더는 상기 주어진 컨텍스트와 연관된 하나 이상의 이전에 인코딩된 빈 값에 따라 주어진 컨텍스트와 연관된 주어진 빈의 빈 값에 대한 확률을 결정하도록 구성되는, 인코더.
  3. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 이전에 인코딩된 가중치 매개변수의 부호에 따라 상기 가중치 매개변수의 제로 플래그의 상기 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  4. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 적어도 3개의 상이한 제로 플래그 컨텍스트 중에서 상기 가중치 매개변수의 제로 플래그의 상기 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  5. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 현재 인코딩된 가중치 매개변수가 가중치 매개변수의 행렬의 스캐닝 행에서 제1 가중치 매개변수인지 여부에 따라 상기 가중치 매개변수의 제로 플래그의 상기 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  6. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 이미 인코딩되었는지 및/또는 이용 가능한지에 따라 상기 가중치 매개변수의 제로 플래그의 인코딩을 위한 상기 컨텍스트를 선택하도록 구성되는, 인코더.
  7. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 이전에 인코딩된 가중치 매개변수가 0인 경우 상기 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 아직 인코딩되지 않은 경우 상기 현재 인코딩된 가중치 매개변수에 선행하는 가중치 매개변수를 사용할 수 없는 경우, 상기 가중치 매개변수의 제로 플래그의 인코딩을 위한 제1 컨텍스트를 선택하고, 상기 이전에 인코딩된 가중치 매개변수가 0보다 작은 경우 상기 가중치 매개변수의 제로 플래그의 인코딩을 위한 제2 컨텍스트를 선택하고, 및 상기 이전에 인코딩된 가중치 매개변수가 0보다 큰 경우 상기 가중치 매개변수의 제로 플래그의 인코딩을 위한 제3 컨텍스트를 선택하도록 구성되는, 인코더.
  8. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 숫자 값의 형태로 현재 인코딩된 가중치 매개변수의 위치에 대해 복수의 위치에서 복수의 가중치 매개변수의 상태를 나타내는 복수의 상태 식별자를 결정하고, 상기 상태 식별자를 결합하여 상기 현재 인코딩된 가중치 매개변수의 컨텍스트를 나타내는 컨텍스트 인덱스 값을 얻도록 구성되는, 인코더.
  9. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 행에서 얼마나 많은 0 값의 가중치 매개변수 및/또는 이용 불가능한 가중치 매개변수가 상기 현재 인코딩된 가중치 매개변수에 인접하는지에 따라 상기 가중치 매개변수의 제로 플래그의 상기 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  10. 제 9 항에 있어서, 상기 복수의 가중치 매개변수가 행렬로 배열되고, 상기 가중치 매개변수는 lx-1,y, lx-2,y 및 lx-3,y로 표시되고 상기 행렬의 위치 (x-1,y), (x-2,y) 및 (x-3,y)에 각각 대응하고, 상태 식별자 sx-1,y, sx-2,y, sx-3,y로 나타내는, 인코더.
  11. 제 8 항 또는 제 10 항에 있어서, 상기 복수의 가중치 매개변수는 행렬에 배열되고, 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 상기 위치 (x,y)가 사용 불가능하거나 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0인 경우 제 1 값과 같고, 상기 위치 (x,y)에 대한 상기 상태 식별자 sx,y는 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0보다 작은 경우 제 2 값과 같고, 상기 위치 (x,y)에 대한 상기 상태 식별자 sx,y는 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0보다 큰 경우 제 3 값과 같은, 인코더.
  12. 제 8 항 또는 제 10 항에 있어서, 상기 복수의 가중치 매개변수가 행렬로 배열되고, 상기 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 상기 위치 (x, y)가 사용 불가능하거나 상기 위치 (x,y)에서의 가중치 매개변수가 0과 같은 경우 제 1 값과 같고, 상기 위치 (x,y)에 대한 상기 상태 식별자 sx,y는 상기 위치 (x,y)가 이용가능하고 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0과 같지 않은 경우 제2 값과 같은, 인코더.
  13. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 현재 인코딩된 가중치 매개변수에서 볼 때, 미리 결정된 방향에 존재하는 가장 가까운 0이 아닌 가중치 매개변수의 거리에 따라 상기 가중치 매개변수의 제로 플래그의 상기 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  14. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 현재 인코딩된 가중치 매개변수에 인접하는, 하나의 이전에 인코딩된 가중치 매개변수만을 고려하여 상기 가중치 매개변수의 제로 플래그의 상기 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  15. 제 14 항에 있어서, 상기 인코더는 상기 하나의 이전에 인코딩된 가중치 위치에 대한 상태 식별자를 결정하도록 구성되며, 상기 하나의 이전에 인코딩된 가중치 매개변수에 대한 상기 상태 식별자는, 상기 하나의 이전에 인코딩된 가중치 매개변수가 이용가능하지 않거나 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0과 같은 경우 제1 값과 같고, 상기 하나의 이전에 인코딩된 가중치 매개변수가 0보다 작은 경우 제 2 값과 같고, 상기 하나의 이전에 인코딩된 가중치 매개변수가 0보다 큰 경우 제3 값과 같고,
    상기 인코더는 상기 상태 식별자에 따라 상기 컨텍스트를 선택하도록 구성되는, 인코더.
  16. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 이전에 인코딩된 가중치 매개변수가 0보다 작은지, 0과 같은지, 또는 0보다 큰지에 따라 상이한 컨텍스트를 선택하도록 구성되는, 인코더.
  17. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 이전에 인코딩된 가중치 매개변수가 이용 불가능한 경우 상기 이전에 인코딩된 가중치 매개변수의 0 값과 연관된 컨텍스트를 선택하도록 구성되는, 인코더.
  18. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 가중치 매개변수의 절대값, 또는 그 최고 유효 부분을 나타내는 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 인코딩하도록 구성되는, 인코더.
  19. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 절단된 단항 코드의 이진 값을 산술적으로 인코딩하도록 구성되며, 상기 절단된 단항 코드의 상기 이진 값은 상기 가중치 매개변수의 상기 절대값이 상기 이진 값의 비트 위치와 연관된 각각의 임계값보다 큰지 여부를 설명하고,
    상기 인코더는 주어진 가중치 매개변수와 연관된 상기 절단된 단항 코드를 제공하여, 상기 주어진 가중치 매개변수가 미리 결정된 값보다 작은 경우, 상기 가중치 매개변수가 상기 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크지 않음을 나타내는 이진 값으로 상기 절단된 단항 코드가 종료되도록 구성되고;
    상기 인코더는 다른 주어진 가중치 매개변수와 연관된 절단된 단항 코드를 제공하여, 상기 주어진 가중치 매개변수가 미리 결정된 값보다 작지 않은 경우, 상기 가중치 매개변수가 상기 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크다는 것을 나타내는 이진 값으로 상기 절단된 단항 코드가 종료되도록 구성되는, 인코더.
  20. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 인코딩하도록 구성되며,
    상기 단항 코드 또는 상기 절단된 단항 코드의 상기 이진 값은 상기 가중치 매개변수의 상기 절대값이 상기 각각의 이진 값의 개별 비트 위치와 연관된 개별 임계값보다 큰지 여부를 설명하고,
    인접한 비트 위치와 연관된 임계값 사이의 차이는 제 1 비트 위치 범위에서 일정하고,
    인접한 비트 위치와 연관된 임계값 사이의 차이는 상기 제 1 비트 위치 범위 이후의 제 2 비트 위치 범위에서 기하급수적으로 증가하는, 인코더.
  21. 선행 항들 중 어느 한 항에 있어서, 인접한 비트 위치와 연관된 임계값 간의 차이는 제 2 비트 위치 범위 이후의 제 3 비트 위치 범위에서 일정한, 인코더.
  22. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 단항 코드 또는 상기 절단된 단항 코드의 상이한 위치에서 비트의 인코딩을 위해 상이한 컨텍스트를 선택하도록 구성되는, 인코더.
  23. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 현재 인코딩된 가중치 매개변수의 부호에 따라 상기 단항 코드 또는 상기 절단된 단항 코드의 주어진 비트 위치에서 비트의 인코딩을 위해 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택하도록 구성되는, 인코더.
  24. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 상기 현재 인코딩된 매개변수의 부호에 따라 상기 단항 코드 또는 상기 절단된 단항 코드의 제 1 범위의 하나 이상의 비트 위치에 있는 비트의 인코딩을 위해 비트 위치당 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택하도록 구성되고,
    상기 인코더는 상기 현재 인코딩된 가중치 매개변수의 상기 부호와 독립적인 상기 단항 코드 또는 상기 절단된 단항 코드의 제 2 범위의 하나 이상의 비트 위치에 있는 비트의 인코딩을 위한 컨텍스트를 선택하도록 구성되는, 인코더.
  25. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 미리 결정된 컨텍스트를 사용하거나 상기 산술 코딩의 바이패스 모드를 사용하여 상기 단항 코드 또는 상기 절단된 단항 코드의 제 2 범위의 하나 이상의 비트 위치에서의 비트를 인코딩하도록 구성되는, 인코더.
  26. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 미리 결정된 컨텍스트를 사용하거나 상기 산술 코딩의 바이패스 모드를 사용하여 상기 가중치 매개변수의 상기 절대값의 고정 비트 나머지를 인코딩하도록 구성되는, 인코더.
  27. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 가중치 매개변수의 절대값 또는 그 최고 유효 부분을 나타내는 단항 코드 또는 절단된 단항 코드의 복수의 이진 값을 산술적으로 인코딩하도록 구성되는, 인코더.
  28. 선행 항들 중 어느 한 항에 있어서, 상기 단항 코드 또는 상기 절단된 단항 코드의 상기 이진 값은 상기 가중치 매개변수의 상기 절대값이 X보다 큰지 여부를 나타내는, 인코더.
  29. 선행 항들 중 어느 한 항에 있어서, 상기 인코더는 X가 미리 결정된 값보다 작은 경우 두 가지 가능한 컨텍스트 중에서 고려 중인 이진 값 abs_level_greater_X의 인코딩을 위한 컨텍스트를 선택하고 X가 상기 미리 결정된 값보다 크거나 같은 경우 비트 위치와 연관된 미리 결정된 컨텍스트를 사용하도록 구성되는, 인코더.
  30. 선행 항들 중 어느 한 항에 있어서, 상기 가중치 매개변수는 행렬의 행과 열로 구성되며,
    상기 가중치 매개변수가 인코딩되는 순서는 상기 행렬의 제 1 행을 따른 다음 상기 행렬의 후속하는 제 2 행을 따르거나,
    상기 가중치 매개변수가 인코딩되는 순서는 상기 행렬의 제 1 열을 따른 다음 상기 행렬의 후속하는 제 2 열을 따르는, 인코더.
  31. 신경망(220)의 가중치 매개변수(260)를 디코딩하기 위한 디코더(200)에 있어서,
    상기 디코더는 상기 신경망의 가중치 매개변수를 나타내는 복수의 비트를 획득하도록 구성되고;
    상기 디코더는 컨텍스트 종속 산술 코딩(230)을 사용하여 상기 신경망의 상기 가중치 매개변수를 디코딩하도록 구성되고;
    상기 디코더는 하나 이상의 이전에 디코딩된 가중치 매개변수(250)에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 디코딩된 신택스 요소(250)에 따라, 상기 가중치 매개변수의 디코딩을 위해, 또는 상기 가중치 매개변수의 숫자 표현의 신택스 요소(210a)의 디코딩을 위해 컨텍스트(2401, 2402, ..., 240n)를 선택하도록 구성되고;
    상기 디코더는 상기 선택된 컨텍스트를 사용하여 상기 가중치 매개변수, 또는 상기 가중치 매개변수의 신택스 요소를 디코딩하도록 구성되는, 디코더.
  32. 제 31 항에 있어서, 상기 디코더는 상기 주어진 컨텍스트와 연관된 하나 이상의 이전에 디코딩된 빈 값에 따라 주어진 컨텍스트와 연관된 주어진 빈의 빈 값에 대한 확률을 결정하도록 구성되는, 디코더.
  33. 제 31 항 내지 제 32 항 중 어느 한 항에 있어서, 상기 디코더는 이전에 디코딩된 가중치 매개변수의 부호에 따라 상기 가중치 매개변수의 제로 플래그의 상기 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  34. 제 31 항 내지 제 33 항 중 어느 한 항에 있어서, 상기 디코더는 적어도 3개의 상이한 제로 플래그 컨텍스트 중에서 상기 가중치 매개변수의 제로 플래그의 상기 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  35. 제 31 항 내지 제 34 항 중 어느 한 항에 있어서, 상기 디코더는 현재 디코딩된 가중치 매개변수가 가중치 매개변수의 행렬의 스캐닝 행에서 제1 가중치 매개변수인지 여부에 따라 상기 가중치 매개변수의 제로 플래그의 상기 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  36. 제 31 항 내지 제 35 항 중 어느 한 항에 있어서, 상기 디코더는 상기 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 이미 디코딩되었는지 및/또는 이용 가능한지에 따라 상기 가중치 매개변수의 제로 플래그의 디코딩을 위한 상기 컨텍스트를 선택하도록 구성되는, 디코더.
  37. 제 31 항 내지 제 36 항 중 어느 한 항에 있어서, 상기 디코더는 이전에 디코딩된 가중치 매개변수가 0인 경우 상기 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수가 아직 디코딩되지 않은 경우 상기 현재 디코딩된 가중치 매개변수에 선행하는 가중치 매개변수를 사용할 수 없는 경우, 상기 가중치 매개변수의 제로 플래그의 디코딩을 위한 제1 컨텍스트를 선택하고, 상기 이전에 디코딩된 가중치 매개변수가 0보다 작은 경우 상기 가중치 매개변수의 제로 플래그의 디코딩을 위한 제2 컨텍스트를 선택하고, 및 상기 이전에 디코딩된 가중치 매개변수가 0보다 큰 경우 상기 가중치 매개변수의 제로 플래그의 디코딩을 위한 제3 컨텍스트를 선택하도록 구성되는, 디코더.
  38. 제 31 항 내지 제 37 항 중 어느 한 항에 있어서, 상기 디코더는 숫자 값의 형태로 현재 디코딩된 가중치 매개변수의 위치에 대해 복수의 위치에서 복수의 가중치 매개변수의 상태를 나타내는 복수의 상태 식별자를 결정하고, 상기 상태 식별자를 결합하여 상기 현재 디코딩된 가중치 매개변수의 컨텍스트를 나타내는 컨텍스트 인덱스 값을 얻도록 구성되는, 디코더.
  39. 제 31 항 내지 제 38 항 중 어느 한 항에 있어서, 상기 디코더는 행에서 얼마나 많은 0 값의 가중치 매개변수 및/또는 이용 불가능한 가중치 매개변수가 상기 현재 디코딩된 가중치 매개변수에 인접하는지에 따라 상기 가중치 매개변수의 제로 플래그의 상기 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  40. 제 39 항에 있어서, 상기 복수의 가중치 매개변수가 행렬로 배열되고, 상기 가중치 매개변수는 lx-1,y, lx-2,y 및 lx-3,y로 표시되고 상기 행렬의 위치 (x-1,y), (x-2,y) 및 (x-3,y)에 각각 대응하고, 상태 식별자 sx-1,y, sx-2,y, sx-3,y로 나타내는, 디코더.
  41. 제 38 항 또는 제 40 항에 있어서, 상기 복수의 가중치 매개변수는 행렬에 배열되고, 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 상기 위치 (x,y)가 사용 불가능하거나 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0인 경우 제 1 값과 같고, 상기 위치 (x,y)에 대한 상기 상태 식별자 sx,y는 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0보다 작은 경우 제 2 값과 같고, 상기 위치 (x,y)에 대한 상기 상태 식별자 sx,y는 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0보다 큰 경우 제 3 값과 같은, 디코더.
  42. 제 38 항 또는 제 40 항에 있어서, 상기 복수의 가중치 매개변수가 행렬로 배열되고, 상기 행렬의 위치 (x,y)에 대한 상태 식별자 sx,y는 상기 위치 (x, y)가 사용 불가능하거나 상기 위치 (x,y)에서의 가중치 매개변수가 0과 같은 경우 제 1 값과 같고, 상기 위치 (x,y)에 대한 상기 상태 식별자 sx,y는 상기 위치 (x,y)가 이용가능하고 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0과 같지 않은 경우 제2 값과 같은, 디코더.
  43. 제 31 항 내지 제 42 항 중 어느 한 항에 있어서, 상기 디코더는 상기 현재 디코딩된 가중치 매개변수에서 볼 때, 미리 결정된 방향에 존재하는 가장 가까운 0이 아닌 가중치 매개변수의 거리에 따라 상기 가중치 매개변수의 제로 플래그의 상기 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  44. 제 31 항 내지 제 43 항 중 어느 한 항에 있어서, 상기 디코더는 상기 현재 디코딩된 가중치 매개변수에 인접하는, 하나의 이전에 디코딩된 가중치 매개변수만을 고려하여 상기 가중치 매개변수의 제로 플래그의 상기 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  45. 제 44 항에 있어서, 상기 디코더는 상기 하나의 이전에 디코딩된 가중치 위치에 대한 상태 식별자를 결정하도록 구성되며, 상기 하나의 이전에 디코딩된 가중치 매개변수에 대한 상기 상태 식별자는, 상기 하나의 이전에 디코딩된 가중치 매개변수가 이용가능하지 않거나 상기 위치 (x,y)에서의 상기 가중치 매개변수가 0과 같은 경우 제1 값과 같고, 상기 하나의 이전에 디코딩된 가중치 매개변수가 0보다 작은 경우 제 2 값과 같고, 상기 하나의 이전에 디코딩된 가중치 매개변수가 0보다 큰 경우 제3 값과 같고,
    상기 디코더는 상기 상태 식별자에 따라 상기 컨텍스트를 선택하도록 구성되는, 디코더.
  46. 제 31 항 내지 제 45 항 중 어느 한 항에 있어서, 상기 디코더는 상기 이전에 디코딩된 가중치 매개변수가 0보다 작은지, 0과 같은지, 또는 0보다 큰지에 따라 상이한 컨텍스트를 선택하도록 구성되는, 디코더.
  47. 제 31 항 내지 제 46 항 중 어느 한 항에 있어서, 상기 디코더는 상기 이전에 디코딩된 가중치 매개변수가 이용 불가능한 경우 상기 이전에 디코딩된 가중치 매개변수의 0 값과 연관된 컨텍스트를 선택하도록 구성되는, 디코더.
  48. 제 31 항 내지 제 47 항 중 어느 한 항에 있어서, 상기 디코더는 가중치 매개변수의 절대값, 또는 그 최고 유효 부분을 나타내는 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 디코딩하도록 구성되는, 디코더.
  49. 제 31 항 내지 제 47 항 중 어느 한 항에 있어서, 상기 디코더는 절단된 단항 코드의 이진 값을 산술적으로 디코딩하도록 구성되며, 상기 절단된 단항 코드의 상기 이진 값은 상기 가중치 매개변수의 상기 절대값이 상기 이진 값의 비트 위치와 연관된 각각의 임계값보다 큰지 여부를 설명하고,
    상기 디코더는 주어진 가중치 매개변수와 연관된 상기 절단된 단항 코드를 제공하여, 상기 주어진 가중치 매개변수가 미리 결정된 값보다 작은 경우, 상기 가중치 매개변수가 상기 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크지 않음을 나타내는 이진 값으로 상기 절단된 단항 코드가 종료되도록 구성되고;
    상기 디코더는 다른 주어진 가중치 매개변수와 연관된 절단된 단항 코드를 제공하여, 상기 주어진 가중치 매개변수가 미리 결정된 값보다 작지 않은 경우, 상기 가중치 매개변수가 상기 절단된 단항 코드의 마지막 이진 값의 비트 위치와 연관된 각각의 임계값보다 크다는 것을 나타내는 이진 값으로 상기 절단된 단항 코드가 종료되도록 구성되는, 디코더.
  50. 제 31 항 내지 제 49 항 중 어느 한 항에 있어서, 상기 디코더는 단항 코드 또는 절단된 단항 코드의 이진 값을 산술적으로 디코딩하도록 구성되며,
    상기 단항 코드 또는 상기 절단된 단항 코드의 상기 이진 값은 상기 가중치 매개변수의 상기 절대값이 상기 각각의 이진 값의 개별 비트 위치와 연관된 개별 임계값보다 큰지 여부를 설명하고,
    인접한 비트 위치와 연관된 임계값 사이의 차이는 제 1 비트 위치 범위에서 일정하고,
    인접한 비트 위치와 연관된 임계값 사이의 차이는 상기 제 1 비트 위치 범위 이후의 제 2 비트 위치 범위에서 기하급수적으로 증가하는, 디코더.
  51. 제 31 항 내지 제 50 항 중 어느 한 항에 있어서, 인접한 비트 위치와 연관된 임계값 간의 차이는 제 2 비트 위치 범위 이후의 제 3 비트 위치 범위에서 일정한, 디코더.
  52. 제 31 항 내지 제 51 항 중 어느 한 항에 있어서, 상기 디코더는 상기 단항 코드 또는 상기 절단된 단항 코드의 상이한 위치에서 비트의 디코딩을 위해 상이한 컨텍스트를 선택하도록 구성되는, 디코더.
  53. 제 31 항 내지 제 52 항 중 어느 한 항에 있어서, 상기 디코더는 상기 현재 디코딩된 가중치 매개변수의 부호에 따라 상기 단항 코드 또는 상기 절단된 단항 코드의 주어진 비트 위치에서 비트의 디코딩을 위해 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택하도록 구성되는, 디코더.
  54. 제 31 항 내지 제 53 항 중 어느 한 항에 있어서, 상기 디코더는 상기 현재 디코딩된 매개변수의 부호에 따라 상기 단항 코드 또는 상기 절단된 단항 코드의 제 1 범위의 하나 이상의 비트 위치에 있는 비트의 디코딩을 위해 비트 위치당 2개의 가능한 컨텍스트 중에서 컨텍스트를 선택하도록 구성되고,
    상기 디코더는 상기 현재 디코딩된 가중치 매개변수의 상기 부호와 독립적인 상기 단항 코드 또는 상기 절단된 단항 코드의 제 2 범위의 하나 이상의 비트 위치에 있는 비트의 디코딩을 위한 컨텍스트를 선택하도록 구성되는, 디코더.
  55. 제 31 항 내지 제 54 항 중 어느 한 항에 있어서, 상기 디코더는 미리 결정된 컨텍스트를 사용하거나 상기 산술 코딩의 바이패스 모드를 사용하여 상기 단항 코드 또는 상기 절단된 단항 코드의 제 2 범위의 하나 이상의 비트 위치에서의 비트를 디코딩하도록 구성되는, 디코더.
  56. 제 31 항 내지 제 55 항 중 어느 한 항에 있어서, 상기 디코더는 미리 결정된 컨텍스트를 사용하거나 상기 산술 코딩의 바이패스 모드를 사용하여 상기 가중치 매개변수의 상기 절대값의 고정 비트 나머지를 디코딩하도록 구성되는, 디코더.
  57. 제 31 항 내지 제 56 항 중 어느 한 항에 있어서, 상기 디코더는 가중치 매개변수의 절대값 또는 그 최고 유효 부분을 나타내는 단항 코드 또는 절단된 단항 코드의 복수의 이진 값을 산술적으로 디코딩하도록 구성되는, 디코더.
  58. 제 31 항 내지 제 57 항 중 어느 한 항에 있어서, 상기 단항 코드 또는 상기 절단된 단항 코드의 상기 이진 값은 상기 가중치 매개변수의 상기 절대값이 X보다 큰지 여부를 나타내는, 디코더.
  59. 제 31 항 내지 제 58 항 중 어느 한 항에 있어서, 상기 디코더는 X가 미리 결정된 값보다 작은 경우 두 가지 가능한 컨텍스트 중에서 고려 중인 이진 값 abs_level_greater_X의 디코딩을 위한 컨텍스트를 선택하고 X가 상기 미리 결정된 값보다 크거나 같은 경우 비트 위치와 연관된 미리 결정된 컨텍스트를 사용하도록 구성되는, 디코더.
  60. 제 31 항 내지 제 59 항 중 어느 한 항에 있어서, 상기 가중치 매개변수는 행렬의 행과 열로 구성되며,
    상기 가중치 매개변수가 디코딩되는 순서는 상기 행렬의 제 1 행을 따른 다음 상기 행렬의 후속하는 제 2 행을 따르거나,
    상기 가중치 매개변수가 디코딩되는 순서는 상기 행렬의 제 1 열을 따른 다음 상기 행렬의 후속하는 제 2 열을 따르는, 디코더.
  61. 신경망(320)의 가중치 매개변수를 양자화하기 위한 양자화기(300)에 있어서,
    상기 양자화기는 상기 신경망(320)의 복수의 입력 가중치 매개변수(310)를 획득하도록 구성되고;
    상기 양자화기는 양자화되지 않은 입력 가중치 매개변수 대신에 상이한 양자화된 값의 사용으로 야기되는 예상 왜곡을 설명하는 왜곡 측정값(340)을 사용하고 상이한 양자화된 값의 표현을 위해 추정 또는 계산된 비트 노력을 설명하는 비트량 값을 사용하여 입력 가중치 매개변수에 기초하여 양자화된 가중치 매개변수(330)를 결정하도록 구성되는, 양자화기.
  62. 제 61 항에 있어서, 상기 양자화기는 상기 입력 가중치 매개변수의 계산 또는 추정된 분산에 따라 상기 왜곡 측정값을 결정하도록 구성되는 양자화기.
  63. 제 61 항 또는 제 62 항에 있어서, 상기 양자화기는 입력 가중치 매개변수 및 양자화된 값과 연관된 왜곡 측정값을 획득하기 위해서, 입력 가중치 매개변수와 양자화된 값 사이의 편차를 설명하는 이차 오차와 상기 입력 가중치 매개변수의 계산 또는 추정된 분산 간의 몫을 계산하도록 구성되는, 양자화기.
  64. 제 61 항 내지 제 63 항 중 어느 한 항에 있어서, 상기 양자화기는 주어진 입력 가중치 매개변수와 연관된 복수의 가능한 양자화된 값에 대한 비트량 값과 왜곡 측정값을 결합하는, 비용 함수를 평가하고, 상기 비용 함수의 상기 평가에 따라 상기 주어진 입력 가중치 매개변수와 연관된 상기 양자화된 가중치 매개변수로서 양자화된 값을 선택하도록 구성되는, 양자화기.
  65. 제 61 항 내지 제 64 항 중 어느 한 항에 있어서, 상기 양자화기는 인덱스 k에 대해, 비용 함수
    costi,k=Di,k+λ*Ri,k
    를 최소화하기 위해 주어진 입력 가중치 매개변수와 연관된 양자화된 가중치 매개변수를 선택하도록 구성되고,
    Di,k는 양자화되지 않은 입력 가중치 매개변수 대신 인덱스 k를 갖는 양자화된 값의 사용으로 야기되는 예상 왜곡을 설명하는 왜곡 측정값이고;
    Ri,k는 인덱스 k를 갖는 양자화된 값을 나타내는 데 필요한 추정 또는 계산된 비트 수를 설명하는 비트량 값이고;
    λ는 미리 결정된 값인, 양자화기.
  66. 제 61 항 내지 제 65 항 중 어느 한 항에 있어서, 상기 양자화기는 상이한 양자화된 값의 인코딩 또는 산술 인코딩에 필요한 추정 또는 계산된 비트 수에 따라 상기 비트량 값을 획득하도록 구성되는, 양자화기.
  67. 제 61 항 내지 제 66 항 중 어느 한 항에 있어서, 상기 양자화기는 상기 결정된 양자화된 가중치 매개변수와 연관된 상기 왜곡 측정값이 미리 결정된 값보다 작거나 같도록 상기 양자화된 가중치 매개변수를 결정하도록 구성되는, 양자화기.
  68. 제 61 항 내지 제 67 항 중 어느 한 항에 있어서, 상기 양자화기는 상기 신경망을 훈련하는 학습 알고리즘을 사용하여 가중치 매개변수의 분산을 설명하는 분산 정보를 획득하도록 구성되는, 양자화기.
  69. 제 61 항 내지 제 68 항 중 어느 한 항에 있어서, 상기 양자화기는 상기 입력 가중치 매개변수로서, 상기 신경망을 훈련하는 학습 알고리즘을 사용하여 가중치 매개변수의 평균값을 설명하는 평균값 정보를 획득하도록 구성되는, 양자화기.
  70. 제 61 항 내지 제 69 항 중 어느 한 항에 있어서, 상기 양자화기는 상기 양자화된 가중치 매개변수의 컨텍스트 기반 산술 인코딩을 위한 컨텍스트에 따라 상기 비트량 값을 결정하도록 구성되는, 양자화기.
  71. 신경망의 가중치 매개변수를 인코딩하기 위한 인코더에 있어서,
    상기 인코더는 입력 가중치 매개변수에 기초하여 양자화된 가중치 매개변수를 획득하도록 구성된, 제 61 항 내지 제 70 항 중 어느 한 항에 따른 양자화기를 포함하고,
    상기 인코더는 컨텍스트 종속 산술 코딩을 사용하여 상기 신경망의 상기 양자화된 가중치 매개변수를 인코딩하도록 구성되는, 인코더.
  72. 제 71 항에 있어서, 상기 인코더는 제 1 항 내지 제 30 항 중 어느 한 항에 따른 인코더의 임의의 특징 또는 특징 또는 기능의 조합을 포함하는, 인코더.
  73. 신경망의 가중치 매개변수를 인코딩하는 방법에 있어서,
    상기 방법은 상기 신경망의 복수의 가중치 매개변수를 획득하는 단계를 포함하고;
    상기 방법은 컨텍스트 종속 산술 코딩을 사용하여 상기 신경망의 상기 가중치 매개변수를 인코딩하는 단계를 포함하고;
    상기 방법은 하나 이상의 이전에 인코딩된 가중치 매개변수에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 인코딩된 신택스 요소에 따라, 가중치 매개변수의 인코딩, 또는 상기 가중치 매개변수의 숫자 표현의 신택스 요소의 인코딩을 위한 컨텍스트를 선택하는 단계를 포함하고; 및
    상기 가중치 매개변수 또는 상기 가중치 매개변수의 신택스 요소는 상기 선택된 컨텍스트를 사용하여 인코딩되는, 방법.
  74. 신경망의 가중치 매개변수를 디코딩하는 방법에 있어서,
    상기 방법은 상기 신경망의 가중치 매개변수를 나타내는 복수의 비트를 획득하는 단계를 포함하고;
    상기 방법은 컨텍스트 종속 산술 코딩을 사용하여 상기 신경망의 상기 가중치 매개변수를 디코딩하는 단계를 포함하고;
    상기 방법은 하나 이상의 이전에 디코딩된 가중치 매개변수에 따라 및/또는 하나 이상의 가중치 매개변수의 숫자 표현의 하나 이상의 이전에 디코딩된 신택스 요소에 따라, 가중치 매개변수의 디코딩, 또는 가중치 매개변수의 숫자 표현의 신택스 요소의 디코딩을 위한 컨텍스트를 선택하는 단계를 포함하고;
    상기 가중치 매개변수, 또는 가중치 매개변수의 신택스 요소는 상기 선택된 컨텍스트를 사용하여 디코딩되는, 방법.
  75. 신경망의 가중치 매개변수를 디코딩하는 방법에 있어서,
    상기 방법은 상기 신경망의 복수의 입력 가중치 매개변수를 획득하는 단계를 포함하고,
    상기 방법은 양자화되지 않은 입력 가중치 매개변수 대신 상이한 양자화된 값의 사용으로 야기된 예상 왜곡을 설명하는 왜곡 측정값을 사용하고 상이한 양자화된 값의 표현을 위해 추정 또는 계산된 비트 노력을 기술하는 비트량 값을 사용하여 입력 가중치 매개변수에 기초하여 양자화된 가중치 매개변수를 결정하는 단계를 포함하는, 방법.
  76. 신경망의 가중치 매개변수를 디코딩하는 방법에 있어서,
    상기 방법은 입력 가중치 매개변수에 기초하여 양자화된 가중치 매개변수를 획득하기 위해서, 복수의 입력 가중치 매개변수를 양자화하는 단계를 포함하고,
    상기 방법은 컨텍스트 종속 산술 코딩을 사용하여 상기 신경망의 상기 양자화된 가중치 매개변수를 인코딩하는 단계를 포함하는, 방법.
  77. 컴퓨터 프로그램이 컴퓨터에서 실행될 때 제 73 항 내지 제 76 항 중 어느 한 항의 방법을 실행하기 위한 컴퓨터 프로그램.
KR1020217033194A 2019-03-18 2020-03-18 신경망의 매개변수를 압축하기 위한 방법 및 장치 KR20220007853A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19163546.5 2019-03-18
EP19163546 2019-03-18
PCT/EP2020/057513 WO2020188004A1 (en) 2019-03-18 2020-03-18 Methods and apparatuses for compressing parameters of neural networks

Publications (1)

Publication Number Publication Date
KR20220007853A true KR20220007853A (ko) 2022-01-19

Family

ID=65955070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033194A KR20220007853A (ko) 2019-03-18 2020-03-18 신경망의 매개변수를 압축하기 위한 방법 및 장치

Country Status (7)

Country Link
US (1) US20220004844A1 (ko)
EP (1) EP3942700A1 (ko)
JP (1) JP7356513B2 (ko)
KR (1) KR20220007853A (ko)
CN (1) CN113748605A (ko)
TW (1) TWI744827B (ko)
WO (1) WO2020188004A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114731406A (zh) * 2020-12-04 2022-07-08 深圳市大疆创新科技有限公司 编码方法、解码方法和编码装置、解码装置
EP4324098A2 (en) * 2021-04-16 2024-02-21 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus, method and computer program for decoding neural network parameters and apparatus, method and computer program for encoding neural network parameters using an update model
US20220385907A1 (en) * 2021-05-21 2022-12-01 Qualcomm Incorporated Implicit image and video compression using machine learning systems
TWI773507B (zh) * 2021-09-01 2022-08-01 國立陽明交通大學 預測系統可靠度之方法與裝置
CN114781604B (zh) * 2022-04-13 2024-02-20 广州安凯微电子股份有限公司 神经网络权重参数的编码方法、编码器及神经网络处理器
CN116911384B (zh) * 2023-06-13 2024-01-26 电子科技大学 一种零抑制的增量知识调优方法、装置及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9936201B2 (en) * 2015-01-27 2018-04-03 Qualcomm Incorporated Contexts for large coding tree units
CN107736027B (zh) * 2015-06-12 2021-06-01 松下知识产权经营株式会社 图像编码方法、图像解码方法、图像编码装置及图像解码装置
US20180089587A1 (en) * 2016-09-26 2018-03-29 Google Inc. Systems and Methods for Communication Efficient Distributed Mean Estimation

Also Published As

Publication number Publication date
EP3942700A1 (en) 2022-01-26
JP2022527447A (ja) 2022-06-02
JP7356513B2 (ja) 2023-10-04
TWI744827B (zh) 2021-11-01
WO2020188004A1 (en) 2020-09-24
CN113748605A (zh) 2021-12-03
US20220004844A1 (en) 2022-01-06
TW202042559A (zh) 2020-11-16

Similar Documents

Publication Publication Date Title
KR20220007853A (ko) 신경망의 매개변수를 압축하기 위한 방법 및 장치
Wiedemann et al. Deepcabac: A universal compression algorithm for deep neural networks
Kirchhoffer et al. Overview of the neural network compression and representation (NNR) standard
CN111641832B (zh) 编码方法、解码方法、装置、电子设备及存储介质
CN107481295B (zh) 基于动态字节长度分配的卷积神经网络的图像压缩系统
CN113767635A (zh) 神经数据压缩的内容自适应优化
TWI806199B (zh) 特徵圖資訊的指示方法,設備以及電腦程式
US11496769B2 (en) Neural network based image set compression
KR20200109904A (ko) Dnn 기반 이미지 또는 비디오 코딩을 위한 시스템 및 방법
El-Nouby et al. Image compression with product quantized masked image modeling
US20220393986A1 (en) Concepts for Coding Neural Networks Parameters
US20230106778A1 (en) Quantization for Neural Networks
Akbari et al. Learned multi-resolution variable-rate image compression with octave-based residual blocks
Sitaram et al. Efficient codebooks for vector quantization image compression with an adaptive tree search algorithm
JP6960784B2 (ja) ニューラルネットワーク、符号化装置、復号装置、学習方法、制御方法、およびプログラム
KR20230010854A (ko) 뉴럴 네트워크 파라미터들의 표현에 대한 향상된 개념
US20230289588A1 (en) Deep Neural Network Processing Device with Decompressing Module, Decompressing Method and Compressing Method
Haase et al. Bitrate-Performance Optimized Model Training for the Neural Network Coding (NNC) Standard
Balcilar et al. Vector Quantization and Shifting: Exploiting Latent Properties to Optimize Neural Codecs
WO2024013109A1 (en) Encoder, decoder and methods for coding a data structure
CN114554210A (zh) 无损图像压缩方法及系统
KR20240004520A (ko) 신경망 파라미터를 디코딩하는 장치, 방법 및 컴퓨터 프로그램과 업데이트 모델을 사용하여 신경망 파라미터를 인코딩하는 장치, 방법 및 컴퓨터 프로그램
WO2023131641A1 (en) Concepts for encoding and decoding neural network parameters
WO2023066507A1 (en) An autoencoder for data compression
EP4298605A1 (en) Online training-based encoder tuning with multi model selection in neural image compression

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
E902 Notification of reason for refusal