KR20200023155A - 뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템 - Google Patents

뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템 Download PDF

Info

Publication number
KR20200023155A
KR20200023155A KR1020180163309A KR20180163309A KR20200023155A KR 20200023155 A KR20200023155 A KR 20200023155A KR 1020180163309 A KR1020180163309 A KR 1020180163309A KR 20180163309 A KR20180163309 A KR 20180163309A KR 20200023155 A KR20200023155 A KR 20200023155A
Authority
KR
South Korea
Prior art keywords
activations
bit
processor
vector
propagation
Prior art date
Application number
KR1020180163309A
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 삼성전자주식회사
Priority to US16/550,498 priority Critical patent/US20200065659A1/en
Publication of KR20200023155A publication Critical patent/KR20200023155A/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

일 측면에 따른 뉴럴 네트워크(neural network)의 학습을 가속하는 방법은, 상기 학습에 이용되는 액티베이션들(activations) 및 상기 액티베이션들에 대응하는 비트-벡터(bit-vector)를 획득하는 단계; 상기 비트-벡터를 이용하여 상기 획득된 액티베이션들 중 연산이 필요한 액티베이션들을 선택하는 단계; 및 상기 선택된 액티베이션들 및 상기 선택된 액티베이션들에 대응하는 필터들을 이용하여 역 전파(backward propagation)를 수행하는 단계;를 포함한다.

Description

뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템 {A method for accelerating training process of neural network and a neural network system}
뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템에 관한다.
뉴럴 네트워크(neural network)는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미한다. 뉴럴 네트워크 시스템은 복잡한 입력 데이터에 대한 많은 양의 연산을 필요로 한다.
뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템을 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 측면에 따른 뉴럴 네트워크(neural network)의 학습을 가속하는 방법은, 상기 학습에 이용되는 액티베이션들(activations) 및 상기 액티베이션들에 대응하는 비트-벡터(bit-vector)를 획득하는 단계; 상기 비트-벡터를 이용하여 상기 획득된 액티베이션들 중 연산이 필요한 액티베이션들을 선택하는 단계; 및 상기 선택된 액티베이션들 및 상기 선택된 액티베이션들에 대응하는 필터들을 이용하여 역 전파(backward propagation)를 수행하는 단계;를 포함한다.
다른 측면에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 포함한다.
또 다른 측면에 따른 뉴럴 네트워크(neural network) 시스템은, 메모리; 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 메모리로부터 상기 학습에 이용되는 액티베이션들(activations) 및 상기 액티베이션들에 대응하는 비트-벡터(bit-vector)를 독출하고, 상기 비트-벡터를 이용하여 상기 독출된 액티베이션들 중 연산이 필요한 액티베이션들을 선택하고, 상기 메모리로부터 상기 선택된 액티베이션들에 대응하는 필터들 독출하고, 상기 선택된 액티베이션들 및 상기 독출된 필터들을 이용하여 역 전파(backward propagation)를 수행한다.
도 1은 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 2는 컨벌루션 레이어(convolution layer)의 일 예를 나타낸 도면이다.
도 3은 순 전파, 역 전파 및 가중치 갱신을 설명하기 위한 도면이다.
도 4는 뉴럴 네트워크 시스템이 동작하는 일 예를 도시한 흐름도이다.
도 5는 뉴럴 네트워크 시스템의 일 예를 도시한 구성도이다.
도 6은 프로세서가 비트-벡터를 생성하는 일 예를 설명하기 위한 도면이다.
도 7은 프로세서가 비트-벡터를 이용하여 액티베이션들을 선택하는 일 예를 설명하기 위한 도면이다.
도 8은 프로세서가 제로 패딩을 수행하는 일 예를 설명하기 위한 도면이다.
도 9는 역 전파에 이용되는 필터를 설명하기 위한 도면이다.
도 10은 뉴럴 네트워크 시스템의 다른 예를 도시한 구성도이다.
도 11은 뉴럴 네트워크 시스템이 동작하는 다른 예를 도시한 흐름도이다.
도 12는 뉴럴 네트워크 시스템이 동작하는 또 다른 예를 도시한 흐름도이다.
실시 예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “…유닛” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시 예에 대하여 상세히 설명한다. 그러나 실시 예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.
이하에서는 도면을 참조하여 실시 예들을 상세히 설명한다.
도 1은 뉴럴 네트워크의 일 예를 설명하기 위한 도면이다.
도 1에 도시된 뉴럴 네트워크(1)는 딥 뉴럴 네트워크(Deep Neural Network, 이하 'DNN'이라고 함)의 일 예일 수 있다. DNN은 컨볼루션 뉴럴 네트워크(Convolutional Neural Networks, CNN), 리커런트 뉴럴 네트워크(Recurrent Neural Networks, RNN) 등 일 수 있으나, 이에 한정되지 않는다. 예를 들어, 뉴럴 네트워크(1)는 입력 레이어(Layer 1), 복수의 히든 레이어들(Layer 2, Layer 3, Layer 4, Layer 5) 및 출력 레이어(Layer 6)를 포함하는 DNN일 수 있다.
뉴럴 네트워크(1)가 DNN으로 구현된 경우, 유효한 정보를 처리할 수 있는 많은 레이어들을 포함할 수 있다. 따라서, 뉴럴 네트워크(1)에 의하면, 싱글 레이어를 포함하는 뉴럴 네트워크보다 복잡한 데이터 집합들이 처리될 수 있다. 한편, 도 1에는 뉴럴 네트워크(1)가 6개의 레이어들을 포함하는 것으로 도시되어 있으나, 이는 예시에 불과하다. 다시 말해, 뉴럴 네트워크(1)는 도 1에 도시된 것보다 더 적거나 많은 레이어들을 포함할 수 있다. 즉, 뉴럴 네트워크(1)는 도 1에 도시된 것과는 다른, 다양한 구조의 레이어들을 포함할 수 있다.
도 2는 컨벌루션 레이어(convolution layer)의 일 예를 나타낸 도면이다.
도 2에는 컨볼루션 레이어(2)의 일부가 도시되어있다. 뉴럴 네트워크는 도 2에 도시된 컨볼루션 레이어(2) 외에도, 풀링 레이어(pooling layer), 풀리 커넥티드(fully connected) 레이어 등으로 구성될 수 있다. 도 2의 컨볼루션 레이어(2)는 Ix × Iy × Iz의 사이즈를 갖는 입력 액티베이션 맵(210) (Input activation map), Fx × Fy × Iz의 사이즈를 갖는 필터(220), 그리고 Ox × Oy × Oz의 사이즈를 갖는 출력 액티베이션 맵(230) (Output activation map)을 포함한다.
입력 액티베이션 맵(210), 필터(220), 출력 액티베이션 맵(230)은 각각 입력 액티베이션들, 가중치(weight)들, 출력 액티베이션들로 구성될 수 있다. 입력 액티베이션 맵(210)은 필터(220)와 컨벌루션 연산이 수행되고, 그 결과 출력 액티베이션 맵(230)이 생성된다.
예를 들어, 필터(220)와 입력 액티베이션 맵(210)은 슬라이딩 윈도우(sliding window) 방식에 의하여 컨벌루션 연산이 수행될 수 있다. 구체적으로, 제1 윈도우 내의 입력 액티베이션들과 가중치들이 각각 곱해진 후 더해진다. 그리고, 제1 윈도우가 어느 축 방향(예를 들어, x축, y축 또는 z축)으로 이동하여 제2 윈도우를 구성한다. 그리고, 제2 윈도우 내의 입력 액티베이션들과 가중치들이 각각 곱해진 후 더해진다. 이러한 방식으로 연산이 연속으로 수행됨에 따라, 출력 액티베이션 맵(230)이 생성된다.
도 2에는 하나의 필터(220)만이 도시되어 있으나, 복수의 필터(220)들이 입력 액티베이션 맵(210)과 컨볼루션 연산이 수행되어, 출력 액티베이션 맵(230)을 생성할 수도 있다.
상술한 연산은 간단하게 입력 액티베이션과 가중치의 곱의 합(multiply and accumulation) 형태로 표현할 수 있다. 아래의 식은 입력 액티베이션 a와 가중치 w의 곱셈 N개가 더해지는 곱의 합 연산을 표현한 식이다.
Figure pat00001
상술한 수학식 1 에서, ai는 i번째 입력 액티베이션을, wi는 i번째 가중치를, S는 곱의 합 연산의 결과값을 의미한다.
뉴럴 네트워크에서 이용되는 ReLU (rectified linear unit) 활성 함수의 입력은 상술한 곱의 합 연산의 결과일 수 있다. ReLU 활성 함수는 f(x) = max(0,x)로 정의되며, 입력이 음수이면 결과로 0이 출력되고, 입력이 양수이면 결과로 입력이 그대로 출력된다.
뉴럴 네트워크의 응용(application)이 증가함에 따라, 뉴럴 네트워크의 성능과 규모도 향상되고 있다. 뉴럴 네트워크가 적절하게 작동되려면(즉, 뉴럴 네트워크의 출력의 정확도가 향상되려면), 일반적으로 많은 데이터 세트들을 사용하여 뉴럴 네트워크를 학습시켜야 한다.
다만, 뉴럴 네트워크의 학습에는 장시간이 소요되고 많은 연산이 필요한 경우가 많다. 따라서 뉴럴 네트워크의 학습을 가속화함으로써, 학습에 소요되는 비용 (예를 들어, 시간, 연산량 등)을 감소시키는 것이 중요하다.
일 실시예에 따른 뉴럴 네트워크 시스템은 뉴럴 네트워크의 학습을 가속화함에 따라 학습에 소요되는 비용이 감소될 수 있다. 구체적으로, 일 실시예에 따른 뉴럴 네트워크 시스템은 역 전파(backward propagation)의 과정에 필요한 연산량을 감소시킴으로써, 학습에 소요되는 비용이 감소될 수 있다.
이하, 도 3을 참조하여, 순 전파(forward propagation), 역 전파 및 가중치 갱신을 설명한다.
도 3은 순 전파, 역 전파 및 가중치 갱신을 설명하기 위한 도면이다.
도 3에는 복수의 레이어들을 포함하는 뉴럴 네트워크(3)의 일 예가 도시되어 있다. 뉴럴 네트워크(3)에 의하면, 최초 입력 액티베이션들(i0, …, in)이 적어도 하나의 히든 레이어들을 거치면서 연산이 수행됨에 따라 최종 출력 액티베이션들(o0, … ,om)이 생성된다. 여기에서, 연산은 각 레이어에서의 입력 액티베이션과 가중치의 곱의 합 연산, 곱의 합 연산 결과에 ReLU 활성 함수를 적용함으로써 출력 액티베이션을 생성하는 과정을 포함할 수 있다.
순 전파는 최초 입력 액티베이션들(i0, …, in)에 의하여 최종 출력 액티베이션들(o0, … ,om)이 생성되는 방향으로의 과정을 의미한다. 예를 들어, 최초 입력 액티베이션들(i0, …, in)은 가중치들과의 연산을 통하여 중간 출력 액티베이션들(a0, …, ak)이 생성된다. 중간 출력 액티베이션들(a0, …, ak)은 그 다음 과정의 입력 액티베이션들이 되며, 상술한 연산이 재차 수행된다. 이러한 과정을 거쳐, 최종적으로, 최종 출력 액티베이션들(o0, … ,om)이 생성된다.
상술한 순 전파의 과정을 수학식으로 정리하면, 아래의 수학식 2와 같다.
Figure pat00002
수학식 2에서, I(x,y,z)는 현재 레이어의 입력 액티베이션을 의미하고, O(x,y,z)는 현재 레이어의 출력 액티베이션을 의미한다. 또한, F(x,y,z,n)은 n번째 필터의 가중치를 의미한다. 순 전파는 수학식 2의 연산이 OxⅹOyⅹOz회 반복됨으로써 종료된다.
최종 출력 액티베이션들(o0, … ,om)이 생성되면, 최종 출력 액티베이션들(o0, … ,om)은 기대 결과와 비교됨으로써 오차(δ)가 생성될 수 있다. 예를 들어, 오차(δ)는 기대 결과와 최종 출력 액티베이션들(o0, … ,om)의 차이일 수 있고, 뉴럴 네트워크(3)의 학습은 오차(δ)가 작아지는 방향으로 이루어져야 한다.
오차(δ)가 작아지기 위해서는, 최종 오차(δ0, ?, δm)를 순 전파 방향의 반대 방향으로 전파(즉, 역 전파)시킴에 따라, 기 수행된 중간 연산들에 이용된 액티베이션들이 갱신되어야 한다. 예를 들어, 최종 오차(δ0, ?, δm)는 가중치들과의 연산을 통하여 중간 오차(δ(1,0), ?, δ(1,l))가 생성된다. 중간 오차(δ(1,0), ?, δ(1,l))는 그 다음 레이어의 중간 오차를 생성하기 위한 입력이 되며, 상술한 연산이 재차 수행된다. 이러한 과정을 거쳐, 오차(δ)는 순 전파 방향의 반대 방향으로 전파되며, 액티베이션들을 갱신하는데 이용되는 액티베이션 그레디언트(gradient of activation)가 연산된다. 다만, 역 전파에 이용되는 필터는 순 전파의 필터가 재배열된 것일 수 있다. 역 전파에 이용되는 필터에 대해서는 도 9를 참조하여 후술한다.
상술한 역 전파의 과정을 수학식으로 정리하면, 아래의 수학식 3과 같다.
Figure pat00003
수학식 3에서, △I(x,y,z)는 역 전파에서의 출력으로서, 순 전파에서의 현재 레이어의 입력 액티베이션의 그래디언트를 의미한다. 또한, △O(x,y,n)은 역 전파에서의 입력으로서, 순 전파에서의 다음 레이어의 입력 액티베이션의 그래디언트를 의미한다. 다만, △O'(x,y,n)는 △O(x,y,n)에 제로 패딩(zero padding)이 수행된 것을 의미한다. 또한, F(x,y,n,z)는 필터의 가중치로서, 순 전파의 필터가 재배열된 필터의 가중치를 의미한다. 역 전파는 수학식 3의 연산이 IxⅹIyⅹIz회 반복됨으로써 종료된다.
상술한 바에 따라, 역 전파가 뉴럴 네트워크(3)의 모든 레이어들에 대하여 수행되면, 역 전파의 결과에 기초하여 가중치가 갱신된다. 구체적으로, 역 전파에 따라 연산된 액티베이션 그레디언트를 이용하여 가중치를 갱신하는데 이용되는 가중치 그레디언트(gradient of weight)가 연산된다. 가중치 갱신을 수학식으로 정리하면, 아래의 수학식 4와 같다.
Figure pat00004
수학식 4에서, △W(x,y,z,n)은 가중치 그레디언트를 의미하고, I(x,y,z)는 현재 레이어의 입력 액티베이션을 의미한다. 또한, △O(x,y,n)은 현재 레이어의 출력 액티베이션의 그레디언트(즉, 다음 레이어의 입력 액티베이션의 그래디언트)를 의미한다. 다만, △O'(x,y,n)는 △O(x,y,n)에 제로 패딩(zero padding)이 수행된 것을 의미한다. 가중치 갱신은 수학식 4의 연산이 FxⅹFyⅹFzⅹFn회 반복됨으로써 종료된다.
상술한 역 전파 및 가중치 갱신을 통하여, 뉴럴 네트워크(3)는 학습된다. 따라서, 뉴럴 네트워크(3)의 학습에 요소되는 비용을 감소시키기 위해서는, 역 전파의 연산량을 감소시키는 것이 중요하다.
순 전파의 과정에는 액티베이션에 ReLU 활성 함수를 적용하는 것이 포함된다. 따라서, 순 전파의 출력 액티베이션들 중 일부는 0(zero)일 수 있다. 이는, 역 전파의 입력 액티베이션들 중 일부가 0인 것을 의미한다.
역 전파가 수행됨에 있어서, 0인 입력 액티베이션에 대해서는 연산이 수행될 필요가 없다. 즉, 역 전파가 입력 값들의 곱의 합 연산을 포함하므로, 입력 값이 0(zero)인 경우 그 결과값은 반드시 0이다. 따라서, 역 전파의 입력 값이 0인 것을 미리 알 수 있다면, 역 전파의 연산량을 감소시킬 수 있다.
일 실시예에 따른 뉴럴 네트워크 시스템은, 순 전파의 과정에서 생성된 비트-벡터(bit-vector)를 이용하여, 역 전파의 연산량을 감소시킨다. 구체적으로, 뉴럴 네트워크 시스템은 비트-벡터를 참조하여, 역 전파의 입력 액티베이션이 0인지 여부를 판단하고, 0이 아닌 입력 액티베이션에 대해서만 역 전파를 수행한다. 따라서, 뉴럴 네트워크 시스템은, 종래의 기술에 비하여, 뉴럴 네트워크의 학습에 소모되는 비용을 감소시킬 수 있다
이하, 도 4 내지 도 12를 참조하여, 일 실시예에 따른 뉴럴 네트워크 시스템 및 뉴럴 네트워크 시스템이 동작하는 예를 구체적으로 설명한다.
도 4는 뉴럴 네트워크 시스템이 동작하는 일 예를 도시한 흐름도이다.
도 4에 도시된 흐름도는 도 5 및 도 10을 참조하여 후술할 뉴럴 네트워크 시스템(5, 10)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도, 도 5 및 도 10을 참조하여 후술될 내용은 도 4의 흐름도에 나타난 방법에도 적용될 수 있다.
410 단계에서, 뉴럴 네트워크 시스템은 학습에 이용되는 액티베이션들 및 액티베이션들에 대응하는 비트-벡터를 획득한다.
학습에 이용되는 액티베이션들은 순 전파를 통하여 생성된 각 레이어에서의 출력 액티베이션들을 의미한다. 뉴럴 네트워크 시스템은 순 전파를 수행함으로써, 각 레이어에 대하여, 출력 액티베이션들 및 비트-벡터를 생성한다. 역 전파를 수행하기 위하여, 뉴럴 네트워크 시스템은 순 전파의 출력 액티베이션들 및 순 전파의 출력 액티베이션들에 대응하는 비트-벡터를 획득한다. 예를 들어, 뉴럴 네트워크 시스템은 메모리에 저장된 출력 액티베이션들 및 비트-벡터를 독출할 수 있다.
420 단계에서, 뉴럴 네트워크 시스템은 비트-벡터를 이용하여 410 단계를 통하여 획득된 액티베이션들 중 연산이 필요한 액티베이션들을 선택한다.
연산이 필요한 액티베이션들은 410 단계를 통하여 획득된 액티베이션들 중 0(zero)이 아닌 값을 나타내는 액티베이션들을 의미한다. 즉, 뉴럴 네트워크 시스템은 비트-벡터에 포함된 비트들을 해석하여 410 단계를 통하여 획득된 액티베이션들 중 0(zero)이 아닌 값을 나타내는 액티베이션들을 선택한다.
비트-벡터에 포함된 비트들 각각은 단일 액티베이션에 대응한다. 또한, 비트-벡터에서의 비트들의 배열 순서는 순 전파의 출력 액티베이션들의 배열 순서와 동일하다. 따라서, 뉴럴 네트워크 시스템은 비트-벡터에 포함된 비트들을 해석함으로써, 어느 액티베이션이 0(zero)이 아닌 값을 나타내는지를 알 수 있다.
일 예로서, 뉴럴 네트워크 시스템은 선택된 액티베이션들의 수가 N이 될 때까지 420 단계의 액티베이션 선택 과정을 수행할 수 있다. 여기에서, N은 단일 신경 기능 유닛(neural functional unit)에 포함된 곱셈기들의 수를 의미한다. 만약, 선택된 액티베이션들의 수가 N을 만족하면, 단일 비트-벡터의 해석이 완료되지 않았다고 하더라도, 뉴럴 네트워크 시스템은 430 단계를 수행할 수 있다.
다른 예로서, 뉴럴 네트워크 시스템은 단일 비트-벡터에 포함된 모든 비트들의 해석을 종료할 때까지 420 단계의 액티베이션 선택 과정을 수행할 수 있다.
430 단계에서, 뉴럴 네트워크 시스템은 420 단계를 통하여 선택된 액티베이션들 및 이에 대응하는 필터들을 이용하여 역 전파를 수행한다.
430 단계에서 이용되는 필터들은 순 전파에서 이용된 필터들이 재배열된 것을 의미한다. 다시 말해, 뉴럴 네트워크 시스템은 순 전파의 출력 액티베이션들 중 일부 및 순 전파의 필터들이 재배열된 필터를 이용하여 역 전파를 수행한다.
예를 들어, 뉴럴 네트워크 시스템은 순 전파의 출력 액티베이션들 중 일부 및 순 전파의 필터들이 재배열된 필터의 곱의 합 연산을 수행함으로써 역 전파를 수행할 수 있다. 또한, 뉴럴 네트워크 시스템은 곱의 합 연산 결과를 이용하여 420 단계를 통하여 선택된 액티베이션들을 갱신할 수 있다. 그리고, 뉴럴 네트워크 시스템은 역 전파의 수행 결과를 이용하여 순 전파에서 이용된 필터들의 가중치들을 갱신할 수도 있다. 여기에서, 역 전파 및 가중치의 갱신은 도 3을 참조하여 상술한 바와 같다.
이하, 도 4를 참조하여 상술한 실시예를 보다 구체적으로 설명한다.
도 5는 뉴럴 네트워크 시스템의 일 예를 도시한 구성도이다.
도 5를 참조하면, 뉴럴 네트워크 시스템(5)은 외부 메모리(510) 및 장치(520)를 포함한다. 장치(520)는 내부 버퍼(521) 및 프로세서(522)를 포함한다. 도 5에 도시된 뉴럴 네트워크 시스템(5)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 5에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 뉴럴 네트워크 시스템(5)에 더 포함될 수 있음을 통상의 기술자라면 이해할 수 있다.
또한, 프로세서(522)는 복수의 논리 게이트들의 어레이로 구현될 수도 있고, 범용적인 마이크로 프로세서와 이 마이크로 프로세서에서 실행될 수 있는 프로그램이 저장된 메모리의 조합으로 구현될 수도 있다. 또한, 다른 형태의 하드웨어로 구현될 수도 있음을 통상의 기술자라면 이해할 수 있다.
또한, 도 5에는 장치(520)가 단일 프로세서(522)를 포함하는 것으로 도시되어 있으나, 이에 제한되지 않는다. 다시 말해, 필요에 따라, 장치(520)는 복수의 프로세서들을 포함할 수도 있다.
뉴럴 네트워크 시스템(5)의 다른 구현 예는 도 10을 참조하여 후술한다.
외부 메모리(510)는 장치(520)의 동작에 의하여 생성된 데이터를 저장한다. 예를 들어, 외부 메모리(510)는 장치(520)가 순 전파 또는 역 전파를 수행함에 따라 생성되는 데이터를 저장할 수 있다. 외부 메모리(510)는 DRAM(dynamic random access memory)이 될 수 있으나, 이에 제한되지 않는다.
장치(520)는 뉴럴 네트워크 연산을 수행하는 프로세서(522) 및 프로세서(522)가 동작하는데 필요한 데이터를 임시 저장하는 내부 버퍼(521)를 포함한다. 다만, 내부 버퍼(521)는 장치(520)에 선택적으로 포함될 수 있으며, 경우에 따라 외부 메모리(510)가 내부 버퍼(521)의 기능을 수행할 수도 있다.
프로세서(522)는 뉴럴 네트워크를 통한 순 전파 및 역 전파를 수행할 수 있다. 또한, 프로세서(522)는 가중치 갱신을 수행할 수도 있다.
프로세서(522)는 학습에 이용되는 액티베이션들 및 액티베이션들에 대응하는 비트-벡터를 획득한다. 예를 들어, 프로세서(522)는 외부 메모리(510)로부터 액티베이션들 및 비트-벡터를 독출할 수 있다.
프로세서(522)는 순 전파를 수행하여, 출력 액티베이션들 및 비트-벡터를 생성한다. 구체적으로, 프로세서(522)는 순 전파의 출력 액티베이션들의 값을 참조하여 비트-벡터를 생성하고, 출력 액티베이션들 및 비트-벡터를 외부 메모리(510)에 저장한다. 역 전파를 수행하기 위하여, 프로세서(522)는 외부 메모리(510)에서 순 전파의 출력 액티베이션들(즉, 역 전파의 입력 액티베이션들) 및 비트-벡터를 독출한다.
이하, 도 6을 참조하여, 프로세서(522)가 비트-벡터를 생성하는 일 예를 설명한다.
도 6은 프로세서가 비트-벡터를 생성하는 일 예를 설명하기 위한 도면이다.
도 6에는 순 전파의 출력 액티베이션들(b0, …, bm) 및 비트-벡터(600)의 일 예가 도시되어 있다.
순 전파에는 ReLU 활성 함수가 적용되는 과정이 포함된다. 따라서, 순 전파의 출력 액티베이션들(b0, …, bm) 중 일부는 0을 나타낼 수 있다. 프로세서(522)는 출력 액티베이션들(b0, …, bm)의 값을 확인하고, 확인된 값이 0인지 여부에 따라 비트-벡터(600)를 생성한다.
예를 들어, 도 6에 도시된 출력 액티베이션들(b0, …, bm) 중에서 b1이 0을 나타내는 것으로 가정하면, 프로세서(522)는 비트-벡터(600)에서 b1에 대응하는 비트를 다른 비트들과는 다르게 설정한다. 따라서, 비트-벡터(600)를 확인하면, 출력 액티베이션들(b0, …, bm) 중 어느 출력 액티베이션이 0인지를 알 수 있다.
프로세서(522)는 생성된 비트-벡터를 외부 메모리(510)에 저장한다.
다시 도 5를 참조하면, 프로세서(522)는 비트-벡터를 이용하여 외부 메모리(510)로부터 독출된 액티베이션들 중 역 전파 연산이 필요한 액티베이션들을 선택한다. 예를 들어, 프로세서(522)는 비트-벡터에 포함된 비트들을 해석하여, 외부 메모리(510)로부터 독출된 액티베이션들 중 0이 아닌 값을 나타내는 액티베이션들을 선택할 수 있다.
이하, 도 7을 참조하여, 프로세서(522)가 액티베이션을 선택하는 일 예를 설명한다.
도 7은 프로세서가 비트-벡터를 이용하여 액티베이션들을 선택하는 일 예를 설명하기 위한 도면이다.
도 7에는 비트-벡터의 일 예가 도시되어 있다. 구체적으로, 도 7에는 좌표(0,0,0)부터 좌표(0,0,63)를 나타내는 제1 비트-벡터(710)가 총 3개의 부분들(BV1, BV2, BV3)을 포함하는 예가 도시되어 있다. 이하, 설명의 편의를 위하여, 비트-벡터의 x축 좌표 또는 y축 좌표가 변하는 경우, 프로세서(522)는 외부 메모리(510)로부터 다른 액티베이션들을 독출하는 것으로 가정한다. 다시 말해, 프로세서(522)는 외부 메모리(510)로부터 제1 비트-벡터(710)의 부분들(BV1, BV2, BV3)에 대응하는 액티베이션들을 한번에 독출할 수 있는 것으로 가정한다.
프로세서(522)는 비트-벡터에 포함된 비트들을 순차적으로 해석한다. 그리고, 프로세서(522)는 외부 메모리(510)로부터 독출한 액티베이션들 중 0이 아닌 값을 나타내는 액티베이션을 선택한다.
일 예로서, 프로세서(522)는 단일 신경 기능 유닛(neural functional unit)에 포함된 곱셈기들의 수와 동일한 단위로 0이 아닌 값을 나타내는 액티베이션을 선택할 수 있다. 예를 들어, 단일 신경 기능 유닛(neural functional unit) 마다 16개의 곱셈기들이 포함되어 있다고 가정하면, 프로세서(522)는 16개 단위로 0이 아닌 액티베이션들을 선택할 수 있다. 따라서, 뉴럴 네트워크 시스템(5)에 포함된 신경 기능 유닛의 사용률이 최대한으로 향상될 수 있다.
상술한 가정에 의하면, 프로세서(522)는 부분(BV1)에 포함된 비트들을 해석하여 총 16개의 액티베이션들을 선택할 수 있다. 그 후에, 프로세서(522)는 선택된 액티베이션들을 이용하여 역 전파를 수행한다. 그 후에, 프로세서(522)는 부분(BV2)을 해석하여 총 16개의 액티베이션들을 선택하고, 역 전파를 수행한다.
한편, 프로세서(522)는 외부 메모리(510)로부터 한번에 독출할 수 있는 액티베이션들에 대한 비트 벡터의 해석을 종료한 경우, 비록 선택된 액티베이션들의 수가 곱셈기들의 수에 미치지 않더라도, 그 때까지 선택된 액티베이션들을 이용하여 역 전파를 수행한다. 예를 들어, 프로세서(522)가 부분(BV3)을 해석함에 따라 총 5개의 0이 아닌 액티베이션들을 선택(즉, 상술한 가정에 의할 때 16개에 미치지 못함)하였다고 하더라도, 프로세서(522)는 더 이상 비트-벡터를 해석하지 않고, 선택된 액티베이션들을 이용하여 역 전파를 수행한다.
그 후에, 프로세서(522)는 외부 메모리(510)로부터 다른 액티베이션들을 독출(즉, 액티베이션의 교체)하여, 도 7을 참조하여 상술한 과정을 반복하여 수행한다. 구체적으로, 프로세서(522)는 외부 메모리(510)로부터 다른 액티베이션들을 독출하고, 제2 비트-벡터(720)에 기초하여 상술한 과정을 반복하여 수행한다.
다시 도 5를 참조하면, 프로세서(522)는 선택된 액티베이션들 및 이에 대응하는 필터들을 이용하여 역 전파를 수행한다. 구체적으로, 프로세서(522)는 도 7을 참조하여 상술한 과정에 따라 액티베이션들을 선택한다. 그리고, 프로세서(522)는 외부 메모리(510)로부터 선택된 액티베이션들에 대응하는 필터를 독출한다. 그리고, 프로세서(522)는 독출된 필터를 재배열하고, 역 전파를 수행한다. 즉, 프로세서(522)는 선택된 액티베이션들과 재배열된 필터들의 곱의 합 연산을 수행한다. 프로세서(522)가 역 전파를 수행하는 구체적인 내용은 도 3을 참조하여 상술한 바와 같다.
상술한 바와 같이, 역 전파를 수행하기 위하여, 프로세서(522)는 액티베이션들에 제로 패딩을 수행하고, 필터를 재배열 한다. 이하, 도 8 및 도 9를 참조하여, 프로세서(522)가 제로 패딩을 수행하는 예 및 필터를 재배열하는 예를 설명한다.
도 8은 프로세서가 제로 패딩을 수행하는 일 예를 설명하기 위한 도면이다.
도 8에는 역 전파에 이용되는 입력 액티베이션들(810) 및 가중치들(820)의 일 예가 도시되어 있다. 한편, 도 8에 도시된 입력 액티베이션들(810), 출력 액티베이션들(820) 및 제로 패딩된 액티베이션들(830)은 일 예에 불과하다. 즉, 제로 패딩의 요지를 벗어나지 않는 범위 내에서 입력 액티베이션들(810), 출력 액티베이션들(820) 및 제로 패딩된 액티베이션들(830)은 변경될 수 있다.
프로세서(522)는 입력 액티베이션들(810)과 가중치들(820)의 곱의 합 연산을 통하여 역 전파를 수행한다. 다만, 도 2를 참조하여 상술한 바와 같이, 프로세서(522)는 슬라이딩 윈도우(sliding window) 방식에 의하여 곱의 합 연산을 수행하므로, 출력 액티베이션들(830)의 수는 입력 액티베이션들(810)의 수보다 적다.
예를 들어, 입력 액티베이션들(810)이 8ⅹ8 매트릭스이고, 가중치들(820)이 5ⅹ5 매트릭스라고 가정하면, 출력 액티베이션들(830)은 4ⅹ4 매트릭스로 생성된다. 따라서, 복수의 레이어들에 대한 연산을 수행할수록 출력 액티베이션들(830)의 수는 점점 1개로 수렴하는바, 이후의 연산이 불가능해질 수도 있다. 즉, 출력 액티베이션들(830)은 입력 액티베이션들(810)과 동일 차원으로 생성되어야 한다.
프로세서(522)는 입력 액티베이션들(810)에 제로 패딩을 함으로써, 입력 액티베이션들(810)의 수를 증가시킨다. 여기에서, 제로 패딩은 입력 액티베이션들에 0을 삽입하는 것을 의미한다. 예를 들어, 프로세서(522)는 입력 액티베이션들(810)에 x좌표 성분 및 y좌표 성분으로 각각 4개씩 0을 삽입한다. 즉, 프로세서(522)는 제로 패딩을 하여 12ⅹ12 매트릭스인 입력 액티베이션들(840)을 생성한다.
프로세서(522)는 입력 액티베이션들(840)과 가중치들(820)의 곱의 합 연산을 수행한다. 이에 따라, 8ⅹ8 매트릭스인 출력 액티베이션들이 생성되므로, 입력 액티베이션들(810)의 차원과 동일해진다. 따라서, 프로세서(522)는 다음 레이어에 대한 곱의 합 연산도 수행할 수 있다.
도 9는 역 전파에 이용되는 필터를 설명하기 위한 도면이다.
도 9에는 순 전파에 이용되는 필터들과 역 전파에 이용되는 필터들의 일 예가 도시되어 있다. 다만, 도 9에 도시된 필터는 설명의 편의를 위하여 도시한 것일 뿐, 필터의 종류 및 크기는 도 9에 도시된 것에 한정되지 않는다.
도 9를 참조하면, 순 전파의 필터들(910)은 5ⅹ5ⅹ20 매트릭스의 필터가 50개인 것으로 가정한다. 프로세서(522)는 순 전파의 필터들(910)을 재배열하여 역 전파의 필터들(920)을 구성한다.
예를 들어, 프로세서(522)는 순 전파의 필터들(910)에서 z성분이 동일한 엘리먼트들을 조합하여 역 전파의 필터들(920)을 구성할 수 있다. 구체적으로, 프로세서(522)는 동일한 z성분을 갖는 50개의 XⅹY 매트릭스들을 조합하여 하나의 역 전파의 필터를 구성할 수 있다. 이 경우, 역 전파의 필터들(920)은 총 20개가 생성된다.
다시 도 5를 참조하면, 프로세서(522)는 역 전파를 수행함에 따라 뉴럴 네트워크의 각 레이어들에 오차(δ)를 전파한다. 그리고, 프로세서(522)는 전파된 오차(δ)를 이용하여 액티베이션들을 갱신한다.
도 10은 뉴럴 네트워크 시스템의 다른 예를 도시한 구성도이다.
도 10을 참조하면, 뉴럴 네트워크 시스템(10)은 외부 메모리(1010), 장치(1020) 및 메모리 인터페이스(1030)를 포함한다. 장치(1020)는 필터 수집기(1021), 비트-벡터 생성기(1022), 복수의 신경 기능 유닛들(1023, 1024) 및 내부 버퍼들(1025, 1026, 1027)을 포함한다.
도 10에 도시된 뉴럴 네트워크 시스템(10)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 10에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 뉴럴 네트워크 시스템(10)에 더 포함될 수 있음을 통상의 기술자라면 이해할 수 있다.
도 5의 장치(520)와 도 10의 장치(1020)를 비교하면, 필터 수집기(1021), 비트-벡터 생성기(1022) 및 복수의 신경 기능 유닛들(1023, 1024)은 프로세서(522)에 대응될 수 있다. 예를 들어, 필터 수집기(1021), 비트-벡터 생성기(1022) 및 복수의 신경 기능 유닛들(1023, 1024)은 각각 별도의 프로세서로 구현될 수도 있고, 단일 프로세서로 구현될 수도 있다. 또한, 내부 버퍼들(1025, 1026, 1027)은 내부 버퍼(521)에 대응될 수 있다. 예를 들어, 내부 버퍼들(1025, 1026, 1027)은 각각 별도의 버퍼로 구현될 수도 있고, 단일 버퍼로 구현될 수도 있다.
메모리 인터페이스(1030)는 서로 다른 장치들 간의 데이터 송수신을 중계한다. 따라서, 이하에서 생략되었다고 하더라도, 외부 메모리(1010)와 장치(1020)간의 데이터 송수신은 메모리 인터페이스(1030)를 거치는 것으로 보아야 한다.
장치(1020)는 외부 메모리(1010)로부터 액티베이션들 및 필터들을 독출하여 순 전파를 수행한다.
예를 들어, 현재 연산되어야 하는 액티베이션들은 외부 메모리(1010)로부터 독출되어 제1 내부 버퍼(1025)에 임시 저장된다. 또한, 현재 연산되어야 하는 필터들은 외부 메모리(1010)로부터 독출되어 제2 내부 버퍼(1026)에 임시 저장된다. 이때, 액티베이션들 및 필터들은 신경 기능 유닛들(1023, 1024)의 수와 동일하게 외부 메모리(1010)로부터 독출될 수 있다.
예를 들어, 각각의 신경 기능 유닛(1023, 1024)은 복수의 곱셈기들, 덧셈기 트리(adder tree) 및 함수 적용기를 포함할 수 있다. 이때, 곱셈기들의 수는 외부 메모리(1010)로부터 독출된 액티베이션들 및 필터들의 수와 동일할 수 있다. 또한, 함수 적용기는 ReLU 활성 함수를 적용하는 유닛일 수 있다.
신경 기능 유닛들(1023, 1024)의 출력들은 제3 내부 버퍼(1027)에 저장되어 출력 액티베이션들을 생성한다. 그리고, 출력 액티베이션들은 외부 메모리(1010)에 저장된다. 이 때, 비트-벡터 생성기(1022)는 출력 액티베이션들을 확인하여 비트-벡터를 생성한다. 그리고, 비트-벡터는 외부 메모리(1010)에 저장된다.
장치(1020)가 역 전파를 수행하기 위하여, 장치(1020)는 현재 연산되는 레이어의 액티베이션들을 외부 메모리(1010)로부터 독출하여 제1 내부 버퍼(1025)에 저장한다. 그리고, 필터 수집기(1021)는 외부 메모리(1010)로부터 비트-벡터를 독출한다. 여기에서, 외부 메모리(1010)로부터 독출되는 액티베이션들은 상술한 순 전파의 과정에서 생성된 출력 액티베이션들을 의미한다. 그리고, 외부 메모리(1010)로부터 독출되는 비트-벡터는 독출된 액티베이션들에 대응하는 비트-벡터를 의미한다.
필터 수집기(1021)는, 비트-벡터를 해석하여, 제1 내부 버퍼(1025)에 저장된 액티베이션들 중 0이 아닌 값을 나타내는 액티베이션들을 선택한다. 예를 들어, 필터 수집기(1021)는 신경 기능 유닛(1023, 1024) 각각에 포함된 곱셈기들의 수와 동일한 수가 될 때까지 액티베이션들을 선택할 수 있다. 만약, 단일 비트-벡터의 해석이 종료될 경우, 선택된 액티베이션들의 수가 곱셈기들의 수보다 적다고 하더라도 선택 작업을 중단한다. 그리고, 필터 수집기(1021)는 선택된 액티베이션들에 대응하는 필터들을 외부 메모리(1010)로부터 독출하여 제2 내부 버퍼(1026)에 저장한다.
신경 기능 유닛들(1023, 1024)는 제1 내부 버퍼(1025)에 저장된 액티베이션들 및 제2 내부 버퍼(1026)에 저장된 필터들을 이용하여 곱의 합 연산을 수행한다. 이때, 연산에 이용되는 필터들은 순 전파의 필터들이 재배열된 것일 수 있다.
신경 기능 유닛들(1023, 1024)의 출력들은 제3 내부 버퍼(1027)에 저장되어 출력 액티베이션들을 생성한다. 여기에서, 출력 액티베이션들은 순 전파에서의 입력 액티베이션의 그래디언트와 순 전파에서의 입력 액티베이션이 조합된 것일 수 있다. 그리고, 출력 액티베이션들은 외부 메모리(1010)에 저장된다.
도 11은 뉴럴 네트워크 시스템이 동작하는 다른 예를 도시한 흐름도이다.
도 11에 도시된 흐름도는 도 5 및 도 10을 참조하여 상술한 뉴럴 네트워크 시스템(5, 10)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 5 및 도 10에 도시된 뉴럴 네트워크 시스템(5, 10)에 관하여 이상에서 기술된 내용은 도 11의 흐름도에 나타난 방법에도 적용될 수 있다.
1110 단계 및 1115 단계에서, 장치(1020)는 외부 메모리(1010)로부터 액티베이션들을 독출하고, 액티베이션 카운트의 디폴트 값(0)을 설정한다.
1120 단계 및 1125 단계에서, 장치(1020)는 외부 메모리(1010)로부터 비트-벡터를 독출하고, 독출된 비트-벡터를 1 비트씩 읽는다.
1130 단계에서, 장치(1020)는 읽은 비트의 값이 1인지 여부를 판단한다. 여기에서, 비트의 값이 1이라는 것은 해당 비트에 대응하는 액티베이션이 0이 아닌 것을 의미한다. 만약, 비트의 값이 1인 경우에는 1135 단계로 진행하고, 비트의 값이 0인 경우에는 1125 단계로 진행한다.
1135 단계에서, 장치(1020)는 액티베이션 카운트를 하나 증가 시킨다.
1140 단계에서, 장치(1020)는 액티베이션 카운트가 N과 동일한지 여부를 판단한다. 여기에서, N은 신경 기능 유닛(1023, 1024)에 포함된 곱셈기들의 수를 의미한다. 만약, 액티베이션 카운트가 N과 동일한 경우에는 1150 단계로 진행하고, 그렇지 않은 경우에는 1145 단계로 진행한다.
1145 단계에서, 장치(1020)는 비트-벡터의 마지막 비트까지 해석을 완료하였는지를 판단한다. 만약, 비트-벡터의 마지막 비트까지의 해석이 완료된 경우 1160 단계로 진행하고, 그렇지 않은 경우에는 1125 단계로 진행한다.
1150 단계 및 1155 단계에서, 장치(1020)는 외부 메모리(1010)로부터 필터들을 독출하고, 필터에 포함된 가중치들을 이용하여 곱의 합 연산을 수행한다. 여기에서, 곱의 합 연산에 수행되는 필터는 순 전파의 필터가 재배열된 것을 의미한다. 곱의 합 연산이 종료된 경우, 1115 단계로 진행한다.
1160 단계 및 1165 단계에서, 장치(1020)는 외부 메모리(1010)로부터 필터들을 독출하고, 필터에 포함된 가중치들을 이용하여 곱의 합 연산을 수행한다. 여기에서, 곱의 합 연산에 수행되는 필터는 순 전파의 필터가 재배열된 것을 의미한다. 곱의 합 연산이 종료된 경우 1170 단계로 진행한다.
1170 단계에서, 장치(1020)는 모든 비트-벡터들에 대한 해석을 완료하였는지를 판단한다. 만약, 모든 비트-벡터들에 대한 해석이 완료된 경우 절차를 종료하고, 그렇지 않은 경우에는 1110 단계로 진행하여 다음 액티베이션들을 외부 메모리(1010)로부터 독출한다. 그리고, 장치(1120)는 새롭게 독출된 액티베이션들에 대하여 1110 단계에서 1170 단계를 수행한다.
도 12는 뉴럴 네트워크 시스템이 동작하는 또 다른 예를 도시한 흐름도이다.
도 12의 1220 단계 내지 1240 단계는 도 4의 410 단계 내지 430 단계와 대응된다. 따라서, 1220 단계 내지 1240 단계에 대해서는 구체적인 설명을 생략한다.
1210 단계에서, 뉴럴 네트워크 시스템(5, 10)은 순 전파를 수행하여 비트-벡터를 생성한다. 여기에서, 비트-벡터를 생성하는 구체적인 방법은 도 6을 참조하여 상술한 바와 같다.
1250 단계에서, 뉴럴 네트워크 시스템(5, 10)은 역 전파의 수행 결과를 이용하여 순 전파에서 이용된 필터들을 갱신한다. 여기에서, 필터들을 갱신하는 구체적인 방법은 도 3을 참조하여 상술한 바와 같다.
상술한 바에 따르면, 뉴럴 네트워크 시스템은 비트-벡터를 이용하여 역 전파의 연산에 필요한 액티베이션을 선택한다. 따라서, 역 전파를 위하여 모든 액티베이션들에 대한 연산이 수행될 필요가 없는바, 역 전파에 소모되는 비용이 감소한다. 따라서, 종래의 기술보다 적은 연산량 및 기간으로도 뉴럴 네트워크의 학습이 가능하다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 램, USB, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하며, 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점을 포함하는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 뉴럴 네트워크(neural network)의 학습을 가속하는 방법에 있어서,
    상기 학습에 이용되는 액티베이션들(activations) 및 상기 액티베이션들에 대응하는 비트-벡터(bit-vector)를 획득하는 단계;
    상기 비트-벡터를 이용하여 상기 획득된 액티베이션들 중 연산이 필요한 액티베이션들을 선택하는 단계; 및
    상기 선택된 액티베이션들 및 상기 선택된 액티베이션들에 대응하는 필터들을 이용하여 역 전파(backward propagation)를 수행하는 단계;를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 선택하는 단계는,
    상기 비트-벡터에 포함된 비트들을 해석하여 상기 획득된 액티베이션들 중 0(zero)이 아닌 값을 나타내는 액티베이션들을 선택하는 방법.
  3. 제 1 항에 있어서,
    상기 선택하는 단계는,
    상기 선택된 액티베이션들의 수가 N개일 때까지 상기 획득된 액티베이션들 중 상기 연산이 필요한 액티베이션들을 선택하고,
    상기 N은 단일 신경 기능 유닛(neural functional unit)에 포함된 곱셈기들의 수를 의미하는 방법.
  4. 제 1 항에 있어서,
    상기 선택하는 단계는,
    상기 비트-벡터에 포함된 모든 비트들의 해석을 종료할 때까지 상기 획득된 액티베이션들 중 상기 연산이 필요한 액티베이션들을 선택하는 방법.
  5. 제 1 항에 있어서,
    순 전파(forward propagation)를 수행함으로써 상기 비트-벡터를 생성하는 단계;를 더 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 역 전파를 수행하는 단계는,
    상기 선택된 액티베이션들 및 상기 선택된 액티베이션들에 대응하는 필터들의 곱의 합(multiply and accumulation) 연산을 수행하는 방법.
  7. 제 6 항에 있어서,
    상기 역전파를 수행하는 단계는,
    상기 연산 결과를 이용하여 상기 획득된 액티베이션들을 갱신하는 방법.
  8. 제 1 항에 있어서,
    상기 선택된 액티베이션들에 대응하는 필터는,
    상기 선택된 액티베이션들이 생성된 순 전파에서 이용된 필터들이 재배열된 것인 방법.
  9. 제 1 항에 있어서,
    상기 역 전파의 수행 결과를 이용하여 순 전파에서 이용된 필터들을 갱신하는 단계;를 더 포함하는 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 뉴럴 네트워크(neural network) 시스템에 있어서,
    메모리; 및
    적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 메모리로부터 상기 학습에 이용되는 액티베이션들(activations) 및 상기 액티베이션들에 대응하는 비트-벡터(bit-vector)를 독출하고,
    상기 비트-벡터를 이용하여 상기 독출된 액티베이션들 중 연산이 필요한 액티베이션들을 선택하고,
    상기 메모리로부터 상기 선택된 액티베이션들에 대응하는 필터들 독출하고,
    상기 선택된 액티베이션들 및 상기 독출된 필터들을 이용하여 역 전파(backward propagation)를 수행하는, 시스템.
  12. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 비트-벡터에 포함된 비트들을 해석하여 상기 독출된 액티베이션들 중 0(zero)이 아닌 값을 나타내는 액티베이션들을 선택하는 시스템.
  13. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 선택된 액티베이션들의 수가 N개일 때까지 상기 독출된 액티베이션들 중 상기 연산이 필요한 액티베이션들을 선택하고,
    상기 N은 단일 신경 기능 유닛(neural functional unit)에 포함된 곱셈기들의 수를 의미하는 시스템.
  14. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 비트-벡터에 포함된 모든 비트들의 해석을 종료할 때까지 상기 독출된 액티베이션들 중 상기 연산이 필요한 액티베이션들을 선택하는 시스템.
  15. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    순 전파(forward propagation)를 수행함으로써 상기 비트-벡터를 생성하는 시스템.
  16. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 선택된 액티베이션들 및 상기 선택된 액티베이션들에 대응하는 필터들의 곱의 합(multiply and accumulation) 연산을 수행하는 시스템.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 연산 결과를 이용하여 상기 획득된 액티베이션들을 갱신하는 시스템.
  18. 제 11 항에 있어서,
    상기 선택된 액티베이션들에 대응하는 필터는,
    상기 선택된 액티베이션들이 생성된 순 전파에서 이용된 필터들이 재배열된 것인 시스템.
  19. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    역 전파의 수행 결과를 이용하여 순 전파에서 이용된 필터들을 갱신하는 시스템.
  20. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 갱신된 필터들을 상기 메모리에 기록하는 시스템.
