【0076】
[실시 형태 4]실시 형태 1내지 실시 형태 3에서는 이원화된 입력 데이터가 0 또는 1임을 가정하고 있었다. 이 가정에 기반하여 데이터 처리 장치 1 및 데이터 처리 장치 1 A는 계수 어드레스 정보 저장부 131에서 계수 어드레스를 취득하는지를 입력 데이터 판정부 140에 의해 판정하고 있었다. 신경망에서는 각 출력 데이터에 대해 활성화 함수(Activation Function)로서 주로 ReLU(Rectified Linear Unit)라고 하는 램프 함수를 적산하고 그 결과를 다음단의 입력에 이용하는 것이 많다. 여기서 ReLU는 입력값이 0 이상이면 그 값을 출력하고 입력값이 0 미만이면 0을 출력하는 함수이다. 따라서 입력 데이터는 0이나 양의값이 되므로 실시 형태 1내지 실시 형태 3에서 이원화된 입력 데이터는 0이나 1이라고 가정하고 있었다.
【0077】
그런데 활성화 함수로서 ReLU 이외의 함수를 이용할 경우도 있어 그 때에는 입력 데이터가 음의값이 될 경우도 있다. 실시 형태 4와 관련된 데이터 처리 장치 1은 이와 같이 입력 데이터가 양음 2개의 값을 취하는 것으로서 이원화된 데이터일 경우에 바람직한 실시 형태이다.
【0079】
도 19는 실시 형태 4와 관련된 계수 어드레스 정보 저장부 131 C 및 계수 저장부 132 C의 구성 예를 나타내는 도이다. 실시 형태 4와 관련된 데이터 처리 장치 1은 이원화된 입력 데이터가 양의 경우와 음의 경우에 대응하기 때문에, 각각에 대해 계수를 계수 저장부 132 C에 저장해 두는 점에서 실시 형태 1 및 실시 형태 2와 다르다. 이원화된 입력 데이터가 양의 경우와 음의 경우에 따라 제어부 142 C가 취득하는 계수가 다르기 때문에, 계수 어드레스 정보 저장부 131 C나 입력 데이터가 양의 경우와 음의 경우에 따라 다른 계수 어드레스를 저장한다. 이외의 구성 및 동작에 대해서는 실시 형태 1 및 실시 형태 2에서 설명한 데이터 처리 장치 1과 같으므로 동일한 구성에 대해서는 동일한 부호를 교부해, 중복한 설명은 생략한다.
【0080】
도 19에 도시된 바와 같이, 이원화된 입력 데이터는 1 및―1이라고 하는 양음 2개의 값을 취할 수 있다. 입력 데이터가 1일 경우 제어부 142 C는 계수 어드레스 An(n는 0 이상 7 이하의 정수)를 대신하여 계수 어드레스 An_1을 취득한다. 한편, 입력 데이터가―1일 경우 제어부 142 C는 계수 어드레스 An(n는 0 이상 7 이하의 정수)를 대신하여 계수 어드레스 An_-1을 취득한다.
【0084】
한편, 도 20의 밑그림에 나타나도록, 평균=1및 분산=1이 되도록 가중치 파라미터나 바이어스 값을 조정하는 처리(Batch Normalization)를 함으로써, 입력값의 분포 변형을 출력값의 분포에서는 억제할 수 있다.
【0085】
실시 형태 4와 관련된 계수 어드레스 정보 저장부 131 C 및 계수 저장부 132 C는 이원화된 입력 데이터의 양음 부호에 따라 각각 계수 어드레스 정보 및 계수를 저장하고 있다. 따라서, 실시 형태 4와 관련된 데이터 처리 장치 1 C에서는 이원화된 입력 데이터의 양음에 따라 다른 계수를 누적 가산할 수 있다. 즉 데이터 처리 장치 1 C는 누적 가산과 동시에 Batch Normalization를 할 수 있다. 그 결과, 데이터 처리 장치 1 C는 신경망에 의한 추론 정밀도의 열화를 억제할 수 있다.
실시 형태5
【0086】[실시 형태 5](구성) 도 21은 실시 형태 5와 관련된 데이터 처리 장치 1 D의 구성 예를 나타내는 블록도이다. 실시 형태 5와 관련된 데이터 처리 장치 1 D는 실시 형태 1과 관련된 데이터 처리 장치 1과 비교하여 최대 빈수 인덱스 판정부 144를 추가로 구비하는 점, 제어부 142 D가 조정한 계수를 FPU141D에 출력하는 점 및 제어부 142 D가 FPU141D에 대해 오프셋 가산을 하도록 제어하는 점이 다르다. 이외의 구성 및 동작에 대해서는 실시 형태 1에서 설명한 데이터 처리 장치 1과 같으므로 동일한 구성에 대해서는 동일한 부호를 교부해, 중복한 설명은 생략한다.
【0087】 도 21에 도시된 바와 같이, 실시 형태 5와 관련된 추론부 14 D는 입력 데이터 판정부 140과 최대 빈수 인덱스 판정부 144와 FPU 141D와 제어부 142 D를 구비한다.
【0088】 실시 형태 5에서 계수 어드레스 정보에 포함되는 계수 어드레스 중 가장 출현 빈도가 높은 계수 어드레스를 "최대 빈수 계수 어드레스“ 라고 부른다. 최대 빈수 인덱스 판정부 144는 제어부 142 D에 의해 읽어내진 계수 어드레스가 최대 빈수 계수 어드레스인지를 판정하기 때문에, 최대 빈수 계수 어드레스를 기억한다. 최대 빈수 계수 어드레스의 결정 방법은 후술한다. 최대 빈수 인덱스 판정부 144는 제어부 142 D가 입력 데이터 판정부 140의 판정 결과에 기반하여 계수 어드레스 정보 저장부 131에서 계수 어드레스를 읽어냈을 때, 읽어내진 계수 어드레스가 최대 빈수 계수 어드레스인지를 판정한다. 또한 최대 빈수 인덱스 판정부 144는 가장 출현 빈도가 높은 계수 어드레스가 읽어내진 횟수를 카운터(도시하지 않는다)로 카운트한다.
【0089】 제어부 142 D는 FPU141D에 대해 가장 출현 빈도가 높은 계수 어드레스에 관한 오프셋 가산을 하도록 제어하는 기능을 추가로 가지는 점에서 실시 형태 1과 관련된 제어부 142와 다르다. 오프셋 가산에 대해서는 도 22 및 도 23을 이용하여 후술한다.
【0090】 FPU141D는 추론 처리에 앞서 미리 조정된 계수에 기반하여 누적 가산을 하는 점 및 상술한 오프셋 가산을 하는 점에서 실시 형태 1과 관련된 FPU141와 다르다.
【0091】 (동작) 도 22는 실시 형태 5에 있어서의 계수의 조정 방법을 설명하는 도이다. 도 22에 도시되는 계수의 조정은 추론 처리에 앞서 미리 수행된다. 환언하면, 도 22에 도시되는 계수의 조정은 곱화연산에 앞서 미리 수행된다.
【0092】계수를 조정하기 때문에, 우선 최대 빈수 계수 어드레스가 결정된다. 제어부 142 D는 곱화연산에 앞서 계수 어드레스 정보 저장부 131에서 계수 어드레스 정보를 읽어내, 최대 빈수 인덱스 판정부 144에 계수 어드레스 정보를 송신한다. 최대 빈수 인덱스 판정부 144는 계수 어드레스 정보 저장부 131에서 읽어내진 계수 어드레스 정보에 대해 계수 어드레스 A0 내지 A7가 출현하는 빈도를 각각 , 카운터(도시하지 않는다)에 의해 카운트한다.
도 22의 예에서는 계수 어드레스 A3가 162회 취득되어 있고 계수 어드레스 A3에 저장된 계수가 가장 많이 적화연산으로 사용되는 것을 알 수 있다. 따라서, 최대 빈수 인덱스 판정부 144는 최대 빈수 계수 어드레스는 계수 어드레스 A3로 결정한다. 또한 여기에서는 최대 빈수 인덱스 판정부 144가 최대 빈수 계수 어드레스를 결정하는 예를 설명했으나, 최대 빈수 계수 어드레스를 결정하는 방법은 이에 한정되지 않는다. 예를 들면 데이터 처리 장치 1 D의 외부에 있는 퍼스널 컴퓨터(Personal Computer) 및 프로그램을 이용하여 최대 빈수 계수 어드레스를 결정해도 좋다. 이 경우, 예를 들면 프로세서 10이 프로그램을 실행하여 최대 빈수 인덱스 판정부 144가 가지는 최대 빈수 계수 어드레스를 지지하는 레지스터(도시하지 않는다)에 최대 빈수 계수 어드레스를 기록한다.
【0093】 최대 빈수 계수 어드레스가 결정된 후, 계수를 조정하기 때문에, 제어부 142 D는 계수 어드레스 A0 내지 A7에 기반하여 각각에 저장되어 있는 계수를 취득한다. 그리고 최대 빈수 인덱스 판정부 144로부터 수신한 계수 어드레스 A3가 최대 빈수 계수 어드레스라고의 정보에 기반하여 취득된 계수의 조정을 수행한다. 보다 구체적으로는 가장 많이 사용되는 계수 값을 0이 되도록 조정을 한다. 도 22의 예에서는 제어부 142 D는 계수 어드레스 A3에 저장되어 있는 계수 -0.13을 0.00으로 조정한다. 이 조정에 맞추어 제어부 142 D는 계수 어드레스 A0에 저장되는 계수-0.79를-0.79+0.13=-0.66으로 조정한다. 마찬가지로 계수 어드레스 A1에 저장되어 있는 계수-0.46을-0.46+0.13=-0.33으로 조정한다. 이와 같이 하여 제어부 142 D는 계수 어드레스 A2 및 A4 내지 A7에 저장되는 계수의 각각에 대해+0.13을 하고 조정을 한다.
【0094】
이어서 실시 형태 5와 관련된 데이터 처리 장치 1 D가 추론 처리를 하는데 앞서 결정되는 오프셋값에 대해 설명한다. 상술한 것처럼, 최대 빈수 인덱스 판정부 144는 최대 빈수 계수 어드레스를 결정함과 동시에, 계수 어드레스 정보에 포함되는 최대 빈수 계수 어드레스의 출현 횟수를 카운터(도시하지 않는다)로 카운트한다. 오프셋값은(오프셋값)=(최대 빈수 계수 어드레스가 읽어내진 횟수) ×(가장 사용 횟수가 많은 계수)로 산출되고 계수 저장부 132에 저장된다.
【0095】
추론 처리가 시작된 후, 실시 형태 5와 관련된 FPU141D는 추론 처리에 앞서 미리 조정되어 계수 저장부 132에 저장된 조정 후의 계수에 기반하여 적화연산을 위한 누적 가산을 한다. FPU141D는 조정 후의 계수에 기반한 누적 가산에 이어 계수 저장부 132에서 읽어내진 오프셋값을 상기의 누적 가산 결과에 가산한다.
【0101】 (효과) 실시 형태 5와 관련된 데이터 처리 장치 1 D는 실시 형태 1과 관련된 데이터 처리 장치 1과 비교하여 최대 빈수 인덱스 판정부 144를 추가로 구비한다. 최대 빈수 인덱스 판정부 144는 곱화연산시, 계수 어드레스 정보 저장부 131에서 읽어내진 계수 어드레스가 최대 빈수 계수 어드레스인지의 여부를 판정한다. FPU141D는 0으로 조정된 계수에 대해 누적 가산을 생략할 수 있으므로, 누적 가산에 필요한 소비 전력 및 실행 시간을 절감할 수 있다.
'4차 산업과 특허' 카테고리의 다른 글
Articial Intelligence 중요특허 3(1) (0) | 2021.09.28 |
---|---|
Articial Intelligence 중요특허 2(4) - Renesas (0) | 2021.09.25 |
Articial Intelligence 중요특허 1(3) - Renesas (0) | 2021.09.13 |
Articial Intelligence 중요특허 1(2) - Renesas (0) | 2021.09.12 |
Articial Intelligence 중요특허 1(1) - Renesas (0) | 2021.09.09 |
댓글