KR20200129458A - 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 - Google Patents

인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 Download PDF

Info

Publication number
KR20200129458A
KR20200129458A KR1020190053888A KR20190053888A KR20200129458A KR 20200129458 A KR20200129458 A KR 20200129458A KR 1020190053888 A KR1020190053888 A KR 1020190053888A KR 20190053888 A KR20190053888 A KR 20190053888A KR 20200129458 A KR20200129458 A KR 20200129458A
Authority
KR
South Korea
Prior art keywords
sensitivity
neural network
pruning rate
artificial neural
network model
Prior art date
Application number
KR1020190053888A
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 KR1020190053888A priority Critical patent/KR20200129458A/ko
Priority to DE102020101275.6A priority patent/DE102020101275A1/de
Priority to US16/786,627 priority patent/US11556795B2/en
Priority to CN202010380930.XA priority patent/CN111914991A/zh
Publication of KR20200129458A publication Critical patent/KR20200129458A/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/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
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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/045Combinations of networks

Landscapes

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

Abstract

본 개시의 기술적 사상의 일측면에 따른 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치에 있어서, 인공 신경망 모델을 수신하고, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 모델 분석기, 상기 인공 신경망 모델이 프루닝됨에 따라 변화하는 제1 민감도 데이터를 산출하고, 상기 제1 민감도 데이터에 기초하여 타겟 프루닝 레이트에 대응하는 타겟 민감도를 산출하며, 상기 복수의 레이어들 각각이 프루닝됨에 따라 변화하는 제2 민감도 데이터를 산출하고, 상기 제2 민감도 데이터에 기초하여 상기 타겟 민감도에 대응하는 상기 복수의 레이어들 각각의 최적 프루닝 레이트를 출력하는 트레이닝 로직, 상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 모델 갱신기를 포함할 수 있다.

Description