KR1020180163309A 2018-08-24 2018-12-17 뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템 KR20200023155A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/550,498 US20200065659A1 (en) 2018-08-24 2019-08-26 Method of accelerating training process of neural network and neural network device thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862722395P 2018-08-24 2018-08-24
US62/722,395 2018-08-24

Publications (1)

Publication Number Publication Date
KR20200023155A true KR20200023155A (ko) 2020-03-04

Family

ID=69783486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180163309A KR20200023155A (ko) 2018-08-24 2018-12-17 뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템

Country Status (1)

Country Link
KR (1) KR20200023155A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488969A (zh) * 2020-04-03 2020-08-04 北京思朗科技有限责任公司 基于神经网络加速器的执行优化方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111488969A (zh) * 2020-04-03 2020-08-04 北京思朗科技有限责任公司 基于神经网络加速器的执行优化方法及装置
CN111488969B (zh) * 2020-04-03 2024-01-19 北京集朗半导体科技有限公司 基于神经网络加速器的执行优化方法及装置

Similar Documents

Publication Publication Date Title
US11836610B2 (en) Concurrent training of functional subnetworks of a neural network
US11461641B2 (en) Information processing apparatus, information processing method, and computer-readable storage medium
KR102555057B1 (ko) 웨이트 매트릭스를 포맷하는 방법, 포맷된 데이터를 사용하는 가속기 및 이를 포함하는 시스템
KR102158683B1 (ko) 외부 메모리로 신경망들 증강
KR102061615B1 (ko) 인공 신경망 모델에서 메모리 효율성 및 학습 속도 향상을 위한 드롭아웃 방법과 이를 이용한 학습 방법
US20170004399A1 (en) Learning method and apparatus, and recording medium
EP3979143A1 (en) Method of performing splitting in neural network model by means of multi-core processor, and related product
WO2015118686A1 (ja) 階層型ニューラルネットワーク装置、判別器学習方法および判別方法
WO2020101948A1 (en) Dynamic precision scaling at epoch granularity in neural networks
US20220237465A1 (en) Performing inference and signal-to-noise ratio based pruning to train sparse neural network architectures
US20230196113A1 (en) Neural network training under memory restraint
US20230169340A1 (en) Method and apparatus with neural network convolution operations
CN112651485A (zh) 识别图像的方法和设备以及训练神经网络的方法和设备
CN114692829A (zh) 基于dnn模型的检查点选择方法、设备和存储介质
KR20200023155A (ko) 뉴럴 네트워크의 학습을 가속하는 방법 및 뉴럴 네트워크 시스템
US20200065659A1 (en) Method of accelerating training process of neural network and neural network device thereof
US11580393B2 (en) Method and apparatus with neural network data input and output control
KR20220039313A (ko) 뉴럴 네트워크 연산 처리 방법 및 장치
WO2020195940A1 (ja) ニューラルネットワークのモデル縮約装置
CN111507456A (zh) 具有卷积神经网络处理的方法和装置
KR20210091880A (ko) 뉴럴 네트워크 모델 재구성 방법 및 이를 수행하는 데이터 처리 장치
US11954580B2 (en) Spatial tiling of compute arrays with shared control
JP7250643B2 (ja) 計算機システム及びモデル学習方法
KR20220052844A (ko) 뉴럴 네트워크의 제공
CN116157808B (zh) 用于神经网络的组平衡式稀疏激活和联合激活权重稀疏训练的系统和方法

Legal Events

Date Code Title Description
A201 Request for examination