KR102656568B1 - 데이터를 분류하는 방법 및 장치 - Google Patents

데이터를 분류하는 방법 및 장치 Download PDF

Info

Publication number
KR102656568B1
KR102656568B1 KR1020230026658A KR20230026658A KR102656568B1 KR 102656568 B1 KR102656568 B1 KR 102656568B1 KR 1020230026658 A KR1020230026658 A KR 1020230026658A KR 20230026658 A KR20230026658 A KR 20230026658A KR 102656568 B1 KR102656568 B1 KR 102656568B1
Authority
KR
South Korea
Prior art keywords
classifier
classification information
classification
information
data
Prior art date
Application number
KR1020230026658A
Other languages
English (en)
Other versions
KR20230141471A (ko
Inventor
김이환
장호석
정남순
Original Assignee
주식회사 에임퓨처
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에임퓨처 filed Critical 주식회사 에임퓨처
Publication of KR20230141471A publication Critical patent/KR20230141471A/ko
Application granted granted Critical
Publication of KR102656568B1 publication Critical patent/KR102656568B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/24765Rule-based classification
    • 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/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/092Reinforcement learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/809Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of classification results, e.g. where the classifiers operate on the same input data
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • 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/048Activation functions
    • 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

Landscapes

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

Abstract

본 개시에 따르면, 대상 데이터를 획득하는 단계; 대상 데이터를 기반으로 복수의 분류기(classifiers)를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하는 단계; 대상 데이터를 기반으로 신경망(neural network) 모델을 이용하여 제2분류 정보를 획득하는 단계; 제1분류 정보 및 제2분류 정보를 비교하는 단계; 및 제1분류 정보 및 제2분류 정보를 비교한 결과에 기초하여, 분류기 세트를 검증하는 단계를 포함하는 전자 장치에서 데이터를 분류하는 방법이 개시된다.

Description

데이터를 분류하는 방법 및 장치 {APPARATUS FOR CLASSIFYING DATA AND METHOD THEREOF}
본 개시는 복수의 분류기를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하고, 신경망 모델을 이용하여 제2분류 정보를 획득하고, 제1분류 정보 및 제2분류 정보를 비교하여 분류기 세트를 검증하는 방법 및 장치에 관한 것이다. 또한, 본 개시는 분류기 세트를 이용하여 제1분류 정보를 획득하고, 제1분류 정보가 설정된 조건을 만족하는 경우 제1분류 정보에 기초하여 대상 데이터의 분류 값을 결정하고, 제1분류 정보가 설정된 조건을 만족하지 않는 경우, 신경망 모델을 이용하여 제2분류 정보를 획득하여 대상 데이터의 분류 값을 결정하는 방법에 관한 것이다.
AI 기술의 발전에 따라 신경망 모델을 이용하는 데이터 분류 방식이 점차 보편화되고 있다. 데이터 분류는 예컨대 이미지 인식 및 분류를 포함할 수 있고, 이미지 분류는 비정상(abnormal) 이미지를 식별하는 동작을 포함할 수 있다. 신경망 모델을 이용하는 데이터 분류 방식은, 충분히 학습되는 경우 높은 분류 정확도를 보일 수 있으나, 다량의 연산량을 필요로 하고 충분한 훈련 데이터를 확보하여야 하는 등의 단점이 존재한다. 때문에, 충분한 컴퓨팅 파워가 확보되지 않은 경우 신경망 모델을 이용하여 데이터 분류를 진행하는 것이 불가능하거나, 가능하더라도 분류를 위한 시간이 지나치게 오래 걸리는 등 비용적인 면에서 효과적이지 않을 수 있다.
관련하여, KR102407730B1 건이나 US20210365774A1 건 등의 선행문헌들을 더 참조할 수 있다.
본 실시 예가 해결하고자 하는 과제는, 대상 데이터를 획득하고, 대상 데이터를 기반으로 복수의 분류기를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하고, 대상 데이터를 기반으로 신경망 모델을 이용하여 제2분류 정보를 획득하고, 제1분류 정보 및 제2분류 정보를 비교하고, 제1분류 정보 및 제2분류 정보를 비교한 결과에 기초하여, 분류기 세트의 동작을 검증하는 전자 장치 및 그 방법을 제공하는 데 있다.
또한, 본 실시 예가 해결하고자 하는 다른 과제는, 대상 데이터를 획득하고, 대상 데이터를 기반으로 복수의 분류기를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하고, 제1분류 정보가 설정된 조건을 만족하는 경우 제1분류 정보에 기초하여 대상 데이터의 분류 값을 결정하고, 제1분류 정보가 설정된 조건을 만족하지 않는 경우 대상 데이터를 기반으로 신경망 모델을 이용하여 제2분류 정보를 획득하고 제2분류 정보에 기초하여 대상 데이터의 분류 값을 결정하는 방법을 제공하는 데 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일실시예에 따른 전자 장치에서 데이터를 분류하는 방법은 대상 데이터를 획득하는 단계; 상기 대상 데이터를 기반으로 복수의 분류기(classifiers)를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하는 단계; 상기 대상 데이터를 기반으로 신경망(neural network) 모델을 이용하여 제2분류 정보를 획득하는 단계; 상기 제1분류 정보 및 상기 제2분류 정보를 비교하는 단계; 및 상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 분류기 세트를 검증하는 단계를 포함한다.
일실시예에 따르면, 상기 데이터를 분류하는 방법은 상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 분류기 세트의 동작 방식을 결정하는 단계를 더 포함하고, 상기 분류기 세트의 동작 방식은, 상기 복수의 분류기의 동작 순서를 포함할 수 있다.
일실시예에 따르면, 상기 전자 장치는, 상기 분류기 세트가 상기 제1분류 정보를 생성하는 데에 소요되는 시간 정보에 더 기초하여 상기 분류기 세트의 동작 방법을 결정할 수 있다.
일실시예에 따르면, 상기 분류기 세트의 동작 방식을 결정하는 단계는 상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 제1분류 정보의 신뢰도(reliability)를 판단하는 단계; 상기 신뢰도가 설정된 임계값을 초과하는지 여부를 판단하는 단계; 및 상기 신뢰도가 상기 설정된 임계값보다 작은 경우, 상기 분류기 세트의 동작 방식을 변경하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 제1분류 정보를 획득하는 단계는 상기 대상 데이터를 기반으로 상기 복수의 분류기에 포함되는 제1분류기를 이용하는 단계; 상기 제1분류기의 출력 정보가 설정된 조건을 만족하는 경우, 상기 제1분류기의 출력 정보를 상기 제1분류 정보로 결정하는 단계; 및 상기 제1분류기의 출력 정보가 설정된 조건을 만족하지 않는 경우, 상기 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 상기 복수의 분류기 중에 존재하는 경우, 상기 대상 데이터를 기반으로 상기 제2분류기를 이용하는 단계; 및 상기 제2분류기가 존재하지 않는 경우, 상기 설정된 조건을 만족하지 않음을 지시하는 정보를 획득하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 제1분류 정보 및 상기 제2분류 정보는 상기 대상 데이터의 비정상(abnormal) 여부에 대한 정보 및 상기 대상 데이터가 비정상인 경우 그 비정상 사유에 대한 정보 중 하나 이상을 포함할 수 있다.
일실시예에 따르면, 상기 제1분류 정보 및 상기 제2분류 정보 중 하나 이상은 복수의 후보 분류 값을 포함할 수 있다.
일실시예에 따르면, 상기 제2분류 정보가 복수의 후보 분류 값을 포함하는 경우, 상기 제1분류 정보 및 상기 제2분류 정보를 비교하는 단계는 상기 제2분류 정보가 포함하는 복수의 후보 분류 값 중, 설정된 기준을 만족하는 하나 이상의 후보 분류 값을 판단하는 단계; 및 상기 하나 이상의 후보 분류 값 별로 상기 제1분류 정보가 지시하는 분류 값과의 일치 여부를 확인하는 단계를 포함하고, 상기 설정된 기준은, 복수의 후보 분류 값 별로 데이터가 속할 확률에 연관되는 기준일 수 있다.
일실시예에 따르면, 상기 데이터를 분류하는 방법은 신경 처리(Neural Processing) 프로세서에 액세스하는 단계를 더 포함하고, 상기 신경 처리 프로세서에서, 상기 제1분류 정보의 획득을 위한 연산, 상기 제2분류 정보의 획득을 위한 연산 및 상기 제1분류 정보 및 상기 제2분류 정보의 비교를 위한 연산 중 적어도 일부가 처리될 수 있다.
일실시예에 따르면, 상기 신경 처리 프로세서에서 상기 제1분류 정보의 획득을 위한 연산이 처리되는 경우, 상기 데이터를 분류하는 방법은 상기 복수의 분류기 별로 그 동작을 위하여 요구되는 필요 연산량 정보를 획득하는 단계; 및 상기 필요 연산량 정보에 기초하여, 상기 복수의 분류기 별로 그 연산을 복수의 코어 중 어디에 할당할지를 결정하는 단계를 더 포함할 수 있다.
일실시예에 따르면, 상기 데이터를 분류하는 방법은 상기 신경 처리 프로세서에 연관되는 복수의 코어 별 연산 능력을 판단하는 단계를 더 포함하고, 상기 전자 장치는 상기 복수의 코어 별 연산 능력에 더 기초하여 상기 복수의 분류기 별로 그 연산을 상기 복수의 코어 중 어디에 할당할지를 결정할 수 있다.
일실시예에 따르면, 상기 복수의 분류기가 포함하는 제1분류기에서, 데이터가 제1분류 값을 가지는지 여부가 판단되고, 상기 복수의 분류기가 포함하는 제2분류기에서, 데이터가 제2분류 값을 가지는지 여부가 판단되고, 상기 제1분류 값 및 상기 제2분류 값은 서로 상이할 수 있다.
일실시예에 따르면, 상기 대상 데이터를 획득하는 단계는 원본 데이터를 획득하는 단계; 및 상기 원본 데이터를 가공하여 상기 대상 데이터를 생성하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 신경망 모델은 하나 이상의 컨볼루션(Convolution) 레이어, 하나 이상의 풀링(Pooling) 레이어 및 하나 이상의 덴스(Dense) 레이어 중 하나 이상을 포함할 수 있다.
일실시예에 따른 전자 장치에서 데이터를 분류하는 방법은 대상 데이터를 획득하는 단계; 상기 대상 데이터를 기반으로 복수의 분류기를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하는 단계; 상기 제1분류 정보가 설정된 조건을 만족하는 경우, 상기 제1분류 정보에 기초하여 상기 대상 데이터의 분류 값을 결정하는 단계; 및 상기 제1분류 정보가 상기 설정된 조건을 만족하지 않는 경우, 상기 대상 데이터를 기반으로 신경망 모델을 이용하여 제2분류 정보를 획득하는 단계; 및 상기 제2분류 정보에 기초하여 상기 대상 데이터의 분류 값을 결정하는 단계를 포함한다.
일실시예에 따른 데이터를 분류하는 전자 장치는 명령어를 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는, 상기 메모리와 연결되어, 대상 데이터를 획득하고, 상기 대상 데이터를 기반으로 복수의 분류기를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하고, 상기 대상 데이터를 기반으로 신경망 모델을 이용하여 제2분류 정보를 획득하고, 상기 제1분류 정보 및 상기 제2분류 정보를 비교하고, 상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 분류기 세트의 동작을 검증한다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시에 따르면, 정보를 처리하는 전자 장치 및 그 방법은 데이터 분류를 위한 연산량 및 시간 등의 비용을 절약하면서도, 높은 분류 정확도를 확보할 수 있다.
또한, 본 개시의 일실시예에 따르면, 신경 처리(Neural Processing) 프로세서를 이용하여 더 효율적으로 데이터 분류를 수행할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일실시예에 따른 분류기 세트의 예시적인 파이프라인을 설명하기 위한 도면이다.
도 2는 일실시예에 따른 신경망 모델을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 분류기 세트를 이용하는 데이터 분류 방법을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 복수의 분류기의 동작 순서를 결정하는 방법을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 복수의 분류기가 훈련되는 과정을 예시적으로 설명하기 위한 도면이다.
도 6은 일실시예에 따른 신경망 모델이 훈련되는 과정을 예시적으로 설명하기 위한 도면이다.
도 7은 일실시예에 따른 하나 이상의 신경 처리 프로세서를 이용하여 데이터 분류를 수행하는 방법을 예시적으로 설명하기 위한 도면이다.
도 8은 일실시예에 따른 분류기 세트의 설계 방법을 예시적으로 설명하기 위한 도면이다.
도 9는 일실시예에 따른 각 분류기의 연산을 어떻게 처리할지에 연관되는 연산 스케쥴링 방법을 예시적으로 설명하기 위한 도면이다.
도 10은 일실시예에 따른 전자 장치의 데이터 분류 방법의 동작 흐름도이다.
도 11은 일실시예에 따른 데이터를 분류하기 위한 전자 장치의 구성의 예시도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 "a, b, 및 c 중 적어도 하나"의 표현은, 'a 단독', 'b 단독', 'c 단독', 'a 및 b', 'a 및 c', 'b 및 c', 또는 'a,b,c 모두'를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 일실시예에 따른 분류기 세트의 예시적인 파이프라인을 설명하기 위한 도면이다.
도 1을 참조하면, 분류기 세트(110)는 데이터를 분류하기 위한 역할을 수행할 수 있다. 예를 들어, 분류기 세트(110)는 비정상 라벨을 분류하기 위한 네트워크에 대응될 수 있다. 실시예에 따라, 분류기 세트(110)가 포함하는 분류기들은 신경망 네트워크(neural network)를 포함할 수도 있으나, 이에 한정되는 것은 아니고, 예컨대 기 설정된 기준에 따라 분류를 수행하는 모델을 포함할 수도 있다.
분류기 세트(110)는 복수의 분류기들을 포함할 수 있다. 분류기 세트(110)가 포함하는 복수의 분류기들은 미리 정의된 우선순위에 따라 정렬될 수 있고, 그 정렬 순서에 따라 동작할 수 있다. 그 동작의 순서를 결정하는 방법과 관련하여 보다 상세한 사항은 도 4에서 후술한다.
한편, 도 1에서는 분류기가 하나씩 순차적으로 동작하는 실시예를 도시하였으나, 본 개시의 범위가 이에 한정되는 것은 아니고, 예컨대 특정 분류기의 동작이 끝나기 전에 다음 순서의 분류기의 동작이 개시될 수 있거나, 복수 분류기들이 함께 그 동작이 개시될 수 있는 등, 다양한 실시예들이 존재할 수 있다.
전자 장치는 분류기 세트(110)를 이용하여 데이터를 분류할 수 있다. 일실시예에 따르면, 전자 장치는 분류기 세트(110)뿐만 아니라 신경망 모델(120)을 더 이용할 수도 있다. 예를 들어, 전자 장치는 분류기를 통해 분류된 데이터의 결과를 훈련된 신경망 모델(120)의 결과와 비교하여 분류기 결과의 신뢰도를 계산할 수 있다. 데이터. 나아가, 분류기 세트(110)의 분류 결과가 설정된 조건을 만족하지 않는 경우(예를 들어, 분류기 세트(110)에서 비정상 라벨을 검출하지 못한 경우), 전자 장치는 신경망 모델(120)을 더 이용하여 데이터의 분류 값을 얻을 수도 있다.
일실시예에 다르면, 도 1의 "대상 데이터"는 분류를 위한 실제 데이터를 포함할 수 있다. 예를 들어, 대상 데이터는 "커피 원두"에 대한 다양한 특징을 포함하는 데이터일 수 있다. "커피 원두"는 색상, 크기 및 결함 등의 특성들을 포함할 수 있다. 도 1의 분류기는 직렬(series) 또는 병렬(parallel)로 구성될 수 있으며, 양자를 혼합하여 구성될 수도 있고, 본 개시의 범위가 이에 한정되지도 않는다.
도 1을 참조하면, 사용자가 분류기를 위하여 이용할 입력 데이터는 "원시 데이터"를 포함할 수 있다. 원시 데이터는 분류기 세트(110)를 통하여 분류되어야 하는 하나 이상의 유형의 데이터를 포함할 수 있다. 예를 들어, 적어도 하나의 분류기는 입력 데이터를 특정한 기준에 따라 분류할 수 있다. 특정한 기준은 개별 분류기를 통해 실제 데이터를 분류하기 위한 기준에 해당하며, 대상 데이터에 대한 기준이 될 수 있다. 예를 들어, 도 1의 대상 데이터가 "커피 원두"에 대한 데이터인 경우, 분류기 1은 색상 특징과 연관된 기준에 따라 대상 데이터가 "블랙" 커피 원두인지 여부를 판단할 수 있다. 이 경우, 제1분류기를 통해 분류되는 특정 기준은 블랙 커피 원두에 해당할 수 있다.
일실시예에 따르면, 분류기 1이 분류해야 할 특정 기준은 비정상 라벨을 포함할 수 있다. 즉, 본 발명의 다양한 실시예에 따른 분류기는 이상 표지를 검출하는 기준에 따라 입력을 분류하도록 설정될 수 있다. 보다 구체적 예시로, 분류기 1의 출력인 제1분류 값은 대상 데이터가 첫 번째 유형의 비정상 라벨(abnormal label)에 해당하는지 여부를 지시하는 값이고, 분류기 2의 출력인 제2분류 값은 대상 데이터가 첫 번째 유형의 비정상 라벨에 해당하는지 여부를 지시하는 값이며, 분류기 n의 출력인 제n분류 값은 대상 데이터가 n번째 유형의 비정상 라벨에 해당하는지 여부를 지시하는 값일 수 있다.
신경망 모델(120)은 대상 데이터에 대한 전체 분류 결과를 계산하기 위하여 이용될 수 있다. 일실시예에 따르면, 전자 장치는 분류기 세트(110)를 이용하여 획득하는 분류 정보가 설정된 조건을 만족하는지 여부를 판단하고, 설정된 조건을 만족하지 못하는 경우 신경망 모델(120)을 더 이용할 수 있다. 예를 들어, 분류기 세트(110)를 이용하여 획득하는 분류 정보가 비정상 라벨에 관련한 분류 값을 포함하지 못하는 경우, 전자 장치는 신경망 모델(120)을 이용한 재 분류를 수행함으로써 대상 데이터가 비정상 데이터가 아닌지 여부를 한 번 더 확인할 수 있다.
다만, 이는 일 예시에 불과한 것으로, 실시예에 따라서는 분류기 세트(110) 및 신경망 모델(120)이 항상 함께 이용될 수도 있는 등, 다양한 실시예들이 존재할 수 있다.
분류기 세트(110)가 포함하는 분류기 세트 중 적어도 일부는 서로 다른 기준에 따른 판단을 위하여 이용될 수 있다. 보다 구체적으로, 복수의 분류기가 포함하는 제1분류기에서 데이터가 제1분류 값을 가지는지 여부가 판단될 수 있고, 복수의 분류기가 포함하는 제2분류기에서 데이터가 제2분류 값을 가지는지 여부가 판단될 수 있으며, 제1분류 값 및 제2분류 값은 서로 상이할 수 있다. 예를 들어, 대상 데이터가 커피 원두인 경우, 검은 원두, 쪼개진 원두, 병충해에 피해를 입은 원두 등 다양한 유형의 비정상 라벨이 존재할 수 있고, 쪼개진 원두인지 여부가 제1분류기에 의하여 판단되고 병충해에 피해를 입은 원두인지 여부가 제2분류기에 의하여 판단될 수 있다. 관련하여, 그 판단을 위해서 일 예시에 따른 분류기에서 이미지의 색상이나 이미지가 원두 모양의 천공과 같은 고유한 패턴을 포함하는지 여부 등이 판단될 수 있다.
물론, 이는 일 예시에 불과한 것으로, 각 분류기의 판단 기준이 반드시 항상 상이하여야만 하는 것은 아니다.
대상 데이터는 설정된 조건을 만족하는 복수의 특성을 가질 수 있다(예컨대, 대상 데이터는 복수의 비정상적인 특성을 가질 수 있다). 커피 원두를 예를 들면, 대상 데이터는 검은색을 띠며 벌레에 피해를 입은 흔적이 있는 원두 이미지에 대응될 수 있다. 이 경우 대상 데이터의 라벨은 검은 원두 및 해충 손상 원두를 모두 포함할 수 있다. 나아가, 해당 데이터는 검은 원두 데이터 세트 및 곤충 손상 원두 데이터 세트에 모두 포함되어, 분류기 세트(110)가 포함하는 분류기의 훈련을 위하여 이용되거나, 신경망 모델(120)의 훈련을 위하여 이용될 수 있다.
일실시예에 따르면, 설정된 조건을 만족하는지 여부는 색상, 패턴 등 여러 가지 특성에 기초하여 결정될 수 있다. 일실시예에 따르면, 대상 데이터에 대한 추론 횟수에 기초하여 설정된 조건의 만족 여부가 결정될 수도 있다. 예를 들어, 대상 데이터에 대한 추론 횟수가 추론 예상 횟수를 넘어서는 경우에는 추론이 가양성(false positives)을 생성하고 있다고 보아 비정상 데이터로 판단할 수 있다. 추론이 가양성을 생성하고 있음을 의미할 수 있다. 이 경우를 달리 말하면, 스퓨리어스(spurious) 추론 결과는 추론 결과의 불확실성 수준을 높이므로 해당 데이터는 비정상으로 이해될 수 있다.
이러한 특성에 대해 일정한 기준값을 설정할 수 있다면 신경망을 통해 추론하기 전에 분류기 세트(110)에서 특정 라벨을 미리 확인할 수 있다. 즉, 분류기 세트(110)가 포함하는 복수의 분류기 중 적어도 일부는 표준 값 집합을 포함하고, 분류기가 학습되거나 만들어지는 과정에서 기준값이 설정될 수 있으며, 표준 값을 이용하여 라벨 분류가 수행될 수 있다.
도 2는 일실시예에 따른 신경망 모델을 설명하기 위한 도면이다.
도 2에서, 신경망 모델(120)이 컨볼루션 신경망(CNN, Convolutional Neural Network)을 포함하는 실시예를 설명하나, 이는 설명의 편의를 위한 것이며, 기계학습 기술에 기반하는 다양한 구조의 신경망 모델(120)에 본 개시의 범위가 모두 미치는 것으로 이해하여야 한다.
도 2를 참조하면, 신경망 모델(120)의 일 예시로서, 컨볼루션 신경망의 구조가 도시된다. 이 경우, 신경망 모델(120)은 하나 이상의 컨볼루션(Convolution) 레이어, 하나 이상의 풀링(Pooling) 레이어 및 하나 이상의 덴스(Dense) 레이어 중 하나 이상을 포함할 수 있다. 보다 구체적으로, 도시된 컨볼루션 신경망의 구조는,
1) 컨볼루션 레이어와 풀링(Pooling) 레이어를 연속적으로 연결하여 너비(width), 높이(height), 채널(channel) 값이 조절되고,
2) 평면화(flattening) 후 네트워크는 완전 연결(fully connected) 레이어를 거치며 라벨 수를 줄이고,
3) 결과는 소프트맥스(Softmax) 연산에 의해 백분율 값으로 계산되도록 할 수 있다.
일 예시에 따르면, 컨볼루션 레이어 이후에 풀링을 수행하는 레이어가 실행될 수 있다(210). 또한, 도면 번호 220의 덴스 레이어는 커먼 레이어(Common Layer)에 해당하며 완전 연결 레이어 또는 내적(Inner Product) 레이어 중 하나 이상을 포함할 수 있다. 덴스 레이어는 레이어의 모든 노드에 연결되는 레이어를 나타낼 수 있다.
일 예시에 따르면, 대상 데이터에서 특정 조건의 만족 여부를 확인하는 신경망이 이용될 수 있다. 예를 들어, 전자 장치는 대상 이미지 데이터를 신경망 모델(120)에 입력하고, 신경망 모델(120)에서는 대상 이미지가 검정색의 객체를 포함하는지 여부가 확인될 수 있다. 또한, 다른 예시에 따르면, 대상 데이터에서 인식할 대상의 개수가 설정된 조건을 만족하는지 여부를 확인하는 이미지 감지 신경망이 이용될 수도 있다. 예를 들어, 전자 장치는 대상 이미지 데이터를 신경망 모델(120)에 입력하고, 신경망 모델(120)에서는 이미지가 1개의 커피 원두 객체를 포함하는지 여부가 확인될 수 있다.
일실시예에 따르면, 신경망 모델(120)에서는 대상 데이터와 관련한 전체 라벨이 확인될 수 있다. 일 예시에 따른 전자 장치는 분류기 세트(110)를 이용하여 분류 정보를 먼저 획득하고, 그 이후 신경망 모델(120)를 이용하여 분류 정보를 더 획득할 수 있다(실시예에 따라 신경망 모델(120)을 이용하여 분류 정보를 더 획득할 수도 있고, 신경망 모델(120)은 이용하지 않을 수도 있다).
이 경우, 일 예시에 따른 신경망 모델(120)에서, 컨볼루션 계층과 풀링 계층은 반복되며 여러 채널과 크기를 거칠 수 있다. 평면화 작업 후, 원하는 라벨 수만큼 추론 결과를 생성하기 위하여 완전 연결 계층이 이용될 수 있다. 이후, 소프트맥스 연산을 통해 최종 값이 확률분포로 변환될 수 있다.
도 3은 일실시예에 따른 분류기 세트를 이용하는 데이터 분류 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 일실시예에 따른 전자 장치가 분류기 세트(110)를 이용하여 데이터를 분류하는 방법이 설명된다. 도 1에서와 마찬가지로, 분류기 세트(110)가 포함하는 복수의 분류기와 관련하여, 그 개수를 n으로 지칭할 수 있고, 각 분류기는 분류기 1, 분류기 2, ??, 분류기 n으로 지칭할 수 있다. 관련하여, 분류기는 설정된 동작 순서에 따라 순차적으로 넘버링된 것으로 이해할 수 있다(즉 분류기 1이 가장 먼저 동작하고, 그 다음에 분류기 2가 동작하며, 이와 같이 하나씩 동작하여 맨 마지막에는 분류기 n이 동작하도록 순서가 설정된 것으로 이해할 수 있다).
전자 장치는 대상 데이터를 기반으로 복수의 분류기에 포함되는 제1분류기를 이용할 수 있다(310). "제1분류기"는 "분류기 1"과 동일한 개념이 아님에 유의하여야 한다. 보다 구체적으로, "제1분류기"는 분류기 1 내지 분류기 n 중 하나에 해당할 수 있고, 그 중 어느 것에 대응되는지는 실시예에 따라서도 달라지고 특정 실시예 내에서도 그 동작 단계가 어디에 있느냐에 따라서 달라질 수 있다.
일실시예에 따른 전자 장치가 최초로 이용하는 제1분류기는 "분류기 1"인 것으로 이해할 수 있는데, 이는 분류기 1이 최초로 동작하도록 그 동작 순서가 설정되었기 때문일 수 있다. 다만, 본 개시의 범위가 이에 한정되는 것은 아니고, 예컨대 사용자 요청이 있거나, 사용자 요청이 없더라도 순서를 변경하여 동작할 사정이 있는 경우 등, 최초로 이용하는 제1분류기가 분류기 1이 아닌 다른 분류기로 결정되는 다양한 실시예들이 더 존재할 수 있다.
일실시예에 따르면, 도면 번호 310의 동작은 분류기 세트(110)의 정보를 로드(load)하는 동작을 포함할 수도 있다.
전자 장치는 제1분류기의 출력 정보가 설정된 조건을 만족하는지 여부를 판단할 수 있다(320). 제1분류기의 출력 정보가 설정된 조건을 만족하는 경우(320, Yes), 전자 장치는 제1분류기의 출력 정보를 분류기 세트(110)의 분류 정보(이하에서는 설명의 편의를 위해 분류기 세트(110)의 분류 정보를 "제1분류 정보"로 지칭함)로 결정할 수 있다. 반면, 제1분류기의 출력 정보가 설정된 조건을 만족하지 않는 경우(320, No), 전자 장치는 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 존재하는지 여부를 판단할 수 있다(330).
출력 정보가 설정된 조건을 만족하는 경우는, 예컨대 대상 데이터와 관련한 비정상(abnormality) 속성을 검출하는 경우를 포함할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.
또한, 출력 정보가 설정된 조건을 만족하는 경우는 예컨대 출력 값이 설정된 기준치를 초과하는 경우 등을 포함할 수 있다.
아울러, 출력 정보와 연관되는 "설정된 조건"의 구체적 내용은 분류기 별로 상이할 수 있다. 예를 들어, 분류기 1과 관련한 기준치와 분류기 2와 관련한 기준치는 서로 상이한 값을 가질 수 있다. 각 분류기와 관련한 조건은 분류기가 훈련되거나 생성되는 과정에서 결정될 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니고, 예컨대 외부 장치나 사용자로부터 조건의 내용을 입력받을 수도 있는 등, 다양한 실시예들이 존재할 수 있다.
한편, "설정된 조건"의 일 예시는, 소프트맥스 연산의 결과인 확률 값으로 표현되는 기준치를 포함할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.
제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 복수의 분류기 중에 존재하는 경우(330, Yes), 전자 장치는 대상 데이터를 기반으로 제2분류기를 이용할 수 있다(다시 310으로). 이 경우, 전자 장치는 제2분류기에 대해서 설정된 조건을 만족하는지 여부를 다시 판단하고, 설정된 조건을 만족하지 않는 경우에는 제2분류기의 다음 순서에 동작하도록 설정된 제3분류기가 존재하는지 여부를 판단하는 등, 도면번호 310의 동작, 도면번호 320의 동작 및 도면번호 330의 동작 중 적어도 일부가 반복될 수 있다. 즉, 제2분류기를 이용하는 경우 그 동작은 앞서 설명한 제1분류기를 이용하는 경우와 마찬가지라고 이해될 수 있다. 결론적으로, 전자 장치는 설정된 조건을 만족하는 출력 정보를 획득하지 못하면 계속하여 다음 순서의 분류기를 동작시킬 수 있다.
한편, 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 존재하지 않는 경우(330, No), 전자 장치는 설정된 조건을 만족하지 않음을 지시하는 정보를 획득할 수 있다. 관련하여, 설정된 조건을 만족하지 않음을 지시하는 정보는, 조건의 불만족을 명시적으로 알려야만 하는 것은 아니다. 예컨대, 별도의 출력 정보를 제공하지 않더라도, 분류기 세트(110)의 동작을 종료하였음을 전자 장치가 확인할 수 있다면, 대상 데이터가 설정된 조건을 만족하지 않음을 확인할 수 있으므로, 이러한 경우에도 설정된 조건을 만족하지 않음을 지시하는 정보를 획득할 수 있다.
나아가, 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 존재하지 않는 경우, 일실시예에 따른 전자 장치는 신경망 모델(120)을 이용하여 분류 정보를 획득할 수 있다(이하에서는 설명의 편의를 위해 신경망 모델(120)의 분류 정보를 "제2분류 정보"로 지칭함).
한편, 실시예에 따라서는, 제1분류기의 출력 정보인 제1분류 정보가 설정된 조건을 만족하는 경우에도 전자 장치는 신경망 모델(120)을 이용하여 제2분류 정보를 더 획득하고(350), 제1분류 정보 및 제2분류 정보를 비교할 수 있다(340). 이를 통하여, 전자 장치는 분류기 세트(110)를 검증할 수 있고, 이는 예컨대 분류기 세트(110)로부터 획득하는 제1분류 정보의 신뢰도를 판단하는 동작을 포함할 수 있다. 이러한 검증 외에도, 전자 장치는 제2분류 정보에 기초하여 분류 값 자체를 변경할 수 있는 등(예컨대, 제1분류 정보가 지시하는 라벨과 제2분류 정보가 지시하는 라벨이 상이한 경우에 제2분류 정보가 지시하는 라벨을 최종 분류로 판단할 수 있음), 신경망 모델(120)을 더 이용하면 다양한 이점이 있을 수 있다.
한편, 전술하였듯이 일실시예에 따른 전자 장치는 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 존재하지 않는 경우에 한하여 신경망 모델(120)을 이용하여 분류 정보를 획득할 수 있다. 또는, 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 존재하지 않는 경우에 한정하지는 않더라도, 모든 경우에 제2분류 정보를 더 획득하지는 않을 수 있으며, 예컨대 제1분류 정보가 설정된 조건을 만족하는 경우 중 일부에 대해서만 제2분류 정보를 더 획득하여 제1분류 정보를 신뢰해도 될지 여부를 검증할 수 있다. 이렇게, 신경망 모델(120)의 이용 여부 및 신경망 모델(120)의 이용 조건과 관련해서는 다양한 실시예들이 존재할 수 있다.
아울러, 분류기 세트(110)를 이용하는 상황이 분류기 세트(110)를 훈련하는 상황인지 혹은 훈련한 분류기 세트(110)를 실 사용하여 대상 데이터를 분류하는 상황인지에 따라서도 신경망 모델(120)의 이용 여부 및 신경망 모델(120)을 언제 이용할지가 달라질 수 있다. 예를 들어, 도 3의 예시는 분류기 세트(110)를 실 사용하여 대상 데이터를 분류하는 상황이므로 그 추론 속도를 확보하기 위하여 일부 상황에서만 신경망 모델(120)을 이용하는 반면, 분류기 세트(110)를 훈련할 때는 제1분류 정보 및 제2분류 정보 간의 비교를 보다 자주 수행할 수 있다(이와 관련해서는, 제1분류 정보 및 제2분류 정보 간의 비교를 통해 분류기 세트(110)가 잘 훈련될수록 추후 추론 단계에서 분류기 세트(110)를 이용하여 획득하는 분류 결과의 신뢰도가 높아지게 되고, 결과적으로 신경망 모델(120)에 대한 의존도를 낮출 수 있게 될 것이므로, 어느 단계에서 신경망 모델(120)의 개입도를 높일지는 일종의 상충(trade-off) 관계에 있는 선택 사항이라고 이해할 수도 있다).
일실시예에 따르면, 제1분류 정보 및 제2분류 정보 간의 유사도는 Top-K 정확도 방법(Top-K accuracy method)에 기초하여 평가될 수 있다.
Top-K 정확도 방법은, 분류 정보가 포함하는 라벨 별 확률들(후보 분류 값) 중 그 확률이 높은 순서대로 K개를 확인하고(이하에서는 그러한 K개의 라벨들을 Top-K 예측이라고 표현함), K개의 라벨들을 비교 대상이 되는 다른 분류 정보와 비교하는 방법으로 이해될 수 있다. 관련하여, 해당 K는 추론 전에 정의된 상수 값일 수 있다. 예를 들어 Top-1 또는 Top-5가 사용될 수 있다.
관련하여, 제1분류 정보 및 제2분류 정보 중 하나 이상은 복수의 후보 분류 값을 포함할 수 있다고 이해될 수 있다. 한편, 복수의 후보 분류 값은 라벨 자체를 포함할 수도 있고, 특정 라벨을 지시할 수 있는 값의 정보를 포함할 수도 있는 등, 그 형태가 특정 방식으로 한정되지는 않는다.
Top-K 정확도 방법과 관련하여 보다 구체적인 예시로, 제2분류 정보가 복수의 후보 분류 값을 포함하는 경우, 전자 장치는 제2분류 정보가 포함하는 복수의 후보 분류 값 중 설정된 기준을 만족하는 하나 이상의 후보 분류 값을 판단하고, 판단한 하나 이상의 후보 분류 값 별로 제1분류 정보가 지시하는 분류 값과의 일치 여부를 확인하여, 제1분류 정보 및 제2분류 정보를 비교할 수 있다. 이 경우, 설정된 기준은, 복수의 후보 분류 값 별로 데이터가 속할 확률에 연관되는 기준일 수 있다(예컨대 데이터가 속할 확률이 상위 K개 안에 속하거나, 혹은 데이터가 속할 확률이 기준 확률을 초과하는 등의 기준일 수 있으며, 특정 실시예로 본 개시의 범위가 한정되지 않음).
설명의 편의를 위해 제2분류 정보가 복수의 후보 분류 값을 포함하는 경우를 설명하였으나, 실시예에 따라서는 제1분류 정보가 복수의 후보 분류 값을 포함할 수 있고, 제1분류 정보 및 제2분류 정보 모두가 복수의 후보 분류 값을 포함할 수도 있으며, 이 경우에도 분류 정보들 간의 비교 방법은 위 설명을 준용할 수 있다.
일실시예에 따르면, 전자 장치는 판단한 하나 이상의 후보 분류 값 중 비교 대상과 일치하는 값이 있으면 그 경우에 대해서는 분류 결과가 정확한 것으로 판단할 수 있다. 예를 들어, Top-K 정확도 방법은 다음과 같이 로 나타날 수 있다.
[수학식 1]
는 분류기 j에 대한 정규화된(normalized) 소프트맥스 값에 대응되고, 은 분류기의 개수에 대응되며, 는 신경망 모델(120)에서 분류될 수 있는 라벨의 개수에 대응되고, 는 분류기 j의 Top-K 예측에 대응될 수 있다.
Top-K 정확도 방법과 관련하여, K를 작게 설정할수록 정확도의 판단 방법이 더 엄격해지는 것으로 이해할 수 있다. 예를 들어, K가 1인 경우에는 분류기 출력과 신경망 분류 결과가 정확히 일치하는 경우에만 해당 예측이 정확하다고 판단될 수 있다. 반면 K를 크게 설정하면 상위 K개의 예측 중 하나에 속하기만 하면 분류 결과가 신뢰성 있다고 판단되어, 신뢰성 있는 결과의 범위가 보다 넓어질 수 있다.
전술하였듯이, 모든 분류기가 분류에 실패하면 최종 출력은 신경망 모델(120)에 의하여 획득될 수 있다. 반면, 분류기 중 하나가 특정 라벨을 분류하는 데 성공하면, 최종 출력은 중간 분류기에 의하여 획득될 수 있다. 이 경우, 신경망 모델(120)은 최종 결과의 신뢰성을 보장하기 위하여 이용될 수 있다.
한편, 신뢰도가 목표 수준에 도달하지 못하는 등의 경우, 분류기 세트(110)에 포함되는 복수의 분류기들의 동작 순서가 조정될 수 있으며, 이에 대해서는 도 4에서 후술한다.
도 4는 일실시예에 따른 복수의 분류기의 동작 순서를 결정하는 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 시뮬레이터(Simulator)(400)는 제1분류 정보 및 제2분류 정보를 비교한 결과에 기초하여 분류기 세트(110)의 동작 방식을 결정할 수 있다. 분류기 세트(110)의 "동작 방식"은 복수의 분류기의 동작 순서를 포함하는 것으로 이해될 수 있다.
분류기 세트(110)의 동작 방식을 결정하는 주체는 전자 장치일 수 있으나, 본 개시의 범위가 이에 한정되지 않으며, 동작 순서를 결정하는 주체를 추상화하여 "시뮬레이터"로 표현하고 설명하는 것으로 이해할 수 있다. 따라서, "시뮬레이터"가 수행하는 것으로 설명되는 동작들은 전자 장치에 의해 수행될 수도 있고 기타 외부 장치 등에 의해 수행될 수도 있다고 이해할 수 있다.
복수의 분류기의 동작 순서를 결정하기 위한 시뮬레이터(400)의 동작은 새로운 시퀀스를 테스트하는 동작(410) 및 사용자가 정의한 시퀀스를 테스트하는 동작(420)을 포함할 수 있다. 사용자가 정의한 시퀀스를 테스트하는 동작(420)은, 예컨대 사용자에 의해 경험적으로 설정된 분류기의 시퀀스를 테스트하는 동작을 포함할 수 있다. 새로운 시퀀스를 테스트하는 동작(410)은 사용자가 정의한 것이 아닌 새로운 시퀀스를 테스트하는 동작을 포함할 수 있다.
결과적으로 두 테스트 동작의 처리 속도, 정확도 및 효율성을 비교하여 최적의 분류기 시퀀스를 도출할 수 있다. 입력 데이터는 여러 가지 비정상 라벨 속성을 가지고 있기 때문에(예를 들어 색상이 검정색이고 상태도 불량한 원두가 있을 수 있으며, 상태가 불량한 원두로 분류되면 분류기 세트(110)의 동작이 종료되어 색상이 검정색인 원두로도 분류하지 못하게 될 수 있음), 정확도 비교는 기본 지정된 분류에 의해 적절하게 분류되었는지 확인하는 것일 수 있다.
도 4는 시뮬레이터(400)가 3개를 입력으로 취하는 예시적인 프로세스에 해당할 수 있다. 입력은 다음과 같이 설명될 수 있다.
1) 사용자 정의 시퀀스: 사용자가 원하는 시퀀스
각 정상 또는 비정상 라벨의 빈도는 개체의 특성에 따라 다르고, 사용자는 분류기의 순서를 경험적으로 결정할 수 있다.
2) 사용자 정의 시퀀스에서 사용된 분류기 및 네트워크
사용자 정의 시퀀스에 사용된 모든 분류기는 각각 입력으로 입력될 수 있다. 시뮬레이터(400)는 실제 분류 시간과 정확도(앞서 설명한 "신뢰도"에 연관)를 포함하는 정보를 획득할 수 있다. 정보를 획득할 때, 분류기를 훈련할 때와 동일한 데이터 세트를 사용하여 테스트를 수행할 수도 있다.
참고로, 앞서 설명한 Top-K 방법에서는 정확도를 판단하는 방법만이 설명되나, 실제로는 정확도뿐만 아니라 추론 속도의 관점을 더 고려하여 시퀀스를 결정할 수 있음에 유의하여야 한다. 즉, 전자 장치는, 제1분류 정보 및 제2분류 정보를 비교한 결과뿐만 아니라 분류기 세트(110)가 제1분류 정보를 생성하는 데에 소요되는 시간 정보에 더 기초하여 분류기 세트(110)의 동작 방법을 결정할 수 있다.
3) 위 분류기에서 사용된 데이터셋
분류기 순서에 따른 동작 결과들은 시뮬레이터(400)에 의해 비교될 수 있다. 관련하여, 입력된 데이터셋을 이용하여 비교가 수행될 수 있다.
사용자 정의 시퀀스는 사용자가 원하는 시퀀스에 대응될 수 있다. 사용자 정의 시퀀스는 개체에 대한 경험적 판단을 바탕으로 결정될 수 있고, 사용자가 생각하는 합리적인 순서일 수 있으며, 예컨대 효율성, 분류 속도, 분류기의 대상 라벨 순서 등을 고려하여 결정되는 시퀀스일 수 있다. 다만, 인간과 컴퓨터의 사고 과정이 다른 등의 이유로, 경험에 의한 순서가 컴퓨터에서 효과적이라는 보장은 없으므로, 시뮬레이터(400)는 사용자가 생성한 시퀀스와 컴퓨터 장치 내부에서 계산된 시퀀스의 분류 시간과 정확도를 비교하여 최적의 시퀀스를 결정할 수 있다.
일실시예에 따르면, 시뮬레이터(400)를 사용하여 NPU의 작동을 워크스테이션에서 미리 확인할 수 있다. 이 단계에서 다양한 분류기의 속도와 라벨의 정확도가 테스트될 수 있다. 이는 파이프라인 구축의 우선 순위에 반영될 수 있다. 마지막으로 시뮬레이션 결과는 최적화된 분류기 시퀀스를 포함할 수 있다.
한편, 일실시예에 따른 전자 장치는 실제 데이터를 분류하는 과정에서 제1분류 결과의 신뢰도를 판단하고, 제1분류 결과의 신뢰도가 설정된 임계값을 초과하는지 여부를 판단할 수 있다. 신뢰도가 설정된 임계값보다 작은 경우, 전자 장치는 분류기 세트의 동작 방식을 변경할 수 있으며, 이는 예컨대 복수의 분류기의 동작 순서를 변경하는 경우를 포함할 수 있다. 즉, 도 4의 시뮬레이터(400) 동작은 분류기의 설계 및 훈련 과정에서 수행될 수 있음은 물론이고, 실제 데이터를 분류한 결과 분류기 세트(110)의 분류 결과의 신뢰도가 낮다고 판단되는 등의 경우에도 수행될 수 있다.
도 5는 일실시예에 따른 복수의 분류기가 훈련되는 과정을 예시적으로 설명하기 위한 도면이다.
도 5를 참조하면, 일실시예에 따른 전자 장치는 원본 데이터(510)를 획득하고, 원본 데이터(510)를 가공하여 가공 데이터(520)를 획득하며, 획득한 가공 데이터를 대상 데이터로 이용하여 복수의 분류기(530)를 훈련시킬 수 있다.
일실시예에 따르면, 각 분류기 별로 어떤 라벨을 쉽게 분류할 수 있는지를 확인할 수 있으므로, 각 분류기 별 특성을 고려하여 가공 데이터(520)를 획득함으로써 분류기를 용이하게 훈련시킬 수 있다. 예를 들어, "검은색 커피 원두"를 분류하기 위한 분류기의 훈련을 위하여, 원본 데이터의 색상을 임의 변경하는 가공을 거쳐 검은색의 커피 원두 이미지를 생성하여 이용할 수 있다.
이러한 색상 변경의 방법 외에도, 데이터 가공을 위하여 회전(Rotation), 스케일(Scale) 및 위치의 이동, 자르고 붙여넣기(Cut & Paste) 등, 여러 방법들이 이용될 수 있다.
도 6은 일실시예에 따른 신경망 모델이 훈련되는 과정을 예시적으로 설명하기 위한 도면이다.
도 6을 참조하면, 일실시예에 따른 전자 장치는 원본 데이터(610)를 획득하고, 원본 데이터(610)를 가공하여 가공 데이터(620)를 획득하며, 획득한 가공 데이터를 대상 데이터로 이용하여 신경망 모델(630)을 훈련시킬 수 있다. 분류기 세트(110)의 경우, 가공 데이터(620)는 각 분류기 별로 그 특성을 고려하여 다르게 구성될 수 있었다. 반면, 신경망 모델(630)의 경우 전체 라벨들을 분류하는 것을 목표로 하므로, 전체 가공 데이터(620)를 이용하여 훈련될 수 있다.
전술하였듯이, 분류기 세트(110)를 이용하여 획득하는 제1분류 정보가 설정된 조건을 만족하지 못하는 경우, 대상 데이터의 분류를 위하여 신경망 모델(630)이 이용될 수 있다. 또한, 분류기 세트(110)를 이용하여 획득하는 제1분류 정보가 설정된 조건을 만족하는 경우에도, 그 검증을 위하여 신경망 모델(630)이 이용될 수도 있다.
도 7은 일실시예에 따른 하나 이상의 신경 처리 프로세서를 이용하여 데이터 분류를 수행하는 방법을 예시적으로 설명하기 위한 도면이다.
도 7을 참조하면, 일실시예에 따른 전자 장치는 신경 처리(Neural Processing) 프로세서(700)를 이용하여 동작 중 적어도 일부를 처리할 수 있다. 보다 구체적으로, 일실시예에 따른 전자 장치는 신경 처리 프로세서(700)에 액세스할 수 있고, 신경 처리 프로세서(700)에서, 제1분류 정보(분류기 세트(110)의 분류 정보)의 획득을 위한 연산, 제2분류 정보(신경망 모델(120)의 분류 정보)의 획득을 위한 연산, 제1분류 정보 및 제2분류 정보의 비교를 위한 연산 중 적어도 일부가 처리될 수 있다.
신경 처리 프로세서(700)는 신경 처리 장치(NPU, Neural Processing Unit)를 포함하나 이에 한정되는 것은 아니다. 이하에서는 설명의 편의를 위해 NPU를 예시로 들어 신경 처리 프로세서(700)의 일부 동작을 설명하나, 그 설명의 의도가 신경 처리 프로세서(700)를 NPU로 특정하기 위한 것은 아니고, 신경 처리 프로세서(700)가 독립된 물리적 장치에 해당하는 경우로 한정하는 것도 아니다. 따라서, NPU를 예시로 들어 설명하는 경우에도, 그 설명은 다양한 유형의 신경 처리 프로세서(700)에 적용될 수 있다고 이해하여야 한다.
신경 처리 프로세서(700)는 복수의 NPU 모듈을 포함할 수 있다. 도 7은 신경 처리 장치의 계층적 구조의 일 예시를 도시한 결과일 수 있다. 이러한 예시적인 구조에서, 복수의 NPU들이 계층적으로 조직되어(organized) 보다 효율적인 방식으로 데이터 분류(예를 들어 이상 객체 검출)를 위한 다중 신경망의 계층적 아키텍처를 지원할 수 있다.
예시적인 하드웨어 아키텍처는 하나 이상의 NPU 모듈 세트를 포함할 수 있고 이는 도 7 상에서 "신경 처리 프로세서(700)"로 일반화되어 표현되었다. 또한, 각 NPU 모듈 세트는 하나 이상의 NPU 모듈을 포함할 수 있고 이는 도 7 상에서 "모듈 1" 내지 "모듈 N"으로 표현되었다.
1) NPU 모듈 세트
각 NPU 모듈 세트는 공통 명령어 캐시와 데이터 전송 모듈로 구성될 수 있다. 공통 명령 캐시 및 데이터 전송 모듈은 외부 메모리와 각 NPU 모듈 세트 간의 데이터 전송을 처리할 수 있다. CIC(공통 명령 캐시)는 외부 메모리에서 명령을 검색하여 NPU 모듈의 RISC-V 코어로 보낼 수있다. 명령어는 DDR 메모리에 저장될 수 있다. 데이터 전송 모듈은 외부 메모리(예: DDR)와 내부 메모리(예: NPU 모듈 메모리 블롭) 간에 데이터를 전송하는 데 사용될 수 있다.
2) NPU 모듈
각 모듈은 RISC-V 코어, 제어 프로세서, NPU DNN 계층 가속기, NPU 모듈 메모리 블롭 및 데이터 제어 포트로 구성될 수 있다.
각 NPU 모듈의 RISC-V 프로세서는 프로그램 카운터(PC)를 사용하여 메모리에서 가져오는 자체 명령 스트림을 실행할 수 있다.
제어 프로세서는 NPU용 보조 프로세서이며 RCORE를 NPU 및 NPU 모듈 내의 관련 로직과 접속시킬(interface) 수 있다. 제어 프로세서는 NPU 모듈 레지스터를 포함할 수 있고 NPU, 로컬 메모리 BLOB 및 데이터 전송 모듈 간의 제어 흐름을 조정할 수 있다. 또한, 제어 프로세서는 호스트 CPU(710)가 RISC-V 프로세서용 NPU 모듈 레지스터, 메모리 블롭 및 내부 메모리에 액세스할 수 있는 인터페이스를 제공할 수 있다.
RISC-V 프로세서에서 프로그램 실행을 시작하기 위해 호스트/제어 프로세서는 다음 단계 중 하나 이상을 실행할 수 있다.
1) 코드 섹션 초기화 - NPU 모듈용 실행 코드 모듈을 DDR 메모리에 로드,
2) NPU 모듈에 대한 실행 코드가 예상되는 iCache 기본 주소에 대한 진입점을 설정하여 코드의 진입점을 RISC-V 프로세서로 전달, 및
3) NPU 모듈 시작 - 시작 명령으로 구성 0 레지스터를 이용.
이를 통하여, NPU 모듈 프로세서(예: RISC-V 프로세서)에서 실행이 개시될 수 있다. 프로그램 카운터(PC)가 초기화될 수 있고, 첫 번째 명령을 iCache 기본 주소의 DDR에서 가져올(fetch) 수 있다.
예시적인 하드웨어 아키텍처에서 NPU 모듈이 계층적 구조로 구성되어 있으므로, 데이터 분류를 위한 다중 신경망의 계층적 아키텍처는 하드웨어 아키텍처와 잘 정렬될 수 있다. 다중 신경망의 개수는 NPU 모듈 집합의 개수 또는 NPU 모듈의 개수와 일치할 필요가 없다. 대신, 신경망 하이퍼파라미터(hyper-parameter) 업데이트 시 예시적인 하드웨어 아키텍처에서 계층적 구조를 이용하는 방식으로 각 신경망의 각 레이어에 반복적인 곱셈과 덧셈 명령이 할당될 수 있다. 이는 계층 구조를 고려하여 전체 계산 데이터 양을 분할하고, 분할된 각 분할된 계산 데이터 세그먼트를 각 NPU 모듈에 자연스럽게 할당하는 데 도움이 될 수 있다.
도 8은 일실시예에 따른 분류기 세트의 설계 방법을 예시적으로 설명하기 위한 도면이다.
도 8을 참조하면, 일실시예에 따른 설정된 조건을 만족하지 않는 데이터 세트(820)는 모든 분류기(830)에 동일하게 이용되고, 설정된 조건을 만족하는 데이터 세트(810)는 각 분류기에 특화되어 이용될 수 있다. 설정된 조건을 만족하지 않는 데이터 세트(820)의 일 예시는 정상 이미지 세트를 포함할 수 있고, 설정된 조건을 만족하는 데이터 세트(810)의 일 예시는 비정상 이미지 세트를 포함할 수 있다.
설정된 조건을 만족하는 데이터 세트(810)는 각각의 개별 분류기에 특화된 입력값들을 포함하므로 각각 독립적일 수 있으면서도, 여러 특징이 중첩된 이미지 집합이 존재할 수 있어 여러 분류기의 교차점(intersection)이 포함될 수 있다. 예를 들어, 하나의 이미지가 여러 특성을 가질 수 있으므로 교차점이 포함될 수 있다. 이러한 교차점 데이터의 경우, 어떤 특징(특징)을 중요하게 분류할지가 결정될 수 있다.
추론 과정(즉 실제 데이터 분류 과정)에서 다중 코어를 지원하는 NPU를 사용하여 양자화된 다중 분류기를 동시에 실행할 수 있다. 모든 분류기 결과가 나오는 데 걸리는 시간을 최소화하기 위해 최적화된 스케줄링이 수행될 수 있다. 이 경우 각 분류기의 추론 속도가 빠를수록 스케줄링에 유리할 수 있다. 각각의 분류기를 사용하는 의미를 중복하지 않기 위해 하나의 비정상 유형에 대해 하나의 분류기를 생성할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.
이러한 프로세스는 다음과 같이 요약할 수 있다.
1) 설정된 조건을 만족하는 데이터 세트(810)는 그 유형에 따라 N개의 서브 데이터 세트로 분류될 수 있다.
2) 각 서브 데이터 세트 별로 설정된 조건을 만족하지 않는 데이터 세트(820)가 결합되어 N개의 데이터 세트들이 생성될 수 있다.
3) 위의 2단계에서 만든 N개의 데이터 세트들을 이용하여 N개의 분류기가 생성될 수 있다.
도 9는 일실시예에 따른 각 분류기의 연산을 어떻게 처리할지에 연관되는 연산 스케쥴링 방법을 예시적으로 설명하기 위한 도면이다.
도 9를 참조하면, 다중 코어를 지원하는 신경 처리 프로세서(이하에서는 설명의 편의를 위하여 NPU로 설명함)에서 제1분류 정보의 획득을 위한 연산이 처리되는 경우, 전자 장치는 복수의 분류기 별로 그 동작을 위하여 요구되는 필요 연산량 정보를 획득하고, 필요 연산량 정보에 기초하여 복수의 분류기 별로 그 연산을 복수의 코어 중 어디에 할당할지를 결정할 수 있다. 다중 코어를 지원하는 신경 처리 프로세서에서는 복수의 서로 다른 연산이 병렬적으로 실행되는 바, 이와 같이 연산을 어느 코어에 할당할지를 결정함으로써, 가장 빠르고 효과적인 연산 처리를 달성할 수 있다.
일 예시에 따르면, 아래 방법에 따라 시뮬레이션이 이루어지고, 추론 속도가 가장 빠른 방법이 결정될 수 있다.
1) 각 분류기의 평균 NPU 추론 속도를 계산하고, 분류기는 추론 속도에 따라 정렬될 수 있다. 분류기의 수를 N, NPU의 코어 수를 M이라고 할 때,
a) N > M일 때 NPU의 코어는 가장 느린 추론 속도를 가지는 분류기부터(즉 그 분류를 위하여 더 큰 연산이 필요한 분류기부터) 순차적으로 할당될 수 있다. 각 코어에 하나의 분류기가 할당된 후, 할당되지 않은 분류기 중 가장 느린 추론 속도를 가지는 분류기를 가장 빠른 분류기가 할당된 코어에 할당할 수 있다. 모든 분류기가 할당되면 추론 속도가 느린 분류기 1개 또는 추론 속도가 빠른 분류기 수 개(예를 들어, 2개)가 하나의 코어를 사용할 수 있다.
b) N < M인 경우 각 분류기에 하나의 코어가 할당되고, 나머지 코어는 추론 속도가 상대적으로 느린 분류기부터 추가로 할당될 수 있다.
2) 분류기를 구성하는 계층 중 컨볼루션 연산이나 완전 연결(Fully Connected) 연산과 같이 연산량이 많은 연산은 멀티 코어로 계산할 때 더 좋은 성능을 보일 수 있으므로, 실시예에 따라서는 NPU의 적어도 일부 코어를 사용하여 컨볼루션 연산이나 완전 연결(Fully Connected) 연산 등을 우선하여 처리할 수도 있다.
3) 1)과 2)를 혼합하여 분류기의 NN 복잡도를 고려하여 추론 시퀀스를 구성한다. 분류기의 추론 시간이 기준값보다 크거나 같으면 2)와 같이 우선하여 연산을 할당하고, 그 외의 추론이 빠른 나머지 분류기에 1) 단계를 적용하여 최종적으로 모든 분류기의 추론 결과를 얻을 수 있다.
복수의 프로세서(혹은 복수의 코어)에 어떤 연산을 할당할지를 스케줄링한 결과의 예시가 도 9에 도시된다(910). 도 9를 참조하면, 연산량이 많은 분류기 1의 연산 및 분류기 2의 연산에 대해서는 복수의 코어를 이용하여(예시의 경우, 전체 코어들을 이용하여) 우선하여 연산을 처리하고, 나머지 분류기 3 내지 분류기 8에 대해서는 각 분류기에 하나의 코어를 할당한 이후, 상대적으로 추론 속도가 느린 분류기 3 및 분류기 4에 추가로 코어 하나씩을 더 할당할 수 있다.
한편, 실시예에 따라서는 전자 장치는 신경 처리 프로세서에 연관되는 복수의 코어 별 연산 능력을 판단하고, 복수의 코어 별 연산 능력에 더 기초하여 복수의 분류기 별로 그 연산을 복수의 코어 중 어디에 할당할지를 결정할 수도 있다. 즉, 도 9의 예시는 코어 간의 능력은 고려하지 않고 각 분류기 별 필요 연산량만을 고려하여 할당이 이루어졌으나, 코어 별로 연산 능력에 유의미한 차이가 있는 경우에는 이를 고려하여 예컨대 상대적으로 추론 속도가 느린 분류기에 상대적으로 연산 능력이 좋은 코어를 할당하는 등의 스케줄링이 이루어질 수도 있다.
일실시예에 따르면, 도 9의 멀티 코어 NPU에 대한 분류기 분포 매칭은 하드웨어의 처리 속도 효율과 도 4의 분류기 설정을 기반으로 수행될 수 있다. 도 9에 도시된 바와 같이, NPU가 멀티 코어인 경우, 개별 분류기들의 처리 속도가 유사할 경우 이전 분류기 설정(예를 들어, 사용자 정의 시퀀스)이 적어도 일부 반영될 수 있다. 즉, 본 발명의 분류기 시스템은 분류기 설정을 부분적으로 고려할 수 있고, 처리 속도가 유사한 개별 분류기들에 대해 사용자 정의 시퀀스를 고려할 수 있다.
한편, 일실시예에 따른 전자 장치는, 분류기 세트(110)가 제1분류 정보를 생성하는 데에 소요되는 시간 정보에 더 기초하여 분류기 세트(110)의 동작 방법을 결정할 수 있는데, 이와 관련해서 연산을 처리하는 장치의 특징(예컨대 멀티 코어 NPU인 경우 코어의 개수와 각 코어의 연산 능력 등)을 더 고려하여 분류기 세트(110)가 제1분류 정보를 생성하는 데에 소요되는 시간 정보를 판단할 수 있는 것으로 이해할 수 있으며, 이와 같이 장치 특성을 고려하여 소요 시간 정보를 판단하는 과정을 통해 결론적으로 장치의 특성을 반영하여 분류기 세트(110)의 동작 방식이 결정될 수도 있을 것이다.
도 10은 일실시예에 따른 전자 장치의 데이터 분류 방법의 동작 흐름도이다.
도 10을 참조하면, 일실시예에 따른 전자 장치는 대상 데이터를 획득한다(1010). 예를 들어, 대상 데이터는 "커피 원두"에 대한 다양한 특징을 포함하는 데이터일 수 있다.
전자 장치는 대상 데이터를 기반으로 복수의 분류기를 포함하는 분류기 세트(110)를 이용하여 제1분류 정보를 획득하고(1020), 대상 데이터를 기반으로 신경망 모델(120)을 이용하여 제2분류 정보를 획득한다(1030). 일실시예에 따르면, 제1분류 정보 및 제2분류 정보는 대상 데이터의 비정상(abnormal) 여부에 대한 정보 및 대상 데이터가 비정상인 경우 그 비정상 사유에 대한 정보 중 하나 이상을 포함할 수 있다. 예를 들어, 제1분류 정보 및 제2분류 정보는 각각 데이터가 정상적인 "커피 원두"의 이미지인지 및 비정상인 경우에는 어떠한 비정상 속성을 가지는지를 판단한 결과 정보 중 적어도 일부를 포함할 수 있다.
전자 장치는 제1분류 정보 및 제2분류 정보를 비교한다(1040). 전자 장치는 제1분류 정보 및 제2분류 정보를 비교한 결과에 기초하여 분류기 세트(110)를 검증한다(1050). 분류기 세트(110)를 검증하는 동작은, 분류기 세트(110)의 동작의 적절성 여부를 평가하는 동작뿐만 아니라, 제1분류 정보가 제2분류 정보와 일치되도록 분류기 세트(110)를 훈련시키는 동작을 포함하는 광의의 개념으로 이해할 수 있다.
이상의 도면번호 1010 내지 1050에서 설명하는 동작은 분류기 세트(110)를 훈련시키는 동작들에 대응될 수 있으나, 이에 한정되는 것은 아니다. 예컨대, 위 도면번호 1010 내지 1050에서 설명하는 동작은 실제 데이터를 분류하는 일부 실시예를 포함할 수도 있다.
한편, 실제 데이터 분류 동작은 위 도면번호 1010 내지 1050에서 설명하는 동작들에 한정되는 것은 아니다. 예컨대, 위 도면번호 1030 내지 1050은 신경망 모델(120)을 항상 이용함을 전제로 하는 동작들이나, 실제 데이터 분류의 경우에는 반드시 신경망 모델(120)을 항상 이용하여야 하는 것은 아니고, 제1분류 정보가 설정된 조건을 만족하지 않는 경우(예를 들어, 분류기 세트(110)에서 비정상 라벨을 검출하지 못한 경우)에 전자 장치가 신경망 모델(120)을 더 이용하여 제2분류 값을 획득할 수 있는 등, 다양한 실시예들이 존재할 수 있다. 한편, 제1분류 정보가 설정된 조건을 만족하지 않는 경우에 전자 장치가 신경망 모델(120)을 더 이용하는 실시예의 경우에는, 제1분류 정보와 제2분류 정보를 비교할 것이 없이, 제2분류 정보에 기초하여 대상 데이터의 분류 값을 곧바로 결정할 수도 있다.
다만, 제1분류 정보가 설정된 조건을 만족하지 않는 경우에 전자 장치가 신경망 모델(120)을 더 이용하는 실시예의 경우에도, 제1분류 정보가 설정된 조건을 만족하더라도 그 신뢰성을 평가하기 위해 신경망 모델(120)을 더 이용하여 제2분류 정보를 획득하고 제1분류 정보와 제2분류 정보를 비교하여 검증하는 동작이 수행될 수도 있는 등, 본 개시는 다양한 실시예들을 포함하는 것으로 이해하여야 한다.
도 11은 일실시예에 따른 데이터를 분류하기 위한 전자 장치의 구성의 예시도이다.
도 11을 참조하면, 전자 장치는 트랜시버(1110), 프로세서(1120) 및 메모리(1130)를 포함한다. 전자 장치는 트랜시버(1110)를 통하여 외부 장치 및 신경 처리 프로세서 등과 연결되고, 데이터를 교환할 수 있다.
프로세서(1120)는 도 1 내지 도 10을 통하여 전술한 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 10을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(1130)는 도 1 내지 도 10을 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보를 저장할 수 있다. 메모리(1130)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(1120)는 프로그램을 실행하고, 전자 장치를 제어할 수 있다. 프로세서(1120)에 의하여 실행되는 프로그램의 코드는 메모리(1130)에 저장될 수 있다.
또한 일실시예의 전자 장치는 사용자에게 정보를 제공할 수 있는 인터페이스를 더 포함할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 집적 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler), 파이썬(Python) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시예들이 구현될 수 있다.

