KR101580202B1 - Svm-bta updating apparatus and method for large scale dataset - Google Patents

Svm-bta updating apparatus and method for large scale dataset Download PDF

Info

Publication number
KR101580202B1
KR101580202B1 KR1020140059821A KR20140059821A KR101580202B1 KR 101580202 B1 KR101580202 B1 KR 101580202B1 KR 1020140059821 A KR1020140059821 A KR 1020140059821A KR 20140059821 A KR20140059821 A KR 20140059821A KR 101580202 B1 KR101580202 B1 KR 101580202B1
Authority
KR
South Korea
Prior art keywords
svm
nodes
node
learning
binary tree
Prior art date
Application number
KR1020140059821A
Other languages
Korean (ko)
Other versions
KR20150133027A (en
Inventor
박대희
오승근
노병준
장수인
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020140059821A priority Critical patent/KR101580202B1/en
Publication of KR20150133027A publication Critical patent/KR20150133027A/en
Application granted granted Critical
Publication of KR101580202B1 publication Critical patent/KR101580202B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/222Binary data tree

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

대규모 데이터 분류를 위한 서포트 벡터 머신의 이진 트리 구조 갱신 시, 적어도 하나의 입력 데이터를 포함하는 입력 데이터 셋(set)을 수신하고, 이진 트리 구조(Binary Tree Architecture)로 구성된 복수의 SVM(Support Vector Machine) 노드 중 적어도 하나의 잎 노드(Leaf node)를 검출하고, 검출된 잎 노드 중 어느 하나에서 분기된 상기 입력 데이터를 할당할 새로운 SVM 노드를 생성하여 상기 이진 트리 구조를 갱신하되, 복수의 SVM 노드 별로 이진 트리 구조에서의 깊이 및 클래스 크기에 기초하여 가중 계수를 산출하고, 가중 계수에 기초하여 검출된 잎 노드 중 분기할 잎 노드를 선택한다.A plurality of SVMs (Support Vector Machines) configured with a binary tree structure are provided to receive input data sets including at least one input data when updating a binary tree structure of a support vector machine for a large- ) Node, and updates the binary tree structure by generating a new SVM node to which the input data branched from any of the detected leaf nodes is to be allocated, The weighting factors are calculated based on the depth and the class size in the binary tree structure and the leaf nodes to be branched out are selected based on the weighting coefficients.

Description

대규모 데이터를 위한 서포트 벡터 머신 이진 트리 구조 갱신 장치 및 방법{SVM-BTA UPDATING APPARATUS AND METHOD FOR LARGE SCALE DATASET}Technical Field [0001] The present invention relates to a support vector machine binary tree structure update apparatus and method for large-

본 발명은 대규모 얼굴 인식 등의 대규모 데이터 분류에 유용한 이진 트리 구조의 서포트 벡터 머신(Support Vector Machine-Binary Tree Architecture, SVM-BTA)의 갱신 장치및 방법에 관한 것이다.The present invention relates to an apparatus and method for updating a support vector machine-binary tree architecture (SVM-BTA) of a binary tree structure useful for large-scale data classification such as large-scale face recognition.

SVM(Support Vector Machine)은 주어진 문제의 전역 최적해(Global Optimum Solution)를 보장하기 때문에, 패턴 분류 및 함수 근사 등에 적용되어 매우 우수한 성능을 보이는 분류 기법이다.SVM (Support Vector Machine) is a classification technique that performs very well because it guarantees a global optimum solution of a given problem, and is applied to pattern classification and function approximation.

기본적으로 SVM은 이진 클래스 분류기이므로, 얼굴 인식 시스템과 같은 다중 클래스 분류 문제에 적용하기 위해서는 별도의 구성 방법 및 이에 따른 학습 방법 등이 요구된다. 이러한 SVM 방식의 예로서는 일대다 방법, 일대일-투표 방법, 및 일대일 토너먼트 방법과 같은 다중 클래스 분류 문제를 위한 SVM들이 있으며, 이러한 종래의 SVM방식들은 얼굴 인식에서 높은 인식률을 보장하나, 처리 속도가 느리기 때문에 대용량의 데이터베이스에서 실시간으로 인식 작업을 수행해야 하는 실시간 인식 분야에는 적합하지 않았다.Basically, since SVM is a binary classifier, a separate construction method and a learning method therefor are required in order to apply to a multi-class classification problem such as a face recognition system. Examples of such SVM schemes include SVMs for multi-class classification problems such as one-to-many, one-to-one voting, and one-on-one tournament methods. Conventional SVM schemes provide high recognition rates in facial recognition, It is not suitable for the real-time recognition field in which real-time recognition work must be performed in a large-capacity database.

이와 관련하여, 대한민국공개특허 제 2013-0067758 호(발명의 명칭: SVM학습을 이용한 사람 검출 장치및 그 방법)에서는, 카메라를 통해 획득되는 입력 영상으로부터 사람을 검출하는 기법에 관한 것으로, 누적합 기반의 변화 분석을 통해 학습 영상으로부터 추출한 학습 이진 특징 패턴들에 대한 히스토그램을 생성한 후, 히스토그램을 기반으로 학습 특징 벡터를 생성하고, 생성된 학습 특징 벡터를 SVM 학습하여 분류기를 생성하며, 생성된 분류기에 대한 SVM 판별 가중치를 생성하여 데이터베이스에 저장하고, 입력 영상으로부터 추출한 입력 이진 특징 패턴들에 대해 히스토그램을 생성한 후, 히스토그램을 기반으로 입력 특징 벡터를 생성하며, 입력 특징 벡터가 생성된 전체의 입력 영상에 대한 탐색 영역을 설정하고, 설정된 탐색 영역과 데이터베이스에 저장된 분류기를 이용하여 사람을 검출하는 구성이 개시되어 있다.Korean Patent Laid-Open Publication No. 2013-0067758 (entitled " Person Detection Apparatus and Method Using SVM Learning ") relates to a technique for detecting a person from an input image acquired through a camera, A histogram of the learning binary feature patterns extracted from the learning image is generated through the analysis of the change, and a learning feature vector is generated based on the histogram, and the generated learning feature vector is SVM learned to generate a classifier, A histogram is generated for input binary feature patterns extracted from the input image, an input feature vector is generated based on the histogram, and an input feature vector is generated for the entire input The search area for the image is set, and the set search area and the database There is a configuration that detects a person is disclosed by using a classifier stored.

한편, 이 같은 SVM의 구조적 한계를 해결하기 위해 이진 트리 구조(BTA)를 갖는 SVM이 제안되었다. 이러한, SVM-BTA는 이진 트리 구조가 갖는 특성으로 인하여 기존의 일대일-투표 방법, 일대일 토너먼트 방법 등 보다 빠르면서도 높은 인식률을 보장할 수 있어 실시간 인식 시스템 분야에 적합하였다.SVM with binary tree structure (BTA) has been proposed to solve the structural limitations of SVM. Due to the nature of the binary tree structure, SVM-BTA is suitable for real-time recognition system field because it can guarantee faster and higher recognition rate such as existing one-to-one voting method and one-on-one tournament method.

그러나, K-Means 알고리즘과 같은 군집 알고리즘으로 계층형 트리를 구성하고, 각 노드에 존재하는 SVM들을 학습시켜 패턴 인식을 수행하는 SVM-BTA의 구조적 특성상, 새로운 데이터 추가 시 BTA를 재구성 하는데 상당한 시간이 필요하며, 각 노드에 존재하는 SVM들을 재학습하기 위해서도 많은 시간이 요구되어 시스템의 유지 보수가 어렵다는 단점이 있었다.However, due to the structural nature of SVM-BTA, which constructs a hierarchical tree with clustering algorithms such as the K-Means algorithm and performs pattern recognition by learning SVMs present in each node, considerable time is required to reconstruct the BTA when adding new data And it takes a lot of time to re-learn SVMs existing in each node, which makes it difficult to maintain the system.

