KR20230085529A - Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same - Google Patents

Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same Download PDF

Info

Publication number
KR20230085529A
KR20230085529A KR1020210173776A KR20210173776A KR20230085529A KR 20230085529 A KR20230085529 A KR 20230085529A KR 1020210173776 A KR1020210173776 A KR 1020210173776A KR 20210173776 A KR20210173776 A KR 20210173776A KR 20230085529 A KR20230085529 A KR 20230085529A
Authority
KR
South Korea
Prior art keywords
label
image
data
loss function
matrix
Prior art date
Application number
KR1020210173776A
Other languages
Korean (ko)
Inventor
서창호
강민근
이기원
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020210173776A priority Critical patent/KR20230085529A/en
Publication of KR20230085529A publication Critical patent/KR20230085529A/en

Links

Images

Classifications

    • 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
    • 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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • 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/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • 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)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

레이블이 부분적으로 주어진 환경에서 다중 레이블을 분류하는 방법 및 이를 수행하는 장치가 개시된다. 일 실시예에 따른 다중 레이블 분류 방법은, 이미지 및 상기 이미지의 부분 레이블 데이터를 수신하는 동작과 상기 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 상기 이미지의 특징 벡터를 획득하는 동작과 상기 이미지의 특징 벡터 및 상기 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성하는 동작과 상기 제1 행렬을 오토 인코더에 입력함으로써 상기 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득하는 동작을 포함할 수 있다.A method for classifying multiple labels in a partially given label environment and an apparatus for performing the same are disclosed. A multi-label classification method according to an embodiment includes an operation of receiving an image and partial label data of the image, an operation of acquiring a feature vector of the image by inputting the image to a convolutional neural network, and a feature vector of the image. and generating a first matrix based on partial label data of the image and obtaining a second matrix including estimated label data of the image by inputting the first matrix to an auto-encoder.

Description

레이블이 부분적으로 주어진 환경에서 다중 레이블을 분류하는 방법 및 이를 수행하는 장치{METHOD FOR CLASSIFYING MULTI-LABEL IN A PARTIALLY LABELED ENVIRONMENT AND AN APPARATUS FOR PERFORMING THE SAME}METHOD FOR CLASSIFYING MULTI-LABEL IN A PARTIALLY LABELED ENVIRONMENT AND AN APPARATUS FOR PERFORMING THE SAME}

아래 개시는 레이블이 부분적으로 주어진 환경에서 다중 레이블을 분류하는 방법 및 이를 수행하는 장치에 관한 것이다.The disclosure below relates to a method for classifying multiple labels in a label-partially given environment and an apparatus for performing the same.

최근 딥러닝 분야에서 다중 레이블 분류(Multi-label Classification)에 대한 연구가 활발히 진행되고 있다. 다중 레이블 분류란 기계 학습(Machine Learning)의 한 범주로, 임의에 이미지에 대한 다중 클래스의 레이블 값을 예측하는 것을 의미한다.Recently, research on multi-label classification in the field of deep learning is being actively conducted. Multi-label classification is a category of machine learning and means predicting label values of multiple classes for an arbitrary image.

뉴럴 네트워크 기반 판별기는 많은 양의 레이블을 가진 데이터에 의해 학습될 경우 우수한 판별 성능을 가진다. 그러나 실제 현실 상황에서 데이터 레이블링에는 많은 시간이 소요되며, 데이터 레이블링을 수행할 인력은 부족한 실정이다. 이러한 문제점은 다중 레이블 분류 프로젝트에서 더 큰 문제로 다가온다.Neural network-based discriminators have excellent discriminant performance when trained with a large amount of labeled data. However, in an actual situation, data labeling takes a lot of time, and manpower to perform data labeling is insufficient. This problem becomes a bigger problem in multi-label classification projects.

다중 레이블 분류의 목표는 하나의 이미지에 대해 모든 객체 클래스의 존재(presence) 또는 부재(absence)를 식별하는 것이다. 하나의 객체 클래스 인식만을 목표로 하는 단일 레이블 분류와 비교할 때, 다중 레이블 분류는 많은 레이블 주석화 과정이 요구된다.The goal of multi-label classification is to identify the presence or absence of all object classes for an image. Compared to single-label classification that aims only at recognizing one object class, multi-label classification requires many label annotation processes.

이미지의 레이블 데이터의 일부만 주어진 환경에서 다중 레이블 분류를 수행하는 기술이 요구된다.A technique for performing multi-label classification in an environment where only a part of the label data of an image is given is required.

실시예에 따르면 오토 인코더의 행렬 채움에 기초하여 이미지 및 이미지의 부분 레이블 데이터로부터 이미지의 전체 레이블 데이터를 획득할 수 있다.According to an embodiment, full label data of an image may be obtained from an image and partial label data of the image based on matrix filling of an auto-encoder.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical challenges are not limited to the above-described technical challenges, and other technical challenges may exist.

일 실시예에 따른 다중 레이블 분류 방법은, 이미지 및 상기 이미지의 부분 레이블 데이터를 수신하는 동작과 상기 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 상기 이미지의 특징 벡터를 획득하는 동작과 상기 이미지의 특징 벡터 및 상기 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성하는 동작과 상기 제1 행렬을 오토 인코더에 입력함으로써 상기 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득하는 동작을 포함할 수 있다.A multi-label classification method according to an embodiment includes an operation of receiving an image and partial label data of the image, an operation of acquiring a feature vector of the image by inputting the image to a convolutional neural network, and a feature vector of the image. and generating a first matrix based on partial label data of the image and obtaining a second matrix including estimated label data of the image by inputting the first matrix to an auto-encoder.

상기 이미지는, 복수의 객체 클래스에 매칭되는 객체를 포함하고, 상기 부분 레이블 데이터는, 상기 복수의 객체 클래스의 일부만이 레이블된 데이터이고, 상기 추정 레이블 데이터는, 상기 복수의 객체 클레스가 전부 레이블된 데이터일 수 있다.The image includes objects matching a plurality of object classes, the partial label data is data labeled with only some of the plurality of object classes, and the estimated label data includes all of the plurality of object classes labeled. can be data.

상기 제1 행렬을 생성하는 동작은, 상기 제1 행렬의 하나의 열에 상기 특징 벡터와 상기 부분 레이블 데이터를 순차적으로 입력하는 동작을 포함할 수 있다.The generating of the first matrix may include sequentially inputting the feature vector and the partial label data into one column of the first matrix.

상기 다중 레이블 분류 방법은, 상기 이미지 및 상기 제1 행렬에 기초하여 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시키는 동작을 더 포함할 수 있다.The multi-label classification method may further include an operation of jointly learning the convolutional neural network and the auto encoder based on the image and the first matrix.

상기 공동으로 학습시키는 동작은, 상기 부분 레이블 데이터에 기초하여 제1 손실 함수를 계산하는 동작을 포함할 수 있다.The jointly learning operation may include calculating a first loss function based on the partial label data.

상기 공동으로 학습시키는 동작은, 복수의 이미지 간의 유사도를 나타내는 유사도 그래프를 상기 추정 레이블 데이터에 기초하여 생성하는 동작과 상기 유사도 그래프에 기초하여 제2 손실 함수를 계산하는 동작을 더 포함할 수 있다.The jointly learning operation may further include generating a similarity graph representing a similarity between a plurality of images based on the estimated label data and calculating a second loss function based on the similarity graph.

상기 유사도 그래프는, 코사인 유사도 그래프일 수 있다.The similarity graph may be a cosine similarity graph.

상기 공동으로 학습시키는 동작은, 상기 추정 레이블 데이터 및 상기 제2 행렬에 포함된 추정 특징 벡터에 기초하여 제3 손실 함수를 계산하는 동작을 더 포함할 수 있다.The jointly learning may further include calculating a third loss function based on the estimated label data and the estimated feature vector included in the second matrix.

상기 공동으로 학습시키는 동작은, 상기 제1 손실 함수, 상기 제2 손실 함수, 및 상기 제3손실 함수에 기초한 제4 손실 함수를 계산하는 동작과 상기 제4 손실 함수를 최소화하도록 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시키는 동작을 더 포함할 수 있다.The jointly learning operation includes calculating a fourth loss function based on the first loss function, the second loss function, and the third loss function, and the convolutional neural network to minimize the fourth loss function. An operation of jointly learning the network and the auto-encoder may be further included.

일 실시예에 따른 다중 레이블 분류 장치는, 하나 이상의 인스트럭션을 저장하는 메모리와 상기 인스트럭션을 실행시키기 위한 프로세서를 포함하고, 상기 인스트럭션이 실행될 때, 상기 프로세서는, 이미지 및 상기 이미지의 부분 레이블 데이터를 수신하고, 상기 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 상기 이미지의 특징 벡터를 획득하고, 상기 이미지의 특징 벡터 및 상기 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성하고, 상기 제1 행렬을 오토 인코더에 입력함으로써 상기 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득할 수 있다.An apparatus for multi-label classification according to an embodiment includes a memory for storing one or more instructions and a processor for executing the instructions, wherein when the instructions are executed, the processor receives an image and partial label data of the image. and obtaining a feature vector of the image by inputting the image to a convolutional neural network, generating a first matrix based on the feature vector of the image and partial label data of the image, and generating the first matrix automatically. A second matrix including estimated label data of the image may be obtained by inputting the image to the encoder.

상기 이미지는, 복수의 객체 클래스에 매칭되는 객체를 포함하고, 상기 부분 레이블 데이터는, 상기 복수의 객체 클래스의 일부만이 레이블된 데이터이고, 상기 추정 레이블 데이터는, 상기 복수의 객체 클레스가 전부 레이블된 데이터일 수 있다.The image includes objects matching a plurality of object classes, the partial label data is data labeled with only some of the plurality of object classes, and the estimated label data includes all of the plurality of object classes labeled. can be data.

상기 프로세서는, 상기 제1 행렬의 하나의 열에 상기 특징 벡터와 상기 부분 레이블 데이터를 순차적으로 입력할 수 있다.The processor may sequentially input the feature vector and the partial label data into one column of the first matrix.

상기 프로세서는, 상기 이미지 및 상기 제1 행렬에 기초하여 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시킬 수 있다.The processor may jointly train the convolutional neural network and the auto encoder based on the image and the first matrix.

상기 프로세서는, 상기 부분 레이블 데이터에 기초하여 제1 손실 함수를 계산할 수 있다.The processor may calculate a first loss function based on the partial label data.

상기 프로세서는, 복수의 이미지 간의 유사도를 나타내는 유사도 그래프를 상기 추정 레이블 데이터에 기초하여 생성하고, 상기 유사도 그래프에 기초하여 제2 손실 함수를 계산할 수 있다.The processor may generate a similarity graph representing a similarity between a plurality of images based on the estimated label data, and calculate a second loss function based on the similarity graph.

상기 유사도 그래프는, 코사인 유사도 그래프일 수 있다.The similarity graph may be a cosine similarity graph.

상기 프로세서는, 상기 추정 레이블 데이터 및 상기 제2 행렬에 포함된 추정 특징 벡터에 기초하여 제3 손실 함수를 계산할 수 있다.The processor may calculate a third loss function based on the estimated label data and an estimated feature vector included in the second matrix.

상기 프로세서는, 상기 제1 손실 함수, 상기 제2 손실 함수, 및 상기 제3손실 함수에 기초한 제4 손실 함수를 계산하고, 상기 제4 손실 함수를 최소화하도록 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시킬 수 있다.The processor calculates a fourth loss function based on the first loss function, the second loss function, and the third loss function, and the convolutional neural network and the auto encoder to minimize the fourth loss function. can be learned jointly.

도 1은 이미지와 이미지의 레이블 데이터의 예를 나타낸다.
도 2는 일 실시예에 따른 다중 레이블 분류 장치의 간략한 블록도이다.
도 3은 다중 레이블 분류를 위한 뉴럴 네트워크 구조를 나타낸다.
도 4는 도 3에 도시된 오토 인코더의 일 예를 나타낸다.
도 5는 도 3에 도시된 오토 인코더의 다른 예를 나타낸다.
도 6는 도 2에 도시된 다중 레이블 분류 장치의 성능의 일 예를 나타낸다.
도 7는 도 2에 도시된 다중 레이블 분류 장치의 성능의 다른 예를 나타낸다.
도 8은 일 실시예에 따른 다중 레이블 분류 방법의 흐름도이다.
1 shows an example of an image and label data of the image.
2 is a simplified block diagram of a multi-label classification apparatus according to an embodiment.
3 shows a neural network structure for multi-label classification.
FIG. 4 shows an example of the auto encoder shown in FIG. 3 .
FIG. 5 shows another example of the auto encoder shown in FIG. 3 .
FIG. 6 shows an example of performance of the multi-label classification apparatus shown in FIG. 2 .
FIG. 7 shows another example of performance of the multi-label classification apparatus shown in FIG. 2 .
8 is a flowchart of a multi-label classification method according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 이미지와 이미지의 레이블 데이터의 예를 나타낸다.1 shows an example of an image and label data of the image.

다중 레이블 분류는 이미지에 대한 다중 클래스의 레이블 값을 예측하는 것을 의미할 수 있다. 예를 들어, 다중 레이블 분류는 복수의 객체를 포함하는 이미지에 어떤 객체가 존재하고, 어떤 객체가 존재하지 않는지를 예측하는 것일 수 있다.Multi-label classification may mean predicting label values of multiple classes for an image. For example, multi-label classification may be to predict which objects are present and which objects are not present in an image including a plurality of objects.

도 1의 (a)는 다중 레이블 분류가 수행되기 이전의 데이터일 수 있고, 도 1의 (b)는 다중 레이블 분류가 수행된 후의 데이터일 수 있다.(a) of FIG. 1 may be data before multi-label classification is performed, and (b) of FIG. 1 may be data after multi-label classification is performed.

도 1의 (a)를 참조하면, 이미지의 레이블 데이터는 자전거가 없다는 정보(-1) 및 사람이 있다는 정보(1)를 포함할 수 있고, 이미지의 레이블 데이터는 산, 소, 말 등에 관한 정보(0)를 포함하지 않을 수 있다. 도 1의 (a)의 이미지 레이블 데이터는 복수의 객체 클래스의 일부(예: 자전거, 사람)만이 레이블된 데이터일 수 있다.Referring to (a) of FIG. 1 , the label data of the image may include information that there is no bicycle (-1) and information that there is a person (1), and the label data of the image may include information about mountains, cows, horses, etc. (0) may not be included. The image label data of FIG. 1 (a) may be data labeled with only some of a plurality of object classes (eg, bicycle, person).

도 1의 (b)를 참조하면, 이미지의 레이블 데이터는 산, 자전거, 및 말이 없다는 정보(-1) 및 소와 사람이 있다는 정보(1)를 포함할 수 있다. 도 1의 (b)의 이미지 레이블 데이터는 복수의 객체 클래스의 전부(예: 산, 자전거, 말, 소, 사람 등)가 레이블된 데이터일 수 있다.Referring to (b) of FIG. 1 , the label data of the image may include information (-1) that there are no mountains, bicycles, and horses, and information (1) that there are cows and people. The image label data of FIG. 1(b) may be data labeled with all of a plurality of object classes (eg, mountain, bicycle, horse, cow, person, etc.).

이미지와 이미지의 레이블 데이터가 매칭된 데이터 D는 수학식 1을 통해 표현될 수 있다.Data D in which the image and the label data of the image are matched can be expressed through Equation 1.

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

수학식 1에서,

Figure pat00002
는 i번째 이미지의 데이터이고,
Figure pat00003
는 i번째 이미지의 레이블 데이터이고, m은 이미지의 개수이고,
Figure pat00004
는 i번째 이미지의 j번째 클래스의 레이블 값이고, c는 클래스의 개수일 수 있다.In Equation 1,
Figure pat00002
is the data of the ith image,
Figure pat00003
is the label data of the ith image, m is the number of images,
Figure pat00004
is a label value of the j-th class of the i-th image, and c may be the number of classes.

Figure pat00005
= 1을 만족할 때, i번째 이미지에는 j번째 클래스에 해당하는 객체가 존재할 수 있고,
Figure pat00006
= -1을 만족할 때, i번째 이미지에는 j번째 클래스에 해당하는 객체가 존재하지 않을 수 있고,
Figure pat00007
= 0을 만족할 때, i번째 이미지에는 j번째 클래스에 해당하는 객체에 대한 정보가 존재하지 않을 수 있다.
Figure pat00005
= 1, an object corresponding to the j-th class may exist in the i-th image,
Figure pat00006
= -1, an object corresponding to the j-th class may not exist in the i-th image,
Figure pat00007
= 0, information about an object corresponding to the j-th class may not exist in the i-th image.

객체 클래스의 모든 레이블 값이 주어진 상황이 아닌 객체 클래스의 레이블 값이 일부만 주어진 상황에서 이미지의 다중 레이블 분류를 수행하는 기술이 현재 요구되고 있다.A technology for performing multi-label classification of an image under a situation in which all label values of an object class are given but not all label values of an object class is currently required.

다중 레이블 분류를 위한 하나의 방법으로, 관찰되지 않은 레이블을 점진적으로 업데이트하는 방법이 있다. 이 방법은 먼저 높은 신뢰도로 예측한 표본들을 새로운 레이블로 추가하고, 점차 더 어려운 표본들을 새로운 레이블로 추가함으로써 점진적으로 판별기를 학습시킬 수 있다. 이 방법은 높은 신뢰 수준을 가진 예측만을 새로운 레이블로 간주할 수 있다(예: pseudo labeling). 이 방법은 주석이 새롭게 달린 레이블을 레이블 세트로 포함시켜 판별기를 반복적으로 트레이닝할 수 있다. 이 방법은 서로 다른 이미지 간에 유사도(상관 관계)를 파악하지 않고 서로 다른 레이블에 대한 상관 관계만을 이용하는 문제점을 가지고 있고, 이 방법은 부정확한 레이블링을 통해 바람직하지 않은 성능을 가질 수 있다.As one method for multi-label classification, there is a method of incrementally updating unobserved labels. This method can gradually train the discriminator by first adding samples predicted with high reliability as new labels, and gradually adding more difficult samples as new labels. This method can consider only predictions with a high confidence level as new labels (e.g. pseudo labeling). This method can iteratively train the discriminator by including newly annotated labels as a set of labels. This method has a problem of using only the correlation of different labels without determining the degree of similarity (correlation) between different images, and this method may have undesirable performance due to inaccurate labeling.

다중 레이블 분류 방법 중 하나는 그래프(예: 유사도 그래프)에 기초하여 이미지 간의 상관 관계를 고려할 수 있다. 이 방법은 Orthogonal Matching Pursuit (OMP)이라는 Compressed Sensing(CS) 알고리즘을 사용할 수 있다. 이 방법은 상당히 우수한 성능을 갖지만, 판별기 모델 파라미터가 업데이트될 때마다 독립적으로 그래프 구성을 수행하므로 상당한 계산 오버헤드를 요구한다. 이 방법은 또한 개별 이미지에 대해 OMP가 수행되므로 메모리 점유율이 추가로 증가될 수 있다.One of the multi-label classification methods may consider a correlation between images based on a graph (eg, a similarity graph). This method can use Compressed Sensing (CS) algorithm called Orthogonal Matching Pursuit (OMP). This method has excellent performance, but it requires considerable computational overhead because it independently performs graph construction whenever the discriminator model parameters are updated. This method can also further increase memory occupancy because OMP is performed on individual images.

레이블이 부분적으로 주어진 환경에서, 다중 레이블 분류 방법 중 하나는 행렬 채움 알고리즘(matrix completion algorithm)을 통해 다중 레이블 분류를 수행할 수 있다. 이 방법은 이미지 특징 벡터(image feature vector)와 이미지마다 부분적으로 주어진 레이블 데이터를 쌓아 행렬을 구성한다. 판별기 모델 파라미터가 업데이트될 때마다 이미지 특징 벡터가 바뀌게 되고 판별기 모델 파라미터가 업데이트될 때마다 행렬 채움 알고리즘이 다시 동작하므로, 이 방법은 상당한 계산 복잡도를 가질 수 있다.In environments where labels are partially given, one of the multi-label classification methods can perform multi-label classification through a matrix completion algorithm. This method constructs a matrix by stacking image feature vectors and partially given label data for each image. Since the image feature vector changes each time the discriminator model parameters are updated and the matrix filling algorithm runs again each time the discriminator model parameters are updated, this method can have considerable computational complexity.

도 2는 일 실시예에 따른 다중 레이블 분류 장치의 간략한 블록도이다.2 is a simplified block diagram of a multi-label classification apparatus according to an embodiment.

다중 레이블 분류 장치(100)는 오토 인코더의 행렬 채움(matrix completion)에 기초하여 이미지의 다중 레이블 분류를 수행할 수 있다.The multi-label classification apparatus 100 may perform multi-label classification of an image based on matrix completion of an auto-encoder.

다중 레이블 분류 장치(100)는 오토 인코더의 행렬 채움에 기초하여 이미지 및 이미지의 부분 레이블 데이터로부터 이미지의 전체 레이블 데이터를 획득할 수 있다.The multi-label classification apparatus 100 may obtain entire label data of an image from the image and partial label data of the image based on matrix filling of the auto-encoder.

다중 레이블 분류 장치(100)는 이미지의 특징 벡터와 이미지의 부분 레이블 데이터에 기초하여 입력 행렬을 생성할 수 있고, 오토 인코더는 입력 행렬의 행렬 채움을 수행함으로써 이미지의 전체 레이블 데이터를 포함하는 출력 행렬을 생성할 수 있다.The multi-label classification apparatus 100 may generate an input matrix based on the feature vector of the image and partial label data of the image, and the auto-encoder performs matrix filling of the input matrix to output the matrix including the entire label data of the image. can create

다중 레이블 분류 장치(100)는 오토 인코더에 기초하여 우수한 정확도로 다중 레이블 분류를 수행할 수 있고, 전체 클래스의 수가 적은 환경에서도 낮은 복잡도, 높은 성능으로 다중 레이블 분류를 수행할 수 있다.The multi-label classification apparatus 100 can perform multi-label classification with excellent accuracy based on an auto-encoder, and can perform multi-label classification with low complexity and high performance even in an environment in which the total number of classes is small.

다중 레이블 분류 장치(100)는 오토 인코더의 출력 행렬에 기초하여 코사인 유사도 그래프를 생성할 수 있고, 코사인 유사도 그래프에 기초하여 오토 인코더 및 컨볼루셔널 뉴럴 네트워크를 동시에 학습시킴으로써 학습 시간을 감소시킬 수 있다.The multi-label classification apparatus 100 may generate a cosine similarity graph based on the output matrix of the autoencoder, and reduce learning time by simultaneously training the autoencoder and the convolutional neural network based on the cosine similarity graph. .

다중 레이블 분류 장치(100)는 레이블링에 요구되는 비용과 소모 시간을 절감시킬 수 있다.The multi-label classification apparatus 100 can reduce cost and time required for labeling.

다중 레이블 분류 장치(100)는 뉴럴 네트워크를 학습시킬 수 있다. 다중 레이블 분류 장치(100)는 학습된 뉴럴 네트워크에 기초하여 추론을 수행할 수 있다.The multi-label classification apparatus 100 may train a neural network. The multi-label classification apparatus 100 may perform inference based on the learned neural network.

뉴럴 네트워크(또는 인공 신경망)는 기계학습과 인지과학에서 생물학의 신경을 모방한 통계학적 학습 알고리즘을 포함할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.Neural networks (or artificial neural networks) can include statistical learning algorithms that mimic biological neurons in machine learning and cognitive science. A neural network may refer to an overall model having a problem-solving ability by changing synaptic coupling strength through learning of artificial neurons (nodes) formed in a network by synaptic coupling.

뉴럴 네트워크의 뉴런은 가중치 또는 바이어스의 조합을 포함할 수 있다. 뉴럴 네트워크는 하나 이상의 뉴런 또는 노드로 구성된 하나 이상의 레이어(layer)를 포함할 수 있다. 뉴럴 네트워크는 뉴런의 가중치를 학습을 통해 변화시킴으로써 임의의 입력으로부터 예측하고자 하는 결과를 추론할 수 있다.Neurons in a neural network may contain a combination of weights or biases. A neural network may include one or more layers composed of one or more neurons or nodes. A neural network can infer a result to be predicted from an arbitrary input by changing the weight of a neuron through learning.

뉴럴 네트워크는 심층 뉴럴 네트워크 (Deep Neural Network)를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), 퍼셉트론(perceptron), 다층 퍼셉트론(multilayer perceptron), FF(Feed Forward), RBF(Radial Basis Network), DFF(Deep Feed Forward), LSTM(Long Short Term Memory), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network), LSM(Liquid State Machine), ELM(Extreme Learning Machine), ESN(Echo State Network), DRN(Deep Residual Network), DNC(Differentiable Neural Computer), NTM(Neural Turning Machine), CN(Capsule Network), KN(Kohonen Network) 및 AN(Attention Network)를 포함할 수 있다.The neural network may include a deep neural network. Neural networks include CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), perceptron, multilayer perceptron, FF (Feed Forward), RBF (Radial Basis Network), DFF (Deep Feed Forward), LSTM (Long Short Term Memory), GRU (Gated Recurrent Unit), AE (Auto Encoder), VAE (Variational Auto Encoder), DAE (Denoising Auto Encoder), SAE (Sparse Auto Encoder), MC (Markov Chain), HN (Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network) ), LSM (Liquid State Machine), ELM (Extreme Learning Machine), ESN (Echo State Network), DRN (Deep Residual Network), DNC (Differentiable Neural Computer), NTM (Neural Turning Machine), CN (Capsule Network), It may include a Kohonen Network (KN) and an Attention Network (AN).

다중 레이블 분류 장치(100)는 마더보드(motherboard)와 같은 인쇄 회로 기판(printed circuit board(PCB)), 집적 회로(integrated circuit(IC)), 또는 SoC(system on chip)로 구현될 수 있다. 예를 들어, 다중 레이블 분류 장치(100)는 애플리케이션 프로세서(application processor)로 구현될 수 있다.The multi-label sorting apparatus 100 may be implemented with a printed circuit board (PCB) such as a motherboard, an integrated circuit (IC), or a system on chip (SoC). For example, the multi-label classification apparatus 100 may be implemented as an application processor.

또한, 다중 레이블 분류 장치(100)는 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.In addition, the multi-label classification apparatus 100 may be implemented in a personal computer (PC), data server, or portable device.

휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.Portable devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), and enterprise digital assistants (EDAs). , digital still camera, digital video camera, portable multimedia player (PMP), personal navigation device or portable navigation device (PND), handheld game console, e-book ( e-book) or a smart device. A smart device may be implemented as a smart watch, a smart band, or a smart ring.

다중 레이블 분류 장치(100)는 메모리(110) 및 프로세서(130)를 포함할 수 있다.The multi-label classification apparatus 100 may include a memory 110 and a processor 130 .

메모리(110)는 프로세서(130)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.Memory 110 may store instructions (or programs) executable by processor 130 . For example, the instructions may include instructions for executing an operation of the processor and/or an operation of each component of the processor.

메모리(110)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.The memory 110 may be implemented as a volatile memory device or a nonvolatile memory device.

휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The volatile memory device may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).

불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Non-volatile memory devices include electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic RAM (MRAM), spin-transfer torque (STT)-MRAM (conductive bridging RAM), and conductive bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Polymer RAM (PoRAM)), Nano Floating Gate Memory Memory (NFGM)), holographic memory, molecular electronic memory device (Molecular Electronic Memory Device), or Insulator Resistance Change Memory.

프로세서(130)는 메모리(110)에 저장된 데이터를 처리할 수 있다. 프로세서(130)는 메모리(110)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(130)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 130 may process data stored in the memory 110 . The processor 130 may execute computer readable code (eg, software) stored in the memory 110 and instructions triggered by the processor 130 .

프로세서(130)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 130 may be a hardware-implemented data processing device having a circuit having a physical structure for executing desired operations. For example, desired operations may include codes or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing unit implemented in hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).

프로세서(130)는 이미지 및 이미지의 부분 레이블 데이터를 수신할 수 있다. 이미지는 복수의 객체 클래스에 매칭되는 객체를 포함할 수 있고, 부분 레이블 데이터는 복수의 객체 클래스의 일부만이 레이블된 데이터일 수 있다.The processor 130 may receive an image and partial label data of the image. The image may include objects matched to a plurality of object classes, and the partial label data may be data in which only some of the plurality of object classes are labeled.

프로세서(130)는 수신한 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 이미지의 특징 벡터를 획득할 수 있다.The processor 130 may obtain a feature vector of the image by inputting the received image to the convolutional neural network.

프로세서(130)는 이미지의 특징 벡터 및 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성할 수 있다. 프로세서(130)는 하나의 열(column)에 특징 벡터와 부분 레이블 데이터를 순차적으로 입력함으로써 제1 행렬을 생성할 수 있다.The processor 130 may generate a first matrix based on the feature vector of the image and partial label data of the image. The processor 130 may generate a first matrix by sequentially inputting feature vectors and partial label data in one column.

프로세서(130)는 제1 행렬을 오토 인코더에 입력함으로써 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득할 수 있다. 제2 행렬은 이미지의 추정 특징 벡터 및 이미지의 추정 레이블 데이터를 포함할 수 있고, 추정 레이블 데이터는 복수의 객체 클레스가 전부 레이블된 데이터일 수 있다.The processor 130 may obtain a second matrix including estimated label data of an image by inputting the first matrix to an auto-encoder. The second matrix may include an estimated feature vector of the image and estimated label data of the image, and the estimated label data may be data in which a plurality of object classes are all labeled.

프로세서(130)는 이미지 및 제1 행렬에 기초하여 컨볼루셔널 뉴럴 네트워크와 오토 인코더를 공동으로 학습시킬 수 있다.The processor 130 may jointly train the convolutional neural network and the auto encoder based on the image and the first matrix.

프로세서(130)는 지도 학습(supervised learning) 또는 비지도 학습(unsupervised learning)을 통해 뉴럴 네트워크(예: 컨볼루셔널 뉴럴 네트워크, 오토 인코더)를 학습시킬 수 있다.The processor 130 may train a neural network (eg, a convolutional neural network, an auto encoder) through supervised learning or unsupervised learning.

지도 학습이란 입력 데이터와 그에 대응하는 출력 데이터를 함께 뉴럴 네트워크에 입력하고, 입력 데이터에 대응하는 출력 데이터가 출력되도록 연결선들의 연결 가중치를 업데이트하는 방법이다.Supervised learning is a method of inputting input data and output data corresponding thereto to a neural network, and updating connection weights of connection lines so that output data corresponding to the input data is output.

예를 들어, 프로세서(130)는 델타 규칙(delta rule)과 오류 역전파 학습(backpropagation learning) 등을 통해 인공 뉴런들 사이의 연결 가중치를 업데이트할 수 있다.For example, the processor 130 may update connection weights between artificial neurons through a delta rule and error backpropagation learning.

오류 역전파 학습은, 주어진 학습 데이터에 대해 전방 계산(forward computation)으로 오류를 추정한 후, 출력 층에서 시작하여 히든 층과 입력 층 방향으로 역으로 전진하여 추정한 오류를 전파하고, 오류를 줄이는 방향으로 연결 가중치를 업데이트하는 방법이다.Error back-propagation learning, after estimating the error with forward computation for the given training data, propagates the estimated error by starting from the output layer and moving backward toward the hidden layer and the input layer, and reduces the error. It is a method of updating connection weights in a direction.

뉴럴 네트워크의 처리는 입력 레이어, 히든 레이어, 출력 층의 방향으로 진행되지만, 오류 역전파 학습에서 연결 가중치의 업데이트 방향은 출력 레이어, 히든 레이어, 입력 레이어의 방향으로 진행될 수 있다.The processing of the neural network proceeds in the direction of the input layer, hidden layer, and output layer, but in error backpropagation learning, the update direction of the connection weight may proceed in the direction of the output layer, the hidden layer, and the input layer.

프로세서(130)는 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수(objective function)를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 계속 변경하고, 학습을 반복적으로 수행할 수 있다.The processor 130 may define an objective function for measuring how close to optimal the currently set connection weights are, continuously change the connection weights based on the result of the objective function, and repeatedly perform learning. .

예를 들어, 목적 함수는 뉴럴 네트워크가 학습 데이터에 기초하여 실제 출력한 출력 값과 출력되기로 원하는 기대 값 간의 오류를 계산하기 위한 오류 함수일 수 있다. 프로세서(130)는 오류 함수의 값을 줄이는 방향으로 연결 가중치들을 업데이트할 수 있다. 이하에서는 프로세서(130)가 뉴럴 네트워크를 학습시키는 동작에 대하여 자세히 설명하도록 한다.For example, the objective function may be an error function for calculating an error between an output value actually output by a neural network based on training data and an expected value desired to be output. The processor 130 may update the connection weights in a direction of reducing the value of the error function. Hereinafter, an operation of the processor 130 to learn the neural network will be described in detail.

도 3은 다중 레이블 분류를 위한 뉴럴 네트워크 구조를 나타낸다.3 shows a neural network structure for multi-label classification.

프로세서(도 2의 프로세서(130))는 이미지 및 제1 행렬에 기초하여 컨볼루셔널 뉴럴 네트워크

Figure pat00008
와 오토 인코더
Figure pat00009
를 공동으로 학습시킬 수 있다.The processor (processor 130 of FIG. 2 ) is a convolutional neural network based on the image and the first matrix.
Figure pat00008
with autoencoder
Figure pat00009
can be learned jointly.

프로세서(130)는 컨볼루셔널 뉴럴 네트워크

Figure pat00010
를 학습시키기 위한 제1 손실 함수 및 제2 손실 함수를 계산할 수 있고, 오토 인코더
Figure pat00011
를 학습시키기 위한 제3 손실 함수를 계산할 수 있다. 프로세서(130)는 제1 손실 함수, 제2 손실 함수, 및 제3손실 함수에 기초한 제4 손실 함수를 계산하고, 제4 손실 함수를 최소화하도록 컨볼루셔널 뉴럴 네트워크와 오토 인코더를 공동으로 학습시킬 수 있다.Processor 130 is a convolutional neural network
Figure pat00010
It is possible to calculate a first loss function and a second loss function for learning, and the auto encoder
Figure pat00011
A third loss function for learning can be calculated. The processor 130 calculates a fourth loss function based on the first loss function, the second loss function, and the third loss function, and jointly trains the convolutional neural network and the autoencoder to minimize the fourth loss function. can

컨볼루셔널 뉴럴 네트워크는

Figure pat00012
를 만족할 수 있다. h는 이미지의 특징 벡터를 추출할 수 있고,
Figure pat00013
를 만족할 수 있다. l은 시그모이드와 결합된 완전 연결 레이어(fully-connected layer)일 수 있고,
Figure pat00014
를 만족할 수 있다.Convolutional neural networks are
Figure pat00012
can be satisfied. h can extract the feature vector of the image,
Figure pat00013
can be satisfied. l may be a fully-connected layer combined with sigmoid,
Figure pat00014
can be satisfied.

프로세서(130)는 부분 레이블 데이터에 기초한 제1 손실 함수(예: 지도 손실, supervised loss) 및 유사도 그래프(similarity graph)에 기초한 제2 손실 함수(예: 정규화 손실, regularization loss)에 기초하여 컨볼루셔널 뉴럴 네트워크

Figure pat00015
를 학습시킬 수 있다.The processor 130 performs a convolutional function based on a first loss function (eg, supervised loss) based on partial label data and a second loss function (eg, regularization loss) based on a similarity graph. sional neural network
Figure pat00015
can be learned.

프로세서(130)는 제1 손실 함수를 계산하기 위해 부분 레이블 데이터의 값을 선별하여 변환할 수 있다. 예를 들어, 프로세서(130)는 레이블 값(예: -1, 1)을 선별하고, 수학식 2를 통해 레이블 값(예: -1, 1)을 변환할 수 있다.The processor 130 may select and convert values of the partial label data to calculate the first loss function. For example, the processor 130 may select label values (eg, -1, 1) and convert the label values (eg, -1, 1) through Equation 2.

[수학식 2][Equation 2]

Figure pat00016
Figure pat00016

수학식 2에서,

Figure pat00017
는 i번째 이미지의 j번째 클래스의 변환된 레이블 값이고,
Figure pat00018
는 i번째 이미지의 j번째 클래스의 레이블 값이고,
Figure pat00019
는 i번째 이미지에서 레이블 값이 존재하는(레이블 값이 0이 아닌) 클래스의 집합일 수 있다.In Equation 2,
Figure pat00017
is the transformed label value of the jth class of the ith image,
Figure pat00018
is the label value of the jth class of the ith image,
Figure pat00019
may be a set of classes in which a label value exists in the i-th image (the label value is not 0).

프로세서(130)는 수학식 3을 통해 제1 손실 함수

Figure pat00020
(예: 지도 손실, supervised loss)를 계산할 수 있다.The processor 130 calculates the first loss function through Equation 3.
Figure pat00020
(e.g. supervised loss) can be calculated.

[수학식 3][Equation 3]

Figure pat00021
Figure pat00021

수학식 3에서,

Figure pat00022
는 i번째 이미지의 j번째 클래스의 변환된 레이블 값이고,
Figure pat00023
는 i번째 이미지의 j번째 클래스의 예측 조건부 확률(predicted conditional probability)
Figure pat00024
일 수 있다.In Equation 3,
Figure pat00022
is the transformed label value of the jth class of the ith image,
Figure pat00023
is the predicted conditional probability of the jth class of the ith image
Figure pat00024
can be

프로세서(130)는 유사도 그래프에 기초하여 제2 손실 함수를 계산할 수 있고, 제2 손실 함수에 기초하여 컨볼루셔널 뉴럴 네트워크를 학습시킬 수 있다.The processor 130 may calculate a second loss function based on the similarity graph and train the convolutional neural network based on the second loss function.

프로세서(130)는 제2 손실 함수를 통해 저차원 형상 공간에서 인접한 데이터 점을 가까이 임베딩할 수 있고, 구별되는 이미지뿐만 아니라 구별되는 레이블을 고려할 수 있다. 구별되는 레이블에 걸친 상관관계는 유사도 그래프에 암시적으로(implicit) 포착될 수 있다.The processor 130 may closely embed adjacent data points in the low-dimensional shape space through the second loss function, and consider distinct images as well as distinct labels. Correlation across distinct labels can be implicitly captured in a similarity graph.

다중 레이블 분류에서 유사도 그래프의 정확도는 뉴럴 네트워크의 판별 성능에 중요한 영향을 끼칠 수 있다. 다중 레이블 분류 장치(100)는 오토 인코더의 행렬 채움(matrix completion)을 통해 유사도 그래프의 정확도를 개선할 수 있다.In multi-label classification, the accuracy of the similarity graph can have a significant effect on the discrimination performance of neural networks. The multi-label classification apparatus 100 may improve the accuracy of a similarity graph through matrix completion of an auto-encoder.

행렬 채움 알고리즘은 부분 레이블 데이터에 포함된 레이블 값(예: 0)을 채워주는 알고리즘일 수 있다. 유사도 그래프 W를 구성할 때 종래의 방법은 기존의 행렬 채움 알고리즘 또는 OMP 기반 그래프를 이용할 수 있고, 종래의 방법은 엄청난 계산 오버헤드가 요구될 수 있다. 종래의 방법은 뉴럴 네트워크가 업데이트될 때마다 유사도 그래프 W를 재교육할 필요가 있고, 종래의 방법은 상당한 계산 복잡성 및 시간 소모를 수반할 수 있다.The matrix filling algorithm may be an algorithm for filling label values (eg, 0) included in partial label data. When constructing the similarity graph W, the conventional method may use an existing matrix filling algorithm or OMP-based graph, and the conventional method may require enormous computational overhead. The conventional method needs to retrain the similarity graph W every time the neural network is updated, and the conventional method may involve considerable computational complexity and time consumption.

다중 레이블 분류 장치(100)는 오토 인코더를 사용하여 행렬 채움 문제를 해결하고, 예측된 결과를 바탕으로 유사도 그래프를 설계할 수 있다. 다중 레이블 분류 장치(100)는 또한 컨볼루셔널 뉴럴 네트워크와 오토 인코더를 동시에 학습시킴으로써 학습 속도를 크게 개선할 수 있다.The multi-label classification apparatus 100 may solve a matrix filling problem using an auto-encoder and design a similarity graph based on a predicted result. The multi-label classification apparatus 100 can also greatly improve learning speed by simultaneously training a convolutional neural network and an autoencoder.

이하에서는 오토 인코더

Figure pat00025
의 행렬 채움에 기초하여 제2 손실 함수 및 제3 손실 함수를 계산하는 동작을 설명하도록 한다.Below is an autoencoder
Figure pat00025
An operation of calculating the second loss function and the third loss function based on the matrix filling of is described.

도 4는 도 3에 도시된 오토 인코더의 일 예를 나타낸다.FIG. 4 shows an example of the auto encoder shown in FIG. 3 .

오토 인코더(예: 노이즈 제거 오토 인코더, denoising autoencoder)

Figure pat00026
는 행렬 Z의 행렬 채움을 수행함으로써 행렬
Figure pat00027
를 출력할 수 있다. 오토 인코더
Figure pat00028
는 이미지의 특징 벡터X 및 이미지의 부분 레이블 데이터 Y로부터 생성된 행렬 Z에 기초하여 추정 특징 벡터
Figure pat00029
및 추정 레이블 데이터
Figure pat00030
를 포함하는 행렬
Figure pat00031
를 출력할 수 있다. 부분 레이블 데이터Y는 복수의 객체 클래스의 일부만이 레이블된 데이터이고, 추정 레이블 데이터
Figure pat00032
는 복수의 객체 클레스가 전부 레이블된 데이터일 수 있다.Autoencoder (e.g. denoising autoencoder, denoising autoencoder)
Figure pat00026
is the matrix by performing the matrix filling of the matrix Z
Figure pat00027
can output autoencoder
Figure pat00028
is the estimated feature vector based on the matrix Z generated from the feature vector X of the image and the partial label data Y of the image
Figure pat00029
and estimated label data
Figure pat00030
matrix containing
Figure pat00031
can output The partial label data Y is data in which only some of the plurality of object classes are labeled, and the estimated label data
Figure pat00032
may be data in which a plurality of object classes are all labeled.

특징 벡터 X 및 부분 레이블 데이터 Y는 수학식 4를 만족할 수 있고, 프로세서(130)는 특징 벡터 X 및 부분 레이블 데이터Y를 하나의 열(column)로 쌓아 행렬 Z를 생성할 수 있다.The feature vector X and partial label data Y may satisfy Equation 4, and the processor 130 may generate a matrix Z by stacking the feature vector X and partial label data Y into one column.

[수학식 4][Equation 4]

Figure pat00033
Figure pat00033

Figure pat00034
Figure pat00034

Figure pat00035
Figure pat00035

수학식 4에서,

Figure pat00036
은 m번째 이미지의 레이블 데이터이고,
Figure pat00037
는 m번째 이미지의 특징 벡터이고, c는 클래스의 개수이고, m은 이미지의 개수일 수 있다. 부분 레이블 데이터 Y는 복수의 객체 클래스의 일부만이 레이블된 데이터로써, 0의 값을 갖는 클래스를 포함할 수 있다. 프로세서(130)는 노이즈 제거 오토 인코더(denoising autoencoder)의 행렬 채움에 기초하여 0의 값을 갖는 클래스의 레이블 값을 예측할 수 있다.In Equation 4,
Figure pat00036
is the label data of the mth image,
Figure pat00037
is a feature vector of the mth image, c is the number of classes, and m may be the number of images. The partial label data Y is data labeled with only some of a plurality of object classes, and may include a class having a value of 0. The processor 130 may predict a label value of a class having a value of 0 based on matrix filling of a denoising autoencoder.

오토 인코더가 레이블 값을 정확하게 예측하게 하기 위해, 프로세서(130)는 제3 손실 함수에 기초하여 오토 인코더를 학습시킬 수 있다. 프로세서(130)는 수학식 5를 통해 제3 손실 함수를 계산할 수 있다.In order for the auto-encoder to accurately predict the label value, the processor 130 may train the auto-encoder based on the third loss function. The processor 130 may calculate the third loss function through Equation 5.

[수학식 5][Equation 5]

Figure pat00038
Figure pat00038

수학식 5에서,

Figure pat00039
는 레이블 데이터의 재구성 손실과 특징 벡터의 재구성 손실의 균형을 맞추는 하이퍼 파라미터일 수 있고,
Figure pat00040
는 양의 레이블과 음의 레이블의 가중치를 고려(예: 데이터 집합이 음의 레이블 값(부재)를 갖는 경우가 더 많음)하는 마스크 행렬(mask matrix)일 수 있다.In Equation 5,
Figure pat00039
May be a hyperparameter balancing the reconstruction loss of the label data and the reconstruction loss of the feature vector,
Figure pat00040
may be a mask matrix that considers the weights of positive and negative labels (e.g., more often a data set has negative label values (absences)).

프로세서(130)는 오토 인코더가 출력한 추정 레이블 데이터

Figure pat00041
에 기초하여 이미지 간의 유사도를 나타내는 유사도 그래프를 생성할 수 있고, 유사도 그래프에 기초하여 컨볼루셔널 뉴럴 네트워크를 학습시키기 위한 제2 손실 함수를 계산할 수 있다.Processor 130 is estimated label data output by the auto-encoder
Figure pat00041
A similarity graph representing a similarity between images may be generated based on , and a second loss function for training a convolutional neural network may be calculated based on the similarity graph.

프로세서(130)는 추정 레이블 데이터

Figure pat00042
에 기초하여 유사도 그래프(similarity graph)를 생성할 수 있다.The processor 130 processes the estimated label data
Figure pat00042
A similarity graph may be generated based on .

유사도 그래프는 다수결 방식에 기초하여 생성될 수 있다. 다수결 방식은 동일한 레이블 쌍(부재-부재, 존재-존재)의 수가 c/2를 넘어갈 경우 i번째 이미지와 j번째 이미지가 비슷하다고 판단하여

Figure pat00043
를 리턴하고, 그렇지 않을 경우 경우 i번째 이미지와 j번째 이미지가 비슷하지 않다고 판단하여
Figure pat00044
를 리턴함으로써 유사도 그래프를 생성할 수 있다. 하지만 다수결 방식은 이미지 간의 상관 관계를 제대로 포착하지 못할 수 있고, 다수결 방식에 기초하여 생성된 유사도 그래프를 활용한다면 최종 성능이 저하될 수 있다.The similarity graph may be generated based on a majority vote method. In the majority rule method, if the number of identical label pairs (absence-absence, presence-existence) exceeds c/2, it is determined that the i-th image and the j-th image are similar,
Figure pat00043
If not, it determines that the ith image and the jth image are not similar.
Figure pat00044
By returning , a similarity graph can be created. However, the majority rule method may not properly capture the correlation between images, and final performance may deteriorate if a similarity graph generated based on the majority rule method is used.

프로세서(130)는 오토 인코더로부터 획득한 추정 레이블 데이터

Figure pat00045
에 기초하여 코사인 유사도 그래프(cosine similarity graph)를 생성할 수 있다. 추정 레이블 데이터
Figure pat00046
는 [-1, +1] 범위 내에 존재하지 않을 수 있고, 프로세서(130)는 추정 레이블 데이터
Figure pat00047
의 범위를 [-1, +1]로 제한함으로써 클리핑(clipping) 레이블 데이터
Figure pat00048
을 획득할 수 있다.Processor 130 is estimated label data obtained from the auto-encoder
Figure pat00045
A cosine similarity graph may be generated based on . estimated label data
Figure pat00046
may not exist in the range [-1, +1], and the processor 130 determines the estimated label data
Figure pat00047
Clipping label data by limiting the range of to [-1, +1]
Figure pat00048
can be obtained.

프로세서(130)는 클리핑 레이블 데이터

Figure pat00049
에 기초하여 코사인 유사도 그래프를 생성할 수 있고, 코사인 유사도 그래프
Figure pat00050
는 수학식 6을 만족할 수 있다.Processor 130 provides clipping label data
Figure pat00049
A cosine similarity graph can be generated based on, and a cosine similarity graph
Figure pat00050
may satisfy Equation 6.

[수학식 6][Equation 6]

Figure pat00051
Figure pat00051

수학식 6에서,

Figure pat00052
는 i번째 이미지의 클리핑 레이블 데이터이고,
Figure pat00053
는 j번째 이미지의 클리핑 레이블 데이터일 수 있다.In Equation 6,
Figure pat00052
Is the clipping label data of the ith image,
Figure pat00053
may be clipping label data of the j-th image.

프로세서(130)는 수학식 7을 통해 제2 손실 함수

Figure pat00054
(예: 정규화 손실, regularization loss)를 계산할 수 있다.The processor 130 calculates the second loss function through Equation 7.
Figure pat00054
(e.g. regularization loss, regularization loss) can be calculated.

[수학식 7][Equation 7]

Figure pat00055
Figure pat00055

Figure pat00056
Figure pat00056

수학식 7에서,

Figure pat00057
는 i번째 이미지의 특징 벡터이고,
Figure pat00058
는 j번째 이미지의 특징 벡터이고,
Figure pat00059
는 코사인 유사도 그래프의 (i, j) 원소 값으로서, i번째 이미지와 j번째 이미지의 유사도를 나타낸 값이고, margin은 특징 벡터 간의 거리를 조절하는 임계 값 역할을 하는 사전 정의된 값이고,
Figure pat00060
는 이미지 유사도에 대한 임계 값일 수 있다.In Equation 7,
Figure pat00057
is the feature vector of the ith image,
Figure pat00058
is the feature vector of the jth image,
Figure pat00059
is a value of the (i, j) element of the cosine similarity graph, and is a value representing the similarity between the i-th image and the j-th image, margin is a predefined value serving as a threshold for adjusting the distance between feature vectors,
Figure pat00060
may be a threshold value for image similarity.

프로세서(130)는

Figure pat00061
값이
Figure pat00062
보다 큰 경우 i번째 이미지와 j번째 이미지가 가깝다고 판단하여, 특징 벡터 공간에서 i번째 이미지와 j번째 이미지가 가깝게 임베딩되도록 컨볼루셔널 뉴럴 네트워크를 학습시킬 수 있다.Processor 130
Figure pat00061
value
Figure pat00062
If it is greater than , it is determined that the i-th image and the j-th image are close, and the convolutional neural network can be trained so that the i-th image and the j-th image are closely embedded in the feature vector space.

프로세서(130)는 제2 손실 함수

Figure pat00063
를 통해, 저차원 형상 공간에서 인접한 데이터 점을 가까이 임베딩할 수 있고, 구별되는 이미지뿐만 아니라 구별되는 레이블을 고려할 수 있다. 구별되는 레이블에 걸친 상관관계는 유사도 그래프에 암시적으로(implicit) 포착될 수 있다.Processor 130 uses a second loss function
Figure pat00063
Through , adjacent data points in a low-dimensional shape space can be closely embedded, and not only distinct images but also distinct labels can be considered. Correlation across distinct labels can be implicitly captured in a similarity graph.

프로세서(130)는 제1 손실 함수

Figure pat00064
, 제2 손실 함수
Figure pat00065
, 및 제3손실 함수
Figure pat00066
에 기초한 제4 손실 함수를 수학식 8을 통해 계산할 수 있다.Processor 130 has a first loss function
Figure pat00064
, the second loss function
Figure pat00065
, and the third loss function
Figure pat00066
A fourth loss function based on can be calculated through Equation 8.

[수학식 8][Equation 8]

Figure pat00067
Figure pat00067

수학식 8에서,

Figure pat00068
는 제2 손실 함수
Figure pat00069
를 조절하는 하이퍼 파라미터이고,
Figure pat00070
는 제3 손실 함수
Figure pat00071
를 조절하는 하이퍼 파라미터일 수 있다.In Equation 8,
Figure pat00068
is the second loss function
Figure pat00069
is a hyperparameter that controls
Figure pat00070
is the third loss function
Figure pat00071
It may be a hyperparameter that adjusts.

프로세서(130)는 제4 손실 함수를 최소화하도록 컨볼루셔널 뉴럴 네트워크와 오토 인코더를 공동으로 학습시킬 수 있다. 프로세서(130)는 컨볼루셔널 뉴럴 네트워크와 오토 인코더를 공동으로 학습시킴으로써 계산 복잡도를 크게 줄일 수 있다. 이하에서는 다중 레이블 분류 장치(100)의 성능에 대하여 설명하도록 한다.The processor 130 may jointly train the convolutional neural network and the auto encoder to minimize the fourth loss function. The processor 130 can greatly reduce computational complexity by jointly training the convolutional neural network and the auto encoder. Hereinafter, the performance of the multi-label classification apparatus 100 will be described.

도 5는 도 3에 도시된 오토 인코더의 다른 예를 나타낸다.FIG. 5 shows another example of the auto encoder shown in FIG. 3 .

다중 레이블 분류 장치(100)의 성능 검증을 위해 다양한 새(bird) 종류를 포함하는 11,788개의 이미지 데이터 세트가 이용될 수 있다. 이미지 데이터 세트는 학습/검증/테스터 데이터 각각 5000/2300/5000장으로 나눠져 있을 수 있다. 각 이미지는 부리 모양, 색상, 및 길이와 같은 312차원을 나타내는 다중 레이블을 가질 수 있고, 레이블 데이터는 클래스마다 동일한 개수를 맞추어 랜덤으로 선정된 것일 수 있다.To verify the performance of the multi-label classification apparatus 100, 11,788 image data sets including various types of birds can be used. The image data set may be divided into 5000/2300/5000 pieces of training/validation/tester data, respectively. Each image may have multiple labels representing 312 dimensions such as beak shape, color, and length, and label data may be randomly selected by matching the same number for each class.

다중 레이블 분류 장치(100)는 행렬 채움을 위한 하이퍼 파라미터로

Figure pat00072
을 사용할 수 있다. 도 5를 참조하면, 행렬 채움을 수행하는 오토 인코더는 총 4개의 은닉 계층으로 구성될 수 있고, 각 유닛의 수는 [2048,2048,1024,1024]일 수 있다. 오토 인코더에서 인코더 파트는 non-linear activation을 사용할 수 있고, 디코더 파트는 linear activation을 사용할 수 있다. 오토 인코더는 도 5에 개시된 구조에 한정되지 않는다.The multi-label classification apparatus 100 is a hyperparameter for matrix filling.
Figure pat00072
can be used. Referring to FIG. 5 , an auto-encoder performing matrix filling may consist of a total of 4 hidden layers, and the number of units may be [2048, 2048, 1024, 1024]. In an autoencoder, the encoder part can use non-linear activation, and the decoder part can use linear activation. The auto encoder is not limited to the structure disclosed in FIG. 5 .

도 6는 도 2에 도시된 다중 레이블 분류 장치의 성능의 일 예를 나타내고, 도 7는 도 2에 도시된 다중 레이블 분류 장치의 성능의 다른 예를 나타낸다.FIG. 6 shows an example of the performance of the multi-label classification apparatus shown in FIG. 2, and FIG. 7 shows another example of the performance of the multi-label classification apparatus shown in FIG.

도 6을 참조하면, 다중 레이블 누락 비율에 따른 mAP(%) 성능을 확인할 수 있다. 레이블 누락 비율(missing ratio)은 312개의 레이블 중에서 랜덤하게 누락된 것일 수 있다. 다중 레이블 분류 장치(100)는 모든 레이블 누락 비율에서 최고 성능을 가질 수 있다.Referring to FIG. 6 , mAP (%) performance according to the multi-label missing ratio can be confirmed. A label missing ratio may be randomly missed among 312 labels. The multi-label classification apparatus 100 may have the highest performance in all label missing ratios.