Claims (17)

  1. 전자 장치에서 데이터를 분류하는 방법에 있어서,
    대상 데이터를 획득하는 단계;
    상기 대상 데이터를 기반으로 복수의 분류기(classifiers)를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하는 단계;
    상기 대상 데이터를 기반으로 신경망(neural network) 모델을 이용하여 제2분류 정보를 획득하는 단계;
    상기 제1분류 정보 및 상기 제2분류 정보를 비교하는 단계; 및
    상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 분류기 세트를 검증하는 단계를 포함하고,
    상기 제1분류 정보를 획득하는 단계는
    설정된 동작 순서 정보에 기반하여, 상기 대상 데이터를 기반으로 상기 복수의 분류기에 포함되는 제1분류기를 이용하는 단계;
    상기 제1분류기의 출력 정보가 설정된 조건을 만족하는 경우, 상기 제1분류기의 출력 정보를 상기 제1분류 정보로 결정하는 단계; 및
    상기 제1분류기의 출력 정보가 설정된 조건을 만족하지 않는 경우,
    상기 설정된 동작 순서 정보에 기반하여, 상기 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 상기 복수의 분류기 중에 존재하는 경우, 상기 대상 데이터를 기반으로 상기 제2분류기를 이용하는 단계; 및
    상기 제2분류기가 존재하지 않는 경우, 상기 설정된 조건을 만족하지 않음을 지시하는 정보를 획득하는 단계를 포함하고,
    상기 제1분류 정보 및 상기 제2분류 정보를 비교하는 단계는
    상기 제2분류 정보가 포함하는 복수의 후보 분류 값 별로 연관되는 확률 정보에 기초하여, 설정된 기준을 만족하는 하나 이상의 후보 분류 값을 판단하는 단계; 및
    상기 하나 이상의 후보 분류 값 별로 상기 제1분류 정보가 지시하는 분류 값과의 일치 여부를 확인하는 단계를 포함하는, 데이터를 분류하는 방법.
  2. 제1항에 있어서,
    상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 분류기 세트의 동작 방식을 결정하는 단계를 더 포함하고,
    상기 분류기 세트의 동작 방식은, 상기 복수의 분류기의 동작 순서 정보를 포함하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  3. 제2항에 있어서,
    상기 전자 장치는, 상기 분류기 세트가 상기 제1분류 정보를 생성하는 데에 소요되는 시간 정보에 더 기초하여 상기 분류기 세트의 동작 방법을 결정하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  4. 제2항에 있어서,
    상기 분류기 세트의 동작 방식을 결정하는 단계는
    상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 제1분류 정보의 신뢰도(reliability)를 판단하는 단계;
    상기 신뢰도가 설정된 임계값을 초과하는지 여부를 판단하는 단계; 및
    상기 신뢰도가 상기 설정된 임계값보다 작은 경우, 상기 분류기 세트의 동작 방식을 변경하는 단계를 포함하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 제1분류 정보 및 상기 제2분류 정보는 상기 대상 데이터의 비정상(abnormal) 여부에 대한 정보 및 상기 대상 데이터가 비정상인 경우 그 비정상 사유에 대한 정보 중 하나 이상을 포함하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    신경 처리(Neural Processing) 프로세서에 액세스하는 단계를 더 포함하고,
    상기 신경 처리 프로세서에서, 상기 제1분류 정보의 획득을 위한 연산, 상기 제2분류 정보의 획득을 위한 연산 및 상기 제1분류 정보 및 상기 제2분류 정보의 비교를 위한 연산 중 적어도 일부가 처리되는 것을 특징으로 하는, 데이터를 분류하는 방법.
  10. 제9항에 있어서,
    상기 신경 처리 프로세서에서 상기 제1분류 정보의 획득을 위한 연산이 처리되는 경우,
    상기 복수의 분류기 별로 그 동작을 위하여 요구되는 필요 연산량 정보를 획득하는 단계; 및
    상기 필요 연산량 정보에 기초하여, 상기 복수의 분류기 별로 그 연산을 복수의 코어 중 어디에 할당할지를 결정하는 단계를 더 포함하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  11. 제10항에 있어서,
    상기 신경 처리 프로세서에 연관되는 복수의 코어 별 연산 능력을 판단하는 단계를 더 포함하고,
    상기 전자 장치는 상기 복수의 코어 별 연산 능력에 더 기초하여 상기 복수의 분류기 별로 그 연산을 상기 복수의 코어 중 어디에 할당할지를 결정하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  12. 제1항에 있어서,
    상기 복수의 분류기가 포함하는 제1분류기에서, 데이터가 제1분류 값을 가지는지 여부가 판단되고,
    상기 복수의 분류기가 포함하는 제2분류기에서, 데이터가 제2분류 값을 가지는지 여부가 판단되고,
    상기 제1분류 값 및 상기 제2분류 값은 서로 상이한 것을 특징으로 하는, 데이터를 분류하는 방법.
  13. 제1항에 있어서,
    상기 대상 데이터를 획득하는 단계는
    원본 데이터를 획득하는 단계; 및
    상기 원본 데이터를 가공하여 상기 대상 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  14. 제1항에 있어서,
    상기 신경망 모델은
    하나 이상의 컨볼루션(Convolution) 레이어, 하나 이상의 풀링(Pooling) 레이어 및 하나 이상의 덴스(Dense) 레이어 중 하나 이상을 포함하는 것을 특징으로 하는, 데이터를 분류하는 방법.
  15. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
  16. 삭제
  17. 데이터를 분류하는 전자 장치에 있어서,
    명령어를 저장하는 메모리 및 프로세서를 포함하고,
    상기 프로세서는, 상기 메모리와 연결되어,
    대상 데이터를 획득하고,
    상기 대상 데이터를 기반으로 복수의 분류기를 포함하는 분류기 세트를 이용하여 제1분류 정보를 획득하고,
    상기 대상 데이터를 기반으로 신경망 모델을 이용하여 제2분류 정보를 획득하고,
    상기 제1분류 정보 및 상기 제2분류 정보를 비교하고,
    상기 제1분류 정보 및 상기 제2분류 정보를 비교한 결과에 기초하여, 상기 분류기 세트의 동작을 검증하고,
    상기 제1분류 정보를 획득하기 위하여, 상기 프로세서는,
    설정된 동작 순서 정보에 기반하여, 상기 대상 데이터를 기반으로 상기 복수의 분류기에 포함되는 제1분류기를 이용하고,
    상기 제1분류기의 출력 정보가 설정된 조건을 만족하는 경우, 상기 제1분류기의 출력 정보를 상기 제1분류 정보로 결정하고,
    상기 제1분류기의 출력 정보가 설정된 조건을 만족하지 않는 경우,
    상기 설정된 동작 순서 정보에 기반하여, 상기 제1분류기의 다음 순서에 동작하도록 설정된 제2분류기가 상기 복수의 분류기 중에 존재하는 경우, 상기 대상 데이터를 기반으로 상기 제2분류기를 이용하고,
    상기 제2분류기가 존재하지 않는 경우, 상기 설정된 조건을 만족하지 않음을 지시하는 정보를 획득하고,
    상기 제1분류 정보 및 상기 제2분류 정보를 비교하기 위하여, 상기 프로세서는,
    상기 제2분류 정보가 포함하는 복수의 후보 분류 값 별로 연관되는 확률 정보에 기초하여, 설정된 기준을 만족하는 하나 이상의 후보 분류 값을 판단하고,
    상기 하나 이상의 후보 분류 값 별로 상기 제1분류 정보가 지시하는 분류 값과의 일치 여부를 확인하는 단계를 포함하는, 전자 장치.