따라서, 데이터베이스가 동적으로 변화하는 시스템들에서 SVM-BTA 기반의 분류 처리를 운용하기 위해서는 보다 빠르고 정확한 SVM-BTA 갱신 방법이 요구된다.Therefore, a faster and more accurate SVM-BTA update method is required to operate SVM-BTA-based classification processing in systems where databases are dynamically changing.

본 발명의 실시예는 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 효율적으로 SVM-BTA를 갱신하는 장치및 방법을 제공하고자 한다.BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features and advantages of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG.

또한, 본 발명의 실시예는 복수의 SVM을 병렬 학습 처리하는 서포트 벡터 머신의 이진 트리 구조 갱신 장치 및 방법을 제공하고자 한다.Also, an embodiment of the present invention is to provide an apparatus and method for updating a binary tree structure of a support vector machine for parallel learning processing of a plurality of SVMs.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 측면에 따른 서포트 벡터 머신의 이진 트리 구조 갱신 장치는, 적어도 하나의 입력 데이터를 포함하는 입력 데이터 셋(set)을 수신하는 데이터 입력부; 및 이진 트리 구조(Binary Tree Architecture)로 구성된 복수의 SVM(Support Vector Machine) 노드 중 적어도 하나의 잎 노드(Leaf node)를 검출하고, 상기 검출된 잎 노드 중 어느 하나에서 분기된 상기 입력 데이터를 할당할 새로운 SVM 노드를 생성하여 상기 이진 트리 구조를 갱신하는 이진 트리 구조 갱신부를 포함하되, 상기 이진 트리 구조 갱신부는, 상기 복수의 SVM 노드 별로 상기 이진 트리 구조에서의 깊이(Depth) 및 클래스 크기에 기초하여 가중 계수를 산출하고, 상기 가중 계수에 기초하여 상기 검출된 잎 노드 중 상기 분기할 잎 노드를 선택한다.According to an aspect of the present invention, there is provided an apparatus for updating a binary tree structure of a support vector machine, comprising: a data input unit receiving an input data set including at least one input data; And a plurality of SVM (Support Vector Machine) nodes constituted by a binary tree structure, and allocating the input data branched from any one of the detected leaf nodes to a leaf node And a binary tree structure update unit for updating the binary tree structure by generating a new SVM node to be updated based on the depth and class size of the binary tree structure for each of the plurality of SVM nodes, Calculates a weighting coefficient, and selects the leaf node to be branched out of the detected leaf nodes based on the weighting coefficient.

그리고 본 발명의 다른 측면에 따른, 서포트 벡터 머신의 이진 트리 구조 갱신 장치를 통한 서포트 벡터 머신의 이진 트리 구조 갱신 방법은, 적어도 하나의 입력 데이터를 포함하는 입력 데이터 셋(set)을 수신하는 단계; 이진 트리 구조(Binary Tree Architecture)로 구성된 복수의 SVM(Support Vector Machine) 노드 중 적어도 하나의 잎 노드(Leaf node)를 검출하는 단계; 및 상기 검출된 잎 노드 중 어느 하나에서 분기된 상기 입력 데이터를 할당할 새로운 SVM 노드를 생성하여 상기 이진 트리 구조를 갱신하는 단계를 포함하되, 상기 이진 트리 구조를 갱신하는 단계는, 상기 복수의 SVM 노드 별로 상기 이진 트리 구조에서의 깊이(Depth) 및 클래스 크기에 기초하여 가중 계수를 산출하고, 상기 가중 계수에 기초하여 상기 검출된 잎 노드 중 상기 분기할 잎 노드를 선택한다.According to another aspect of the present invention, a method for updating a binary tree structure of a support vector machine via a binary tree structure update apparatus of a support vector machine includes the steps of: receiving an input data set including at least one input data; Detecting at least one leaf node among a plurality of SVM (Support Vector Machine) nodes constituted by a binary tree structure; And generating a new SVM node to which the input data branched from one of the detected leaf nodes is to be allocated to update the binary tree structure, wherein the updating of the binary tree structure comprises: Calculating a weighting coefficient based on the depth and the class size in the binary tree structure for each node, and selecting the branching leaf node among the detected leaf nodes based on the weighting coefficient.

전술한 본 발명의 과제 해결 수단에 의하면, 실시간 대규모 얼굴 인식 등과 같은 대규모 데이터의 패턴 인식에서 SVM-BTA의 빠르고 정확한 갱신을 처리할 수 있다.According to the above-mentioned object of the present invention, the SVM-BTA can be quickly and accurately updated in pattern recognition of large-scale data such as real-time large-scale face recognition.

그리고, 본 발명의 과제 해결 수단에 의하면, SVM-BTA의 구조적 특성을 이용하여 이미 학습된 SVM과 가중 계수를 사용하여 빠른 BTA 갱신 시간을 처리할 수 있다. 또한, 빠른 BTA 갱신과 더불어 완전 이진 트리를 유도함으로써, 높은 인식률을 유지할 수 있다.In addition, according to the task of the present invention, it is possible to process a fast BTA update time using the SVM and the weighting coefficient that have already been learned by using the structural characteristics of the SVM-BTA. Also, by inducing a full binary tree with fast BTA update, a high recognition rate can be maintained.

또한, 본 발명의 과제 해결 수단에 의하면, 복수의 SVM을 병렬 학습 처리함으로써, SVM 학습 시간을 효과적으로 감소시킬 수 있다. 또한, SVM-BTA의 병렬 학습 문제를 진보된 배낭 문제로 재해석하여 재학습해야 할 작업 부하를 학습 수행 시간에 기초하여 효율적으로 스케줄링함으로써 시간 및 공간적으로 최적화된 병렬 SVM 학습 결과를 제공할 수 있다.Further, according to the task solution of the present invention, the SVM learning time can be effectively reduced by parallel learning processing of a plurality of SVMs. In addition, it is possible to re-interpret the parallel learning problem of SVM-BTA as an advanced backpack problem, and to efficiently schedule the workload to be re-learned based on the learning execution time, thereby providing a time and spatially optimized parallel SVM learning result .

도 1은 본 발명의 일 실시예에 따른 서포트 벡터 머신의 이진 트리 구조 갱신 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 적용되는 이진 트리 구조(BTA)를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 이진 트리 구조 갱신 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 입력 데이터 셋의 초기 분류 처리를 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 가중 계수에 따른 잎 노드 선택 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 SVM 병렬 처리 방식을 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 SVM 처리기에 대한 작업 부하 할당 방식을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 SVM 학습 처리를 위한 작업 부하 순서의 정렬 방식을 설명하기 위한 도면이다.
1 is a block diagram showing a configuration of an apparatus for updating a binary tree structure of a support vector machine according to an embodiment of the present invention.
FIG. 2 is a diagram for explaining a binary tree structure (BTA) applied to an embodiment of the present invention.
3 is a flowchart illustrating a method of updating a binary tree structure according to an embodiment of the present invention.
4 is a diagram for explaining an initial classification process of an input data set according to an embodiment of the present invention.
5 and 6 are diagrams for explaining a leaf node selecting method according to a weighting coefficient according to an embodiment of the present invention.
7 is a flowchart illustrating an SVM parallel processing method according to an embodiment of the present invention.
8 is a diagram for explaining a workload allocation method for an SVM processor according to an embodiment of the present invention.
9 is a view for explaining a sorting method of a workload order for an SVM learning process according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

이하에서는 본 발명이 적용되는 네트워크를 데이터 센터 네트워크로 설명하도록 한다. 그러나, 본 발명이 적용되는 네트워크는 데이터 센서 네트워크에 한정되는 것이 아니라, 복수의 노드 장치 간에 유선 및 무선 링크 중 적어도 하나의 링크가 연결되어 데이터 트래픽이 발생되는 다양한 네트워크에 적용될 수 있다.Hereinafter, a network to which the present invention is applied will be described as a data center network. However, the network to which the present invention is applied is not limited to the data sensor network, but may be applied to various networks in which data traffic is generated by connecting at least one of wired and wireless links between a plurality of node devices.

도 1은 본 발명의 일 실시예에 따른 서포트 벡터 머신의 이진 트리 구조 갱신 장치의 구성을 나타내는 블록도이다. 그리고, 도 2는 본 발명의 일 실시예에 적용되는 이진 트리 구조(BTA)를 설명하기 위한 도면이다.1 is a block diagram showing a configuration of an apparatus for updating a binary tree structure of a support vector machine according to an embodiment of the present invention. 2 is a diagram for explaining a binary tree structure (BTA) applied to an embodiment of the present invention.

먼저, 도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 서포트 벡터 머신의 이진 트리 구조 갱신 장치(100)는 데이터 입력부(110), 이진 트리 구조 갱신부(120), 병렬 학습 제어부(130), 에스브이엠 학습 처리부(140) 및 데이터베이스(150)를 포함한다.1, an apparatus 100 for updating a binary tree structure of a support vector machine according to an embodiment of the present invention includes a data input unit 110, a binary tree structure update unit 120, a parallel learning control unit 130, an S-VAM learning processing unit 140, and a database 150.

데이터 입력부(110)는 적어도 하나의 새로운 입력 데이터를 포함하는 입력 데이터 셋(set)을 수신한다.The data input unit 110 receives an input data set including at least one new input data.

이때, 본 발명의 일 실시예에서는, 서포트 벡터 머신의 이진 트리 구조 갱신 장치(10)가 실시간 얼굴 인식을 처리하는 장치이며, 입력 데이터 셋이 얼굴 인식을 위한 얼굴 이미지 데이터인 것을 설명하도록 한다.At this time, in an embodiment of the present invention, the binary tree structure update apparatus 10 of the support vector machine processes real-time face recognition, and the input data set is face image data for face recognition.

한편, 도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 서포트 벡터 머신의 이진 트리 구조 갱신 장치(100)는 이진 트리 구조로 구성된 복수의 SVM 노드들을 사용하여 대규모 데이터를 분류한다.2, the apparatus for updating a binary tree structure 100 of a support vector machine according to an embodiment of the present invention classifies large-scale data using a plurality of SVM nodes configured in a binary tree structure.

구체적으로, 도 2에서와 같이, 본 발명의 일 실시예에서는 최상위 노드이자 뿌리 노드(Root Node)인 SVM 1 노드의 하위 계층으로서 두 개의 노드(SVM 2 및 SVM 3)가 구성되고, SVM 2 및 SVM 3은 각각 부모 노드로서 복수의 자식 노드들을 갖는다. 그리고, 최하위 노드로서 SVM 8이 구성된다. 또한, 도 2에서는 부모 노드가 아니면서(즉, 자식 노드가 없으면서) 최하위 노드가 아닌 잎 노드(Leaf Node)로서 SVM 5, SVM6 및 SVM 10이 포함된 것을 나타내었다. 2, two nodes (SVM 2 and SVM 3) are configured as a lower layer of the SVM 1 node, which is the root node and the uppermost node, in the embodiment of the present invention. SVM 3 has a plurality of child nodes as parent nodes. SVM 8 is configured as the lowest node. In FIG. 2, SVM 5, SVM 6, and SVM 10 are included as leaf nodes that are not the lowest node but are not the parent node (i.e., there are no child nodes).

다시 도 1로 돌아가서, 이진 트리 구조 갱신부(120)는 이진 트리 구조(Binary Tree Achitecture, BTA)로 구성된 복수의 SVM(Support Vector Machine) 노드 중 최하위 노드가 아니면서 자식 노드가 없는 잎 노드를 검출하고, 검출된 잎 노드 중 어느 하나의 잎 노드에서 분기하여 새로운 입력 데이터를 할당할 새로운 SVM 노드를 생성한다. 이때, 이진 트리 구조 갱신부(120)는 입력 데이터 셋에 포함된 모든 입력 데이터가 할당될 때까지 이상에서의 절차들을 반복하고, 모든 입력 데이터에 대한 SVM에의 할당이 완료되면 그 상태로 이진 트리 구조를 확정하여 이진 트리 구조를 갱신한다.Referring back to FIG. 1, the binary tree structure update unit 120 detects a leaf node that is not the lowest node among a plurality of SVM (Support Vector Machine) nodes constituted by a Binary Tree Architecture (BTA) And branching at a leaf node of the detected leaf nodes generates a new SVM node to which new input data is to be allocated. At this time, the binary tree structure update unit 120 repeats the above procedures until all the input data included in the input data set is allocated, and when all the input data is allocated to the SVM, And updates the binary tree structure.

또한, 이진 트리 구조 갱신부(120)는 기학습된 복수의 SVM 노드들 별로 기설정된 가중 계수(weight factor)를 산출하고, 산출된 가중 계수에 기초하여 새로운 입력 데이터를 할당할 잎 노드를 결정한다. 참고로, SVM-BTA의 구조적 특성상 자식 노드가 적고 상위 계층일수록 갱신해야 할 SVM 분류기의 개수가 적어지고 인식률의 저하에도 영향을 거의 미치지 않는다. 이에 따라, 이진 트리 구조 갱신부(120)는 SVM-BTA 갱신 시 쏠림 현상이 없도록 완전 이진 트리(Full Binary Tree)로 유도하여 인식률 저하를 방지한다.In addition, the binary tree structure update unit 120 calculates a predetermined weight factor for each of the learned SVM nodes, and determines a leaf node to which new input data is to be allocated based on the calculated weighting factor . For reference, SVM-BTA has few child nodes, and the number of SVM classifiers that need to be updated is smaller, and it has little effect on degradation of recognition rate. Accordingly, the binary tree structure update unit 120 directs the binary tree structure update to the full binary tree so that there is no leaning in updating the SVM-BTA, thereby preventing the degradation of the recognition rate.

구체적으로, 도 3을 참조하여 이진 트리 구조 갱신부(120)의 이진 트리 구조 갱신 방법에 대해서 상세히 설명하도록 한다.Specifically, the method for updating the binary tree structure update unit 120 will be described in detail with reference to FIG.

도 3은 본 발명의 일 실시예에 따른 이진 트리 구조 갱신 방법을 설명하기 위한 순서도이다.3 is a flowchart illustrating a method of updating a binary tree structure according to an embodiment of the present invention.

먼저, 새로운 입력 데이터 셋이 발생되면(S310), 최상위 노드의 SVM을 통해서 새로운 입력 데이터를 분류하여 적합한 클래스에 입력 데이터를 할당한다(S320).First, when a new input data set is generated (S310), new input data is classified through the SVM of the highest node and input data is allocated to an appropriate class (S320).

예를 들어, 도 4는 본 발명의 일 실시예에 따른 입력 데이터 셋의 초기 분류 처리를 설명하기 위한 도면이다. 즉, 도 4와 같이 뿌리 노드(Root Node)에 있는 SVM을 통하여 왼쪽 군집(G1)으로 분기할 것인지, 오른쪽 군집(G2)으로 분기할 것인지를 결정하여 분기한다. 참고로, 새로운 입력 데이터와 최상위 노드의 가장 큰 두 개의 군집의 중심(centroid)과 정규화된 유클리디안(Euclidean) 거리를 측정하고, 측정된 거리를 기준으로 보다 가까운 쪽을 후보군으로 채택하고 입력 데이터를 해당 군집에 할당할 수 있다.For example, FIG. 4 illustrates an initial classification process of an input data set according to an embodiment of the present invention. That is, as shown in FIG. 4, it is determined whether to branch to the left cluster G1 or the right cluster G2 through the SVM in the root node, and branch the branch. For reference, the new input data and the centroid and normalized Euclidean distances of the two largest clusters of the top node are measured, and a closer candidate is adopted as the candidate group based on the measured distance, Can be assigned to the cluster.

다음으로, 이진 트리 구조의 SVM 노드 별로 기설정된 가중 계수를 산출한다(S330).Next, predetermined weighting coefficients are calculated for each SVM node in the binary tree structure (S330).

구체적으로, 기설정된 하기 수학식 1을 통해 가중 계수를 산출한다.Specifically, the weighting coefficient is calculated by the following equation (1).

<수학식 1>&Quot; (1) &quot;

Figure 112014046812291-pat00001
Figure 112014046812291-pat00001

상기 수학식 1에 따르면, 가중 계수는 0에서 1까지의 값을 가지며, 0인 경우에는 부모 노드를 의미하고 1인 경우에는 최하위 노드를 의미한다.According to Equation (1), the weighting factor has a value ranging from 0 to 1, and when it is 0, it means a parent node, and when it is 1, it means a lowest node.

그런 후, 산출된 SVM 노드 별 가중 계수에 기초하여 입력 데이터가 최종적으로 분기될 잎 노드를 선택하고(S340), 선택된 SVM 잎 노드에서 분기하여 최종적으로 입력 데이터를 할당할 SVM 노드를 생성한다(S350).Then, based on the calculated weighting factors for each SVM node, the leaf node to which the input data is to be finally branched is selected (S340), and an SVM node to which the input data is finally allocated is generated by branching at the selected SVM leaf node ).

예를 들어, 도 5 및 도 6은 본 발명의 일 실시예에 따른 가중 계수에 따른 잎 노드 선택 방법을 설명하기 위한 도면이다.For example, FIGS. 5 and 6 are diagrams for explaining a leaf node selecting method according to a weighting coefficient according to an embodiment of the present invention.

이때, 상기 도 4에서 입력 데이터가 왼쪽 군집으로 분류되었을 경우, 각 SVM 노드의 가중 계수는 도 5와 같을 수 있다. 가중 계수의 값이 0과 1이 아니면서, 가장 큰 값을 갖는 노드에서 분기를 수행한다.In this case, if the input data is classified into the left cluster in FIG. 4, the weighting factors of the respective SVM nodes may be as shown in FIG. If the value of the weighting coefficient is not 0 or 1, the node having the largest value branches.

한편, 도 5의 (a)에서와 같이 잎 노드이되 가장 큰 가중 계수의 값이 동일한 잎 노드가 존재하는 경우, 도 5의 (b)에서와 같이 해당 노드의 부모 노드(Parent Node)를 통해서 입력 데이터의 소속 클래스를 분류하여 최종 분기할 잎 노드를 결정할 수 있다. 즉, 도 5의 (a)에서와 같이, 가중 계수가 0.8로 동일한 잎 노드 SVM 5 및 SVM 6이 존재할 경우, 최상위 노드 SVM 1부터 왼쪽으로 분기하여 최종적으로 SVM 5 잎 노드의 자리에서 분기하여 SVM 13을 생성한 후 입력 데이터를 할당한다.5 (a), when the leaf node having the same weighting coefficient value as the leaf node is present, as shown in FIG. 5 (b), input is performed through the parent node of the corresponding node It is possible to classify the belonging class of data and determine the leaf node to be finally branched. 5 (a), when the leaf nodes SVM 5 and SVM 6 having the same weighting factor of 0.8 exist, the leaf nodes SVM 5 and SVM 6 branch to the left from the highest node SVM 1 and finally branches to the SVM 5 leaf node, 13, and then assigns the input data.

또한, 도 5에서는 최상위 노드에서 입력 데이터의 소속 클래스를 왼쪽 군집으로 결정한 것을 설명하였으나, 도 6에서와 같이 최상위 노드에서 입력 데이터의 소속 클래스를 오른쪽 군집으로 결정하는 것도 가능하다. 도 6에서는 가장 큰 가중 계수 0.75를 갖는 SVM10 잎 노드에서 최종적으로 분기하는 것을 나타내었다.In FIG. 5, it is explained that the class of the input data belongs to the left cluster at the highest node, but it is also possible to determine the belonging class of the input data as the right cluster at the highest node as shown in FIG. In FIG. 6, it is shown that the SVM10 leaf node having the largest weighting factor 0.75 is finally branched.

즉, 도 5 및 도 6에서 입력 데이터(D1)는 각각 가중 계수에 의해 선택된 잎 노드에서 최종적으로 분기하여 새롭게 생성된 SVM 노드(도 5 및 도 6에서는 ‘SVM 13’으로 나타냄)에 할당된다.5 and 6, the input data D1 is allocated to the newly created SVM node (denoted by 'SVM 13' in FIG. 5 and FIG. 6) by finally branching at the leaf node selected by the weighting coefficient.

이상, 단계 (S320) 내지 (S350)까지의 단계들을 새로운 입력 데이터 셋의 모든 입력 데이터가 할당될 때까지 반복 처리한다. 그런 후, 모든 입력 데이터를 할당하기 위한 SVM 생성이 완료되면, 해당 상태의 이진 트리 구조를 확정하여 이진 트리 구조를 갱신한다(S360).Thus, the steps from S320 to S350 are repeated until all the input data of the new input data set is allocated. Then, when the SVM generation for allocating all the input data is completed, the binary tree structure of the corresponding state is determined and the binary tree structure is updated (S360).

예를 들어, 이상에서의 일련의 과정들은, 하기 표 1에서와 같은, 이진 트리 구조 갱신부(120)가 입력 데이터 셋이 발생되면 SVM 노드들의 BTA를 갱신하는 알고리즘의 일례를 나타내는 슈도 코드(pseudo code)로 표현할 수 있다.For example, a series of processes described above may be performed by the binary tree structure update unit 120, as shown in Table 1 below, when the input data set is generated, a pseudo code code.

<표 1><Table 1>

Figure 112014046812291-pat00002
Figure 112014046812291-pat00002

다시 도 1로 돌아가서, 병렬 학습 제어부(130)는 에스브이엠 학습 처리부(140)를 제어하여 상기 이진 트리 구조가 갱신된 상태의 SVM 노드들이 병렬적으로 학습되도록 제어한다.Referring back to FIG. 1, the parallel learning control unit 130 controls the SVM learning processing unit 140 to control the SVM nodes in the updated state of the binary tree structure to be learned in parallel.

에스브이엠 학습 처리부(140)는 각각 복수의 SVM 노드들의 학습을 처리하는 복수의 학습 처리기(미도시)를 포함한다. 예를 들어, 본 발명의 일 실시예에 따른 에스브이엠 학습 처리부(140)는 멀티 코어 프로세서일 수 있으며, 이때 각 학습 처리기는 코어(core)일 수 있다. 에스브이엠 학습 처리부(140)는 병렬 학습 제어부(130)의 제어에 따라 각 학습 처리기(미도시) 별로 작업 부하(즉, 처리할 SVM 노드의 데이터 규모)를 처리한다.The SVM learning processing unit 140 includes a plurality of learning processors (not shown) each processing learning of a plurality of SVM nodes. For example, the SVM learning processor 140 according to an exemplary embodiment of the present invention may be a multicore processor, and each learning processor may be a core. The SVM learning processing unit 140 processes the workload (that is, the data size of the SVM node to be processed) for each learning processor (not shown) under the control of the parallel learning control unit 130. [

데이터베이스(150)는 기존에 학습된 입력 데이터 셋들이 저장되어 있으며, 새롭게 입력된 데이터 셋 또한 에스브이엠 학습 처리부(140)를 통한 학습 처리 후 데이터베이스(150)에 저장된다. 이때, 데이터베이스(150)는 에스브이엠 학습 처리부(140)가 필요로 하는 SVM 노드(즉, 신규 학습 및 재학습이 필요한 SVM 노드)들의 입력 데이터를 제공한다.The database 150 stores previously learned input data sets, and the newly input data sets are also stored in the database 150 after the learning processing through the AV learning processing unit 140. At this time, the database 150 provides input data of SVM nodes (i.e., SVM nodes requiring new learning and re-learning) required by the S / V learning processing unit 140.

이하에서는, 도 7을 참조하여 병렬 학습 제어부(130)가 SVM 노드들의 병렬 학습을 제어하는 방법에 대해서 상세히 설명하도록 한다.Hereinafter, a method for controlling the parallel learning of the SVM nodes by the parallel learning control unit 130 will be described in detail with reference to FIG.

도 7은 본 발명의 일 실시예에 따른 SVM 병렬 처리 방식을 설명하기 위한 순서도이다.7 is a flowchart illustrating an SVM parallel processing method according to an embodiment of the present invention.

SVM-BTA의 구조적 특성에 따르면, 각 노드에 존재하는 SVM은 다른 SVM과의 의존(Dependency)없이 개별적으로 학습이 가능하다. 따라서, 병렬 학습 제어부(130)는 에스브이엠 학습 처리부(130)의 복수의 학습 처리기(미도시)에서 학습해야 할 SVM의 작업 부하(Workload)를 할당하여 병렬 처리를 제어한다.According to the structural characteristics of SVM-BTA, SVMs existing in each node can be learned independently without dependency with other SVMs. Accordingly, the parallel learning control unit 130 allocates workloads of SVMs to be learned in a plurality of learning processors (not shown) of the S / V learning processing unit 130, and controls the parallel processing.

즉, 이진 트리 구조 갱신부(120)를 통해 새로운 입력 데이터 셋의 발생에 따라 갱신된 이진 트리 구조가 적용된 각 SVM 노드 별 학습 수행 시간을 추정한다(S710).That is, the learning execution time of each SVM node to which the updated binary tree structure is applied is estimated according to the generation of the new input data set through the binary tree structure update unit 120 (S710).

이때, 각 SVM 노드가 입력으로 받는 데이터 셋의 크기가 각각 다르기 때문에 최적의 병렬 처리 효과를 위해서, 병렬 학습 제어부(130)는 각 학습 처리기에 필요한 리소스(Memory Resource)의 양과 학습 수행 시간(Training Time)을 가능한 균등 분배한다.In this case, since the sizes of the data sets received by the SVM nodes are different from each other, the parallel learning control unit 130 calculates the amount of resources (Memory Resource) required for each learning processor and the training time ) As much as possible.

즉, SVM 노드 별 데이터 크기 및 학습 수행 시간에 기초하여 복수의 학습 처리기에 작업 부하를 균등하게 할당한다(S720).That is, the workloads are equally allocated to the plurality of learning processors based on the data size and the learning execution time for each SVM node (S720).

참고로, 하나의 배낭에 가장 이익이 되도록 물건을 담는 전통적인 배낭 문제(Knapsack Problem)의 변형된 형태로서, 배낭에 반드시 넣어야 하는 부피(Data Scale)와 무게(Training Time)가 서로 다른 물건(Dataset)이 주어졌을 때, 주어진 배낭(학습 처리기, Core)이 가급적 비슷한 부피와 무게를 갖도록 분배하여 담는 문제로 재해석한다. 즉, 본 발명의 일 실시예에서는 SVM-BTA의 학습 문제를 변형된 배낭 문제로 보고, 각 학습 처리기에 거의 동일한 수준의 작업 부하가 할당되도록 한다.As a reference, it is a variation of the traditional Knapsack Problem which contains the items to be most profitable in a single backpack. It is a variant of the Knapsack Problem, in which the Data Scale and the Training Time are different, , It is reinterpreted as a problem of distributing the given backpack (the learning processor, Core) so as to have similar volume and weight as possible. That is, in one embodiment of the present invention, the learning problem of the SVM-BTA is regarded as a modified backpack problem, and the same level of workload is assigned to each learning processor.

예를 들어, 도 8은 본 발명의 일 실시예에 따른 SVM 처리기에 대한 작업 부하 할당 방식을 설명하기 위한 도면이다.For example, FIG. 8 illustrates a workload allocation method for an SVM processor according to an embodiment of the present invention.

도 8에서와 같이, 각 학습 처리기에 필요한 리소스(Memory Resource)의 양과 학습 수행 시간(Training Time)을 가능한 균등 분배한다. 도 8의 (a)에서는 작업 부하의 균등 분배가 처리되지 않은 상태를 나타내었고, 도 8의 (b)에서는 본 발명의 일 실시예에 따라 작업 부하를 균등 분배한 상태를 나타내었다.As shown in FIG. 8, the amount of resources (Memory Resource) required for each learning processor and the training execution time (Training Time) are equally distributed as much as possible. FIG. 8A shows a state in which the workload is not evenly distributed, and FIG. 8B shows a state in which the workload is evenly distributed according to an embodiment of the present invention.

한편, SVM-BTA의 병렬 처리는, 순차 처리보다 최대

Figure 112014046812291-pat00003
(T1 = 순차 처리 시간, Tn= n개의 학습 처리기를 통한 병렬 처리 수행 시간)만큼 학습 처리 시간을 단축할 수 있다. 또한, 데이터의 규모와 학습 수행 시간은 거의 선형적인(linear) 특성을 갖는다. 따라서, SVM-BTA 병렬 처리는 각 학습 처리기에서 수행될 SVM 학습 시간이
Figure 112014046812291-pat00004
(이하, ‘최적 학습 수행 시간’이라고 지칭함)이 되도록 작업 부하를 분배하되, SVM의 학습이 진행되는 각 순간마다 전체 필요한 메모리의 양이 최소가 되도록 작업 부하의 우선 순위를 스케줄링하여 최적의 병렬처리 결과를 얻을 수 있다.On the other hand, parallel processing of SVM-BTA is faster than sequential processing
Figure 112014046812291-pat00003
(T 1 = sequential processing time, T n = parallel processing execution time through n learning processors). In addition, the size of the data and the execution time are almost linear. Therefore, the SVM-BTA parallel processing is performed by the SVM learning time
Figure 112014046812291-pat00004
(Hereinafter referred to as &quot; optimal learning execution time &quot;), scheduling the priority of the workload so that the total amount of required memory is minimized at each instant of learning of the SVM, Results can be obtained.

즉, 기설정된 최적 학습 수행 시간 및 SVM 노드 별 학습 수행 시간에 기초하여 학습 처리기 별 SVM 처리 순서를 정렬한다(S730).That is, the SVM processing sequence for each learning processor is sorted based on the predetermined optimal learning execution time and the learning execution time for each SVM node (S730).

그런 다음, 상기 정렬에 따른 스케줄에 따라 복수의 SVM을 병렬 학습 처리한다(S740).Then, a plurality of SVMs are parallel-learned according to the schedule according to the alignment (S740).

이상에서와 같이, 병렬 학습 제어부(130)는, 새로 학습해야 할 SVM 및 데이터 셋이 입력되었을 경우 에스브이엠 학습 처리부(140)의 학습 처리기의 개수를 고려하여 각 학습 처리기에 할당되어야 할 최적의 학습 수행 시간(

Figure 112014046812291-pat00005
)을 계산한다. 그리고 데이터 셋의 규모를 고려하여, 작업 부하 별로 예상되는 학습 시간을 추정하고, 작업 부하 할당 전략을 통하여 첫 번째 학습 처리기부터 순차적으로 n번 째(단, n는 자연수) 학습 처리기까지 작업 부하 할당을 수행한다.As described above, when the SVM and the data set to be newly learned are inputted, the parallel learning control unit 130 calculates the optimum value to be allocated to each learning processor in consideration of the number of learning processors of the S / V learning processing unit 140 Learning time (
Figure 112014046812291-pat00005
). In addition, considering the size of the dataset, the estimated learning time for each workload is estimated, and the workload allocation from the first learning processor to the n-th learning processor (n is a natural number) .

참고로, 작업 부하 할당 전략은, 각 학습 처리기의 상태에 따라 다음과 같은 절차를 수행한다.For reference, the workload allocation strategy performs the following procedure according to the state of each learning processor.

먼저, i 번째 학습 처리기에 할당된 작업 부하의 예상 시간과 새로 입력된 작업 부하의 예상 시간의 합이 최적 학습 수행 시간보다 작을 경우 입력된 작업 부하를 i 번째 코어에 할당한다.First, if the sum of the estimated time of the workload allocated to the ith learning processor and the estimated time of the newly inputted workload is smaller than the optimal learning execution time, the input workload is allocated to the ith core.

반면, i 번째 학습 처리기에 할당된 작업 부하의 예상 시간과 새로 입력된 작업 부하의 예상 시간의 합이 최적 학습 수행 시간을 초과할 경우, 임시적으로 i+1 번째 학습 처리기에 작업 부하를 할당한 후 전체 합을 다시 한번 구하고, 최적 학습 수행 시간의 조건에 부합되는지 반복적으로 확인하여 최적 학습 수행 시간 이하의 시간이 되는 학습 처리기에 할당한다.On the other hand, if the sum of the estimated time of the workload allocated to the ith learning processor and the estimated time of the newly inputted workload exceeds the optimal learning execution time, the workload is temporarily allocated to the (i + 1) The total sum is again obtained, and it is repeatedly checked whether it meets the condition of the optimum learning execution time, and assigned to the learning processor which is less than the optimal learning execution time.

또한, 사용 가능한 학습 처리기를 대상으로 전체 작업 부하의 합이 최적 학습 수행 시간이 되는지를 확인한 후에도 할당되지 않은 작업 부하는, 작업 부하에 따른 예측 학습 시간의 합이 가장 작은 학습 처리기에 할당한다.In addition, even after confirming that the sum of all the workloads for the available learning processors is the optimum learning performance time, the unallocated workloads are allocated to the learning processor having the smallest sum of the predicted learning times according to the workloads.

한편, 병렬 학습 제어부(120)는 상기 작업 부하 할당 전략에 따른 모든 과정을 진보된 빠른 정렬(Advanced Quick Sort) 알고리즘을 통해 작업 부하가 모두 할당될 때까지 반복한다. Advanced Quick Sort는 각 학습 처리기에 작업 부하가 쌓여졌을 때 가급적 학습이 진행되는 순간마다 SVM 노드 별 학습이 동시에 종료될 수 있도록 하기 위한 것이다.Meanwhile, the parallel learning control unit 120 repeats all the processes according to the workload allocation strategy until the workloads are all allocated through the advanced quick sort algorithm. Advanced Quick Sort is designed so that SVM node-specific learning can be terminated at the same time when learning load accumulates in each learning processor.

예를 들어, 도 9는 본 발명의 일 실시예에 따른 SVM 학습 처리를 위한 작업 부하 순서의 정렬 방식을 설명하기 위한 도면이다.For example, FIG. 9 is a diagram for explaining an arrangement method of a workload order for an SVM learning process according to an embodiment of the present invention.

도 9에서와 같이, 병렬 학습 제어부(120)는 같은 크기를 갖는 작업 부하 조합을 탐색하여 작업 부하 순서를 정렬해 준다. 만일 같은 크기의 작업 부하 조합을 찾을 수 없는 경우, 빠른 정렬(Quick Sort) 알고리즘을 사용하여 작업 부하를 정렬한다.As shown in FIG. 9, the parallel learning control unit 120 searches workload combinations having the same size to sort workload orders. If you can not find a workload combination of the same size, use the Quick Sort algorithm to sort the workload.

이와 같이, 병렬 학습 제어부(120)는 이진 트리 구조에서 각 노드에 존재하는 SVM의 서로 다른 데이터 셋 규모로부터 학습 수행 시간을 예측하여, 예측된 학습 수행 시간과 최적 학습 수행 시간을 비교하여 각 학습 처리기에 작업 부하를 할당한다. 그리고 할당된 작업 부하가 매 순간마다 동시에 끝나면서 최소의 리소스만을 차지할 수 있도록 작업 순서를 정렬한다. 이에 따라, 최적의 병렬 처리 결과를 얻을 수 있다.In this way, the parallel learning control unit 120 predicts the learning execution time from the different data set sizes of the SVMs existing in each node in the binary tree structure, compares the predicted learning execution time with the optimal learning execution time, To the workload. And sort the work order so that the allocated workload ends at the same time and occupies a minimum of resources. Thus, an optimal parallel processing result can be obtained.

즉, 병렬 학습 제어부(130)는 SVM 노드 별로 필요한 리소스 규모 및 학습 예측 시간을 예측하고, 리소스 규모 및 학습 예측 시간에 기초하여 상기 복수의 학습 처리기에 각각 처리할 SVM 노드 별 데이터를 균등하게 할당한다. 그리고, 병렬 학습 제어부(130)는 상기 학습 처리기 별로 데이터가 할당된 SVM 노드 중 데이터 크기가 동일한 SVM 노드의 조합을 검출하고, 학습 처리기에서 동일 시점에 상기 검출된 SVM 노드의 조합을 함께 처리하도록 SVM 노드 별 데이터를 정렬한다.That is, the parallel learning control unit 130 predicts the resource size and the predicted learning time required for each SVM node, and equally allocates the data for each SVM node to be processed to each of the plurality of learning processors based on the resource size and the learning predicted time . The parallel learning controller 130 detects a combination of SVM nodes having the same data size among the SVM nodes to which the data is allocated for each of the learning processors, and instructs the SVM node to process the combination of the detected SVM nodes at the same time Sort data by node.

예를 들어, 이상에서의 일련의 과정들은 하기 표 2에서와 같은 슈도 코드(pseudo code)로 표현할 수 있다.For example, a series of processes described above can be expressed by pseudo code as shown in Table 2 below.

<표 2><Table 2>

Figure 112014046812291-pat00006
Figure 112014046812291-pat00006

본 발명의 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. Embodiments of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

100: 서포트 벡터 머신의 이진 트리 구조 갱신 장치
110: 데이터 입력부
120: 이진 트리 구조 갱신부
130: 병렬 학습 제어부
140: 에스브이엠 학습 처리부
150: 데이터베이스
100: binary tree structure update apparatus of support vector machine
110: Data input unit
120: Binary tree structure update unit
130: parallel learning control unit
140: S-VEM processing processor
150: Database

Claims (14)

서포트 벡터 머신(Support Vector Machine)의 이진 트리 구조(Binary Tree Architecture) 갱신 장치에 있어서,
적어도 하나의 입력 데이터를 포함하는 입력 데이터 셋(set)을 수신하는 데이터 입력부; 및
이진 트리 구조(Binary Tree Architecture)로 구성된 복수의 SVM(Support Vector Machine) 노드 중 적어도 하나의 잎 노드(Leaf node)를 검출하고, 상기 검출된 잎 노드 중 어느 하나에서 분기된 상기 입력 데이터를 할당할 새로운 SVM 노드를 생성하여 상기 이진 트리 구조를 갱신하는 이진 트리 구조 갱신부를 포함하고,
상기 이진 트리 구조 갱신부는,
기학습된 최상위 SVM 노드를 통해 새로운 입력 데이터의 분기 방향을 결정하고, 상기 복수의 SVM 노드 별로 상기 이진 트리 구조에서의 깊이(Depth) 및 클래스 크기에 기초하여 가중 계수를 산출하고, 상기 가중 계수에 기초하여 상기 검출된 잎 노드 중 상기 분기할 잎 노드를 선택하되,
상기 SVM 노드 별로, 클래스 크기 및 전체 깊이의 곱셈 값을 분모로 하고, 상기 최상위 SVM 노드부터 해당 SVM 노드까지의 잎 노드의 개수 및 해당 SVM 노드의 깊이의 곱셈 값을 분모로 하는 연산식에 따라 상기 가중 계수를 산출하고,
상기 검출된 잎 노드 중 상기 산출된 가중 계수의 값이 가장 높은 잎 노드를 상기 분기할 잎 노드로 선택하는 서포트 벡터 머신의 이진 트리 구조 갱신 장치.
1. A binary tree architecture update apparatus of a support vector machine,
A data input for receiving an input data set including at least one input data; And
A method for detecting at least one leaf node among a plurality of SVM (Support Vector Machine) nodes constituted by a binary tree structure and allocating the input data branched from any one of the detected leaf nodes And a binary tree structure update unit for creating a new SVM node to update the binary tree structure,
Wherein the binary tree structure update unit comprises:
Determining a branching direction of new input data through a learned highest SVM node, calculating a weighting coefficient based on a depth and a class size in the binary tree structure for each of the plurality of SVM nodes, Selecting leaf nodes to branch from among the detected leaf nodes,
Wherein the multiplication value of the class size and the total depth is denominator for each of the SVM nodes and the multiplication value of the number of leaf nodes from the highest SVM node to the corresponding SVM node and the depth of the corresponding SVM node is denominator, Calculates a weighting coefficient,
The leaf node having the highest value of the calculated weighting coefficient among the detected leaf nodes is selected as the leaf node to be branched A binary tree structure update apparatus of a support vector machine.
삭제delete 제 1 항에 있어서,
상기 이진 트리 구조 갱신부는,
상기 가중 계수의 값이 가장 높은 잎 노드가 복수 개 검출될 경우, 상기 가중 계수의 값이 가장 높은 복수의 잎 노드 별 부모 노드를 통해 상기 입력 데이터의 소속 클래스를 판단하고, 상기 부모 노드에서 상기 소속 클래스에 대해 결정된 분기 방향에 따라 상기 분기할 잎 노드를 선택하는 서포트 벡터 머신의 이진 트리 구조 갱신 장치.
The method according to claim 1,
Wherein the binary tree structure update unit comprises:
Judging a belonging class of the input data through a plurality of parent nodes for each leaf node having a highest weighting coefficient value when a plurality of leaf nodes having the highest weighting coefficient value are detected, And selects the leaf node to be branched according to the branching direction determined for the class.
제 1 항에 있어서,
상기 갱신된 이진 트리 구조의 SVM 노드들이 병렬적으로 학습하도록 제어하는 병렬 학습 제어부; 및
각각 복수의 상기 SVM 노드들의 학습을 처리하는 복수의 학습 처리기를 포함하되, 상기 병렬 학습 제어부의 제어에 따라 상기 갱신된 이진 트리 구조의 SVM 노드들의 학습을 병렬 처리하는 에스브이엠 학습 처리부를 더 포함하는 서포트 벡터 머신의 이진 트리 구조 갱신 장치.
The method according to claim 1,
A parallel learning control unit for controlling the SVM nodes of the updated binary tree structure to learn in parallel; And
And a plurality of learning processors each processing learning of the plurality of SVM nodes, wherein the SVM learning processing unit further includes an S / V learning processing unit for performing parallel processing of SVM nodes of the updated binary tree structure under the control of the parallel learning control unit A binary tree structure update device of the support vector machine.
제 4 항에 있어서,
상기 병렬 학습 제어부는,
상기 SVM 노드 별로 필요한 리소스 규모 및 학습 예측 시간을 예측하고, 상기 리소스 규모 및 학습 예측 시간에 기초하여 상기 복수의 학습 처리기에 각각 처리할 SVM 노드 별 데이터를 균등하게 할당하는 서포트 벡터 머신의 이진 트리 구조 갱신 장치.
5. The method of claim 4,
Wherein the parallel learning control unit comprises:
A binary tree structure of a support vector machine for predicting a required resource size and a predicted learning time for each SVM node and allocating data for each SVM node to be processed to each of the plurality of learning processors on the basis of the resource size and the predicted learning time Update device.
제 5 항에 있어서,
상기 병렬 학습 제어부는,
상기 학습 처리기 별로 데이터가 할당된 SVM 노드 중 데이터 크기가 동일한 SVM 노드의 조합을 검출하고, 상기 학습 처리기에서 동일 시점에 상기 검출된 SVM 노드의 조합을 함께 처리하도록 SVM 노드 별 데이터를 정렬하는 서포트 벡터 머신의 이진 트리 구조 갱신 장치.
6. The method of claim 5,
Wherein the parallel learning control unit comprises:
A support vector for sorting SVM node-specific data such that a combination of SVM nodes having the same data size among the SVM nodes to which data is allocated for each learning processor is detected and the learning processor simultaneously processes the combination of the detected SVM nodes at the same time A binary tree structure update mechanism for a machine.
제 1 항에 있어서,
상기 입력 데이터 셋은 얼굴 인식을 위한 학습용 얼굴 이미지 데이터인 것인 서포트 벡터 머신의 이진 트리 구조 갱신 장치.
The method according to claim 1,
Wherein the input data set is training face image data for face recognition.
서포트 벡터 머신의 이진 트리 구조 갱신 장치를 통한 서포트 벡터 머신의 이진 트리 구조 갱신 방법에 있어서,
적어도 하나의 입력 데이터를 포함하는 입력 데이터 셋(set)을 수신하는 단계;
이진 트리 구조(Binary Tree Architecture)로 구성된 복수의 SVM(Support Vector Machine) 노드 중 적어도 하나의 잎 노드(Leaf node)를 검출하는 단계; 및
상기 검출된 잎 노드 중 어느 하나에서 분기된 상기 입력 데이터를 할당할 새로운 SVM 노드를 생성하여 상기 이진 트리 구조를 갱신하는 단계를 포함하고,
상기 이진 트리 구조를 갱신하는 단계는,
기학습된 최상위 SVM 노드를 통해 새로운 입력 데이터의 분기 방향을 결정하고, 상기 복수의 SVM 노드 별로 상기 이진 트리 구조에서의 깊이(Depth) 및 클래스 크기에 기초하여 가중 계수를 산출하고, 상기 가중 계수에 기초하여 상기 검출된 잎 노드 중 상기 분기할 잎 노드를 선택하되,
상기 SVM 노드 별로, 클래스 크기 및 전체 깊이의 곱셈 값을 분모로 하고, 상기 최상위 SVM 노드부터 해당 SVM 노드까지의 잎 노드의 개수 및 해당 SVM 노드의 깊이의 곱셈 값을 분모로 하는 연산식에 따라 상기 가중 계수를 산출하고,
상기 검출된 잎 노드 중 상기 산출된 가중 계수의 값이 가장 높은 잎 노드를 상기 분기할 잎 노드로 선택하는 서포트 벡터 머신의 이진 트리 구조 갱신 방법.
A method for updating a binary tree structure of a support vector machine via a binary tree structure update apparatus of a support vector machine,
The method comprising: receiving an input data set including at least one input data;
Detecting at least one leaf node among a plurality of SVM (Support Vector Machine) nodes constituted by a binary tree structure; And
Generating a new SVM node to which the input data branched from one of the detected leaf nodes is to be allocated and updating the binary tree structure,
Wherein updating the binary tree structure comprises:
Determining a branching direction of new input data through a learned highest SVM node, calculating a weighting coefficient based on a depth and a class size in the binary tree structure for each of the plurality of SVM nodes, Selecting leaf nodes to branch from among the detected leaf nodes,
Wherein the multiplication value of the class size and the total depth is denominator for each of the SVM nodes and the multiplication value of the number of leaf nodes from the highest SVM node to the corresponding SVM node and the depth of the corresponding SVM node is denominator, Calculates a weighting coefficient,
The leaf node having the highest value of the calculated weighting coefficient among the detected leaf nodes is selected as the leaf node to be branched A method for updating a binary tree structure of a support vector machine.
삭제delete 제 8 항에 있어서,
상기 이진 트리 구조를 갱신하는 단계는,
상기 가중 계수의 값이 가장 높은 잎 노드가 복수 개 검출될 경우, 상기 가중 계수의 값이 가장 높은 복수의 잎 노드 별 부모 노드를 통해 상기 입력 데이터의 소속 클래스를 판단하고, 상기 부모 노드에서 상기 소속 클래스에 대해 결정된 분기 방향에 따라 상기 분기할 잎 노드를 선택하는 서포트 벡터 머신의 이진 트리 구조 갱신 방법.
9. The method of claim 8,
Wherein updating the binary tree structure comprises:
Judging a belonging class of the input data through a plurality of parent nodes for each leaf node having a highest weighting coefficient value when a plurality of leaf nodes having the highest weighting coefficient value are detected, And selecting the leaf node to be branched according to the branching direction determined for the class.
제 8 항에 있어서,
상기 이진 트리 구조를 갱신하는 단계 이후에,
각각 복수의 상기 SVM 노드들의 학습을 처리하는 복수의 학습 처리기가 상기 갱신된 이진 트리 구조의 SVM 노드들의 학습을 병렬 처리하는 단계를 더 포함하는 서포트 벡터 머신의 이진 트리 구조 갱신 방법.
9. The method of claim 8,
After updating the binary tree structure,
Further comprising parallel processing of learning of SVM nodes of the updated binary tree structure by a plurality of learning processors each processing learning of a plurality of SVM nodes.
제 11 항에 있어서,
상기 SVM 노드들의 학습을 병렬 처리하는 단계는,
상기 SVM 노드 별로 필요한 리소스 규모 및 학습 예측 시간을 예측하는 단계; 및
상기 리소스 규모 및 학습 예측 시간에 기초하여 상기 복수의 학습 처리기에 각각 처리할 SVM 노드 별 데이터를 균등하게 할당하는 단계를 포함하는 서포트 벡터 머신의 이진 트리 구조 갱신 방법.
12. The method of claim 11,
Wherein the parallel processing of learning of the SVM nodes comprises:
Estimating a resource size and a predicted learning time required for each SVM node; And
And equally allocating data for each SVM node to be processed to the plurality of learning processors based on the resource size and the predicted learning time.
제 12 항에 있어서,
상기 SVM 노드들의 학습을 병렬 처리하는 단계는,
상기 SVM 노드 별 데이터를 균등하게 할당하는 단계 이후에,
상기 학습 처리기 별로 데이터가 할당된 SVM 노드 중 데이터 크기가 동일한 SVM 노드의 조합을 검출하는 단계; 및
상기 학습 처리기에서 동일 시점에 상기 검출된 SVM 노드의 조합을 함께 처리하도록 SVM 노드 별 데이터를 정렬하는 단계를 더 포함하는 서포트 벡터 머신의 이진 트리 구조 갱신 방법.
13. The method of claim 12,
Wherein the parallel processing of learning of the SVM nodes comprises:
After uniformly allocating the data for each SVM node,
Detecting combinations of SVM nodes having the same data size among SVM nodes to which data is allocated for each learning processor; And
Further comprising sorting SVM node-specific data to process the combination of detected SVM nodes together at the same time in the learning processor.
제 8 항에 있어서,
상기 입력 데이터 셋은 얼굴 인식을 위한 학습용 얼굴 이미지 데이터인 것인 서포트 벡터 머신의 이진 트리 구조 갱신 방법.
9. The method of claim 8,
Wherein the input data set is training face image data for face recognition.
KR1020140059821A 2014-05-19 2014-05-19 Svm-bta updating apparatus and method for large scale dataset KR101580202B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140059821A KR101580202B1 (en) 2014-05-19 2014-05-19 Svm-bta updating apparatus and method for large scale dataset

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140059821A KR101580202B1 (en) 2014-05-19 2014-05-19 Svm-bta updating apparatus and method for large scale dataset