인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 {A computing device for training an artificial neural network model, a method for training an artificial neural network model, and a memory system for storing the same}
본 개시의 기술적 사상은 인공 신경망 모델의 민감도에 따라 프루닝 레이트(가지치기 비율, pruning rate)를 조절함으로써 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템에 관한 것이다.
인공 신경망(artificial neural network; ANN)은 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 인공 신경망에 기초하여 딥러닝(deep learning) 또는 기계 학습(machine learning) 등이 구현될 수 있다. 인공 신경망의 예시로서 심층 신경망(deep neural network) 또는 딥 러닝(deep learning)은 복수의 레이어들을 포함하는 멀티 레이어 구조를 가질 수 있다. 최근 인공 신경망을 이용하여 처리해야 할 연산이 비약적으로 증가함에 따라, 인공 신경망을 트레이닝하기 위한 데이터의 양이 증가하였고, 더 적은 데이터로 인공 신경망을 트레이닝하기 위한 필요성이 요구되었다.
본 개시의 기술적 사상이 해결하려는 과제는, 프루닝 레이트에 따라 변화하는 인공 신경망 복수의 레이어들 각각이 갖는 민감도를 고려하여, 인공 신경망 모델을 적은 양의 데이터로 높은 정확도의 트레이닝 방법을 포함하는 컴퓨팅 장치 및 메모리 시스템을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치에 있어서, 인공 신경망 모델을 수신하고, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 모델 분석기, 상기 인공 신경망 모델이 프루닝됨에 따라 변화하는 제1 민감도 데이터를 산출하고, 상기 제1 민감도 데이터에 기초하여 타겟 프루닝 레이트에 대응하는 타겟 민감도를 산출하며, 상기 복수의 레이어들 각각이 프루닝됨에 따라 변화하는 제2 민감도 데이터를 산출하고, 상기 제2 민감도 데이터에 기초하여 상기 타겟 민감도에 대응하는 상기 복수의 레이어들 각각의 최적 프루닝 레이트를 출력하는 트레이닝 로직, 상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 모델 갱신기를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치에 있어서, 인공 신경망 모델을 수신하고, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 모델 분석기, 타겟 프루닝 레이트를 수신하고, 상기 타겟 프루닝 레이트에 대응되는 상기 인공 신경망 모델의 타겟 민감도를 산출하며, 상기 타겟 민감도에 대응하는 상기 복수의 레이어들 각각의 최적 프루닝 레이트를 출력하는 트레이닝 로직, 상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 모델 갱신기를 포함할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 인공 신경망 모델을 트레이닝하는 방법에 있어서, 타켓 프루닝 레이트를 수신하는 단계, 상기 인공 신경망 모델이 프루닝됨에 따라 변화하는 제1 민감도 데이터를 산출하는 단계, 상기 제1 민감도 데이터에서, 상기 타겟 프루닝 레이트에 대응되는 타겟 민감도를 산출하는 단계, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 단계, 상기 복수의 레이어들 각각이 프루닝됨에 따라 변화하는 제2 민감도 데이터를 산출하는 단계, 상기 복수의 레이어들 각각에서, 상기 타겟 민감도에 대응하는 최적 프루닝 레이트를 상기 제2 민감도 데이터에 기초하여 산출하는 단계 및 상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 복수의 레이어들을 포함하는 인공 신경망 모델을 처리하는 메모리 시스템에 있어서, 호스트 프로세서, 상기 호스트 프로세서와 통신하는 복수의 로직 레이어들, 상기 복수의 로직 레이어들 각각은 메모리 스택과 전기적으로 연결되며, 상기 호스트 프로세서는, 상기 복수의 레이어들 각각의 원본 가중치를 수신하고, 메모리 어드레스들을 수신하며, 상기 어드레스들 중 적어도 일부에 대응하는 제1 메모리 스택이 포함된 제1 로직 레이어에 상기 원본 가중치를 출력하고, 상기 제1 로직 레이어에 출력된 원본 가중치에 대응되는 프루닝 레이트를 출력하며, 상기 로직 레이어는, 상기 원본 가중치 및 상기 프루닝 레이트 중 적어도 하나에 기초하여 민감도를 산출하고, 상기 원본 가중치, 상기 프루닝 레이트 및 상기 민감도 중 적어도 하나를 상기 제1 메모리 스택에 저장할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 복수의 레이어들을 갖는 인공 신경망 모델을 프루닝(pruning)하는 프로그램을 기록한 비일시적 컴퓨터 판독 가능 기록 매체에 있어서, 상기 프로그램은, 타켓 프루닝 레이트를 수신하는 단계, 상기 인공 신경망 모델에서, 프루닝 레이트(pruning rate)에 따라 변화하는 제1 민감도 데이터를 산출하는 단계, 상기 제1 민감도 데이터에서, 상기 타겟 프루닝 레이트에 대응되는 타겟 민감도를 산출하는 단계, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 단계, 상기 복수의 레이어들 각각에서, 프루닝 레이트에 따라 변화하는 제2 민감도 데이터를 산출하는 단계, 상기 복수의 레이어들 각각에서, 상기 타겟 민감도에 대응하는 최적 프루닝 레이트를 상기 제2 민감도 데이터에 기초하여 산출하는 단계 및 상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 단계를 포함할 수 있다.
본 개시의 예시적 실시예에 따르면, 가중치 값은 작지만 인공 신경망의 성능에 큰 영향력을 미치는 레이어가 프루닝되는 것을 방지하여 인공 신경망의 정확도를 개선할 수 있다.
본 개시의 예시적 실시예에 따르면, 인공 신경망 전체의 정확도 또는 민감도를 먼저 분석한 이후 포스트-트레이닝(post-training) 방법을 통해 프루닝을 수행할 수 있으므로, 종래의 리-트레이닝(re-training) 방법 보다 더 적은 데이터를 이용하여 인공 신경망을 빠르게 훈련시킬 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 컴퓨팅 장치를 설명하기 위한 도면이다.
도 2는 인공 신경망의 일 예에 관한 도면이다.
도 3은 본 개시의 예시적 실시예 및 비교예에 따른 프루닝 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 인공 신경망 모델 전체의 제1 민감도 데이터를 설명하기 위한 그래프이다.
도 6은 본 개시의 예시적 실시예에 따른 복수의 레이어들 각각의 민감도 커브를 포함하는 제2 민감도 데이터를 설명하기 위한 그래프이며, 도 7은 본 개시의 예시적 실시예에 따른 제2 민감도 데이터에 기초한 제3 민감도 데이터를 설명하기 위한 그래프이다.
도 8은 본 개시의 예시적 실시예에 따른 복수의 레이어들의 프루닝 레이트 별 민감도 값들을 나타낸 그래프이다.
도 9는 본 개시의 예시적 실시예 및 비교예에 따른 프루닝 레이트 대비 인공 신경망 모델의 정확도를 나타내는 그래프이다.
도 10은 본 개시의 예시적 실시예에 따라 인공 신경망 모델의 프루닝 동작을 설명하기 위한 흐름도이다.
도 11은 본 개시의 예시적 실시예에 따른 제1 민감도 데이터를 획득하는 방법을 설명하기 위한 흐름도이다.
도 12는 본 개시의 예시적 실시예에 따른 제2 민감도 데이터를 획득하는 방법을 설명하기 위한 흐름도이다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 14는 본 개시의 예시적 실시예에 따른 로직 레이어를 설명하기 위한 블록도이다.
도 15는 본 개시의 예시적 실시예에 따른 원본 가중치를 수신하여 프루닝 레이트를 산출하는 메모리 시스템을 나타낸 블록도이다.
도 16은 본 개시의 예시적 실시예에 따른 수정된 가중치를 수신하여 프루닝 레이트를 산출하는 메모리 시스템을 나타낸 블록도이다.
도 17은 본 개시의 예시적 실시예에 따른 그룹 ID 매니저를 포함하는 메모리 시스템을 나타낸 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 컴퓨팅 장치를 설명하기 위한 도면이다.
본 개시의 실시예에 따른 전자 시스템(10)은 인공 신경망 모델을 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 전자 시스템(10)이 포함되는 전자 장치의 구성들을 제어할 수 있다. 예를 들어, 전자 시스템(10)은 스마트 폰, 모바일 장치, 영상 표시 장치, 계측 장치, 스마트 TV, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 의료 장치, IoT(Internet of Things) 장치 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다. 한편, 이하에서 인공 신경망은 뉴럴 네트워크로 지칭될 수 있다.
일 예로, 도 1의 전자 시스템(10)은 애플리케이션 프로세서일 수 있다. 전자 시스템(10)이 인공 신경망 연산 기능을 수행하는 점에서, 전자 시스템(10)은 인공 신경망 모델을 포함하는 것으로 정의될 수 있다.
도 1을 참조하면, 전자 시스템(10)은 CPU(Central Processing Unit)(11), RAM(Random Access memory)(12), 뉴럴 네트워크 장치(13), 스토리지(14), 및 입출력 장치(15)을 포함할 수 있다. 뉴럴 네트워크 장치(13)는 트레이닝 로직(100)을 포함할 수 있다. 트레이닝 로직(100)은 후술되는 바와 같이 인공 신경망 모델을 트레이닝할 수 있다. 다만, 트레이닝 로직(100)은 뉴럴 네트워크 장치(13) 뿐만 아니라, CPU(11), RAM(12) 및 스토리지(14) 등에 포함될 수 있으며, DSP(Digital Signal Processor) 등과 같은 다양한 프로세서에도 포함될 수 있다. 설명의 편의상, 이하에서는, 트레이닝 로직(100)이 뉴럴 네트워크 장치(13)에 포함된 것으로 예시한다.
전자 시스템(10)은 센서 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있으며, 또한 다양한 종류의 연산 장치를 더 포함할 수 있다. 예를 들어, 전자 시스템(10)의 구성들(CPU(11), RAM(12), 뉴럴 네트워크 장치(13), 스토리지(14), 입출력 장치(15)) 중 일부 또는 전부는 하나의 반도체 칩에 탑재될 수 있다. 예컨대 전자 시스템(10)은 시스템 온 칩(SoC)으로서 구현될 수 있다. 전자 시스템(10)의 구성들은 버스(16)를 통해 서로 통신할 수 있다.
CPU(11)는 전자 시스템(10)의 전반적인 동작을 제어한다. CPU(11)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(11)는 스토리지(14)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예를 들어, CPU(11)는 스토리지(14)에 저장된 프로그램들을 실행함으로써, 뉴럴 네트워크 장치(13)의 기능을 제어할 수 있다.
RAM(12)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예를 들어, 스토리지(14)에 저장된 프로그램들 및/또는 데이터는 CPU(11)의 제어 또는 부팅 코드에 따라 RAM(12)에 일시적으로 저장될 수 있다. RAM(12)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
뉴럴 네트워크 장치(13)는 인공 신경망 모델에 기초하여 연산을 수행할 수 있으며, 인공 신경망 모델을 트레이닝할 수 있다. 일 실시예에 따르면, 트레이닝 로직(100)은 반복적인 리-트레이닝(re-training)이 수행된 인공 신경망 모델을 포스트-트레이닝(post-training)할 수 있다. 그러나 이에 한정되지는 않으며, 다른 실시예에 따르면, 트레이닝 로직(100)은 인공 신경망 모델을 리-트레이닝할 수 있다. 또 다른 실시예에 따르면, 트레이닝 로직(100)은 리-트레이닝과 포스트-트레이닝을 모두 수행할 수 있다.
본 개시의 실시예에 따르면, 리-트레이닝 등과 같은 프리-트레이닝(pre-training)이 수행된 인공 신경망 모델에 대하여, 트레이닝 로직(100)은 풀 데이터 세트(full data set)가 아닌 비교적 적은 양의 데이터 세트로 포스트-트레이닝(post-training)을 수행할 수 있다.
상기 인공 신경망 모델은 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등 다양한 종류의 인공 신경망 모델들을 포함할 수 있으나 이에 제한되지 않는다. 도 2를 참조하여 인공 신경망의 일 예를 설명하기로 한다.
도 2는 인공 신경망의 일 예에 관한 도면이다.
도 2를 참조하면, 인공 신경망(NN)은 복수의 레이어들(L1 ~ Ln)을 포함할 수 있다. 복수의 레이어들(L1 ~ Ln) 각각은 선형 레이어 또는 비선형 레이어일 수 있으며, 실시예에 따라, 적어도 하나의 선형 레이어 및 적어도 하나의 비선형 레이어가 결합되어 하나의 레이어로 지칭될 수도 있다. 예를 들어, 선형 레이어는 컨볼루션 레이어(convolution), 풀리 커넥티드(fully connected) 레이어를 포함할 수 있으며, 비선형 레이어는 풀링(pooling) 레이어, 액티베이션 레이어를 포함할 수 있다.
예시적으로, 제1 레이어(L1)는 컨볼루션 레이어이고, 제2 레이어(L2)는 풀링(pooling) 레이어이고, 제n 레이어(Ln)는 출력 레이어로서 풀리 커넥티드(fully connected) 레이어일 수 있다. 인공 신경망(NN)은 활성(activation) 레이어를 더 포함할 수 있으며, 다른 종류의 연산을 수행하는 레이어를 더 포함할 수 있다.
복수의 레이어들(L1 ~ Ln) 각각은 입력되는 이미지 프레임 또는 이전 레이어에서 생성된 피처 맵을 입력 피처 맵으로서 수신하고, 입력 피처 맵을 연산하여 출력 피처 맵을 생성할 수 있다. 이때, 피처 맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미한다. 피처 맵들(FM1, FM2, FMn)은 예컨대 2차원 매트릭스 또는 3차원 매트릭스 형태를 가질 수 있다. 피처 맵들(FM1 ~ FMn)은 너비(W)(또는 칼럼이라고 함), 높이(H)(또는 로우라고 함) 및 깊이(D)를 가지며, 이는 좌표상의 x축, y축 및 z축에 각각 대응할 수 있다. 이때, 깊이(D)는 채널 수로 지칭될 수 있다.
제1 레이어(L1)는 제1 피처 맵(FM1)을 웨이트 맵(WM)과 컨볼루션하여 제2 피처 맵(FM2)을 생성할 수 있다. 웨이트 맵(WM)은 제1 피처 맵(FM1)을 필터링할 수 있으며, 필터 또는 커널로 지칭될 수 있다. 웨이트 맵(WM)의 깊이, 즉 채널 개수는 제1 피처 맵(FM1)의 깊이, 즉 채널 개수와 동일하며, 웨이트 맵(WM)과 제1 피처 맵(FM1)의 동일한 채널끼리 컨볼루션될 수 있다. 웨이트 맵(WM)이 제1 피처 맵(FM1)을 슬라이딩 윈도우로하여 횡단하는 방식으로 시프트된다. 시프트되는 양은 "스트라이드(stride) 길이" 또는 "스트라이드"로 지칭될 수 있다. 각 시프트동안, 웨이트 맵(WM)에 포함되는 웨이트들 각각이 제1 피처 맵(FM1)과 중첩된 영역에서의 모든 피처값과 곱해지고 더해질 수 있다. 제1 피처 맵(FM1)과 웨이트 맵(WM)이 컨볼루션 됨에 따라, 제2 피처 맵(FM2)의 하나의 채널이 생성될 수 있다. 도 2에는 하나의 웨이트 맵(WM)이 표시되었으나, 실질적으로는 복수개의 웨이트 맵이 제1 피처 맵(FM1)과 컨볼루션 되어, 제2 피처 맵(FM2)의 복수개의 채널이 생성될 수 있다. 다시 말해, 제2 피처 맵(FM2)의 채널의 수는 웨이트 맵의 개수에 대응할 수 있다.
제2 레이어(L2)는 풀링을 통해 제2 피처 맵(FM2)의 공간적 크기(spatial size)를 변경함으로써, 제3 피처 맵(FM3)을 생성할 수 있다. 풀링은 샘플링 또는 다운-샘플링으로 지칭될 수 있다. 2 차원의 풀링 윈도우(PW)가 풀링 윈도우(PW)의 사이즈 단위로 제2 피처 맵(FM2) 상에서 쉬프트되고, 풀링 윈도우(PW)와 중첩되는 영역의 피처값들 중 최대값(또는 피처값들의 평균값)이 선택될 수 있다. 이에 따라, 제2 피처 맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처 맵(FM3)이 생성될 수 있다. 제3 피처 맵(FM3)의 채널과 제2 피처 맵(FM2)의 채널 개수는 동일하다.
실시예에 따라, 제2 레이어(L2)는 풀링 레이어에 한정되지 않는다. 즉, 제2 레이어(L2)는 풀링 레이어 또는 제1 레이어(L1)와 유사한 컨볼루션 레이어가 될 수 있다. 제2 레이어(L2)는 제2 피처 맵(FM2)을 웨이트 맵과 컨볼루션하여 제2 피처 맵(FM3)을 생성할 수 있다. 이 경우, 제2 레이어(L2)에서 컨볼루션 연산을 수행한 웨이트 맵은 제1 레이어(L1)에서 컨볼루션 연산을 수행한 웨이트 맵(WM)과 다를 수 있다.
제1 레이어(L1) 및 제2 레이어(L2)를 포함한 복수의 레이어들을 거쳐 제N 레이어에서 제N 피처 맵을 생성할 수 있다. 제N 피처 맵은 출력 데이터가 출력되는 뉴럴 네트워크(NN)의 백 엔드(back end)에 위치한 복원 레이어(reconstruction layer)에 입력될 수 있다. 복원 레이어는 제N 피처 맵과 웨이트 맵을 컨볼루션하여 출력 이미지를 생성할 수 있다. 복원 레이어는 컨벌루션 레이어를 포함할 수 있으며, 실시예에 따라 피처 맵으로부터 이미지를 복원할 수 있는 다른 종류의 레이어로 구현될 수도 있다.
도 1 및 도 2를 참조하면, 트레이닝 로직(100)은 입력 데이터에 대한 최적의 프루닝 레이트를 인공 신경망 모델이 가질 수 있도록, 인공 신경망 모델을 트레이닝할 수 있다. 예컨대, 영상 분석에 관한 인공 신경망 모델이 가질 수 있는 최적의 프루닝 레이트는 제1 값이 될 수 있으며, 음성 분석에 관한 인공 신경망 모델이 가질 수 있는 최적의 프루닝 레이트는 제2 값이 될 수 있다.
트레이닝 로직(100)은 인공 신경망 모델 전체에 관하여 제1 민감도 데이터를 산출할 수 있으며, 복수의 레이어들(L1 ~ Ln) 각각의 제2 민감도 데이터를 산출할 수 있다.
이하에서, 민감도는 특정 레이어가 프루닝되거나 인공 신경망 모델 전체가 프루닝됨에 따라, 인공 신경망의 연산에 따라 출력된 데이터에 영향을 주는 정도를 포함할 수 있다. 민감도 데이터는 예컨대, 프루닝 레이트(pruning rate)에 따라 변화하는 민감도의 값들을 포함할 수 있다. 프루닝 레이트는 예컨대, 복수의 레이어들(L1 ~ Ln) 각각에 포함된 뉴런 또는 시냅스에 해당하는 구성 요소를 제거하는 비율을 포함할 수 있다. 일 예로, 제1 민감도 데이터는 인공 신경망 모델 전체에서 제거된 뉴런 또는 시냅스의 증가에 따른, 인공 신경망 모델이 출력하는 결과의 정확도 하락의 정도를 의미할 수 있다. 다른 예로, 제2 민감도 데이터는 특정 레이어에서 제거된 뉴런 또는 시냅스의 증가에 따른, 인공 신경망 모델이 출력하는 결과의 정확도 하락의 정도를 의미할 수 있다.
트레이닝 로직(100)은 상기 제1 민감도 데이터에 기초하여 타겟 민감도를 산출할 수 있다. 이 경우, 트레이닝 로직(100)은 수신된 타겟 프루닝 레이트를 상기 제1 민감도 데이터에 적용하여 타겟 민감도를 산출할 수 있다. 예컨대, 타겟 민감도는 복수의 레이어들(L1 ~ Ln) 각각이 가져야 할 민감도의 타겟 값일 수 있으며, 타겟 민감도는 복수의 레이어들(L1 ~ Ln)의 개수와 동일한 수의 민감도 데이터를 가질 수 있다.
트레이닝 로직(100)은 상기 제2 민감도 데이터 및 상기 타겟 민감도에 기초하여 복수의 레이어들(L1 ~ Ln) 각각의 최적 프루닝 레이트를 산출할 수 있다. 예컨대, 뉴럴 네트워크 장치(13)는 제2 민감도 데이터의 역함수를 산출할 수 있다. 상기 역함수는, 민감도에 따라 변화하는 프루닝 레이트를 나타낼 수 있다. 트레이닝 로직(100)은 상기 역함수에 타겟 민감도를 입력하여, 복수의 레이어들(L1 ~ Ln) 각각이 갖는 최적 프루닝 레이트를 산출할 수 있다.
트레이닝 로직(100)은 산출된 최적 프루닝 레이트에 따라 인공 신경망 모델을 프루닝하여 트레이닝된 인공 신경망을 생성할 수 있다. 즉, 뉴럴 네트워크 장치(13)는 인공 신경망 모델을 업데이트 할 수 있다.
스토리지(14)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 실시예에 따라, 스토리지(14)는 트레이닝 로직(100)을 동작시키는 적어도 하나의 프로세서를 포함할 수 있다. 예컨대, 스토리지(14)는 프로세스 인 메모리(Process In Memory, PIM)로 지칭될 수 있다.
스토리지(14)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 스토리지(14)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 실시예에 있어서, 스토리지(14)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나를 포함할 수 있다.
입출력 장치(15)는 전자 시스템(10)이 연산한 연산 결과를 외부로 출력하거나, 데이터를 입력받기 위해 동작할 수 있다.
도 3은 본 개시의 예시적 실시예 및 비교예에 따른 프루닝 방법을 설명하기 위한 도면이다.
제1 인공 신경망 모델(NN1)은 프루닝 되기 전의 인공 신경망이며, 제2 인공 신경망 모델(NN2)은 프루닝 된 인공 신경망일 수 있다. 제1 및 제2 인공 신경망 모델(NN1, NN2)은 복수의 레이어(LA)들을 포함할 수 있으며, 각각의 레이어(LA)는 적어도 하나의 뉴런(NR)들을 포함할 수 있다. 제1 뉴런에서 출력된 연산 결과는 시냅스(SN)를 통해 제2 뉴런으로 전달될 수 있다.
비교예에 따르면, 각각의 뉴런(NR) 및 시냅스(SN)가 갖는 가중치를 기반으로 뉴런(NR) 및 시냅스(SN)를 프루닝할 수 있다. 가중치의 값이 낮은 뉴런(NR) 및 시냅스(SN)가 프루닝되어도 전체 네트워크 성능이 크게 하락되지 않을 것이라는 가정에 따른다. 그러나, 가중치의 값은 작지만 인공 신경망 전체의 정확도에는 큰 영향을 미칠 수 있으므로, 본 개시의 일 실시예에 따르면 복수의 레이어들의 중요도를 민감도 및 프루닝 레이트에 기반하여 계산하고, 정확도 하락을 최소화 할 수 있다. 또한, 본 개시의 일 실시예에 따르면, 인공 신경망 전체의 성능 하락을 방지하기 위하여, 인공 신경망 전체의 민감도 및 프루닝 레이트에 기반하여, 복수의 레이어들에 최적 프루닝 레이트를 할당할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.
도 4를 참조하면, 컴퓨팅 장치(20)는 트레이닝 로직(100), 모델 분석기(210) 및 모델 갱신기(220)를 포함할 수 있으며, 트레이닝 로직(100)은 민감도 분석기(110) 및 프루닝 제어기(120)를 더 포함할 수 있다. 또한, 민감도 분석기(110)는 레이어 민감도 분석기(111) 및 인공 신경망 민감도 분석기(112)를 더 포함할 수 있으며, 프루닝 제어기(120)는 타겟 민감도 산출기(121) 및 최적 프루닝 레이트 산출기(122)를 포함할 수 있다.
모델 분석기(210)는 제1 인공 신경망 모델(NN1)을 수신하고, 복수의 레이어들(Ls)로 분할하며, 복수의 레이어들(Ls)에 관한 정보를 출력할 수 있다. 또한, 모델 분석기(210)는 제1 인공 신경망 모델(NN1) 전체에 관한 정보를 출력할 수 있다. 예컨대, 모델 분석기(210)는 제1 인공 신경망 모델(NN1)의 데이터 구조를 대체(replace), 병합(merge) 및/또는 분할(split)을 수행하여, 제1 인공 신경망 모델(NN1)의 복수의 레이어들(Ls)에 관한 정보를 출력할 수 있다.
민감도 분석기(110)는 제1 인공 신경망 모델(NN1)에 기초하여 제1 민감도 데이터(SD1)를 출력할 수 있으며, 복수의 레이어들(Ls)에 기초하여 제2 민감도 데이터(SD2)를 출력할 수 있다. 민감도 분석기(110)는 테스트에 필요한 입력 데이터(DIN)를 수신하고, 제1 인공 신경망 모델(NN1) 및 복수의 레이어들(Ls)에 다양한 프루닝 레이트들을 적용하여, 프루닝 레이트에 따라 변화하는 민감도 값들을 포함하는 민감도 데이터들(SD1, SD2)을 출력할 수 있다.
본 개시의 일 실시예에 따르면, 연산량을 줄이기 위해 민감도 분석기(110)는 상기 민감도 값들을 보간하여 민감도 데이터들(SD1, SD2)을 출력할 수 있다. 예컨대, 민감도 분석기(110)는 0 부터 1 의 값을 갖는 프루닝 레이트들 중에서, 0.1 과 같은 소정의 단위로 프루닝 레이트들을 획득할 수 있다. 민감도 분석기(110)는 0, 0.1, ... 0.9, 1 과 같이 소정의 단위 구간을 갖는 프루닝 레이트들을 제1 인공 신경망 모델(NN1) 및 복수의 레이어들(Ls)에 적용할 수 있다. 제1 인공 신경망 모델(NN1) 및 복수의 레이어들(Ls)은 적용된 프루닝 레이트들에 대응되도록 프루닝될 수 있다. 제1 인공 신경망 모델(NN1) 및 복수의 레이어들(Ls)은, 프루닝 레이트가 증가할수록 제거된 뉴런 또는 시냅스에 의해 데이터 정확도가 하락할 수 있다. 이는, 제거된 뉴런 또는 시냅스에 의해 출력 데이터가 민감하게 반응할 수 있다는 의미일 수 있으며, 프루닝 레이트가 높아질수록 민감도가 증가할 수 있다. 민감도 분석기(110)는 프루닝 레이트가 증가할수록, 증가된 민감도의 값들을 획득할 수 있으며, 상기 민감도 값들을 나타내는 제1 민감도 데이터(SD1) 및 제2 민감도 데이터(SD2)를 출력할 수 있다.
프루닝 제어기(120)는 제1 민감도 데이터(SD1) 및 제2 민감도 데이터(SD2)에 기초하여 최적 프루닝 레이트(OP)를 출력할 수 있다. 프루닝 제어기(120)는 제1 민감도 데이터(SD1) 및 수신된 타겟 프루닝 레이트(TP)에 기초하여, 타겟 민감도(TS)를 획득할 수 있다. 프루닝 제어기(120)는 타겟 민감도(TS)를 제2 민감도 데이터(SD2)에 포함된 복수의 레이어들(Ls) 각각의 민감도에 적용시킬 수 있다. 프루닝 제어기(120)는 타겟 민감도(TS)에 대응되며, 최적 프루닝 레이트(OP)를 복수의 레이어들(Ls) 각각이 가질 수 있는, 최적 프루닝 레이트(OP)를 출력할 수 있다.
본 개시의 예시적 실시예에 따르면, 타겟 민감도 산출기(121)는 제1 민감도 데이터(SD1)에서 타겟 프루닝 레이트(TP)에 대응되는 타겟 민감도(TS)를 산출할 수 있다. 타겟 프루닝 레이트(TP)는 예컨대, 인공 신경망 모델(NN1) 전체가 프루닝될 정도를 나타낼 수 있다. 일 예로, 전자 시스템(10)의 요구 사항에 따라 타겟 프루닝 레이트(TP)가 달라질 수 있다. 최적 프루닝 레이트 산출기(122)는 인공 신경망 모델(NN1)이 가져야할 타겟 민감도(TS)에 따라, 복수의 레이어들(Ls) 각각의 최적 프루닝 레이트(OP)를 산출할 수 있다. 최적 프루닝 레이트(OP)는 예컨대, 복수의 레이어들(Ls) 각각이 서로 다른 값을 가질 수 있으며, 적어도 일부만 다른 값을 가질 수도 있다. 즉, 최적 프루닝 레이트(OP)는 복수의 프루닝 레이트 값들을 포함할 수 있다. 한편, 최적 프루닝 레이트 산출기(122)는 복수의 레이어들(Ls) 각각에 최적 프루닝 레이트(OP)를 할당시키는 할당 정보를 출력할 수도 있다.
본 개시의 예시적 실시예에 따르면, 모델 갱신기(220)는 인공 신경망 모델(NN1)에 최적 프루닝 레이트(OP)를 적용하여 갱신된 인공 신경망 모델(NN2)을 출력할 수 있다. 예컨대, 모델 갱신기(220)는, 최적 프루닝 레이트(OP)에 기초하여, 복수의 레이어들(Ls)의 뉴런들 및 시냅스들을 프루닝할 수 있다. 이 경우, 복수의 레이어들(Ls) 각각을 서로 다른 프루닝 레이트에 따라, 서로 다른 수의 뉴런들 및 시냅스들을 프루닝할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 인공 신경망 모델 전체의 제1 민감도 데이터를 설명하기 위한 그래프이다.
도 5를 참조하면, 가로축은 프루닝 레이트를 나타내며, 프루닝 레이트가 0 인 경우 프루닝이 수행되지 않는 것을 의미하며, 프루닝 레이트가 1 인 경우 모든 뉴런 및 시냅스가 제거된 것을 의미한다. 세로축은 민감도를 나타내며, 프루닝 레이트에 따라 인공 신경망 모델의 출력 데이터가 부정확하게 반응하는 정도를 의미한다.
도 5를 참조하면, 제1 민감도 데이터(SD1)는 프루닝 레이트의 변화에 따른 트레이닝 로직(100)에 입력된 인공 신경망 모델(NN1)의 민감도 변화를 포함할 수 있다. 제1 민감도 커브(SD1_1)는 인공 신경망 모델(NN1)의 실제 민감도 변화를 나타내며, 제2 민감도 커브(SD1_2)는 인공 신경망 모델(NN1)의 민감도 변화의 보간을 나타내고, 제3 민감도 커브(SD1_3)는 제2 민감도 커브(SD1_2)를 y = x 대칭 이동 시킨 데이터를 나타낸다.
도 4 및 도 5를 참조하면, 인공 신경망 민감도 분석기(111)는 입력 데이터(DIN)를 인공 신경망 모델(NN1)에 따른 연산을 수행하여 출력 데이터를 획득하고, 프루닝 레이트를 변화시킴에 따라 상기 출력 데이터의 변화 또는 정확도를 분석하여 민감도를 산출할 수 있다. 이 경우, 인공 신경망 민감도 분석기(111)는 0 부터 1 까지의 프루닝 레이트를 단위 구간으로 나누어, 소정의 개수 만큼의 프루닝 레이트를 인공 신경망 모델(NN1)에 적용하고, 소정의 개수 만큼의 민감도 값을 획득할 수 있다. 인공 신경망 민감도 분석기(111)는 획득된 민감도 값들을 보간하여 제2 민감도 커브(SD1_2)를 획득할 수 있으며, y = x 대칭 이동된 제3 민감도 커브(SD1_3)를 획득할 수 있다. 이 후, 타겟 민감도 산출기(121)는 수신한 타겟 민감도(TP)를 제3 민감도 커브(SD1_3)에 대입하여, 타겟 민감도(TS)를 획득할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 복수의 레이어들 각각의 민감도 커브를 포함하는 제2 민감도 데이터를 설명하기 위한 그래프이며, 도 7은 본 개시의 예시적 실시예에 따른 제2 민감도 데이터에 기초한 제3 민감도 데이터를 설명하기 위한 그래프이다.
도 6을 참조하면, 인공 신경망 모델(NN1)에 포함된 복수의 레이어들의 민감도 값들은 프루닝 레이트의 변화에 따라 변화할 수 있다. 예컨대, 프루닝 레이트가 약 0.2 내지 0.8 의 구간에서, 제1 레이어(LA1)는 민감도가 급격하게 상승하며, 제2 레이어(LA2)는 민감도가 완만하게 상승할 수 있다. 인공 신경망 모델(NN1)을 제1 프루닝 값(P1)으로 프루닝하는 경우, 제1 레이어(LA1)는 비교적 높은 제1 민감도 값(S1)을 갖지만, 제2 레이어(LA2)는 비교적 낮은 제2 민감도 값(S2)을 가질 수 있다.
본 개시의 예시적인 실시예에 따르면, 제1 레이어(LA1)에 설정된 프루닝 레이트 값(P1)과 민감도 값(S1)은 보존하며, 제2 레이어(LA2)에 설정된 프루닝 레이트 값(P1)을 증가시키는 것이, 프루닝 레이트 증가 대비 정확도 하락분(또는 민감도 상승분)을 완화할 수 있다. 예컨대, 제2 레이어(LA2)의 프루닝 레이트 값은, 프루닝 레이트 값(P3)으로 증가될 수 있다.
도 6 및 도 7을 참조하면, 최적 프루닝 레이트 산출기(122)는 제2 민감도 데이터(SD2)를 보간하고, 역함수 연산을 수행한 프루닝 레이트 데이터(PD)를 산출할 수 있다. 이 경우, 최적 프루닝 레이트 산출기(122)는 프루닝 레이트의 소정의 구간 마다 민감도 값들을 산출하고, 산출된 민감도 값들을 보간할 수 있다.
최적 프루닝 레이트 산출기(122)는 타겟 민감도(TS)를 수신하고, 타겟 민감도(TS)를 프루닝 레이트 데이터(PD)에 적용하여, 복수의 레이어들(LA1, LA2) 각각의 최적 프루닝 레이트(OPA, OPB)를 산출할 수 있다. 예컨대, 제1 레이어(LA1)는 소정의 프루닝 레이트 구간에서 민감도가 크기 때문에 제1 최적 프루닝 레이트(OPA)가 할당된다. 제2 레이어(LA2)는 소정의 프루닝 레이트 구간에서 민감도가 작기 때문에 제1 최적 프루닝 레이트(OPA) 보다 높은 제2 최적 프루닝 레이트(OPB)가 할당된다.
도 8은 본 개시의 예시적 실시예에 따른 복수의 레이어들의 프루닝 레이트 별 민감도 값들을 나타낸 그래프이다.
도 7에서 전술한 바와 같이, 최적 프루닝 레이트 산출기(122)는 최적 프루닝 레이트(OPA, OPB)를 산출할 수 있다. 최적 프루닝 레이트(OPA, OPB)에 기초하여 모델 갱신기(220)는 인공 신경망 모델(NN1)의 복수의 레이어들을 프루닝할 수 있고, 갱신된 인공 신경망 모델(NN2)을 출력할 수 있다. 갱신된 인공 신경망 모델(NN2)은 제1 레이어(LA1) 및 제2 레이어(LA2)를 포함할 수 있으며, 제1 레이어(LA1)는 제1 최적 프루닝 레이트(OPA)에 따라 프루닝되어 제1 민감도(SA)를 가질 수 있다. 제2 레이어(LA2)는 제2 최적 프루닝 레이트(OPB)에 따라 프루닝되어 제2 민감도(SB)를 가질 수 있다. 제1 민감도(SA) 및 제2 민감도(SB)는 전술한 타겟 민감도(TS)와 유사할 수 있다. 도 6에서 전술한 바와 같이, 민감도가 상대적으로 낮은 제2 레이어(LA2)의 프루닝 레이트 값이 제1 레이어(LA1)의 프루닝 레이트 값 보다 높게 설정됨으로써, 민감도가 상대적으로 낮은 제2 레이어(LA2)가 더 많이 프루닝 될 수 있다. 이에 따라, 컴퓨팅 장치(20)는 인공 신경망 모델(NN1)을 효율적으로 프루닝할 수 있다.
도 9는 본 개시의 예시적 실시예 및 비교예에 따른 프루닝 레이트 대비 인공 신경망 모델의 정확도를 나타내는 그래프이다. 전술한 도면의 참조 부호와 함께 설명된다.
도 9를 참조하면, 가로축은 인공 신경망 모델을 프루닝하기 위한 프루닝 레이트를 나타내며, 세로축은 인공 신경망 모델이 입력 데이터에 기반하여 출력한 데이터의 정확도를 나타낸다.
도 9를 참조하면, 전술한 실시예들에 따라 최적 프루닝 레이트(OP)로 프루닝된 인공 신경망 모델(NN1)은 프루닝 레이트가 증가하더라도 정확도(AC1)의 감소분이 작을 수 있다. 예컨대, 프루닝 레이트의 소정의 구간(약 0.5 내지 약 1)에서 인공 신경망 모델(NN1)의 민감도에 영향을 크게 미치는 레이어(예컨대, 도 8의 LA1)는 낮은 프루닝 레이트로 프루닝(예컨대, 도 8의 OPA)하기 때문이다. 또한, 인공 신경망 모델(NN1)의 민감도에 영향을 작게 미치는 레이어(예컨대, 도 8의 LA2)는 높은 프루닝 레이트로 프루닝(예컨대, 도 8의 OPB)하기 때문이다.
반면, 비교예에 따른 전자 장치는 단지 각각의 레이어에 포함된 가중치 값이 낮은 순서대로 프루닝할 수 있다. 단순히 가중치 값이 낮은 레이어, 시냅스 또는 뉴런을 프루닝하는 경우, 전체 인공 신경망 모델의 데이터 출력 정확도는 고려되지 않을 수 있다. 따라서, 비교예에 따른 프루닝 레이트 대비 정확도(AC2)는 인공 신경망 모델 전체의 프루닝 레이트 대비 민감도 및 레이어들 각각의 프루닝 레이트 대비 민감도를 고려한 본 개시의 실시예 보다 낮을 수 있다.
도 10은 본 개시의 예시적 실시예에 따라 인공 신경망 모델의 프루닝 동작을 설명하기 위한 흐름도이다.
본 개시의 예시적 실시예에 따르면, 컴퓨팅 장치(20)는 타겟 프루닝 레이트(TP)를 수신할 수 있다(S110). 타겟 프루닝 레이트(TP)는 사용자에 의해 설정된 값일 수 있으며, 인공 신경망 모델 전체가 프루닝될 정도를 나타낼 수 있다.
컴퓨팅 장치(20)는 인공 신경망 모델(NN1)을 수신할 수 있다(S120). 인공 신경망 모델(NN1)은 프루닝의 대상이 되는 모델일 수 있으며, 복수의 레이어들을 포함할 수 있다.
컴퓨팅 장치(20)는 인공 신경망 모델(NN1) 전체에 관한 제1 민감도 및 인공 신경망 모델(NN1)에 포함된 복수의 레이어들 각각에 관한 제2 민감도를 산출할 수 있다(S130). 여기서, 제1 민감도 및 제2 민감도는 입력 데이터에 따라 인공 신경망 모델(NN1)이 출력하는 결과가 부정확하게 반응하는 정도를 포함할 수 있다. 예시적으로, 제1 민감도는 복수의 프루닝 레이트 값들로 프루닝된 인공 신경망 모델(NN1)의 복수의 민감도 값들을 포함할 수 있다. 예시적으로, 제2 민감도는 각각 상이한 비율로 프루닝된 복수의 레이어들에 따른, 인공 신경망 모델(NN1)의 출력 데이터에 관한 민감도 값들을 포함할 수 있다.
컴퓨팅 장치(20)는 인공 신경망 모델(NN1) 전체에 프루닝 동작을 수행하여 획득한 제1 민감도와 복수의 레이어들 각각에 프루닝 동작을 수행하여 획득한 제2 민감도 및 타겟 프루닝 레이트(TP)에 기초하여 최적 프루닝 레이트(OP)를 결정할 수 있다(S140). 예컨대, 컴퓨팅 장치(20)는 프루닝 레이트에 따른 인공 신경망 모델(NN1) 전체에 관한 제1 민감도와, 프루닝 레이트에 따른 복수의 레이어들 각각에 관한 제2 민감도를 모두 고려하여 최적 프루닝 레이트(OP)를 산출할 수 있다.
컴퓨팅 장치(20)는 뉴럴 네트워크를 프루닝할 수 있다(S150). 예시적으로, 컴퓨팅 장치(20)는 복수의 레이어들 각각을 서로 다른 최적 프루닝 레이트(OP)에 따라 프루닝하여, 인공 신경망 모델을 프루닝 할 수 있다. 프루닝되어 갱신된 인공 신경망 모델(NN2)은 프루닝되기 전의 인공 신경망 모델(NN1)에 비해, 입력 데이터에 더 최적화된 모델일 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 제1 민감도 데이터를 획득하는 방법을 설명하기 위한 흐름도이다. 전술한 도면의 참조 부호와 함께 설명된다.
본 개시의 예시적 실시예에 따르면, 컴퓨팅 장치(20)는 인공 신경망 모델(NN1)을 수신할 수 있다(S210).
컴퓨팅 장치(20)는 인공 신경망 모델(NN1)을 복수의 프루닝 레이트 값들로 프루닝할 수 있다(S220). 예컨대, 민감도 분석기(110)는 프루닝 레이트를 소정의 단위 구간들로 나눌 수 있으며, 각각의 단위 구간들마다 출력 데이터의 변화량을 분석하여 민감도 값들을 획득할 수 있으며, 민감도 값들을 보간할 수 있다.
컴퓨팅 장치(20)는 인공 신경망 모델(NN1)의 프루닝 레이트에 따른 제1 민감도 데이터(SD1)를 출력할 수 있다(S230). 예컨대, 민감도 분석기(110)는 수신한 입력 데이터(DIN)를 인공 신경망 모델(NN1)에 적용할 수 있다. 민감도 분석기(110)는 프루닝 레이트를 0 부터 1 까지 증가시키면서, 출력 데이터의 변화량을 분석할 수 있다. 변화량이 클수록, 정확도가 낮으며 민감도는 높을 수 있다. 민감도 분석기(110)는 출력 데이터의 변화량에 기초하여 민감도를 수치화할 수 있다. 예컨대, 프루닝 레이트가 0.5 인 경우, 인공 신경망 모델(NN1)에 의해 출력된 데이터는 프루닝 레이트가 0 인 경우의 출력 데이터와 소정의 값 만큼 차이가 발생될 수 있다. 민감도 분석기(110)는 발생된 차이 값을 수치화하여 0 부터 1 까지의 민감도 값들을 포함하는 제1 민감도 데이터(SD1)를 출력할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 제2 민감도 데이터를 획득하는 방법을 설명하기 위한 흐름도이다. 전술한 도면의 참조 부호와 함께 설명된다.
본 개시의 예시적 실시예에 따르면, 컴퓨팅 장치(20)는 인공 신경망 모델(NN1)을 수신할 수 있다(S310).
컴퓨팅 장치(20)는 인공 신경망 모델(NN1)을 복수의 레이어들로 분할할 수 있다(S320). 예컨대, 모델 분석기(210)는 공지된 다양한 방법을 이용하여 인공 신경망 모델(NN1)에 포함된 복수의 레이어들을 분석할 수 있다. 일예로, 모델 분석기(210)는 분석된 복수의 레이어들 각각을 트레이닝 로직(100)으로 전송할 수 있으며, 인공 신경망 모델(NN1)을 분할하지 않고 복수의 레이어들에 관한 정보만을 트레이닝 로직(100)으로 전송할 수도 있다.
컴퓨팅 장치(20)는 복수의 프루닝 레이트 값들을 제i 레이어에 적용하여 민감도를 획득할 수 있다(S330). 일 예로, 단계 S330은 인공 신경망 모델(NN1)에 포함된 N 개의 모든 레이어들에 대해 반복적으로 수행될 수 있으며, 다른 예로, 적어도 일부의 레이어에 대해 수행될 수도 있다. 예컨대, 민감도 분석기(110)는 프루닝 레이트를 소정의 단위 구간들로 나눌 수 있다. 민감도 분석기(110)는 단위 구간들로 나뉘어진 프루닝 레이트들을 각각의 레이어에 적용할 수 있다. 이 후, 민감도 분석기(110)는 수신한 입력 데이터(DIN)를 인공 신경망 모델(NN1)에 적용할 수 있다. 민감도 분석기(110)는 프루닝 레이트를 0 부터 1 까지 증가시키면서, 각각의 레이어들에 할당된 프루닝 레이트에 따른 출력 데이터의 변화량을 분석할 수 있다. 변화량이 클수록, 정확도가 낮으며 민감도는 높을 수 있다. 민감도 분석기(110)는 출력 데이터의 변화량에 기초하여 민감도 값들을 획득할 수 있다.
컴퓨팅 장치(20)는 획득된 민감도 값들에 기초하여, 복수의 레이어들 각각의, 프루닝 레이트에 따른 제2 민감도 데이터(SD2)를 출력할 수 있다(S340). 예컨대, 제1 레이어(LA1)가 복수의 프루닝 레이트들에 의해 프루닝된 경우, 제1 레이어(LA1)가 프루닝된 인공 신경망 모델이 데이터를 출력할 수 있으며, 출력된 데이터에 따른 민감도 값들을 포함할 수 있다. 제2 레이어(LA2)에서도 마찬가지이다.
도 13은 본 개시의 예시적 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다. 전술한 도면들의 참조 부호와 함께 설명된다.
도 13을 참고하면, 전자 시스템(30)은 CPU(11), 뉴럴 네트워크 장치(13), 메모리 시스템(17) 및 전자 시스템(30) 내부의 통신을 수행하는 버스(16)를 포함할 수 있다.
본 개시의 예시적 실시예에 따르면, 복수의 레이어들 각각의 프루닝 레이트(PR)를 최적 프루닝 레이트(OP)로 변경하는 경우, 복수의 레이어들에 포함된 가중치(W)의 값이 불균일해질 수 있다. 따라서, 전자 시스템(30)은 가중치(W)를 갱신할 수 있다. 예컨대, 인공 신경망 모델(NN1) 전체의 가중치 개수를 1 로 하여, 표준화(normalization)를 수행할 수 있다. 뉴럴 네트워크 장치(13)가 프루닝 레이트(PR)의 변화에 따라 가중치(W)를 지속적으로 수정하는 경우, 메모리 시스템(17)을 통해 가중치(W)를 반복적으로 독출 및 기입하여 처리 속도가 감소할 수 있다.
뉴럴 네트워크 장치(13)의 처리들 중 적어도 일부를 메모리 시스템(17)이 수행할 수 있다. 일 예로, 뉴럴 네트워크 장치(13)가 가중치(PR)를 출력하면, 메모리 시스템(17)은 수신한 가중치(PR)에 기반하여 가중치(W)를 갱신하고, 갱신된 가중치를 뉴럴 네트워크 장치(13)로 출력할 수 있다. 다른 예로, 뉴럴 네트워크 장치(13)가 갱신된 가중치(예컨대, 도 16의 W’)를 출력하면, 메모리 시스템(17)은 갱신된 가중치에 대응하도록 프루닝 레이트(PR)를 갱신할 수 있다. 다르게 말하면, 메모리 시스템(17)은 뉴럴 네트워크 장치(13)로부터 수신한 값에 기반하여, 가중치, 프루닝 레이트 및 민감도 중 적어도 하나를 갱신할 수 있다.
메모리 시스템(17)은 호스트 프로세서(171), 로직 레이어(172) 및 메모리 스택(173)을 포함할 수 있다. 로직 레이어(172)는 메모리 스택(173)과 전기적으로 연결될 수 있다.
호스트 프로세서(171)는 복수의 레이어들에 포함된 가중치(W)를 버스(16)를 통해 뉴럴 네트워크 장치(13)로부터 수신할 수 있다. 또한, 호스트 프로세서(171)는 인공 신경망 연산 또는 인공 신경망 트레이닝에 필요한 값들을 저장하기 위한 어드레스(ADDR)를 CPU(11)로부터 수신할 수 있다. 예컨대, 어드레스(ADDR)에는 특정 가중치에 대응되는 메모리 스택(173)의 주소에 관한 정보를 포함할 수 있다.
일 실시예에 따르면, 호스트 프로세서(171)는 수신된 가중치(W)를 기반으로 프루닝 레이트 및 민감도를 산출할 수 있다. 호스트 프로세서(171)는 산출된 프루닝 레이트 및 민감도를, 어드레스(ADDR)에 대응되는 메모리 스택(173)에 저장할 수 있다.
다른 실시예에 따르면, 호스트 프로세서(171)는 복수의 레이어들에 포함된 가중치(W) 및 어드레스(ADDR)를 수신할 수 있다. 호스트 프로세서(171)는 각각의 어드레스(ADDR)에 할당된 가중치(W)를, 어드레스(ADDR)에 대응되는 메모리 스택(173)을 포함한 로직 레이어(172)로 출력할 수 있다. 로직 레이어(172)는 수신된 가중치를 기반으로 프루닝 레이트 및 민감도를 산출할 수 있다. 로직 레이어(172)는 산출된 프루닝 레이트 및 민감도를, 어드레스(ADDR)에 대응되는 메모리 스택(173)에 저장할 수 있다.
한편, CPU(11)로부터 독출 요청이 수신되는 경우, 메모리 시스템(17)은 독출 요청에 대응되는 메모리 스택(173)에 저장된 프루닝 레이트, 민감도 및 가중치에 관한 정보를 출력할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 로직 레이어를 설명하기 위한 블록도이다. 전술한 도면들의 참조 부호와 함께 설명된다.
도 14를 참조하면, 로직 레이어(172)는 프루닝 레이트 산출기(174), 민감도 산출기(175) 및 보간 연산기(176)를 포함할 수 있다. 로직 레이어(172)는 전술한 트레이닝 로직(100)과 유사한 동작들을 수행할 수 있다. 예시적으로, 프루닝 레이트 산출기(174)는 도 4에서 전술한 프루닝 제어기(120)와 유사한 동작을 수행할 수 있다. 예컨대, 수신한 민감도 데이터(SD1, SD2)에 기반하여 최적 프루닝 레이트(OP)를 산출할 수 있다. 민감도 산출기(175)는 인공 신경망 모델(NN1) 및 복수의 레이어들(Ls)에 기초하여 민감도 데이터(SD1, SD2)를 산출할 수 있다. 또한, 민감도 산출기(175)는 타겟 프루닝 레이트(TP)에 기초하여 타겟 민감도(TS)를 산출할 수도 있다. 보간 연산기(176)는 제1 민감도 데이터(SD1) 및 제2 민감도 데이터(SD2)를 생성하기 위해, 복수의 민감도 값들을 보간할 수 있다. 또한, 보간 연산기(176)는 프루닝 데이터(PD)를 생성하기 위해, 복수의 프루닝 레이트들을 보간할 수 있다.
한편 실시예에 따라, 호스트 프로세서(171)는 프루닝 레이트 산출기(174), 민감도 산출기(175) 및 보간 연산기(176)를 포함할 수 있다. 즉, 전술한 프루닝 레이트 산출, 민감도 산출 및 보간 연산을 호스트 프로세서(171)가 유사하게 수행할 수도 있다.
도 15는 본 개시의 예시적 실시예에 따른 원본 가중치를 수신하여 프루닝 레이트를 산출하는 메모리 시스템을 나타낸 블록도이다.
본 개시의 예시적 실시예에 따르면, 뉴럴 네트워크 장치(13)는 가중치(W)를 출력할 수 있다. 가중치(W)는 예컨대, 행렬로 구현될 수 있으며, W11, W12, W21, W22 의 행렬 값을 포함할 수 있고, 행렬 값은 가중치 값에 대응될 수 있다. CPU(11)는 어드레스(ADDR)를 출력할 수 있다. 어드레스(ADDR)는 예컨대, 가중치 값 W11에 대응되는 제1 어드레스 및 가중치 값 W12에 대응되는 제2 어드레스를 포함할 수 있다.
본 개시의 예시적 실시예에 따르면, 호스트 프로세서(171)는 메모리 스택(173) 각각을 복수의 그룹들에 할당할 수 있다. 예컨대, 제1 메모리 스택은 제1 그룹에 할당되며, 제2 메모리 스택은 제2 그룹에 할당될 수 있다. 또한, 호스트 프로세서(171)는 적어도 하나의 어드레스(ADDR)의 값을 하나의 그룹에 할당할 수 있다. 예컨대, 상기 제1 어드레스는 상기 제1 그룹에 할당되며, 상기 제2 어드레스는 상기 제2 그룹에 할당될 수 있다.
본 개시의 예시적 실시예에 따르면, 호스트 프로세서(171)는 수신된 가중치(W)를 기초로 프루닝 레이트를 산출할 수 있다. 예컨대, 제1 가중치 값(W11)에 기초하여 제1 프루닝 레이트(PR1)를 산출할 수 있다. 호스트 프로세서(171)는 가중치 값과 가중치 값에 대응되는 프루닝 레이트 값을 메모리 스택(173)에 저장할 수 있다. 예컨대, 제1 그룹에 속하는 제1 가중치 값(W11)에 기초하여 제1 프루닝 레이트(PR1)를 산출하고, 제1 가중치 값(W11) 및 제1 프루닝 레이트(PR1)를 제1 그룹에 속하는 메모리 스택(173)에 저장할 수 있다.
도 16은 본 개시의 예시적 실시예에 따른 수정된 가중치를 수신하여 프루닝 레이트를 산출하는 메모리 시스템을 나타낸 블록도이다. 전술한 도면들의 참조 부호와 함께 설명된다.
도 16을 참조하면, 뉴럴 네트워크 장치(13)는 수정된 가중치(W’)를 출력할 수 있다. 예컨대, 뉴럴 네트워크 장치(13)는 인공 신경망 모델에 대한 학습을 수행하여 원본 가중치(W)를 수정하고, 수정된 가중치(W’)를 출력할 수 있다.
호스트 프로세서(171)는 수정된 가중치(W’)를 기초로 프루닝 레이트를 산출할 수 있다. 예컨대, 호스트 프로세서(171)는 원본 가중치(W)를 기초로 출력한 프루닝 레이트(PR1, PR2)와 다른 프루닝 레이트(PR1’, PR2’)을 출력할 수 있다. 호스트 프로세서(171)는 수정된 가중치 값과 수정된 가중치 값에 대응되는 프루닝 레이트 값을 메모리 스택(173)에 저장할 수 있다. 예컨대, 제1 그룹에 속하는 제1 가중치 값(W11’)에 기초하여 제1 프루닝 레이트(PR1’)를 산출하고, 제1 가중치 값(W11’) 및 제1 프루닝 레이트(PR1’)를 제1 그룹에 속하는 메모리 스택(173)에 저장할 수 있다.
도 17은 본 개시의 예시적 실시예에 따른 그룹 ID 매니저를 포함하는 메모리 시스템을 나타낸 블록도이다. 전술한 도면들의 참조 부호와 함께 설명된다.
도 17을 참조하면, 로직 레이어(172)는 그룹 ID 매니저(177)를 더 포함할 수 있으며, 메모리 스택(173) 각각은 그룹 ID가 할당될 수 있다.
본 개시의 예시적 실시예에 따르면, 그룹 ID 매니저(177)는 CPU(11)로부터 수신한 어드레스(ADDR)를 분석하고, 그룹 ID 매니저(177)에 대응되는 메모리 스택(173)에 프루닝 레이트, 민감도 및 가중치를 저장할 수 있다. 예컨대, 그룹 ID 매니저(177)는 어드레스(ADDR)를 분석하여, 뉴럴 네트워크 장치(13)로부터 수신한 가중치(W)에 대응되는 어드레스 값들을 획득할 수 있다. 그룹 ID 매니저(177)는, 호스트 프로세서(171)로부터 특정 그룹 ID에 대응되는 어드레스 값을 식별할 수 있다. 예컨대, 그룹 ID는 복수의 어드레스 값들을 포함할 수 있다. 그룹 ID 매니저(177)에 대응되는 메모리 스택(173)의 그룹 ID와 일치하는 어드레스 값들을 그룹 ID 매니저(177)가 식별하고, 특정 가중치 값들을 메모리 스택(173)에 저장할 수 있다. 한편, 그룹 ID 매니저(177)는 상기 특정 가중치 값에 대응되는 프루닝 레이트 및 민감도를 메모리 스택(173)에 저장할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 전자 시스템
100: 트레이닝 로직

Claims (20)

  1. 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치에 있어서,
    인공 신경망 모델을 수신하고, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 모델 분석기;
    상기 인공 신경망 모델이 프루닝됨에 따라 변화하는 제1 민감도 데이터를 산출하고, 상기 제1 민감도 데이터에 기초하여 타겟 프루닝 레이트에 대응하는 타겟 민감도를 산출하며, 상기 복수의 레이어들 각각이 프루닝됨에 따라 변화하는 제2 민감도 데이터를 산출하고, 상기 제2 민감도 데이터에 기초하여 상기 타겟 민감도에 대응하는 상기 복수의 레이어들 각각의 최적 프루닝 레이트를 출력하는 트레이닝 로직;
    상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 모델 갱신기를 포함하는 컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 복수의 레이어들은, 제1 레이어 및 상기 제1 레이어보다 민감도가 낮은 제2 레이어를 포함하며,
    상기 최적 프루닝 레이트는, 상기 제1 레이어의 제1 최적 프루닝 레이트 및 상기 제2 레이어의 제2 최적 프루닝 레이트를 포함하고,
    상기 제2 최적 프루닝 레이트는, 상기 제1 최적 프루닝 레이트보다 높은 것을 특징으로 하는 컴퓨팅 장치.
  3. 제1항에 있어서,
    상기 트레이닝 로직은,
    복수의 프루닝 레이트 값들을 상기 인공 신경망 모델 및 상기 복수의 레이어들에 적용하고, 복수의 민감도 값들을 획득하며, 상기 복수의 민감도 값들을 보간함으로써 상기 제1 민감도 데이터 및 상기 제2 민감도 데이터를 산출하는 것을 특징으로 하는 컴퓨팅 장치.
  4. 제1항에 있어서,
    상기 트레이닝 로직은,
    상기 제2 민감도 데이터의 역함수 관계인 프루닝 레이트 데이터를 획득하고, 상기 타겟 민감도에 기초하여 상기 프루닝 레이트 데이터로부터 상기 최적 프루닝 레이트를 출력하는 것을 특징으로 하는 컴퓨팅 장치.
  5. 제1항에 있어서,
    상기 트레이닝 로직은,
    상기 최적 프루닝 레이트를 출력함에 대응하여, 상기 복수의 레이어들 각각의 가중치를 조정하는 것을 특징으로 하는 컴퓨팅 장치.
  6. 제5항에 있어서,
    상기 트레이닝 로직은,
    상기 인공 신경망에 포함된 전체 가중치를 기준으로 상기 복수의 레이어들 각각의 상기 가중치를 표준화(normalization)하는 것을 특징으로 하는 컴퓨팅 장치.
  7. 제5항에 있어서,
    프로세서를 포함하는 메모리를 더 포함하며,
    상기 프로세서는, 상기 가중치를 조정하고 상기 메모리에 저장하는 것을 특징으로 하는 컴퓨팅 장치.
  8. 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치에 있어서,
    인공 신경망 모델을 수신하고, 상기 인공 신경망 모델을 복수의 레이어들로 분할하는 모델 분석기;
    타겟 프루닝 레이트를 수신하고, 상기 타겟 프루닝 레이트에 대응되는 상기 인공 신경망 모델의 타겟 민감도를 산출하며, 상기 타겟 민감도에 대응하는 상기 복수의 레이어들 각각의 최적 프루닝 레이트를 출력하는 트레이닝 로직;
    상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 모델 갱신기를 포함하는 컴퓨팅 장치.
  9. 제8항에 있어서,
    상기 트레이닝 로직은,
    상기 인공 신경망 모델을 분석함으로써 프루닝 레이트에 따라 변화하는 제1 민감도 데이터를 출력하며, 상기 복수의 레이어들 각각을 분석함으로써 프루닝 레이트에 따라 변화하는 제2 민감도 데이터를 출력하는 민감도 분석기를 더 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  10. 제9항에 있어서,
    상기 트레이닝 로직은,
    상기 타겟 프루닝 레이트, 상기 제1 민감도 데이터 및 상기 제2 민감도 데이터에 기초하여 상기 최적 프루닝 레이트를 출력하고, 상기 최적 프루닝 레이트는 복수의 레이어들 각각에 할당되는 것을 특징으로 하는 컴퓨팅 장치.
  11. 제9항에 있어서,
    상기 민감도 분석기는,
    복수의 프루닝 레이트 값들을 상기 인공 신경망 모델 및 상기 복수의 레이어들 각각에 적용하고, 복수의 민감도 값들을 획득하며, 상기 복수의 민감도 값들을 보간함으로써 상기 제1 민감도 데이터 및 상기 제2 민감도 데이터를 산출하는 것을 특징으로 하는 컴퓨팅 장치.
  12. 제9항에 있어서,
    프루닝 제어기를 더 포함하고,
    상기 프루닝 제어기는, 상기 제1 민감도 데이터 및 상기 타겟 프루닝 레이트에 기초하여 상기 타겟 민감도를 출력하는 타겟 민감도 산출기; 및
    상기 제2 민감도 데이터 및 상기 타겟 민감도에 기초하여 상기 최적 프루닝 레이트를 출력하는 최적 프루닝 레이트 산출기를 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  13. 제12항에 있어서,
    상기 최적 프루닝 레이트 산출기는,
    상기 제2 민감도 데이터의 역함수 관계인 프루닝 레이트 데이터를 획득하고, 상기 프루닝 레이트 데이터는 상기 복수의 레이어들 각각의 민감도의 변화에 따른 프루닝 레이트를 포함하며, 상기 타겟 민감도를 상기 프루닝 레이트 데이터에 적용함으로써 상기 복수의 레이어들 각각의 상기 최적 프루닝 레이트를 출력하는 것을 특징으로 하는 컴퓨팅 장치.
  14. 제8항에 있어서,
    상기 복수의 레이어들은, 제1 레이어 및 상기 제1 레이어보다 민감도가 낮은 제2 레이어를 포함하며,
    상기 최적 프루닝 레이트는, 상기 제1 레이어의 제1 최적 프루닝 레이트 및 상기 제2 레이어의 제2 최적 프루닝 레이트를 포함하고,
    상기 제2 최적 프루닝 레이트는, 상기 제1 최적 프루닝 레이트보다 높은 것을 특징으로 하는 컴퓨팅 장치.
  15. 제14항에 있어서,
    메모리를 더 포함하며,
    상기 모델 분석기는, 복수의 레이어들 각각의 제1 가중치를 출력하며,
    상기 트레이닝 로직은, 상기 최적 프루닝 레이트에 기초하여 제1 가중치를 업데이트한 제2 가중치를 출력하며, 상기 제2 가중치 및 상기 제2 가중치에 대응하는 상기 최적 프루닝 레이트를 상기 메모리에 저장하는 것을 특징으로 하는 컴퓨팅 장치.
  16. 제8항에 있어서,
    상기 트레이닝 로직은,
    상기 최적 프루닝 레이트를 출력함에 대응하여, 상기 복수의 레이어들 각각의 가중치를 조정하는 것을 특징으로 하는 컴퓨팅 장치.
  17. 인공 신경망 모델을 트레이닝하는 방법에 있어서,
    타겟 프루닝 레이트를 수신하는 단계;
    상기 인공 신경망 모델이 프루닝됨에 따라 변화하는 제1 민감도 데이터를 산출하는 단계;
    상기 제1 민감도 데이터에서, 상기 타겟 프루닝 레이트에 대응되는 타겟 민감도를 산출하는 단계;
    상기 인공 신경망 모델을 복수의 레이어들로 분할하는 단계;
    상기 복수의 레이어들 각각이 프루닝됨에 따라 변화하는 제2 민감도 데이터를 산출하는 단계;
    상기 복수의 레이어들 각각에서, 상기 타겟 민감도에 대응하는 최적 프루닝 레이트를 상기 제2 민감도 데이터에 기초하여 산출하는 단계; 및
    상기 최적 프루닝 레이트에 기초하여 상기 인공 신경망 모델을 프루닝하는 단계를 포함하는 방법.
  18. 제17항에 있어서,
    상기 복수의 레이어들은, 제1 레이어 및 상기 제1 레이어보다 민감도가 낮은 제2 레이어를 포함하며,
    상기 최적 프루닝 레이트는, 상기 제1 레이어의 제1 최적 프루닝 레이트 및 상기 제2 레이어의 제2 최적 프루닝 레이트를 포함하고,
    상기 제2 최적 프루닝 레이트는, 상기 제1 최적 프루닝 레이트보다 높은 것을 특징으로 하는 방법.
  19. 제18항에 있어서,
    상기 인공 신경망 모델에서, 프루닝 레이트(pruning rate)에 따라 변화하는 제1 민감도 데이터를 산출하는 단계는,
    프루닝 레이트를 소정의 단위 구간들로 나누는 단계;
    상기 단위 구간들마다 상기 인공 신경망 모델로부터 출력된 데이터의 변화량을 분석하고 민감도 값들을 획득하는 단계; 및
    보간된 상기 민감도 값들에 기초하여 상기 제1 민감도 데이터를 산출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  20. 제18항에 있어서,
    상기 복수의 레이어들 각각에서, 프루닝 레이트에 따라 변화하는 제2 민감도 데이터를 산출하는 단계는,
    데이터를 인공 신경망 모델에 입력하는 단계;
    단위 구간들로 나뉘어진 프루닝 레이트들을 상기 복수의 레이어들 각각에 적용하는 단계;
    상기 인공 신경망 모델로부터 출력된 데이터의 변화량을 분석하고 민감도 값들을 획득하는 단계; 및
    보간된 상기 민감도 값들에 기초하여 상기 제2 민감도 데이터를 산출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1020190053888A 2019-05-08 2019-05-08 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템 KR20200129458A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190053888A KR20200129458A (ko) 2019-05-08 2019-05-08 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템
DE102020101275.6A DE102020101275A1 (de) 2019-05-08 2020-01-21 Rechenvorrichtung zum Trainieren eines künstlichen neuronalen Netzwerkmodells, Verfahren zum Trainieren des künstlichen neuronalen Netzwerkmodells und Speichersystem zum Speichern desselben
US16/786,627 US11556795B2 (en) 2019-05-08 2020-02-10 Computing device for training artificial neural network model, method of training the artificial neural network model, and memory system for storing the same
CN202010380930.XA CN111914991A (zh) 2019-05-08 2020-05-08 训练人工神经网络模型的计算装置和方法以及存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190053888A KR20200129458A (ko) 2019-05-08 2019-05-08 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20200129458A true KR20200129458A (ko) 2020-11-18

Family

ID=72943809

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190053888A KR20200129458A (ko) 2019-05-08 2019-05-08 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템

Country Status (4)

Country Link
US (1) US11556795B2 (ko)
KR (1) KR20200129458A (ko)
CN (1) CN111914991A (ko)
DE (1) DE102020101275A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113128664A (zh) * 2021-03-16 2021-07-16 广东电力信息科技有限公司 神经网络压缩方法、装置、电子设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220222520A1 (en) * 2021-01-13 2022-07-14 International Business Machines Corporation Supervised vae for optimization of value function and generation of desired data
CN113361578B (zh) * 2021-05-31 2023-08-04 北京百度网讯科技有限公司 图像处理模型的训练方法、装置、电子设备及存储介质
CN113311715B (zh) * 2021-07-30 2021-12-07 中国人民解放军海军工程大学 一种复杂机电设备的故障辨识与溯源方法
US11853558B2 (en) 2021-12-30 2023-12-26 Micron Technology, Inc. Power down workload estimation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5288645A (en) 1992-09-04 1994-02-22 Mtm Engineering, Inc. Hydrogen evolution analyzer
US7848569B2 (en) 2005-12-14 2010-12-07 Micron Technology, Inc. Method and apparatus providing automatic color balancing for digital imaging systems
US8856055B2 (en) 2011-04-08 2014-10-07 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
US8831763B1 (en) 2011-10-18 2014-09-09 Google Inc. Intelligent interest point pruning for audio matching
KR102239714B1 (ko) 2014-07-24 2021-04-13 삼성전자주식회사 신경망 학습 방법 및 장치, 데이터 처리 장치
US11423311B2 (en) 2015-06-04 2022-08-23 Samsung Electronics Co., Ltd. Automatic tuning of artificial neural networks
US10984308B2 (en) 2016-08-12 2021-04-20 Xilinx Technology Beijing Limited Compression method for deep neural networks with load balance
US11315018B2 (en) 2016-10-21 2022-04-26 Nvidia Corporation Systems and methods for pruning neural networks for resource efficient inference
EP3340129B1 (en) 2016-12-21 2019-01-30 Axis AB Artificial neural network class-based pruning
US20190005377A1 (en) 2017-06-30 2019-01-03 Advanced Micro Devices, Inc. Artificial neural network reduction to reduce inference computation time
US20190362235A1 (en) * 2018-05-23 2019-11-28 Xiaofan Xu Hybrid neural network pruning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113128664A (zh) * 2021-03-16 2021-07-16 广东电力信息科技有限公司 神经网络压缩方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US11556795B2 (en) 2023-01-17
CN111914991A (zh) 2020-11-10
DE102020101275A1 (de) 2020-11-12
US20200356860A1 (en) 2020-11-12

Similar Documents

Publication Publication Date Title
KR20200129458A (ko) 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템
CN109754066B (zh) 用于生成定点型神经网络的方法和装置
CN107730474B (zh) 图像处理方法、处理装置和处理设备
US20200065619A1 (en) Image processing method, processing apparatus and processing device
KR101298393B1 (ko) 그래픽 처리 유닛 상에서 콘볼루션 신경망을 트레이닝하는방법
KR20200088475A (ko) 신경망의 기능적 부분망의 동시 훈련
KR20180101055A (ko) 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법
US11562046B2 (en) Neural network processor using dyadic weight matrix and operation method thereof
US11244028B2 (en) Neural network processor and convolution operation method thereof
CN109816098B (zh) 神经网络的处理方法及评估方法、数据分析方法及装置
US20200364567A1 (en) Neural network device for selecting action corresponding to current state based on gaussian value distribution and action selecting method using the neural network device
CN112825153A (zh) 神经网络系统中数据处理的方法、神经网络系统
CN111950718B (zh) 利用存算一体芯片实现递进式cnn运算的方法
US20210182687A1 (en) Apparatus and method with neural network implementation of domain adaptation
KR102432254B1 (ko) 전자 장치가 뉴럴 네트워크 내의 소정 레이어에서 컨볼루션 연산을 수행하는 방법 및 그 방법을 수행하는 전자 장치
JP2021197176A (ja) 浮動小数点演算を行うニューラルネットワーク装置及びその動作方法
CN109754357B (zh) 图像处理方法、处理装置以及处理设备
US11694074B2 (en) Integrated circuit that extracts data, neural network processor including the integrated circuit, and neural network device
KR20200129457A (ko) 학습을 수행하는 뉴럴 네트워크 시스템, 그것의 학습 방법 및 뉴럴 네트워크 프로세서의 전이 학습 방법
US20230025626A1 (en) Method and apparatus for generating process simulation models
CN111833363B (zh) 图像边缘和显著性检测方法及装置
CN112150612A (zh) 三维模型构建方法、装置、计算机设备及存储介质
CN110110853B (zh) 一种深度神经网络压缩方法、装置及计算机可读介质
US11842273B2 (en) Neural network processing
US20230096854A1 (en) Data processing system, operating method thereof, and computing system using data processing system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal