KR20220088497A - 서브-커널 써칭 모듈을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 장치 - Google Patents

서브-커널 써칭 모듈을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 장치 Download PDF

Info

Publication number
KR20220088497A
KR20220088497A KR1020227018470A KR20227018470A KR20220088497A KR 20220088497 A KR20220088497 A KR 20220088497A KR 1020227018470 A KR1020227018470 A KR 1020227018470A KR 20227018470 A KR20227018470 A KR 20227018470A KR 20220088497 A KR20220088497 A KR 20220088497A
Authority
KR
South Korea
Prior art keywords
kernel
neural network
network model
sub
learning
Prior art date
Application number
KR1020227018470A
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 주식회사 스트라드비젼
Publication of KR20220088497A publication Critical patent/KR20220088497A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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
    • G06N3/0454
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7753Incorporation of unlabelled data, e.g. multiple instance learning [MIL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

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

Abstract

서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법으로서, 학습 장치가 (a) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 서브-커널 써칭 모듈로 하여금, 학습 데이터에 대응하는 제약(constraint)과 상태 벡터(state vector)를 파악하여, 상기 학습 데이터에 대해 목적하는 태스크를 수행하기에 적절한 특정 서브-커널(sub-kernel)의 아키텍쳐 정보(architecture information)를 생성하도록 하는 단계, (b) 상기 특정 서브-커널의 상기 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성할 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하는 단계, 및 (c) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 상기 서브-커널 써칭 모듈을 학습시키는 단계를 포함한다.

Description

서브-커널 써칭 모듈을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 장치
본 발명은 2020년 5월 13일 출원된 미국특허출원번호 제63/024,025호와 2020년 12월 28일 출원된 미국특허출원번호 제17/135,301호에 대한 우선권을 주장하며, 이는 본원에 참조로서 포함된다.
본 발명은 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법 및 장치에 관한 것으로, 보다 상세하게는, 온-디바이스 뉴럴 네트워크 모델을 최적화하는데 이용되는 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 학습시키고 서브-커널 써칭 모듈을 이용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 이를 이용한 학습 장치와 최적화 장치에 관한 것이다.
이미지 클래시피케이션(Image classification)이 사용되는 디바이스는 입력된 이미지의 밝기, 흔들림, 노이즈 등 다양한 요인에 의해 입력된 이미지 중 적어도 일부를 식별하는데 어려움을 겪을 수 있다.
따라서, 딥러닝(deep learning)을 적용하여 다양한 이미지에 대한 지속적인 학습을 통해 이미지 클래시피케이션의 정확도를 향상시킬 수 있다.
그러나, 이미지 클래시피케이션의 정확도를 향상시키기 위해서는 지속적인 뉴럴 네트워크 모델(neural network model)의 최적화(optimization)가 필요하며, 이에 따라 뉴럴 네트워크 모델을 효율적으로 업데이트하기 위한 다양한 기술이 개발되고 있다.
이를 위하여, 종래에는 사람이 직접 딥러닝 네트워크 모델을 설계하였으나, 최근에는 AI 뉴럴 네트워크가 디바이스에 적용된 뉴럴 네트워크 모델을 직접 설계하는 뉴럴 아키텍셔 써치(Neural Architecture Search, NAS)와 같은 방법들이 개발되고 있다.
일 예로, 도 1을 참조하면, 종래의 NAS는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)를 이용하여 디바이스에 적용되거나 적용될 뉴럴 네트워크 모델의 아키텍쳐 정보를 담은 컨피규어레이션 스트링(configuration string)을 생성함으로써 차일드 뉴럴 네트워크 모델(child neural network model)을 설계한다. 이후, 차일드 뉴럴 네트워크 모델의 성능을 검증 세트(validation set)를 이용하여 측정하고, 결과로 얻은 정확도(accuracy) R을 강화 학습(reinforcement learning)의 리워드(reward)로 사용해 차일드 뉴럴 네트워크 모델의 파라미터(parameter)를 업데이트한다. 이외에도, 최적의 네트워크 성능을 달성하기 위해, 경사 하강 최적화(gradient descent optimization), 진화 써치(evolutionary search) 등의 기법들이 적용되고 있다.
또한, 도 2를 참조하면, 다른 종래의 뉴럴 네트워크 최적화 기술로서 온라인 학습(online learning)과 같은 방법이 있다. 이러한 온라인 학습에서는 기존의 뉴럴 네트워크 모델에 대하여 온라인으로 인퍼런스(inference)를 진행한 후, 그 결과에 따라서 기존의 뉴럴 네트워크 모델을 업데이트하거나 재학습시키는 과정을 이용하고 있다.
이와 같이 뉴럴 네트워크를 이용한 뉴럴 네트워크 모델 아키텍쳐의 최적화은 자율주행 자동차, 무인비행기, 로봇 등의 딥러닝 기술이 필요한 주행 장치에 탑재된 엣지 디바이스(edge device)에 유용할 수 있는데, 엣지 디바이스에 특정한 기능을 수행하는 뉴럴 네트워크 모델을 탑재하여 사용하는 종래의 방법에는 다음과 같은 문제점들이 존재한다.
우선, 엣지 디바이스에 탑재되는 뉴럴 네트워크 모델은 허용된 연산량과 파라미터 수가 상대적으로 적어 모델 캐퍼시티(model capacity)에 제한을 가지게 된다.
또한, 이미지를 검출하고 인식하는 데에 필요한 모델 캐퍼시티는 이미지들의 난이도에 따라 다르지만, 엣지 디바이스에 탑재되는 종래의 뉴럴 네트워크 모델은 모든 이미지들에 대해 같은 연산량과 파라미터를 적용하므로 이미지들의 난이도에 따라 검출 및 인식 능력의 편차가 커지게 되는 한계가 있다.
이에 더하여, 엣지 디바이스에 탑재되는 뉴럴 네트워크 모델은 사람의 개입 없이 하드 샘플(hrad sample)을 찾기가 어렵기 때문에 하드 샘플에 대한 학습을 진행하여 뉴럴 네트워크 모델의 성능을 개선하기 위해서는 많은 인력과 비용이 소요된다는 문제점이 존재한다.
따라서, 상기 문제점들을 해결하기 위한 개선 방안이 요구되는 실정이다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 엣지 디바이스(edge device)에 탑재된 뉴럴 네트워크 모델(neural network model)에 대한 최적화를 외부 서버의 도움 없이 수행하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 엣지 디바이스의 연산능력 및 주변환경에 따라 뉴럴 네트워크 모델의 서브-아키텍쳐(sub-architecture)를 생성함으로써 엣지 디바이스에 탑재된 뉴럴 네트워크 모델을 최적화하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 입력된 데이터의 난이도에 따라 최적화된 연산량(computational load)을 적용함으로써 인퍼런스(inference)시 읽어들이는 웨이트(weights)의 크기와 연산횟수(mac/flops)를 감소시키는 것을 목적으로 한다.
또한, 본 발명은 각 서브-아키텍쳐의 각 연산량에 따른 하드 샘플들을 지속적으로 수집함으로써 뉴럴 네트워크 모델의 각 서브-아키텍쳐의 성능을 향상시키는 것을 또 다른 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법에 있어서, (a) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 학습 장치가, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 학습 데이터에 대응하는 적어도 하나의 제약(constraint) - 상기 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 학습 데이터에 대응하는 상태 벡터(state vector) - 상기 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 특정 서브-커널 - 상기 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계; (b) 상기 학습 장치가, (i) 상기 특정 서브-커널의 상기 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii) 상기 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계; 및 (c) 상기 학습 장치가, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 단계;를 포함하는 방법이 개시된다.
일례로서, 상기 (a) 단계에서, 상기 학습 장치는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 학습 데이터에 대응하는 씬 피쳐들(scene features)을 생성하도록 하며, 상기 씬 피쳐들에 대응되는 상기 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 상기 최소한의 커널 크기와 상기 최소한의 채널 수로 이루어진 상기 특정 서브-커널의 상기 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 학습 장치는, (i) 주어진 상기 제약에서 상기 제1 로스를 통한 백프로퍼게이션(back-propagation)을 통해 상기 제1 로스를 최소화하도록 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 학습시키고, (ii) 상기 상태 벡터와 이에 대응되는 그라운드 트루스(ground truth)를 참조하여 하나 이상의 제2 로스를 생성하고, 상기 제2 로스를 최소화하도록 상기 씬 오버뷰잉 모듈을 추가로 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있으며, 상기 학습 장치는 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 각각 학습시키거나 동시에 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 학습 장치는 상기 씬 오버뷰잉 모듈의 상기 컨벌루셔널 뉴럴 네트워크를 통해 상기 학습 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 학습 데이터에 대응되는 상기 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계에서, 상기 학습 장치는, 상기 특정 서브-커널의 상기 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 상기 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 학습 장치는, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과의 차이가 기설정된 기준값을 초과할 경우, 상기 학습 데이터와 상기 특정 스몰 뉴럴 네트워크 모델의 상기 아키텍쳐 정보를 서버로 전송하여, 상기 서버로 하여금 상기 학습 데이터를 상기 특정 스몰 뉴럴 네트워크 모델에서의 하드 샘플(hard sample)로 태그(tag)하고 학습 데이터베이스에 추가하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 방법이 개시된다.
본 발명의 다른 태양에 따르면, 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법에 있어서, (a) 학습 장치에 의해, (i) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i-1) 상기 학습 데이터에 대응하는 학습용 제약(constraint) - 상기 학습용 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (i-2) 상기 학습 데이터에 대응하는 학습용 상태 벡터(state vector) - 상기 학습용 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (i-3) 상기 학습용 제약에서 상기 학습용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 학습용 특정 서브-커널 - 상기 학습용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 학습용 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스, (ii) (ii-1) 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 가지는 학습용 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii-2) 상기 학습용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스, 및 (iii) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스가 수행된 상태에서, 최적화 장치가, 테스트 데이터를 획득하면, 상기 테스트 데이터를 상기 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 테스트 데이터에 대응하는 테스트용 제약(constraint) - 상기 테스트용 제약은 적어도 연산량, 파라미터, 레이턴시, 정확도, 및 플롭스 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 테스트 데이터에 대응하는 테스트용 상태 벡터 - 상기 테스트용 상태 벡터는 적어도 상기 테스트 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 테스트 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 테스트용 특정 서브-커널 - 상기 테스트용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 상기 슈퍼 커널의 서브셋으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계; 및 (b) 상기 최적화 장치가, (i) 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하여, (ii) 상기 테스트용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 테스트 데이터에 대한 제3 인퍼런스 결과(third inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계;를 포함하는 방법이 개시된다.
일례로서, 상기 (a) 단계에서, 상기 최적화 장치는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 테스트 데이터에 대응하는 테스트용 씬 피쳐들(scene features)을 생성하도록 하며, 상기 테스트용 씬 피쳐들에 대응되는 상기 테스트용 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 최적화 장치는 상기 씬 오버뷰잉 모듈의 상기 컨버루션 뉴럴 네트워크를 통해 상기 테스트 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 테스트 데이터에 대응되는 상기 테스트용 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계에서, 상기 최적화 장치는, 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 상기 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법이 개시된다.
본 발명의 또 다른 태양에 따르면, 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 학습 장치로서, 인스트럭션들을 저장하는 적어도 하나의 메모리; 및 상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서;를 포함하되, 상기 프로세서가, (I) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 학습 데이터에 대응하는 적어도 하나의 제약(constraint) - 상기 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 학습 데이터에 대응하는 상태 벡터(state vector) - 상기 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 특정 서브-커널 - 상기 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세스, (II) (i) 상기 특정 서브-커널의 상기 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii) 상기 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세서, 및 (III) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 학습 장치가 개시된다.
일례로서, 상기 (I) 프로세스에서, 상기 프로세서는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 학습 데이터에 대응하는 씬 피쳐들(scene features)을 생성하도록 하며, 상기 씬 피쳐들에 대응되는 상기 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 상기 최소한의 커널 크기와 상기 최소한의 채널 수로 이루어진 상기 특정 서브-커널의 상기 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치가 개시된다.
일례로서, 상기 프로세서는, (i) 주어진 상기 제약에서 상기 제1 로스를 통한 백프로퍼게이션(back-propagation)을 통해 상기 제1 로스를 최소화하도록 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 학습시키고, (ii) 상기 상태 벡터와 이에 대응되는 그라운드 트루스(ground truth)를 참조하여 하나 이상의 제2 로스를 생성하고, 상기 제2 로스를 최소화하도록 상기 씬 오버뷰잉 모듈을 추가로 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치가 개시된다.
일례로서, 상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있으며, 상기 프로세서는 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 각각 학습시키거나 동시에 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치가 개시된다.
일례로서, 상기 프로세서는 상기 씬 오버뷰잉 모듈의 상기 컨벌루셔널 뉴럴 네트워크를 통해 상기 학습 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 학습 데이터에 대응되는 상기 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치가 개시된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서는, 상기 특정 서브-커널의 상기 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 상기 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치가 개시된다.
일례로서, 상기 프로세서는, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과의 차이가 기설정된 기준값을 초과할 경우, 상기 학습 데이터와 상기 특정 스몰 뉴럴 네트워크 모델의 상기 아키텍쳐 정보를 서버로 전송하여, 상기 서버로 하여금 상기 학습 데이터를 상기 특정 스몰 뉴럴 네트워크 모델에서의 하드 샘플(hard sample)로 태그(tag)하고 학습 데이터베이스에 추가하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 학습 장치가 개시된다.
본 발명의 또 다른 태양에 따르면, 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 최적화 장치로서, 인스트럭션들을 저장하는 적어도 하나의 메모리; 및 상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서;를 포함하되, (I) 학습 장치에 의해, (i) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i-1) 상기 학습 데이터에 대응하는 학습용 제약(constraint) - 상기 학습용 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (i-2) 상기 학습 데이터에 대응하는 학습용 상태 벡터(state vector) - 상기 학습용 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (i-3) 상기 학습용 제약에서 상기 학습용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 학습용 특정 서브-커널 - 상기 학습용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 학습용 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스, (ii) (ii-1) 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 가지는 학습용 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii-2) 상기 학습용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스, 및 (iii) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스가 수행된 상태에서, 상기 프로세서가, 테스트 데이터를 획득하면, 상기 테스트 데이터를 상기 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 테스트 데이터에 대응하는 테스트용 제약(constraint) - 상기 테스트용 제약은 적어도 연산량, 파라미터, 레이턴시, 정확도, 및 플롭스 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 테스트 데이터에 대응하는 테스트용 상태 벡터 - 상기 테스트용 상태 벡터는 적어도 상기 테스트 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 테스트 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 테스트용 특정 서브-커널 - 상기 테스트용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 상기 슈퍼 커널의 서브셋으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세스, 및 (II) 상기 프로세서가, (i) 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하여, (ii) 상기 테스트용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 테스트 데이터에 대한 제3 인퍼런스 결과(third inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세스를 수행하는 최적화 장치가 개시된다.
일례로서, 상기 (I) 프로세스에서, 상기 프로세서는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 테스트 데이터에 대응하는 테스트용 씬 피쳐들(scene features)을 생성하도록 하며, 상기 테스트용 씬 피쳐들에 대응되는 상기 테스트용 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 최적화 장치가 개시된다.
일례로서, 상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있는 것을 특징으로 하는 최적화 장치가 개시된다.
일례로서, 상기 프로세서는 상기 씬 오버뷰잉 모듈의 상기 컨버루션 뉴럴 네트워크를 통해 상기 테스트 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 테스트 데이터에 대응되는 상기 테스트용 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 최적화 장치가 개시된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서는, 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 상기 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 최적화 장치가 개시된다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명은 엣지 디바이스(edge device)에 탑재된 뉴럴 네트워크 모델(neural network model)에 대한 최적화를 외부 서버의 도움 없이 수행하는 효과가 있다.
또한, 본 발명은 엣지 디바이스의 연산능력 및 주변환경에 따라 뉴럴 네트워크 모델의 서브-아키텍쳐(sub-architecture)를 생성함으로써 엣지 디바이스에 탑재된 뉴럴 네트워크 모델을 최적화하는 효과가 있다.
또한, 본 발명은 입력된 데이터의 난이도에 따라 최적화된 연산량(computational load)을 적용함으로써 인퍼런스(inference)시 읽어들이는 웨이트(weights)의 크기와 연산횟수(mac/flops)를 감소시키는 효과가 있다.
또한, 본 발명은 각 서브-아키텍쳐의 각 연산량에 따른 하드 샘플들을 지속적으로 수집함으로써 뉴럴 네트워크 모델의 각 서브-아키텍쳐의 성능을 향상시키는 효과가 있다.
본 발명의 실시예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자(이하 "통상의 기술자")에게 있어서는 발명적 작업이 이루어짐 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1과 도 2는 종래의 뉴럴 네트워크(neural network) 최적화 (optimization) 시스템을 개략적으로 도시한 것이고,
도 3은 본 발명의 일 실시예에 따라 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법에서 서브-커널 써칭 모듈을 학습시키는 학습 장치를 개략적으로 도시한 것이며,
도 4는 본 발명의 일 실시예에 따라 서브-커널 써칭 모듈을 이용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법에서 서브-커널 써칭 모듈을 학습시키는 과정을 개략적으로 도시한 것이고,
도 5은 본 발명의 일 실시예에 따라 서브-커널 써칭 모듈에 포함된 씬 오버뷰잉 모듈(Scence Overviewing Module, SOM)의 구조를 개략적으로 도시한 것이며,
도 6은 본 발명의 일 실시예에 따라 슈퍼 커널(super kernel)과 서브-커널(sub-kernel)의 개념을 이용하여 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)과 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고 학습시키는 방법을 개략적으로 도시한 것이고,
도 7은 본 발명의 일 실시예에 따라 서브-커널 써칭 모듈을 이용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 최적화 장치를 개략적으로 도시한 것이고,
도 8은 본 발명의 일 실시예에 따라 입력과 출력의 예시를 통해 서브-커널 써칭 모듈을 이용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법을 개략적으로 도시하고 있다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 더욱이 본 발명은 본 명세서에 표시된 실시예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 발명에서 언급하는 각종 이미지는 포장 또는 비포장 도로 관련 이미지를 포함할 수 있으며, 이 경우 도로 환경에서 등장할 수 있는 물체(가령, 자동차, 사람, 동물, 식물, 물건, 건물, 비행기나 드론과 같은 비행체, 기타 장애물)를 상정할 수 있을 것이나, 반드시 이에 한정되는 것은 아니며, 본 발명에서 언급하는 각종 이미지는 도로와 상관 없는 이미지(가령, 비포장도로, 골목길, 공터, 바다, 호수, 강, 산, 숲, 사막, 하늘, 실내와 관련된 이미지)일 수도 있으며, 이 경우, 비포장도로, 골목길, 공터, 바다, 호수, 강, 산, 숲, 사막, 하늘, 실내 환경에서 등장할 수 있는 물체(가령, 자동차, 사람, 동물, 식물, 물건, 건물, 비행기나 드론과 같은 비행체, 기타 장애물)를 상정할 수 있을 것이나, 반드시 이에 한정되는 것은 아니다. 여기에 제공된 본 개시의 제목 및 요약은 단지 편의를 위한 것이며 실시예의 범위 또는 의미를 제한하거나 해석하지 않는다.
참고로, 본 명세서는 전반에 걸쳐 학습 과정과 관련된 용어에는 "학습용" 또는 "학습"을 추가하고, 테스트 과정과 관련된 용어에는 "테스트용" 또는 "테스트"를 추가하여 가능한 혼돈을 피하고자 하였다.
또한, 본 발명의 상세한 설명 및 청구항들에 걸쳐, "포함하다"라는 단어 및 그것의 변형은 다른 기술적 특징들, 부가물들, 구성요소들 또는 단계들을 제외하는 것으로 의도된 것이 아니다. 통상의 기술자에게 본 발명의 다른 목적들, 장점들 및 특성들이 일부는 본 설명서로부터, 그리고 일부는 본 발명의 실시로부터 드러날 것이다. 아래의 예시 및 도면은 실례로서 제공되며, 본 발명을 한정하는 것으로 의도된 것이 아니다.
여기에 제공된 본 개시의 제목 및 요약은 단지 편의를 위한 것이며 실시예의 범위 또는 의미를 제한하거나 해석하지 않는다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
우선, 도 3은 본 발명의 일 실시예에 따라 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(On-Device neural network model)을 최적화하는 방법에서 서브-커널 써칭 모듈을 학습시키는 학습 장치를 개략적으로 도시한 것이다.
도 3을 참조하면, 학습 장치(1000)는 온-디바이스 뉴럴 네트워크 모델을 최적화하는데 이용되는 서브-커널 써칭 모듈을 학습시키는 인스트럭션들을 저장하는 메모리(1001)와 메모리(1001)에 저장된 인스트럭션들에 대응하여 서브-커널 써칭 모듈을 학습시키기 위한 동작을 수행하는 프로세서(1002)를 포함할 수 있다.
구체적으로, 학습 장치(1000)는 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 컴퓨팅 장치는 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
그러나, 컴퓨팅 장치가 본 발명을 실시하기 위한 미디엄, 프로세서 및 메모리가 통합된 형태인 integrated 프로세서를 포함하는 경우를 배제하는 것은 아니다.
이와 같이 구성된 학습 장치(1000)를 이용하여 서브-커널 써칭 모듈(100)을 학습시키는 과정을 도 4 내지 도 6을 참조하여 설명하면 다음과 같다.
먼저 도 4를 참조하면, 학습 장치(1000)는, 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스(edge device)가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)(200)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 학습 데이터를 서브-커널 써칭 모듈(100)로 입력하여, 서브-커널 써칭 모듈로 하여금, (i) 학습 데이터에 대응하는 제약(constraint)을 확인하고, (ii) 학습 데이터에 대응하는 상태 벡터(state vector)를 생성하여, (iii) 주어진 제약에서 상태 벡터를 가진 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 특정 서브-커널의 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
여기서, 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함하며, 학습 데이터가 입력되는 당시의 엣지 디바이스의 디바이스 상태 및 주변환경에 따라 제약은 변경될 수 있다. 또한, 제약은 각 엣지 디바이스에 의해 기설정되거나 추가로 입력되어 변경될 수 있을 것이다. 또한, 여기서 목적하는 태스크란 데이터 분석, 분류, 데이터에 포함된 정보 검출 등의 목적을 수행할 수 있으며, 목적에 따라 사용되는 데이터의 종류도 텍스트, 이미지, 텍스트가 포함된 이미지 등으로 달라질 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
덧붙여, 상태 벡터는 적어도 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함하는 1차원 벡터(1-dimensional vector)일 수 있으며, 이에 따라, 상태 벡터는 학습 데이터의 난이도(difficulty level)를 판단하는 기준이 될 수 있을 것이다. 이어서, 특정 서브-커널은 빅 뉴럴 네트워크 모델의 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있을 수 있다.
한편, 서브-커널 써칭 모듈(100)은 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)(110)과 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)(120)로 구성되어 있을 수 있다.
구체적으로, 학습 장치(1000)는 서브-커널 써칭 모듈(100)로 하여금, (i) 씬 오버뷰잉 모듈(110)을 통해 학습 데이터에 대응하는 씬 피쳐들(scene features)을 생성하도록 하며, 씬 피쳐들에 대응되는 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(120)를 통해 상기 제약에서 상기 상태 벡터를 가진 학습 데이터에 대하여 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 특정 서브-커널의 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
여기서, 주어진 제약에 의해 연산량, 파라미터, 레이턴시, 정확도, 및 플롭스 등은 서로 상호 연관적으로 영향을 줄 수 있다. 그 예로, 요구되는 정확도가 높아지면 그에 따라 요구되는 최소 파라미터 수가 증가할 수 있으며, 플롭스가 감소하거나 레이턴시가 증가하는 등의 연산량 감소가 발생하면 허용되는 파라미터 수가 감소할 수 있다. 따라서, 특정 서브-커널의 아키텍쳐 정보는 주어진 제약에서 주어진 상태 벡터를 가진 학습 데이터에 대하여 목적하는 태스크를 수행할 수 있는 최소한의 캐퍼시티에 대응되는 최소한의 커널 크기와 최소한의 채널 수에 대한 정보를 포함할 수 있다.
이때, 씬 오버뷰잉 모듈(110)은 디바이스 전체 성능에 큰 영향을 미치지 않는 작은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성될 수 있으며, 서브-커널 네트워크 생성기(120)는 전체 성능에 큰 영향을 미치지 않는 작은 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성될 수 있다.
도 5를 참조하면, 씬 오버뷰잉 모듈(110)은, 일 예로, 컨벌루셔널 레이어(convolutional layer), 풀링 레이어(pooling layer) 및 FC 레이어(Fully-Connected layer)로 구성되어 있을 수 있다. 씬 오버뷰잉 모듈(110)에 학습 데이터가 입력되면, 번갈아 배치되어 있는 다수의 컨벌루셔널 레이어와 풀링 레이어를 거쳐 생성된 피쳐 맵(feature map)들이 FC 레이어에 입력되어 아웃풋 프리딕션(output predictions)을 생성할 수 있다. 이때, 아웃풋 프리딕션은 1차원 벡터의 형태인 상태 벡터, 즉, 씬 오버뷰잉 모듈(SOM)(110)의 출력물이거나 일련의 과정을 거쳐 상태 벡터로 전환될 수 있다.
또한, 서브-커널 네트워크 생성기(120)가 출력하는 특정 서브-커널의 아키텍쳐 정보의 데이터 타입(data type)은 딕셔너리(dictionary)나 스트링(string)이 될 수 있으며, 일 예로, {{conv1: {k=3, c=26}}, {conv2: {k=7, c=35}}, ... , {ssd_layer: {k=1, c=121}}}와 같은 형태로 아키텍쳐 정보를 출력할 수 있다. 즉, 서브-커널 네트워크 생성기(120)는 주어진 제약에서 생성된 씬 피쳐들의 정보를 반영하는 상태 벡터에 대응하는 서브-커널(sub-kernel)의 아키텍쳐의 파라미터들에 대한 정보를 생성하도록 할 수 있다.
다음으로, 다시 도 4를 참조하면, 학습 장치(1000)는 (i) 특정 서브-커널의 아키텍쳐 정보를 참조하여 빅 뉴럴 네트워크 모델(200)을 최적화하여, 빅 뉴럴 네트워크 모델(200)로부터 특정 서브-커널의 아키텍쳐 정보를 가지는 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)(300)을 생성하고, (ii) 특정 스몰 뉴럴 네트워크 모델(300)로 하여금 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
여기서, 학습 장치(1000)는 특정 서브-커널의 아키텍쳐 정보에 따라 빅 뉴럴 네트워크 모델(200)의 슈퍼 커널의 커널 높이, 커널 너비 및 채널 수 중 적어도 하나를 조정하여 빅 뉴럴 네트워크 모델(200)을 최적화함으로써 특정 서브-커널의 아키텍쳐 정보를 가지는 특정 스몰 뉴럴 네트워크 모델(300)을 생성하는 프로세스를 수행하거나 수행하도록 지원할 수 있다. 즉, 본 발명은 빅 뉴럴 네트워크 모델(200)의 슈퍼 커널의 커널 높이, 커널 너비 및 채널 수 중 적어도 하나를 조정함으로써 슈퍼 커널의 커널 크기와 채널 수 중 적어도 하나를 조정하여 빅 뉴럴 네트워크 모델(200)의 슈퍼 커널의 사이즈 또는 볼륨에 변화를 줄 수 있다.
구체적으로, 도 6은 본 발명의 일 실시예에 따라 슈퍼 커널(super kernel)과 서브-커널(sub-kernel)의 개념을 이용하여 빅 뉴럴 네트워크 모델(B-NN Model)(200)과 스몰 뉴럴 네트워크 모델(S-NN Model)(300)을 생성하고 학습시키는 방법을 개략적으로 도시한 것이다. 여기서, 빅 뉴럴 네트워크 모델 (B-NN Model)(200)은 뉴럴 네트워크 모델(neural network model)을 적용하고자 하는 엣지 디바이스(edge device), 일 예로, 자율주행 자동차, 자율주행 비행체, 로봇 등의 컴퓨팅 파워가 감당할 수 있는 최대의 캐퍼시티, 즉, 최대의 연산량(computational load) 및 최대의 파라미터(parameters)을 가지는 뉴럴 네트워크 모델일 수 있으며, 사람에 의해 설계되어질 수 있다.
여기서, 빅 뉴럴 네트워크 모델의 슈퍼 커널은 최대한의 커널 높이, 최대한의 커널 너비 및 최대한의 채널 수 즉, (max_kernel_w*max_kernel_h*max_ch)로 이뤄진 뉴럴 네트워크 모델에서의 커널을 의미한다. 다시 말해, 슈퍼 커널은 예를 들어, X-Y 평면 상의 2차원 커널과, X-Y 평면에 수직인 Z축을 따라 배열된 1차원 채널로 구성된 3차원 구조를 나타낼 수 있다. 따라서, 이하의 슈퍼 커널은 설명의 편의상 간략하게 최대 커널 크기와 최대 채널 수를 가진 것으로 묘사될 수 있다.
그리고, 빅 뉴럴 네트워크 모델(B-NN Model)(200)과 스몰 뉴럴 네트워크 모델(S-NN Model)(300)을 생성하고 학습시키는 방법으로는 종래의 one-shot neural architecture search 등의 방법이 사용될 수 있다.
여기서, 빅 뉴럴 네트워크 모델(200)의 슈퍼 커널을 학습시킬 때, 슈퍼 커널의 서브셋(subset)에 속하는 일부의 파라미터(parameter)를 매 스텝(step)마다 학습시키는 방법으로 슈퍼 커널의 커널 크기와 채널 수를 조절하면서 학습을 시키면 뉴럴 네트워크 모델의 인퍼런스(inference)시 커널 크기와 채널 크기를 조금만 변경해도 성능이 급격히 하락하는 문제를 막고, 줄어든 연산량과 파라미터 수에 비례하게 성능을 조절할 수 있다.
도 6을 참조하여 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 학습시키는 일 예를 들면, 슈퍼커널의 커널 크기 및 채널 수에 대응되는 커널 크기 (7*7), channel 수 128개로 이뤄진 제1 컨벌루셔널 레이어(first convolutional layer) 즉, conv1에 대해 첫 번째 스텝에서는 슈퍼 커널의 한 가운데 3*3*64 커널 모양(kernel shape)을, 그리고 두 번째 스텝에서는 5*5*64 커널 모양을 인퍼런스(inference)시 사용하고 학습시키는 방법으로 슈퍼 커널의 서브셋(subset)에 속하는 일부의 파라미터를 매 스텝마다 학습시킬 수 있다.
한편, 슈퍼 커널의 커널 사이즈와 채널 수를 조절하면서 뉴럴 네트워크 모델을 학습시키는 구체적인 방법에 대해서는 다음의 논문들, Single-Path NAS: Designing Hardware-Efficient ConvNets in less than 4 Hours (Dimitrios Stamoulis, 2019), Universally Slimmable Networks and Improved Training Techniques (Jiahui Yu, 2019) 등을 참고할 수 있다. 일 예로, 인퍼런스 및 학습 시 사용되는 커널의 바깥의 영역을 일시적으로 제로 아웃(zero-out)시키면 사용되는 커널의 사이즈에 따라 성능을 유지할 수 있다. 또한, 배치 통계(Batch statistics)를 학습 이후에 다량의 데이터로 다시 구하면 채널 변경에 따른 급격한 성능 하락을 막을 수 있다.
따라서, 본 발명은 슈퍼 커널을 가진 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 생성하고 학습시켜, 이후 빅 뉴럴 네트워크 모델(B-NN Model)(200)의 최적화을 통한 스몰 뉴럴 네트워크 모델(S-NN Model)(300) 생성이 가능하도록 한다. 이때, 스몰 뉴럴 네트워크 모델(S-NN Model)(300)은 연산량, 파라미터, 레이턴시, 정확도, 플롭스 등에 주어진 제약 하에서 주어진 특정 난이도의 학습 데이터에 대해 목적하는 태스크를 수행하기 위한 최소한의 커널 크기와 최소한의 채널 수로 이루어진 뉴럴 네트워크 모델일 수 있다.
다음으로, 다시 도 4를 참조하면, 학습 장치(1000)는 제1 인퍼런스 결과와 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 제1 로스를 이용하여 주어진 제약에서 제1 로스를 통한 백프로퍼게이션(back-propagation)을 통해 제1 로스를 최소화하도록 씬 오버뷰잉 모듈(110)과 서브-커널 네트워크 생성기(120)를 학습시키는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
추가로, 학습 장치(1000)는 상태 벡터와 이에 대응되는 그라운드 트루스(ground truth)를 참조하여 하나 이상의 제2 로스를 생성하고, 제2 로스를 최소화하도록 씬 오버뷰잉 모듈(110)을 추가로 학습시키는 프로세스를 수행하거나 수행하도록 지원할 수 있다. 이로써, 씬 오버뷰잉 모듈(110)은 서브-커널 네트워크 생성기(120)에 씬(scene)에 대한 제대로 된 정보를 제공해주는 방향으로 최적화 될 수 있다. 이때, 상태 벡터에 대응되는 그라운드 트루스는 사람이나 고도로 학습된 뉴럴 네트워크에 의해 생성되어 학습이 진행될 수 있을 것이나, 이와는 달리 Generative Adversarial Network (GAN)을 이용한 비지도 학습(unsupervised learning) 등의 방법으로 진행될 수도 있을 것이며, 본 발명이 이에 한정되지는 않는다.
여기서, 위에서 언급하였듯이 서브-커널 써칭 모듈(100)을 구성하는 씬 오버뷰잉 모듈(SOM)(110)과 서브-커널 네트워크 생성기(120)는 각각 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)와 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있을 수 있다. 따라서, 씬 오버뷰잉 모듈(110)과 서브-커널 네트워크 생성기(120)는 각각 학습할 수도, 통합된 학습 방법으로 함께 학습될 수도 있다. 통합된 학습 방법으로서는 scene understanding 방법을 응용한 CNN+RNN combined training으로서 Show and Tell: A Neural Image Caption Generator(Oriol Vinyals, 2015)과 같은 방법들을 참고할 수 있다.
그리고, 학습 장치(1000)에 의한 씬 오버뷰잉 모듈(110)의 학습에 있어서, 학습 장치(1000)는 빅 뉴럴 네트워크 모델(B-NN model)(200)과 학습용 스몰 뉴럴 네트워크 모델(S-NN Model)(300)간의 제1 로스를 이용한 백프로퍼게이션을 통해 씬 오버뷰잉 모듈(110)으로 하여금 연산량, 파라미터, 레이턴시, 정확도, 플롭스 등 중 적어도 하나에 대해 주어진 제약 하에서 제1 로스를 최소화하고, 씬 오버뷰잉 모듈(110)이 서브-커널 네트워크 생성기(120)에 정확한 정보를 제공해주는 방향으로 학습을 진행할 수 있다. 이때, 입력된 학습 데이터에 대해 제1 로스가 기절정된 임계치보다 크면 해당 학습 데이터에 대한 빅 뉴럴 네트워크 모델(B-NN Model)(200)의 캐퍼시티는 충분할 수 있지만 스몰 뉴럴 네트워크 모델(S-NN Model)(300)의 캐퍼시티는 충분하지 않다는 정보를 내포할 수 있다.
일 예로, 씬 오버뷰잉 모듈(SOM)(110)에서 출력되는 상태 벡터는 씬 피쳐에 대응되는 씬 정보(scene information)을 반영할 수 있다. 여기서, 씬 정보는 학습 데이터의 전경과 배경의 복잡도, 데이터가 얼마나 뚜렷한지 등의 정보가 반영되어 있을 수 있으나, 본 발명이 이에 한정되지는 않는다. 학습 데이터가 복잡하거나 뚜렷하지 않을수록 하드 샘플(hard sample)이고, 이 경우 더 많은 연산량과 파라미터 수를 요구하는 방향으로 씬 오버뷰잉 모듈(110)의 학습이 진행될 수 있다. 또한, 씬 오버뷰잉 모듈(110)의 성능은 뉴럴 네트워크 모델이 탑재된 엣지 디바이스의 성능이나 오리지널 네트워크의 크기, 목표하는 성능(예: speed, accuracy)에 따라 조절될 수 있다.
또한, 학습 장치(1000)에 의한 서브-커널 네트워크 생성기(120)의 학습에 있어서, 학습 장치(1000)는 제1 로스를 이용한 백프로퍼게이션을 통해 서브-커널 네트워크 생성기(120)로 하여금 연산량, 파라미터, 레이턴시, 정확도, 플롭스 등 중 적어도 하나에 대해 주어진 제약 하에서 제1 로스를 최소화하는 방향으로 학습을 진행할 수 있다. 이때, 서브-커널 네트워크 생성기(120)의 학습은 제약의 differentiability 여부에 따라 강화 학습(reinforcement learning)을 이용한 최적화나 경사 하강 최적화(gradient descent optimization) 등의 방법을 선택할 수 있다.
한편, 학습 장치(1000)가 위와 같이 서브-커널 써칭 모듈(100)을 학습시킬 때, 입력된 학습 데이터에 대해서 제1 로스가 기설정된 임계치보다 클 경우, 즉, 제1 인퍼런스 결과와 제2 인퍼런스 결과의 차이가 기설정된 기준값을 초과할 경우, 해당 학습 데이터는 빅 뉴럴 네트워크 모델(B-NN Model)(200)에서는 하드 샘플이 아니지만 스몰 뉴럴 네트워크 모델(S-NN Model)(300)에서는 하드 샘플일 수 있음을 의미한다. 따라서, 이와 같은 경우에는 학습 장치(1000)가 해당 학습 데이터와 서브-커널 써칭 모듈을 통해 생성된 학습용 스몰 뉴럴 네트워크 모델(S-NN Model)(300) 아키텍쳐의 정보를 서버로 전송하여, 서버로 하여금 해당 학습 데이터를 해당 학습용 스몰 뉴럴 네트워크 모델 (S-NN Model)(300)에서의 하드 샘플이라고 태그(tag)하고 학습 데이터베이스에 추가하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다. 여기서, 기설정된 임계치나 기설정된 기준값은 같거나 다를 수 있다.
그러나, 이와는 달리, 별도의 컴퓨팅 장치를 사용하여 모델 크기에 따른 하드 샘플 써치(hard sample search)가 필요할 때 서브-커널 써칭 모듈(100)이 하드 샘플 써쳐(hard sample searcher)로서 기능하도록 할 수 있다. 구체적으로, 제1 로스가 기설정된 임계치보다 클 경우, 빅 뉴럴 네트워크 모델(B-NN Model)(200)의 연산량에서 풀 수 있는 문제를 스몰 뉴럴 네트워크 모델(S-NN Model)(300)의 연산량으로 풀기 어렵다는 것을 암시하므로, 제1 로스가 기설정된 임계치보다 클 경우, 학습 데이터와 서브-커널 써칭 모듈(100)을 통해 생성된 해당 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300)의 아키텍쳐의 정보를 서버로 보내, 해당 학습 데이터는 특정 구조, 특정 연산량, 특정 파라미터 수 등을 가진 해당 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300)에의 하드 샘플이라는 것을 태그하고 학습 데이터베이스에 추가할 수 있다. 따라서, 학습 데이터베이스에 저장된 하드 샘플은 추후 비슷한 연산량과 파라미터 수를 지닌 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300)의 학습에 사용될 수 있다. 여기서, 본 발명의 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300)은 스몰 뉴럴 네트워크 모델(S-NN Model)(300)로 사용 가능한 모든 임의의 구조를 지칭할 수 있으므로, 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300)로 지칭되는 스몰 뉴럴 네트워크 모델(S-NN Model)(300)는 서로 다를 수 있다.
한편, 위와 같이 서브-커널 써칭 모듈(100)을 학습시킨 상태에서, 최적화 장치가 학습된 서브-커널 써칭 모듈(100)을 이용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법을 도 7과 도 8을 이용하여 설명하면 다음과 같다.
우선, 도 7은 본 발명의 일 실시예에 따라 서브-커널 써칭 모듈(100)을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 최적화 장치(2000)를 개략적으로 도시한 것이다.
도 7을 참조하면, 최적화 장치(2000)는 서브-커널 써칭 모듈(100)을 이용하여 온-디바이스 뉴럴 네트워크 모델인 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 최적화하기 위한 인스트럭션들을 저장하는 메모리(2001)와 메모리(2001)에 저장된 인스트럭션들에 대응하여 서브-커널 써칭 모듈(100)을 이용하여 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 최적화하기 위한 동작을 수행하는 프로세서(2002)를 포함할 수 있다. 여기서, 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300)을 생성하여 테스트하기 위한 기준값이 되는 빅 뉴럴 네트워크 모델(B-NN Model)(200)은 도 7 및 도 8에 기재하지 않았다. 그러나, 상기에서 서브-커널 써칭 모듈(100)을 학습시키는 과정에서 제공된 빅 뉴럴 네트워크 모델(B-NN Model)(200)에 대한 설명은 도 7 및 도 8에서도 여전히 적용된다.
구체적으로, 최적화 장치(2000)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 컴퓨팅 장치는 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
그러나, 컴퓨팅 장치가 본 발명을 실시하기 위한 미디엄, 프로세서 및 메모리가 통합된 형태인 integrated 프로세서를 포함하는 경우를 배제하는 것은 아니다.
한편, 최적화 장치(2000)는 각각의 엣지 디바이스에 입력되는 데이터에 따라 엣지 디바이스 각각에 대응되는 서브-커널 써칭 모듈(100)을 이용하여 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 최적화할 수 있도록 하기 위한 것으로, 뉴럴 네트워크 모델을 적용하는 엣지 디바이스에 탑재될 수 있다.
이와 같이 구성된 최적화 장치(2000)를 이용하여 본 발명의 일 실시예에 따른 서브-커널 써칭 모듈(100)을 이용하여 뉴럴 네트워크 모델을 최적화하기 위한 방법을 설명하면 다음과 같다. 이하의 설명에서는 도 4 내지 도 6을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
우선, 최적화 장치(2000)는 테스트 데이터를 획득하면, 테스트 데이터를 서브-커널 써칭 모듈(100)로 입력하여, 서브-커널 써칭 모듈(100)로 하여금, (i) 테스트 데이터에 대응하는 테스트용 제약 - 여기서 테스트용 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 테스트 데이터에 대응하는 테스트용 상태 벡터 - 테스트용 상태 벡터는 적어도 테스트 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 주어진 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 테스트 데이터에 대하여 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 테스트용 특정 서브-커널 - 특정 테스트용 서브-커널은 빅 뉴럴 네트워크 모델의 최대 캐퍼시티에 대응되는 테스트용 슈퍼 커널의 서브셋으로, 테스트용 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
다음, 최적화 장치(2000)는 (i) 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보를 참조하여 빅 뉴럴 네트워크 모델(200)을 최적화하여, 빅 뉴럴 네트워크 모델(200)로부터 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델(300)을 생성하여, (ii) 테스트용 특정 스몰 뉴럴 네트워크 모델(300)로 하여금 테스트 데이터에 대한 제3 인퍼런스 결과(third inference result)를 생성하는 프로세스를 수행하거나 수행하도록 지원할 수 있다. 여기서, 서브-커널 써칭 모듈(100)을 학습시키는 과정에서 획득한 학습용 특정 서브-커널에 대한 학습용 아키텍쳐 정보와 서브-커널 써칭 모듈(100)을 테스트하는 과정에서 획득한 테스트용 특정 서브-커널에 대한 테스트용 아키텍쳐 정보는 학습 데이터와 테스트 데이터의 난이도 차이로 인해서 서로 동일하지 않을 수 있다. 결과적으로, 엣지 디바이스의 고정된 캐퍼시티로 인해 빅 뉴럴 네트워크 모델(200)의 캐퍼시티는 서브-커널 써칭 모듈(100)의 학습 및 테스트 과정에서 변하지 않을 수 있는 반면, 학습용 스몰 뉴럴 네트워크 모델(300)과 테스트용 스몰 뉴럴 네트워크 모델(300)은 서로 다를 수 있다.
여기서, 최적화 장치(2000)는 서브-커널 써칭 모듈(100)로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)(110)을 통해 테스트 데이터에 대응하는 테스트용 씬 피쳐들을 생성하도록 하며, 테스트용 씬 피쳐들에 대응되는 테스트용 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(120)를 통해 주어진 테스트 제약에서 주어진 테스트용 상태 벡터를 가진 테스트 데이터에 대하여 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
이어서, 최적화 장치(2000)는 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보에 따라 빅 뉴럴 네트워크 모델의 테스트용 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 빅 뉴럴 네트워크 모델을 최적화함으로써 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델(300)을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원할 수 있다.
구체적으로, 도 8은 본 발명의 일 실시예에 따라 입력과 출력의 예시를 통해 서브-커널 써칭 모듈(100)을 이용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법을 개략적으로 도시하고 있다.
도 8을 참조하면, 최적화 장치(2000)는 주어진 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보를 참조하여 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 최적화함으로써 테스트용 특정 서브-커널의 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)을 생성하고, 생성된 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)로 하여금 테스트 데이터에 대한 제3 인퍼런스(third inference)를 수행하도록 할 수 있다.
이때, 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)은 빅 뉴럴 네트워크 모델(B-NN Model)(200)의 서브셋이기 때문에 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)의 성능은 언제나 빅 뉴럴 네트워크 모델(B-NN Model)(200)의 성능보다 작거나 같다. 또한, 테스트 데이터의 난이도가 증가할수록 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)의 테스트용 특정 서브-커널(sub-kernel)에 대하여 요구되는 연산량이 커질 수 있다.
일 예로, 테스트 데이터가 이지 샘플(easy sample)일 경우에는 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 최적화하여 웨이트 크기가 작으며 연산 횟수가 적은 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1)을 생성함으로써 빅 뉴럴 네트워크 모델(B-NN model)(200)에 비하여 적은 연산량, 일 예로, 빅 뉴럴 네트워크 모델(B-NN Model)(200) 대비 12%의 연산량으로 테스트 데이터에 대한 제3 인퍼런스를 수행할 수 있다. 반면에, 테스트 데이터가 하드 샘플(hard sample)일 경우에는 빅 뉴럴 네트워크 모델(B-NN Model)(200)을 최적화하여 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1)에 비하여 웨이트 크기가 크며 연산 횟수가 많으나, 빅 뉴럴 네트워크 모델(B-NN model)(200)에 비하여 웨이트의 크기가 작으며 연산 횟수가 적은 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_2)를 생성함으로써 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1)에 비하여 연산량이 많으나 빅 뉴럴 네트워크 모델(B-NN Model)(200)에 비하여 적은 연산량, 일 예로, 빅 뉴럴 네트워크 모델 (B-NN Model) 대비 88%의 연산량으로 테스트 데이터에 대한 제3 인퍼런스를 수행할 수 있다.
즉, 본 발명에 따라 빅 뉴럴 네트워크 모델(B-NN Model)을 최적화한 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)은 샘플의 난이도에 따라 최적화된 연산량을 가지게 되며, 서버 등의 도움없이 엣지 디바이스 상에서 뉴럴 네트워크 모델의 최적화를 수행할 수 있게 된다.
또한, 최적화 장치(2000)는 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN model)(300_1, 300_2)에 의해 테스트 데이터를 인퍼런스한 제3 인퍼런스 결과와 빅 뉴럴 네트워크 모델(B-NN Model)(200)에 의해 테스트 데이터를 인퍼런스한 제4 인퍼런스 결과(fourth inference result)를 참조하여 제3 인퍼런스 결과와 제4 인퍼런스 결과의 차이가 기설정된 기준값을 초과할 경우, 테스트 데이터와 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)의 아키텍쳐 정보를 서버로 전송하여, 서버로 하여금 테스트 데이터를 테스트용 특정 스몰 뉴럴 네트워크 모델(S-NN Model)(300_1, 300_2)에서의 하드 샘플로 태그하고 학습 데이터베이스에 추가하도록 할 수 있다.
이때, 서브-커널 써칭 모듈(100)의 학습은 엣지 디바이스에 지속적으로 입력되는 데이터들을 통해 엣지 디바이스 상에서 지속적으로 이뤄질 수 있으며, 엣지 디바이스 상에서 서브-커널 써칭 모듈(100)의 학습이 일정 이상 진행되면 스몰 뉴럴 네트워크 모델(S-NN Model)(300)을 통해 테스트 및 인퍼런스를 수행할 수 있다. 서브-커널 써칭 모듈(100)의 오버헤드(overhead)에 따라 매 프레임마다 서브-커널 써칭 모듈(100)을 실행해 출력된 새로운 스몰 뉴럴 네트워크 모델(S-NN Model)(300)의 아키텍쳐 정보를 사용할지 일정 프레임마다 서브-커널 써칭 모듈(100)을 실행하고 해당 구간에서 최종적으로 출력된 아키텍쳐 정보를 사용할지 선택할 수 있다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (24)

  1. 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법에 있어서,
    (a) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 학습 장치가, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 학습 데이터에 대응하는 적어도 하나의 제약(constraint) - 상기 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 학습 데이터에 대응하는 상태 벡터(state vector) - 상기 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 특정 서브-커널 - 상기 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계;
    (b) 상기 학습 장치가, (i) 상기 특정 서브-커널의 상기 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii) 상기 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계; 및
    (c) 상기 학습 장치가, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 단계;
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 학습 장치는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 학습 데이터에 대응하는 씬 피쳐들(scene features)을 생성하도록 하며, 상기 씬 피쳐들에 대응되는 상기 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 상기 최소한의 커널 크기와 상기 최소한의 채널 수로 이루어진 상기 특정 서브-커널의 상기 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 학습 장치는, (i) 주어진 상기 제약에서 상기 제1 로스를 통한 백프로퍼게이션(back-propagation)을 통해 상기 제1 로스를 최소화하도록 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 학습시키고, (ii) 상기 상태 벡터와 이에 대응되는 그라운드 트루스(ground truth)를 참조하여 하나 이상의 제2 로스를 생성하고, 상기 제2 로스를 최소화하도록 상기 씬 오버뷰잉 모듈을 추가로 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있으며,
    상기 학습 장치는 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 각각 학습시키거나 동시에 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 학습 장치는 상기 씬 오버뷰잉 모듈의 상기 컨벌루셔널 뉴럴 네트워크를 통해 상기 학습 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 학습 데이터에 대응되는 상기 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 (b) 단계에서,
    상기 학습 장치는, 상기 특정 서브-커널의 상기 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 상기 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 학습 장치는, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과의 차이가 기설정된 기준값을 초과할 경우, 상기 학습 데이터와 상기 특정 스몰 뉴럴 네트워크 모델의 상기 아키텍쳐 정보를 서버로 전송하여, 상기 서버로 하여금 상기 학습 데이터를 상기 특정 스몰 뉴럴 네트워크 모델에서의 하드 샘플(hard sample)로 태그(tag)하고 학습 데이터베이스에 추가하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 방법.
  8. 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 방법에 있어서,
    (a) 학습 장치에 의해, (i) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i-1) 상기 학습 데이터에 대응하는 학습용 제약(constraint) - 상기 학습용 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (i-2) 상기 학습 데이터에 대응하는 학습용 상태 벡터(state vector) - 상기 학습용 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (i-3) 상기 학습용 제약에서 상기 학습용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 학습용 특정 서브-커널 - 상기 학습용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 학습용 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스, (ii) (ii-1) 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 가지는 학습용 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii-2) 상기 학습용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스, 및 (iii) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스가 수행된 상태에서, 최적화 장치가, 테스트 데이터를 획득하면, 상기 테스트 데이터를 상기 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 테스트 데이터에 대응하는 테스트용 제약(constraint) - 상기 테스트용 제약은 적어도 연산량, 파라미터, 레이턴시, 정확도, 및 플롭스 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 테스트 데이터에 대응하는 테스트용 상태 벡터 - 상기 테스트용 상태 벡터는 적어도 상기 테스트 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 테스트 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 테스트용 특정 서브-커널 - 상기 테스트용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 상기 슈퍼 커널의 서브셋으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계; 및
    (b) 상기 최적화 장치가, (i) 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하여, (ii) 상기 테스트용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 테스트 데이터에 대한 제3 인퍼런스 결과(third inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 단계;
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 (a) 단계에서,
    상기 최적화 장치는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 테스트 데이터에 대응하는 테스트용 씬 피쳐들(scene features)을 생성하도록 하며, 상기 테스트용 씬 피쳐들에 대응되는 상기 테스트용 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 최적화 장치는 상기 씬 오버뷰잉 모듈의 상기 컨버루션 뉴럴 네트워크를 통해 상기 테스트 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 테스트 데이터에 대응되는 상기 테스트용 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  12. 제8항에 있어서,
    상기 (b) 단계에서,
    상기 최적화 장치는, 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 상기 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 방법.
  13. 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 학습 장치로서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서;를 포함하되,
    상기 프로세서가, (I) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 학습 데이터에 대응하는 적어도 하나의 제약(constraint) - 상기 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 학습 데이터에 대응하는 상태 벡터(state vector) - 상기 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 특정 서브-커널 - 상기 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세스, (II) (i) 상기 특정 서브-커널의 상기 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii) 상기 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세서, 및 (III) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 학습 장치.
  14. 제13항에 있어서,
    상기 (I) 프로세스에서,
    상기 프로세서는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 학습 데이터에 대응하는 씬 피쳐들(scene features)을 생성하도록 하며, 상기 씬 피쳐들에 대응되는 상기 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 제약에서 상기 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 상기 최소한의 커널 크기와 상기 최소한의 채널 수로 이루어진 상기 특정 서브-커널의 상기 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치.
  15. 제14항에 있어서,
    상기 프로세서는, (i) 주어진 상기 제약에서 상기 제1 로스를 통한 백프로퍼게이션(back-propagation)을 통해 상기 제1 로스를 최소화하도록 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 학습시키고, (ii) 상기 상태 벡터와 이에 대응되는 그라운드 트루스(ground truth)를 참조하여 하나 이상의 제2 로스를 생성하고, 상기 제2 로스를 최소화하도록 상기 씬 오버뷰잉 모듈을 추가로 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치.
  16. 제14항에 있어서,
    상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있으며,
    상기 프로세서는 상기 씬 오버뷰잉 모듈과 상기 서브-커널 네트워크 생성기를 각각 학습시키거나 동시에 학습시키는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치.
  17. 제16항에 있어서,
    상기 프로세서는 상기 씬 오버뷰잉 모듈의 상기 컨벌루셔널 뉴럴 네트워크를 통해 상기 학습 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 학습 데이터에 대응되는 상기 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치.
  18. 제13항에 있어서,
    상기 (II) 프로세스에서,
    상기 프로세서는, 상기 특정 서브-커널의 상기 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 특정 서브-커널의 상기 아키텍쳐 정보를 가지는 상기 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 학습 장치.
  19. 제13항에 있어서,
    상기 프로세서는, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여, 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과의 차이가 기설정된 기준값을 초과할 경우, 상기 학습 데이터와 상기 특정 스몰 뉴럴 네트워크 모델의 상기 아키텍쳐 정보를 서버로 전송하여, 상기 서버로 하여금 상기 학습 데이터를 상기 특정 스몰 뉴럴 네트워크 모델에서의 하드 샘플(hard sample)로 태그(tag)하고 학습 데이터베이스에 추가하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 학습 장치.
  20. 서브-커널 써칭 모듈(Sub-Kernel Searching Module, SSM)을 이용하여 온-디바이스 뉴럴 네트워크 모델(on-device neural network model)을 최적화하는 최적화 장치로서,
    인스트럭션들을 저장하는 적어도 하나의 메모리; 및
    상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서;를 포함하되,
    (I) 학습 장치에 의해, (i) 뉴럴 네트워크 모델이 탑재되는 엣지 디바이스가 허용하는 최대의 컴퓨팅 파워를 이용하여 목적하는 태스크(task)를 수행할 수 있는 최대의 캐퍼시티(capacity)를 가지는 빅 뉴럴 네트워크 모델(Big Neural Network Model, B-NN Model)을 입력된 입력 데이터에 대한 제1 인퍼런스 결과(first inference result)를 생성하도록 학습시킨 상태에서, 학습 데이터가 획득되면, 상기 학습 데이터를 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i-1) 상기 학습 데이터에 대응하는 학습용 제약(constraint) - 상기 학습용 제약은 적어도 연산량(computational load), 파라미터(parameters), 레이턴시(latency), 정확도(accuracy), 및 플롭스(flops) 중 하나에 적용된 제약을 포함함 - 을 확인하고, (i-2) 상기 학습 데이터에 대응하는 학습용 상태 벡터(state vector) - 상기 학습용 상태 벡터는 적어도 상기 학습 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (i-3) 상기 학습용 제약에서 상기 학습용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 학습용 특정 서브-커널 - 상기 학습용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 슈퍼 커널(super kernel)의 서브셋(subset)으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 학습용 아키텍쳐 정보(architecture information)를 생성하도록 하는 프로세스, (ii) (ii-1) 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 학습용 특정 서브-커널의 상기 학습용 아키텍쳐 정보를 가지는 학습용 특정 스몰 뉴럴 네트워크 모델(Small Neural Network Model, S-NN Model)을 생성하고, (ii-2) 상기 학습용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 학습 데이터에 대한 제2 인퍼런스 결과(second inference result)를 생성하도록 하는 프로세스, 및 (iii) 상기 제1 인퍼런스 결과와 상기 제2 인퍼런스 결과를 참조하여 하나 이상의 제1 로스를 생성하고, 상기 제1 로스를 이용하여 상기 서브-커널 써칭 모듈을 학습시키는 프로세스가 수행된 상태에서, 상기 프로세서가, 테스트 데이터를 획득하면, 상기 테스트 데이터를 상기 서브-커널 써칭 모듈로 입력하여, 상기 서브-커널 써칭 모듈로 하여금, (i) 상기 테스트 데이터에 대응하는 테스트용 제약(constraint) - 상기 테스트용 제약은 적어도 연산량, 파라미터, 레이턴시, 정확도, 및 플롭스 중 하나에 적용된 제약을 포함함 - 을 확인하고, (ii) 상기 테스트 데이터에 대응하는 테스트용 상태 벡터 - 상기 테스트용 상태 벡터는 적어도 상기 테스트 데이터의 복잡도, 선명도 중 하나에 대한 정보를 포함함 - 를 생성하여, (iii) 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 테스트 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 테스트용 특정 서브-커널 - 상기 테스트용 특정 서브-커널은 상기 빅 뉴럴 네트워크 모델의 상기 최대 캐퍼시티에 대응하는 상기 슈퍼 커널의 서브셋으로, 상기 슈퍼 커널보다 작거나 같은 커널 크기와 적거나 같은 채널 수로 이루어져 있음 - 의 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세스, 및 (II) 상기 프로세서가, (i) 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 참조하여 상기 빅 뉴럴 네트워크 모델을 최적화하여, 상기 빅 뉴럴 네트워크 모델로부터 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하여, (ii) 상기 테스트용 특정 스몰 뉴럴 네트워크 모델로 하여금 상기 테스트 데이터에 대한 제3 인퍼런스 결과(third inference result)를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 프로세스를 수행하는 최적화 장치.
  21. 제20항에 있어서,
    상기 (I) 프로세스에서,
    상기 프로세서는, 상기 서브-커널 써칭 모듈로 하여금, (i) 씬 오버뷰잉 모듈(Scene Overviewing Module, SSM)을 통해 상기 테스트 데이터에 대응하는 테스트용 씬 피쳐들(scene features)을 생성하도록 하며, 상기 테스트용 씬 피쳐들에 대응되는 상기 테스트용 상태 벡터를 생성하도록 하고, (ii) 서브-커널 네트워크 생성기(Sub-kernel Network Generator, SNG)를 통해 상기 테스트용 제약에서 상기 테스트용 상태 벡터를 가진 상기 학습 데이터에 대하여 상기 목적하는 태스크를 수행할 수 있는 최소한의 커널 크기와 최소한의 채널 수로 이루어진 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 최적화 장치.
  22. 제21항에 있어서,
    상기 씬 오버뷰잉 모듈은 컨벌루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN)로 구성되고, 상기 서브-커널 네트워크 생성기는 리커런트 뉴럴 네트워크(Recurrent Neural Network, RNN)로 구성되어 있는 것을 특징으로 하는 최적화 장치.
  23. 제22항에 있어서,
    상기 프로세서는 상기 씬 오버뷰잉 모듈의 상기 컨버루션 뉴럴 네트워크를 통해 상기 테스트 데이터에 대해 적어도 하나의 컨벌루션(convolution) 연산, 적어도 하나의 풀링(pooling) 연산, 및 적어도 하나의 FC(Fully-Connected) 연산을 적용하여 상기 테스트 데이터에 대응되는 상기 테스트용 씬 피쳐들을 생성하도록 하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 최적화 장치.
  24. 제20항에 있어서,
    상기 (II) 프로세스에서,
    상기 프로세서는, 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보에 따라 상기 빅 뉴럴 네트워크 모델의 상기 슈퍼 커널의 커널 높이, 커널 너비, 및 채널 수 중 적어도 하나를 조정하여 상기 빅 뉴럴 네트워크 모델을 최적화함으로써 상기 테스트용 특정 서브-커널의 상기 테스트용 아키텍쳐 정보를 가지는 상기 테스트용 특정 스몰 뉴럴 네트워크 모델을 생성하는 프로세스를 수행하거나 수행하도록 지원하는 것을 특징으로 하는 최적화 장치.

KR1020227018470A 2020-05-13 2021-01-21 서브-커널 써칭 모듈을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 장치 KR20220088497A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063024025P 2020-05-13 2020-05-13
US63/024,025 2020-05-13
US17/135,301 2020-12-28
US17/135,301 US10970633B1 (en) 2020-05-13 2020-12-28 Method for optimizing on-device neural network model by using sub-kernel searching module and device using the same
PCT/KR2021/000858 WO2021230463A1 (en) 2020-05-13 2021-01-21 Method for optimizing on-device neural network model by using sub-kernel searching module and device using the same

Publications (1)

Publication Number Publication Date
KR20220088497A true KR20220088497A (ko) 2022-06-27

Family

ID=75275501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227018470A KR20220088497A (ko) 2020-05-13 2021-01-21 서브-커널 써칭 모듈을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 장치

Country Status (6)

Country Link
US (1) US10970633B1 (ko)
EP (1) EP3944154A1 (ko)
JP (1) JP7425216B2 (ko)
KR (1) KR20220088497A (ko)
CN (1) CN115298671A (ko)
WO (1) WO2021230463A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112132113A (zh) * 2020-10-20 2020-12-25 北京百度网讯科技有限公司 车辆再识别的方法、装置、训练方法以及电子设备
KR102567024B1 (ko) * 2022-12-26 2023-08-16 한국단자공업 주식회사 임베디드 기기 내 센서데이터의 온-디바이스 학습을 위한 신경망 구조 탐색방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1393196A4 (en) * 2001-05-07 2007-02-28 Health Discovery Corp CORES AND METHODS FOR SELECTING CORES FOR USE IN TEACHING MACHINES
US7599897B2 (en) * 2006-05-05 2009-10-06 Rockwell Automation Technologies, Inc. Training a support vector machine with process constraints
EP2144449A1 (en) * 2008-07-07 2010-01-13 BRITISH TELECOMMUNICATIONS public limited company Video quality measurement
US10318882B2 (en) * 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
WO2018156942A1 (en) 2017-02-23 2018-08-30 Google Llc Optimizing neural network architectures
KR102139740B1 (ko) * 2017-06-09 2020-07-31 한국과학기술원 전자 장치 및 학습 모델 최적화 방법
US11106975B2 (en) * 2017-10-20 2021-08-31 Asapp, Inc. Fast neural network implementations by increasing parallelism of cell computations
CN110598840B (zh) 2018-06-13 2023-04-18 富士通株式会社 知识迁移方法、信息处理设备以及存储介质
US20200021815A1 (en) * 2018-07-10 2020-01-16 Fastvdo Llc Method and apparatus for applying deep learning techniques in video coding, restoration and video quality analysis (vqa)
US20200082247A1 (en) 2018-09-07 2020-03-12 Kneron (Taiwan) Co., Ltd. Automatically architecture searching framework for convolutional neural network in reconfigurable hardware design
CN110889487A (zh) 2018-09-10 2020-03-17 富士通株式会社 神经网络架构搜索装置和方法及计算机可读记录介质
US20200104715A1 (en) * 2018-09-28 2020-04-02 Xilinx, Inc. Training of neural networks by including implementation cost as an objective
US11604960B2 (en) * 2019-03-18 2023-03-14 Microsoft Technology Licensing, Llc Differential bit width neural architecture search
US11630990B2 (en) * 2019-03-19 2023-04-18 Cisco Technology, Inc. Systems and methods for auto machine learning and neural architecture search
CN110334689B (zh) * 2019-07-16 2022-02-15 北京百度网讯科技有限公司 视频分类方法和装置

Also Published As

Publication number Publication date
JP7425216B2 (ja) 2024-01-30
JP2023514173A (ja) 2023-04-05
CN115298671A (zh) 2022-11-04
US10970633B1 (en) 2021-04-06
WO2021230463A1 (en) 2021-11-18
EP3944154A1 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
KR102296507B1 (ko) 트래킹 네트워크를 포함한 cnn을 사용하여 객체를 트래킹하는 방법 및 이를 이용한 장치
KR102373448B1 (ko) 사람의 주행 데이터를 트레이닝 데이터로서 사용하여 강화 학습을 지원함으로써 맞춤형 경로 플래닝을 수행하는 학습 방법 및 학습 장치
KR102309711B1 (ko) 유용한 학습 데이터를 취사 선별하기 위한 cnn 기반 학습 방법 및 학습 장치 그리고 이를 이용한 테스트 방법 및 테스트 장치
US11113574B1 (en) Methods for performing self-supervised learning of deep-learning based detection network by using deep Q-network and devices using the same
KR102280414B1 (ko) 고 정밀도로 이미지를 분석하기 위한 딥 러닝 네트워크를 사용하기 위해 트레이닝 이미지를 오토 라벨링하는 오토 라벨링 장치의 하이퍼파라미터를 최적화하는 방법 및 이를 이용한 최적화 장치
CN111507150B (zh) 利用基于深度神经网络的多重图像块组合识别人脸的方法
KR102337367B1 (ko) 원거리 검출 또는 군사 목적을 위해, 이미지 컨캐터네이션을 이용한, cnn 기반의 하드웨어 최적화가 가능한 객체 검출기를 학습하는 방법 및 학습 장치, 이를 이용한 테스팅 방법 및 테스팅 장치
US10872297B2 (en) Learning method and learning device for generating training data from virtual data on virtual world by using generative adversarial network, to thereby reduce annotation cost required in training processes of neural network for autonomous driving, and a testing method and a testing device using the same
US10496899B1 (en) Learning method and learning device for adjusting parameters of CNN in which residual networks are provided for meta learning, and testing method and testing device using the same
KR102349933B1 (ko) 스마트폰, 드론, 선박 혹은 군사적 목적에 이용하기 위한, 입력 데이터를 분석하는 뉴럴 네트워크를 온디바이스 연속 학습하는 방법 및 장치, 그리고, 이에 의해 학습된 뉴럴 네트워크를 테스트하는 방법 및 장치
KR102320995B1 (ko) 객체의 스케일에 따라 모드 전환이 가능한 cnn 기반의 감시용 객체 검출기의 학습 방법 및 학습 장치, 이를 이용한 테스트 방법 및 테스트 장치
JP2020119501A (ja) エッジロスを利用して歩行者イベント、自動車イベント、フォーリングイベント、フォールンイベントを含むイベントを検出するにおいて利用されるセグメンテーション性能向上のための学習方法及び学習装置、並びにそれを利用したテスト方法及びテスト装置
KR20220088497A (ko) 서브-커널 써칭 모듈을 사용하여 온-디바이스 뉴럴 네트워크 모델을 최적화하는 방법 및 장치
KR102301631B1 (ko) 협업 주행을 수행하는 자동차들로부터 획득된 주행 이미지들을 통합하는 방법 및 이를 이용한 주행 이미지 통합 장치
CN111476082B (zh) 在线批次归一化、在线学习及持续学习的方法和装置
JP6892157B2 (ja) V2x情報融合技術によって取得された、各物体に対する深さ予測情報及び各物体に対するクラス情報を利用して3d空間を再構築することによりhdマップをアップデートする学習方法及び学習装置、そしてこれを利用したテスティング方法及びテスティング装置
CN112148008A (zh) 一种基于深度强化学习的实时无人机路径预测方法
KR20220041943A (ko) 연속 학습 서버를 이용하여 클라이언트의 이미지를 분류하는 클래시파이어를 연속 학습하는 방법 및 이를 이용한 연속 학습 서버
CN113283426A (zh) 基于多目标神经网络搜索的嵌入式目标检测模型生成方法
KR20210155824A (ko) 적응적 하이퍼파라미터 세트를 이용한 멀티스테이지 학습을 통해 자율 주행 자동차의 머신 러닝 네트워크를 온디바이스 학습시키는 방법 및 이를 이용한 온디바이스 학습 장치
JP2020119531A (ja) 自律走行自動車のレベル4を満たすために必要なhdマップとのコラボレーションを支援するエンベディングロス及びソフトマックスロスを利用して少なくとも一つの車線を有するイメージをセグメンテーションする学習方法及び学習装置、並びにそれを利用したテスト方法及びテスト装置
KR102300910B1 (ko) 딥러닝 기반 장치의 학습에 사용되는 가상 세계 시뮬레이터의 물리 엔진을 캘리브레이션하는 방법 및 장치, 그리고 이를 위한 실제 상태 네트워크를 학습하는 방법 및 이를 이용한 학습 장치
CN116448134B (zh) 基于风险场与不确定分析的车辆路径规划方法及装置
KR20220032861A (ko) 하드웨어에서의 성능을 고려한 뉴럴 아키텍처 서치 방법 빛 장치
US10635941B1 (en) Method and device for on-device continual learning of neural network which analyzes input data by optimized sampling of training images, and method and device for testing the neural network for smartphones, drones, vessels, or military purpose