Publications (2)

Publication Number Publication Date
KR20150133027A KR20150133027A (en) 2015-11-27
KR101580202B1 true KR101580202B1 (en) 2015-12-24

Family

ID=54847614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140059821A KR101580202B1 (en) 2014-05-19 2014-05-19 Svm-bta updating apparatus and method for large scale dataset

Country Status (1)

Country Link
KR (1) KR101580202B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102320310B1 (en) * 2017-09-11 2021-11-02 한국전자기술연구원 Binary Tree based High-Speed Multi-Class Circuit Device
CN107657274A (en) * 2017-09-20 2018-02-02 浙江大学 A kind of y-bend SVM tree unbalanced data industry Fault Classifications based on k means
CN109600447B (en) 2018-12-21 2021-08-10 北京百度网讯科技有限公司 Method, device and system for processing data
CN111122973A (en) * 2019-11-26 2020-05-08 北京无线电测量研究所 Method and system for improving automatic test coverage rate and electronic equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101116737B1 (en) 2010-10-12 2012-02-22 고려대학교 산학협력단 System for watchlist identification

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101116737B1 (en) 2010-10-12 2012-02-22 고려대학교 산학협력단 System for watchlist identification

Also Published As

Publication number Publication date
KR20150133027A (en) 2015-11-27

Similar Documents

Publication Publication Date Title
KR101580202B1 (en) Svm-bta updating apparatus and method for large scale dataset
CN106845642B (en) A kind of adaptive multi-target evolution method of belt restraining cloud workflow schedule
CN110366193B (en) Slice deployment method and device for network arrangement layer bearing of smart grid
Kimovski et al. Parallel alternatives for evolutionary multi-objective optimization in unsupervised feature selection
WO2020098030A1 (en) Scheduling method for request task and scheduling center server
CN111124689A (en) Dynamic allocation method for container resources in cluster
US20190340507A1 (en) Classifying data
CN113128478B (en) Model training method, pedestrian analysis method, device, equipment and storage medium
CN104735166B (en) The Skyline method for service selection annealed based on MapReduce and multi-target simulation
He et al. Algorithm-data driven optimization of adaptive communication networks
Cao et al. A PSO-based cost-sensitive neural network for imbalanced data classification
Krawczyk et al. An improved ensemble approach for imbalanced classification problems
CN108021441A (en) A kind of resources of virtual machine collocation method and device based on cloud computing
Singh et al. ACOCA: ant colony optimization based clustering algorithm for big data preprocessing
Al-Khateeb et al. Cloud guided stream classification using class-based ensemble
CN109445386A (en) A kind of most short production time dispatching method of the cloud manufacturing operation based on ONBA
Achimugu et al. A clustering based technique for large scale prioritization during requirements elicitation
CN109558898B (en) Multi-choice learning method with high confidence based on deep neural network
De Stefano et al. Pruning GP-based classifier ensembles by Bayesian networks
CN112035234B (en) Distributed batch job distribution method and device
Shrivastava et al. Selection of efficient and accurate prediction algorithm for employing real time 5g data load prediction
Biçici et al. Conditional information gain networks
Thant et al. Multiobjective level-wise scientific workflow optimization in IaaS public cloud environment
CN114978913B (en) Cross-domain deployment method and system for service function chains based on cut chains
Nabil et al. An efficient binary clonal selection algorithm with optimum path forest for feature selection

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191007

Year of fee payment: 5