KR102100204B1 - 기계 학습 기반의 분류 방법 및 그 장치 - Google Patents

기계 학습 기반의 분류 방법 및 그 장치 Download PDF

Info

Publication number
KR102100204B1
KR102100204B1 KR1020170143695A KR20170143695A KR102100204B1 KR 102100204 B1 KR102100204 B1 KR 102100204B1 KR 1020170143695 A KR1020170143695 A KR 1020170143695A KR 20170143695 A KR20170143695 A KR 20170143695A KR 102100204 B1 KR102100204 B1 KR 102100204B1
Authority
KR
South Korea
Prior art keywords
classifier
classification
machine learning
classifiers
sub
Prior art date
Application number
KR1020170143695A
Other languages
English (en)
Other versions
KR20190048605A (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 KR1020170143695A priority Critical patent/KR102100204B1/ko
Publication of KR20190048605A publication Critical patent/KR20190048605A/ko
Application granted granted Critical
Publication of KR102100204B1 publication Critical patent/KR102100204B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Abstract

기계 학습 기반의 분류 방법이 제공된다. 분류 장치에서 수행되는 본 발명의 일 실시예에 따른 분류 방법은, 기 정의된 타입에 따라 주어진 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 단계, 상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 단계, 주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 포함할 수 있다.

Description

기계 학습 기반의 분류 방법 및 그 장치{Method for classifying based on machine-learning and Apparatus thereof}
본 발명은 기계 학습 기반의 분류 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 분류 결과의 정확도를 향상시키기 위해 적용될 수 있는 기계 학습 기반의 분류 방법 및 그 방법을 수행하는 장치에 관한 것이다.
스토리지 기술의 발달에 따라 대량의 데이터가 축적되고 기계 학습 분야의 기술 성숙도가 향상됨에 따라, 다양한 분야에서 기계 학습 기술이 도입되어 활용되고 있다. 기계 학습(machine learning) 기술은 입력 데이터를 분석하고, 분석된 결과를 바탕으로 미래를 예측을 기술이다. 따라서, 기계 학습에 이용되는 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하기 보다 입력 데이터 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식으로 동작한다.
기계 학습 기술에 의해 수행될 수 있는 대표적인 태스크는 분류(classification) 태스크이다. 분류 태스크는 주어진 데이터에 미리 정해진 클래스 레이블(class label)을 부여하는 태스크이다. 예를 들어, 수신되는 이메일을 스팸 메일로 분류하는 작업, 주어진 파일에서 악성 코드를 탐지하는 작업 등이 모두 분류 태스크의 일종이다.
특히, 악성 파일 탐지 분야에서 탐지 정확도 향상을 위해 기계 학습 기술을 도입하려는 시도가 활발하게 이루어지고 있다. 최근, 신변종 악성코드가 빠르게 증가하는 상황임에도 불구하고, 종래의 시그니처(signature) 기반 탐지 방법은 알려지지 않은 악성코드를 탐지할 수 없기 때문이다. 그러나, 지금까지 제안된 기계 학습 기반 악성 파일 탐지 방법은 여전히 탐지 정확도가 높지 않기 때문에 실용화되기 어려운 실정이다.
이에 따라, 악성 파일 탐지 분야에서 높은 정확도로 악성 코드를 탐지할 수 있는 탐지 방법이 요구되며, 이외의 다양한 분야에서도 높은 정확도로 분류 태스크를 수행할 수 있는 기계 학습 기반의 분류 방법의 필요성이 꾸준하게 제기되고 있다.
한국공개특허 제10-2015-0110065 (2015.10.02 공개)
본 발명이 해결하고자 하는 기술적 과제는, 다양한 분야에서 높은 정확도로 분류 태스크를 수행할 수 있는 기계 학습 기반의 분류 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 악성 파일 탐지 분야에서 악성 파일 탐지의 정확도를 향상시킬 수 있는 기계 학습 기반의 악성 파일 탐지 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 기계 학습 기반의 분류 방법은, 분류 장치에서 수행되는 분류 방법에 있어서, 기 정의된 타입에 따라 주어진 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 단계, 상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 단계, 주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 포함할 수 있다.
일 실시예에서, 상기 복수의 서브 데이터셋은 제1 타입에 대응되는 제1 서브 데이터셋 및 제2 타입에 대응되는 제2 서브 데이터셋을 포함하고, 상기 복수의 분류기를 구축하는 단계는, 상기 제1 서브 데이터셋에 대한 제1 클러스터링(clustering)을 수행하여, 제1 복수의 클러스터를 생성하는 단계, 상기 제1 복수의 클러스터 각각에 속한 서브 데이터셋을 이용하여, 각각의 클러스터 별로 대응되는 분류기를 구축하는 단계, 상기 제2 서브 데이터셋에 대한 제2 클러스터링을 수행하여, 적어도 하나의 제2 복수의 클러스터를 생성하는 단계 및 상기 제2 복수의 클러스터 각각에 속한 서브 데이터셋을 이용하여, 각각의 클러스터 별로 대응되는 분류기를 구축하는 단계를 포함할 수 있다.
일 실시예에서, 상기 복수의 서브 데이터셋 각각은 제1 클래스 레이블(class label)이 태깅된 제1 데이터셋 및 제2 클래스 레이블이 태깅된 제2 데이터셋을 포함하고, 상기 복수의 분류기를 구축하는 단계는, 기 지정된 비율에 따라, 상기 제1 데이터셋의 개수 및 상기 제2 데이터셋의 개수 중 적어도 하나를 조정하는 단계 및 상기 조정된 각각의 서브 데이터셋에 대한 기계 학습을 수행하여, 상기 복수의 분류기를 구축하는 단계를 포함할 수 있다.
일 실시예에서, 상기 트레이닝 데이터셋을 구성하는 각각의 단위 데이터는 복수의 특징이 포함된 특징 벡터이고, 상기 복수의 서브 데이터셋은 제1 타입에 대응되는 제1 서브 데이터셋 및 제2 타입에 대응되는 제2 서브 데이터셋을 포함하며, 상기 복수의 분류기를 구축하는 단계는, 지정된 제1 특징 선택 알고리즘(feature selection algorithm)을 상기 제1 서브 데이터셋에 적용하여, 상기 복수의 특징 중에서 상기 제1 타입에 대응되는 제1 주요 특징을 선정하는 단계, 상기 제1 서브 데이터셋 중에서 상기 제1 주요 특징에 대한 서브 데이터셋을 이용하여, 상기 제1 타입에 대응되는 제1 분류기를 구축하는 단계, 지정된 제2 특징 선택 알고리즘을 상기 제2 서브 데이터셋에 적용하여, 상기 복수의 특징 중에서 상기 제2 타입에 대응되는 제2 주요 특징을 선정하는 단계 및 상기 제2 서브 데이터셋 중에서 상기 제2 주요 특징에 대한 서브 데이터셋을 이용하여, 상기 제2 타입에 대응되는 제2 분류기를 구축하는 단계를 포함할 수 있다.
일 실시예에서, 상기 복수의 서브 데이터셋은 제1 타입에 대응되는 제1 서브 데이터셋 및 제2 타입에 대응되는 제2 서브 데이터셋을 포함하고, 상기 복수의 분류기를 구축하는 단계는, 상기 제1 서브 데이터셋에 대한 에이다부스트(AdaBoost) 기반 기계 학습을 수행하여, 상기 제1 타입에 대응되는 제1 분류기를 구축하는 단계 및 상기 제2 서브 데이터셋에 대한 에이다부스트 기반 기계 학습을 수행하여, 상기 제2 타입에 대응되는 제2 분류기를 구축하는 단계를 포함하되, 상기 제1 분류기 및 상기 제2 분류기는 각각 복수의 약 분류기(weak classifier)로 구성될 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 기계 학습 기반의 분류 방법은, 분류 장치에서 수행되는 분류 방법에 있어서, 주어진 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 단계, 상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 단계, 주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 기계 학습 기반의 분류 장치는, 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 트레이닝 데이터셋 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 기 정의된 타입에 따라 상기 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 오퍼레이션, 상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 오퍼레이션, 주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 오퍼레이션 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 오퍼레이션을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 기계 학습 기반의 분류 장치는, 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 트레이닝 데이터셋 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 상기 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 오퍼레이션, 상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 오퍼레이션, 주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 오퍼레이션 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 오퍼레이션을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 기 정의된 타입에 따라 주어진 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 단계, 상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 단계, 주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 실행시키기 위하여 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 주어진 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 단계, 상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 단계, 주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 실행시키기 위하여 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명이 적용될 수 있는 예시적인 시스템 중 하나인 악성 파일 탐지 시스템의 구성도이다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 분류 장치의 동작을 개략적으로 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 분류 장치를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 분류 장치의 하드웨어 구성도이다.
도 5는 본 발명의 일 실시예에 따른 기계 학습 기반의 분류기 구축 방법을 나타내는 흐름도이다.
도 6은 도 5에 도시된 단계(S100, S120)를 부연 설명하기 위한 도면이다.
도 7은 도 5에 도시된 단계(S140)를 부연 설명하기 위한 도면이다.
도 8은 본 발명의 몇몇 실시예에서 참조될 수 있는 클러스터 중심점(centroid)의 예시도이다.
도 9 및 도 10은 도 5에 도시된 단계(S180)를 부연 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 분류 방법을 나타내는 흐름도이다.
도 12a 내지 도 12e는 본 발명의 일 실시예에 따른 분류 방법을 부연 설명하기 위한 예시도이다.
도 13은 본 발명의 실시예에 따라 구축된 분류기의 성능을 나타내는 실험 결과이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서 후술할 본 발명의 몇몇 실시예에 따른 기계 학습 기반 분류 방법 또는 상기 분류 방법을 수행하는 분류 장치는 다양한 분야에 범용적으로 적용될 수 있다. 이는, 데이터 드리븐(data-driven) 방식으로 동작하는 기계 학습 기술의 본질적인 특성에서 기인하는 것이다. 즉, 상기 분류 장치에 의해 수행되는 분류 태스크는 어떠한 트레이닝 데이터셋으로 학습되는지에 따라 유동적으로 결정될 수 있다. 예를 들어, 상기 분류 장치는 수신된 이메일을 스팸 메일 또는 정상 메일로 분류하는 제1 분류 태스크를 수행하는 장치로 구체화될 수 있고, 주어진 파일을 악성 파일 또는 정상 파일로 분류하는 제2 분류 태스크를 수행하는 장치로 구체화될 수도 있다.
다만, 이해의 편의를 제공하기 위해, 본 발명의 몇몇 실시예들에 따른 분류 방법 및/또는 분류 장치가 악성 파일을 탐지하는 상기 제2 분류 태스크를 수행하는 것을 예로 들어서 설명을 이어가도록 한다. 이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명이 적용될 수 있는 예시적인 시스템의 구성도이다. 특히, 도 1은 본 발명이 적용될 수 있는 다양한 시스템 중에서 악성 파일 탐지 시스템을 도시하고 있다.
도 1을 참조하면, 상기 악성 파일 탐지 시스템은 모니터링 장치(200) 및 분류 장치(100)를 포함하도록 구성될 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 악성 파일 탐지 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 분류 장치(100)와 모니터링 장치(200)는 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직(logic)으로 구현될 수도 있다. 이하, 상기 악성 파일 탐지 시스템의 각 구성 요소에 대하여 설명하도록 한다.
분류 장치(100)는 기계 학습을 통해 구축된 분류기(classifier)를 이용하여 주어진 데이터를 미리 정의된 클래스로 분류하는 컴퓨팅 장치이다. 이때, 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop), 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 다만, 대용량 데이터에 대한 학습을 통해 분류기를 구축하는 경우라면, 분류 장치(100)는 고성능의 서버 컴퓨팅 장치로 구현되는 것이 바람직할 수 있다.
상기 악성 파일 탐지 시스템에서, 분류 장치(100)는 주어진 트레이닝 데이터셋(training dataset)에 대한 기계 학습을 통해 악성 파일 탐지를 위한 분류기를 구축한다. 이때, 상기 악성 파일은 악성 코드가 포함된 파일 또는 악성 코드 그 자체를 의미한다.
구체적으로, 분류 장치(100)는 도 2a에 도시된 바와 같은 트레이닝 데이터셋(1)을 학습하여 분류기를 구축한다. 트레이닝 데이터셋(1)은 분류 결과(e.g. 악성, 정상)가 태깅된 데이터셋이기 때문에, 분류 장치(100)는 임의의 지도 학습(supervised learning) 알고리즘을 이용하여 분류기를 구축할 수 있다. 다만, 본 발명의 실시예에 따르면, 분류 결과의 정확도를 더욱 향상시키기 위해 에이다부스트(AdaBoost) 기반의 기계 학습이 수행될 수 있다. 이에 대한 설명은 추후 도 10을 참조하여 보다 자세하게 설명하도록 한다.
트레이닝 데이터셋(1)을 구성하는 단위 데이터(3)는 예를 들어 특징 벡터로 표현될 수 있다. 본 실시예에서, 상기 특징 벡터를 구성하는 각각의 특징은 파일의 행위를 가리킨다. 상기 파일의 행위는 예를 들어 레지스트리 접근 행위, 외부의 서버와의 통신 행위 등으로 다양하게 정의될 수 있으며, 이에 대한 설명은 본 발명의 논지를 흐리지 않기 위해 생략하도록 한다. 특히, 도 2a는 특징 벡터의 형식이 이진 형식인 것을 예로써 도시하고 있다. 그러나, 이는 이해의 편의를 제공하기 위한 것일 뿐, 실시예에 따라 특징 벡터의 형식은 얼마든지 달라질 수 있다.
본 발명의 제1 실시예에 따르면, 분류 장치(100)는 전체 트레이닝 데이터셋을 기 정의된 타입에 따라 복수의 서브 데이터셋으로 분할하고, 각각 서브 데이터셋에 대한 기계 학습을 수행하여, 타입 별로 분류기를 구축할 수 있다. 예를 들어, 분류 장치(100)는 파일의 타입(e.g. 실행 파일, 문서 파일)에 따라 트레이닝 데이터셋을 분할하고, 파일의 타입 별로 분류기를 구축할 수 있다. 본 실시예에 따르면, 각 파일의 타입에 따라 특화된 분류기가 구축되는 바, 악성 파일 탐지의 정확도가 향상될 수 있다
본 발명의 제2 실시예에 따르면, 분류 장치(100)는 주어진 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하고, 각각의 클러스터에 속한 데이터셋을 기계 학습하여, 클러스터 별로 분류기를 구축할 수 있다. 본 실시예에 따르면, 유사한 특성을 지닌 데이터셋을 학습하여 상기 특성에 특화된 분류기가 구축되는 바, 분류 결과의 정확도가 더욱 향상될 수 있다.
본 발명의 제3 실시예에 따르면, 상기 제1 실시예와 상기 제2 실시예의 조합에 따라 타입/클러스터 별로 분류기가 구축될 수 있다. 이에 따라, 정확도 측면에서 분류기의 분류 성능이 크게 향상될 수 있다. 상기 제1 실시예 내지 상기 제3 실시예에 대한 자세한 설명은 도 5 내지 도 10을 참조하여 상세하게 설명하도록 한다.
상기 악성 파일 탐지 시스템에서, 분류 장치(100)는 기계 학습을 통해 구축된 분류기를 이용하여 악성 파일을 탐지한다. 구체적으로, 도 2b에 도시된 바와 같이 분류 결과가 주어지지 않은 타깃 파일의 행위를 가리키는 데이터(5)가 입력되면, 분류 장치(100)는 분류기를 이용하여 상기 타깃 파일에 대한 예측된 분류 결과(9)를 출력한다. 이하에서는, 분류 과정에서 실제 타깃에 대한 분류를 수행하기 위해 입력되는 데이터를 "분류 대상 데이터"로 명명하도록 한다. 분류 대상 데이터(5)는 도 2b에 도시된 바와 같이 분류 결과가 주어지지 않은 타깃에 대한 데이터의 의미로 이해하여도 좋다. 분류 장치(100)가 분류기를 이용하여 분류를 수행하는 과정에 대한 자세한 설명은 이후 도 11 내지 도 12e를 참조하여 상세하게 설명하도록 한다.
상기 악성 파일 탐지 시스템에서, 모니터링 장치(200)는 악성 파일 탐지를 위해 파일의 행위를 모니터링하는 컴퓨팅 장치이다. 특히, 도 1은 모니터링 장치(200)가 인트라넷(intranet) 상에서 다수의 사용자 단말에 저장된 파일의 행위를 모니터링 하는 것을 예로써 도시하고 있다.
예를 들어, 모니터링 장치(200)는 다수의 사용자 단말에 설치된 에이전트를 통해 각 사용자 단말에서 실행되는 파일의 행위를 모니터링 할 수 있다. 또한, 모니터링 장치(200)에 의해 수집된 파일의 행위 정보는 분류 장치(100)로 제공되어 악성 파일 탐지에 이용될 수 있다.
상기 악성 파일 탐지 시스템에서, 분류 장치(100)와 모니터링 장치(200)는 네트워크를 통해 통신할 수 있다. 도 1은 유선 네트워크를 통해 통신하는 것이 예시되었으나, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지, 도 1을 참조하여 본 발명이 적용될 수 있는 예시적인 시스템 중 하나로 악성 파일 탐지 시스템에 대하여 설명하였다. 이하에서도, 다른 언급이 없는 한, 분류 장치(100)는 악성 파일을 탐지하는 분류 태스크를 수행하는 장치인 것으로 가정하여 설명을 이어가도록 한다. 다만, 전술한 바와 같이, 본 발명의 기술적 사상은 다른 분야/종류의 분류 태스크를 수행하는 경우에도 실질적인 기술적 사상의 변경 없이 적용될 수 있음에 유의하여 한다.
이하에서는, 도 3 및 도 4를 참조하여, 본 발명의 일 실시예에 따른 기계 학습 기반의 분류 장치(100)의 구성 및 동작에 대하여 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 기계 학습 기반의 분류 장치(100)를 나타내는 블록도이다.
도 3을 참조하면, 분류 장치(100)는 타입 분류부(110), 특징 선정부(120), 클러스터링부(130), 분류기 구축부(140), 분류기(150) 및 분류기 평가부(160)를 포함하도록 구성될 수 있다. 다만, 도 3에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 3에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 3에 도시된 분류 장치(100)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다.
각 구성 요소를 살펴보면, 타입 분류부(110)는 기 지정된 타입에 따라 전체 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할한다. 또는, 타입 분류부(110)는 기 지정된 타입에 따라 입력된 분류 대상 데이터의 타입을 결정한다.
특징 선정부(120)는 각각의 서브 데이터셋을 기초로 타입 별로 주요 특징을 선정한다. 즉, 특징 선정부(120)는 특징 벡터를 구성하는 복수의 특징 중에서 각 타입에 대한 주요 특징을 선정한다. 이를 위해, 특징 선정부(120)는 당해 기술 분야에서 널리 알려진 특징 선택 알고리즘(feature selection algorithm)을 이용할 수 있다. 타입 별로 주요 특정을 선정하는 방법에 대한 보다 자세한 설명은 도 5에 도시된 단계(S120)의 설명 부분 및 도 6을 참조하도록 한다.
또한, 특징 선정부(120)는 분류 대상 데이터의 타입에 기초하여 상기 분류 대상 데이터의 분류에 이용되는 주요 특징을 결정한다.
클러스터링부(130)는 분할된 서브 데이터셋 중에서 주요 특징에 대한 데이터셋을 이용하여 클러스터링을 수행한다. 이를 통해, 각 타입 별로 클러스터가 구축된다. 클러스터링을 수행하는 방법에 대한 보다 자세한 설명은 도 5에 도시된 단계(S140)의 설명 부분 및 도 7을 참조하도록 한다.
또한, 클러스터링부(130)는 생성된 클러스터의 중심점(centroid) 또는 중심점 벡터를 산출한다. 산출된 중심점은 분류 대상 데이터와 가장 유사도 높은 클러스터를 가리키는 타깃 클러스터를 선정하는데 이용된다. 이에 대한 자세한 설명은 도 11 내지 도 12b에 대한 설명 부분을 참조하도록 한다.
분류기 구축부(140)는 기계 학습을 통해 타입/클러스터 별 분류기를 구축한다. 이에 대한 자세한 설명은 도 5에 도시된 단계(S160)의 설명 부분 및 도 9을 참조하도록 한다.
분류기(150)는 분류기 구축부(140)에 의해 구축된 기계 학습 모듈 또는 기계 학습 모델이다. 분류기(150)는 분류 대상 데이터를 입력 받고, 클래스 별 컨피던스 스코어(confidence score)를 출력한다. 상기 컨피던스 스코어는 분류 대상 데이터가 가리키는 타깃이 해당 클래스로 분류될 확률을 가리키는 값으로 이해될 수 있다. 분류기(150)의 구성 및 동작에 대한 자세한 설명은 도 10, 도 11, 도 12c 내지 도 12e를 참조하여 후술하도록 한다.
분류기 평가부(160)는 별도의 테스트 데이터셋(test dataset)을 이용하여 구축된 분류기를 평가한다. 예를 들어, 분류기 평가부(160)는 교차 검증(cross validation), 홀드 아웃(hold out) 등의 기법을 통해 분류기의 성능을 평가할 수 있다. 이와 같은 경우, 상기 별도의 테스트 데이터셋은 전체 트레이닝 데이터셋의 일부를 가리키는 것일 수 있다.
앙상블(ensemble) 기법을 통해 분류기가 구축되고, 각 분류기의 성능에 따라 소정의 가중치가 부여되는 경우(e.g. 에이다부스트 학습을 통해 분류기 구축), 분류기 평가부(160)는 평가 결과에 기초하여 각 분류기에 부여된 가중치를 조정할 수 있다.
도 3에 도시된 분류 장치(100)의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
다음으로, 도 4는 본 발명의 일 실시예에 따른 기계 학습 기반의 분류 장치(100)의 하드웨어 구성도이다.
도 4를 참조하면, 기계 학습 기반의 분류 장치(100)는 하나 이상의 프로세서(101), 버스(105), 네트워크 인터페이스(107), 프로세서(101)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(103)와, 기계 학습 기반의 분류 소프트웨어(109a)를 저장하는 스토리지(109)를 포함할 수 있다. 다만, 도 4에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 4에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(101)는 기계 학습 기반의 분류 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(101)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(101)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 기계 학습 기반의 분류 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(103)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(103)는 본 발명의 실시예들에 따른 기계 학습 기반의 분류 방법을 실행하기 위하여 스토리지(109)로부터 하나 이상의 프로그램(109a)을 로드할 수 있다. 도 4에서 메모리(103)의 예시로 RAM이 도시되었다.
버스(105)는 기계 학습 기반의 분류 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(105)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(107)는 기계 학습 기반의 분류 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(107)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(107)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(109)는 상기 하나 이상의 프로그램(109a)을 비임시적으로 저장할 수 있다. 도 4에서 상기 하나 이상의 프로그램(109a)의 예시로 기계 학습 기반의 분류 소프트웨어(109a)가 도시되었다.
스토리지(109)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
기계 학습 기반의 분류 소프트웨어(109a)는 메모리(103)에 로드되어, 프로세서(101)로 하여금 본 발명의 실시예에 따른 기계 학습 기반 분류 방법을 수행하도록 하는 오퍼레이션을 포함할 수 있다.
예를 들어, 기계 학습 기반의 분류 소프트웨어(109a)는 기 정의된 타입에 따라 상기 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 오퍼레이션, 상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 오퍼레이션, 주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 오퍼레이션 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 오퍼레이션을 포함할 수 있다.
다른 예를 들어, 기계 학습 기반의 분류 소프트웨어(109a)는 상기 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 오퍼레이션, 상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 오퍼레이션, 주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 오퍼레이션 및 상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 오퍼레이션을 포함할 수 있다.
지금까지, 도 3 및 도 4를 참조하여 본 발명의 실시예에 따른 분류 장치(100)의 구성 및 동작에 대하여 설명하였다. 다음으로, 도 5 내지 도 12e를 참조하여 본 발명의 실시예에 따른 기계 학습 기반 분류 방법에 대하여 상세하게 설명한다.
이하, 본 발명의 실시예에 따른 기계 학습 기반 분류 방법의 각 단계는, 컴퓨팅 장치에 의해 수행될 수 있다. 예를 들어, 상기 컴퓨팅 장치는 분류 장치(100)일 수 있다. 다만, 설명의 편의를 위해, 상기 기계 학습 기반 분류 방법에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다. 또한, 기계 학습 기반의 분류 방법의 각 단계는 프로세서에 의해 실행되는 컴퓨터 프로그램의 각 오퍼레이션으로 구현될 수 있다.
본 발명의 실시예에 따른 분류 방법은 기계 학습을 통해 분류기를 구축하는 방법과 구축된 분류기를 이용하여 분류 대상 데이터를 분류하는 방법으로 구성된다. 먼저, 도 5 내지 도 10을 참조하여, 상기 분류기 구축 방법에 대하여 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른 기계 학습 기반 분류기 구축 방법의 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 5를 참조하면, 단계(S100)에서, 분류 장치(100)는 기 정의된 타입에 따라 주어진 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할한다. 구체적으로, 분류 장치(100)는 도 6에 도시된 바와 같이 트레이닝 데이터셋(11)을 제1 타입에 대응되는 제1 서브 데이터셋(13)과 제2 타입에 대응되는 제2 서브 데이터셋(15)으로 분할한다.
이때, 상기 기 정의된 타입은 실시예에 따라 다양하게 정의될 수 있는 것이다. 악성 파일 탐지를 예로 들면, 파일의 확장자 및/또는 행위 패턴에 기초하여 제1 타입은 실행 파일(e.g. exe, bat, com 파일)로 정의되고, 제2 타입은 문서 파일(e.g. doc, txt. ppt 파일)로 정의될 수 있다. 즉, 실행 파일의 행위 패턴을 보이는 파일은 제1 타입의 파일로 정의되고, 문서 파일의 행위 패턴을 보이는 파일은 제2 타입의 파일로 정의될 수 있다. 이와 같은 경우, 트레이닝 데이터셋은 실행 파일의 행위 특징을 가리키는 제1 서브 데이터셋과 문서 파일의 행위 특징을 가리키는 제2 서브 데이터셋으로 분할된다. 실시예에 따라, 하나의 파일의 확장자가 하나의 타입에 대응되도록 정의될 수도 있음은 물론이다.
다시 도 5를 참조하면, 단계(S120)에서, 분류 장치(100)는 각각의 서브 데이터셋을 이용하여 타입 별로 주요 특징을 결정한다. 구체적으로, 분류 장치(100)는 도 6에 도시된 바와 같이 제1 서브 데이터셋(13)을 이용하여 제1 타입에 대한 주요 특징(21)을 결정하고, 제2 서브 데이터셋(15)을 이용하여 제2 타입에 대한 주요 특징(23)을 결정한다.
타입 별 주요 특징을 결정하기 위해, 분류 장치(100)는 당해 기술 분야에서 널리 알려진 적어도 하나의 특징 선택 알고리즘(feature selection algorithm)을 이용할 수 있다. 또한, 타입 별로 적어도 일부는 서로 다른 특징 선택 알고리즘이 이용될 수 있다.
예를 들어, 분류 장치(100)는 결정 트리(decision tree)를 이용하여 특징 벡터를 구성하는 복수의 특징 중에서 해당 타입에 대한 주요 특징을 선정할 수 있다. 결정 트리를 이용하는 경우, IG(information gain)를 평가 메트릭으로 하여 각 특징 별 스코어가 산출된다. 상기 특징 별 스코어는 해당 특징이 분류 결과에 미치는 영향을 수치화한 값으로 이해될 수 있고, 결정 트리의 경우 루트에 가까이 위치한 특징일수록 높은 스코어가 산출될 수 있다. 분류 장치(100)는 상기 특징 별 스코어를 기초로 상기 복수의 특징 중에서 해당 타입에 대한 주요 특징을 선정할 수 있다.
다른 예를 들어, 분류 장치(100)는 카이 스퀘어(chi-square), RF(Relief-F) 등을 평가 메트릭으로 이용하여 특징 별 스코어를 산출할 수도 있다.
또 다른 예를 들어, 분류 장치(100)는 단계적 회귀 분석(stepwise regression) 기법을 이용하여 해당 타입에 대한 주요 특징을 선정할 수 있다. 상기 단계적 회귀 분석을 이용하는 경우, 일부 특징을 추가하거나 제외하면서 반복적으로 회귀 분석이 수행되고, 분석 결과에 영향을 크게 미치는 특징들이 해당 타입에 대한 주요 특징으로 선정될 수 있다.
다시 도 5를 참조하면, 단계(S140)에서, 분류 장치(100)는 단계(S120)에서 결정된 주요 특징에 대한 서브 데이터셋을 이용하여 클러스터링(clustering)을 수행한다. 구체적으로, 분류 장치(100)는 도 7에 도시된 바와 같이 제1 서브 데이터셋(13) 중에서 제1 타입의 주요 특징(21)에 대한 서브 데이터셋을 이용하여 제1 타입에 대한 클러스터(31)를 생성한다. 동일하게, 분류 장치(100)는 제2 서브 데이터셋(15) 중에서 제2 타입의 주요 특징(23)에 대한 서브 데이터셋을 이용하여 제2 타입에 대한 클러스터(33)를 생성한다.
상기 클러스터링은 당해 기술 분야에서 널리 알려진 클러스터링 알고리즘을 이용하여 수행될 수 있다. 예를 들어, 분류 장치(100)는 k-평균 클러스터링 알고리즘(k-means clustering algorithm)을 이용하여 상기 클러스터링을 수행할 수 있다.
본 발명의 실시예에 따르면, 상기 클러스터링 과정은 최적의 클러스터 개수를 결정하기 위해 반복하여 수행될 수 있다. 구체적으로, 분류 장치(100)는 지정된 수치 범위 내에서 클러스터의 개수를 가리키는 인덱스 파라미터(e.g. k-평균 클러스터링의 인덱스 파라미터 k)의 값을 변경해가며, 반복적으로 클러스터링을 수행하고, 클러스터링 결과를 평가할 수 있다. 클러스터링 결과의 평가는 예를 들어 "Davies-Bouldin index"와 같이 당해 기술 분야에서 널리 알려진 평가 메트릭을 기준으로 수행될 수 있으나, 다른 평가 메트릭이 이용되더라도 무방하다. Davies-Bouldin index는 클러스터 내 유사도와 클러스터 간 유사도를 기초로 클러스터 간의 응집성을 평가하는 메트릭으로, 당해 기술 분야의 종사자라면 자명하게 알 수 있는 것인 바 이에 대한 설명은 생략하도록 한다. 본 실시예에 따르면, 응집도 높은 최적의 클러스터링 결과가 획득될 수 있다. 즉, 특성이 유사한 데이터끼리 잘 군집화 된 클러스터링 결과가 획득되는 바, 상기 특성에 특화된 분류기가 구축될 수 있다. 이에 따라, 정확도 측면에서 분류 장치(100)의 성능이 향상될 수 있다.
본 단계(S140)에서 타입 별로 클러스터가 구축되면, 분류 장치(100)는 각 클러스터의 대표 값을 가리키는 중심점을 산출한다. 상기 중심점은 예를 들어 해당 클러스터에 속한 데이터셋의 평균(e.g. 평균 특징 벡터) 값으로 산출될 수 있고, 산출된 중심점은 이후 분류 대상 데이터를 분류하는 과정에서 타깃 클러스터를 결정하기 위해 이용된다. 이에 대한 설명은 도 11 내지 도 12b를 참조하여 후술하도록 한다. 제1 타입에 대응되는 클러스터(31)에 대하여 중심점이 산출된 예는 도 8을 참조하도록 한다.
다시 도 5를 참조하면, 단계(S160)에서, 분류 장치(100)는 각 클러스터에속한 데이터셋을 기계 학습하여 클러스터 별로 분류기를 구축한다. 구체적으로, 분류 장치(100)는 도 9에 도시된 바와 같이 제1 타입에 대응되는 복수의 클러스터(31) 중에서 제1 클러스터(클러스터 #1)에 속한 데이터셋을 기계 학습하여 제1-1 분류기(41, 분류기11)를 구축하고, 제2 클러스터(클러스터 #2)에 속한 데이터셋을 기계 학습하여, 제1-2 분류기(43, 분류기12)를 구축한다. 유사하게, 분류 장치(100)는 제2 타입에 대응되는 복수의 클러스터(33) 중에서 제1 클러스터(클러스터 #1)에 속한 데이터셋을 기계 학습하여 제2-1 분류기(45, 분류기21)를 구축하고, 제2 클러스터(클러스터 #2)에 속한 데이터셋을 기계 학습하여, 제2-2 분류기(47, 분류기22)를 구축한다.
한편, 본 발명의 실시예에 따르면, 단계(S160)에서 기계 학습이 수행되기 이전에, 각 클러스터에 속한 서브 데이터셋에 대한 리밸런싱(rebalancing)이 수행될 수 있다. 상기 리밸런싱은 제1 클래스 레이블이 태깅된 제1 데이터와 제1 클래스 레이블이 태깅된 제2 데이터의 비율을 조정하는 작업을 의미한다. 예를 들어, 상기 서브 데이터셋이 악성 파일 탐지에 대한 트레이닝 데이터셋인 경우, 분류 장치(100)는 정상 데이터셋과 악성 데이터셋의 비율을 미리 지정된 조정 비율에 따라 조정할 수 있다. 부연 설명하면, 분류 장치(100)는 상기 조정 비율에 기초하여 정상 데이터셋 또는 악성 데이터셋 중 어느 하나의 데이터셋의 개수를 조정하는 방식으로 상기 리밸런싱을 수행할 수 있다.
일 예에서, 상기 미리 지정된 조정 비율은 사용자에 의해 지정된 값일 수 있다. 사용자는 실험적 또는 경험적으로 산출된 비율에 기초하여 상기 조정 비율을 설정할 수 있다.
다른 일 예에서, 상기 미리 지정된 조정 비율은 분류 장치(100)에 의해 자동으로 지정되는 값일 수 있다. 분류 장치(100)는 데이터 셋의 구성 비율을 변경해가며 기계 학습을 통해 임시 분류기를 구축하고, 상기 임시 분류기의 정확도에 기초하여 상기 조정 비율을 자동으로 지정할 수 있다. 또한, 분류 장치(100)는 실제 분류기를 구축할 때 상기 지정된 조정 비율에 따라 각 클러스터에 속한 서브 데이터셋에 대한 리밸런싱을 수행할 수 있다. 본 실시예에 따르면, 리밸런싱을 통해 학습이 보다 효과적으로 수행될 수 있으며, 이에 따라 각 분류기의 정확도가 향상되는 효과가 있다.
이하에서는, 단계(S160)에서 이용되는 기계 학습 알고리즘에 대하여 간략하게 설명하도록 한다.
본 발명의 실시예에 따르면, 분류기의 성능 개선을 위해, 분류 장치(100)는 에이다부스트(AdaBoost) 기반의 기계 학습 알고리즘을 이용할 수 있다. 에이다부스트는 복수의 약 분류기(weak classifier)를 학습하여 강 분류기(strong classifier)를 구축하는 앙상블(ensemble) 기반의 기계 학습 기법이다. 본 실시예에서, 각 클러스터에 대응되는 분류기는 하나의 강 분류기 또는 복수의 강 분류기의 조합으로 구성될 수 있다. 또한, 강 분류기를 구성하는 각각의 약 분류기는 적어도 일부는 서로 다른 기계 학습 알고리즘으로 학습된 분류기일 수 있다. 특히, 도 10은 제1 클러스터(클러스터 #1)에 대응되는 분류기가 5개의 약 분류기로 구성된 것을 예로써 도시하고 있다.
에이다부스트 기반의 기계 학습을 수행하는 경우, 각 학습 데이터 별로 적어도 일부는 서로 다른 가중치가 부여된다. 또한, 상기 가중치는 학습 과정에서 지속적으로 갱신된다. 예를 들어, 트레이닝 데이터 중에서 잘못 예측된 데이터의 가중치는 증가되고, 바르게 예측된 데이터의 가중치는 감소하는 식으로 각 트레이닝 데이터에 부여된 가중치가 조절될 수 있다. 도 10에 도시된 상단의 표(51)는 제1 클러스터(클러스터#1)에 속한 트레이닝 데이터 별로 서로 다른 가중치가 부여된 예를 도시하고 있다.
또한, 에이다부스트 기반의 기계 학습을 수행하는 경우, 각각의 약 분류기 별로 가중치가 부여된다. 각각의 약 분류기에 부여된 가중치도 분류기 성능에 기초하여 학습 과정에서 지속적으로 갱신된다. 도 10의 하단에 도시된 표(55)는 약 분류기 별로 서로 다른 가중치가 부여된 것이 도시되어 있다. 에이다부스트는 당해 기술 분야에서 이미 널리 알려진 기계 학습 알고리즘이므로 더 이상의 생략은 생략하도록 한다.
지금까지, 도 5 내지 도 10을 참조하여, 본 발명의 실시예에 따른 분류기 구축 방법에 대하여 설명하였다. 상술한 방법에 따르면, 기 정의된 타입 및 클러스터 별로 특화된 분류기가 구축될 뿐만 아니라, 각 클러스터에 대응되는 분류기는 복수의 약 분류기로 구성될 수 있다. 이에 따라, 분류 성능이 크게 향상될 수 있다. 또한, 상술한 본 발명의 실시예에 따른 분류기 구축 방법은 다양한 도메인에 범용적으로 적용될 수 있을 것이나, 특히, 악성 파일 탐지 분야에 적용되는 경우, 신변종 악성 코드가 포함된 악성 파일까지 정확하게 탐지 가능한 분류기가 구축될 수 있다. 상기 악성 파일 탐지 분야에서 구축된 분류기의 성능에 대한 실험 결과는 도 13을 참조하도록 한다.
다음으로, 도 11 내지 도 12e를 참조하여, 분류 대상 데이터를 분류하는 방법에 대하여 설명하도록 한다.
도 11은 본 발명의 일 실시예에 따른 분류 방법을 나타내는 흐름도이다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 11을 참조하면, 단계(S200)에서, 분류 장치(100)는 주어진 분류 대상 데이터의 타입을 결정한다.
단계(S220)에서, 분류 장치(100)는 분류 대상 데이터와 해당 타입에 대응되는 각각의 클러스터 사이의 유사도를 산출하고, 산출된 유사도에 기초하여 타깃 클러스터를 결정한다. 이때, 상기 유사도는 벡터 공간에서 클러스터의 중심점과 분류 대상 데이터 간의 거리에 기초하여 산출될 수 있으나, 어떠한 방식으로 산출되더라도 무방하다.
단계(S240)에서, 분류 장치(100)는 타깃 클러스터에 대응되는 타깃 분류기를 이용하여 분류 대상 데이터를 분류한다. 구체적으로, 분류 장치(100)는 분류 대상 데이터를 타깃 분류기에 입력하고, 클래스 별 컨피던스 스코어를 출력 값으로 획득한다. 또한, 분류 장치(100)는 상기 클래스 별 컨피던스 스코어에 기초하여, 분류 대상 데이터를 어느 하나의 클래스로 분류한다.
상기 타깃 분류기가 복수의 약 분류기로 구성된 경우라면, 분류 장치(100)는 각각의 약 분류기에 의해 출력된 클래스 별 컨피던스 스코어와 각각의 약 분류기의 가중치의 가중치 합을 통해 클래스 별 최종 컨피던스 스코어를 산출할 수 있다. 또한, 분류 장치(100)는 클래스 별 최종 컨피던스 스코어를 이용하여 분류 대상 데이터를 어느 하나의 클래스로 분류할 수 있다.
이하에서는, 보다 이해의 편의를 제공하기 위해, 도 12a 내지 도 12e에 도시된 예를 참조하여 분류 대상 데이터가 분류되는 과정에 대하여 부연 설명하도록 한다.
도 12a 및 도 12b는 분류 대상 데이터와 클러스터 간의 유사도가 산출되는 예를 도시하고 있다. 구체적으로, 도 12a에 도시된 표(61)는 특징 벡터로 구성된 분류 대상 데이터(61)를 표시하고 있고, 표(63)는 2개의 클러스터에 대한 중심점 벡터를 표시하고 있다. 이해의 편의를 위해, 분류 대상 데이터를 구성하는 각 특징(behavior#1, behavior#2, behavior#3)은 모두 주요 특징인 것으로 가정하였다.
도 12b를 참조하면, 중심점 벡터와 분류 대상 데이터 간의 거리(D1, D2)가 산출된다. 이때, 거리가 가까울수록, 분류 대상 데이터와 클러스터 간의 유사도는 더 높다는 것을 의미한다. 따라서, 분류 대상 데이터에 대한 타깃 클러스터는 제1 클러스터(cluster#1)로 결정된다.
도 12c에 도시된 표(65)는 상기 제1 클러스터에 대응되는 복수의 약 분류기 각각에 대한 컨피던스 스코어를 나타내고, 도 12d에 도시된 표(67)는 학습 과정에서 결정된 각각의 약 분류기에 대한 가중치를 나타내고 있다. 참고로, 각 분류기가 악성 코드를 탐지하는 이진 분류기인 것을 가정하였기 때문에, 도 12c에서 1개의 값으로 클래스 별 컨피던스 스코어가 출력되었다.
클래스 별 최종 컨피던스 스코어를 산출하는 예는 도 12e에 도시되어 있다. 도 12e에 도시된 바와 같이, 가중치 합을 통해, 클래스 별 최종 컨피던스 스코어(0.98093)가 산출된다. 분류 장치(100)는 클래스 별 최종 컨피던스 스코어에 기초하여 분류 대상 데이터의 클래스(e.g. 악성, 정상)를 결정할 수 있다. 예를 들어, 분류 장치(100)는 상기 클래스 별 최종 컨피던스 스코어가 임계 값 이상인 경우 상기 분류 대상 데이터를 악성으로 분류할 수 있다.
지금까지, 도 12a 내지 도 12e를 참조하여, 분류 대상 데이터에 대한 분류를 수행하는 예에 대하여 설명하였다. 다음으로, 도 13을 참조하여, 악성 파일 탐지를 위해 본 발명의 실시예에 따라 구축된 분류기의 성능 실험 결과에 대하여 간략하게 소개하도록 한다.
도 13은 트레이닝 데이터셋을 타입에 따라 복수의 서브 데이터셋으로 분리한 제1 케이스(71, 본 발명)와 분리하지 않은 제2 케이스(73)에 대한 비교 실험 결과를 도시하고 있다. 도 13에 도시된 바와 같이, 파일의 행위 패턴에 기초하여 3개의 타입(타입 #1, 타입 #2, 타입 #3)이 정의되었고, 교차 검증을 통해 각 타입 별 정확도(타입 #1, 타입 #2, 타입 #3)와 전체 트레이닝 데이터셋에 대한 평균 정확도(total)가 측정되었다.
도 13에 도시된 제1 케이스에 따른 실험 결과에 따르면, 평균 정확도가 97.3%로 측정된 것을 확인할 수 있다. 이는, 92.5%의 평균 정확도를 가리키는 제2 케이스에 비해 5% 이상의 정확도가 향상된 것으로, 타입 별로 분류기를 구축함에 따라 분류의 정확도가 크게 향상된 것을 확인할 수 있다.
지금까지, 도 13을 참조하여, 본 발명의 실시예에 따라 구축된 분류기의 성능 실험 결과에 대하여 살펴보았다.
지금까지, 악성 파일 탐지를 대표적인 예로 들어 본 발명의 실시예에 따른 분류 방법 및 분류 장치에 대하여 설명하였으나, 전술한 바와 같이 본 발명의 기술적인 사상은 임의의 분류 태스크를 수행하기 위해 범용적으로 적용될 수 있다.
예를 들어, 분류 장치(100)는 이상 또는 이상 행위를 탐지하는 용도로 이용될 수 있다. 즉, 분류 장치(100)는 분류 대상(e.g. 파일, 사람 등)의 행위를 가리키는 특징 벡터를 기초로 상기 분류 대상을 이상 및 정상 중 어느 하나의 클래스로 분류하는 동작을 수행하도록 전술한 실시예들에 따라 분류기를 구축할 수 있다.
보다 구체적인 예를 들어, 분류 장치(100)는 기업 내에서 사용자의 파일 사용 행위 중 이상 행위(e.g. 기밀 유출 행위 등)를 탐지하기 위해 전술한 실시예들에 따라 분류기를 구축할 수 있다. 이때, 트레이닝 데이터로 이용될 특징 벡터는 예를 들어 파일 행위 관련된 각종 컨텍스트(context)(e.g. 파일의 보안 등급, 파일 이름, 파일 사용 행위의 종류(복사, 수정, 읽기 등), 사용자의 소속 부서, 파일 접근 경로 등)를 특징으로 포함하도록 정의될 수 있다. 또한, 기 정의된 타입은 예를 들어 사용자의 소속 부서, 파일의 보안 등급, 파일의 확장자, 파일의 행위 패턴에 따른 타입 등으로 다양한 형태로 정의될 수 있다.
이외에도, 이상 거래 탐지 분야(e.g. fraud detection system), 스팸 메일 필터링 등 다양한 분류 태스크를 수행하기 위해 본 발명이 적용될 수 있을 것이다.
지금까지, 본 발명의 몇몇 실시예들을 설명하며 그에 따른 효과 또한 함께 언급하였다. 그러나, 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 13을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (17)

  1. 분류 장치에서 수행되는 분류 방법에 있어서,
    기 정의된 타입에 따라 주어진 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 단계;
    상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 단계;
    주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계; 및
    상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계
    를 포함하되,
    상기 복수의 서브 데이터셋은 제1 타입에 대응되는 제1 서브 데이터셋 및 제2 타입에 대응되는 제2 서브 데이터셋을 포함하고,
    상기 복수의 분류기를 구축하는 단계는,
    상기 제1 서브 데이터셋에 대한 제1 클러스터링(clustering)을 수행하여, 제1 복수의 클러스터를 생성하는 단계;
    상기 제1 복수의 클러스터 각각에 속한 서브 데이터셋을 이용하여, 각각의 클러스터 별로 대응되는 분류기를 구축하는 단계;
    상기 제2 서브 데이터셋에 대한 제2 클러스터링을 수행하여, 적어도 하나의 제2 복수의 클러스터를 생성하는 단계; 및
    상기 제2 복수의 클러스터 각각에 속한 서브 데이터셋을 이용하여, 각각의 클러스터 별로 대응되는 분류기를 구축하는 단계
    를 포함하고,
    상기 분류 대상 데이터는 상기 제1 타입에 대응되는 데이터이고,
    상기 타깃 분류기를 선정하는 단계는,
    상기 제1 복수의 클러스터 각각과 상기 분류 대상 데이터 사이의 유사도를 산출하는 단계; 및
    상기 산출된 유사도를 기초로, 상기 제1 복수의 클러스터 중에서 타깃 클러스터를 선정하는 단계를 포함하되,
    상기 타깃 분류기는 상기 타깃 클러스터에 대응되는 분류기인 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  2. 삭제
  3. 삭제
  4. 분류 장치에서 수행되는 분류 방법에 있어서,
    기 정의된 타입에 따라 주어진 트레이닝 데이터셋을 복수의 서브 데이터셋으로 분할하는 단계;
    상기 복수의 서브 데이터셋 각각에 대한 기계 학습(machine learning)을 수행하여, 각각의 타입에 대응되는 복수의 분류기(classifier)를 구축하는 단계;
    주어진 분류 대상 데이터의 타입에 기초하여, 상기 복수의 분류기 중에서 상기 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계; 및
    상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계
    를 포함하되,
    상기 복수의 서브 데이터셋 각각은 제1 클래스 레이블(class label)이 태깅된 제1 데이터셋 및 제2 클래스 레이블이 태깅된 제2 데이터셋을 포함하고,
    상기 복수의 분류기를 구축하는 단계는,
    기 지정된 비율에 따라, 상기 제1 데이터셋의 개수 및 상기 제2 데이터셋의 개수 중 적어도 하나를 조정하는 단계; 및
    상기 조정된 각각의 서브 데이터셋에 대한 기계 학습을 수행하여, 상기 복수의 분류기를 구축하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  5. 제1항 및 제4항 중 어느 한 항에 있어서,
    상기 트레이닝 데이터셋을 구성하는 각각의 단위 데이터는 복수의 특징이 포함된 특징 벡터이고,
    상기 복수의 서브 데이터셋은 제1 타입에 대응되는 제1 서브 데이터셋 및 제2 타입에 대응되는 제2 서브 데이터셋을 포함하며,
    상기 복수의 분류기를 구축하는 단계는,
    지정된 제1 특징 선택 알고리즘(feature selection algorithm)을 상기 제1 서브 데이터셋에 적용하여, 상기 복수의 특징 중에서 상기 제1 타입에 대응되는 제1 주요 특징을 선정하는 단계;
    상기 제1 서브 데이터셋 중에서 상기 제1 주요 특징에 대한 서브 데이터셋을 이용하여, 상기 제1 타입에 대응되는 제1 분류기를 구축하는 단계;
    지정된 제2 특징 선택 알고리즘을 상기 제2 서브 데이터셋에 적용하여, 상기 복수의 특징 중에서 상기 제2 타입에 대응되는 제2 주요 특징을 선정하는 단계; 및
    상기 제2 서브 데이터셋 중에서 상기 제2 주요 특징에 대한 서브 데이터셋을 이용하여, 상기 제2 타입에 대응되는 제2 분류기를 구축하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  6. 제1항 및 제4항 중 어느 한 항에 있어서,
    상기 복수의 서브 데이터셋은 제1 타입에 대응되는 제1 서브 데이터셋 및 제2 타입에 대응되는 제2 서브 데이터셋을 포함하고,
    상기 복수의 분류기를 구축하는 단계는,
    상기 제1 서브 데이터셋에 대한 에이다부스트(AdaBoost) 기반 기계 학습을 수행하여, 상기 제1 타입에 대응되는 제1 분류기를 구축하는 단계; 및
    상기 제2 서브 데이터셋에 대한 에이다부스트 기반 기계 학습을 수행하여, 상기 제2 타입에 대응되는 제2 분류기를 구축하는 단계를 포함하되,
    상기 제1 분류기 및 상기 제2 분류기는 각각 복수의 약 분류기(weak classifier)로 구성되는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  7. 제6 항에 있어서,
    상기 제1 분류기를 구축하는 단계는,
    상기 에이다부스트 기반 기계 학습을 통해, 상기 제1 분류기를 구성하는 복수의 약 분류기에 대한 가중치를 결정하는 단계를 포함하고,
    테스트 데이터셋을 이용하여, 상기 제1 분류기에 대한 평가를 수행하는 단계; 및
    상기 평가의 결과를 이용하여, 상기 제1 분류기를 구성하는 복수의 약 분류기에 대한 가중치를 갱신하는 단계를 더 포함하는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  8. 제1항 및 제4항 중 어느 한 항에 있어서,
    상기 트레이닝 데이터셋을 구성하는 각각의 단위 데이터는 복수의 특징이 포함된 특징 벡터이고,
    상기 복수의 특징 각각은 파일의 행위를 가리키며,
    상기 기 정의된 복수의 타입은 상기 파일의 행위 패턴에 기초하여 정의되는 타입이고,
    상기 복수의 분류기 각각은 주어진 파일의 행위를 가리키는 특징 벡터를 기초로 상기 주어진 파일을 악성 파일 및 정상 파일 중 어느 하나의 클래스로 분류하는 분류기인 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  9. 분류 장치에서 수행되는 분류 방법에 있어서,
    주어진 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 단계;
    상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 단계;
    주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계; 및
    상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 포함하되,
    상기 복수의 클러스터를 생성하는 단계는,
    지정된 범위 내에서 클러스터의 개수를 가리키는 인덱스 파라미터(index parameter)의 값을 변경하며, 클러스터의 생성 및 평가를 반복하여 수행하는 단계;
    상기 평가의 결과에 기초하여, 상기 지정된 범위 내에서의 최적 클러스터 개수를 결정하는 단계;
    상기 최적 클러스터 개수를 상기 인덱스 파라미터의 값으로 하여 생성된 클러스터링 결과를 상기 복수의 클러스터로 선정하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  10. 삭제
  11. 삭제
  12. 분류 장치에서 수행되는 분류 방법에 있어서,
    주어진 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 단계;
    상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 단계;
    주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계; 및
    상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 포함하되,
    상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋은 제1 클래스 레이블(class label)이 태깅된 제1 데이터셋 및 제2 클래스 레이블이 태깅된 제2 데이터셋을 포함하고,
    상기 복수의 분류기를 구축하는 단계는,
    기 지정된 비율에 따라, 상기 제1 데이터셋의 개수 및 상기 제2 데이터셋의 개수 중 적어도 하나를 조정하는 단계; 및
    각각의 클러스터 별로 상기 조정된 트레이닝 데이터셋에 대한 기계 학습을 수행하여, 상기 복수의 분류기를 구축하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  13. 제9항 및 제12항 중 어느 한 항에 있어서,
    상기 복수의 클러스터는 제1 클러스터 및 제2 클러스터를 포함하고,
    상기 복수의 분류기를 구축하는 단계는,
    상기 제1 클러스터에 속한 제1 트레이닝 데이터셋에 대한 에이다부스트(AdaBoost) 기반 기계 학습을 수행하여, 제1 분류기를 구축하는 단계; 및
    상기 제2 클러스터에 속한 제2 트레이닝 데이터셋에 대한 에이다부스트 기반 기계 학습을 수행하여, 제2 분류기를 구축하는 단계를 포함하되,
    상기 제1 분류기 및 상기 제2 분류기는 각각 복수의 약 분류기(weak classifier)로 구성되는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  14. 제13 항에 있어서,
    상기 분류 대상 데이터에 대한 타깃 분류기는 상기 제1 분류기로 선정되고,
    상기 분류 대상 데이터를 분류하는 단계는,
    상기 분류 대상 데이터에 대하여, 상기 제1 분류기를 구성하는 제1 복수의 약 분류기 각각의 클래스 별 컨피던스 스코어(confidence score)를 산출하는 단계;
    상기 기계 학습을 통해 상기 제1 복수의 약 분류기 각각에 부여된 가중치와 상기 각각의 클래스 별 컨피던스 스코어의 가중치 합을 통해 상기 분류 대상 데이터에 대한 클래스 별 최종 컨피던스 스코어를 산출하는 단계; 및
    상기 클래스 별 최종 컨피던스 스코어를 기초로, 상기 분류 대상 데이터를 어느 하나의 클래스로 분류하는 단계를 포함하는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  15. 제13 항에 있어서,
    상기 제1 분류기를 구성하는 복수의 약 분류기는,
    적어도 일부는 서로 다른 기계 학습 알고리즘을 이용하여 구축된 분류기인 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  16. 분류 장치에서 수행되는 분류 방법에 있어서,
    주어진 트레이닝 데이터셋에 대한 클러스터링(clustering)을 수행하여, 복수의 클러스터를 생성하는 단계;
    상기 복수의 클러스터 각각에 속한 트레이닝 데이터셋을 이용하여, 각각의 클러스터에 대응되는 복수의 분류기를 구축하는 단계;
    주어진 분류 대상 데이터와 상기 각각의 클러스터 사이의 유사도에 기초하여, 상기 구축된 분류기 중에서 주어진 분류 대상 데이터에 대한 타깃 분류기(target classifier)를 선정하는 단계; 및
    상기 타깃 분류기를 이용하여, 상기 분류 대상 데이터를 분류하는 단계를 포함하되,
    상기 유사도는,
    상기 분류 대상 데이터와의 상기 복수의 클러스터 각각에 대한 중심점(centroid)과의 거리에 기초하여 산출되는 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
  17. 제9항, 제12항, 및 제16항 중 어느 한 항에 있어서,
    상기 트레이닝 데이터셋을 구성하는 각각의 단위 데이터는 복수의 특징이 포함된 특징 벡터이고,
    상기 복수의 특징 각각은 분류 대상의 행위를 가리키며,
    상기 복수의 분류기 각각은 상기 분류 대상의 행위를 가리키는 특징 벡터를 기초로 상기 분류 대상을 이상 및 정상 중 어느 하나의 클래스로 분류하는 분류기인 것을 특징으로 하는,
    기계 학습 기반의 분류 방법.
KR1020170143695A 2017-10-31 2017-10-31 기계 학습 기반의 분류 방법 및 그 장치 KR102100204B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170143695A KR102100204B1 (ko) 2017-10-31 2017-10-31 기계 학습 기반의 분류 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170143695A KR102100204B1 (ko) 2017-10-31 2017-10-31 기계 학습 기반의 분류 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20190048605A KR20190048605A (ko) 2019-05-09
KR102100204B1 true KR102100204B1 (ko) 2020-04-13

Family

ID=66545623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170143695A KR102100204B1 (ko) 2017-10-31 2017-10-31 기계 학습 기반의 분류 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102100204B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210149336A (ko) * 2020-06-02 2021-12-09 네이버 주식회사 멀티디바이스 기반 화자분할 성능 향상을 위한 방법 및 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102354094B1 (ko) * 2019-10-18 2022-01-20 에스케이텔레콤 주식회사 머신러닝 기반 보안관제 장치 및 방법
KR102449632B1 (ko) * 2020-03-09 2022-09-30 라인 가부시키가이샤 이상 금융거래 탐지 방법 및 시스템
KR102292968B1 (ko) * 2020-09-01 2021-08-25 영남대학교 산학협력단 기계학습을 이용한 고속의 네트워크 침입탐지 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430824B2 (en) * 2013-05-14 2016-08-30 Kla-Tencor Corporation Machine learning method and apparatus for inspecting reticles
KR102190484B1 (ko) * 2013-11-11 2020-12-11 삼성전자주식회사 인식기 학습 방법 및 장치, 데이터 인식 방법 및 장치
KR20150110065A (ko) 2014-03-24 2015-10-02 한국전자통신연구원 실행파일 모니터링 기반 악성코드 탐지 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ikfluencer. [패턴인식] 분류와 군칩화의 차이(2014.09.22.). 출처: https://iskim3068.tistory.com/68*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210149336A (ko) * 2020-06-02 2021-12-09 네이버 주식회사 멀티디바이스 기반 화자분할 성능 향상을 위한 방법 및 시스템
KR102396136B1 (ko) 2020-06-02 2022-05-11 네이버 주식회사 멀티디바이스 기반 화자분할 성능 향상을 위한 방법 및 시스템

Also Published As

Publication number Publication date
KR20190048605A (ko) 2019-05-09

Similar Documents

Publication Publication Date Title
KR102100204B1 (ko) 기계 학습 기반의 분류 방법 및 그 장치
KR101897962B1 (ko) 신경망 모델을 위한 기계 학습 방법 및 그 장치
KR102189295B1 (ko) 컴퓨터 보안 어플리케이션들을 위한 연속형 분류자들
US10810470B2 (en) Centroid for improving machine learning classification and info retrieval
RU2625053C1 (ru) Устранение ложных срабатываний антивирусных записей
Sanz et al. MAMA: manifest analysis for malware detection in android
US8869277B2 (en) Realtime multiple engine selection and combining
EP2472425B1 (en) System and method for detecting unknown malware
Altaher An improved Android malware detection scheme based on an evolving hybrid neuro-fuzzy classifier (EHNFC) and permission-based features
US10733385B2 (en) Behavior inference model building apparatus and behavior inference model building method thereof
US20160381057A1 (en) Customized Network Traffic Models To Detect Application Anomalies
KR102348536B1 (ko) 기계 학습 기반의 이상 행위 탐지 방법 및 그 장치
KR101930293B1 (ko) 정적 분석과 동적 분석을 이용하여 변종 악성코드를 식별하는 장치 및 방법
JP6039768B1 (ja) 調整装置、調整方法および調整プログラム
Zainal et al. An analysis of various algorithms for text spam classification and clustering using RapidMiner and Weka
Aonzo et al. Low-resource footprint, data-driven malware detection on android
US20230138180A1 (en) Systems and methods for generating and executing a test case plan for a software product
Sanz et al. Mads: malicious android applications detection through string analysis
Dhalaria et al. Comparative analysis of ensemble methods for classification of android malicious applications
CN104504334A (zh) 用于评估分类规则选择性的系统及方法
KR20220032730A (ko) 그래프 임베딩과 인간참여 방식을 통한 악성코드 제작그룹 식별 방법
Anshori et al. Comparison of machine learning methods for android malicious software classification based on system call
Sahal et al. Mining and detection of android malware based on permissions
KR20180133726A (ko) 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법
Aswini et al. Android malware analysis using ensemble features

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant