KR20210156538A - 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치 - Google Patents

뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치 Download PDF

Info

Publication number
KR20210156538A
KR20210156538A KR1020200074234A KR20200074234A KR20210156538A KR 20210156538 A KR20210156538 A KR 20210156538A KR 1020200074234 A KR1020200074234 A KR 1020200074234A KR 20200074234 A KR20200074234 A KR 20200074234A KR 20210156538 A KR20210156538 A KR 20210156538A
Authority
KR
South Korea
Prior art keywords
feature
data
neural network
layer
determining
Prior art date
Application number
KR1020200074234A
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 KR1020200074234A priority Critical patent/KR20210156538A/ko
Priority to US17/111,870 priority patent/US20210397946A1/en
Publication of KR20210156538A publication Critical patent/KR20210156538A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks

Landscapes

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

Abstract

뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치가 개시된다. 데이터 처리 방법은 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하는 단계, 상기 결정된 개수에 기초하여 양자화 파라미터를 결정하는 단계, 결정된 양자화 파라미터에 기초하여 특징 데이터를 양자화하는 단계, 및 양자화된 특징 데이터를 제1 레이어에 연결된 뉴럴 네트워크의 제2 레이어에 입력시키는 단계를 포함한다.

Description

뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치{METHOD AND APPRATUS FOR PROCESSING DATA USING NEURAL NETWORK}
아래의 실시예들은 뉴럴 네트워크를 이용한 데이터 처리 기술에 관한 것이다.
최근, 분류기 등의 인식 모델을 통해 사용자의 얼굴이나 지문을 통해 사용자 인증을 수행하는 기술에 대한 연구가 활발히 이루어지고 있다. 인식 모델은 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링한 뉴럴 네트워크(neural network)에 기초한다. 뉴럴 네트워크는 입력된 정보의 입력 패턴에 대응하는 인식 결과를 출력하는데 이용될 수 있다. 뉴럴 네트워크는 학습을 통해 입력 패턴과 출력 패턴 간의 사상(mapping)을 생성할 수 있고, 학습 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력 값을 생성할 수 있는 능력을 가지고 있다.
일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 방법은, 상기 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하는 단계; 상기 결정된 개수에 기초하여 양자화 파라미터를 결정하는 단계; 상기 결정된 양자화 파라미터에 기초하여 상기 특징 데이터를 양자화하는 단계; 및 상기 양자화된 특징 데이터를 상기 제1 레이어에 연결된 상기 뉴럴 네트워크의 제2 레이어에 입력시키는 단계를 포함할 수 있다.
상기 양자화 파라미터를 결정하는 단계는, 상기 결정된 개수에 기초하여, 후보 특징 분포들 중에서 상기 특징 데이터에 대응하는 타겟 특징 분포를 선택하는 단계; 및 상기 타겟 특징 분포를 기초로 상기 양자화 파라미터를 결정하는 단계를 포함할 수 있다.
상기 타겟 특징 분포를 선택하는 단계는, 상기 특징 데이터에 포함된 특징 값의 전체 개수와 상기 결정된 개수 간의 비율을 결정하는 단계; 및 상기 결정된 비율에 기초하여 상기 후보 특징 분포들 중에서 상기 타겟 특징 분포를 선택하는 단계를 포함할 수 있다.
상기 타겟 특징 분포를 선택하는 단계는, 서로 다른 비율 구간에 대응하는 상기 후보 특징 분포들 중에서 상기 결정된 비율이 속하는 비율 구간에 대응하는 타겟 특징 분포를 선택하는 단계를 포함할 수 있다.
상기 양자화 파라미터를 결정하는 단계는, 상기 타겟 특징 분포의 형태에 따라 양자화 수행과 관련된 하나 이상의 양자화 파라미터를 결정하는 단계를 포함할 수 있다.
상기 양자화된 특징 데이터에 기초하여 결정된 상기 뉴럴 네트워크의 출력 데이터가 조건을 만족시키는지 여부를 판단하는 단계; 및 상기 출력 데이터가 상기 조건을 만족시키지 않는 경우, 상기 양자화 파라미터를 조정하는 단계를 더 포함할 수 있다.
상기 양자화 파라미터는, 양자화 구간 및 양자화 계수 중 적어도 하나를 포함할 수 있다.
상기 제1 레이어는, 상기 뉴럴 네트워크의 입력 레이어 또는 히든 레이어에 해당하고, 상기 제2 레이어는, 상기 제1 레이어에 연결된 히든 레이어 또는 출력 레이어에 해당할 수 있다.
일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 장치는, 상기 뉴럴 네트워크의 레이어에서 출력되는 특징 데이터를 양자화하는 프로세서를 포함하고, 상기 프로세서는, 상기 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하고, 상기 결정된 개수에 기초하여 양자화 파라미터를 결정하고, 상기 결정된 양자화 파라미터에 기초하여 상기 특징 데이터를 양자화하고, 상기 양자화된 특징 데이터를 상기 제1 레이어에 연결된 상기 뉴럴 네트워크의 제2 레이어에 입력시킬 수 있다.
일 실시예에 따른 전자 장치는, 영상 데이터를 획득하는 카메라; 컴퓨터에서 읽을 수 있는 명령어를 포함하는 메모리; 및 뉴럴 네트워크를 이용하여 상기 영상 데이터를 처리하는 프로세서를 포함하고, 상기 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는, 상기 영상 데이터가 입력되는 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하고, 상기 결정된 개수에 기초하여 양자화 파라미터를 결정하고, 상기 결정된 양자화 파라미터에 기초하여 상기 특징 데이터를 양자화하고, 상기 양자화된 특징 데이터를 상기 제1 레이어에 연결된 상기 뉴럴 네트워크의 제2 레이어에 입력시킬 수 있다.
도 1은 일 실시예에 따른 데이터 처리 장치와 뉴럴 네트워크를 나타낸 도면이다.
도 2는 일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 방법에서의 양자화 처리 동작을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 양자화 파라미터를 결정하는 동작을 보다 구체적으로 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 방법의 동작을 설명하기 위한 흐름도이다.
도 5 내지 도 7은 일 실시예에 따른 양자화 처리의 일례를 설명하기 위한 도면들이다.
도 8은 일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 장치의 구성을 도시하는 도면이다.
도 9는 일 실시예에 따른 전자 장치의 구성을 도시하는 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 또한, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 달리 명시되지 않는 한 일반적으로 "하나 이상의"를 의미하는 것으로 해석되어야 한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 데이터 처리 장치와 뉴럴 네트워크를 나타낸 도면이다.
도 1을 참조하면, 데이터 처리 장치(100)는 뉴럴 네트워크(neural network, 110)를 이용하여 입력 데이터를 처리하고, 입력 데이터의 처리 결과로서 출력 데이터를 출력하는 장치이다. 예를 들어, 데이터 처리 장치(100)는 뉴럴 네트워크(110)를 이용하여 입력 데이터에 대해 객체 인식을 수행하고, 객체 인식 결과 데이터를 출력하는 장치일 수 있다. 뉴럴 네트워크(110)와 관련된 처리 동작의 적어도 일부는 소프트웨어로 구현되거나, 혹은 뉴럴 프로세서(neural processor)를 포함하는 하드웨어로 구현되거나, 소프트웨어 및 하드웨어의 조합으로 구현될 수 있다. 데이터 처리 장치(100)는 예를 들어 모바일 폰, 데스크 탑, 노트북, 태블릿 PC, 웨어러블 디바이스, 스마트 TV, 지능형 자동차, 보안 시스템, 스마트 홈 시스템, 스마트 가전기기 등에 탑재될 수 있다.
데이터 처리 장치(100)는 뉴럴 네트워크(110)를 이용하여 입력 데이터를 처리할 때, 뉴럴 네트워크(110)가 처리하는 데이터를 낮은 비트 폭(low bit width)으로 경량화(lightening)할 수 있다. 이러한 경량화는 뉴럴 네트워크(110) 내 레이어들(layers) 간에 전달되는 특징 데이터를 양자화하는 과정을 포함할 수 있다. 본 명세서에서 '특징 데이터'는 '특징 맵(feature map)', '액티베이션(activation)', '액티베이션 데이터(activation data)' 또는 '액티베이션 맵(activation map)'으로도 지칭될 수 있다.
뉴럴 네트워크(110)는 복수의 레이어들을 포함할 수 있다. 복수의 레이어들은 입력 레이어(input layer, 122), 적어도 하나의 히든 레이어(hidden layer), 및 출력 레이어 (output layer, 128)를 포함할 수 있다. 제1 레이어(124) 및 제2 레이어(126)는 위 복수의 레이어들 중 적어도 일부일 수 있다. 이하에서는 제2 레이어(126)는 제1 레이어(124)의 다음 레이어이며, 제1 레이어(124)에 의해 데이터가 처리된 이후에 제2 레이어(126)에서 데이터가 처리되는 것으로 가정한다.
뉴럴 네트워크(110)는 딥 러닝(deep learning)에 기반하여 비선형적 관계에 있는 입력과 출력을 서로 매핑함으로써 객체 인식 및 객체 인증 등을 수행할 수 있다. 딥 러닝은 빅 데이터 세트로부터 주어진 문제를 해결하기 위한 기계 학습 기법이다. 딥 러닝은 뉴럴 네트워크(110)를 최적화하는 과정으로, 뉴럴 네트워크(110)의 구조를 나타내는 모델 내지 가중치(weight)를 찾는 과정이다.
뉴럴 네트워크(110)는 딥 뉴럴 네트워크(deep neural network)로서, 예를 들어 컨볼루셔널 뉴럴 네트워크(Convolutional Neural Network; CNN)이나 리커런트 뉴럴 네트워크(Recurrent Neural Network; RNN)일 수 있으나, 데이터 처리 장치(100)가 이용하는 뉴럴 네트워크(110)가 이에 한정되는 것은 아니다. 이하에서는 설명의 편의를 위해 컨볼루셔널 뉴럴 네트워크를 중심으로 설명한다.
컨볼루셔널 뉴럴 네트워크는 영상과 같은 2차원의 데이터를 처리하는데 적합할 수 있다. 컨볼루셔널 뉴럴 네트워크에서는 2차원의 데이터를 처리하기 위해 입력 맵 및 웨이트 커널(weight kernel) 간에 컨볼루션 연산이 수행될 수 있는데, 모바일 단말과 같은 자원이 제한된 환경에서 이러한 컨볼루션 연산의 수행은 많은 자원과 짧지 않은 처리 시간을 요구한다. 일반적으로, 모바일 단말에서 수행되는 얼굴 인식의 경우 제한된 자원 환경에서 동작이 가능해야 하며, 다양한 환경에 강인한 인식 성능을 제공할 것을 요구한다. 이러한 요구를 만족시키기 위해서는 인식 성능의 저하 없이 고속으로 처리하는 문제가 해결되어야 하며, 이를 위해서는 컨볼루셔널 뉴럴 네트워크에 포함된 레이어들 간에 전달되는 특징 데이터를 낮은 비트로 줄이는 변환 과정이 필요하다.
본 명세서에서 설명되는 데이터 처리 장치(100)는 뉴럴 네트워크(110)에 포함된 레이어들 간에 전달되는 특징 데이터에 대해 양자화 처리를 수행하는 것에 의해 뉴럴 네트워크(110) 성능의 큰 저하 없이 뉴럴 네트워크(110)에 의한 데이터 처리를 경량화할 수 있다. 예를 들어, 데이터 처리 장치(100)는 제1 레이어(124)로부터 출력된 특징 데이터에 대해 양자화 처리를 수행(130)하고, 양자화 처리가 수행된 특징 데이터를 제2 레이어(126)에 전달될 수 있다. 이러한 양자화 처리(130)는 뉴럴 네트워크(110)에 포함된 레이어들 사이 중 적어도 일부에 대해 수행될 수 있다. 일 실시예에 따르면, 뉴럴 네트워크(110)에 포함된 레이어들 간에 전달되는 특징 데이터 각각에 대해 양자화 처리(130)가 수행될 수도 있다. 양자화 처리(130)를 통해 낮은 비트의 연산 수행이 가능해지며 계산 효율성과 저장 효율성이 개선될 수 있다. 양자화 처리(130)는 예를 들어 실수(real values)인 특징 데이터를 정규화(normalization)하는 과정 및/또는 특징 데이터(또는 정규화된 특징 데이터)를 이산적인 값으로 맵핑하는 과정을 포함할 수 있다.
데이터 처리 장치(100)는 특징 데이터의 분포 형태를 기반으로 뉴럴 네트워크(110)를 적응적으로 양자화할 수 있다. 데이터 처리 장치(100)는 뉴럴 네트워크(110) 내에서 처리되는 특징 데이터의 분포 형태에 기초하여 특징 데이터를 양자화하는데 있어 필요한 양자화 파라미터를 결정할 수 있다. 데이터 처리 장치(100)는 결정된 양자화 파라미터에 기초하여 특징 데이터를 양자화하는 것에 의해 특징 데이터를 낮은 비트 폭으로 경량화할 수 있다. 데이터 처리 장치(100)는 모바일 장치와 같은 제한된 임베디드 시스템에서 성능의 큰 저하 없이 고속으로 구동 가능하도록, 뉴럴 네트워크(110)의 특징 데이터의 분포를 미리 예측하여 동적(dynamic)으로 특징 데이터를 양자화하는 양자화 파라미터를 추정할 수 있다.
실시예에 따라, 입력 레이어(122)나 컨볼루셔널 뉴럴 네트워크의 첫 번째 컨볼루션 레이어에 입력되는 입력 데이터를 보다 낮은 비트 수로 양자화하는 과정이 수행될 수도 있다. 예를 들어, 입력 데이터가 8 비트인데, 8 비트보다 작은 비트 수로 양자화를 하는게 필요한 경우에는 입력 데이터에 대해 최소-최대 정규화(min-max normalization) 등의 처리가 수행될 수도 있다.
데이터 처리 장치(100)에 의해 수행되는 실시예들은 추가적인 하드웨어 구조의 변경 및 가속기 사용 없이도, 모바일 폰, 스마트 센서 등의 제한된 임베디드 환경에서 처리 속도나 자원 활용을 증대시켜 인식 및 인증 기술을 효과적으로 구현할 수 있게 한다. 또한, 실시예들은 양자화 과정에서 발생되는 양자화 오차에 의한 뉴럴 네트워크(110)의 성능 저하를 줄이면서, 뉴럴 네트워크(110)의 처리 속도를 고속화할 수 있다.
도 2는 일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 방법에서의 양자화 처리 동작을 설명하기 위한 흐름도이다. 양자화 처리 동작은 특징 데이터에 적응적으로 수행될 수 있다.
도 2를 참조하면, 단계(210)에서 데이터 처리 장치는 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 제1 특징 값 이하 값들의 개수를 결정할 수 있다. 일 실시예에서, 뉴럴 네트워크는 컨볼루셔널 뉴럴 네트워크이고, 특징 데이터는, 특징 맵일 수 있다. 제1 레이어는 뉴럴 네트워크의 입력 레이어 또는 히든 레이어일 수 있다. 제1 특징 값은 예를 들어 '0'에 해당하는 특징 값일 수 있으나, 특징 데이터에 따라 제1 특징 값은 변경될 수 있고 제1 특징 값이 가질 수 있는 특정 값에 대해서는 제한이 없다. 일 실시예에서, 데이터 처리 장치는 컨볼루셔널 뉴럴 네트워크의 히든 레이어에서 출력된 특징 데이터에서 '0'에 해당하는 특징 값의 개수나 '0' 이하의 특징 값의 개수를 카운팅(counting)할 수 있다.
단계(220)에서, 데이터 처리 장치는 단계(210)에서 결정된 제1 특징 값의 개수 또는 제1 특징 값 이하 값들의 개수에 기초하여 양자화 처리에 이용될 양자화 파라미터를 결정할 수 있다. 양자화 파라미터는 예들 들어 양자화 구간(quantization interval) 및 양자화 계수 중 하나 이상을 포함할 수 있다. 데이터 처리 장치는 특징 데이터에 포함된 제1 특징 값 또는 제1 특징 값 이하 값들의 개수에 기초하여 특징 데이터의 분포를 예측하고, 예측된 분포를 기초하여 특징 데이터의 양자화 처리에 적절한 양자화 파라미터를 결정할 수 있다. 데이터 처리 장치는 제1 특징 값 또는 제1 특징 값 이하 값들의 개수에 기초하여, 후보 특징 분포들 중에서 특징 데이터에 대응하는 타겟 특징 분포를 선택하고, 선택된 타겟 특징 분포를 기초로 양자화 파라미터를 결정할 수 있다. 이에 대해서는 도 3을 참조하여 보다 자세히 설명한다.
도 3은 일 실시예에 따른 양자화 파라미터를 결정하는 동작을 보다 구체적으로 설명하기 위한 흐름도이다. 도 3을 참조하면, 단계(310)에서 데이터 처리 장치는 특징 데이터에 포함된 특징 값의 전체 개수와 제1 특징 값(또는 제1 특징 값 이하 값들)의 개수 간의 비율을 결정할 수 있다. 데이터 처리 장치는 특징 데이터에서 제1 특징 값(또는 제1 특징 값 이하 값들)이 얼마나 많이 포함되어 있는지 여부를 나타내는 비율을 결정할 수 있다. 해당 비율에 의해 특징 데이터가 가지는 분포 특징이 추정될 수 있다.
단계(320)에서, 데이터 처리 장치는 단계(310)에서 결정된 비율에 기초하여 후보 특징 분포들 중에서 특징 데이터에 대응하는 타겟 특징 분포를 선택할 수 있다. 일 실시예에서, 후보 특징 분포들은 미리 정의되어 있는 서로 다른 분포 형태를 가지는 특징 분포들일 수 있다. 데이터 처리 장치는 서로 다른 비율 구간에 대응하는 후보 특징 분포들 중에서, 단계(310)에서 결정된 비율이 속하는 비율 구간에 대응하는 타겟 특징 분포를 선택할 수 있다. 후보 특징들 중에서 특징 데이터의 분포에 가장 근사한 타겟 특징 분포를 선택하는 것을 통해 특징 데이터의 분포 특성에 가장 적합한 방식으로 양자화 처리가 수행될 수 있다.
단계(330)에서, 데이터 처리 장치는 단계(320)에서 선택된 타겟 특징 분포를 기초로 양자화 파라미터를 결정할 수 있다. 데이터 처리 장치는 타겟 특징 분포의 형태에 따라 양자화 수행과 관련된 하나 이상의 양자화 파라미터를 결정할 수 있다. 각각의 후보 특징 분포로부터 서로 다른 양자화 파라미터가 추출될 수 있고, 데이터 처리 장치는 단계(310)에서 결정된 비율에 대응하는 타겟 특징 분포를 기초로 양자화 구간, 양자화 계수(또는 양자화 스케일) 등의 양자화 파라미터를 추출할 수 있다. 이와 같이, 해당 비율에 따라 양자화 파라미터가 동적으로 결정될 수 있다.
다시 도 2로 돌아오면, 단계(230)에서 데이터 처리 장치는 결정된 양자화 파라미터에 기초하여 특징 데이터를 양자화할 수 있다. 데이터 처리 장치는 예를 들어 타겟 특징 분포로부터 추출된 양자화 구간을 기초로 특징 데이터를 양자화하여 특징 데이터를 낮은 비트 폭의 특징 데이터로 변환시킬 수 있다.
단계(240)에서, 데이터 처리 장치는 양자화된 특징 데이터를 뉴럴 네트워크의 제1 레이어에 연결된 해당 뉴럴 네트워크의 제2 레이어에 입력시킬 수 있다. 여기서, 제2 레이어는 제1 레이어에 연결된 히든 레이어 또는 출력 레이어에 해당할 수 있다. 제2 레이어에 다른 제3 레이어가 연결된 경우, 데이터 처리 장치는 제2 레이어로부터 출력된 특징 데이터에 대해서도 위와 유사한 과정에 따라 양자화 처리를 수행하고, 양자화 처리가 수행된 특징 데이터를 제3 레이어에 입력시킬 수 있다..
위와 같은 과정을 통해, 일 실시예에 따른 데이터 처리 장치는 특징 데이터의 분포 특성에 적합한 최적의 양자화 구간을 통해 양자화 처리를 수행할 수 있으며, 이에 따라 뉴럴 네트워크를 이용한 데이터 처리 과정에서 입력 데이터의 특징을 보다 잘 살릴 수 있게 되어 뉴럴 네트워크의 큰 성능 저하 없이 고속으로 동작하는 것을 가능하게 한다. 또한, 데이터 처리 장치는 특징 데이터의 특징 값 분포 환경에 강인하게 양자화를 수행하여 특징 값의 특정한 분포 환경에서 뉴럴 네트워크의 성능이 크게 저하되는 것을 막을 수 있다.
도 4는 일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 방법의 동작을 설명하기 위한 흐름도이다.
도 4를 참조하면, 단계(410)에서 데이터 처리 장치는 뉴럴 네트워크의 레이어에서 출력된 특징 데이터를 양자화할 수 있다. 데이터 처리 장치는 도 2 및 도 3에서 설명된 과정에 따라 특징 데이터를 양자화할 수 있으며, 자세한 설명은 생략한다.
단계(420)에서, 양자화된 특징 데이터에 기초하여 뉴럴 네트워크의 출력 데이터가 결정될 수 있다. 데이터 처리 장치는 뉴럴 네트워크에 포함된 레이어들 간에 전달되는 적어도 하나의 특징 데이터를 양자화할 수 있고, 이렇게 양자화된 특징 데이터에 기초하여 뉴럴 네트워크의 출력 레이어로부터 출력 데이터가 출력될 수 있다.
단계(430)에서, 데이터 처리 장치는 양자화된 특징 데이터에 기초하여 결정된 뉴럴 네트워크의 출력 데이터가 조건(condition)을 만족시키는지 여부를 판단할 수 있다. 일 실시예에서, 데이터 처리 장치는 미리 정의된 계산 방식에 따라 해당 출력 데이터에 기초하여 정확도를 계산하고, 계산된 정확도가 임계치보다 큰지 여부를 판단할 수 있다.
출력 데이터가 해당 조건을 만족시키지 않는 경우, 단계(440)에서 데이터 처리 장치는 특징 데이터의 양자화 처리에 이용되었던 타겟 특징 분포의 양자화 파라미터를 조정할 수 있다. 예를 들어, 데이터 처리 장치는 학습 과정을 통해 타겟 특징 분포에 설정된 양자화 파라미터를 업데이트할 수 있다. 데이터 처리 장치는 뉴럴 네트워크의 출력 데이터와 목적 데이터(desired data)(또는 검증 데이터) 간의 차이를 계산하고, 해당 차이를 최소화하는 타겟 특징 분포의 양자화 파라미터를 결정하고, 결정된 양자화 파라미터를 업데이트할 수 있다. 이러한 업데이트 과정을 통해 양자화 파라미터는 보다 바람직하게 변할 수 있다. 실시예에 따라, 학습 과정을 통해 특징 데이터를 후보 특징 분포들 중 타겟 특징 분포에 매칭시키는 예측 과정이 학습될 수도 있다.
도 5 내지 도 7은 일 실시예에 따른 양자화 처리의 일례를 설명하기 위한 도면들이다.
도 5를 참조하면, 데이터 처리 장치는 특징 데이터 분포 추정기(520)와 양자화 처리기(530)를 포함할 수 있다. 뉴럴 네트워크의 제1 레이어로부터 특징 데이터(510)가 출력되었다고 가정한다. 특징 데이터 분포 추정기(520)는 특징 데이터(510)의 분포를 추정할 수 있다. 여기서, '분포'는 특징 데이터(510)에서 특징 값들이 분포된 정도를 나타낸다. 특징 데이터(510)에서 가로 축은 특징 값의 크기를 나타내고, 세로 축은 특징 값의 빈도를 나타낸다.
특징 데이터 분포 추정기(520)는 특징 데이터(510)에서 제1 특징 값의 개수 또는 제1 특징 값 이하 값들의 개수를 카운팅하고, 카운팅한 개수를 기초로 특징 데이터(510)의 분포를 추정할 수 있다. 특징 데이터 분포 추정기(520)는 카운팅한 개수를 기초로 특징 데이터(510)에 대응하는 타겟 특징 분포를 결정할 수 있다. 이에 대해서는 도 6을 참조하여 보다 자세히 설명한다.
도 6을 참조하면, 특징 데이터 분포 추정기(520)는 특징 데이터 분류기(610)를 포함할 수 있다. 특징 데이터 분류기(610)는 특징 데이터(510)에서 제1 특징 값(예, '0'의 특징 값)을 카운팅(예, 제로 카운팅)하거나 제1 특징 값 이하 값들을 카운팅하고, 특징 데이터(510)에 포함된 특징 값의 전체 개수와 카운팅한 제1 특징 값의 개수(또는 제1 특징 값 이하 값들의 개수) 간의 비율을 결정할 수 있다. 특징 데이터 분류기(610)는 결정된 비율에 기초하여 복수의 후보 특징 분포들(622, 624, 626, 628) 에서 특징 데이터(510)에 대응하는 타겟 특징 분포를 선택할 수 있다.
일 실시예에서, 제1 후보 특징 분포(622)가 0 이상 30% 미만의 비율에 대응하고, 제2 후보 특징 분포(624)는 30% 이상 50% 미만의 비율에 대응하며, 제3 후보 특징 분포(626)는 50% 이상 70% 미만의 비율에 대응하고, 제4 후보 특징 분포(628)는 70% 이상 100% 이하의 비율에 대응한다고 가정한다. 각각의 후보 특징 분포들(622, 624, 626, 628)에서 가로 축은 가로 축은 특징 값의 크기를 나타내고, 세로 축은 특징 값의 빈도를 나타낸다. 예를 들어, 특징 데이터(510)에 포함된 특징 값의 전체 개수와 제1 특징 값의 개수 간의 비율이 20%로 결정되었다면, 제1 후보 특징 분포(622)가 타겟 특징 분포로서 선택될 수 있다. 이와 같은 과정을 통해, 여러 후보 특징 분포들(622, 624, 626, 628) 중에서 특징 데이터(510)의 분포 특성에 가장 어울리는 타겟 특징 분포가 선택된다. 이하에서는, 제1 후보 특징 분포(622)가 타겟 특징 분포로서 선택되었다고 가정한다.
다시 도 5로 돌아오면, 양자화 처리기(530)는 특징 데이터 분포 추정기(520)에 의해 선택된 타겟 특징 분포에 기초하여 양자화 구간 등의 양자화 파라미터를 결정하고, 결정된 양자화 파라미터에 기초하여 특징 데이터(510)를 양자화하는 것에 의해 양자화된 특징 데이터(540)를 생성한다. 이에 대해서는 도 7을 참조하여 보다 자세히 설명한다.
도 7을 참조하면, 양자화 처리기(530)는 선택된 타겟 특징 분포(622)에 기초하여 양자화 구간(710)과 양자화 스케일 등의 양자화 파라미터를 추정하고, 추정한 양자화 파라미터에 기초하여 특징 데이터(510)에 대해 양자화를 수행할 수 있다. 양자화는 특징 데이터(510)의 양자화 구간(710) 내 특징 값들을 이산적인 특징 값(예, 정수(integer))으로 맵핑하는 과정을 포함한다.
위와 같은 양자화 처리 과정을 통해 특징 데이터(510)는 낮은 비트 폭의 양자화된 특징 데이터(540)로 변환될 수 있다. 예를 들어, 특징 데이터(510)가 32비트였다고 가정하면, 양자화된 특징 데이터(540)는 32비트보다 작은 비트 수(예, 4비트 또는 8비트)를 가질 수 있다. 양자화된 특징 데이터(540)는 제1 레이어에 연결된 뉴럴 네트워크의 제2 레이어에 입력될 수 있다. 위와 같이, 특징 데이터(510)는 특징 데이터(510)에 포함된 특정한 특징 값의 분포에 따라 동적으로 양자화될 수 있다. 이는 특징 값의 분산이나 특징 값의 최대/최소에 기초하여 양자화를 수행하는 방법에 비하여, 특징 데이터(510)의 특징 값 분포에 더 적합한 양자화 파라미터를 결정할 수 있게 되어 양자화 오차에 따른 뉴럴 네트워크의 성능 저하를 상대적으로 줄일 수 있다.
도 8은 일 실시예에 따른 뉴럴 네트워크를 이용한 데이터 처리 장치의 구성을 도시하는 도면이다.
도 8을 참조하면, 데이터 처리 장치(800)는 데이터 처리 방법과 관련하여 본 명세서에서 기술되거나 또는 도시된 하나 이상의 동작을 수행할 수 있다.
데이터 처리 장치(800)는 하나 이상의 프로세서(810) 및 메모리(820)를 포함할 수 있다. 메모리(820)는 프로세서(810)에 연결되고, 프로세서(810)에 의해 실행가능한 인스트럭션들, 프로세서(810)가 연산할 데이터 또는 프로세서(810)에 의해 처리된 데이터를 저장할 수 있다. 메모리(820)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 플래쉬 메모리 장치 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.
프로세서(810)는 뉴럴 네트워크를 이용하여 데이터 처리를 수행할 수 있다. 뉴럴 네트워크는 데이터베이스(830)에 저장되어 있을 수 있다. 프로세서(810)는 뉴럴 네트워크의 레이어들 사이에서 전달되는 특징 데이터를 양자화하여 데이터 처리 속도를 향상시키고 뉴럴 네트워크를 경량화할 수 있다.
일 실시예에 따른 프로세서(810)에 의해 수행되는 특징 데이터의 양자화 처리 과정은 다음과 같다. 프로세서(810)는 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 제1 특징 값 이하 값들의 개수를 결정하고, 결정된 개수에 기초하여 양자화 파라미터를 결정할 수 있다. 프로세서(810)는 결정된 개수에 기초하여, 후보 특징 분포들 중에서 특징 데이터에 대응하는 타겟 특징 분포를 선택하고, 타겟 특징 분포를 기초로 양자화 처리에 이용될 양자화 파라미터를 결정할 수 있다. 여기서, 프로세서(810)는 특징 데이터에 포함된 특징 값의 전체 개수와 제1 특징 값의 개수(또는 제1 특징 값 이하 값들의 개수) 간의 비율을 결정하고, 결정된 비율에 기초하여 후보 특징 분포들 중에서 타겟 특징 분포를 선택할 수 있다. 프로세서(810)는 서로 다른 비율 구간에 대응하는 후보 특징 분포들 중에서 해당 결정된 비율이 속하는 비율 구간에 대응하는 타겟 특징 분포를 선택할 수 있다. 프로세서(810)는 선택된 타겟 특징 분포에 기초하여 결정된 양자화 파라미터에 기초하여 특징 데이터를 양자화하고, 양자화된 특징 데이터를 제1 레이어에 연결된 뉴럴 네트워크의 제2 레이어에 입력시킬 수 있다.
다른 실시예에 따르면, 프로세서(810)는 위와 같은 특징 데이터의 양자화 처리를 거쳐 뉴럴 네트워크에 의해 출력된 출력 데이터가 조건을 만족시키는지 여부를 판단할 수 있다. 예를 들어, 프로세서(810)는 뉴럴 네트워크의 출력 데이터에 기초하여 결정된 정확도가 임계치보다 큰 경우에 출력 데이터가 조건을 만족시키는 것으로 결정할 수 있다. 뉴럴 네트워크의 출력 데이터가 조건을 만족시키지 않는 경우, 프로세서(810)는 양자화 처리에 이용되었던 타겟 특징 분포의 양자화 파라미터를 조정할 수 있다. 예를 들어, 프로세서(810)는 학습 과정을 통해 타겟 특징 분포에 설정된 양자화 파라미터를 업데이트할 수 있다. 프로세서(810)는 뉴럴 네트워크의 출력 데이터와 목적 데이터 간의 차이를 계산하고, 해당 차이를 최소화하는 타겟 특징 분포의 양자화 파라미터를 결정하고, 결정된 양자화 파라미터를 업데이트할 수 있다.
도 9는 일 실시예에 따른 전자 장치의 구성을 도시하는 도면이다.
본 명세서에서 설명한 데이터 처리 장치는 전자 장치(900)에 포함되어 동작할 수 있고, 전자 장치(900)는 데이터 처리 장치가 수행할 수 있는 하나 이상의 동작을 수행할 수 있다. 전자 장치(900)는 예를 들어 모바일 폰, 웨어러블 기기, 태블릿 컴퓨터, 넷북, 랩탑, 데스크탑, PDA, 셋탑 박스, 스마트 가전 기기, 보안 장치 등일 수 있다.
도 9를 참조하면, 전자 장치(900)는 프로세서(910), 메모리(920), 카메라(930), 저장 장치(940), 입력 장치(950), 출력 장치(960) 및 통신 장치(970)를 포함할 수 있다. 프로세서(910), 메모리(920), 카메라(930), 저장 장치(940), 입력 장치(950), 출력 장치(960) 및 통신 장치(970)는 통신 버스(980)를 통해 서로 통신할 수 있다.
카메라(930)는 영상 데이터로서 정지 영상, 비디오 영상, 또는 이들 모두를 획득할 수 있다. 획득된 영상 데이터는 예를 들어, 컬러 영상, 흑백 영상 또는 적외선 영상일 수 있다.
프로세서(910)는 전자 장치(900) 내에서 실행하기 위한 기능 및 인스트럭션들을 실행한다. 예를 들어, 프로세서(910)는 메모리(920) 또는 저장 장치(940)에 저장된 인스트럭션들을 처리할 수 있고, 도 1 내지 도 8을 통하여 전술한 하나 이상의 동작을 수행할 수 있다. 일 실시예에서, 프로세서(910)는 뉴럴 네트워크를 이용하여 영상 데이터를 처리할 수 있다. 프로세서(910)는 영상 데이터를 처리할 때 뉴럴 네트워크의 동작과 관련하여 양자화 처리를 수행할 수 있다. 양자화 처리를 통해 뉴럴 네트워크에 포함된 레이어들 사이에서 전달되는 특징 데이터가 양자화될 수 있고, 뉴럴 네트워크에 의한 처리 과정이 경량화될 수 있다. 이러한 양자화 처리에 대한 내용은 본 명세서에서 설명된 내용을 참조할 수 있으며, 자세한 설명은 생략한다.
저장 장치(940)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함한다. 저장 장치(940)는 뉴럴 네트워크를 저장하는 데이터베이스를 포함할 수 있다. 저장 장치(940)는 자기 하드 디스크, 광 디스크, 플래쉬 메모리, 전기적으로 프로그래밍가능한 메모리(EPROM), 플로피 디스크 또는 이 기술 분야에서 알려진 다른 형태의 비휘발성 메모리를 포함할 수 있다.
입력 장치(950)는 촉각, 비디오, 오디오 또는 터치 입력을 통해 사용자로부터 입력을 수신할 수 있다. 예를 들어, 입력 장치(950)는 키보드, 마우스, 터치스크린, 마이크로폰, 또는 사용자로부터 입력을 검출하고, 검출된 입력을 전자 장치(900)에 전달할 수 있는 임의의 다른 장치를 포함할 수 있다.
출력 장치(960)는 시각적, 청각적 또는 촉각적인 채널을 통해 사용자에게 전자 장치(900)의 출력을 제공할 수 있다. 출력 장치(960)는 예를 들어, 액정 디스플레이, LED 디스플레이, 터치 스크린, 스피커, 진동 발생 장치 또는 사용자에게 출력을 제공할 수 있는 임의의 다른 장치를 포함할 수 있다.
통신 장치(970)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (19)

  1. 뉴럴 네트워크를 이용한 데이터 처리 방법에 있어서,
    상기 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하는 단계;
    상기 결정된 개수에 기초하여 양자화 파라미터를 결정하는 단계;
    상기 결정된 양자화 파라미터에 기초하여 상기 특징 데이터를 양자화하는 단계; 및
    상기 양자화된 특징 데이터를 상기 제1 레이어에 연결된 상기 뉴럴 네트워크의 제2 레이어에 입력시키는 단계
    를 포함하는 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 양자화 파라미터를 결정하는 단계는,
    상기 결정된 개수에 기초하여, 후보 특징 분포들 중에서 상기 특징 데이터에 대응하는 타겟 특징 분포를 선택하는 단계; 및
    상기 타겟 특징 분포를 기초로 상기 양자화 파라미터를 결정하는 단계
    를 포함하는 데이터 처리 방법.
  3. 제2항에 있어서,
    상기 타겟 특징 분포를 선택하는 단계는,
    상기 특징 데이터에 포함된 특징 값의 전체 개수와 상기 결정된 개수 간의 비율을 결정하는 단계; 및
    상기 결정된 비율에 기초하여 상기 후보 특징 분포들 중에서 상기 타겟 특징 분포를 선택하는 단계
    를 포함하는 데이터 처리 방법.
  4. 제3항에 있어서,
    상기 타겟 특징 분포를 선택하는 단계는,
    서로 다른 비율 구간에 대응하는 상기 후보 특징 분포들 중에서 상기 결정된 비율이 속하는 비율 구간에 대응하는 타겟 특징 분포를 선택하는 단계
    를 포함하는 데이터 처리 방법.
  5. 제2항에 있어서,
    상기 양자화 파라미터를 결정하는 단계는,
    상기 타겟 특징 분포의 형태에 따라 양자화 수행과 관련된 하나 이상의 양자화 파라미터를 결정하는 단계
    를 포함하는 데이터 처리 방법.
  6. 제1항에 있어서,
    상기 양자화된 특징 데이터에 기초하여 결정된 상기 뉴럴 네트워크의 출력 데이터가 조건을 만족시키는지 여부를 판단하는 단계; 및
    상기 출력 데이터가 상기 조건을 만족시키지 않는 경우, 상기 양자화 파라미터를 조정하는 단계
    를 더 포함하는 데이터 처리 방법.
  7. 제6항에 있어서,
    상기 판단하는 단계는,
    상기 출력 데이터에 기초하여 계산된 정확도가 임계치보다 큰지 여부를 판단하는 단계
    를 포함하는 데이터 처리 방법.
  8. 제1항에 있어서,
    상기 제1 특징 값은, 0에 해당하는 특징 값인,
    데이터 처리 방법.
  9. 제1항에 있어서,
    상기 양자화 파라미터는,
    양자화 구간 및 양자화 계수 중 적어도 하나를 포함하는,
    데이터 처리 방법.
  10. 제1항에 있어서,
    상기 제1 레이어는, 상기 뉴럴 네트워크의 입력 레이어 또는 히든 레이어에 해당하고,
    상기 제2 레이어는, 상기 제1 레이어에 연결된 히든 레이어 또는 출력 레이어에 해당하는,
    데이터 처리 방법.
  11. 제1항에 있어서,
    상기 뉴럴 네트워크는, 컨볼루셔널 뉴럴 네트워크이고,
    상기 특징 데이터는, 특징 맵인,
    데이터 처리 방법.
  12. 제1항 내지 제11항 중 어느 하나의 항의 방법을 실행하기 위한 인스트럭션들을 저장하는 컴퓨터 판독 가능한 저장매체.
  13. 뉴럴 네트워크를 이용한 데이터 처리 장치에 있어서,
    상기 뉴럴 네트워크의 레이어에서 출력되는 특징 데이터를 양자화하는 프로세서를 포함하고,
    상기 프로세서는,
    상기 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하고,
    상기 결정된 개수에 기초하여 양자화 파라미터를 결정하고,
    상기 결정된 양자화 파라미터에 기초하여 상기 특징 데이터를 양자화하고,
    상기 양자화된 특징 데이터를 상기 제1 레이어에 연결된 상기 뉴럴 네트워크의 제2 레이어에 입력시키는,
    데이터 처리 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 결정된 개수에 기초하여, 후보 특징 분포들 중에서 상기 특징 데이터에 대응하는 타겟 특징 분포를 선택하고,
    상기 타겟 특징 분포를 기초로 상기 양자화 파라미터를 결정하는,
    데이터 처리 장치.
  15. 제14에 있어서,
    상기 프로세서는,
    상기 특징 데이터에 포함된 특징 값의 전체 개수와 상기 결정된 개수 간의 비율을 결정하고,
    상기 결정된 비율에 기초하여 상기 후보 특징 분포들 중에서 상기 타겟 특징 분포를 선택하는,
    데이터 처리 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    서로 다른 비율 구간에 대응하는 상기 후보 특징 분포들 중에서 상기 결정된 비율이 속하는 비율 구간에 대응하는 타겟 특징 분포를 선택하는,
    데이터 처리 장치.
  17. 제13항에 있어서,
    상기 프로세서는,
    상기 양자화된 특징 데이터에 기초하여 결정된 상기 뉴럴 네트워크의 출력 데이터가 조건을 만족시키는지 여부를 판단하고,
    상기 출력 데이터가 상기 조건을 만족시키지 않는 경우, 상기 양자화 파라미터를 조정하는,
    데이터 처리 장치.
  18. 영상 데이터를 획득하는 카메라;
    컴퓨터에서 읽을 수 있는 명령어를 포함하는 메모리; 및
    뉴럴 네트워크를 이용하여 상기 영상 데이터를 처리하는 프로세서를 포함하고,
    상기 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는,
    상기 영상 데이터가 입력되는 뉴럴 네트워크의 제1 레이어에서 출력된 특징 데이터에서 제1 특징 값의 개수 또는 상기 제1 특징 값 이하 값들의 개수를 결정하고,
    상기 결정된 개수에 기초하여 양자화 파라미터를 결정하고,
    상기 결정된 양자화 파라미터에 기초하여 상기 특징 데이터를 양자화하고,
    상기 양자화된 특징 데이터를 상기 제1 레이어에 연결된 상기 뉴럴 네트워크의 제2 레이어에 입력시키는,
    전자 장치.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 결정된 개수에 기초하여, 후보 특징 분포들 중에서 상기 특징 데이터에 대응하는 타겟 특징 분포를 선택하고,
    상기 타겟 특징 분포를 기초로 상기 양자화 파라미터를 결정하는,
    전자 장치.
KR1020200074234A 2020-06-18 2020-06-18 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치 KR20210156538A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200074234A KR20210156538A (ko) 2020-06-18 2020-06-18 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치
US17/111,870 US20210397946A1 (en) 2020-06-18 2020-12-04 Method and apparatus with neural network data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200074234A KR20210156538A (ko) 2020-06-18 2020-06-18 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치

Publications (1)

Publication Number Publication Date
KR20210156538A true KR20210156538A (ko) 2021-12-27

Family

ID=79022401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200074234A KR20210156538A (ko) 2020-06-18 2020-06-18 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치

Country Status (2)

Country Link
US (1) US20210397946A1 (ko)
KR (1) KR20210156538A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023177272A1 (ko) * 2022-03-18 2023-09-21 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
WO2024158174A1 (ko) * 2023-01-25 2024-08-02 삼성전자주식회사 모델의 연산과 관련된 오퍼레이터의 양자화를 위한 전자 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220237744A1 (en) * 2021-01-26 2022-07-28 Samsung Electronics Co., Ltd. Method and apparatus with image restoration

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160048978A1 (en) * 2013-03-27 2016-02-18 Thomson Licensing Method and apparatus for automatic keyframe extraction
KR102564456B1 (ko) * 2017-10-19 2023-08-07 삼성전자주식회사 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법
CN109754074A (zh) * 2018-12-29 2019-05-14 北京中科寒武纪科技有限公司 一种神经网络量化方法、装置以及相关产品
CN110163370B (zh) * 2019-05-24 2021-09-17 上海肇观电子科技有限公司 深度神经网络的压缩方法、芯片、电子设备及介质
WO2021036905A1 (zh) * 2019-08-27 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
WO2021036892A1 (zh) * 2019-08-27 2021-03-04 安徽寒武纪信息科技有限公司 循环神经网络的量化参数调整方法、装置及相关产品
JP7322620B2 (ja) * 2019-09-13 2023-08-08 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US11488014B2 (en) * 2019-10-22 2022-11-01 International Business Machines Corporation Automated selection of unannotated data for annotation based on features generated during training
CN113537447A (zh) * 2020-04-20 2021-10-22 佳能株式会社 多层神经网络的生成方法、装置、应用方法及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023177272A1 (ko) * 2022-03-18 2023-09-21 인텔렉추얼디스커버리 주식회사 신경망 기반 특징 텐서 압축 방법 및 장치
WO2024158174A1 (ko) * 2023-01-25 2024-08-02 삼성전자주식회사 모델의 연산과 관련된 오퍼레이터의 양자화를 위한 전자 장치 및 방법

Also Published As

Publication number Publication date
US20210397946A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
CN109754066B (zh) 用于生成定点型神经网络的方法和装置
KR20210156538A (ko) 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치
US12026611B2 (en) Method and apparatus for quantizing parameters of neural network
US20190156213A1 (en) Gradient compressing apparatus, gradient compressing method, and non-transitory computer readable medium
KR102692100B1 (ko) 훈련된 머신 러닝 모델에 적대적 견고성 추가
CN108012156B (zh) 一种视频处理方法及控制平台
KR102562320B1 (ko) 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치
CN113610232B (zh) 网络模型量化方法、装置、计算机设备以及存储介质
KR20200076461A (ko) 중첩된 비트 표현 기반의 뉴럴 네트워크 처리 방법 및 장치
WO2020164272A1 (zh) 上网设备的识别方法、装置及存储介质、计算机设备
KR20220059194A (ko) 대상 객체에 적응적인 객체 추적 방법 및 장치
KR102570070B1 (ko) 일반화된 사용자 모델을 이용한 사용자 인증 방법 및 장치
KR20190098671A (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
KR20220065209A (ko) 다양한 품질의 영상을 인식하는 방법 및 장치
KR20230069607A (ko) 셀프 어텐션 기반의 영상 인식 방법 및 장치
KR20230043318A (ko) 영상 내 객체를 분류하는 객체 분류 방법 및 장치
US20240062042A1 (en) Hardening a deep neural network against adversarial attacks using a stochastic ensemble
KR20210082993A (ko) 양자화 영상 생성 방법 및 양자화 영상 생성 방법을 수행하는 센서 장치
CN117315758A (zh) 面部表情的检测方法、装置、电子设备及存储介质
KR20210141252A (ko) 전자 장치 및 그 제어 방법
US12099915B2 (en) Method and apparatus for quantizing deep neural network
KR20210144510A (ko) 뉴럴 네트워크를 이용하는 데이터 처리 방법 및 데이터 처리 장치
KR20230059435A (ko) 뉴럴 네트워크의 압축 장치 및 방법
US11861452B1 (en) Quantized softmax layer for neural networks
KR20220155882A (ko) 뉴럴 네트워크를 이용하는 데이터 처리 방법 및 장치