도 7의 (a)를 참조하면, 계산 복잡도, 학습 시간, 및 파라미터의 개수를 확인할 수 있다. 다중 레이블 분류 장치(100)에서 계산되는 계산 복잡도는 오토 인코더의 입력 데이터 d+l크기 및 오토 인코더의 인코더 출력 차원

Figure pat00073
의 곱에 비례할 수 있다. m이 매우 클 때, 종래의 기술은 개별 이미지에 대한 OMP 작동에 기초하여 훨씬 더 높은 시간 복잡성을 가질 수 있다. 다중 레이블 분류 장치(100)의 프레임워크는 약 5배 더 빠른 학습 시간을 제공할 수 있다. 다중 레이블 분류 장치(100)는 판별기
Figure pat00074
과 오토인코더
Figure pat00075
를 동시에 학습할 수 있고, 다중 레이블 분류 장치(100)는 매 반복(iteration)마다 그래프 설계 과정과 특징 추출 과정이 분리되어서 이뤄지는 종래의 기술보다 큰 시간을 줄일 수 있다. 다중 레이블 분류 장치(100)는 오토 인코더를 도입함으로써 더 많은 모델 파라미터를 요구하지만, 추가된 모델 파라미터의 개수는 컨볼루셔널 뉴럴 네트워크의 모델 파라미터의 개수에 비해 훨씬 작기 때문에 추가된 모델 파라미터의 개수는 무시될 수 있다.Referring to (a) of FIG. 7 , calculation complexity, learning time, and the number of parameters can be checked. The computational complexity calculated by the multi-label classifier 100 is the size of the input data d+l of the auto-encoder and the output dimension of the auto-encoder's encoder.
Figure pat00073
can be proportional to the product of When m is very large, conventional techniques can have much higher time complexity based on OMP operations on individual images. The framework of the multi-label classification apparatus 100 can provide about 5 times faster learning time. The multi-label classification device 100 is a discriminator
Figure pat00074
and autoencoder
Figure pat00075
can be learned at the same time, and the multi-label classification apparatus 100 can save a great deal of time compared to the prior art in which the graph design process and the feature extraction process are separated for each iteration. The multi-label classification apparatus 100 requires more model parameters by introducing an autoencoder, but since the number of added model parameters is much smaller than that of the convolutional neural network, the number of added model parameters is can be ignored

도 7의 (b)를 참조하면, 손실 함수에 기초한 다중 레이블 분류 장치의 성능을 확인할 수 있다. 다중 레이블 분류 장치(100)는 제1 손실 함수, 제2 손실 함수, 및 제3 손실 함수에 기초하여 계산된 제4 손실 함수를 최소화하도록 컨볼루셔널 뉴럴 네트워크와 오토 인코더를 공동으로 학습시킴으로써, 다중 레이블 분류 장치(100)는 최고의 성능을 획득할 수 있다.Referring to (b) of FIG. 7 , performance of the multi-label classification apparatus based on the loss function can be confirmed. The multi-label classification apparatus 100 jointly trains a convolutional neural network and an auto encoder to minimize a fourth loss function calculated based on a first loss function, a second loss function, and a third loss function, The label classification apparatus 100 can obtain the best performance.

도 8은 일 실시예에 따른 다중 레이블 분류 방법의 흐름도이다.8 is a flowchart of a multi-label classification method according to an embodiment.

도 8을 참조하면, 동작 810에서, 프로세서(도 2의 프로세서(130))는 이미지 및 이미지의 부분 레이블 데이터를 수신할 수 있다. 이미지는 복수의 객체 클래스에 매칭되는 객체를 포함할 수 있고, 부분 레이블 데이터는 복수의 객체 클래스의 일부만이 레이블된 데이터일 수 있다.Referring to FIG. 8 , in operation 810, a processor (processor 130 of FIG. 2 ) may receive an image and partial label data of the image. The image may include objects matched to a plurality of object classes, and the partial label data may be data in which only some of the plurality of object classes are labeled.

동작 830에서, 프로세서(130)는 수신한 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 이미지의 특징 벡터를 획득할 수 있다.In operation 830, the processor 130 may obtain a feature vector of the image by inputting the received image to the convolutional neural network.

동작 850에서, 프로세서(130)는 이미지의 특징 벡터 및 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성할 수 있다. 프로세서(130)는 하나의 열(column)에 특징 벡터와 부분 레이블 데이터를 순차적으로 입력함으로써 제1 행렬을 생성할 수 있다.In operation 850, the processor 130 may generate a first matrix based on the feature vector of the image and partial label data of the image. The processor 130 may generate a first matrix by sequentially inputting feature vectors and partial label data in one column.

동작 870에서, 프로세서(130)는 제1 행렬을 오토 인코더에 입력함으로써 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득할 수 있다. 제2 행렬은 이미지의 추정 특징 벡터 및 이미지의 추정 레이블 데이터를 포함할 수 있고, 추정 레이블 데이터는 복수의 객체 클레스가 전부 레이블된 데이터일 수 있다.In operation 870, the processor 130 may obtain a second matrix including estimated label data of the image by inputting the first matrix to the auto-encoder. The second matrix may include an estimated feature vector of the image and estimated label data of the image, and the estimated label data may be data in which a plurality of object classes are all labeled.

다중 레이블 분류 장치(100)는 오토 인코더의 행렬 채움에 기초하여 이미지의 다중 레이블 분류를 수행할 수 있다.The multi-label classification apparatus 100 may perform multi-label classification of an image based on matrix filling of an auto-encoder.

다중 레이블 분류 장치(100)는 오토 인코더의 행렬 채움에 기초하여 이미지 및 이미지의 부분 레이블 데이터로부터 이미지의 전체 레이블 데이터를 획득할 수 있다.The multi-label classification apparatus 100 may obtain entire label data of an image from the image and partial label data of the image based on matrix filling of the auto-encoder.

다중 레이블 분류 장치(100)는 이미지의 특징 벡터와 이미지의 부분 레이블 데이터에 기초하여 입력 행렬(예: 제1 행렬)을 생성할 수 있고, 오토 인코더는 입력 행렬의 행렬 채움을 수행함으로써 이미지의 전체 레이블 데이터를 포함하는 출력 행렬(예: 제2 행렬)을 생성할 수 있다.The multi-label classification apparatus 100 may generate an input matrix (eg, a first matrix) based on the feature vector of the image and partial label data of the image, and the auto-encoder performs matrix filling of the input matrix to generate the entire image. An output matrix (eg, a second matrix) including label data may be generated.

다중 레이블 분류 장치(100)는 오토 인코더에 기초하여 우수한 정확도로 다중 레이블 분류를 수행할 수 있고, 전체 클래스의 수가 적은 환경에서도 낮은 복잡도, 높은 성능으로 다중 레이블 분류를 수행할 수 있다.The multi-label classification apparatus 100 can perform multi-label classification with excellent accuracy based on an auto-encoder, and can perform multi-label classification with low complexity and high performance even in an environment in which the total number of classes is small.

다중 레이블 분류 장치(100)는 오토 인코더의 출력 행렬에 기초하여 코사인 유사도 그래프를 생성할 수 있고, 코사인 유사도 그래프에 기초하여 오토 인코더 및 컨볼루셔널 뉴럴 네트워크를 동시에 학습시킴으로써 학습 시간을 감소시킬 수 있다.The multi-label classification apparatus 100 may generate a cosine similarity graph based on the output matrix of the autoencoder, and reduce learning time by simultaneously training the autoencoder and the convolutional neural network based on the cosine similarity graph. .

다중 레이블 분류 장치(100)는 레이블링에 요구되는 비용과 소모 시간을 절감시킬 수 있다.The multi-label classification apparatus 100 can reduce cost and time required for labeling.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (19)

이미지 및 상기 이미지의 부분 레이블 데이터를 수신하는 동작;
상기 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 상기 이미지의 특징 벡터를 획득하는 동작;
상기 이미지의 특징 벡터 및 상기 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성하는 동작; 및
상기 제1 행렬을 오토 인코더에 입력함으로써 상기 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득하는 동작
을 포함하는, 다중 레이블 분류 방법.
receiving an image and partial label data of the image;
obtaining a feature vector of the image by inputting the image to a convolutional neural network;
generating a first matrix based on the feature vector of the image and partial label data of the image; and
Obtaining a second matrix including estimated label data of the image by inputting the first matrix to an auto-encoder
Including, multi-label classification method.
제1항에 있어서,
상기 이미지는,
복수의 객체 클래스에 매칭되는 객체를 포함하고,
상기 부분 레이블 데이터는,
상기 복수의 객체 클래스의 일부만이 레이블된 데이터이고,
상기 추정 레이블 데이터는,
상기 복수의 객체 클레스가 전부 레이블된 데이터인,
다중 레이블 분류 방법.
According to claim 1,
said image,
Include objects matching a plurality of object classes,
The partial label data,
Only some of the plurality of object classes are labeled data,
The estimated label data,
All of the plurality of object classes are labeled data,
Multi-label classification method.
제1항에 있어서,
상기 제1 행렬을 생성하는 동작은,
상기 제1 행렬의 하나의 열에 상기 특징 벡터와 상기 부분 레이블 데이터를 순차적으로 입력하는 동작
을 포함하는, 다중 레이블 분류 방법.
According to claim 1,
The operation of generating the first matrix,
Sequentially inputting the feature vector and the partial label data into one column of the first matrix
Including, multi-label classification method.
제1항에 있어서,
상기 이미지 및 상기 제1 행렬에 기초하여 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시키는 동작
을 더 포함하는, 다중 레이블 분류 방법.
According to claim 1,
Jointly learning the convolutional neural network and the auto encoder based on the image and the first matrix
Further comprising a multi-label classification method.
제4항에 있어서,
상기 공동으로 학습시키는 동작은,
상기 부분 레이블 데이터에 기초하여 제1 손실 함수를 계산하는 동작
을 포함하는, 다중 레이블 분류 방법.
According to claim 4,
The jointly learning operation,
Calculating a first loss function based on the partial label data
Including, multi-label classification method.
제5항에 있어서,
상기 공동으로 학습시키는 동작은,
복수의 이미지 간의 유사도를 나타내는 유사도 그래프를 상기 추정 레이블 데이터에 기초하여 생성하는 동작; 및
상기 유사도 그래프에 기초하여 제2 손실 함수를 계산하는 동작
을 더 포함하는, 다중 레이블 분류 방법.
According to claim 5,
The jointly learning operation,
generating a similarity graph representing a similarity between a plurality of images based on the estimated label data; and
Calculating a second loss function based on the similarity graph
Further comprising a multi-label classification method.
제6항에 있어서,
상기 유사도 그래프는,
코사인 유사도 그래프인,
다중 레이블 분류 방법.
According to claim 6,
The similarity graph,
The cosine similarity graph,
Multi-label classification method.
제6항에 있어서,
상기 공동으로 학습시키는 동작은,
상기 추정 레이블 데이터 및 상기 제2 행렬에 포함된 추정 특징 벡터에 기초하여 제3 손실 함수를 계산하는 동작
을 더 포함하는, 다중 레이블 분류 방법.
According to claim 6,
The jointly learning operation,
Calculating a third loss function based on the estimated label data and the estimated feature vector included in the second matrix
Further comprising a multi-label classification method.
제8항에 있어서,
상기 공동으로 학습시키는 동작은,
상기 제1 손실 함수, 상기 제2 손실 함수, 및 상기 제3손실 함수에 기초한 제4 손실 함수를 계산하는 동작; 및
상기 제4 손실 함수를 최소화하도록 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시키는 동작
을 더 포함하는, 다중 레이블 분류 방법.
According to claim 8,
The jointly learning operation,
calculating a fourth loss function based on the first loss function, the second loss function, and the third loss function; and
Jointly training the convolutional neural network and the auto encoder to minimize the fourth loss function
Further comprising a multi-label classification method.
하드웨어와 결합되어 제1항 내지 제9항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer readable recording medium to be combined with hardware to execute the method of any one of claims 1 to 9.
하나 이상의 인스트럭션을 저장하는 메모리; 및
상기 인스트럭션을 실행시키기 위한 프로세서
를 포함하고,
상기 인스트럭션이 실행될 때, 상기 프로세서는,
이미지 및 상기 이미지의 부분 레이블 데이터를 수신하고,
상기 이미지를 컨볼루셔널 뉴럴 네트워크에 입력함으로써 상기 이미지의 특징 벡터를 획득하고,
상기 이미지의 특징 벡터 및 상기 이미지의 부분 레이블 데이터에 기초하여 제1 행렬을 생성하고,
상기 제1 행렬을 오토 인코더에 입력함으로써 상기 이미지의 추정 레이블 데이터를 포함하는 제2 행렬을 획득하는,
다중 레이블 분류 장치.
a memory that stores one or more instructions; and
A processor to execute the instruction
including,
When the instruction is executed, the processor:
Receive an image and partial label data of the image;
Obtaining a feature vector of the image by inputting the image to a convolutional neural network;
generating a first matrix based on the feature vector of the image and partial label data of the image;
Obtaining a second matrix including estimated label data of the image by inputting the first matrix to an auto-encoder,
Multi-label sorting device.
제11항에 있어서,
상기 이미지는,
복수의 객체 클래스에 매칭되는 객체를 포함하고,
상기 부분 레이블 데이터는,
상기 복수의 객체 클래스의 일부만이 레이블된 데이터이고,
상기 추정 레이블 데이터는,
상기 복수의 객체 클레스가 전부 레이블된 데이터인,
다중 레이블 분류 장치.
According to claim 11,
said image,
Include objects matching a plurality of object classes,
The partial label data,
Only some of the plurality of object classes are labeled data,
The estimated label data,
All of the plurality of object classes are labeled data,
Multi-label sorting device.
제11항에 있어서,
상기 프로세서는,
상기 제1 행렬의 하나의 열에 상기 특징 벡터와 상기 부분 레이블 데이터를 순차적으로 입력하는,
다중 레이블 분류 장치.
According to claim 11,
the processor,
sequentially inputting the feature vector and the partial label data into one column of the first matrix;
Multi-label sorting device.
제11항에 있어서,
상기 프로세서는,
상기 이미지 및 상기 제1 행렬에 기초하여 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시키는,
다중 레이블 분류 장치.
According to claim 11,
the processor,
Jointly learning the convolutional neural network and the auto encoder based on the image and the first matrix,
Multi-label sorting device.
제14항에 있어서,
상기 프로세서는,
상기 부분 레이블 데이터에 기초하여 제1 손실 함수를 계산하는,
다중 레이블 분류 장치.
According to claim 14,
the processor,
Computing a first loss function based on the partial label data;
Multi-label sorting device.
제15항에 있어서,
상기 프로세서는,
복수의 이미지 간의 유사도를 나타내는 유사도 그래프를 상기 추정 레이블 데이터에 기초하여 생성하고,
상기 유사도 그래프에 기초하여 제2 손실 함수를 계산하는,
다중 레이블 분류 장치.
According to claim 15,
the processor,
generating a similarity graph representing a similarity between a plurality of images based on the estimated label data;
Calculating a second loss function based on the similarity graph,
Multi-label sorting device.
제16항에 있어서,
상기 유사도 그래프는,
코사인 유사도 그래프인,
다중 레이블 분류 장치.
According to claim 16,
The similarity graph,
The cosine similarity graph,
Multi-label sorting device.
제16항에 있어서,
상기 프로세서는,
상기 추정 레이블 데이터 및 상기 제2 행렬에 포함된 추정 특징 벡터에 기초하여 제3 손실 함수를 계산하는,
다중 레이블 분류 장치.
According to claim 16,
the processor,
Calculating a third loss function based on the estimated label data and an estimated feature vector included in the second matrix;
Multi-label sorting device.
제18항에 있어서,
상기 프로세서는,
상기 제1 손실 함수, 상기 제2 손실 함수, 및 상기 제3손실 함수에 기초한 제4 손실 함수를 계산하고,
상기 제4 손실 함수를 최소화하도록 상기 컨볼루셔널 뉴럴 네트워크와 상기 오토 인코더를 공동으로 학습시키는,
다중 레이블 분류 장치.

According to claim 18,
the processor,
Calculate a fourth loss function based on the first loss function, the second loss function, and the third loss function;
Jointly training the convolutional neural network and the auto encoder to minimize the fourth loss function,
Multi-label sorting device.

KR1020210173776A 2021-12-07 2021-12-07 Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same KR20230085529A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210173776A KR20230085529A (en) 2021-12-07 2021-12-07 Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210173776A KR20230085529A (en) 2021-12-07 2021-12-07 Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same

Publications (1)

Publication Number Publication Date
KR20230085529A true KR20230085529A (en) 2023-06-14

Family

ID=86745170

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210173776A KR20230085529A (en) 2021-12-07 2021-12-07 Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same

Country Status (1)

Country Link
KR (1) KR20230085529A (en)

Similar Documents

Publication Publication Date Title
Dubey et al. Comparative study of convolution neural network’s relu and leaky-relu activation functions
CN111797893B (en) Neural network training method, image classification system and related equipment
CN111782838B (en) Image question-answering method, device, computer equipment and medium
KR20190050698A (en) Method for optimizing neural networks
Chen et al. Highly parallelized memristive binary neural network
KR102524629B1 (en) Respiratory disease prediction method and appratus using neural network
Meedeniya Deep Learning: A Beginners' Guide
KR20240025578A (en) Hyperspectral image classification method and appratus using neural network
US20220172028A1 (en) Method and apparatus with neural network operation and keyword spotting
KR102620875B1 (en) Method and device for dcnn-based image stitching
CN111611796A (en) Hypernym determination method and device for hyponym, electronic device and storage medium
US20230058341A1 (en) Neural network training method and apparatus using trend
US11669565B2 (en) Method and apparatus for tracking object
KR20230150150A (en) Apparatus and method for preprocessing hyperspectral image analysis deep learning model
KR20230085529A (en) Method for classifying multi-label in a partially labeled environment and an apparatus for performing the same
KR102631310B1 (en) Trajectory prediction method and apparatus
US20220230014A1 (en) Methods and systems for transfer learning of deep learning model based on document similarity learning
Vaidya et al. Traffic sign recognition using color and spatial transformer network on GPU embedded development board
US20210216828A1 (en) Proposal learning for semi-supervised object detection
KR20220056633A (en) Machine reading comprehension method and apparatus
KR102666670B1 (en) Label prediction method, appratus based neural network and training method for group-labeling-learning using effective embedding vector generation
KR102506988B1 (en) Apparatus of anomaly detection using neural network trained using heterogeneous loss function
KR102668317B1 (en) System for object recognition using radar signal processing
Mondal et al. A Convolutional Neural Network-Based Approach for Automatic Dog Breed Classification Using Modified-Xception Model
KR102614909B1 (en) Neural network operation method and appratus using sparsification

Legal Events

Date Code Title Description
E902 Notification of reason for refusal