뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치
Method and apparatus for quantizing data in a neural network
특허 요약
뉴럴 네트워크에 포함된 레이어에서 처리되는 데이터의 집합을 획득하고, 데이터의 집합에 포함된 데이터 값들에 기초한 엔트로피에 기초하여 데이터 값들에 할당된 양자화 레벨들을 조정하고, 조정된 양자화 레벨들에 따라 데이터의 집합에 포함된 데이터 값들을 양자화함으로써 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치를 제공할 수 있다.
청구항
번호청구항
1

뉴럴 네트워크에서 데이터를 양자화하는 방법에 있어서,상기 뉴럴 네트워크에 포함된 레이어에서 처리되는 부동 소수점 데이터의 집합을 획득하는 단계;상기 부동 소수점 데이터의 집합에 포함된 데이터 값들에 기초한 가중 엔트로피(weighted entropy)를 결정하는 단계; 상기 가중 엔트로피에 기초하여 상기 데이터 값들에 할당된 양자화 레벨들을 조정하는 단계; 및상기 조정된 양자화 레벨들에 따라 상기 부동 소수점 데이터의 집합에 포함된 상기 데이터 값들을 양자화하는 단계를 포함하고,상기 부동 소수점 데이터의 집합이 액티베이션(activation) 값들의 집합인 경우, 엔트로피 기반의 로그 데이터 표현(logarithm data representation) 기반 양자화 방식을 이용하여 상기 액티베이션 값들에 대응되는 데이터 값들에 할당된 액티베이션 양자화 레벨들은 액티베이션 가중 엔트로피에 의해 조정되고,상기 액티베이션 값들의 집합에 대응되는 상기 데이터 값들은 상기 조정된 양자화 레벨들에 따라 양자화되는 것인, 방법.

2

제 1항에 있어서,상기 가중 엔트로피는 상기 부동 소수점 데이터의 집합에 포함된 상기 데이터 값들의 분포에 상기 데이터 값들의 크기에 기초한 가중 인자(weighting factor)를 적용함으로써 결정되는 것인, 방법.

3

제 1항에 있어서,상기 부동 소수점 데이터의 집합은 상기 레이어에서 처리되는 상기 액티베이션 값들의 집합 및 상기 레이어에서 처리되는 웨이트(weight) 값들의 집합 중 적어도 하나를 포함하는 것인, 방법.

4

제 1항에 있어서,상기 부동 소수점 데이터의 집합이 웨이트 값들의 집합인 경우 상기 가중 엔트로피를 결정하는 단계는,상기 웨이트 값들의 집합을 복수의 클러스터들로 그루핑하는 단계;상기 그루핑된 클러스터들 각각에 포함되는 웨이트 값들의 개수를 상기 웨이트 값들의 집합에 포함되는 웨이트 값들의 총 개수로 나눔으로써, 상기 그루핑된 클러스터들 각각의 상대 빈도(relative frequency)를 결정하는 단계;상기 그루핑된 클러스터들 각각에 포함되는 상기 웨이트 값들의 크기에 기초하여 상기 그루핑된 클러스터들 각각의 대표 중요도(representative importance)를 결정하는 단계; 및상기 상대 빈도 및 상기 대표 중요도에 기초하여 웨이트 가중 엔트로피를 결정하는 단계를 포함하는 것인, 방법.

5

제 4항에 있어서,상기 양자화하는 단계는,상기 그루핑된 클러스터들 각각의 상기 대표 중요도에 대응되는 웨이트 값을 상기 그루핑된 클러스터들 각각의 대표 웨이트 값으로 결정하는 단계; 및상기 그루핑된 클러스터들 각각에 포함되는 상기 웨이트 값들을 상기 그루핑된 클러스터들 각각의 상기 대표 웨이트 값으로 양자화하는 단계를 포함하는 것인, 방법.

6

제 4항에 있어서,상기 조정하는 단계는, 상기 가중 엔트로피를 증가시키는 방향으로 상기 클러스터들 각각의 경계값들을 조정함으로써, 상기 데이터 값들에 할당된 양자화 레벨들을 조정하는 단계를 포함하는 것인, 방법.

7

제 1항에 있어서,상기 부동 소수점 데이터의 집합이 상기 액티베이션 값들의 집합인 경우 상기 가중 엔트로피를 결정하는 단계는,상기 양자화 레벨들 각각에 포함되는 액티베이션 값들의 개수를 상기 액티베이션 값들의 집합에 포함되는 액티베이션 값들의 총 개수로 나눔으로써 상기 양자화 레벨들 각각의 상대 빈도를 결정하는 단계;상기 양자화 레벨들 각각에 대응되는 데이터 값을 상기 양자화 레벨들 각각의 대표 중요도로 결정하는 단계; 및상기 상대 빈도 및 상기 대표 중요도에 기초하여 상기 액티베이션 가중 엔트로피를 결정하는 단계를 포함하는 것인, 방법.

8

제 7항에 있어서,상기 조정하는 단계는,상기 가중 엔트로피를 증가시키는 방향으로 상기 양자화 레벨들 중 최초의 양자화 레벨에 대응되는 값 및 상기 양자화 레벨들 간의 간격의 크기를 조정함으로써, 상기 데이터 값들에 할당된 양자화 레벨들을 조정하는 단계를 포함하는 것인, 방법.

9

제 1항에 있어서,상기 방법이 상기 뉴럴 네트워크에 포함된 복수의 레이어들 각각에 대해 반복하여 수행된 경우, 상기 조정된 양자화 레벨들은 상기 복수의 레이어들 각각에 최적화되도록 할당된 것인, 방법.

10

제 1항에 있어서,상기 양자화된 데이터 값들에 기초하여 상기 뉴럴 네트워크를 학습(train)시키는 단계; 및상기 학습된 뉴럴 네트워크를 이용하여 입력 데이터로부터 출력 데이터를 추론(inference)하는 단계를 더 포함하는 것인, 방법.

11

제 1항 내지 제 10항 중 어느 한 항의 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.

12

뉴럴 네트워크를 실시(implement)하는 장치에 있어서, 적어도 하나의 프로그램이 저장된 메모리; 및상기 적어도 하나의 프로그램을 실행함으로써 상기 뉴럴 네트워크에서 데이터를 양자화하는 프로세서를 포함하고,상기 프로세서는,상기 뉴럴 네트워크에 포함된 레이어에서 처리되는 부동 소수점 데이터의 집합을 획득하고,상기 부동 소수점 데이터의 집합에 포함된 데이터 값들에 기초한 가중 엔트로피를 결정하며, 상기 가중 엔트로피에 기초하여 상기 데이터 값들에 할당된 양자화 레벨들을 조정하고,상기 조정된 양자화 레벨들에 따라 상기 부동 소수점 데이터의 집합에 포함된 상기 데이터 값들을 양자화하고,상기 부동 소수점 데이터의 집합이 액티베이션(activation) 값들의 집합인 경우, 엔트로피 기반의 로그 데이터 표현(logarithm data representation) 기반 양자화 방식을 이용하여 상기 액티베이션 값들에 대응되는 데이터 값들에 할당된 액티베이션 양자화 레벨들은 액티베이션 가중 엔트로피에 의해 조정되고,상기 액티베이션 값들의 집합에 대응되는 상기 데이터 값들은 상기 조정된 양자화 레벨들에 따라 양자화되는, 장치.

13

제 12항에 있어서,상기 가중 엔트로피는 상기 부동 소수점 데이터의 집합에 포함된 상기 데이터 값들의 분포에 상기 데이터 값들의 크기에 기초한 가중 인자를 적용함으로써 결정되는 것인, 장치.

14

제 12항에 있어서,상기 부동 소수점 데이터의 집합은 상기 레이어에서 처리되는 상기 액티베이션 값들의 집합 및 상기 레이어에서 처리되는 웨이트 값들의 집합 중 적어도 하나를 포함하는 것인, 장치.

15

제 12항에 있어서,상기 부동 소수점 데이터의 집합이 웨이트 값들의 집합인 경우 상기 프로세서는,상기 웨이트 값들의 집합을 복수의 클러스터들로 그루핑하고,상기 그루핑된 클러스터들 각각에 포함되는 웨이트 값들의 개수를 상기 웨이트 값들의 집합에 포함되는 웨이트 값들의 총 개수로 나눔으로써, 상기 그루핑된 클러스터들 각각의 상대 빈도를 결정하며,상기 그루핑된 클러스터들 각각에 포함되는 상기 웨이트 값들의 크기에 기초하여 상기 그루핑된 클러스터들 각각의 대표 중요도를 결정하고,상기 상대 빈도 및 상기 대표 중요도에 기초하여 웨이트 가중 엔트로피를 결정하는 것인, 장치.

16

제 15항에 있어서,상기 프로세서는,상기 그루핑된 클러스터들 각각의 상기 대표 중요도에 대응되는 웨이트 값을 상기 그루핑된 클러스터들 각각의 대표 웨이트 값으로 결정하고,상기 그루핑된 클러스터들 각각에 포함되는 상기 웨이트 값들을 상기 그루핑된 클러스터들 각각의 상기 대표 웨이트 값으로 양자화하는 것인, 장치.

17

제 15항에 있어서,상기 프로세서는,상기 가중 엔트로피를 증가시키는 방향으로 상기 클러스터들 각각의 경계값들을 조정함으로써, 상기 데이터 값들에 할당된 양자화 레벨들을 조정하는 것인, 장치.

18

제 12항에 있어서,상기 부동 소수점 데이터의 집합이 상기 액티베이션 값들의 집합인 경우 상기 프로세서는,상기 양자화 레벨들 각각에 포함되는 액티베이션 값들의 개수를 상기 액티베이션 값들의 집합에 포함되는 액티베이션 값들의 총 개수로 나눔으로써 상기 양자화 레벨들 각각의 상대 빈도를 결정하고,상기 양자화 레벨들 각각에 대응되는 데이터 값을 상기 양자화 레벨들 각각의 대표 중요도로 결정하며,상기 상대 빈도 및 상기 대표 중요도에 기초하여 상기 액티베이션 가중 엔트로피를 결정하는 것인, 장치.

19

제 18항에 있어서,상기 프로세서는,상기 가중 엔트로피를 증가시키는 방향으로 상기 양자화 레벨들 중 최초의 양자화 레벨에 대응되는 값 및 상기 양자화 레벨들 간의 간격의 크기를 조정함으로써, 상기 데이터 값들에 할당된 양자화 레벨들을 조정하는 것인, 장치.

20

제 12항에 있어서,상기 프로세서의 동작들이 상기 뉴럴 네트워크에 포함된 복수의 레이어들 각각에 대해 반복하여 수행된 경우, 상기 조정된 양자화 레벨들은 상기 복수의 레이어들 각각에 최적화되도록 할당된 것인, 장치.