KR1020230026658A 2022-03-31 2023-02-28 데이터를 분류하는 방법 및 장치 KR102656568B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263326133P 2022-03-31 2022-03-31
US63/326,133 2022-03-31

Publications (2)

Publication Number Publication Date
KR20230141471A KR20230141471A (ko) 2023-10-10
KR102656568B1 true KR102656568B1 (ko) 2024-04-12

Family

ID=88194548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230026658A KR102656568B1 (ko) 2022-03-31 2023-02-28 데이터를 분류하는 방법 및 장치

Country Status (2)

Country Link
US (1) US20230315813A1 (ko)
KR (1) KR102656568B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102573671B1 (ko) * 2022-11-14 2023-09-08 주식회사 라이드플럭스 비정상 데이터의 탐지가 가능한 분류 모델 생성방법, 장치 및 컴퓨터프로그램

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102133972B1 (ko) * 2018-07-23 2020-07-15 세종대학교산학협력단 다중 분류기 통합 제어 시스템 및 방법
KR20200111948A (ko) * 2019-03-20 2020-10-05 삼성전자주식회사 인공 신경망을 처리하는 방법 및 이를 위한 전자 장치
US20210383224A1 (en) * 2020-06-05 2021-12-09 Htc Corporation Machine learning method and machine learning system involving data augmentation
KR102574719B1 (ko) * 2020-07-17 2023-09-06 고려대학교 산학협력단 동적 예측 신뢰도 임계값 선택에 기반한 저복잡도 인공지능 모델 학습을 위한 전자 장치 및 학습 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102573671B1 (ko) * 2022-11-14 2023-09-08 주식회사 라이드플럭스 비정상 데이터의 탐지가 가능한 분류 모델 생성방법, 장치 및 컴퓨터프로그램

Also Published As

Publication number Publication date
KR20230141471A (ko) 2023-10-10
US20230315813A1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
US10565475B2 (en) Generating a machine learning model for objects based on augmenting the objects with physical properties
CN109376615B (zh) 用于提升深度学习网络预测性能的方法、装置及存储介质
US11544630B2 (en) Automatic feature subset selection using feature ranking and scalable automatic search
US11488055B2 (en) Training corpus refinement and incremental updating
CN111523119B (zh) 漏洞检测的方法和装置、电子设备及计算机可读存储介质
US11868721B2 (en) Intelligent knowledge management-driven decision making model
US11568232B2 (en) Deep learning FPGA converter
US11106801B1 (en) Utilizing orchestration and augmented vulnerability triage for software security testing
US11809968B2 (en) Control of hyperparameter tuning based on machine learning
RU2652461C1 (ru) Дифференциальная классификация с использованием нескольких нейронных сетей
US11403550B2 (en) Classifier
CN116897356A (zh) 算子的调度运行时间比较方法、装置及存储介质
Soui et al. Deep learning-based model using DensNet201 for mobile user interface evaluation
US20210166080A1 (en) Utilizing object oriented programming to validate machine learning classifiers and word embeddings
KR20230054167A (ko) 기계학습모델의 생성 방법 및 그 장치
US11620550B2 (en) Automated data table discovery for automated machine learning
KR102656568B1 (ko) 데이터를 분류하는 방법 및 장치
CN111949514A (zh) 一种模型预测方法、装置及存储介质
US11681511B2 (en) Systems and methods for building and deploying machine learning applications
CN108229572B (zh) 一种参数寻优方法及计算设备
JP6577922B2 (ja) 検索装置、方法、及びプログラム
US20230419189A1 (en) Programmatic selector for choosing a well-suited stacked machine learning ensemble pipeline and hyperparameter values
US20240185116A1 (en) Systems and methods for bagging ensemble classifiers for imbalanced big data
US12001823B2 (en) Systems and methods for building and deploying machine learning applications
Papadakis Interlinking Geospatial Data Sources

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right