KR20210022455A - 심층 신경망 학습 장치 및 그 방법 - Google Patents

심층 신경망 학습 장치 및 그 방법 Download PDF

Info

Publication number
KR20210022455A
KR20210022455A KR1020190101984A KR20190101984A KR20210022455A KR 20210022455 A KR20210022455 A KR 20210022455A KR 1020190101984 A KR1020190101984 A KR 1020190101984A KR 20190101984 A KR20190101984 A KR 20190101984A KR 20210022455 A KR20210022455 A KR 20210022455A
Authority
KR
South Korea
Prior art keywords
error
layer
neural network
deep neural
transcription
Prior art date
Application number
KR1020190101984A
Other languages
English (en)
Other versions
KR102294745B1 (ko
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 KR1020190101984A priority Critical patent/KR102294745B1/ko
Priority to US16/988,737 priority patent/US11915141B2/en
Publication of KR20210022455A publication Critical patent/KR20210022455A/ko
Application granted granted Critical
Publication of KR102294745B1 publication Critical patent/KR102294745B1/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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • 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
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)

Abstract

본 발명의 심층 신경망 학습 장치 및 그 방법은 난수 발생기(Pseudo Random Number Generator)를 적용하여 외부 메모리 접근양을 줄임으로써, 심층 신경망 학습 시, 전력 소모를 줄이고 학습 속도를 개선할 수 있다. 이로 인해, 본 발명은 온-칩 러닝 및 실시간 재학습이 가능하며, 모바일 기기에서도 동작 가능한 장점이 있다. 또한, 본 발명의 심층 신경망 학습 장치 및 그 방법은 즉시 학습 방법(DFA: Direct Feedback Alignment) 알고리즘을 응용한 PDFA(Pipelined Direct Feedback Alignment) 알고리즘을 적용함으로써, 전력 소모가 적고 학습 속도가 빠른 장점이 있다. 이로 인해, 본 발명은 네트워크 학습을 빠르게 수행함으로써, 빠른 재학습을 요구하는 어플리케이션(application)(예컨대, 객체 추적 어플리케이션 등)에서, DNN을 활용할 수 있는 장점이 있다. 또한, 본 발명의 심층 신경망 학습 장치는 이형 코어 아키텍처를 적용함으로써, 면적 및 에너지 효율을 향상시킬 수 있는 장점이 있다.

Description

심층 신경망 학습 장치 및 그 방법{APPARATUS AND METHOD FOR TRAINING DEEP NEURAL NETWORK}
본 발명은 심층 신경망(Deep Neural Network) 학습 장치 및 그 방법에 관한 것으로서, 보다 상세하게는, 전력 소모가 적고 속도가 빠른 심층 신경망 학습 장치 및 그 방법에 관한 것이다.
기계 학습 기술의 한 가지 종류인 심층 신경망(Deep Neural Network, 이하 ‘DNN’이라 칭함)은 최근 음성 인식(voice recognition), 이미지 분석(image analysis) 등의 다양한 분야에 활용되고 있다. 특히, 상기 DNN의 한 종류인 콘볼루션 신경망(Convolutional Neural Network, 이하 ‘CNN’이라 칭함)은 객체 인식(object Recognition), 영상 분할(image segmentation) 등에 활용되며, 기존 핸드-크래프트 컴퓨터 비전(hand-crafted computer vision) 알고리즘에 비해 훨씬 높은 성능을 보여주고 있다. CNN은 이미지의 특징점을 추출하는 콘볼루션 레이어(convolutional layer)와, 분류기인 완전 연결 계층(fully-connected layer)으로 구분되며, 일반적으로 DNN 앞단에는 콘볼루션 레이어(convolutional layer)를, 뒷단에는 완전 연결 계층(fully-connected layer)을 배치한다.
통상적으로, CNN은 많은 데이터-셋(data-set)을 통해 학습된 망(network)을 추론으로만 사용하는 경우가 많다. 하지만 인식하는 객체의 종류나 개수가 바뀔 경우, DNN을 사용하는 환경이 바뀌면 DNN을 재학습시킬 필요가 있다.
DNN 학습은 대표적으로 역전사(back-propagation, BP) 알고리즘을 사용하여 이루어지는데, 이는 역전사(back-propagation, BP) 알고리즘이 복잡한 심층신경망까지 빠르게 학습시킬 수 있기 때문이며, 지금까지도 딥러닝(deep learning) 분야에서는 가장 일반적인 학습 방법으로 사용되고 있다.
이러한 역 전사(back-propagation, BP) 방법은 추론(Feed-forward, FF) 과정, 오류 전사(Error Propagation, EP) 과정, 및 가중치 갱신(Weight Gradient Update, WG) 과정을 포함한다. 도 1은 종래의 역전사(back-propagation, BP) 방법을 도식화하여 설명한 도면으로서, 도 1의 (a)는 추론(FF) 과정을 나타내고, 도 1의 (b)는 오류 전사(EP) 과정을 나타내고, 도 1의 (c)는 가중치 갱신(WG) 과정을 나타낸다. 이 때, 도 1은 학습 계층이 3개의 계층(Layer1, Layer2, Layer3)으로 이루어진 경우를 예로 들어 설명하고 있다.
도 1을 참조하면, DNN 학습은 먼저, 추론(FF) 과정(a)에서, 라벨(label)이 이미 존재하는 데이터-셋(data-set)을 DNN으로 추론(Feed-forward, FF)하여 추론 결과(Results)를 도출하고, 오류 전사 과정(EP)(b)에서, 상기 추론결과(Results)와 라벨(Label)을 비교하여 오류(Error)를 결정한 후 상기 오류(Error)들을 다시 뒷단 레이어(Layer 3) 부터 앞단 레이어(Layer 2)로 전사시키고, 가중치 갱신(WG) 과정(c)에서, 각 레이어에 할당된 가중치(W1, W2, W3)를 바꾸어 준다.
도 1에 예시된 바와 같은 역전사(BP) 방법은, 오류 전사(EP)(b)와 가중치 업데이트(WG)(c)시 연산량을 최소화하기 위해, 중간 추론 결과들(X1, X2)과 전사된 오류들(δ1, δ2) 을 모두 기억하고 있어야 하는데, 이로 인해, 큰 메모리 크기 및 대역폭이 필요하며, 결과적으로 느린 학습 속도 및 큰 전력 소모 등의 문제를 보인다. 특히 이러한 문제는 동일 연산량 대비 메모리 접근량이 많은 신경망(예컨대, Fully-connected Layer 또는 Recurrent Neural Network 등)에서 더욱 두드러진다.
이와 같이, 역전사 알고리즘의 본질적인 한계로 인하여 발생하는 많은 메모리 접근량은, 모바일 기기에서의 부족한 메모리 대역, 그리고 큰 전력 소모 등으로 인해, 온-칩러닝(On-chip Learning)을 어렵게 만들었다. 또한, 실시간으로 심층신경망 재학습이 필요한 경우, 심층 신경망 학습을 느리게 만들고, 전력 소모를 크게 만드는 주된 원인이 된다. 한편, 사용자마다 제각기 다른 환경에서 DNN을 활용하고 있는 상황에서, 서버를 통한 학습은 사용자의 사생활을 크게 훼손할 수 있는 문제가 있다. 따라서, 모바일 기기에서의 DNN 학습이 반드시 필요하고, 이를 위해, 전력 소모가 적고 속도가 빠른 DNN 학습 장치 및 방법이 요구된다.
또한, 도 1에 예시된 바와 같은 역전사(BP) 방법은 추론(FF) 과정에서 발생한 오류를 마지막 레이어(Layer 3)부터 앞단 레이어(Layer 2)로 차례대로 전사하기 때문에, 가중치를 갱신하기 위해, 오류 전사(EP) 과정이 모두 마무리되기를 기다려야 하는 특징이 있다. 예를 들어, 학습시킬 레이어의 총 개수가 ‘N’개라고 할 때, 총 ‘N-1’개의 레이어의 오류 전사가 모두 완료된 후에야 가중치 갱신이 가능하다. 도 2는 이러한 종래의 역전사(BP) 방법의 문제점을 설명하기 위 도면으로서, 학습시킬 레이어의 총 개수가 3개인 경우의 예를 도시하고 있다. 도 2의 (a)는 오류 전사(EP) 과정(B)이 수행 중일 때, 추론(FF) 과정(A)이 중단된 경우를 나타내고, 도 2의 (b)는 가중치 업데이트(WG) 과정(C)이 수행 중일 때, 첫 번째 레이어에서 추론(FF)과정(A’)이 수행 중인 경우를 나타낸다. 도 2의 (a) 및 도 2의 (b)를 참조하면, 앞단 레이어까지 가중치가 도달하지 못하는 경우, 가중치 갱신과 다음 추론을 시작하기 어렵다는 것을 알 수 있다. 이 경우 추론(FF), 오류 전사(EP) 및 가중치 갱신(WG)의 3가지 학습 과정이 병렬로 수행되지 못하고, 이로 인해 학습속도가 지연되는 원인이 된다.
이러한 느린 학습속도 문제는 객체 추적 등 물체의 생김새, 주변 조명의 밝기 등이 빠르게 변화하는 환경에서 이에 맞춰 네트워크를 빠르게 재학습하는 것을 어렵게 한다. 따라서 빠른 재학습을 요구하는 어플리케이션(application)(예컨대, 객체 추적 어플리케이션 등)에서, DNN을 활용하기 위해서는, 빠른 속도로 DNN을 학습하는 방법이 요구된다.
한편, 도 3은 종래의 신경망 학습 프로세서의 예를 도시한 도면으로서, 도 3을 참조하면, 종래의 신경망 학습 프로세서들(10)은 역전사(BP) 알고리즘을 빠르게 가속하기 위해, 모두 동형 코어 아키텍처 (Homogeneous Core Architecture)를 채택하였다. 일반적으로, 역전사(BP) 알고리즘은 3가지 학습 과정을 병렬로 처리하는 경우가 없으므로, 각각의 학습 과정을 최대한 빠르게 병렬처리하는 것을 중요시하였다. 따라서 종래에는 도 3에 예시된 바와 같은 신경망 학습 프로세서(10)를 이용하여 원하는 성능을 구현할 수 있었다. 하지만, 완전 연결 계층(Fully-connected Layer)이나 회귀 신경망(Recurrent Neural Network)에서는 병렬처리를 위해 요구되는 메모리 대역폭이 커지다 보니, 모바일 기기에서의 동형 코어 아키텍처 디자인은 학습속도의 제한을 가져왔다. 더불어, 3가지 다른 학습 과정을 모두 지원하기 위해 요구되는 데이터 경로가 복잡해져, 추론만을 위해 디자인되었던 기존 하드웨어에 비해, 면적 및 에너지 효율이 떨어지는 문제가 있었다.
대한민국 공개특허공보 공개번호 제10-2019-14829호
따라서, 본 발명은 난수 발생기(Pseudo Random Number Generator)를 적용하여 외부 메모리 접근양을 줄임으로써, 전력 소모가 적고 학습 속도가 빠른 심층 신경망 학습 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 전력 소모를 줄이고 학습 속도를 개선하여 온-칩 러닝이 가능하고, 실시간 재학습이 가능한 심층 신경망 학습 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 모바일 기기에서 동작 가능한 심층 신경망 학습 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 즉시 학습 방법(DFA: Direct Feedback Alignment) 알고리즘을 응용한 PDFA(Pipelined Direct Feedback Alignment) 알고리즘을 적용함으로써, 전력 소모가 적고 학습 속도가 빠른 심층 신경망 학습 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 네트워크 학습을 빠르게 수행함으로써, 빠른 재학습을 요구하는 어플리케이션(application)(예컨대, 객체 추적 어플리케이션 등)에서, DNN을 활용할 수 있도록 하는 심층 신경망 학습 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 이형 코어 아키텍처를 적용함으로써, 면적 및 에너지 효율을 향상시키는 심층 신경망 학습 장치를 제공하고자 한다.
상기 목적을 달성하기 위해, 본 발명에서 제공하는 심층 신경망 학습 장치는, 각각 다수개의 뉴런들로 구성된 N개의 레이어들을 포함하는 심층 신경망을 학습시키는 학습 장치에 있어서, 상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, 상기 N번째 레이어에서 생성된 오류에 의거하여 임의의 레이어에 대한 오류전사값을 결정한 후, 상기 임의의 레이어로 상기 오류전사값을 직접 전사하는 오류 전사처리부; 상기 오류전사값의 전달에 응답하여, 상기 임의의 레이어로 입력된 추론값과, 상기 오류전사값에 의거하여 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치갱신처리부; 및 상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 임의의 레이어에서 추론을 진행하는 추론처리부를 포함하되, 상기 학습 장치는 상기 오류전사 처리부, 상기 가중치 갱신처리부 및 상기 추론 처리부 각각을 파이프라인 구조로 구성하고, 상기 오류전사 처리부, 상기 가중치 갱신처리부 및 상기 추론 처리부 각각은 소정 처리시간 단위로 중첩하여 병렬로 동작하는 것을 특징으로 한다.
바람직하게는, 상기 심층 신경망 학습 장치는 상기 오류전사 처리부, 상기 가중치 갱신 처리부 및 상기 추론 처리부 각각을, 서로 독립적으로 동작 및 제어가 가능한 이형 코어 아키텍쳐(Heterogeneous Core Architecture)로 구현할 수 있다.
바람직하게는, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은 상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위로 중첩하여 병렬로 동작할 수 있다.
바람직하게는, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은 상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위로 중첩하여 병렬로 동작할 수 있다.
바람직하게는, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은 하나의 포워드 가중치를 갱신하는데 소요되는 시간단위로 중첩하여 병렬로 동작할 수 있다.
바람직하게는, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은 하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위로 중첩하여 병렬로 동작할 수 있다.
바람직하게는, 상기 오류전사처리부는 상기 N개의 레이어별로 고정된 난수를 생성하는 난수 생성기를 더 포함하고, 상기 N번째 레이어에서 생성된 오류와 상기 난수 생성기에서 생성한 난수를 곱하여 각 레이어의 오류전사값을 결정한 후, 상기 난수 생성기에서 생성한 난수를 백워드 가중치(B1)로 설정하여 대응된 레이어로 상기 오류전사값을 직접 전사할 수 있다.
바람직하게는, 상기 난수 생성기는 상기 N개의 레이어별로 서로 다르게 설정된 난수 종자(Random Seed)를 저장하는 테이블을 포함하고, 임의의 레이어에 대한 오류를 전사할 때마다 상기 테이블로부터 상기 레이어에 대응된 난수 종자에 기초하여 난수를 발생시킬 수 있다.
바람직하게는, 상기 심층 신경망 학습 장치는 상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, N번째 레이어에서 생성된 오류에 의거하여 첫 번째 레이어의 오류전사값(제1 오류전사값)을 결정한 후, 상기 첫 번째 레이어로 상기 제1 오류전사값을 직접 전사하는 오류전사처리부; 상기 제1 오류전사값의 전달에 응답하여, 상기 첫 번째 레이어로 입력된 추론값과, 상기 제1 오류전사값에 의거하여 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치갱신처리부; 및 상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 첫 번째 레이어에서 새로운 입력값에 대한 추론을 진행하는 추론처리부를 포함할 수 있다.
바람직하게는, 상기 오류전사처리부는 상기 가중치 갱신처리부에서 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 동안, N번째 레이어에서 생성된 오류에 의거하여 두 번째 레이어의 오류전사값(제2 오류전사값)을 결정한 후, 상기 두 번째 레이어로 상기 제2 오류전사값을 직접 전사하는 동작을 병렬로 처리할 수 있다.
바람직하게는, 상기 가중치갱신처리부는 상기 추론처리부에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안, 상기 제2 오류전사값의 전달에 응답하여, 상기 두 번째 레이어로 입력된 추론값과 상기 제2 오류전사값을 이용한 상기 두 번째 레이어에 대한 포워드 가중치(W2) 갱신을 병렬로 처리할 수 있다.
바람직하게는, 상기 오류전사처리부는 상기 추론처리부에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안, N번째 레이어에서 생성된 오류에 의거하여 세 번째 레이어의 오류전사값(제3 오류전사값)을 결정한 후, 상기 세 번째 레이어로 상기 제3 오류전사값을 직접 전사하는 동작을 병렬로 처리할 수 있다.
또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 심층 신경망 학습 방법은 각각 다수개의 뉴런들로 구성된 N개의 레이어들을 포함하는 심층 신경망을 학습시키는 학습 방법에 있어서, 상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, 상기 N번째 레이어에서 생성된 오류에 의거하여 임의의 레이어에 대한 오류전사값을 결정한 후, 상기 임의의 레이어로 상기 오류전사값을 직접 전사하는 오류 전사단계; 상기 오류전사값의 전달에 응답하여, 상기 임의의 레이어로 입력된 추론값과, 상기 오류전사값에 의거하여 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치갱신단계; 및 상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 임의의 레이어에서 추론을 진행하는 추론단계를 포함하되, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은 소정 처리시간 단위로 중첩하여 병렬 처리할 수 있다.
바람직하게는, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은 상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위로 중첩하여 병렬 처리할 수 있다.
바람직하게는, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은 상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위로 중첩하여 병렬 처리할 수 있다.
바람직하게는, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은 하나의 포워드 가중치를 갱신하는데 소요되는 시간단위로 중첩하여 병렬처리할 수 있다.
바람직하게는, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은 하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위로 중첩하여 병렬 처리할 수 있다.
바람직하게는, 상기 오류전사단계는 상기 N개의 레이어별로 고정된 난수를 생성하는 난수 생성 단계를 더 포함하고, 상기 N번째 레이어에서 생성된 오류와 상기 난수 생성 단계에서 생성한 난수를 곱하여 각 레이어의 오류전사값을 결정한 후, 상기 난수 생성단계에서 생성한 난수를 백워드 가중치(B1)로 설정하여 대응된 레이어로 상기 오류전사값을 직접 전사할 수 있다.
바람직하게는, 상기 난수 생성 단계는 상기 N개의 레이어별로 난수 종자(Random Seed)를 서로 다르게 설정하여 테이블형태로 저장하는 난수 종자 저장 단계를 더 포함하고, 임의의 레이어에 대한 오류를 전사할 때마다 대응된 난수 종자에 기초하여 난수를 생성할 수 있다.
바람직하게는, 상기 심층 신경망 학습 방법은 상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, N번째 레이어에서 생성된 오류에 의거하여 첫 번째 레이어의 오류전사값(제1 오류전사값)을 결정한 후, 상기 첫 번째 레이어로 상기 제1 오류전사값을 직접 전사하는 오류전사단계; 상기 제1 오류전사값의 전달에 응답하여, 상기 첫 번째 레이어로 입력된 추론값과, 상기 제1 오류전사값에 의거하여 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치 갱신단계; 및 상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 첫 번째 레이어에서 새로운 입력값에 대한 추론단계를 포함할 수 있다.
바람직하게는, 상기 오류전사단계는 상기 가중치 갱신단계에서 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 동안, N번째 레이어에서 생성된 오류에 의거하여 두 번째 레이어의 오류전사값(제2 오류전사값)을 결정한 후, 상기 두 번째 레이어로 상기 제2 오류전사값을 직접 전사하는 동작을 병렬로 처리할 수 있다.
바람직하게는, 상기 가중치갱신단계는 상기 추론단계에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안, 상기 제2 오류전사값의 전달에 응답하여, 상기 두 번째 레이어로 입력된 추론값과 상기 제2 오류전사값을 이용한 상기 두 번째 레이어에 대한 포워드 가중치(W2) 갱신을 병렬로 처리할 수 있다.
바람직하게는, 상기 오류전사단계는 상기 추론단계에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안, N번째 레이어에서 생성된 오류에 의거하여 세 번째 레이어의 오류전사값(제3 오류전사값)을 결정한 후, 상기 세 번째 레이어로 상기 제3 오류전사값을 직접 전사하는 동작을 병렬로 처리할 수 있다.
본 발명의 심층 신경망 학습 장치 및 그 방법은 난수 발생기(Pseudo Random Number Generator)를 적용하여 외부 메모리 접근양을 줄임으로써, 심층 신경망 학습 시, 전력 소모를 줄이고 학습 속도를 개선할 수 있다. 이로 인해, 본 발명은 온-칩 러닝 및 실시간 재학습이 가능하며, 모바일 기기에서도 동작 가능한 장점이 있다. 또한, 본 발명의 심층 신경망 학습 장치 및 그 방법은 즉시 학습 방법(DFA: Direct Feedback Alignment) 알고리즘을 응용한 PDFA(Pipelined Direct Feedback Alignment) 알고리즘을 적용함으로써, 전력 소모가 적고 학습 속도가 빠른 장점이 있다. 이로 인해, 본 발명은 네트워크 학습을 빠르게 수행함으로써, 빠른 재학습을 요구하는 어플리케이션(application)(예컨대, 객체 추적 어플리케이션 등)에서, DNN을 활용할 수 있는 장점이 있다. 또한, 본 발명의 심층 신경망 학습 장치는 이형 코어 아키텍처를 적용함으로써, 면적 및 에너지 효율을 향상시킬 수 있는 장점이 있다.
도 1은 종래의 역전사(back-propagation, BP) 방법을 도식화하여 설명한 도면이다.
도 2는 종래의 역전사 방법의 문제점을 설명하기 위한 도면이다.
도 3은 종래의 신경망 학습 프로세서의 예를 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치에 대한 개략적인 블록도이다.
도 5는 본 발명의 일 실시 예에 따라 백워드 가중치(B1)를 생성하는 난수 발생기에 대한 개략적인 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치의 동작 예를 도시한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치의 에너지 효율 증가 원인을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치의 외부 메모리 접근을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법에 대한 처리 흐름도이다.
도 10은 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법을 종래와 비교하여 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법에 의한 학습시간과 종래의 방법에 의한 학습시간을 비교한 도면이다.
도 12는 본 발명의 다른 실시 예들에 따른 심층 신경망 학습 방법들을 서로 비교하여 설명하기 위한 도면이다.
도 13은 본 발명의 다른 실시 예들에 따른 심층 신경망 학습 방법들에 의한 학습시간을 비교한 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 설명하되, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 한편 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한 상세한 설명을 생략하여도 본 기술 분야의 당업자가 쉽게 이해할 수 있는 부분의 설명은 생략하였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 4는 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치에 대한 개략적인 블록도이다. 도 4를 참조하면, 각각 다수개의 뉴런들로 구성된 N개의 레이어들을 포함하는 심층 신경망(Deep Neural Network, DNN)을 학습시키기 위한, 본 발명의 심층 신경망 학습 장치(100)는, 오류전사처리부(Error Propagation Core)(110)와, 가중치갱신처리부(Weight Gradient Core)(120)와, 추론처리부(Feed-Forward Core)(130)를 포함한다.
오류전사처리부(Error Propagation Core)(110)는 오류 전사를 담당한다. 특히, 오류전사처리부(110)는, 심층 신경망 학습이 시작되고, 마지막 레이어인 N번째 레이어에서 오류가 생성되면, 그 오류에 의거하여 임의의 레이어에 대한 오류전사값을 결정한 후, 상기 임의의 레이어로 그 오류전사값을 직접 전사한다. 즉, 오류전사처리부(110)는 종래의 경우(예컨대, 역전사(BP) 알고리즘)와는 다르게, 마지막 레이어부터 앞단 레이어로 오류를 차례대로 전사하지 않고, 마지막 레이어에서 임의의 레이어로 오류를 직접 전사할 수 있다. 이를 위해, 오류전사처리부(110)는 대상 레이어를 식별할 수 있는 정보(일명, 백워드 가중치(B1))를 가지고 있어야 하며, 상기 백워드 가중치(Backward Weight)(B1)는 매번 갱신될 필요가 없이 고정된 임의의 값이어도 상관없다는 특징이 있다. 따라서 오류전사처리부(110)는 내부에 난수 생성기를 포함하고, 상기 난수 생성기에서 생성된 난수를 백워드 가중치(Backward Weight)(B1)로 사용할 수 있다.
이러한 난수 생성기에 대한 개략적인 블록이 도 5에 예시되어 있다. 도 5는 본 발명의 일 실시 예에 따라 백워드 가중치(B1)를 생성하는 난수 생성기에 대한 개략적인 블록도로서, 도 5를 참조하면, 난수 생성기(115)는 XOR Logic Gate와 Bit-shifter 3개씩으로 구성되며, 오류전사처리부(Error Propagation Core)(110)에 내장되어 백워드 가중치(Backward Weight)(B1)로 사용질 난수를 생성한다. 먼저, 난수 생성기(115)로 난수 종자(Random Seed)(즉, 난수를 만들어 내기 위한 첫 시작점)가 입력되면, 상기 XOR Logic Gate와 Bit-shifter들이 동작하여 난수를 생성하고, 이후에는 스스로 만들어 낸 난수를 다시 입력으로 받아, 임의의 수를 생성한다.
상기 난수 종자는 도 5에 예시된 바와 같이, 레이어마다 다른 값이 테이블(Backward W Table)(116) 형태로 저장되며, 오류전사처리부(110)는 특정 레이어의 오류를 전사할 때마다 테이블(116)에서 해당 레이어에 대응된 난수 종자를 불러와 백워드 가중치(Backward Weight)를 생성하여 사용한다. 예를 들어, 레이어 인덱스(Layer Index)가 '0001'인 레이어로 오류를 전사하고자 하는 경우, 오류전사처리부(110)는 테이블(116)로부터 대응된 난수 종자(Seed)인 '1010…01'을 불러와서 난수 생성기(115)를 통과시키고, 그 결과로 생성된 난수를 해당 레이어의 백워드 가중치(Backward Weight)로 사용한다. 한편, 오류전사처리부(110)는 상기 N번째 레이어에서 생성된 오류와 난수 생성기(115)에서 생성한 난수를 곱하여 상기 오류전사값(즉, 레이어별 오류전사값)을 결정한다. 즉, 오류전사처리부(110)는 난수 생성기(115)에서 생성한 난수를 백워드 가중치(B1)로 설정하고, 대응된 레이어로 상기 오류전사값을 직접 전사한다.
이와 같이, 오류전사처리부(110)는, 레이어별로 서로 다른 난수 종자를 사용함으로써, 각 레이어 마다 서로 다른 백워드 가중치(Backward Weight)를 사용한다. 그리고, 레이어가 바뀔 때 마다 난수 생성기(115)를 초기화한 후 테이블(116)로부터 변경된 레이어에 대응된 난수 종자를 읽어 와서 입력함으로써, 레이어별로 이전에 사용했던 백워드 가중치(Backward Weight)를 유지할 수 있도록 한다. 이는 학습 과정에서 백워드 가중치(Backward Weight)가 바뀌면 안 되기 때문이다.
이와 같이 오류전사처리부(110)가 내장된 난수 생성기(115)를 통해 백워드 가중치(Backward Weight)를 생성해서 사용함으로써, 본 발명의 심층 신경망 학습 장치(100)는 백워드 가중치(Backward Weight)를 더 이상 외부메모리에서 불러오지 않아도 된다. 따라서 본 발명은 가중치 갱신과 추론 과정에서 가중치의 외부메모리 접근이 사라지게 되고, 이로 인해, 외부 메모리 접근량을 대략 42.8% 정도 줄일 수 있다.
다시 도 4를 참조하면, 가중치갱신처리부(Weight Gradient Core)(120)는 오류전사처리부(110)로부터 오류전사값이 전달된 임의의 레이어에 대한 포워드 가중치(W1)를 갱신한다. 이를 위해, 가중치갱신처리부(120)는 상기 임의의 레이어로 전달된 오류전사값과, 임의의 레이어로 입력된 추론값에 의거하여 해당 레이어(즉, 상기 임의의 레이어)에 대한 포워드 가중치(W1)를 갱신한다. 예를 들어, 가중치갱신처리부(120)는 상기 임의의 레이어로 입력된 추론값과 상기 오류전사값을 컨볼루션(convolution)하여 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신할 수 있다.
추론처리부(Feed-Forward Core)(130)는 상기 임의의 레이어에서 추론을 진행한다. 즉, 가중치갱신처리부(120)에서 포워드 가중치(W1)의 갱신이 완료된 경우, 추론처리부(130)는 그 포워드 가중치(W1)를 이용하여 상기 임의의 레이어에서의 추론을 진행한다.
이 때, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각은 소정 처리시간 단위로 중첩하여 병렬로 동작할 수 있는데, 이를 위해, 심층 신경망 학습 장치(100)는 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각을 파이프라인 구조로 구성한다. 또한, 오류전사처리부(Error Propagation Core)(110), 가중치갱신처리부(Weight Gradient Core)(120), 추론처리부(Feed-Forward Core)(130) 각각은 심층 신경망 학습 장치(100) 내에서 서로 독립적으로 동작 및 제어가 가능하도록 하기 위해, 이형 코어 아키텍쳐(Heterogeneous Core Architecture)로 구현한다.
예를 들어, 심층 신경망 학습 장치(100) 내에서 이형 코어 아키텍쳐(Heterogeneous Core Architecture)로 구현되고, 파이프라인 구조로 구성되어 서로 병렬 처리가 가능한 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각은, ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’, ‘상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위’, ‘하나의 포워드 가중치를 갱신하는데 소요되는 시간단위’ 및 ‘하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위’중 어느 하나의 시간 단위로 중첩하여 병렬로 동작할 수 있다.
이 때, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각이 ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’로 중첩하여 병렬로 동작하는 경우, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각은 서로 다른 레이어에서 병렬로 동작할 수 있다.
또한, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각이 ‘상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위’로 중첩하여 병렬로 동작하는 경우, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각은 서로 같은 레이어의 다른 뉴런에서 병렬로 동작할 수 있다.
마지막으로, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각이 ‘하나의 포워드 가중치를 갱신하는데 소요되는 시간단위’ 또는 ‘하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위’ 중 어느 하나의 시간 단위로 중첩하여 병렬로 동작하는 경우, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130) 각각은 모두 같은 뉴런에서 병렬로 동작할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치의 동작 예를 도시한 도면으로서, 오류전사 처리부(110), 가중치 갱신처리부(120) 및 추론 처리부(130)들이 이형 학습 코어 아키텍쳐로 구현되어, 병렬로 동작하는 예를 도시하고 있다. 도 6의 (a)는 오류전사(EP) 처리부(110)를 구성하는 코어(EP Core)의 연산 처리 과정(
Figure pat00001
)을 예시하고, 도 6의 (b)는 가중치 갱신 처리부(120)를 구성하는 코어(GG Core)의 연산 처리 과정(
Figure pat00002
)을 예시하고, 도 6의 (c)는 추론 처리부(130)를 구성하는 코어(FF Core)의 연산 처리 과정(
Figure pat00003
)을 예시하고 있다.
도 6을 참조하면, 이들 각각의 코어들은 오류전사(EP), 가중치 갱신(WG) 및 추론(FF)의 3가지 학습 과정 각각에 최적화된 서로 다른 코어로 구성되어 있으며, 지원해야 하는 데이터 경로가 단순하고, 필요로 하는 연산기도 도면에 예시된 바와 같이 최적화시켰기 때문에, 동형 코어 아키텍처(도 3 참조) 보다 면적 및 에너지 효율이 높은 특징이 있다.
도 7은 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치의 에너지 효율 증가 원인을 설명하기 위한 도면으로서, 도 7의 (a)는 메모리로부터 불러온 가중치(Weight)를 추론 연산에만 사용하는 종래의 동작을 예시하고, 도 7의 (b)는 메모리로부터 불러온 가중치(Weight)를 추론 및 기중치 갱신 연산에 모두 사용하는 본 발명의 동작을 예시하고 있다. 도 7의 (b)를 참조하면, 이형 학습 코어 아키텍처로 구현된 본 발명의 심층 신경망 학습 장치는 각 학습 과정이 서로 병렬처리가 가능하기 때문에, 메모리로부터 불러온 가중치(Weight)를 추론 및 가중치 갱신 연산에 모두 사용할 수 있다. 따라서, 본 발명의 심층 신경망 학습 장치는 데이터 재사용율이 2배만큼 증가하고, 이로 인해, 에너지 효율이 그 만큼 증가하게 된다. 최종적으로 3가지 학습 과정에 최적화된 이형 코어 아키텍처와 이와 같이 2배 증가한 데이터 재사용률을 갖는 본 발명의 신경망 학습 장치는 기존 학습 프로세서에 비해, 면적 효율은 84.3%, 에너지 효율은 58.5% 만큼 높은 수치를 보인다.
도 8은 본 발명의 일 실시 예에 따른 심층 신경망 학습 장치의 외부 메모리 접근을 설명하기 위한 도면으로서, 도 8의 (a)는 본 발명의 일 실시 예에 따라 심층 신경망을 학습시킬 때, 레이어 별로 포워드 가중치(W1, W2, W3) 및 백워드 가중치(B1, B2)가 사용되는 예를 도식화하여 나타내고, 도 8의 (b)는 상기 가중치(W1, W2, W3) 및 백워드 가중치(B1, B2)가 외부 메모리로부터 불려지는 과정을 도식화하여 나타내고 있다. 도 8을 참조하면, 추론(FF) 과정에서는 포워드 가중치(Forward Weight)가 사용되고, 오류 전사(EP) 과정에서는 백워드 가중치(Backward Weight)가 사용된다. 한편, 본 발명의 심층 신경망 학습 장치는 오류 전사(EP) 과정, 가중치 갱신(WG) 과정, 및 추론(FF) 과정을 파이프라인 구조로 구성하여 병렬처리 한다. 따라서 본 발명의 심층 신경망 학습 장치는, 동일 시간대에, 포워드 가중치(Forward Weight)와 백워드 가중치(Backward Weight)를 불러와야 한다. 이와 같이 동일 시간대에 복수의 가중치를 외부 메모리로부터 불러와야 하는 경우, Fully-connected Layer 혹은 Recurrent Neural Network 학습시 높은 메모리 대역폭을 요구하게 되고, 제한된 메모리 대역폭에서는 느린 학습 속도를 보이게 되며, 더불어 큰 전력 소모를 보이게 되는 문제점이 발생할 수 있다. 하지만, 본 발명의 심층 신경망 학습 장치는 도 5에 예시된 바와 같은 난수 생성기(115)를 오류전사 처리부(도 4의 '110')에 내장시키고, 난수 생성기(115)에서 생성된 난수를 백워드 가중치(Backward Weight)로 이용함으로써, 백워드 가중치(Backward Weight)를 외부 메모리에서 불러오지 않아도 된다. 따라서, 상기한 바와 같은 문제를 해결할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법에 대한 처리 흐름도이다. 도 4 및 도 9를 참조하면, 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법은 다음과 같다. 즉, 각각 다수개의 뉴런들로 구성된 N개의 레이어들을 포함하는 심층 신경망을 학습시키는 방법에 있어서, 심층 신경망 학습이 시작되고, 단계 S110에서, N번째 레이어의 오류 생성이 확인되면, 단계 S120에서는, 오류전사 처리부(110)가 임의의 레이어로 오류전사값을 직접 전사한다. 이를 위해, 단계 S120에서는, 상기 N번째 레이어에서 생성된 오류에 의거하여 임의의 레이어에 대한 오류전사값을 결정한 후, 그 오류 전사값을 상기 임의의 레이어로 직접 전사한다.
한편, 상기 임의의 레이어로 오류전사값을 직접 전사하기 위해, 단계 S120에서는, 대상 레이어를 식별할 수 있는 정보(일명, 백워드 가중치(B1))를 가지고 있어야 한다. 이 때, 상기 백워드 가중치(Backward Weight)(B1)는 매번 갱신될 필요가 없이 고정된 임의의 값이어도 상관없다는 특징이 있다. 따라서 단계 S120에서는, 자체적으로 난수를 생성하는 난수 생성 단계를 더 포함하고, 상기 난수 생성 단계에서 생성된 난수를 백워드 가중치(Backward Weight)(B1)로 사용할 수 있다. 즉, 단계 S120에서, 오류전사처리부(110)는 상기 N번째 레이어에서 생성된 오류와 상기 난수 생성 단계에서 생성한 난수를 곱하여 각 레이어의 오류전사값을 결정한 후, 상기 난수 생성단계에서 생성한 난수를 백워드 가중치(B1)로 설정하여 대응된 레이어로 상기 오류전사값을 직접 전사할 수 있다. 이를 위해, 상기 난수 생성 단계는 상기 N개의 레이어별로 난수 종자(Random Seed)를 서로 다르게 설정하여 테이블형태(도 5의 '116')로 저장하는 난수 종자 저장 단계를 더 포함하고, 임의의 레이어에 대한 오류를 전사할 때마다 대응된 난수 종자에 기초하여 난수를 생성할 수 있다.
단계 S130에서는, 상기 오류전사값의 전달에 응답하여, 가중치 갱신 처리부(120)가 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신한다. 즉, 단계 S130에서는, 상기 단계 S120에서 생성된 임의의 레이어에 대한 오류전사값과, 상기 임의의 레이어로 입력된 추론값에 의거하여 해당 레이어(즉, 상기 임의의 레이어)에 대한 포워드 가중치(W1)를 갱신한다. 예를 들어, 단계 S130에서는, 상기 임의의 레이어로 입력된 추론값과 상기 단계 S120에서 생성된 오류전사값을 컨볼루션(convolution)하여 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신할 수 있다.
단계 S140에서는, 추론처리부(130)가 상기 임의의 레이어에서 추론을 진행한다. 즉, 상기 단계 S130에서 포워드 가중치(W1)의 갱신이 완료되면, 단계 S140에서는, 그 포워드 가중치(W1)를 이용하여 상기 임의의 레이어에서의 추론을 진행한다.
이 때, 상기 일련의 단계들(단계 S120 내지 단계 S140) 각각은 소정 처리시간 단위로 중첩하여 병렬 처리하는 것이 가능하다.
한편, 본 발명의 심층 신경망 학습 장치 및 방법을 이용하여 심층 신경망을 학습시키되, 첫 번째 레이어로부터 학습을 시작하고자 하는 경우, 단계 S120에서, 오류전사 처리부(110)는 N번째 레이어에서 생성된 오류에 의거하여 첫 번째 레이어의 오류전사값(제1 오류전사값)을 결정한 후, 상기 첫 번째 레이어로 상기 제1 오류전사값을 직접 전사한다. 그리고, 단계 S130에서, 가중치갱신 처리부(120)는 상기 제1 오류전사값의 전달에 응답하여, 상기 첫 번째 레이어로 입력된 추론값과, 상기 제1 오류전사값에 의거하여 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하고, 단계 S140에서, 추론 처리부(130)는 상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 첫 번째 레이어에서 새로운 입력값에 대한 추론을 진행한다.
이 때, 상기 일련의 처리 과정들(단계 S120 내지 단계 S140)은 병렬 처리가 가능하므로, 단계 S130에서, 가중치 갱신처리부(120)가 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 동안, 단계 S120이 병렬로 동작하는 것이 가능하다. 즉, 상기 단계 S130에서, 가중치 갱신처리부(120)가 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 동안, 단계 S120에서는, 오류전사처리부(110)가 N번째 레이어에서 생성된 오류에 의거하여 두 번째 레이어의 오류전사값(제2 오류전사값)을 결정한 후, 상기 두 번째 레이어로 상기 제2 오류전사값을 직접 전사하는 동작을 병렬로 처리할 수 있다.
또한, 단계 S140에서, 추론처리부(130)가 상기 첫 번째 레이어에 대한 추론을 진행하는 동안, 단계 S120에서는, 오류전사처리부(110)가 N번째 레이어에서 생성된 오류에 의거하여 세 번째 레이어의 오류전사값(제3 오류전사값)을 결정한 후 상기 세 번째 레이어로 상기 제3 오류전사값을 직접 전사하는 동작을 병렬로 처리하고, 단계 S130에서는, 가중치 갱신처리부(120)가 상기 제2 오류전사값의 전달에 응답하여, 상기 두 번째 레이어로 입력된 추론값과 상기 제2 오류전사값을 이용한 상기 두 번째 레이어에 대한 포워드 가중치(W2) 갱신하는 동작을 병렬로 처리할 수 있다.
도 10은 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법을 종래와 비교하여 설명하기 위한 도면으로서, 도 10의 (a)는 종래의 일 실시 예에 따른 심층 신경망 학습 방법의 예(즉, Back-Propagation(BP))를 나타내고, 도 10의 (b)는 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법(즉, Pipelined Direct Feedback Alignment(PDFA))의 예를 나타낸다. 도 10의 (a)를 참조하면, 종래에는 마지막 레이어에서 발생한 오류값이 상기 마지막 레이어부터 모든 레이어를 거쳐서 맨 앞 레이어로 전달될 때 까지(A)다른 동작(예컨대, 추론 또는 가중치 갱신 등)을 수행할 수 없었다. 하지만, 도 10의 (b)를 참조하면, 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법(즉, Pipelined Direct Feedback Alignment(PDFA))은 마지막 레이어에서 두 번 째 레이어로 오류전사 과정(AA)이 수행된 후, 다음 오류전사 과정을 기다리지 않고, 그 값을 이용한 가중치 갱신 과정(BB)을 바로 수행한다. 한편, 상기 가중치 갱신 과정(BB)에서 가중치 갱신이 완료되면, 다음 레이어의 가중치 갱신 과정을 기다리지 않고, 상기 갱신된 가중치를 이용한 추론(CC)을 바로 수행한다. 이는 도 9에 예시된 바와 같은 본 발명의 처리 단계들(단계 S120 내지 단계 S140) 각각이 소정 처리시간 단위로 중첩하여 병렬 처리가 가능하기 때문이다.
도 11은 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법에 의한 학습시간과 종래의 방법에 의한 학습시간을 비교한 도면으로서, 3개의 레이어로 구성된 심층 신경망을 학습하는 경우의 예를 도시하고 있다. 도 11의 (a)는 종래의 일 실시 예에 따른 심층 신경망 학습 방법(즉, Back-Propagation(BP))에 의한 학습시간을 나타내고, 도 11의 (b)는 본 발명의 일 실시 예에 따른 심층 신경망 학습 방법(즉, Pipelined Direct Feedback Alignment(PDFA))에 의한 학습시간을 나타낸다. 한편, 도 11의 예에서, 파란색으로 표시된 부분은 오류전사 과정을 나타내고, 초록색으로 표시된 부분은 가중치 갱신 과정을 나타내고, 붉은색으로 표시된 부분은 추론과정을 나타내며, 세로축은 처리 시간(Time)을 나타낸다.
도 11(a)를 참조하면, 종래의 경우, 각 학습 과정 별로 심층 신경망을 구성하는 모든 레이어들에 대한 처리가 모두 종료된 후에 다음 학습 과정으로 진행됨을 알 수 있다. 예를 들어, 종래에는, 모든 레이어들에 대한 오류전사과정(파란색 표시)이 모두 종료된 후에 다음 처리 과정인 가중치 갱신 과정을 수행하고, 모든 레이어들에 대한 가중치갱신 과정(초록색 표시)이 모두 종료된 후에 다음 처리 과정인 추론 과정을 수행하고, 모든 레이어들에 대한 추론과정(붉은색 표시)이 모두 종료된 후에 다시 오류전사과정을 수행한다.
도 11(b)를 참조하면, 본 발명의 일 실시 예에 따른 방법의 경우, 각 학습 과정별로 심층 신경망을 구성하는 레이어 단위로, 하나의 레이어에 대한 학습 과정이 종료되면, 다음 학습 과정으로 진행하여, 복수의 학습 과정이 병렬로 처리됨을 알 수 있다. 예를 들어, 본 발명의 일 실시 예에 따른 방법은, 심층 신경망을 구성하는 3개의 레이어 중 하나의 레이어에 대한 오류전사과정이 종료되고, 두 번째 레이어에 대한 오류전사과정이 수행될 때, 첫 번째 레이어에 대한 가중치 갱신과정을 병렬로 처리한다. 또한, 두 번째 레이어에 대한 오류전사과정 및 첫 번째 레이어에 대한 가중치 갱신과정이 종료되고, 세 번째 레이어에 대한 오류전사과정 및 두 번째 레이어에 대한 가중치 갱신과정이 병렬로 처리될 때, 첫 번째 레이어에 대한 추론과정이 병렬로 처리될 수 있다. 즉, 첫 번째 레이어에 대한 오류전사과정이 수행되는 시점에는 오류전사과정만이 수행되지만, 두 번째 레이어에 대한 오류전사과정이 수행되는 시점에는 상기 오류전사과정과 첫 번째 레이어에 대한 가중치 갱신과정이 병렬로 처리되고, 세 번째 레이어에 대한 오류전사과정이 수행되는 시점에는 상기 오류전사과정과 두 번째 레이어에 대한 가중치 갱신과정 및 첫 번째 레이어에 대한 추론과정이 모두 병렬로 처리될 수 있다.
따라서, 이 경우, 도면에 표시된 바와 같이 학습 속도를 일정시간(D1) 상승시킬 수 있다. 그런데, 이와 같이 레이어 단위로 병렬 처리를 수행하는 경우, 레이어 수가 많을수록 그 효과가 더 커지는 반면, 레이어 수 가 적을 경우에는 그 효과가 미비한 특징이 있다.
상기 도 10 및 도 11의 예에서는, 상기 일련의 단계들(단계 S120 내지 단계 S140) 각각이 ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’로 중첩하여 병렬 처리하는 경우를 예로 들어 설명하고 있다.
하지만, 본 발명은, 도 9에 예시된 바와 같은 본 발명의 처리 단계들(단계 S120 내지 단계 S140) 각각이 ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’로 중첩하여 병렬 처리하는 경우로 제한되지는 않는다. 예를 들어, 상기 일련의 단계들(단계 S120 내지 단계 S140) 각각은 ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’뿐만 아니라, ‘상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위’, ‘하나의 포워드 가중치를 갱신하는데 소요되는 시간단위’ 및 ‘하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위’중 어느 하나의 시간 단위로 중첩하여 병렬로 동작할 수 있다.
도 12 및 도 13은 이러한 경우들 각각을 비교하여 설명하기 위한 도면이다.
도 12는 본 발명의 다른 실시 예들에 따른 심층 신경망 학습 방법들을 서로 비교하여 설명하기 위한 도면으로서, 도 12의 (a)는 도 9에 예시된 바와 같은 본 발명의 처리 단계들(단계 S120 내지 단계 S140) 각각이 ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’로 중첩하여 병렬 처리하는 경우(Layer Level Pipeline)를 예시하고, 도 12의 (b)는 상기 일련의 처리 단계들 (단계 S120 내지 단계 S140) 각각이 ‘상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위’로 중첩하여 병렬 처리하는 경우(Neuron Level Pipeline)를 예시하고, 도 12의 (c)는 상기 일련의 처리 단계들 (단계 S120 내지 단계 S140) 각각이 ‘하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위’로 중첩하여 병렬 처리하는 경우(Partial-sum Level Pipeline)를 예시한다.
도 12의 예에서, 회색 바는 레이어를 나타내고, 3색(파란색, 초록색, 붉은색)의 작은 동그라미들은 각각의 레이어를 구성하는 뉴런을 나타내고, 3단 테이블들은 가중치 갱신을 위해 소요되는 시간을 나타내기 위한 표식이다. 또한, 파란색은 오류전사처리 과정을, 초록색은 가중치갱신 처리 과정을, 붉은색은 추론처리 과정을 나타낸다.
도 13은 본 발명의 다른 실시 예들에 따른 심층 신경망 학습 방법들에 의한 학습시간을 비교한 도면으로서, 3개의 레이어로 구성된 심층 신경망을 학습하는 경우의 예를 도시하고 있다. 도 13의 (a)는 도 9에 예시된 바와 같은 본 발명의 처리 단계들(단계 S120 내지 단계 S140) 각각이 ‘상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위’로 중첩하여 병렬 처리하는 경우(Layer Level Pipeline) 소요되는 학습시간을 도식화하여 나타내고, 도 13의 (b)는 상기 일련의 처리 단계들 (단계 S120 내지 단계 S140) 각각이 ‘상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위’로 중첩하여 병렬 처리하는 경우(Neuron Level Pipeline) 소요되는 학습시간을 도식화하여 나타내고, 도 13의 (c)는 상기 일련의 처리 단계들 (단계 S120 내지 단계 S140) 각각이 ‘하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위’로 중첩하여 병렬 처리하는 경우(Partial-sum Level Pipeline) 소요되는 학습시간을 도식화하여 나타내고 있다. 한편, 도 13의 예에서, 파란색으로 표시된 부분은 오류전사 과정을 나타내고, 초록색으로 표시된 부분은 가중치 갱신 과정을 나타내고, 붉은색으로 표시된 부분은 추론과정을 나타내며, 세로축은 처리 시간(Time)을 나타낸다.
도 12의 (a) 및 도 13의 (a)를 참조하면 상기 일련의 처리 단계들(단계 S120 내지 단계 S140) 각각은 서로 다른 레이어에서 병렬로 동작하고, 도 12의 (b) 및 도 13의 (b)를 참조하면 상기 일련의 처리 단계들(단계 S120 내지 단계 S140) 각각은 서로 같은 레이어의 다른 뉴런에서 병렬로 동작하고, 도 12의 (c) 및 도 13의 (c)를 참조하면 상기 일련의 처리 단계들(단계 S120 내지 단계 S140) 각각은 모두 같은 뉴런에서 병렬로 동작할 수 있다.
또한, 도 12 및 도 13를 참조하면, 도 12 및 도 13에 예시된 3 종류의 파이프라인 구조 중, 도 12의 (c) 및 도 13의 (c)에 예시된 구조(Partial-sum Level Pipeline)가 학습 효율이 가장 좋고, 그 다음으로는 도 12의 (b) 및 도 13의 (b)에 예시된 구조(Neuron Level Pipeline)의 학습 효율이 좋음을 알 수 있다.
도 12의 (c) 및 도 13의 (c)에 예시된 구조(Partial-sum Level Pipeline)를 채택한 경우, 파이프라인 Utilization을 최소 86.4% 이상 유지하였으며, 역전사와 비교할 때, 3개의 Fully-connected Layer 학습시간을 평균 55% 감축시키고, 실시간 신경망 학습이 가능한 특징이 있다.
이와 같이 가중치 갱신에 필요한 최소 시간을 보장하는 한도 내에서, 파이프라인을 작은 구조로 쪼개서 구성할수록 학습 효율은 더욱 향상된다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다.
또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.

Claims (23)

  1. 각각 다수개의 뉴런들로 구성된 N개의 레이어들을 포함하는 심층 신경망을 학습시키는 심층 신경망 학습 장치에 있어서,
    상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, 상기 N번째 레이어에서 생성된 오류에 의거하여 임의의 레이어에 대한 오류전사값을 결정한 후, 상기 임의의 레이어로 상기 오류전사값을 직접 전사하는 오류 전사처리부;
    상기 오류전사값의 전달에 응답하여, 상기 임의의 레이어로 입력된 추론값과, 상기 오류전사값에 의거하여 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치갱신처리부; 및
    상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 임의의 레이어에서 추론을 진행하는 추론처리부를 포함하되,
    상기 심층 신경망 학습 장치는
    상기 오류전사 처리부, 상기 가중치 갱신처리부 및 상기 추론 처리부 각각을 파이프라인 구조로 구성하고,
    상기 오류전사 처리부, 상기 가중치 갱신처리부 및 상기 추론 처리부 각각은
    소정 처리시간 단위로 중첩하여 병렬로 동작하는 것을 특징으로 하는 심층 신경망 학습 장치.
  2. 제1항에 있어서, 상기 심층 신경망 학습 장치는
    상기 오류전사 처리부, 상기 가중치 갱신 처리부 및 상기 추론 처리부 각각을, 서로 독립적으로 동작 및 제어가 가능한 이형 코어 아키텍쳐(Heterogeneous Core Architecture)로 구현한 것을 특징으로 하는 심층 신경망 학습 장치.
  3. 제1항에 있어서, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은
    상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위로 중첩하여 병렬로 동작하는 것을 특징으로 하는 심층 신경망 학습 장치.
  4. 제1항에 있어서, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은
    상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위로 중첩하여 병렬로 동작하는 것을 특징으로 하는 심층 신경망 학습 장치.
  5. 제1항에 있어서, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은
    하나의 포워드 가중치를 갱신하는데 소요되는 시간단위로 중첩하여 병렬로 동작하는 것을 특징으로 하는 심층 신경망 학습 장치.
  6. 제1항에 있어서, 상기 오류전사 처리부, 상기 가중치갱신 처리부 및 상기 추론 처리부 각각은
    하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위로 중첩하여 병렬로 동작하는 것을 특징으로 하는 심층 신경망 학습 장치.
  7. 제1항에 있어서, 상기 오류전사처리부는
    상기 N개의 레이어별로 고정된 난수를 생성하는 난수 생성기를 더 포함하고,
    상기 N번째 레이어에서 생성된 오류와 상기 난수 생성기에서 생성한 난수를 곱하여 각 레이어의 오류전사값을 결정한 후, 상기 난수 생성기에서 생성한 난수를 백워드 가중치(B1)로 설정하여 대응된 레이어로 상기 오류전사값을 직접 전사하는 것을 특징으로 하는 심층 신경망 학습 장치.
  8. 제7항에 있어서, 상기 난수 생성기는
    상기 N개의 레이어별로 서로 다르게 설정된 난수 종자(Random Seed)를 저장하는 테이블을 포함하고,
    임의의 레이어에 대한 오류를 전사할 때마다 상기 테이블로부터 상기 레이어에 대응된 난수 종자에 기초하여 난수를 발생시키는 것을 특징으로 하는 심층 신경망 학습 장치.
  9. 제1항에 있어서, 상기 심층 신경망 학습 장치는
    상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, N번째 레이어에서 생성된 오류에 의거하여 첫 번째 레이어의 오류전사값(제1 오류전사값)을 결정한 후, 상기 첫 번째 레이어로 상기 제1 오류전사값을 직접 전사하는 오류전사처리부;
    상기 제1 오류전사값의 전달에 응답하여, 상기 첫 번째 레이어로 입력된 추론값과, 상기 제1 오류전사값에 의거하여 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치갱신처리부; 및
    상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 첫 번째 레이어에서 새로운 입력값에 대한 추론을 진행하는 추론처리부를 포함하는 것을 특징으로 하는 심층 신경망 학습 장치.
  10. 제9항에 있어서, 상기 오류전사처리부는
    상기 가중치 갱신처리부에서 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 동안,
    N번째 레이어에서 생성된 오류에 의거하여 두 번째 레이어의 오류전사값(제2 오류전사값)을 결정한 후, 상기 두 번째 레이어로 상기 제2 오류전사값을 직접 전사하는 동작을 병렬로 처리하는 것을 특징으로 하는 심층 신경망 학습 장치.
  11. 제10항에 있어서, 상기 가중치갱신처리부는
    상기 추론처리부에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안,
    상기 제2 오류전사값의 전달에 응답하여, 상기 두 번째 레이어로 입력된 추론값과 상기 제2 오류전사값을 이용한 상기 두 번째 레이어에 대한 포워드 가중치(W2) 갱신을 병렬로 처리하는 것을 특징으로 하는 심층 신경망 학습 장치.
  12. 제11항에 있어서, 상기 오류전사처리부는
    상기 추론처리부에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안,
    N번째 레이어에서 생성된 오류에 의거하여 세 번째 레이어의 오류전사값(제3 오류전사값)을 결정한 후, 상기 세 번째 레이어로 상기 제3 오류전사값을 직접 전사하는 동작을 병렬로 처리하는 것을 특징으로 하는 심층 신경망 학습 장치.
  13. 각각 다수개의 뉴런들로 구성된 N개의 레이어들을 포함하는 심층 신경망을 학습시키는 심층 신경망 학습 방법에 있어서,
    상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, 상기 N번째 레이어에서 생성된 오류에 의거하여 임의의 레이어에 대한 오류전사값을 결정한 후, 상기 임의의 레이어로 상기 오류전사값을 직접 전사하는 오류 전사단계;
    상기 오류전사값의 전달에 응답하여, 상기 임의의 레이어로 입력된 추론값과, 상기 오류전사값에 의거하여 상기 임의의 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치갱신단계; 및
    상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 임의의 레이어에서 추론을 진행하는 추론단계를 포함하되,
    상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은
    소정 처리시간 단위로 중첩하여 병렬 처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  14. 제13항에 있어서, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은
    상기 심층 신경망을 구성하는 레이어들 각각을 처리하는 시간단위로 중첩하여 병렬 처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  15. 제13항에 있어서, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은
    상기 레이어들을 구성하는 뉴런들 각각을 처리하는 시간단위로 중첩하여 병렬 처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  16. 제13항에 있어서, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은
    하나의 포워드 가중치를 갱신하는데 소요되는 시간단위로 중첩하여 병렬처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  17. 제13항에 있어서, 상기 오류전사단계, 상기 가중치갱신단계 및 상기 추론단계 각각은
    하나의 포워드 가중치를 갱신하는데 필요한 연산 중 일부를 수행하는데 소요되는 시간단위로 중첩하여 병렬처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  18. 제13항에 있어서, 상기 오류전사단계는
    상기 N개의 레이어별로 고정된 난수를 생성하는 난수 생성 단계를 더 포함하고,
    상기 N번째 레이어에서 생성된 오류와 상기 난수 생성 단계에서 생성한 난수를 곱하여 각 레이어의 오류전사값을 결정한 후, 상기 난수 생성단계에서 생성한 난수를 백워드 가중치(B1)로 설정하여 대응된 레이어로 상기 오류전사값을 직접 전사하는 것을 특징으로 하는 심층 신경망 학습 방법.
  19. 제18항에 있어서, 상기 난수 생성 단계는
    상기 N개의 레이어별로 난수 종자(Random Seed)를 서로 다르게 설정하여 테이블형태로 저장하는 난수 종자 저장 단계를 더 포함하고,
    임의의 레이어에 대한 오류를 전사할 때마다 대응된 난수 종자에 기초하여 난수를 생성하는 것을 특징으로 하는 심층 신경망 학습 방법.
  20. 제13항에 있어서, 상기 심층 신경망 학습 방법은
    상기 심층 신경망 학습의 시작에 응답하여, N번째 레이어에서 오류가 생성되면, N번째 레이어에서 생성된 오류에 의거하여 첫 번째 레이어의 오류전사값(제1 오류전사값)을 결정한 후, 상기 첫 번째 레이어로 상기 제1 오류전사값을 직접 전사하는 오류전사단계;
    상기 제1 오류전사값의 전달에 응답하여, 상기 첫 번째 레이어로 입력된 추론값과, 상기 제1 오류전사값에 의거하여 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 가중치 갱신단계; 및
    상기 포워드 가중치(W1)의 갱신이 완료되면, 상기 포워드 가중치(W1)를 이용하여 상기 첫 번째 레이어에서 새로운 입력값에 대한 추론단계를 포함하는 것을 특징으로 하는 심층 신경망 학습 방법.
  21. 제20항에 있어서, 상기 오류전사단계는
    상기 가중치 갱신단계에서 상기 첫 번째 레이어에 대한 포워드 가중치(W1)를 갱신하는 동안,
    N번째 레이어에서 생성된 오류에 의거하여 두 번째 레이어의 오류전사값(제2 오류전사값)을 결정한 후, 상기 두 번째 레이어로 상기 제2 오류전사값을 직접 전사하는 동작을 병렬로 처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  22. 제21항에 있어서, 상기 가중치갱신단계는
    상기 추론단계에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안,
    상기 제2 오류전사값의 전달에 응답하여, 상기 두 번째 레이어로 입력된 추론값과 상기 제2 오류전사값을 이용한 상기 두 번째 레이어에 대한 포워드 가중치(W2) 갱신을 병렬로 처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
  23. 제22항에 있어서, 상기 오류전사단계는
    상기 추론단계에서 상기 첫 번째 레이어에 대한 추론을 진행하는 동안,
    N번째 레이어에서 생성된 오류에 의거하여 세 번째 레이어의 오류전사값(제3 오류전사값)을 결정한 후, 상기 세 번째 레이어로 상기 제3 오류전사값을 직접 전사하는 동작을 병렬로 처리하는 것을 특징으로 하는 심층 신경망 학습 방법.
KR1020190101984A 2019-08-20 2019-08-20 심층 신경망 학습 장치 KR102294745B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190101984A KR102294745B1 (ko) 2019-08-20 2019-08-20 심층 신경망 학습 장치
US16/988,737 US11915141B2 (en) 2019-08-20 2020-08-10 Apparatus and method for training deep neural network using error propagation, weight gradient updating, and feed-forward processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190101984A KR102294745B1 (ko) 2019-08-20 2019-08-20 심층 신경망 학습 장치

Publications (2)

Publication Number Publication Date
KR20210022455A true KR20210022455A (ko) 2021-03-03
KR102294745B1 KR102294745B1 (ko) 2021-08-27

Family

ID=74646244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190101984A KR102294745B1 (ko) 2019-08-20 2019-08-20 심층 신경망 학습 장치

Country Status (2)

Country Link
US (1) US11915141B2 (ko)
KR (1) KR102294745B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022239967A1 (ko) * 2021-05-14 2022-11-17 삼성전자주식회사 전자 장치 및 이의 제어 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220101084A1 (en) * 2020-09-29 2022-03-31 International Business Machines Corporation Pipelining for analog-memory-based neural networks with all-local storage
CN115906936A (zh) * 2022-11-01 2023-04-04 鹏城实验室 一种神经网络训练及推理方法、装置、终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150016089A (ko) * 2013-08-02 2015-02-11 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
KR20190014829A (ko) 2017-08-04 2019-02-13 한국항공대학교산학협력단 심층 신경망 학습 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150016089A (ko) * 2013-08-02 2015-02-11 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
KR20190014829A (ko) 2017-08-04 2019-02-13 한국항공대학교산학협력단 심층 신경망 학습 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Arild Nøkland, "Direct feedback alignment provides learning in deep neural networks," arXiv:1609.01596v5 [stat.ML] 21 Dec 2016 (2016.12.21.)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022239967A1 (ko) * 2021-05-14 2022-11-17 삼성전자주식회사 전자 장치 및 이의 제어 방법

Also Published As

Publication number Publication date
US11915141B2 (en) 2024-02-27
US20210056427A1 (en) 2021-02-25
KR102294745B1 (ko) 2021-08-27

Similar Documents

Publication Publication Date Title
KR102294745B1 (ko) 심층 신경망 학습 장치
US20200012924A1 (en) Pipelining to improve neural network inference accuracy
US20090276385A1 (en) Artificial-Neural-Networks Training Artificial-Neural-Networks
CN109325591B (zh) 面向Winograd卷积的神经网络处理器
KR102555057B1 (ko) 웨이트 매트릭스를 포맷하는 방법, 포맷된 데이터를 사용하는 가속기 및 이를 포함하는 시스템
CN109523029B (zh) 自适应双自驱动深度确定性策略梯度强化学习方法
US20210103777A1 (en) System and method for batch-normalized recurrent highway networks
US10068170B2 (en) Minimizing global error in an artificial neural network
CN113537481B (zh) 用于执行lstm神经网络运算的装置和运算方法
KR20180092810A (ko) 신경망 프루닝 및 재훈련을 위한 자동 임계값들
US20190258932A1 (en) Method of performing learning of deep neural network and apparatus thereof
CN109934336B (zh) 基于最优结构搜索的神经网络动态加速平台设计方法及神经网络动态加速平台
KR20220088943A (ko) 멤리스터 기반 신경망 병렬 가속 방법, 프로세서 및 장치
CN111368545B (zh) 一种基于多任务学习的命名实体识别方法和装置
US20220092408A1 (en) Neural network weight distribution using a tree direct-memory access (dma) bus
CN107766935B (zh) 多层人造神经网络
JP2017033385A (ja) 機械学習装置
US11301752B2 (en) Memory configuration for implementing a neural network
US11709783B1 (en) Tensor data distribution using grid direct-memory access (DMA) controller
TW202141290A (zh) 記憶體中處理(pim)系統和pim系統的操作方法
CN113139608B (zh) 基于多任务学习的特征融合方法及装置
JP2022502724A (ja) データを処理するための方法、装置、および関連製品
KR102290531B1 (ko) 재조직 가능한 뉴럴 네트워크 컴퓨팅 장치
US20190164035A1 (en) Device for reorganizable neural network computing
JP2022541144A (ja) ハードウェア・アクセラレータとインターフェースするための方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant