KR20230032748A - 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법 - Google Patents

심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법 Download PDF

Info

Publication number
KR20230032748A
KR20230032748A KR1020210115900A KR20210115900A KR20230032748A KR 20230032748 A KR20230032748 A KR 20230032748A KR 1020210115900 A KR1020210115900 A KR 1020210115900A KR 20210115900 A KR20210115900 A KR 20210115900A KR 20230032748 A KR20230032748 A KR 20230032748A
Authority
KR
South Korea
Prior art keywords
weight
neural network
learning
deep
deep neural
Prior art date
Application number
KR1020210115900A
Other languages
English (en)
Other versions
KR102643431B1 (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 KR1020210115900A priority Critical patent/KR102643431B1/ko
Priority to US17/898,553 priority patent/US20230072432A1/en
Publication of KR20230032748A publication Critical patent/KR20230032748A/ko
Application granted granted Critical
Publication of KR102643431B1 publication Critical patent/KR102643431B1/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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • 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/0495Quantised networks; Sparse networks; Compressed networks
    • 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/092Reinforcement learning
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

본 발명은 심층 강화학습을 위한 심층 신경망 학습 가속 장치에 있어서, 상기 심층 강화학습을 위한 심층 신경망 학습을 수행하는 심층 신경망 연산 코어; 및 상기 심층 신경망 학습을 가속화하기 위해 가중치 파라미터를 훈련시켜 상기 심층 신경망 연산 코어로 전달하는 가중치 훈련부를 포함하되, 상기 가중치 훈련부는 상기 가중치 파라미터를 저장하는 신경망 가중치 메모리; 상기 신경망 가중치 메모리로부터 상기 가중치 파라미터를 읽어 와서 가중치 가지치기를 수행하고, 상기 가중치 가지치기 결과로 생성된 가중치 희소패턴을 상기 신경망 가중치 메모리에 다시 저장하는 신경망 가지치기 유닛; 및 상기 신경망 가중치 메모리에 접근하여 상기 가중치 희소패턴을 전달받고, 상기 가중치 희소패턴을 이용하여 상기 신경망 가중치 메모리로부터 그 값이 0이 아닌 가중치 데이터들만을 선별/정렬한 후, 상기 0이 아닌 가중치 데이터들만을 상기 심층 신경망 연산 코어로 전달하는 가중치 선인출기를 포함한다. 따라서, 본 발명은 심층 강화학습을 위한 심층 신경망 학습의 연산 처리 속도를 향상시키고 에너지 효율을 올림으로써, 사용자의 기기 상에서 고속 동작이 가능하고, 전력 소모를 줄일 수 있는 장점이 있다.

Description

심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법{APPARATUS AND METHOD FOR ACCELERATING DEEP NEURAL NETWORK LEARNING FOR DEEP REINFORCEMENT LEARNING}
본 발명은 심층 신경망 학습 가속 장치 및 그 방법에 관한 것으로서, 특히, 심층 강화학습을 위한 심층 신경망 학습의 연산 처리 속도를 향상시키고 에너지 효율을 올리기 위한 심층 신경망 학습 가속 장치 및 그 방법에 관한 것이다.
심층 강화학습은 자율적 에이전트가 강화 학습의 시행착오 알고리즘과 누적 보상 함수를 이용하여 신경망 디자인을 가속화는 방법으로서, 새로운 환경에서의 다양한 경험과 그에 따른 보상을 저장하고, 보상을 최대화하는 방향으로 행동을 결정하는 정책을 업데이트함으로써 이루어진다.
이러한 심층 강화학습은 게임 에이전트, 자동화 로봇 등의 새로운 환경에서 순차적인 결정을 내려야 하는 응용 분야에서 우수한 성능을 보여준다. 특히, 심층 강화학습은 행동을 결정하기 위한 정책으로써 심층 신경망을 사용함으로써 놀랄만한 성능 향상을 이루어내었다.
따라서 최근에는 다양한 심층 강화학습 기술들이 제안되고 있으며, 참고문헌 1에는, 1개의 심층 신경망만을 사용하는 것이 아니라 최소 3개 이상의 다양한 심층 신경망을 사용하여 새로운 환경에서의 경험을 최대한 효율적으로 사용하는 심층 강화학습 기술이 개시되어 있다.
그런데, 이와 같이 다양한 종류의 심층 신경망을 사용하는 심층 강화학습은, 심층 신경망의 추론 및 학습을 위해, 신경망 가중치와 뉴런 데이터의 접근이 잦고, 많은 연산을 필요로 한다. 따라서 사용자의 기기 상에서 고속 동작이 어렵고, 높은 전력을 소모하는 문제가 있다.
또한, 심층 강화학습에 사용되는 심층 신경망 연산의 대부분은 입력 뉴런 데이터와 신경망 가중치의 연속된 합성곱 혹은 행렬곱으로 이루어져 있으며, 심층 강화학습에서 사용되는 입력 뉴런 데이터와 신경망 가중치는 오버플로(Overflow)와 언더플로(Underflow)를 최소화하여 높은 정확도를 얻기 위해 부동 소수점(Floating Point) 연산을 사용한다.
따라서 이러한 연산 과정에서 발생하는, 데이터의 외부 메모리 접근량을 줄이기 위해, 참고문헌 2에는 입력 데이터의 희소성을 활용하는 기술이 개시되고, 참고문헌 3에는 지수부분만을 압축하는 방법이 개시되어 있다.
그런데, 이러한 종래의 기술들은 심층 강화학습의 입력 뉴런 데이터를 압축하는데 사용할 수 있지만, 다양한 심층 신경망을 학습시키는 과정에서 발생하는 대규모 신경망 가중치 접근량을 줄이는 데는 사용할 수 없었다. 따라서 상기 종래의 기술들은 심층 강화학습 학습과정 전체를 가속하는데 한계가 있었다.
한편, 심층 강화학습의 속도를 개선하기 위한 또 다른 방법으로서, 가중치를 압축하는 기술이 있는데, 참고문헌 4에는, 매 학습 과정에서 순차적으로 가중치를 가지치기(pruning)하는 방식이 개시되어 있고, 참고문헌 5에는, 가중치를 집단화하여 하나의 가중치 값이 2번 이상 활용될 수 있도록 하는 방식이 개시되어 있다.
하지만, 참고문헌 4에 개시된 기술의 경우, 학습의 정확도를 유지하기 위해 학습 초기에는 가지치기를 적게 해야 하므로, 학습 초기의 압축률이 떨어져서 학습에 소요되는 시간이 증가하는 단점이 있으며, 참고문헌 5에 개시된 기술은 학습의 최종 정확도를 떨어뜨린다는 문제가 있었다.
1. (참고문헌 1) S. Fujimoto, H. van Hoof, and D. Meger. Addressing function approximation error in actor-critic methods. In Proceedings of the 35th International Conference on Machine Learning, pages 1587-1596, 2018. 2. (참고문헌 2) S. Kang et al., "7.4 GANPU: A 135TFLOPS/W Multi-DNN Training Processor for GANs with Speculative Dual-Sparsity Exploitation," 2020 IEEE International Solid- State Circuits Conference - (ISSCC), San Francisco, CA, USA, 2020. 3. (참고문헌 3) C. Kim, S. Kang, D. Shin, S. Choi, Y. Kim and H. Yoo, "A 2.1TFLOPS/W Mobile Deep RL Accelerator with Transposable PE Array and Experience Compression," 2019 IEEE International Solid- State Circuits Conference - (ISSCC), San Francisco, CA, USA, 2019. 4. (참고문헌 4) M. Zhu and S. Gupta. To prune, or not to prune: exploring the efficacy of pruning for model compression. arXiv preprint arXiv:1710.01878, 2017. 5. (참고문헌 5) S. Liao and B. Yuan. Circconv: A structured convolution with low complexity. Proceedings of the AAAI Conference on Artificial Intelligence, 33(01):4287-4294, 2019.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 심층 강화학습을 위한 심층 신경망 학습의 연산 처리 속도를 향상시키고 에너지 효율을 올림으로써, 사용자의 기기 상에서 고속 동작이 가능하고, 전력 소모를 줄일 수 있도록 하는 심층 신경망 학습 가속 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 가중치 압축 알고리즘을 이용하여 가중치를 압축한 후, 압축된 가중치를 활용하여 심층 신경망을 학습시킴으로써, 심층 강화학습을 위해 요구되는 외부 메모리 접근 대역폭을 큰 폭으로 줄일 뿐 아니라, 요구되는 고정 소수점 연산의 횟수 및 내부 메모리 접근 횟수를 큰 폭으로 줄여, 전체 연산 처리 속도 및 에너지 효율을 향상시키도록 하는 심층 신경망 학습 가속 장치 및 그 방법을 제공하고자 한다.
또한, 본 발명은 부동 소수점 연산을 기반으로 하는 심층 신경망의 가중치 훈련 과정에서 가중치의 집단화와 희소화를 적용하되, 학습의 진행도에 따라 가중치의 집단화 및 희소화를 수행함으로써, 심층 신경망 전체의 훈련 과정에서 높은 압축률을 달성할 수 있도록 하고, 이로 인해 연산 처리 속도 및 에너지 효율을 향상시키도록 하는 심층 신경망 학습 가속 장치 및 그 방법을 제공하고자 한다.
상술한 목적을 달성하기 위해, 본 발명에서 제공하는 심층 신경망 학습 가속 장치는, 심층 강화학습을 위한 심층 신경망 학습 가속 장치에 있어서, 상기 심층 강화학습을 위한 심층 신경망 학습을 수행하는 심층 신경망 연산 코어; 및 상기 심층 신경망 학습을 가속화하기 위해 가중치 파라미터를 훈련시켜 상기 심층 신경망 연산 코어로 전달하는 가중치 훈련부를 포함하되, 상기 가중치 훈련부는 상기 가중치 파라미터를 저장하는 신경망 가중치 메모리; 상기 신경망 가중치 메모리로부터 상기 가중치 파라미터를 읽어 와서 가중치 가지치기를 수행하고, 상기 가중치 가지치기 결과로 생성된 가중치 희소패턴을 상기 신경망 가중치 메모리에 다시 저장하는 신경망 가지치기 유닛; 및 상기 신경망 가중치 메모리에 접근하여 상기 가중치 희소패턴을 전달받고, 상기 가중치 희소패턴을 이용하여 상기 신경망 가중치 메모리로부터 그 값이 0이 아닌 가중치 데이터들만을 선별/정렬한 후, 상기 0이 아닌 가중치 데이터들만을 상기 심층 신경망 연산 코어로 전달하는 가중치 선인출기를 포함하는 것을 특징으로 한다.
한편, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 심층 신경망 학습 가속 방법은 심층 강화학습을 위한 심층 신경망 학습 가속 방법에 있어서, 학습의 진행도에 따라 달라지는 가중치 파라미터의 희소성 비율에 의거하여 가중치 훈련 방식을 결정하는 가중치 훈련 방식 결정단계; 및 상기 결정된 가중치 훈련 방식에 의거하여 상기 가중치 파라미터를 훈련하는 가중치 훈련단계를 포함하되, 상기 가중치 훈련 방식 결정단계는 상기 가중치 파라미터의 희소성 비율이 미리 설정된 가중치 희소성 임계치를 초과하는 경우 가중치 훈련 방식을 희소 가중치 훈련 방식으로 선택하고, 그렇지 않은 경우 상기 가중치 훈련 방식을 집단 및 희소 가중치 훈련 방식으로 선택하는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명의 심층 신경망 학습 가속 장치 및 그 방법은 심층 강화학습을 위한 심층 신경망 학습의 연산 처리 속도를 향상시키고 에너지 효율을 올림으로써, 사용자의 기기 상에서 고속 동작이 가능하고, 전력 소모를 줄일 수 있는 장점이 있다.
또한, 본 발명은 가중치 압축 알고리즘을 이용하여 가중치를 압축한 후, 압축된 가중치를 활용하여 심층 신경망을 학습시킴으로써, 심층 강화학습을 위해 요구되는 외부 메모리 접근 대역폭을 큰 폭으로 줄일 뿐 아니라, 요구되는 고정 소수점 연산의 횟수 및 내부 메모리 접근 횟수를 큰 폭으로 줄여, 전체 연산 처리 속도 및 에너지 효율을 향상시키는 장점이 있다.
또한, 본 발명은 부동 소수점 연산을 기반으로 하는 심층 신경망의 가중치 훈련 과정에서 가중치의 집단화와 희소화를 적용하되, 학습의 진행도에 따라 가중치의 집단화 및 희소화를 수행함으로써, 심층 신경망 전체의 훈련 과정에서 높은 압축률을 달성할 수 있도록 하고, 이로 인해 연산 처리 속도 및 에너지 효율을 향상시키도록 하는 장점이 있다.
도 1은 본 발명의 일실시 예에 따른 심층 강화학습을 위한 심층 신경망 학습 가속 장치에 대한 개략적인 블록도이다.
도 2는 본 발명의 일실시 예에 따른 심층 강화학습을 위한 심층 신경망 학습 가속 방법에 대한 처리 흐름도이다.
도 3은 본 발명의 일실시 예에 따른 가중치 훈련 방식 결정 과정에 대한 개략적인 처리 흐름도이다.
도 4는 본 발명의 일실시 예에 따른 가중치 훈련 과정에 대한 개략적인 처리 흐름도이다.
도 5는 본 발명의 일실시 예에 따른 가중치 집단화 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시 예에 따른 가중치 가지치기 과정을 설명하기 위한 개략적인 처리 흐름도이다.
도 7은 본 발명의 일실시 예에 따른 기준값 결정 과정을 설명하기 위한 개략적인 처리 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 설명하되, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 한편 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한 상세한 설명을 생략하여도 본 기술 분야의 당업자가 쉽게 이해할 수 있는 부분의 설명은 생략하였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 일실시 예에 따른 심층 강화학습을 위한 심층 신경망 학습 가속 장치에 대한 개략적인 블록도이다. 도 1을 참조하면, 본 발명의 일실시 예에 따른 심층 강화학습을 위한 심층 신경망 학습 가속 장치는 심층 신경망 연산 코어(100), 및 가중치 훈련부(200)를 포함한다.
심층 신경망 연산 코어(100)는 입력 뉴런 메모리(10)로부터 입력 데이터를 전달받아 심층 강화학습을 위한 심층 신경망 학습을 수행한 후, 그 결과를 출력 뉴런 메모리(20)로 출력한다. 이를 위해, 심층 신경망 연산 코어(100)는 부동 소수점을 처리할 수 있는 부동 소수점 연산기(일명, 부동 소수점 곱셈-누산기)(110)들을 수개 ~ 수백개 집적하되, 병렬로 배열하여 심층 신경망 연산을 고속으로 수행할 수 있다. 특히, 심층 신경망 연산 코어(100)는 후술될 신경망 가중치 메모리(210)로부터 가중치 파라미터를 전달받아 심층 신경망 연산을 수행하되, 후술될 가중치 선인출기(230)로부터 그 값이 0이 아닌 가중치 데이터들만을 전달받아 심층신경망 연산을 수행할 수 있다.
즉, 입력 뉴런 메모리(10)에서 불러온 입력 데이터와, 후술될 가중치 경로기(240)로부터 전달받은 데이터들은, 심층 신경망 연산 코어(100)의 부동 소수점 연산기(110) 간에 포괄적(global), 국소적(local) 연결을 통해 재사용이 가능하며, 후술될 가중치 선인출기(230)에서 정렬한 데이터를 바탕으로 곱셈 결과 값이 0으로 예측되는 곱셈에 대한 연산을 뛰어넘고 수행하지 않을 수 있다.
한편, 심층 강화학습에서 사용되는 심층 신경망 학습 과정은 전파(Forward Propagation) 과정과 역전파(Back Propagation) 과정을 하나의 단위로 하여 이를 여러 회에 거쳐 반복 수행하는 것으로 이루어진다. 매 반복 수행에서는 새로운 환경에서 얻은 경험들을 바탕으로 더 나은 행동을 할 수 있도록 가중치를 갱신한다. 학습이 진행함에 따라 최종 결과에 중요한 가중치들의 경우 큰 값을 가지게 되며, 중요하지 않은 가중치들은 작은 값을 가지게 된다. 이러한 작은 가중치들은 갱신이 불필요하므로 학습 과정에서 가지치기를 통해 제거하여 가중치를 압축할 수 있다. 이러한 일련의 과정들을 가중치 훈련이라 칭한다.
그런데, 학습 도입부의 경우 초기화된 가중치로부터 갱신을 시키게 되므로 충분한 시간이 지나기 전까지는 어떤 가중치가 중요하고, 어떤 가중치가 중요하지 않은지 파악할 수 없기에 가지치기의 비율을 높게 가져갈 수 없는 문제가 있다.
따라서 학습 도입부 과정에서 높은 가중치 압축을 위해서는 가지치기를 통한 ‘희소성’과 더불어 추가의 가중치 압축 방식의 도입이 필요하며, 이를 위해, 본 발명의 가중치 훈련부(200)는, 각각의 가중치를 미리 약속한 구조에 따른 여러 개의 집단으로 나눈 뒤, 각 집단에 속하는 가중치들은 같은 값을 가지도록 하는 ‘집단 가중치’방식을 도입하였다. 즉, 본 발명의 가중치 훈련부(200)는 학습의 도입부에서는 상기 집단 가중치를 사용하여 부동 소수점 연산을 통한 심층 신경망 연산과 활성화 함수 연산을 포함한 전파 과정 및 역전파 과정의 충분한 반복을 수행한 뒤, 가중치 가지치기를 수행하여 중요도가 떨어지는 가중치를 순차적으로 제거하였다.
하지만 상기 ‘집단 가중치’를 계속 유지할 경우, 전체 신경망의 복잡도가 떨어져서 최종 정확도가 낮아질 수 있으므로, 일정 수준이 지나면 ‘집단 가중치’구조를 제거해야 할 필요성이 생긴다.
따라서 본 발명의 가중치 훈련부(200)는 학습의 결말부에 이르러서는 ‘희소 가중치 훈련’을 도입하여 가중치의 집단화를 진행하지 않은 상태로 전파 과정 및 역전파 과정의 충분한 반복을 수행한 뒤, 가중치 가지치기를 수행하여 중요도가 떨어지는 가중치를 순차적으로 제거하였다.
즉, 본 발명의 가중치 훈련부(200)는, 상기와 같이 가중치 파라미터를 훈련시켜 심층 신경망 연산 코어(100)로 전달하되, 학습의 도입부에서 가중치의 집단화 및 희소화를 함께 적용하고, 학습의 결말부에서는 가중치의 희소화만을 적용하여 가중치 압축을 수행할 수 있다.
이를 위해, 가중치 훈련부(200)는 신경망 가중치 메모리(210), 신경망 가지치기 유닛(220), 가중치 선인출기(230), 및 가중치 경로기(240)를 포함할 수 있다.
신경망 가중치 메모리(210)는 가중치 파라미터를 저장한다. 특히, 신경망 가중치 메모리(210)는 초기의 가중치 파라미터 값뿐만 아니라, 학습 과정에서 갱신되는 가중치 파라미터 값들, 및 신경망 가지치기 유닛(220)에서 훈련된 가중치 파라미터들을 모두 저장할 수 있다.
신경망 가지치기 유닛(220)은 신경망 가중치 메모리(210)로부터 상기 가중치 파라미터를 읽어 와서 가중치 가지치기를 수행하고, 상기 가중치 가지치기 결과로 생성된 가중치 희소패턴을 신경망 가중치 메모리(210)에 다시 저장한다.
이를 위해, 신경망 가지치기 유닛(220)은 수 개의 비교기를 병렬적으로 집적하여 구성할 수 있으며, 가지치기 대상을 결정하기 위해 미리 설정된 기준값을 저장하고, 상기 기준값과 상기 가중치 파라미터에 포함된 전체 가중치 데이터 값들 각각을 비교하여 상기 기준값 이하인 가중치 데이터를 희소 가중치 데이터(즉, 그 값이 0인 데이터)로 변환한 후, 상기 희소 가중치 데이터를 포함하는 가중치 파라미터를 희소패턴으로 변환함으로써, 가지치기를 진행할 수 있다.
이 때, 상기 기준값은 상기 심층 강화학습에 대한 보상값을 고려하여 설정된 값으로서, 신경망 가지치기 유닛(220)에서 상기 기준값을 생성을 하거나, 기 설정된 기준값을 신경망 가지치기 유닛(220)에 저장하여 사용할 수 있다. 상기 보상값을 고려하여 기준값을 생성하는 처리 과정에 대하여는 도 7을 참조하여 후술될 것이다.
이와 같이, 가지치기가 진행되고 나면, 신경망 가지치기 유닛(220)은 값이 0인 가중치 데이터들은 전부 제외하고 나머지 가중치들을 포함하는 가중치 파라미터를 신경망 가중치 메모리(210)에 저장하며, 동시에 희소 패턴을 제작하여 이 역시 신경망 가중치 메모리(210)에 저장한다. 이 때, 상기 희소 패턴은 후술될 가중치 선인출기(230)에 의해 참조될 수 있다.
예를 들어, 가중치 파라미터가
Figure pat00001
로 이루어진 2 x 2 행렬이고, 상기 기준값이 2.5인 경우, 신경망 가지치기 유닛(220)은 상기 가중치 파라미터에 포함된 가중치 데이터들 중 2.5보다 작은 값인 1과 2를 희소 가중치 데이터(즉, 그 값이 0인 데이터)로 변환하여
Figure pat00002
와 같은 형태로 압축하고, 상기 압축된 가중치 파라미터를 희소패턴
Figure pat00003
으로 변환함으로써, 가지치기를 수행하고, 상기 압축된 가중치 파라미터(
Figure pat00004
)와, 상기 희소패턴(
Figure pat00005
)을 모두 신경망 가중치 메모리(210)에 저장할 수 있다.
한편, 신경망 가지치기 유닛(220)은 상기 가중치 가지치기 수행 이전에, 신경망 가중치 메모리(210)에 저장된 상기 가중치 파라미터들에 대하여, 희소성 비율을 산출하고, 상기 희소성 비율이 미리 설정된 가중치 희소성 임계치를 초과하지 않는 경우, 상기 가중치 파라미터를 구성하는 다수의 입/출력 채널들 각각에 대해, 상기 입/출력 채널들 각각에 포함된 다수의 가중치 데이터들을 집단화하는 집단화 단계를 더 수행할 수 있다.
이 때, 희소성 비율이란, 다수의 가중치 데이터들을 포함하는 행렬 형태의 가중치 파라미터에서 전체 가중치 데이터에 대한 희소성 데이터(즉, 값이 0인 가중치 데이터)의 개수를 말한다. 예를 들어, 가중치 파라미터가 행렬 128 x 128인 형태인 경우, 상기 가중치 파라미터에 포함된 전체 가중치 데이터는 16,384개이고, 상기 가중치 데이터 중 그 값이 0인 가중치 데이터의 개수가 8,192인 경우, 희소성 비율은 50%가 되는 것이다.
신경망 가지치기 유닛(220)은 미리 설정된 가중치 희소성 임계치와 상기 희소성 비율을 비교하여 집단화 단계 수행 여부를 결정할 수 있다. 이 때, 상기 가중치 희소성 임계치는 가중치 훈련 방식을 결정하기 위한 기준이 되는 희소성 비율값을 말하는 것으로서, 미리 설정된 가중치 희소성 임계치가 60%인 경우, 상기 산출된 희소성 비율이 상기와 같이 50%라면, 신경망 가지치기 유닛(220)은 상기 집단화 단계를 수행한 후, 가중치 가지치기를 수행할 것이다.
이 때, 신경망 가지치기 유닛(220)은 상기 가중치 파라미터에 대하여 미리 설정된 그룹의 크기에 의거하여 집단화되는 가중치 데이터들의 수를 결정할 수 있다. 예를 들어, 그룹의 크기가 2인 경우 신경망 가지치기 유닛(220)은 가중치 데이터 2개를 집단화하고, 그룹의 크기가 4인 경우 신경망 가지치기 유닛(220)은 가중치 데이터 4개를 집단화할 수 있다. 한편, 상기 그룹의 크기는 신경망의 특성에 따라 사용자가 임의로 설정 또는 변경할 수 있다. 상기 집단화 과정에 대한 보다 구체적인 설명은 도 5를 참조한 설명에서 후술될 것이다.
가중치 선인출기(230)는 신경망 가중치 메모리(210)에 접근하여 상기 가중치 희소패턴을 전달받고, 상기 가중치 희소패턴을 이용하여 신경망 가중치 메모리(210)로부터 그 값이 0이 아닌 가중치 데이터들만을 선별/정렬한 후, 상기 0이 아닌 가중치 데이터들만을 심층 신경망 연산 코어(100)로 전달한다.
이로 인해, 심층 신경망 연산 코어(100)는 값이 0인 가중치에 대한 연산을 생략하면서도 신경망 연산속도를 유지하여 높은 처리량과 높은 에너지 효율을 가질 수 있게 된다.
이 때, 가중치 선인출기(230)는 상기 정렬된 가중치 데이터들과, 상기 정렬된 가중치 데이터들이 생성하는 부분합의 위치에 대한 정보를, 동시에, 심층 신경망 연산 코어(100)로 전달할 수 있다. 이는 가중치 선인출기(230)에서 정렬된 가중치 데이터들이 값이 0인 가중치들을 제외하는 과정에서 불규칙적인 순서를 가지게 되므로, 심층 신경망 연산 코어(100)에서 각 가중치 데이터들의 위치 정보를 정확하게 인식할 수 있도록 하기 위함이다. 즉, 이를 통해 심층 신경망 연산 코어(100)는, 추후 심층 신경망 연산이 일어날 때, 출력 부분합이나 뉴런 데이터를 재정렬하여 출력 뉴런 메모리(20)에 저장하게 된다.
가중치 경로기(240)는 집단화된 가중치를 처리하기 위해 집적된 것으로서, 다수의 레지스터(register)와 멀티플렉서(multiplexer)로 이루어진 라우터로 구성되어, 가중치들이 집단화되었을 경우 추가적인 신경망 가중치 메모리 접근 없이 집단 안에서의 데이터 재사용을 가능하게 한다. 즉, 가중치 경로기(240)는 상기 집단화된 가중치 데이터들을, 재사용하기 위해 상기 레지스터에 저장하되, 집단의 크기 및 집단 구조에 대한 정보를 받아서, 대응된 가중치와 함께 상기 레지스터(register)에 저장함으로써, 한번 신경망 가중치 메모리(210)에서 불러온 데이터를 여러 번 반복하여 재사용할 수 있도록 한다.
이 때, 집단의 크기 및 짐단 구조라 함은 현재 가중치의 집단화 상태를 표현하는 정보로서, 가중치 집단화 여부를 나타내는 ‘집단구조’와 가중치 집단화가 적용되었을 때 그 집단의 크기를 나타내는 ‘집단의 크기’로 구성되어 있다. 예를 들어, 가중치 집단화를 적용할 경우의 ‘집단구조’는 1, 그렇지 않을 경우 ‘집단구조’는 0의 값을 가지게 되며, ‘집단구조’가 1일 때 ‘집단의 크기’는 2 혹은 4가 될 수 있다.
예를 들어, 집단의 첫 번째 가중치가 가중치 경로기(240)에 도달할 경우, 가중치 경로기(240)는 이를 레지스터에 저장하되, 대응된 집단의 크기 및 집단 구조에 대한 정보를 함께 저장하고, 동시에 상기 가중치를 심층 신경망 연산 코어(100)로 보낸다.
그리고 심층 신경망 연산 코어(100)가 다음 연산을 위한 데이터를 요구할 경우, 가중치 경로기(240)는 신경망 가중치 메모리(210)에 가중치를 재요청 하지 않고, 다음 연산을 위한 데이터 요구시 함께 전달된 집단의 크기 및 집단의 구조에 대한 정보를 토대로 심층 신경망 연산 코어(100)의 각 부동 소수점 연산기(110)와 가중치 경로기(240)를 알맞게 연결한다.
이 때, 각 부동 소수점 연산기(110)와 가중치 경로기(240)를 알맞게 연결한다는 것은, 올바른 출력 채널 값을 연산할 수 있도록 연결한다는 의미이다. 예시적으로 집단의 크기가 2인 경우, 어떤 한 가중치 값이 출력 채널 1의 값을 생성하는 연산에 사용되었다면 그 다음 연산에서 동일한 가중치 값은 출력 채널 2의 값을 생성하는 연산에 사용될 수 있다. 그런데, 모든 부동 소수점 연산기가 생성하는 출력 채널의 위치가 다르므로 위 예시의 경우 가중치 경로기는 해당 가중치 값을 처음에는 출력 채널 1을 연산하는 부동 ??수점 연산기에 연결하고, 다음 연산에서는 출력 채널 2를 연산하는 부동 소수점 연산기에 연결한다.
이로 인해, 가중치 경로기(240)는 메모리에서 불러온 데이터를 집단의 크기만큼 여러 번 재사용할 수 있으며, 결과적으로, 메모리 접근 횟수를 줄이고 심층 신경망 연산을 위한 에너지 효율을 높일 수 있도록 한다.
도 2는 본 발명의 일실시 예에 따른 심층 강화학습을 위한 심층 신경망 학습 가속 방법에 대한 처리 흐름도이다. 도 1 및 도 2를 참조하면, 본 발명의 일실시 예에 따른 심층 강화학습을 위한 심층 신경망 학습 가속 방법은 다음과 같다.
먼저, 단계 S100에서, 가중치 훈련부(200)는 가중치 훈련방식을 결정한다. 일반적으로, 심화 강화학습을 위한 심층 신경망 학습은 여러 번 반복된 가중치 훈련을 통해 이루어지는데, 이를 위해, 단계 S100에서는, 가중치 훈련부(200)가 학습의 진행도에 따라 달라지는 가중치 파라미터의 희소성 비율에 의거하여 가중치 훈련 방식을 결정한다.
이 때, 희소성 비율이란, 다수의 가중치 데이터들을 포함하는 행렬 형태의 가중치 파라미터에서 전체 가중치 데이터에 대한 희소성 데이터(즉, 값이 0인 가중치 데이터)의 개수를 말한다. 예를 들어, 가중치 파라미터가 행렬 128 x 128인 형태인 경우, 상기 가중치 파라미터에 포함된 전체 가중치 데이터는 16,384개이고, 상기 가중치 데이터 중 그 값이 0인 가중치 데이터의 개수가 8,192인 경우, 희소성 비율은 50%가 되는 것이다.
단계 S100에서는, 미리 설정된 가중치 희소성 임계치와 상기 희소성 비율을 비교하여 가중치 훈련 방식을 결정할 수 있는데, 이 때, 상기 가중치 희소성 임계치는 가중치 훈련 방식을 결정하기 위한 기준이 되는 희소성 비율값을 말한다. 이러한 가중치 훈련 방식 결정 과정(S100)의 예가 도 3에 예시되어 있다.
도 3은 본 발명의 일실시 예에 따른 가중치 훈련 방식 결정 과정에 대한 개략적인 처리 흐름도로서, 도 1 내지 도 3을 참조하면, 가중치 훈련 방식을 결정하기 위해, 단계 S110에서는, 가중치 훈련부(200)가 상기 가중치 희소성 임계치를 설정한다. 이 때, 상기 가중치 희소성 임계치는 네트워크의 종류 또는 사용자의 입력 정보에 의거하여 변경 설정이 가능하다.
단계 S120에서는, 가중치 훈련부(200)가 상기 가중치 파라미터의 희소성 비율을 산출한다. 즉, 단계 S120에서, 가중치 훈련부(200)는 가중치 파라미터에 포함된 전체 가중치 데이터 중 그 값이 0인 개수를 카운트하고, 상기 가중치 파라미터에 포함된 전체 가중치 데이터들 대비 그 값이 0인 가중치 데이터의 비율을 산출한다.
단계 S130에서는, 단계 S110에서 설정된 가중치 희소성 임계치와, 단계 S1020에서 산출된 가중치 파라미터의 희소성 비율을 비교한다.
단계 S140 및 단계 S150에서는, 가중치 훈련부(200)가 단계 S130의 비교 결과에 의거하여, 가중치 훈련 방식을 결정하되, 상기 희소성 비율이 상기 임계치 미만인 경우 가중치 훈련부(200)는 단계 S140에서 집단 및 희소 가중치 훈련 방식을 선택하고, 상기 희소성 비율이 상기 임계치 이상인 경우 가중치 훈련부(200)는 단계 S150에서 희소 가중치 훈련 방식을 선택한다.
예를 들어, 상기 임계치가 50%인 경우, 상기 산출된 희소성 비율이 50% 미만인 경우, 가중치 집단화 및 희소화가 모두 적용된 집단 및 희소 가중치 훈련 방식을 선택하고, 그렇지 않은 경우 가중치 희소화만 적용된 희소 가중치 훈련 방식을 선택한다.
이와 같이, 희소화 비율에 의거하여, 가중치 훈련 방식을 다르게 결정하는 이유는, 학습 도입부의 경우 초기화된 가중치로부터 갱신을 시키게 되므로 충분한 시간이 지나기 전까지는 어떤 가중치가 중요하고 어떤 가중치가 중요하지 않은지를 파악할 수 없기 때문에 희소성 비율에 따른 가지치기에 의해 가중치를 압축하는 데에 한계가 있고, 가중치 집단화를 학습 전반에 걸쳐서 지속적으로 유지할 경우 전체 신경망의 복잡도가 떨어져서 최종 정확도가 낮아질 수 있는 문제가 있기 때문이다.
따라서 도 3에 예시된 바와 같이, 희소성 비율이 낮은 학습 도입부에서는 집단화와 희소화를 모두 적용한 가중치 훈련 방식을 선택하고, 학습 시간이 충분히 경과하여 희소성 비율이 특정값(즉, 임계치) 이상이 되면, 희소화만을 적용한 가중치 훈련 방식을 선택하여 가중치를 훈련하도록 하는 것이 바람직하다. 이와 같이 함으로써, 본 발명의 심층 신경망 학습 가속 방법은 학습 정확도를 낮추지 않으면서 모든 학습 과정에서 높은 가중치 압축률을 가져갈 수 있도록 하는 효과가 있다.
단계 S200에서는, 가중치 훈련부(200)가 상기 가중치 파라미터를 훈련하되, 단계 S100에서 결정된 가중치 훈련 방식에 의거하여 상기 가중치 파라미터를 훈련한다. 이러한 가중치 훈련 과정(S200)의 예가 도 4 내지 도 7에 예시되어 있다. 따라서 가중치 훈련 과정(S200)에 대하여는 도 4 내지 도 7을 참조하여 설명할 것이다.
단계 S300은 훈련 종료 조건을 만족하는 지 여부를 결정하고, 단계 S100 및 단계 S200은 훈련 종료 조건을 만족할 때까지 반복한다. 이 때, 훈련 종료 조건은 입력 뉴런 메모리(10)로부터 새롭게 입력되는 입력 데이터의 부재 또는 미리 설정된 훈련 시간 등을 포함할 수 있다.
도 4는 본 발명의 일실시 예에 따른 가중치 훈련 과정에 대한 개략적인 처리 흐름도로서, 도 1, 도 2 및 도 4를 참조하면, 본 발명의 일실시 예에 따른 가중치 훈련 과정(S200)은 다음과 같다.
단계 S210에서는, 단계 S100에서 선택된 가중치 훈련 방식을 확인하여 집단화 과정(S220)을 수행할지 여부를 결정한다. 즉, 단계 S210의 확인 결과, 단계 S100에서 선택된 가중치 훈련 방식이 집단 및 희소 가중치 훈련인 경우 가중치 훈련부(200)는 단계 S220으로 진행하여 집단화를 수행하고, 그렇지 않은 경우 가중치 훈련부(200)는 단계 S220를 생략하고, 그 이후의 단계를 진행한다.
단계 S220에서, 가중치 훈련부(200)는 상기 가중치 파라미터를 구성하는 다수의 입/출력 채널들 각각에 대해, 상기 입/출력 채널들 각각에 포함된 다수의 가중치 데이터들을 집단화한다. 이 때, 단계 S220에서는, 가중치 훈련부(200)가 상기 가중치 파라미터에 대하여 미리 설정된 그룹의 크기에 의거하여 집단화되는 가중치 데이터들의 수를 결정할 수 있다. 예를 들어, 그룹의 크기가 2인 경우 가중치 훈련부(200)는 가중치 데이터 2개를 집단화하고, 그룹의 크기가 4인 경우 가중치 훈련부(200)는 가중치 데이터 4개를 집단화할 수 있다. 한편, 상기 그룹의 크기는 신경망의 특성에 따라 사용자가 임의로 설정 또는 변경할 수 있다.
도 5는 본 발명의 일실시 예에 따른 가중치 집단화 과정을 설명하기 위한 도면으로서, 도 1 및 도 5를 참조하면, 가중치 훈련부(200)는 도 5에 예시된 바와 같이, 입력 채널과 출력 채널에 대해 집단화를 수행한다. 이 때, 입력 채널 Chin, 출력 채널 Chout, 커널 가로 길이 x, 커널 세로 길이 y, 그룹 크기 G를 가진 가중치를 집단화할 경우, 가중치 훈련부(200)는 각각의 커널 위치에 대한 입력 채널과 출력 채널들에 대해 따로따로 집단화를 수행한다. 도 5의 (a)는 4차원의 가중치 파라미터의 예들을 도시하고, 도 5의 (b)는 입력 채널과 출력 채널들에 대해 개별적으로 집단화를 수행하는 예를 도시하고 있다. 특히 도 5(b)의 가)는 그룹 크기(G)가 2인 경우의 예를 도시하고 , 도 5(b)의 나)는 그룹 크기(G)가 4인 경우의 예를 도시한다.
도 5(b)의 가)를 참조하면, 그룹 크기(G)가 2인 경우, 입력 채널과 출력 채널을 22의 크기를 가지는 사각형들로 나눈 다음, 각 사각형 안에서 원형군 행렬 (circulant matrix)의 모양으로 같은 가중치를 가지도록 집단화하였음을 알 수 있다. 또한, 도 5(b)의 나)를 참조하면, 그룹 크기(G)가 4인 경우, 입력 채널과 출력 채널을 42의 크기를 가지는 사각형들로 나눈 다음, 각 사각형 안에서 원형군 행렬(circulant matrix)의 모양으로 같은 가중치를 가지도록 집단화하였음을 알 수 있다.
다시 도 1, 도 2 및 도 4를 참조하면, 단계 S230에서, 가중치 훈련부(200)는 신경망 연산을 수행한다. 즉, 단계 S230에서는, 가중치 훈련부(200)가 상기 가중치 파라미터에 포함된 전체 데이터들 중 상기 희소성 비율을 결정하는 희소 가중치 데이터(즉, 그 값이 0인 데이터)를 제외한 부동 소수점 심층 신경망 연산을 수행한다.
단계 S240에서, 가중치 훈련부(200)는 활성화 함수에 의해, 단계 S230의 신경망 연산 결과를 출력 신호로 변환한다.
단계 S250에서는, 가중치 훈련부(200)가 단계 S240의 활성화 연산 결과에 대한 가중치 가지치기를 수행하되, 미리 설정된 목표 희소성을 만족할 때까지, 상기 가중치 가지치기를 반복 수행한다. 이러한 가중치 가지치기 과정(S250)의 예가 도 6에 예시되어 있다.
도 6은 본 발명의 일실시 예에 따른 가중치 가지치기 과정을 설명하기 위한 개략적인 처리 흐름도로서, 도 6을 참조하면, 본 발명의 일실시 예에 따른 가중치 가지치기 과정(S250)은 다음과 같다.
먼저, 단계 S251에서, 가중치 훈련부(200)는 상기 가중치 파라미터에 포함된 전체 데이터들 각각에 대하여, 가지치기 대상 여부를 결정하기 위한 기준값을 결정하되, 상기 심층 강화학습에 대한 보상값을 고려하여 상기 기준값을 결정한다. 이 때, 상기 기준값은 상기 심층 강화학습에 대한 보상값을 고려하여 설정된 값으로서, 신경망 가지치기 유닛(220)에서 상기 기준값을 생성을 하거나, 기 설정된 기준값을 신경망 가지치기 유닛(220)에 저장하여 사용할 수 있다.
도 7은 본 발명의 일실시 예에 따른 기준값 결정 과정을 설명하기 위한 개략적인 처리 흐름도로서, 도 7을 참조하면, 본 발명의 일실시 예에 따른 기준값 결정 과정(S251)은 다음과 같다.
먼저, 단계 S251-1에서는, 가중치 훈련부(200)가 현재 보상값을 추출한다. 즉, 단계 S251-1에서, 가중치 훈련부(200)는 현재 강화학습을 통해 생성된 보상값(즉, 현재 보상값)을 추출한다.
단계 S251-2에서는, 가중치 훈련부(200)가 상기 현재 보상값과, 심층 강화 학습 과정을 통해 생성된 이전의 보상값들 중 최대 보상값과 상기 현재 보상값을 비교한다.
단계 S251-3에서는, 가중치 훈련부(200)가 단계 S251-2의 비교 결과에 의거하여, 새로운 기준값을 생성한다. 즉, 단계 S251-1에서 추출된 현재 보상값이 기존의 최대 보상값 보다 더 큰 경우, 단계 S251-3에서, 가중치 훈련부(200)는 상기 기준값을 미리 설정된 증가값(VA) 만큼 증가시켜 새로운 기준값을 생성한다. 이 때, 상기 기준값을 미리 설정된 증가값(VA) 만큼 증가시키는 것은, 현재 보상값이 기존의 최대 보상값 보다 더 크므로 가중치 가지치기를 더 많이 수행해도 된다고 판단했기 때문이며, 상기 기준값을 단계적으로 증가시킴으로써, 심층 강화학습의 정확도를 유지하면서 가중치 가지치기를 수행할 수 있는 장점이 있는 것이다.
다시 도 6을 참조하면, 단계 S252에서는, 상기 결정된 기준값에 의거하여 가중치 파라미터에 포함된 전체 데이터들 중 가중치 가지치기 대상을 희소 데이터로 변환한다. 즉, 단계 S252에서는, 상기 가중치 파라미터에 포함된 전체 데이터들 각각을 상기 기준값과 비교하여 상기 기준값 이하인 데이터를 희소 가중치 데이터(즉, 값이 0인 데이터)로 변환한다.
단계 S253에서는, 상기 희소 가중치 데이터를 포함하는 가중치 파라미터를 희소패턴으로 변환한다.
단계 S254에서는, 상기 희소 패턴의 희소성 비율이 미리 설정된 목표 희소성에 도달했는지 여부를 판단하고, 상기 판단 결과 상기 희소 패턴의 희소성 비율이 미리 설정된 목표 희소성에 도달하지 않은 경우, 상기 단계 S251 내지 단계 S253을 반복 수행한다.
예를 들어, 가중치 파라미터가
Figure pat00006
로 이루어진 2 x 2 행렬이고, 상기 기준값이 2.5인 경우, 상기 가중치 가지치기 단계(S250)에서는, 상기 가중치 파라미터에 포함된 가중치 데이터들 중 2.5보다 작은 값인 1과 2를 희소 가중치 데이터(즉, 그 값이 0인 데이터)로 변환하여
Figure pat00007
와 같은 형태로 압축하고, 상기 압축된 가중치 파라미터를 희소패턴
Figure pat00008
으로 변환함으로써, 가지치기를 수행할 수 있다.
한편, 이와 같은 본 발명의 가중치 가지치기 단계(S250)는 상기 기준값을 증가시켰는데도, 목표 희소성에 도달하지 않았을 경우 처음으로 돌아가서 목표 희소성에 도달할 때까지 상기 기준값을 증가시키면서 희소 패턴을 생성하는 과정(단계 S251 내지 단계 S253)을 반복한다. 따라서 본 발명은 이와 같이 순차적으로 가중치 가지치기를 수행함에 따라 급격히 많은 개수의 가중치의 값이 0으로 고정되는 현상을 방지하여 학습 정확도의 급격한 하락을 막는 특징이 있다.
또한, 본 발명은 가중치 집단화를 위해 필요한 그룹(G) 크기와, 보상을 고려한 기준값 결정 알고리즘에서의 기준값 상승폭(VA)은 사용자가 임의로 정하거나, 미리 가능한 범위를 탐색하여 정확도와 속도가 빠른 기준값을 찾는 방법 등을 이용하여 구할 수 있다.
상기와 같은 본 발명을 심층 강화 학습에 적용할 경우, 대체로 전체 학습 과정에서 평균적으로 60~70% 정도의 가중치 압축이 가능하다. 예를 들어, Mujoco Humanoid-v2 에서의 TD3는 66.1%, Mujoco Halfcheetah-v2에서의 TD3는 72.0%, Google Research Football에서의 PPO는 73.6% 정도의 가중치 압축을 거의 동일 정확도로 달성할 수 있다.
또한 본 발명의 심층 신경망 학습 가속 장치를 이용하여 심층 강화학습을 수행하되, Mujoco-Humanoid-v2 에서의 TD3를 학습시킬 경우, 에너지 효율성을 4.4배, 학습 속도를 2배 정도 향상시킬 수 있다.
이상의 설명에서는 본 발명의 바람직한 실시예를 제시하여 설명하였으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있음을 쉽게 알 수 있을 것이다.
10: 입력 뉴런 메모리 20: 출력 뉴런 메모리
100: 심층 신경망 연산 코어 110: 부동 소수점 연산기
200: 가중치 훈련부 210: 신경망 가중치 메모리
220: 신경망 가지치기 유닛 230: 가중치 선인출기
240: 가중치 경로기

Claims (10)

  1. 심층 강화학습을 위한 심층 신경망 학습 가속 장치에 있어서,
    상기 심층 강화학습을 위한 심층 신경망 학습을 수행하는 심층 신경망 연산 코어; 및
    상기 심층 신경망 학습을 가속화하기 위해 가중치 파라미터를 훈련시켜 상기 심층 신경망 연산 코어로 전달하는 가중치 훈련부를 포함하되,
    상기 가중치 훈련부는
    상기 가중치 파라미터를 저장하는 신경망 가중치 메모리;
    상기 신경망 가중치 메모리로부터 상기 가중치 파라미터를 읽어 와서 가중치 가지치기를 수행하고, 상기 가중치 가지치기 결과로 생성된 가중치 희소패턴을 상기 신경망 가중치 메모리에 다시 저장하는 신경망 가지치기 유닛; 및
    상기 신경망 가중치 메모리에 접근하여 상기 가중치 희소패턴을 전달받고, 상기 가중치 희소패턴을 이용하여 상기 신경망 가중치 메모리로부터 그 값이 0이 아닌 가중치 데이터들만을 선별/정렬한 후, 상기 0이 아닌 가중치 데이터들만을 상기 심층 신경망 연산 코어로 전달하는 가중치 선인출기를 포함하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 장치.
  2. 제1항에 있어서, 상기 가중치 선인출기는
    상기 정렬된 가중치 데이터들과, 상기 정렬된 가중치 데이터들이 생성하는 부분합의 위치에 대한 정보를, 동시에, 상기 심층 신경망 연산 코어로 전달하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 장치.
  3. 제2항에 있어서, 상기 심층 신경망 연산 코어는
    부동 소수점을 처리할 수 있는 다수의 곱셈-누산기를 병렬 배열하여 심층 신경망 연산을 고속으로 수행하되, 상기 가중치 선인출기로부터 그 값이 0이 아닌 가중치 데이터들만을 전달받아 심층 신경망 연산을 수행하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 장치.
  4. 제3항에 있어서, 상기 신경망 가지치기 유닛은
    상기 가중치 가지치기 수행 이전에,
    상기 신경망 가중치 메모리에 저장된 상기 가중치 파라미터들에 대하여, 상기 가중치 파라미터의 희소성 비율을 산출하고,
    상기 희소성 비율이 미리 설정된 가중치 희소성 임계치를 초과하지 않는 경우, 상기 가중치 파라미터를 구성하는 다수의 입/출력 채널들 각각에 대해, 상기 입/출력 채널들 각각에 포함된 다수의 가중치 데이터들을 집단화하는 집단화 단계를 더 수행하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 장치.
  5. 제4항에 있어서,
    수 개의 레지스터(register)와, 수 개의 멀티플렉서(multiplexer)를 포함하는 라우터(router)로 구성되어, 상기 집단화된 가중치 데이터들을 재사용하기 위해 저장하는 가중치 경로기를 더 포함하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 장치.
  6. 심층 강화학습을 위한 심층 신경망 학습 가속 방법에 있어서,
    학습의 진행도에 따라 달라지는 가중치 파라미터의 희소성 비율에 의거하여 가중치 훈련 방식을 결정하는 가중치 훈련 방식 결정단계; 및
    상기 결정된 가중치 훈련 방식에 의거하여 상기 가중치 파라미터를 훈련하는 가중치 훈련단계를 포함하되,
    상기 가중치 훈련 방식 결정단계는
    상기 가중치 파라미터의 희소성 비율이 미리 설정된 가중치 희소성 임계치를 초과하는 경우 가중치 훈련 방식을 희소 가중치 훈련 방식으로 선택하고, 그렇지 않은 경우 상기 가중치 훈련 방식을 집단 및 희소 가중치 훈련 방식으로 선택하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 방법.
  7. 제6항에 있어서, 상기 희소 가중치 훈련방식은
    상기 가중치 파라미터에 포함된 전체 데이터들 중 상기 희소성 비율을 결정하는 희소 가중치 데이터를 제외한 부동 소수점 심층 신경망 연산을 수행하는 신경망 연산단계;
    활성화 함수에 의해, 상기 신경망 연산단계의 결과를 출력 신호로 변환하는 활성화 연산단계; 및
    미리 설정된 목표 희소성을 만족할 때까지, 상기 활성화 연산 결과에 대한 가중치 가지치기를 수행하는 가중치 가지치기 단계를 포함하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 방법.
  8. 제7항에 있어서, 상기 집단 및 희소 가중치 훈련방식은
    상기 희소 가중치 훈련 방식에 의한 가중치 훈련을 수행하기 전에,
    상기 가중치 파라미터를 구성하는 다수의 입/출력 채널들 각각에 대해, 상기 입/출력 채널들 각각에 포함된 다수의 가중치 데이터들을 집단화하는 집단화 단계를 더 포함하되,
    상기 집단화 단계는
    상기 가중치 파라미터에 대하여 미리 설정된 그룹의 크기에 의거하여 집단화되는 가중치 데이터들의 수를 결정하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 방법.
  9. 제7항 또는 제8항에 있어서, 상기 가중치 가지치기 단계는
    상기 가중치 파라미터에 포함된 전체 데이터들 각각에 대하여, 가지치기 대상 여부를 결정하기 위한 기준값을 결정하되, 상기 심층 강화학습에 대한 보상값을 고려하여 상기 기준값을 결정하는 기준값 결정 단계;
    상기 가중치 파라미터에 포함된 전체 데이터들 각각을 상기 기준값과 비교하여 상기 기준값 이하인 데이터를 희소 가중치 데이터로 변환하는 희소 데이터 변환단계; 및
    상기 희소 가중치 데이터를 포함하는 가중치 파라미터를 희소패턴으로 변환하는 희소패턴 생성단계를 포함하고,
    상기 희소 패턴의 희소성 비율이 미리 설정된 목표 희소성에 도달할 때까지, 상기 기준값 결정단계, 상기 희소 데이터 변환단계, 및 상기 희소패턴 생성단계를 반복수행하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 방법.
  10. 제9항에 있어서, 상기 기준값 결정 단계는
    현재 강화학습에서 추출된 현재 보상값이 기존의 최대 보상값 보다 더 큰 경우, 상기 기준값을 미리 설정된 증가값 만큼 증가시켜 새로운 기준값을 생성하는 것을 특징으로 하는 심층 강화학습을 위한 심층 신경망 학습 가속 방법.
KR1020210115900A 2021-08-31 2021-08-31 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법 KR102643431B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210115900A KR102643431B1 (ko) 2021-08-31 2021-08-31 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법
US17/898,553 US20230072432A1 (en) 2021-08-31 2022-08-30 Apparatus and method for accelerating deep neural network learning for deep reinforcement learning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210115900A KR102643431B1 (ko) 2021-08-31 2021-08-31 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20230032748A true KR20230032748A (ko) 2023-03-07
KR102643431B1 KR102643431B1 (ko) 2024-03-05

Family

ID=85386691

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210115900A KR102643431B1 (ko) 2021-08-31 2021-08-31 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20230072432A1 (ko)
KR (1) KR102643431B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117807894B (zh) * 2024-02-28 2024-06-04 南京信息工程大学 一种面向足球对战的数据驱动强化学习方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200034918A (ko) * 2018-09-24 2020-04-01 삼성전자주식회사 심층 신경망의 가중치에 대한 밸런싱된 프루닝을 제공하는 시스템 및 방법
KR20200122256A (ko) * 2019-04-17 2020-10-27 삼성전자주식회사 뉴럴 프로세서
KR20210012882A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 컨볼루션 뉴럴 네트워크의 성능 향상을 위한 방법 및 시스템
KR102256288B1 (ko) * 2021-03-19 2021-05-27 리벨리온 주식회사 인공 신경망의 가속 하드웨어를 위한 가지치기 기반의 훈련 방법 및 시스템
KR102256289B1 (ko) * 2021-03-19 2021-05-27 리벨리온 주식회사 인공 신경망에서 학습을 통한 로드 밸런싱 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200034918A (ko) * 2018-09-24 2020-04-01 삼성전자주식회사 심층 신경망의 가중치에 대한 밸런싱된 프루닝을 제공하는 시스템 및 방법
KR20200122256A (ko) * 2019-04-17 2020-10-27 삼성전자주식회사 뉴럴 프로세서
KR20210012882A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 컨볼루션 뉴럴 네트워크의 성능 향상을 위한 방법 및 시스템
KR102256288B1 (ko) * 2021-03-19 2021-05-27 리벨리온 주식회사 인공 신경망의 가속 하드웨어를 위한 가지치기 기반의 훈련 방법 및 시스템
KR102256289B1 (ko) * 2021-03-19 2021-05-27 리벨리온 주식회사 인공 신경망에서 학습을 통한 로드 밸런싱 방법 및 시스템

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
1. (참고문헌 1) S. Fujimoto, H. van Hoof, and D. Meger. Addressing function approximation error in actor-critic methods. In Proceedings of the 35th International Conference on Machine Learning, pages 1587-1596, 2018.
2. (참고문헌 2) S. Kang et al., "7.4 GANPU: A 135TFLOPS/W Multi-DNN Training Processor for GANs with Speculative Dual-Sparsity Exploitation," 2020 IEEE International Solid- State Circuits Conference - (ISSCC), San Francisco, CA, USA, 2020.
3. (참고문헌 3) C. Kim, S. Kang, D. Shin, S. Choi, Y. Kim and H. Yoo, "A 2.1TFLOPS/W Mobile Deep RL Accelerator with Transposable PE Array and Experience Compression," 2019 IEEE International Solid- State Circuits Conference - (ISSCC), San Francisco, CA, USA, 2019.
4. (참고문헌 4) M. Zhu and S. Gupta. To prune, or not to prune: exploring the efficacy of pruning for model compression. arXiv preprint arXiv:1710.01878, 2017.
5. (참고문헌 5) S. Liao and B. Yuan. Circconv: A structured convolution with low complexity. Proceedings of the AAAI Conference on Artificial Intelligence, 33(01):4287-4294, 2019.

Also Published As

Publication number Publication date
KR102643431B1 (ko) 2024-03-05
US20230072432A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
US20180204110A1 (en) Compressed neural network system using sparse parameters and design method thereof
KR102336295B1 (ko) 적응적 프루닝 및 가중치 공유를 사용하는 컨볼루션 신경망 시스템 및 그것의 동작 방법
CN113222138A (zh) 一种联合层剪枝和通道剪枝的卷积神经网络压缩方法
CN111738427B (zh) 一种神经网络的运算电路
CN111368988B (zh) 一种利用稀疏性的深度学习训练硬件加速器
Dai et al. SparseTrain: Exploiting dataflow sparsity for efficient convolutional neural networks training
CN108304926B (zh) 一种适用于神经网络的池化计算装置及方法
CN111105007B (zh) 用于目标检测的深度卷积神经网络的压缩加速方法
CN114358319B (zh) 基于机器学习框架的分类方法及相关装置
CN111381968A (zh) 一种高效运行深度学习任务的卷积运算优化方法及系统
KR102643431B1 (ko) 심층 강화학습을 위한 심층 신경망 학습 가속 장치 및 그 방법
CN113283587A (zh) 一种Winograd卷积运算加速方法及加速模块
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
Phan et al. Efficiency enhancement of evolutionary neural architecture search via training-free initialization
US20230289603A1 (en) Neural network training method and apparatus
KR20220101418A (ko) 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법
Zhang et al. Hardware-software codesign of weight reshaping and systolic array multiplexing for efficient CNNs
Ye et al. Hybrid network compression via meta-learning
CN117527495A (zh) 一种无线通信信号的调制方式识别方法及装置
CN114358295B (zh) 基于机器学习框架的二分类方法及相关装置
CN115130672B (zh) 一种软硬件协同优化卷积神经网络计算的方法及装置
CN115983343A (zh) 基于FPGA的YOLOv4卷积神经网络轻量化方法
Song et al. A high-speed CNN hardware accelerator with regular pruning
KR102657904B1 (ko) 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치
Chitty-Venkata et al. Array-aware neural architecture search

Legal Events

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