1 |
1
가중치 세트(weight set)에 대해 클리핑 함수(clipping function)를 적용하여 이진화 가중치 세트(binarized weight set)를 생성하는 단계;이진화 신경망에 대해 입력 데이터 및 상기 이진화 가중치 세트에 기초한 순방향 연산을 순차적으로 수행하여 출력 데이터를 생성하는 단계;상기 이진화 신경망에 대해 상기 출력 데이터로부터 계산된 손실에 기초한 역방향 연산을 순차적으로 수행하여 상기 가중치 세트의 기울기(gradient)를 생성하는 단계; 및상기 가중치 세트의 기울기에 기초하여 상기 가중치 세트를 업데이트하는 동작 및 상기 클리핑 함수의 범위를 변경하는 동작을 포함하는 학습 동작을 수행하는 단계를 포함하는 이진화 신경망의 학습 방법
|
2 |
2
제 1 항에 있어서,상기 클리핑 함수의 범위는 상기 가중치 세트의 크기에 따라 적응적으로 변경되는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
3 |
3
제 1 항에 있어서,상기 클리핑 함수는 제1 임계 값 및 제2 임계 값으로 표현되며,상기 클리핑 함수의 제1 임계 값의 기울기 및 상기 클리핑 함수의 제2 임계 값의 기울기를 이용하여 상기 클리핑 함수의 범위를 변경하는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
4 |
4
제 1 항에 있어서, 상기 이진화 가중치 세트를 생성하는 단계는,상기 가중치 세트에 포함되는 복수의 가중치 요소(element)들에 대해 상기 클리핑 함수를 적용하여 클리핑 가중치 세트(clipped weight set)를 획득하는 단계; 및상기 클리핑 가중치 세트에 포함되는 복수의 클리핑 가중치 요소들에 대해 스케일 부호 함수(scaled sign function)를 적용하여 상기 이진화 가중치 세트를 획득하는 단계를 포함하는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
5 |
5
제 1 항에 있어서, 상기 출력 데이터를 생성하는 단계는,상기 이진화 가중치 세트를 이용하여 상기 입력 데이터에 대한 컨볼루션(convolution) 연산을 수행하는 단계;상기 컨볼루션 연산의 수행 결과에 대해 풀링(pooling) 연산을 수행하는 단계;상기 풀링 연산의 수행 결과에 대해 배치 정규화(batch normalization)를 수행하는 단계상기 배치 정규화의 수행 결과에 대해 활성화 함수(activation function)를 적용하여 상기 출력 데이터를 획득하는 단계를 포함하는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
6 |
6
제 1 항에 있어서, 상기 가중치 세트의 기울기를 생성하는 단계는,상기 출력 데이터로부터 계산된 손실 입력 데이터에 대해 활성화 함수를 역으로 적용하는 단계;상기 활성화 함수를 역으로 적용한 결과에 대해 배치 정규화를 역으로 수행하는 단계;상기 배치 정규화를 역으로 수행한 결과에 대해 풀링 연산을 역으로 수행하는 단계;상기 풀링 연산을 역으로 수행한 결과에 대해 컨볼루션 연산을 역으로 수행하여 손실 출력 데이터 및 상기 이진화 가중치 세트의 기울기를 획득하는 단계;상기 이진화 가중치 세트의 기울기에 대해 스케일 부호 함수를 역으로 적용하여 클리핑 가중치 세트의 기울기를 획득하는 단계; 및상기 클리핑 가중치 세트의 기울기에 대해 상기 클리핑 함수를 역으로 적용하여 상기 가중치 세트의 기울기, 상기 클리핑 함수의 제1 임계 값의 기울기 및 상기 클리핑 함수의 제2 임계 값의 기울기를 획득하는 단계를 포함하는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
7 |
7
제 1 항에 있어서, 상기 학습 동작을 수행하는 단계는,상기 가중치 세트의 기울기에 기초하여 상기 가중치 세트를 업데이트하는 단계;상기 클리핑 함수의 제1 임계 값의 기울기에 기초하여 상기 클리핑 함수의 제1 임계 값을 업데이트하는 단계; 및상기 클리핑 함수의 제2 임계 값의 기울기에 기초하여 상기 클리핑 함수의 제2 임계 값을 업데이트하는 단계를 포함하는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
8 |
8
제 1 항에 있어서,상기 이진화 가중치 세트를 생성하는 단계, 상기 출력 데이터를 생성하는 단계, 상기 가중치 세트의 기울기를 생성하는 단계, 및 상기 학습 동작을 수행하는 단계는 미리 설정된 반복 횟수만큼 반복 수행되는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
9 |
9
제 8 항에 있어서,상기 이진화 가중치 세트를 생성하는 단계, 상기 출력 데이터를 생성하는 단계, 상기 가중치 세트의 기울기를 생성하는 단계, 및 상기 학습 동작을 수행하는 단계는 미리 설정된 반복 횟수만큼 반복 수행된 이후에, 학습 결과를 저장하는 단계를 더 포함하는 것을 특징으로 하는 이진화 신경망의 학습 방법
|
10 |
10
복수의 데이터들을 저장하는 복수의 메모리 셀들을 포함하는 메모리 코어; 및이진화 신경망을 실행하여, 상기 메모리 코어에 저장하고자 하는 기입 데이터 또는 상기 메모리 코어로부터 독출된 독출 데이터에 대한 데이터 처리를 수행하는 프로세싱 로직을 포함하고,상기 이진화 신경망은, 가중치 세트(weight set)에 대해 클리핑 함수(clipping function)를 적용하여 이진화 가중치 세트(binarized weight set)를 생성하고, 상기 이진화 신경망에 대해 입력 데이터 및 상기 이진화 가중치 세트에 기초한 순방향 연산을 순차적으로 수행하여 출력 데이터를 생성하고, 상기 이진화 신경망에 대해 상기 출력 데이터로부터 계산된 손실에 기초한 역방향 연산을 순차적으로 수행하여 상기 가중치 세트의 기울기(gradient)를 생성하며, 상기 가중치 세트의 기울기에 기초하여 상기 가중치 세트를 업데이트하는 동작 및 상기 클리핑 함수의 범위를 변경하는 동작을 포함하는 학습 동작을 수행하여 학습되는 메모리 장치
|