KR102077804B1 - 학습 데이터 전처리 방법 및 시스템 - Google Patents

학습 데이터 전처리 방법 및 시스템 Download PDF

Info

Publication number
KR102077804B1
KR102077804B1 KR1020170111693A KR20170111693A KR102077804B1 KR 102077804 B1 KR102077804 B1 KR 102077804B1 KR 1020170111693 A KR1020170111693 A KR 1020170111693A KR 20170111693 A KR20170111693 A KR 20170111693A KR 102077804 B1 KR102077804 B1 KR 102077804B1
Authority
KR
South Korea
Prior art keywords
learning data
feature
value
integer
data
Prior art date
Application number
KR1020170111693A
Other languages
English (en)
Other versions
KR20180120056A (ko
Inventor
김정희
조아라
Original Assignee
김정희
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김정희 filed Critical 김정희
Publication of KR20180120056A publication Critical patent/KR20180120056A/ko
Application granted granted Critical
Publication of KR102077804B1 publication Critical patent/KR102077804B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Finance (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Operations Research (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Technology Law (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)

Abstract

머신(machine)을 학습하는데 이용되는 학습 데이터를 전처리하는 방법 및 시스템이 개시된다. 본 발명의 일 측면에 따르면, 학습 데이터 전처리 시스템이, 머신(machine)을 학습하는데 이용되는 N개의 기초 학습 데이터(N은 2이상의 정수)를 획득하는 단계-여기서 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성됨- 및 상기 학습 데이터 전처리 시스템이, 1<=m<=M인 각각의 정수 m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택하는 단계를 포함할 수 있다.

Description

학습 데이터 전처리 방법 및 시스템{Method and system for pre-processing machine learning data}
본 발명은 학습 데이터 전처리 방법 및 시스템에 관한 것으로서, 보다 상세하게는 머신(machine)을 학습하는데 이용되는 학습 데이터를 전처리하는 방법 및 시스템에 관한 것이다.
이하에서는 발명의 이해를 돕기 위하여 머신 러닝 관련 기본 이론, 전통적인 머신 러닝 알고리즘 및 딥러닝에 대하여 서술한다.
1. 머신 러닝의 분류
1.1 지도학습
지도 학습(Supervised Learning)은 학습 데이터로부터 원하는 값을 획득하기 위한 추론 함수를 구하는 머신 러닝의 한 종류로, 학습 데이터로는 입력 데이터와 이에 해당되는 정답(레이블; Label)을 가지고 있다. 지도 학습(Supervised Learning) 알고리즘은 학습 데이터를 분석하고 추측할 수 있는 함수를 만들어 내며, 이 함수는 Classifier(출력 값이 불연속 인 경우) 또는 Regression(출력 값이 연속이면 회귀 참조)이라 칭한다.
도 1은 지도 학습의 예(Classification)에 관한 도면이다.
예를 들어, 도 1에서 x라는 벡터(vector)가 입력되었을 때 추론 함수 f(x)를 사용해 hamburger를 예측하는 것을 Supervised Learning이라 한다.
1.1.1 분류(Classification)
분류(Classification)란, 학습 데이터 (xn,yn)를 기반으로 추론 함수f:RD→R를 구할 때, yn이 이산치를 취한다는 것을 의미한다. 일반적으로 학습데이터는 입력 객체 xn∈RD와 출력 값 yn∈R으로 이루어진다. 분류 문제는 Binary classification 과 Multi variable classification으로 나누어지며, Binary Classification경우에는 출력 값이 두 개의 종류이고, Multi-variable classification은 출력 값을 두 개 이상의 종류를 갖는다.
도 2는 Classification의 예에 대하여 도시한 도면이다.
1.1.2 회귀 추론
회귀(Regression) 모델은 학습 데이터 (xn,yn)를 가지고 추론 함수 f:RD→R를 구할 때, yn이 연속 값을 갖는다. 일반적으로 학습 데이터는 입력 객체 xn∈RD 와 출력 값 yn∈R으로 이루어져 있으며, 예측치와 실제 값의 차이를 나타내는 loss function이 필요하며 일반적인 문제에서는 다음과 같은 Squared loss function L을 주로 사용한다.
Figure 112017085010343-pat00001
회귀 (Regression) 문제는 선형과 비선형으로 나누어지며, 선형 문제일 경우에는 선형 함수를 사용하고 비선형문제에서는 비선형함수를 사용해 결과를 추론한다.
도 3은 Linear regression과 Nonlinear regression의 예에 관한 도면이다.
1.2 비지도 학습
비지도 학습(Unsupervised Learning)은 모델이 입력 패턴의 통계적 구조를 학습하는 방식으로 특정 입력 패턴을 분류하는 법을 학습하는 기법이다. 지도 학습(Supervised Learning)과 강화 학습(Reinforcement Learning)과는 다르게, 예측 값에 대한 보상이나 해당 문제에 대한 정답을 입력으로 받지 않는다. 따라서, 비지도학습은 입력에 대한 답을 찾기보다는 입력의 구조적인 특성이나 서로 다른 입력들 사이의 관계를 찾는 데에 사용된다.
도 4는 Unsupervised Learning의 예에 관한 도면이다.
예를 들면, 도 4에 도시된 바와 같이, 모델에 레이블이 없는 햄버거 사진들을 학습데이터로 제공을 한다. 이때 f(x)는 비지도학습을 위한 모델이며, 해당 모델은 각각 빵과 패티만 있는 햄버거, 여러 토핑이 들어간 햄버거, 햄버거 세트로 공통점을 찾고 이 집단들을 분류하게 된다.
1.2.1 클러스터링(Clustering)
도 5는 클러스터링의 예에 관한 도면이다. 클러스터링은 그림 5에서와 같이 각 입력 값들 사이의 유사점을 찾고, 이 유사점을 토대로 입력 값들을 집단으로 묶는다.
Classification과 유사하게 각 입력 값들을 분류하기 위하여 사용되지만, 이전에 정의되지 않은 집단으로 입력들을 분류하는 것에서 차이가 있다. Clustering의 대표적인 예로 k-Means Clustering과 EM Clustering이 있다.
2. 전통적 머신 러닝 알고리즘
2.1 분류 알고리즘
대표적인 분류(Classification) 알고리즘으로는 k-NN (k-nearest Neighbor), 뉴럴 네트워크(Neural Network), SVM (Support Vector Machine) 등이 있다. 본 절에서는 대표적인 분류 알고리즘의 동작 원리에 대하여 간략히 서술한다.
2.1.1 k-Nearest Neighbor
k-Nearest Neighbor(이하 k-NN)는 간단하면서도 효과적인 분류(Classification) 학습 알고리즘 중의 하나로, 학습 데이터와 입력된 데이터 사이의 유클리드 거리(Euclidean Distance; 또는 다른 종류의 metric들을 이용하는 변형 알고리즘도 존재)가 가장 가까운 k개의 데이터를 찾아 k개의 데이터의 레이블들을 가지고 투표하여 현재 입력된 데이터의 결과값을 추론하는 알고리즘으로 그 예는 다음과 같다.
도 6은 K-Nearest Neighbor의 예에 관한 도면이다.
학습데이터가 사각형과 삼각형의 그룹으로 나누어진다고 할 때, 예측하고자 하는 값(도 6에서 물음표로 표기)과 모든 학습 데이터와의 거리를 구한 뒤, 거리가 가장 가까운 k개의 데이터를 추출한 다음, 그 데이터들이 가지는 레이블값들을 가지고 투표를 하는 방식이 k-NN이다. 위의 예에서 k를 3이라고 했을 때, 예측 값은 빨간색 세모가 된다.
k-NN의 장점은 학습데이터와의 거리(distance) 또는 유사도(similarity) 측정을 통해 답을 유추하는 방식이기 때문에 학습 데이터가 많을 경우 좋은 성능을 보일 가능성이 크다. 또한 다른 알고리즘에 비해 파라미터 수가 적기 때문에 비교적 안정적이다.
반면, 모든 학습 데이터와 비교해야하므로 연산 비용이 크다는 단점이 있으며, 지역적인 군집이 형성되는 경우 예측에 실패할 가능성이 크다. 파라미터 k의 값을 잘 설정하는 것이 성능에 큰 영향을 끼친다.
2.1.2 뉴럴 네트워크
인공 신경망(Artificial Neural Network)이라고도 하며 생물학적 신경망의 뉴런을 모방한 인공 뉴런들을 이용하여망을 형성하는 구조를 지칭한다.
최근 각광을 받고 있는 Deep Learning 알고리즘도 궁극적으로 뉴럴 네트워크의 한 종류이나, 전통적인 뉴럴 네트워크에 비해 훨씬 더 많은 Hidden Layer를 가진다.
도 7은 Neural Network의 일 예에 관한 도면이며, 도 8은 Weighted Sum의 과정(Perceptron)을 도시한 도면이다.
Neural Network는 입력을 받는 Input layer, 실제 학습을 하는 Hidden layer (Black box 라고도 한다), 연산의 결과를 반환하는 Output layer로 총 3개의 레이어(layer)로 구성되어 있다. 도 7에서 각각의 노드는 뉴런을 의미하며, 데이터가 입력되면 도8과 같이 가중 합(weighted sum)을 구한 후, 활성 함수(activation function)를 거쳐 다음 노드로 연산 결과값을 넘긴다. 이때 weight는 학습을 통해 각 노드마다 그 값을 갖게 된다.
각각의 뉴런의 인풋으로는 앞 뉴런의 결과 값들에 가중(weighted) 되어서 입력되고 이에 bias를 더해 그 합을 연산한다. Activation function은 sigmoid, tanh, ReLU 등이 사용된다.
도 9a는 Activation Function: Sigmoid에 관한 도면이며, 도 9b는 Activation Function: tanh에 관한 도면이며, 도 9c는 Activation Function: ReLU에 관한 도면이다.
여러 뉴런으로 이루어진 신경망 구조에서의 학습은 Forward propagation, Back propagation의 2가지 단계를 거쳐 진행된다.
도 10은 Neural Network의 Forward propagation 과정에 관한 도면이며, 도 11은 Neural Network의 Back propagation 과정에 관한 도면이다.
Forward propagation에서는 각각의 노드들의 weighted sum을 구한 뒤 activation function을 거쳐 다음 노드로 연산 값을 전달한다. 그 후 나온 결과값들을 이용해 다음과 같이 loss를 계산한다.
Figure 112017085010343-pat00002
Figure 112017085010343-pat00003
이렇게 구해진 loss를 토대로 loss function의 optimal point를 찾기 위해 forward propagation 으로 구해진 loss에서의 기울기를 계산한다. 다시 말해 오차 값을 줄이기 위해 변화량을 구한 뒤, 각각의 weight에 다시 반영을 한다. 다음과 같이 편미분과 Chain rule 을 이용해 기울기를 구한다.
Figure 112017085010343-pat00004
Figure 112017085010343-pat00005
이렇게 Chain rule 과 편미분을 이용해서 해당 노드에서의 각 가중치들의 기울기들을 구하고, 이 기울기는 다시 가중치들을 보정하기 위해 사용된다.
Figure 112017085010343-pat00006
Figure 112017085010343-pat00007
여기서 α는 optimizer function의 학습률을 의미한다. 위의 과정들을 각각의 퍼셉트론에서 학습했던 방향의 반대방향으로 각각의 가중치로 편미분을 해나가면서 가중치들을 보정해나간다. 이 전체 과정을 optimal point에 근사할 때까지 반복해 neural network를 학습시킨다.
2.1.3. Support Vector Machine
Support Vector Machine (SVM) 은 이진 지도 분류 학습(Supervised binary classification)의 대표적인 모델로 보편적으로 사용되고있다. SVM은 이름에서 말하는 바와 같이 학습데이터가 벡터 공간에 위치한다고 가정한다. 즉, 벡터 공간은 직각 좌표계에 학습데이터가 위치한 공간이며, 차원을 결정하는 요인은 데이터가 가지고 있는 특성(feature)이다.
도 12는 2차원공간에서 특성 값이 2개인 2차원 벡터를 표현한 그림이다. SVM의 목표는 두개의 그룹(그림에서 빨간색과 파란색)을 분리하는 직선 y=wTx+b를 찾는 것이다. 여기서 w는 직선에 수직인 법선 벡터 이다. b는 스칼라 상수이고 b 값에 따라 직선이 상하 좌우로 평행 이동한다.
파란색 영역에 있으면 wTx+b>0 이고, 빨강색 영역에 있으면 wTx+b<0 이 된다. 문제는 입력 벡터 x가 경계선과 가까이 있으면 x의 위치를 명확히 예측하기 어렵다. 이를 해결하는 문제가 바로 SVM인것이다. 즉, SVM은 두 그룹을 구별하는 선형식을 찾되, 선형식이 표현하는 직선을 사이에 두고 가능하면 두 그룹이 멀리 떨어져 있도록 하는 직선 식을 구하는 것이다. 이 선형 방정식을 구하는 것이 Linear SVM이다.
두 직선 사이의 거리, 즉 마진(margin)을 구하는 방법은 X1이 빨간색 영역의 값이고 X2가 파란색 영역의 값이라고 할 때 다음과 같이 표현한다.
Figure 112017085010343-pat00008
마진(margin)을 최대로 하기 위해서는 ??w??가 최소가 되어야 하기 때문에 최적화 문제로 만들기 위해
Figure 112017085010343-pat00009
를 구하여야 한다. 결국 위의 조건을 만족시키면서 마진을 최대로 하기 위해서는 아래와 같은 식이 도출되며,
Figure 112017085010343-pat00010
위의 최적화 문제를 풀어야 한다. 이때 ai는 라그랑지안 승수이며, 최소값을 구하는 최적화 문제에서는 항상 0보다 크거나 같다.
이 라그랑지안 문제를 풀기 위해 먼저 w, b에 대해서 미분을 취한 뒤 기존에 있던 공식에 대입하면 다음과 같이 나타낼 수 있으며, 이를 듀얼 라그랑지안이라 한다.
Figure 112017085010343-pat00011
위의 식을 N개의 학습데이터가 있는 문제로 전환하면 행렬
Figure 112017085010343-pat00012
이 되고 이 행렬을 가지고 위의 공식을 한번 더 치환하면,
Figure 112017085010343-pat00013
Figure 112017085010343-pat00014
두 식의 해를 구해 최대 마진을 구하면 두 개의 그룹을 분리하는 경계식을 구할 수 있다.
2.1.4 의사 결정 나무
의사 결정 나무(Decision Tree)는 지도 분류 학습 알고리즘 중 단순하면서도 가장 성공적인 non-parametric supervised learning 기술 중 하나이다. 이 알고리즘의 목표는 예제에서 추론된 간단한 결정 규칙을 학습하여 대상 변수의 값을 예측하는 모델을 만드는 것으로 종속 변수의 유형에 따라 회귀 분석과 분류 분석 모두에서 Decision Tree를 사용할 수 있다. Decision Tree의 내부 노드는 관측에 대한 일련의 분기 규칙을 나타내며, 이러한 일련의 분할 규칙을 이해하기 쉽게 추상 구조로 시각화할 수 있어 관찰이 용이하다. 도 13은 자동차 구매를 Decision Tree로 표현한 예이다. 각 노드는 프로그래밍 언어에서의 조건문에 대응하며, 각 조건에 대한 분기는 모든 누적된 결정을 기반으로 한 최종 결과를 나타내는 노드에 도달할 때까지 Tree를 탐색한다. 본 예제는 'BUY' 또는 'DON'T BUY'의 결정을 만들어 내는 의사 결정 나무를 표현한다.
Decision Tree은 다음과 같은 세 가지 장점이 있다.
첫째, 이해하기 쉽고 해석하기가 쉬우며 결정 트리를 시각화 할 수 있다.
둘째, White box model를 사용하며, 주어진 상황이 모델에서 관찰 가능하다면, 조건에 대한 설명은 Boolean 논리에 의해 쉽게 설명될 수 있다. 대조적으로 Black box model (ex: 인공 신경망, 딥러닝 등)에서의 결과는 해석하기가 매우 어렵다.
셋째, 통계 테스트를 사용하여 모델의 유효성을 검증할 수 있으며, 모델의 신뢰성을 판단할 수 있다.
결정 트리를 구성하는 알고리즘에는 주로 Top-Down(하향식) 기법이 사용되며, 각 진행 단계에서는 주어진 데이터 집합을 가장 적합한 기준으로 분할하는 변수 값이 선택된다. 서로 다른 알고리즘들은 "분할의 적합성"을 측정하는 각자의 기준이 존재하며, 이러한 기준들은 보통 부분 집합 안에서의 목표 변수의 동질성을 측정한다.
ID3 알고리즘은 분기(Branching)에 사용하는 속성을 결정하기 위해 greedy search 방법론을 사용하여 노드를 생성하고 트리를 만들어 낸다. 또한 이 트리 내의 탐색은 하향식(root → leaf) 으로 이루어진다. 트리를 만들고 탐색하는 일련의 과정을 분류 결과가 충분히 만족스러울 때까지 반복하여 수행한다.
각 노드들의 분기에 사용 될 속성을 선택하기 위한 metric 은 Information Gain과 Entropy를 이용하여 계산한다.
다음은 트리를 구성하는 알고리즘이다.
알고리즘 1. ID3 트리 구성 알고리즘
Root Node의 분기 속성을 구하고 이를 A라 한다
A의 각 가지에 대해 새로운 자손 노드를 생성한다
예제들을 해당하는 leaf 노드로 정렬한다
예제가 완벽하게 분류된 경우 stop 그렇지않으면 새 leaf노드에서 알고리즘 루프를 반복한다.
Entropy 함수 E는 다음과 같다.
Figure 112017085010343-pat00015
함수 인자 S는 예제를 의미하고, p는 클래스 + 학습 예제의 비율, q = 1 ?? p는 클래스 ??의 예제 비율을 나타낸다.
이를 이용하여 Information Gain 또한 구할 수 있다.
Figure 112017085010343-pat00016
여기서 Gain은 A에서의 정렬로 인한 엔트로피의 예상 감소치를 의미한다.
도 14는 Classifier의 예에 관한 도면이다. 도14 에서는 humidity와 wind 중 Gain이 더 높은 Humidity가 더 좋은 분기 속성이 된다. 이러한 식으로 하향식 기법을 사용하여 분류 결과가 충분히 만족스러울 때까지 새로운 노드를 추가시켜 나간다.
도 15는 C4.5의 예에 관한 도면이다.
C4.5 분류 알고리즘은 ID3알고리즘의 몇 가지 단점들을 보완한 알고리즘이다. C4.5 알고리즘이 보완하고자 한 ID3알고리즘의 문제들은 다음과 같다.
수치형 속성 취급(handling continuous attribute) - ID3 알고리즘은 범주형 속성에 대해서만 트리를 생성하는 방법을 제시하고있다. 따라서 수치형 속성은 모델 생성에 활용할 수 없는 한계가 있다. C4.5에서는 수치형 속성까지 사용하는 방법을 제안한다.
연속적인 값을 가진 속성을 처리하기 위해 Binary 분할이 수행된다. 일단 속성값을 정렬한 후, 속성의 모든 분리점에 대해 Gain을 계산한다. 가장 좋은 분리점(h)으로 선택되면, A속성은A≤h, A>h로 분할된다. 예를 들어 도 15의 첫번째 node인 glu 속성을 보면, Gain이 가장 낮은 지점이 123으로 연산되어 그 지점을 분리점(h)로 자동 선택된 것을 확인 할 수 있다. 이와 마찬가지로 bmi, age, dp, ped도 동일한 방식으로 각각의 분리점(h)를 자동으로 선택하여 최종적으로는 입력된 데이터의 레이블을 예측 할 수 있다.
트리의 깊이 문제 - ID3 알고리즘으로 트리 모델을 생성할 경우 트리의 깊이가 너무 깊게 들어가는 문제가 있다. C4.5 알고리즘에서는 이 문제를 해결하기 위해 깊이를 제한한다.
결측치 처리 - 데이터 중 특정 속성의 값이 부분적으로 입력되어 있지 않는 데이터에 대한 처리 문제의 누락된 값은 일반적으로 "?" 로 표시된다. 누락된 값을 다루는 것은 대체를 포함하며, 대체는 주요한 기능이 누락된 경우 사용 가능한 데이터로부터 추정할 수 있음을 의미한다. Distribution-based imputation은 누락된 기능에 대해 서로 다른 값을 가진 여러 인스턴스로 예제를 나눌 때 수행된다. 특정 누락 값에 대해 추정된 확률에 해당하는 가중치가 할당되고, 가중치의 최대값은 1이 된다.
CART(Classification and Regression Tree)분류 알고리즘은 기존 C4.5와 비슷한 방식의 알고리즘으로 그 차이점은 다음과 같다.
- 자손 노드의 수를 2개로 한정
- Entropy대신 Gini impurity를 사용하여 Information Gain을 구함
2.1.5 Random Forest
Random Forest는 여러 개의 결정 트리(DT)를 bagging기법을 사용하여 학습하는 방식의 머신 러닝 알고리즘이다.
Bias-variance trade off란, 기계학습 알고리즘에서 bias를 줄이면 variance가 높아지는 것처럼, learning error들이 일종의 zero sum 게임 양상을 보이는 것을 말한다. 이를 해결하기 위한 방법으로 Bagging을 사용한다.
Bagging이란, Bootstrap Aggregation의 약자로 bias-variance trade off를 극복하기 위해 사용되는 방법이다. 여기에서 bias와 variance는 학습 오류(learning error)를 구성하는 두 요소로 bias가 높으면 예측 결과가 실제 결과와 비교해서 부정확한 경우가 많고, variance가 높으면 예측 결과가 어떤 학습 예제 에서는 성능이 좋으나, 다른 학습예제에서는 성능이 크게 저하되어 예측 결과의 안정성이 떨어지게 된다.
따라서 Bagging은 주어진 학습예제에서 랜덤하게 subset을 N번 샘플링하여 N개의 예측 모형을 만들어 개별예측모형의 결과를 voting하는 방식으로 예측 결과를 결정하여 bias-variance trade off문제를 해결하는 것을 말한다.
Bagging를 통해 Random forest를 학습 과정은 다음과 같이 크게 세 단계로 구성된다.
알고리즘 2. Bagging을 통한 Random forest 학습 과정
Bootstrap방법을 통해 N개의 학습 예제를 생성한다.
N개의 DT를 학습시킨다.
DT을 하나의 분류기로 결합(앙상블)한다, 이때 평균 또는 과반수 투표 방식을 이용하여 결과를 예측한다.
DT는 작은 bias와 큰 variance를 갖기 때문에 매우 깊은 DT에서는 과적합(Overfitting) 문제를 겪게 된다. 한 개의 DT는 학습 예제에 있는 노이즈에 매우 민감하지만, 서로 다른 DT들이 서로 연관되어 있지 않은 경우에는 여러 DT를 평균화 하면 노이즈에 대한 민감도를 줄일 수 있다. 그러나, 동일한 학습 예제로 훈련시킬 경우, 각 DT 상관성이 커지므로, 서로 다른 랜덤 한 학습 예제를 사용하여 DT간의 상관성을 줄여나갈 수 있다. Random Forest의 알고리즘은 다음과 같다.
알고리즘 3. Random Forest
Precondition: A training set
Figure 112017085010343-pat00017
, features
Figure 112017085010343-pat00018
, and number of trees in forest
Figure 112017085010343-pat00019
.
function RANDOMFOREST
Figure 112017085010343-pat00020

Figure 112017085010343-pat00021

for
Figure 112017085010343-pat00022
do
Figure 112017085010343-pat00023
A boostrap sample from
Figure 112017085010343-pat00024

Figure 112017085010343-pat00025
RANDOMIZEDTREELEARN
Figure 112017085010343-pat00026

Figure 112017085010343-pat00027

end for
return
Figure 112017085010343-pat00028

end function
function RANDOMIZEDTREELEARN
Figure 112017085010343-pat00029

At each node:
Figure 112017085010343-pat00030
very small subset of
Figure 112017085010343-pat00031

Split on best feature in
Figure 112017085010343-pat00032

Return The learned tree
end function
DT와 Random Forest의 차이점으로는 크게 두 가지를 들 수 있다. 첫째, Random Forest는 학습 예제를 bootstrap를 사용해 반복 샘플링하여 여러 DT를 학습시킨다는 점이며, 두 번째로는 각 분할에 대해 m 개의 임의로 선택한 variable 만 고려한다는 점이다.
Out-of bag (OOB) 에러를 사용하여 일반화 오차를 추정한다. OOB 에러는 여러 DT를 각각 학습 데이터로 학습시킨 후, 테스트 데이터를 이용하여 각각의 결과를 예측한 뒤, 이를 투표하여 최종 결과를 추정 하고, 실제 값과의 오류를 측정한 것이다. 이 OOB가 중요한 이유는 Breiman[1996b]의 배깅된 분류기들의 오차 측정에 대한 발명에서 OOB 예측 방법이 학습 예제의 크기와 같은 테스트 셋을 사용하여 검증한 것만큼 정확하다는 것을 알려주는 실증적인 증거를 주었기 때문이다.
트레이닝 이후 j번째 feature의 중요성을 측정하기 위하여 j번째 feature를 제외한 데이터로 랜덤 포레스트의 OOB오차를 계산한다. j번째 변수의 중요도 점수는 모든 트리들에 대해서 원본 데이터 집합의 OOB오차 값이 큰 feature는 작은 값을 갖는 feature보다 높은 순위의 중요성을 가지게 된다.
2.1.6 Gradient Boosted Tree
Gradient Boosted Tree에서 Gradient Boosted의 의미는 'optimizer function에 적합한'으로 해석 할 수 있다. 여기서 Gradient는 Gradient Descent Optimizer이며, Gradient Boosted Tree란, Gradient Descent Optimizer를 이용해 예측 값과 실제 값의 오차를 줄여 나가며 학습하는 모델이다. 먼저 Objective function 을 정의하면 다음과 같다.
Figure 112017085010343-pat00033
여기서
Figure 112017085010343-pat00034
은 loss function이며,
Figure 112017085010343-pat00035
는 regularization,
Figure 112017085010343-pat00036
는 다음과 같다.
Figure 112017085010343-pat00037
where, q(x)-path id in the structure of k's tree, w-weight
여기에서 모델이 배워야 할 것을 고정시키고, 다음의 단계를 통해 한 단계당 하나의 나무만 새로 추가하는 규칙을 이용해 다음과 같은 Hypothesis function을 구할 수 있다.
Figure 112017085010343-pat00038
where,
Figure 112017085010343-pat00039
and
Figure 112017085010343-pat00040
space of all possible decision trees.
Objective function의 loss function으로 logistic loss를 사용할 경우 그 식은 다음과 같다.
Figure 112017085010343-pat00041
앞서 언급한 규칙이 여기에서는 hypothesis가 되므로
Figure 112017085010343-pat00042
라 할 수 있다. 이때
Figure 112017085010343-pat00043
가 미리 학습된 모델이라 가정하고
Figure 112017085010343-pat00044
가 새로 만들 모델이라 가정했을 때, 그 과정은 다음과 같다.
Figure 112017085010343-pat00045
Figure 112017085010343-pat00046
이 결과를 다시 Objective function에 대입하면 다음과 같다.
Figure 112017085010343-pat00047
위의 식으로 정리하게 되고, 앞서 언급했던 logistic loss라 가정했을 때 Gain function 을 계산하면,
Figure 112017085010343-pat00048
라는 식을 구할 수 있게 된다. 여기에서
Figure 112017085010343-pat00049
는 왼쪽 가지의 스코어이고,
Figure 112017085010343-pat00050
는 오른쪽 가지의 스토어이며,
Figure 112017085010343-pat00051
는 원래 가지의 스코어이고,
Figure 112017085010343-pat00052
는 regularizer이다.
여기에서 Gain이
Figure 112017085010343-pat00053
보다 작다면 새로운 가지를 추가하지 않는게 더 낫다는 해석을 할 수 있다.
2.1.7 Ensemble Boosted Tree
Ensemble Boosted Tree는 위에서 언급된 Gradient Boosted Tree 를 Ensemble 한 것이다. Ensemble을 하기 위해선 Ensemble을 할 모델들 간의 correlation이 낮아야 하기 때문에 각각의 모델에 다른 학습데이터를 넣어주게 된다. 만약 학습 데이터가 적다면 resampling을 한다.
각각의 Boosted Tree의 학습 결과를 통해 만들어진 모델들의 결과를 다음과 같이 투표를 통해 최종적인 결과 값으로 사용한다.
Figure 112017085010343-pat00054
where,
Figure 112017085010343-pat00055
and K is total number of Model,
Figure 112017085010343-pat00056
is Classifier.
2.2 클러스터링(군집화)
3.2.1 k-means Clustering
k-Means Clustering은 총 입력의 개수가 n개라 가정했을 때 k개의 집단으로 군집(Clustering)하여 분류하는 방식이다.
Figure 112017085010343-pat00057
각 입력 값들은 기준점을 중심으로 Euclidean Distance가 최소가 되도록
Figure 112017085010343-pat00058
개의 집단으로 군집한다. 이때 기준점은
Figure 112017085010343-pat00059
가 되며
Figure 112017085010343-pat00060
는 입력(데이터)이고 다음을 최소화 하는 방향으로 학습된다.
Figure 112017085010343-pat00061
k-Means Clustering은 빠르고 알고리즘이 간단하지만 적절한 k값을 찾지 못하면 성능이 떨어지고, 이상치(outlier)에 민감하며 평균이 다른 Cluster 들을 잘 구분하지 못하는 특징이 있다.
3.2.2 Expectation-Maximum Clustering
EM Clustering(Expectation-Maximum Clustering)은 알 수 없는 변수(parameter)
Figure 112017085010343-pat00062
의 Maximum likelihood 나 Maximum a posteriori 를 찾기 위한 방법이다.
Figure 112017085010343-pat00063
여기서
Figure 112017085010343-pat00064
는 우도(likelihood) 함수이며
Figure 112017085010343-pat00065
Figure 112017085010343-pat00066
Figure 112017085010343-pat00067
위의 log의 특성과 우도함수의 정의를 이용해 식(1)의 우변으로 유도됨을 알 수 있다. (여기서 분포 Z에 관한 식으로 전개한 이유는 구하려고 하는 것이 군집화 하려는 분포이기 때문이다).
Figure 112017085010343-pat00068
은 우도 함수를 이루는 항중 하나로 우도 함수를 직접적으로 증가시키는게 아니라
Figure 112017085010343-pat00069
을 증가시켜 최대값을 찾는다.
주어진 임의의 순간
Figure 112017085010343-pat00070
에서의 변수
Figure 112017085010343-pat00071
에서 주어진
Figure 112017085010343-pat00072
Figure 112017085010343-pat00073
의 조건부 확률 분포(Conditional Distribution)
Figure 112017085010343-pat00074
에 대한 log likelihood의 기대 값을 구한다.
Figure 112017085010343-pat00075
이를 최대화하는 방향으로 학습한다. 그러나 Maximum likelihood는 관측된 입력 값에 따라 출력 값이 너무 민감하게 변하기 때문에 이를 해결하기 위해 Maximum a posteriori 방법을 사용하기도 한다.
3. Deep Learning
도 16은 Convolutional Neural Network의 예(Alex Net)에 관한 도면이다.
3.1 Convolution
Convolution이란 signal processing 분야에서 주로 사용하는 operation으로, 다음과 같이 표현된다.
Figure 112017085010343-pat00076
Convolution은 임의의 filter를 학습하여 주어진 matrix혹은 vector로부터 적절한 feature를 뽑아내기 위해 사용한 operation이다. 특히 이미지와 음성 인식 분야에서 주로 사용되고 있다.
3.2 Local Connectivity
고차원 입력을 다룰 때 이전 볼륨의 모든 뉴런들을 서로 연결하는 것은 메모리나 연산 비용에서 비현실적이므로 각 뉴런을 입력 볼륨의 로컬 영역에만 연결한다. 이때 이 연결의 공간적 범위는 뉴런의 수용 필드라고 하는 하이퍼 매개 변수이다. 깊이 축을 따라 연결되는 범위는 항상 입력 볼륨의 깊이와 같으며, 공간 치수(너비와 높이)와 깊이 치수를 처리하는 방법에서 이 비대칭을 다시 강조하는 것이 중요하다. 연결은 공간에서 로컬(너비와 높이를 따라)이지만 항상 입력 볼륨의 전체 깊이와 동일하다.
3.3 Shared Weights
예시:
[227x227x3]의 이미지를 인풋 벡터라고 가정하고, 첫 번째 convolution layer에서는 수용 필드 크기 F = 11, 스트라이드 S = 4 및 제로 패딩 P = 0을 갖는 뉴런을 사용하면, Convolution layer의 깊이가 K = 96, (227-11)/4+1=55이므로 Convolution layer의 출력 볼륨의 크기는 [55x55x96]이다. 이 볼륨의 55 * 55 * 96 뉴런 각각은 입력 볼륨에서 크기 [11x11x3]의 영역에 연결된다. 또한, 각 깊이 열에 있는 모든 96 개의 뉴런은 입력의 동일한 [11x11x3] 영역에 연결 되며, 서로 다른 노드와 연결되어 각각 학습된다.
Weights의 공유 방식은 매개 변수의 수를 제어하기 위해 Convolution 에서 사용된다. 위의 실제 예제를 보면 첫 번째 전환 레이어에 55 * 55 * 96 = 290,400 개의 뉴런이 있고 각각 11 * 11 * 3 = 363 개의 weights와 1 개의 bias가 있음을 알 수 있다. 이것에 의해, Convolution Network 최초의 층에 290400 * 364 = 105,705,600의 파라미터가 추가된다. 이 숫자는 비용 측면에서 매우 큰 수로 하나의 특징이 어떤 공간적 위치 (x,y)에서 계산하는 것이 유용하다면, 다른 위치 (x2,y2)에서 계산하는 것이 매개 변수의 수를 극적으로 줄일 수 있다는 것이 밝혀졌다. 즉 [55 * 55 * 96]개의 뉴런이 있다면 [55 * 55] 의 공간적 위치 정보는 공유를 하고, 깊이 차원만 따로 학습을 할 수 있게 되어 수학적 계산 비용절감을 할 수 있다.
3.4 Pooling Layers
Pooling의 기능은 표현의 공간 크기를 점차적으로 줄여서 네트워크의 매개 변수 및 계산량을 줄이고 overfitting을 방지하는 것이다. Pooling layer는 모든 레이어에서 독립적으로 작동하고 지정한 filter 사이즈 내에서 maximum 값 또는 mean 값을 취하는 방식으로 공간적으로 크기를 줄여간다. 가장 일반적인 형태는 크기가 2x2 인 필터가 적용된 Pooling layer 이다. 입력의 깊이 슬라이스를 폭과 높이에 따라 2씩 두 번 down-sampling하여 75 %를 비활성화 시킨다. Max pooling외에도 pooling 장치는 mean pooling 또는 L2-norm pooling과 같은 다른 기능을 수행 할 수도 있다.
도 17은 Max-pooling의 예에 관한 도면이다.
도 17의 pooling layer는 입력 볼륨의 각 깊이 슬라이스에 대해 독립적으로 볼륨을 공간적 down-sampling한다.
도 17의 좌측의 예에서 크기 [224x224x64]의 입력 볼륨은 필터 크기 2로 풀링되어 크기는 [112x112x64]의 출력 볼륨에 0.5배가되며 볼륨 깊이는 유지된다. 도 17의 우측은 가장 일반적인 down sampling 연산인 max pooling의 예이다.
3.5 ReLU
도 18은 ReLU Function의 예에 관한 도면이다.
Rectified Linear Unit은 함수
Figure 112017085010343-pat00077
를 계산한다. 즉, 활성화는 도 18에서처럼 단순히 0으로 임계화 한다. ReLU를 사용하는 데는 몇 가지 장단점이 있다.
첫 번째 장점으로는, 실험적 결과로 추정했을 때, Sigmoid나 tanh 함수에 비해 stochastic gradient descent의 수렴을 크게 증가시키는데 이것은 선형적이고 포화되지 않는 형태이기 때문이다. 두 번째로는, 연산량이 많은 tanh와 sigmoid 뉴런과 비교하여, ReLU는 단순히 활성화 행렬을 0으로 thresholding하여 구현할 수 있다는 점이다.
반면, 단점으로는 ReLU 유닛은 학습 중에 큰 gradient 값을 입력 받을 경우, 이로 인해 뉴런이 모든 데이터 포인트에서 다시 활성화되지 않도록 가중치가 0으로 고정되어 다시는 학습되지 않을 수 있다. 예를 들어, 학습 속도가 너무 높게 설정된 경우 네트워크의 40 % 정도가 업데이트 되지 못할 수 있으나 학습 속도의 적절한 설정으로 이러한 문제는 해결 가능하다.
3.6 Inner Product
내적은 대수적 또는 기하학적으로 정의 될 수 있다. 기하학적 정의는 각도 및 거리 개념 (벡터의 크기)을 기반으로 하며 Neural Network에서의 hidden layer의 형태와 동일하다.
Figure 112017085010343-pat00078
3.7 Softmax
Softmax regression(또는 multinomial logistic regression)은 multi-class classification을 해결하기 위한 방법이다. 일반적으로 logistic regression에서 라벨이
Figure 112017085010343-pat00079
와 같이 binary라고 가정한다면, Softmax regression는 다음과 같이
Figure 112017085010343-pat00080
Figure 112017085010343-pat00081
개의 클래스를 예측할 수 있게 해준다. Softmax function은 다음과 같다.
Figure 112017085010343-pat00082
정보 이론에서의 실제 데이터 분포 p와 추정된 분포 q 사이의 cross-entropy는 다음과 같이 정의된다.
Figure 112017085010343-pat00083
따라서, Softmax 는 추정 된 클래스 확률들 사이의 cross-entropy를 최소화한다.
Figure 112017085010343-pat00084
3.8 Dropout
Dropout은 효과적이고 간단한 정규화 기술로 L1, L2, max-norm와 같은 정규화 방법을 보완하는 방법으로 신경망의 Overfitting을 방지하는 효과가 있다. Dropout은 약간의 확률로 뉴런을 활성화 상태로 유지하거나 비활성화하여 노드간의 연결을 끊어 모든 노드간의 정보를 정규화하는 기법이다. 단, 테스트 중에는 모든 뉴런을 활성화시킨다. 도 19는 Dropout의 예에 관한 도면이다.
3.9 Finetuning
기존에 학습 완료된 weight들을 사용함으로써 일부 layer의 weights를 빠르게 미세 조정할 수 있는 기법으로 데이터가 부족할 경우, 다른 유사 데이터 셋에서 학습 완료한 weight를 가져와 initialization하는 방법으로 학습 효과를 극대화 시킬 수 있는 기법이다. 이 때, 미세조정을 통해 일반적인 것에서 특화된 문제에 대해 좋은 결과를 도출해 낼 수 있다.
신호 처리에 사용되는 데이터들과는 달리 최소값과 최대값이 정해져 있지 않은 특정한 데이터(예를 들면, 재무제표 데이터)의 경우 기존에 알려져 있는 머신러닝 기법들에 그대로 적용하기에는 값의 크기가 너무 클 수 있으며, 이로 인하여 Loss 또한 클 수 밖에 없다. 따라서 이러한 데이터를 그대로 이용하여 머신을 학습하고자 하는 경우, 학습이 전혀 안되거나 학습이 되더라도 시간이 매우 오래 걸리게 된다. 따라서, 재무제표 데이터 등의 경우 데이터 normalization을 적용하는 것은 반드시 필요하다.
한편, 개별 feature에 가장 적합한 정규화 알고리즘을 선택하는 것은 많은 시간과 노력이 필요한 일로서, 특히 재무제표 데이터와 같이 feature의 종류가 매우 많은 경우에는 최적의 정규화 알고리즘을 찾는 것이 대단히 어렵다. 따라서 여러 가지 정규화 기법을 동시에 적용시키고 모든 데이터를 한꺼번에 학습시키는 방법도 사용할 수 있으나, 이는 연산량과 메모리의 한계가 있으며, 노이즈 데이터가 동시에 발생되는 문제가 있다. 이러한 문제를 극복하기 위하여 자동으로 개별 feature에 가장 적합한 정규화 방식을 찾아내는 방식이 요구된다.
본 발명의 일 측면에 따르면, 학습 데이터 전처리 시스템이, 머신(machine)을 학습하는데 이용되는 N개의 기초 학습 데이터(N은 2이상의 정수)를 획득하는 단계-여기서 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성됨- 및 상기 학습 데이터 전처리 시스템이, 1<=m<=M인 각각의 정수 m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택하는 단계를 포함하되, 상기 제m특징에 상응하는 정규화 기법을 선택하는 단계는, 1<=k<=K인 각각의 정수 k에 대하여, 상기 N개의 기초 학습 데이터 각각의 제m특징값(여기서 제m특징값은 제m특징에 상응하는 특징값임)에 미리 정의된 제k정규화 기법을 적용하여 상기 기초 학습 데이터의 제m특징값에 상응하는 제k정규화값을 생성 하는 단계-여기서, 상기 기초 학습 데이터의 제m특징값에 상응하는 제k정규화값(k는 1<=k<=K인 임의의 정수)은 상기 기초 학습 데이터의 제m특징값에 제k정규화 기법을 적용하여 생성되는 값임-, 1<=k<=K인 각각의 정수 k에 대하여, 상기 N개의 기초 학습 데이터 각각의 제m특징에 상응하는 제k정규화값을 그에 상응하는 기초학습 데이터의 레이블에 기초하여 제1클래스 또는 제2클래스로 분류하고, 분류한 제1클래스 및 제2클래스의 히스토그램 간 거리를 측정하여 제k거리값을 생성하는 단계 및 상기 제1정규화 기법 내지 상기 제K정규화 기법 중 어느 하나인 제w정규화 기법을 상기 제m특징에 상응하는 정규화 기법으로 선택하는 단계-여기서, w는 1<=w<=K인 정수이며, 제w거리값이 제1거리값 내지 제K거리값 중 최대값임-를 포함하는 학습 데이터 전처리 방법이 제공된다.
일 실시예에서, 상기 학습 데이터 전처리 시스템이, 1<=n<=N인 각각의 정수 n에 대하여, 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하는 단계를 더 포함하되, 상기 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하는 단계는, 1<=m<=M인 각각의 정수 m에 대하여, 상기 제n번째 기초 학습 데이터의 제m특징값에 제m특징에 상응하는 정규화 기법을 적용하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1정규화 기법 내지 상기 제K정규화 기법 각각은, 복수의 변환함수 중 어느 하나와 복수의 정규화 함수 중 어느 하나를 합성한 합성 함수에 의해 표현되며, 상기 복수의 변환 함수는 S-shaped curve 성질을 가지는 함수 또는 구간(0,∞)에서 함수값은 증가하고 미분값은 감소하는 성질을 가지는 함수인 것을 특징으로 할 수 있다.
일 실시예에서, 상기 복수의 정규화 함수는 하기 [수식 1]에 따른 fs(x), [수식 2]에 따른 z(x), [수식 3]에 따른 mmad(x)를 포함할 수 있다.
[수식 1] fs(x) =
Figure 112017085010343-pat00085
[수식 2] z(x) =
Figure 112017085010343-pat00086
[수식 3] mmad(x) =
Figure 112017085010343-pat00087
([수식 1] 내지 [수식 3]에서, X는 x가 속하는 특징에 상응하는 학습 데이터 내의 모든 특징값의 집합)
일 실시예에서, 상기 복수의 변환 함수는 sigmoid 함수, hyperbolic tangent 함수, 하기 [수식]에 의해 표현되는 적어도 하나의 tf(y)를 포함할 수 있다.
[수식] tf(y) = log(αh×y+βh) (여기서, h는 1<=h<=H인 각각의 정수(H는 1이상의 정수)이며 αh 및 βh 는 미리 정의된 상수임)
일 실시예에서, 제k거리값은, 분류된 제1클래스 및 제2클래스의 히스토그램 간의 유클리드 거리(Euclidean distance)인 것을 특징으로 할 수 있다.
본 발명의 다른 일 측면에 따르면, 데이터 처리 장치에 설치되어, 상술한 방법을 수행하기 위한 컴퓨터 프로그램이 제공된다.
본 발명의 다른 일 측면에 따르면, 학습 데이터 전처리 시스템으로서, 프로세서 및 컴퓨터 프로그램을 저장한 메모리를 포함하되, 상기 컴퓨터 프로그램은 상기 프로세서에 의해 실행되는 경우, 상기 학습 데이터 전처리 시스템이 상술한 방법을 수행하도록 하는 학습 데이터 전처리 시스템이 제공된다.
본 발명의 다른 일 측면에 따르면, 머신을 학습하는데 이용되는 N개의 기초 학습 데이터(N은 2이상의 정수)를 획득하는 획득모듈-여기서 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성됨-, 및 상기 학습 데이터 전처리 시스템이, 1<=m<=M인 각각의 정수m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택하는 제어모듈을 포함하되, 상기 제어모듈은, 상기 제m특징에 상응하는 정규화 기법을 선택하기 위하여, 1<=k<=K인 각각의 정수 k에 대하여, 상기 N개의 기초 학습 데이터 각각의 제m특징값(여기서 제m특징값은 제m특징에 상응하는 특징값임)에 미리 정의된 제k정규화 기법을 적용하여 상기 기초 학습 데이터의 제m특징값에 상응하는 제k정규화값을 생성하고-여기서, 상기 기초 학습 데이터의 제m특징값에 상응하는 제k정규화값(k는 1<=k<=K인 임의의 정수)은 상기 기초 학습 데이터의 제m특징값에 제k정규화 기법을 적용하여 생성되는 값임-, 1<=k<=K인 각각의 정수 k에 대하여, 상기 N개의 기초 학습 데이터 각각의 제m특징에 상응하는 제k정규화값을 그에 상응하는 기초학습 데이터의 레이블에 기초하여 제1클래스 또는 제2클래스로 분류하고, 분류한 제1클래스 및 제2클래스의 히스토그램 간 거리를 측정하여 제k거리값을 생성하고, 상기 제1정규화 기법 내지 상기 제K정규화 기법 중 어느 하나인 제w정규화 기법을 상기 제i특징에 상응하는 정규화 기법으로 선택하는-여기서, w는 1<=w<=K인 정수이며, 제w거리값이 제1거리값 내지 제K거리값 중 최대값임- 학습 데이터 전처리 시스템이 제공된다.
일 실시예에서, 1<=n<=N인 각각의 정수 n에 대하여, 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하는 전처리모듈을 더 포함하되, 상기 전처리모듈은, 상기 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하기 위하여, 1<=m<=M인 각각의 정수 m에 대하여, 상기 제n번째 기초 학습 데이터의 제m특징값에 제m특징에 상응하는 정규화 기법을 적용할 수 있다.
본 발명의 일 실시예에 따른 학습 데이터 전처리 시스템 및 방법에 따르면, 학습 데이터(특히, 재무제표 데이터)의 각 feature에 적합한 데이터 정규화 기법을 자동으로 선택할 수 있다.
종래의 데이터 정규화 기술은 feature에 상관없이 데이터 전체에 대하여 일괄 적용되는 것이 일반적이지만, 본 발명의 일 실시예에 따른 시스템 및 방법에 따르면, 학습 데이터의 각 feature마다의 최적의 정규화 기법을 적용할 수 있으므로 본 기술을 적용한 학습 데이터를 통해 머신을 학습시 기존의 방법에 비해 좋은 성능을 볼 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 지도 학습의 예(Classification)에 관한 도면이다.
도 2는 Classification의 예에 대하여 도시한 도면이다.
도 3은 Linear regression과 Nonlinear regression의 예에 관한 도면이다.
도 4는 Unsupervised Learning의 예에 관한 도면이다.
도 5는 클러스터링의 예에 관한 도면이다.
도 6은 K-Nearest Neighbor의 예에 관한 도면이다.
도 7은 Neural Network의 일 예에 관한 도면이며, 도 8은 Weighted Sum의 과정(Perceptron)을 도시한 도면이다.
도 9a는 Activation Function: Sigmoid에 관한 도면이며, 도 9b는 Activation Function: tanh에 관한 도면이며, 도 9c는 Activation Function: ReLU에 관한 도면이다.
도 10은 Neural Network의 Forward propagation 과정에 관한 도면이며, 도 11은 Neural Network의 Back propagation 과정에 관한 도면이다.
도 12는 2차원공간에서 특성 값이 2개인 2차원 벡터를 표현한 그림이다.
도 13은 자동차 구매를 Decision Tree로 표현한 예이다.
도 14는 Classifier의 예에 관한 도면이다.
도 15는 C4.5의 예에 관한 도면이다.
도 16은 Convolutional Neural Network의 예(Alex Net)에 관한 도면이다.
도 17은 Max-pooling의 예에 관한 도면이다.
도 18은 ReLU Function의 예에 관한 도면이다.
도 19는 Dropout의 예에 관한 도면이다.
도 20은 Normal Ensemble Model의 일 예를 도시한 도면이다.
도 21은 Regression Model의 일 예를 도시한 도면이다.
도 22는 Function Concatenate Model의 일 예를 도시한 도면이다.
도 23은 LSTM Model의 일 예를 도시한 도면이다.
도 24는 기초 학습 데이터의 일 예를 도시한 도면이다.
도 25는 본 발명의 일 실시예에 따른 학습 데이터 전처리 방법을 개략적으로 도시한 흐름도이다.
도 26은 도 25의 S200단계를 보다 구체적으로 도시한 흐름도이다.
도 27은 도 25의 S300단계를 보다 구체적으로 도시한 흐름도이다.
도 28은 본 발명의 일 실시예에 따른 학습 데이터 전처리 시스템의 개략적인 구조를 도시한 블록도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하에서는 출원 발명을 도출해내기 위하여 수행된 연구의 상세한 내용 및 이를 통해 제시한 알고리즘에 관하여 먼저 설명하기로 한다.
1. 데이터의 특성
본 연구의 주요한 목표는 재무제표 데이터가 머신 러닝에 효과적으로 적용될 수 있도록 하는 것이다. 따라서, 본 연구에서 사용되는 학습 데이터는 금액, 비율 등의 금융 데이터로 기존의 딥러닝이 주로 다루는 이미지나 음성 등의 신호데이터와 달리 값의 범위가 매우 크기 때문에 데이터 정규화(Data Normalization)의 영향을 많이 받는 특성이 있다.
2. 데이터 전처리 기법
2.1 데이터 정규화 기법
본 연구에서 주로 다루는 재무제표 데이터의 경우 신호 처리에 사용되는 데이터들과는 달리 최소값과 최대값이 정해져 있지 않기 때문에 기존에 알려져 있는 머신러닝 기법들에 그대로 적용하기에는 값의 크기가 너무 크기 때문에 그 Loss 또한 클 수 밖에 없다. 따라서 학습이 전혀 안되거나 학습이 되더라도 시간이 매우 오래 걸린다. 따라서, 데이터 normalization을 적용하는 것은 반드시 필요하다.
이하에서는 통계학분야에서 널리 사용되는 세 가지의 normalization 방법에 대하여 기술한다.
(1) Feature scaling (zero to one)
데이터 normalization 기법에서 가장 흔하게 사용되고 있는 Feature scaling 방법으로, 최소값과 최대값에 따라 데이터를 0에서 1 사이로 변환한다.
Figure 112017085010343-pat00088
이 방법의 경우 모든 수를 0에서 1사이로 변환시키기 때문에 상당한 정보 손실을 발생시키는 단점이 있다.
(2) z-score normalization
이 정규화 방법에서 x의 값은 평균 및 표준 편차에 따라 정규화되며 그 수식은 다음과 같다.
Figure 112017085010343-pat00089
여기에서
Figure 112017085010343-pat00090
Figure 112017085010343-pat00091
의 평균값이고,
Figure 112017085010343-pat00092
는 표준편차이다.
이 방법은 전체 데이터의 최소값과 최대값을 알 수 없을 때 유용하게 사용된다.
(3) Median and Median Absolute Deviation
중앙값과 중앙 절대 편차 (MAD; Median and median absolute deviation)는 변량 표본(univariate sample)의 변동성에 대한 중요한 척도이다. MAD는 통계적 분산 측정 값이며, 표준편차보다 데이터 아웃라이어에 탄력적 적용이 가능하다. 그 수식은 다음과 같다.
Figure 112017085010343-pat00093
Figure 112017085010343-pat00094
2.2 각 feature에 적합한 normalization 기법의 자동 선택 방법
개별 feature에 가장 적합한 정규화 알고리즘을 선택하는 것은 많은 시간과 노력이 필요한 일로, 특히 재무제표 데이터와 같이 feature의 종류가 매우 많은 경우에는 최적의 정규화 알고리즘을 찾는 것이 대단히 어렵다. 따라서 여러 가지 정규화 기법을 동시에 적용시키고 모든 데이터를 한꺼번에 학습시키는 방법도 사용할 수 있으나, 이는 연산량과 메모리의 한계가 있으며, 노이즈 데이터가 동시에 발생되는 문제가 있다.
이러한 문제를 극복하기 위하여 자동으로 개별 feature에 가장 적합한 정규화 방식을 찾아내는 알고리즘을 제안한다. 알고리즘은 아래에 기술된 바와 같다.
알고리즘 4. 각 feature에 적합한 normalization기법 선택 알고리즘
1. Train 데이터에 대하여 다음 수식을 각각 적용한다.
Figure 112017085010343-pat00095
(Feature scaling)
Figure 112017085010343-pat00096
(z-score normalization)
Figure 112017085010343-pat00097
(Median and Median Absolute Deviation)
2. 1의 결과에 각각 다음의 함수를 적용한다. (a는 1의 결과들의 각 instance)
Figure 112017085010343-pat00098

Figure 112017085010343-pat00099

Figure 112017085010343-pat00100

3. 2의 결과를 label을 기준으로 bad class와 good class로 분류한다.
Figure 112017085010343-pat00101

Figure 112017085010343-pat00102

Figure 112017085010343-pat00103

Figure 112017085010343-pat00104

Figure 112017085010343-pat00105

Figure 112017085010343-pat00106

Figure 112017085010343-pat00107

Figure 112017085010343-pat00108

Figure 112017085010343-pat00109

4. 3에서 분류한 데이터 각각의 feature histogram 작성
두 그룹별 히스토그램 사이의 Euclidean distance 측정
Figure 112017085010343-pat00110

5. d가 큰 3의 결과를 취함
Figure 112017085010343-pat00111
위 알고리즘은 개별 feature에 각각 적용된다.
2.3 데이터 필터링 기법
학습에 이용되는 데이터의 feature 중에는 good class와 bad class를 나누는데 오히려 방해가 되는 noise feature가 존재하며, label의 경우도 현재 가지고 있는 재무제표상의 데이터로부터 도출된 것이 아닌 것들이 다수 있는데, 이러한 경우 labeling이 잘못된 것으로 간주할 수 있다. 따라서, 잘못 labeling된 데이터는 학습에 혼란을 야기한다.
이러한 문제를 해결하기 위해 다양한 데이터 필터링 알고리즘을 제안하였으며, 제안된 알고리즘들은 다음과 같다.
2.3.1 k-means Clustering을 이용한 유사 기업 그룹핑
본 발명은 제조업만을 기준으로 실험을 진행하고 있으나, 그 안에서도 세부 업종 또는 규모가 다를 경우 재무제표의 형태가 달라 유사형태의 기업이 많은 쪽으로 편향된 학습이 이루어진다. 따라서, 기업을 세부적으로 다시 나누어 각각 학습시키는 형태로 데이터 필터링을 진행한다.
상술한 k-means clustering기법을 이용하여 지정된 k개의 업체로 그룹을 나눈 뒤, 학습이 가능한 수의 집단만을 이용하여 학습 알고리즘들을 통해 최종 결과를 도출한다.
2.3.2 Histogram distance를 이용한 무의미한 feature 제거
학습 데이터가 가지고 있는 모든 feature가 good class와 bad class를 구분하는데 변별력이 없을 수 있으며, 오히려 방해가 되는 요소들이 있을 수도 있다. 이러한 데이터들은 메모리와 연산 시간을 많이 소모하며 학습에 방해되므로 제거하는 것이 오히려 효율적 학습에 도움이 된다.
따라서, 불필요한 feature들을 자동으로 제거하는 방법을 다음과 같이 제안한다.
알고리즘 5. Histogram distance를 이용한 무의미한 feature 제거 알고리즘
각 feature별로 good class와 bad class를 동일 조건으로 계산한다.
두 히스토그램 사이의 Euclidean distance 측정
Figure 112017085010343-pat00112

Euclidean distance가 threshold 이상인 feature만을 남기고, 이하인 것은 noise feature로 간주하여 제거한다.
유의미하다고 판단된 feature만을 이용하여 학습 알고리즘에 적용한다.
2.3.3 k-NN을 이용한 noise data 제거
현재 가지고 있는 instance들 중, bad class를 갖는 instance들이 재무제표 외의 정보를 통해 작성된 것일 경우, 현재 데이터를 기준으로는 정상 데이터이므로 학습에 많은 장애를 발생시킨다. 따라서, 재무제표만을 이용해 도출된 label을 가지고 있는 데이터들만을 사용해야 올바른 학습을 시킬 수 있다. 그러나, 현재 가지고 있는 정보만으로는 어떠한 것이 정상 데이터인지 알 수 없어 이를 임의로 추정하는 알고리즘이 필요하다. 따라서, 본 발명에서는 good class로 labeling되어있는 데이터(추징 금액이 하위 15%인 데이터)는 모두 정상이라는 가정하에 이 데이터들과 bad class로 labeling되어있는 데이터간의 유사도를 측정해 유사도가 높을 경우에는 추가 정보에서 labeling된 데이터로 간주하여 제거하는 방법을 제시한다.
알고리즘 6. k-NN을 이용한 noise data 제거
추징 금액 기준 하위 15%인 instance의 label을 0, 나머지를 1로 분리.
Label이 0인 instance들과 1인 instance의 distance를 구한다.
Figure 112017085010343-pat00113
,
Figure 112017085010343-pat00114
: label이 0인
Figure 112017085010343-pat00115
번째 instance,
Figure 112017085010343-pat00116
: label이 1인 instance,
Figure 112017085010343-pat00117
번째 feature값
Figure 112017085010343-pat00118

Figure 112017085010343-pat00119
2.3.4 Random Forest를 이용한 noise data 제거
기존에 알려져 있는 Random Forest 알고리즘을 이용해 도출된 Feature importance가 높은 feature들만을 추출하여 실험에 사용하는 방법을 제안한다. 이때, Random Forest 내부에서 random하게 data를 선택하는 부분이 있어 실험 결과의 variance가 높은 것을 보완하기 위하여, 동일 데이터를 이용해 여러 번 feature importance를 추출한 뒤, Top 10에 들어오는 feature들만을 병합하여 최종 feature로 사용한다.
3.5 SVM을 이용한 noise data 제거
널리 쓰이는 feature selection 방법 중, 가장 직관적이면서도 널리 쓰이는 3가지 방법론은, forward selection, backward selection 그리고 stepwise selection 기법을 들 수 있다. 먼저 forward selection은 각각의 개별 feature에 대해 특정 분류 방법론을 가지고 분류기를 구축하여, 가장 정확도가 높은 feature를 선택하고, 기존에 선택된 feature와 선택되지 않은 나머지 feature로 짝을 이룬 각각의 모델에 대해 다시 분류기를 구축하여 성능이 가장 뛰어난 feature combination을 발전시켜나가는 모델이다. 점진적으로 feature를 추가하여 얻어진 feature combination을 기반한 분류 모델의 성능이 더 이상 향상되지 않을 때까지 feature combination을 확장시켜 나간다(일반적으로는 n개의 candidate feature들이 있을 때, n 번의 반복을 수행하기도 한다). Backward selection의 경우는, 최초 모든 feature 들을 기반으로 분류 모델을 구축 그 성능을 평가하고, 개별 feature 들을 하나씩 제거한 후 다시 분류 모델을 구축, 그 중 성능을 가장 떨어뜨리는 feature를 하나씩 점진적으로 제거해 나가며 combined된 feature 집합을 생성해 나가는 방식이다. 마지막으로 Stepwise selection 방식은 forward selection과 backward selection을 혼합한 방법으로, 먼저 forward selection에 의해 첫 번째 feature를 기반으로 분류기를 구축한다. 그 다음 역시 forward 방법을 통해 두 번째 feature를 포함시키고, 이미 선택된 첫 번째 feature를 제거할 것인가를 backward selection 방법에 의해 판단한다. 이미 선택이 되지 않은 feature들에 대해서는 forward selection을 적용하여 feature를 하나씩 선택하여 모델에 적용하고, 이미 포함된 feature들에 대해서는 backward 방법에 의해 제거하는 방식이다. 본 발명에서는 backward selection을 SVM에 적용하여 주요 feature를 선택한 뒤, 학습 알고리즘에 적용한다.
2.4 의미 데이터 가공 기법
상술한 방법은 현재 가지고 있는 feature 중 의미있는 feature만을 추출하는 방식으로, feature들 간의 Correlation은 고려하지 않고, 원래 상태로 중요하다고 생각되는 feature를 추출하는 데에 목적이 있었다. 이 때, Deep Learning 알고리즘을 사용할 경우 네트워크 안에서 weighted sum을 하기 때문에 어느 정도 상관관계를 판단하는 것은 가능하나, 곱셈이나 나눗셈은 자동으로 할 수 없어 Ratio data를 자동으로 생성하지는 못하는 단점이 있다. 따라서, 사람이 생각했을 때 유효하다고 생각되는 매출액, 자산총계, 유형자산으로 전체 데이터를 각각 나누어 병합하는 방식으로 데이터를 만들어왔는데, 이러한 문제까지 알고리즘을 통해 자동으로 생성하는 것이 가능하다면, 불필요한 feature를 생성해내는 일이 발생하지 않는다. 따라서, 본 연구에서는 Ensemble Boosted Tree를 이용한 Synthetic feature 추출 기법(이하, '종래 연구'라고 함)을 응용한 방법을 제안한다.
2.4.1 EBT를 이용한 Synthetic feature 추출
종래 연구에서 Ensemble Boosted Tree를 이용하여 Synthetic feature를 추출하는 알고리즘을 제안된 바 있다. 여기에서 사용된 주요 아이디어는, 각 feature마다 다른 feature 하나를 랜덤하게 선택한 뒤, 랜덤하게 사칙연산 중 하나의 오퍼레이터를 선택해 feature dimension을 늘려 다시 학습 시킨 뒤, feature importance가 threshold 이하인 것들을 제거하는 것을 K번 반복해 feature간의 관계를 찾아가는 방식이다.
그러나, 본 연구에서 다루는 데이터의 특성상 매출액, 자산총계, 유형자산과의 비율은 모든 데이터에 적용해 보아야 하기 때문에, 종래 연구에서 제안한 랜덤의 요소는 제거한 방법을 사용하였다. 가능한 모든 feature 조합과 모든 사칙연산을 적용하여 synthetic feature를 추출하였다. 자세한 사항은 다음과 같다.
알고리즘 7. Synthetic feature 추출 알고리즘
Input:
Figure 112017085010343-pat00120
: training set,
Figure 112017085010343-pat00121
: number of synthetic features
Figure 112017085010343-pat00122
: number of base learners
Figure 112017085010343-pat00123
: features acceptance threshold
Output:
Figure 112017085010343-pat00124
:set of base learners
for
Figure 112017085010343-pat00125
do
Train
Figure 112017085010343-pat00126
using
Figure 112017085010343-pat00127
;
Remove features from
Figure 112017085010343-pat00128
for which
Figure 112017085010343-pat00129
;
Estimate
Figure 112017085010343-pat00130
from model
Figure 112017085010343-pat00131
;
for
Figure 112017085010343-pat00132
do
for
Figure 112017085010343-pat00133
do
Sample features
Figure 112017085010343-pat00134
and
Figure 112017085010343-pat00135
;
Generate new features
Figure 112017085010343-pat00136
; operation
Figure 112017085010343-pat00137
from {+, -, *, /}
Extend
Figure 112017085010343-pat00138
with new values of
Figure 112017085010343-pat00139

end
end
end
return
Figure 112017085010343-pat00140
3. 딥러닝 모델
이하에서는 재무제표 데이터에 적합한 딥러닝 모델로 다음의 세 가지를 제안한다.
3.1 Normal Ensemble Model
Ensemble 모델을 사용하면, 그 성능이 일정부분 상승함은 이미 이전 발명들에서 많이 증명이 되어왔다. 따라서, Deep Learning 모델을 여러 개 동시에 학습하여 투표하는 형식의 Ensemble 모델을 제안한다. 구조는 그림 20과 같다. 도 20은 Normal Ensemble Model의 일 예를 도시한 도면이다.
3.2 Regression Model
Normal Ensemble Model의 경우 결과를 good class와 bad class로 예측하였는데, 이를 좀 더 세분화하여 0~1사이의 값으로 어느 정도 bad인지를 추정하는 Regression Mode을 제안한다. 그 모델은 도 21과 같다. 도 21은 Regression Model을 도시한 도면이다.
3.3 Function Concatenate Model
이전 모델들은 normalization된 데이터에 대해서 학습이 잘 수행될 수 있도록 sigmoid, tanh 등의 함수를 임의로 선택하여 연산한 후에 딥러닝 모델에 입력하였었다. 그러나, 각 학습 효과를 극대화시키는 function이 feature마다 다르기 때문에, 모든 function을 적용시킨 뒤 딥러닝 모델이 학습을 하면서 스스로 선택할 수 있도록 하는 Function Concatenate Model을 제안하였다.
Function Concatenate Model은 재무 데이터의 여러 feature들의 아웃라이어를 자동으로 보정하여 학습 효과를 높이는 딥러닝 모델이다.
모델의 알고리즘은 다음과 같다.
Figure 112017085010343-pat00141
Function Concatenate Model에서는 특정 feature에 weight를 스스로 높일 수도 있지만, 특히 중요한 feature의 경우 모든 function들을 수용하여 그 효과를 극대화시키는 효과도 있다. 전체 모델은 도 22와 같으며, 이 모델 또한 앙상블 기법을 사용하여 성능 향상을 도모하였다. 도 22는 Function Concatenate Model의 일 예를 도시한 도면이다.
3.4 LSTM Model
재무제표 데이터는 매 해마다 입력되는 정보와 label을 가지고 있는 시계열 데이터이므로 도 23와 같은 LSTM (Long Short-term Memory) 모델을 제안한다. LSTM은 이전의 결과들을 일시적으로 기억하여 다음 데이터의 예측에 도움을 주는 네트워크이다.
4. 결론
본 연구에서는, 먼저, 다양한 data normalization 방법을 적용하여 전통적인 머신러닝 기법들에 본 데이터를 적용해보는 실험을 진행하였고, 이 결과를 바탕으로 하여 학습 데이터의 feature별 최적의 normalization 방법을 자동으로 선택하는 알고리즘을 제안하였다.
또한 불필요한 정보/노이즈 feature를 제거하는 알고리즘을 제안하였다.
현재 가지고 있는 재무제표 데이터 이외의 다른 항목에 의해 추징 금액이 부여된 경우 해당 데이터는 '정상' 이라는 레이블이 부여된 뒤 학습이 되어야 한다. 그러나 현재 가지고 있는 데이터만을 이용하여 다른 정보에 의해 레이블이 부여된 업체들을 일일이 추론하는 것이 어려워 현재의 데이터만을 이용해 레이블이 잘못 정의된 업체들을 자동으로 탐지 및 제거하는 기술을 제안하였다.
또한, 데이터간의 상관관계를 비례와 반비례 관계에 국한된 것이 아닌, 좀 더 다양한 형태의 관계 정보를 가지고 예측모델을 학습 시키기 위한 Synthetic data 가공 알고리즘을 제안하였다.
마지막으로는 이러한 데이터 전처리를 딥러닝 모델에서 자동으로 처리할 수 있도록 모델링한 딥러닝 네트워크를 제안하였다.
이하에서는 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본 발명의 일 실시예에 따른 학습 데이터 전처리 시스템은 머신(machine)을 학습하는데 이용되는 복수의 학습 데이터에 대한 전처리(pre-processing)를 수행할 수 있다.
본 명세서에서는 전처리가 되기 전의 학습 데이터를 기초 학습 데이터라고 하고, 본 발명의 일 실시예에 따른 학습데이터 전처리 시스템에 의해 전처리가 완료된 학습 데이터를 전처리된 학습 데이터라고 정의한다.
각각의 기초 학습 데이터는 M개(M은 2 이상의 정수)의 특징(feature)에 각각 상응하는 M개의 특징값 및 레이블로 구성될 수 있다.
도 24는 M개의 특징값 및 레이블로 구성되는 N개(N은 2 이상의 정수)의 학습 데이터의 일 예를 도시한 도면이다.
도 24에 도시된 바와 같이, 각각의 기초 학습 데이터 D1 내지 DN은 모두 M개의 특징값 및 레이블을 포함할 수 있다. 예를 들어, 기초 학습 데이터 D1은 M개의 특징값 V11, V12, V13, …, V1M 및 레이블 L1을 포함할 수 있으며 특징값 V11, V12, V13, …, V1M은 각각 차례대로 특징 F1, F2, F3 내지 FM에 상응할 수 있다. 마찬가지로 기초 학습 데이터 Dn은 M개의 특징값 Vn1, Vn2, Vn3, …, VNM 및 레이블 Ln을 포함할 수 있으며, 특징값 Vn1, Vn2, Vn3, …, VnM은 각각 차례대로 특징 F1, F2, F3 내지 FM에 상응할 수 있다.
한편 특징 그룹 Gm은 해당 특징 Fm에 상응하는 학습 데이터 내의 모든 특징값의 집합인 {V1m, V2m, V3m, …, VNm}으로 정의할 수 있다. 도 25의 예에서 특징 그룹 G3는 {V13, V23, V33, …,Vn3, …, VN3}이다.
본 발명의 일 실시예에 따른 학습 데이터 전처리 시스템은 기초 학습 데이터의 전처리 과정 중 하나로서, 상기 기초 학습 데이터의 개별 특징 별로 해당 특징에 가장 적합한 정규화 기법을 자동으로 선택하는 방법을 수행할 수 있다.
도 25는 본 발명의 일 실시예에 따른 학습 데이터 전처리 방법을 개략적으로 도시한 흐름도이다.
도 25에 도시된 바와 같이, 학습 데이터 전처리 시스템은 N개의 기초학습 데이터를 획득할 수 있다(S100). 이때 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성될 수 있다.
이후 상기 학습 데이터 전처리 시스템은 1<=m<=M인 각각의 정수 m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택할 수 있다(S200, S110).
S200 단계에서 상기 학습 데이터 전처리 시스템은 미리 정의된 K개의 정규화 기법(제1정규화 기법 내지 상기 제K정규화 기법) 중 어느 하나를 제m특징에 상응하는 정규화 기법으로 선택할 수 있다. 이때, 각각의 정규화 기법은 수학적 함수에 의해 표현될 수 있는 수치 변환 방법일 수 있다.
일 실시예에서, 상기 제1정규화 기법 내지 상기 제K정규화 기법 각각은, 복수의 변환함수 중 어느 하나와 복수의 정규화 함수 중 어느 하나를 합성한 합성 함수에 의해 표현될 수 있다. 즉, 각각의 정규화 기법은 다음과 같은 함수에 의해 표현될 수 있다.
g·f(x) = g(f(x))
(여기서, x는 특징값, g는 변환함수, f는 정규화 함수)
한편, 상기 복수의 정규화 함수는 하기 [수식 1]에 따른 fs(x), [수식 2]에 따른 z(x), [수식 3]에 따른 mmad(x)를 포함할 수 있다.
[수식 1] fs(x) =
Figure 112017085010343-pat00142
[수식 2] z(x) =
Figure 112017085010343-pat00143
[수식 3] mmad(x) =
Figure 112017085010343-pat00144
(MAD = median({|xn - median(X)|}), 1<=n<=N)
이때, [수식 1] 내지 [수식 3]에서, X는 특징값 x가 속하는 특징에 상응하는 학습 데이터 내의 모든 특징값의 집합일 수 있다. 만약 특징값 x가 특징 Fm에 상응하는 경우 X는 특징 그룹 Gm일 수 있다.
[수식 1]은 상술한 feature scaling을 나타내는 수식이며, [수식 2]는 상술한 z-score normalization을 나타내는 수식이며, [수식 3]은 상술한 Median and Median Absolute Deviation을 나타내는 수식이다.
한편, 상기 복수의 변환 함수는 S-shaped curve 성질을 가지는 함수 또는 구간(0,∞)에서 함수값은 증가하고 미분값은 감소하는 성질을 가지는 함수일 수 있다. 예를 들어, 상기 복수의 변환 함수는 하기 [수식 4]에 의해 표현되는 sigmoid 함수, 하기 [수식 5]에 의해 표현되는 hyperbolic tangent 함수, 하기 [수식 6]에 의해 표현되는 적어도 하나의 tf(y)를 포함할 수 있다.
[수식 4] 1/(1+e^-y)
[수식 5] tanh(y)
[수식 6] tf(y) = log(αh×y+βh) (여기서, h는 1<=h<=H인 각각의 정수(H는 1이상의 정수)이며 αh 및 βh 는 미리 정의된 상수임)
한편, 특정 실시예에서, [수식 6]의 tf(y)의 αh 는10, 100, 1000, 10000 등일 수 있으며, βh 는 1일 수 있다. 즉, 본 실시예에서, 상기 복수의 변환 함수는 log(10×y+1), log(100×y+1), log(1000×y+1), log(10000×y+1) 등을 포함할 수 있다.
예를 들어, 미리 정의된 정규화 기법의 개수 K는 18이며, 각각의 정규화 기법은 다음 3개의 정규화 함수 f1, f2, f3 및 6개의 변환 함수 g1 내지 g6의 조합으로 표현될 수 있다.
f1(x) =
Figure 112017085010343-pat00145
f2(x) =
Figure 112017085010343-pat00146
f3(x) =
Figure 112017085010343-pat00147
g1`(y) = 1/(1+e^-y)
g2(y) = tanh(y)
g3(y) = log(10×y+1)
g4(y) = log(100×y+1)
g5(y) = log(1000×y+1)
g6(y) = log(10000×y+1)
즉 미리 정의된 제1정규화 기법 내지 제18정규화 기법은 각각 차례로 다음과 같이 표현될 수 있다.
제1정규화 기법: g1·f1(x), 제2정규화 기법: g1·f2(x), 제3정규화 기법: g1·f3(x), 제4정규화 기법: g2·f1(x), 제5정규화 기법: g2·f2(x), 제6정규화 기법: g2·f3(x), 제7정규화 기법: g3·f1(x), 제8정규화 기법: g3·f2(x), 제9정규화 기법: g3·f3(x), 제10정규화 기법: g4·f1(x), 제11정규화 기법: g4·f2(x), 제12정규화 기법: g4·f3(x), 제13정규화 기법: g5·f1(x), 제14정규화 기법: g5·f2(x), 제15정규화 기법: g5·f3(x), 제16정규화 기법: g6·f1(x), 제17정규화 기법: g6·f2(x), 제18정규화 기법: g6·f3(x)
한편, 각 특징에 상응하는 정규화 기법을 선택한 후 상기 학습 데이터 전처리 시스템은 N개의 기초학습 데이터 각각에 상응하는 N개의 전처리된 학습 데이터를 획득할 수 있다(S300).
도 26은 도 25의 S200단계, 즉 제m특징에 상응하는 정규화 기법을 선택하는 단계를 보다 구체적으로 도시한 흐름도이다.
도 26을 참조하면, 상기 학습 데이터 전처리 시스템은 1<=k<=K인 각각의 정수 k에 대하여, S220 단계 및 S250 단계를 수행할 수 있다(S210).
S220 단계에서, 상기 학습 데이터 전처리 시스템은 1<=n<=N인 각각의 정수 n에 대하여, S230 단계 및 S240 단계를 수행할 수 있다(S220).
S230 단계에서, 상기 학습 데이터 전처리 시스템은 기초 학습 데이터 Dn의 제m특징값 Vnm(여기서 제m특징값은 제m특징에 상응하는 특징값임)에 제k정규화 기법을 적용하여 제k정규화값 Rnmk 산출할 수 있다(S230).
S240 단계에서, 상기 학습 데이터 전처리 시스템은 기초 학습 데이터 Dn의 레이블 Ln에 기초하여, 제k정규화값 Rnmk 을 제1클래스 C1 또는 제2클래스 C2로 분류할 수 있다.
예를 들어, 만약 기초 학습 데이터의 레이블이 0(또는 Bad) 또는 1(또는 Good) 중 어느 하나라고 하면, 기초 학습 데이터 Dn의 레이블 Ln이 0(또는 Bad)인 경우 제k정규화값 Rnmk 은 제1클래스 C1로 분류되고, 기초 학습 데이터 Dn의 레이블 Ln이 1(또는 Good)인 경우 제k정규화값 Rnmk 은 제2클래스 C2로 분류될 수 있다. 또는 만약 기초 학습 데이터의 레이블이 일정 범위의 수치라면, 기초 학습 데이터 Dn의 레이블 Ln이 미리 지정된 한계수치보다 작은 경우 제k정규화값 Rnmk 은 제1클래스 C1로 분류되고, 기초 학습 데이터 Dn의 레이블 Ln이 상기 한계수치보다 큰 경우 제k정규화값 Rnmk 은 제2클래스 C2로 분류될 수 있다.
한편 S250 단계에서, 상기 학습 데이터 전처리 시스템은 분류한 제1클래스 C1및 제2클래스 C2의 히스토그램 간 거리를 측정하여 제k정규화 기법에 대응되는 제k거리값을 생성할 수 있다(S250).
히스토그램은 도수 분포를 그래프로 나타낸 것이며, 도수 분포는 측정값을 몇 개의 계급으로 나누고, 각 계급에 속한 도수를 조사하여 나타낸 것을 의미한다.
히스토그램간 거리를 측정하는 방법은 다양할 수 있다. 일 실시예에서, 제k거리값은, 분류된 제1클래스 C1의 히스토그램 및 제2클래스 C2의 히스토그램 간의 유클리드 거리(Euclidean distance)일 수 있다.
두 히스토그램 p, q간의 유클리드 거리 d(p,q)는 다음의 수식에 의해 산출될 수 있다.
Figure 112017085010343-pat00148
여기서 n은 히스토그램의 계급의 개수이며, pi는 히스토그램 p의 i번째 계급의 도수, qi는 히스토그램 q의 i번째 계급의 도수를 나타낸다.
한편, S210 단계를 거쳐, 제1정규화 기법에 상응하는 제1거리값 내지 제K정규화 기법에 상응하는 제K거리값이 모두 산출된 후, 상기 학습 데이터 전처리 시스템은 제1거리값 내지 제K거리값을 비교하여, 제1정규화 기법 내지 제K정규화 기법 중 어느 하나인 제w정규화 기법을 특징m에 상응하는 정규화 기법으로 선택할 수 있다(S260). 이때, 제w거리값은 제1거리값 내지 제K거리값 중 최대값이다. 즉, 상기 학습 데이터 전처리 시스템은 제1거리값 내지 제K거리값 중 가장 큰 값에 상응하는 정규화 기법을 선택할 수 있다.
도 27은 도 25의 S300단계, 즉 N개의 전처리된 학습 데이터 획득하는 단계를 보다 구체적으로 도시한 흐름도이다.
도 27을 참조하면, 상기 학습 데이터 전처리 시스템은 1<=n<=N인 각각의 정수 n에 대하여, 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성할 수 있다(S310, S320).
S320 단계에서, 상기 학습 데이터 전처리 시스템은 1<=m<=M인 각각의 정수 m에 대하여, 제n번째 기초 학습 데이터 Dn의 제m특징값 Vnm에 제m특징에 상응하는 정규화 기법을 적용할 수 있다(S320, S330).
위와 같은 방법에 의해 생성되는 전처리된 학습 데이터는 머신을 학습하는데 이용될 수 있다.
한편, 본 발명의 일 실시예에 따른 학습 데이터 전처리 시스템은 컴퓨터 프로그램이 설치된 컴퓨터 등의 전자 장치일 수 있다. 본 발명의 일 실시예에 따른 시스템은 전자회로로 구성되어 자동적으로 계산이나 데이터를 처리하거나, 입력 자료를 받아들여 처리하고 그 정보를 저장하고 처리하여 결과를 출력하는 데이터 처리 장치일 수 있다. 예를 들어 상기 시스템은 범용 컴퓨터, 개인용 컴퓨터, 서버, 모바일, 이동 단말기, 원격 스테이션, 원격 단말기, 액세스 단말기, 단말기, 통신 장치, 통신 단말, 사용자 에이전트, 사용자 장치, 또는 사용자 장비(UE), 터미널, 노트북, 모바일 단말, 스마트폰, 태블릿 PC 등으로 불릴 수 있는 데이터 처리 장치일 수 있다.
도 28은 본 발명의 일 실시예에 따른 학습 데이터 전처리 시스템의 개략적인 구조를 도시한 블록도이다.
도 28을 참조하면, 상기 학습 데이터 전처리 시스템(100)은 획득모듈(110), 제어모듈(120), 전처리 모듈(130)을 포함할 수 있다. 본 발명의 실시예에 따라서는, 상술한 구성요소들 중 일부 구성요소는 반드시 본 발명의 구현에 필수적으로 필요한 구성요소에 해당하지 않을 수도 있으며, 또한 실시예에 따라 학습 데이터 전처리 시스템(100)은 이보다 더 많은 구성요소를 포함할 수도 있음은 물론이다.
상기 학습 데이터 전처리 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 학습 데이터 전처리 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 학습 데이터 전처리 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다. 상기 학습 데이터 전처리 시스템(100)을 구성하는 모듈은 서로 다른 물리적 장치에 위치할 수도 있고, 동일한 물리적 장치에 위치할 수도 있다. 또한, 구현 예에 따라서는 상기 학습 데이터 전처리 시스템(100)을 구성하는 각각의 모듈을 구성하는 소프트웨어 및/또는 하드웨어 역시 서로 다른 물리적 장치에 위치하고, 서로 다른 물리적 장치에 위치한 구성들이 서로 유기적으로 결합되어 각각의 모듈들이 수행하는 기능을 실현할 수도 있다.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 통상의 기술자에게는 용이하게 추론될 수 있다.
상기 제어모듈(120)은 상기 학습 데이터 전처리 시스템(100)에 포함된 다른 구성(예를 들면, 획득모듈(110), 전처리 모듈(130) 등)과 연결되어, 이들의 기능 및/또는 리소스를 제어할 수 있다. 또한 상기 제어모듈(120)은 상기 학습 데이터 전처리 시스템(100)이 상술한 학습 데이터 전처리 방법을 수행하도록 제어할 수 있다.
상기 획득모듈(110)은 머신을 학습하는데 이용되는 N개의 기초 학습 데이터(N은 2이상의 정수)를 획득할 수 있다. 여기서 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성될 수 있다.
예를 들어, 상기 획득모듈(110)은 N개의 기초 학습 데이터를 저장하고 있는 파일을 읽을 수 있다. 또는 상기 획득모듈(110)은 소정의 입력장치를 통하여 N개의 기초 학습 데이터를 입력받을 수 있다. 또는 상기 획득모듈(110)은 네트워크를 통하여 N개의 기초 학습 데이터를 수신할 수 있다.
상기 제어모듈(120)은 1<=m<=M인 각각의 정수m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택할 수 있다.
상기 제어모듈(120)은, 상기 제m특징에 상응하는 정규화 기법을 선택하기 위하여, 상기 N개의 기초 학습 데이터 각각에 대하여, 상기 기초 학습 데이터의 제m특징값(여기서 제m특징값은 제m특징에 상응하는 특징값임)에 미리 정의된 제1정규화 기법 내지 제K정규화 기법을 각각 적용하여 상기 기초 학습 데이터의 제m특징값에 상응하는 K개의 정규화값을 생성할 수 있다.
또한 상기 제어모듈(120)은 1<=k<=K인 각각의 정수 k에 대하여, 상기 N개의 기초 학습 데이터 각각의 제m특징에 상응하는 제k정규화값을 그에 상응하는 기초학습 데이터의 레이블에 기초하여 제1클래스 또는 제2클래스로 분류하고, 분류한 제1클래스 및 제2클래스의 히스토그램 간 거리를 측정하여 제k거리값을 생성하고, 상기 제1정규화 기법 내지 상기 제K정규화 기법 중 어느 하나인 제w정규화 기법을 상기 제m특징에 상응하는 정규화 기법으로 선택할 수 있다. 이때, w는 1<=w<=K인 정수이며, 제w거리값이 제1거리값 내지 제K거리값 중 최대값이다.
상기 전처리 모듈(130)은 1<=n<=N인 각각의 정수 n에 대하여, 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성할 수 있다.
상기 전처리모듈(130)은, 상기 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하기 위하여, 1<=m<=M인 각각의 정수 m에 대하여, 상기 제n번째 기초 학습 데이터의 제m특징값에 제m특징에 상응하는 정규화 기법을 적용할 수 있다.
한편, 구현 예에 따라서, 상기 학습 데이터 전처리 시스템(100)은 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 CPU, GPU, MCU, 마이크로프로세서 등과 같은 프로세서를 포함할 수 있으며, 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리는 휘발성 메모리 및 비휘발성 메모리를 포함할 수 있다. 상기 메모리는 예를 들어, 플래시 메모리, ROM, RAM, EEROM, EPROM, EEPROM, 하드 디스크, 레지스터를 포함할 수 있다. 또는 상기 메모리는 파일 시스템, 데이터베이스, 임베디드 데이터베이스를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다.
한편, 본 발명의 실시예에 방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (10)

  1. 학습 데이터 전처리 시스템이, 머신(machine)을 학습하는데 이용되는 N개의 기초 학습 데이터(N은 2이상의 정수)를 획득하는 단계-여기서 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성됨; 및
    상기 학습 데이터 전처리 시스템이, 1<=m<=M인 각각의 정수 m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택하는 단계를 포함하되,
    상기 제m특징에 상응하는 정규화 기법을 선택하는 단계는,
    1<=k<=K인 각각의 정수 k에 대하여,
    상기 N개의 기초 학습 데이터 각각의 제m특징값(여기서 제m특징값은 제m특징에 상응하는 특징값임)에 미리 정의된 제k정규화 기법을 적용하여 상기 기초 학습 데이터의 제m특징값에 상응하는 제k정규화값을 생성하는 단계;
    1<=k<=K인 각각의 정수 k에 대하여,
    상기 N개의 기초 학습 데이터 각각의 제m특징에 상응하는 제k정규화값을 그에 상응하는 기초학습 데이터의 레이블에 기초하여 제1클래스 또는 제2클래스로 분류하고, 분류한 제1클래스 및 제2클래스의 히스토그램 간 거리를 측정하여 제k정규화 기법에 대응되는 제k거리값을 생성하는 단계; 및
    제1정규화 기법 내지 제K정규화 기법 중 어느 하나인 제w정규화 기법을 상기 제m특징에 상응하는 정규화 기법으로 선택하는 단계-여기서, w는 1<=w<=K인 정수이며, 제w거리값이 제1거리값 내지 제K거리값 중 최대값임-를 포함하는 학습 데이터 전처리 방법.
  2. 제1항에 있어서,
    상기 학습 데이터 전처리 시스템이, 1<=n<=N인 각각의 정수 n에 대하여, 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하는 단계를 더 포함하되,
    상기 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하는 단계는,
    1<=m<=M인 각각의 정수 m에 대하여, 상기 제n번째 기초 학습 데이터의 제m특징값에 제m특징에 상응하는 정규화 기법을 적용하는 단계를 포함하는 학습 데이터 전처리 방법.
  3. 제1항에 있어서,
    상기 제1정규화 기법 내지 상기 제K정규화 기법 각각은, 복수의 변환함수 중 어느 하나와 복수의 정규화 함수 중 어느 하나를 합성한 합성 함수에 의해 표현되며, 상기 복수의 변환 함수는 S-shaped curve 성질을 가지는 함수 또는 구간(0,∞)에서 함수값은 증가하고 미분값은 감소하는 성질을 가지는 함수인 것을 특징으로 하는 학습 데이터 전처리 방법.
  4. 삭제
  5. 제3항에 있어서,
    상기 복수의 변환 함수는 sigmoid 함수, hyperbolic tangent 함수, 하기 [수식]에 의해 표현되는 적어도 하나의 tf(y)를 포함하는 학습 데이터 전처리 방법.
    [수식] tf(y) = log(αh×y+βh) (여기서, h는 1<=h<=H인 각각의 정수(H는 1이상의 정수)이며 αh 및 βh 는 미리 정의된 상수임)
  6. 제1항에 있어서,
    제k거리값은, 분류된 제1클래스 및 제2클래스의 히스토그램 간의 유클리드 거리(Euclidean distance)인 것을 특징으로 하는 학습 데이터 전처리 방법.
  7. 데이터 처리 장치에 설치되어, 제1항 내지 제3항 및 제5항 내지 제6항 중 어느 한 항에 기재된 방법을 수행하기 위한 컴퓨터 프로그램.
  8. 학습 데이터 전처리 시스템으로서,
    프로세서; 및
    컴퓨터 프로그램을 저장한 메모리를 포함하되,
    상기 컴퓨터 프로그램은 상기 프로세서에 의해 실행되는 경우, 상기 학습 데이터 전처리 시스템이 제1항 내지 제3항 및 제5항 내지 제6항 중 어느 한 항에 기재된 방법을 수행하도록 하는 학습 데이터 전처리 시스템.
  9. 머신(machine)을 학습하는데 이용되는 N개의 기초 학습 데이터(N은 2이상의 정수)를 획득하는 획득모듈-여기서 상기 기초 학습 데이터 각각은, 제1특징 내지 제M특징(M은 2이상의 정수) 각각에 상응하는 M개의 특징값 및 레이블로 구성됨; 및
    1<=m<=M인 각각의 정수m에 대하여, 상기 제m특징에 상응하는 정규화 기법을 선택하는 제어모듈을 포함하되,
    상기 제어모듈은, 상기 제m특징에 상응하는 정규화 기법을 선택하기 위하여,
    1<=k<=K인 각각의 정수 k에 대하여,
    상기 N개의 기초 학습 데이터 각각의 제m특징값(여기서 제m특징값은 제m특징에 상응하는 특징값임)에 미리 정의된 제k정규화 기법을 적용하여 상기 기초 학습 데이터의 제m특징값에 상응하는 제k정규화값을 생성하고,
    1<=k<=K인 각각의 정수 k에 대하여,
    상기 N개의 기초 학습 데이터 각각의 제m특징에 상응하는 제k정규화값을 그에 상응하는 기초학습 데이터의 레이블에 기초하여 제1클래스 또는 제2클래스로 분류하고, 분류한 제1클래스 및 제2클래스의 히스토그램 간 거리를 측정하여 제k정규화 기법에 대응되는 제k거리값을 생성하고,
    제1정규화 기법 내지 제K정규화 기법 중 어느 하나인 제w정규화 기법을 상기 제m특징에 상응하는 정규화 기법으로 선택하는-여기서, w는 1<=w<=K인 정수이며, 제w거리값이 제1거리값 내지 제K거리값 중 최대값임-학습 데이터 전처리 시스템.
  10. 제9항에 있어서,
    1<=n<=N인 각각의 정수 n에 대하여, 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하는 전처리모듈을 더 포함하되,
    상기 전처리모듈은, 상기 제n번째 기초 학습 데이터 각각에 상응하는 전처리된 학습데이터를 생성하기 위하여,
    1<=m<=M인 각각의 정수 m에 대하여, 상기 제n번째 기초 학습 데이터의 제m특징값에 제m특징에 상응하는 정규화 기법을 적용하는 학습 데이터 전처리 시스템.
KR1020170111693A 2017-04-26 2017-09-01 학습 데이터 전처리 방법 및 시스템 KR102077804B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170053513 2017-04-26
KR20170053513 2017-04-26

Publications (2)

Publication Number Publication Date
KR20180120056A KR20180120056A (ko) 2018-11-05
KR102077804B1 true KR102077804B1 (ko) 2020-04-07

Family

ID=64329309

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020170111693A KR102077804B1 (ko) 2017-04-26 2017-09-01 학습 데이터 전처리 방법 및 시스템
KR1020170115648A KR102005628B1 (ko) 2017-04-26 2017-09-11 학습 데이터 전처리 방법 및 시스템
KR1020170138261A KR102022776B1 (ko) 2017-04-26 2017-10-24 인공 신경망 모델 학습 방법 및 딥 러닝 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020170115648A KR102005628B1 (ko) 2017-04-26 2017-09-11 학습 데이터 전처리 방법 및 시스템
KR1020170138261A KR102022776B1 (ko) 2017-04-26 2017-10-24 인공 신경망 모델 학습 방법 및 딥 러닝 시스템

Country Status (1)

Country Link
KR (3) KR102077804B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102271449B1 (ko) * 2018-11-17 2021-07-01 한국과학기술정보연구원 인공지능 모델 플랫폼 및 인공지능 모델 플랫폼 운영 방법
KR102175187B1 (ko) 2018-12-26 2020-11-06 한국건설기술연구원 복합재난 취약 건축물의 보강전략을 위한 구조성능 데이터베이스 구축 시스템 및 그 방법
KR102471514B1 (ko) * 2019-01-25 2022-11-28 주식회사 딥바이오 뉴런-레벨 가소성 제어를 통해 파국적인 망각을 극복하기 위한 방법 및 이를 수행하는 컴퓨팅 시스템
KR20200094577A (ko) * 2019-01-30 2020-08-07 주식회사 모비스 인공신경망 시뮬레이터와 강화학습 제어기를 사용한 실시간 가속기 제어 시스템
KR102005952B1 (ko) * 2019-02-13 2019-10-01 이승봉 기계학습 모델링에서 잡음 데이터 제거를 위한 데이터 정제 장치 및 방법
KR102085010B1 (ko) * 2019-02-26 2020-03-05 광주과학기술원 무선전력전송 시스템용 형상 설계 시스템 및 방법
KR102096737B1 (ko) * 2019-03-28 2020-04-02 한국과학기술원 저밀도 패리티 검사 부호를 활용한 고장 방지 능력을 갖춘 분산 기계 학습 방법 및 그 장치
KR102245717B1 (ko) * 2019-05-14 2021-04-28 카페24 주식회사 인공지능 모델을 이용한 상품 판매량 예측 방법, 장치 및 시스템
KR102461731B1 (ko) 2019-07-12 2022-11-01 한국전자통신연구원 변수 간 상관관계를 바탕으로 기계학습을 수행하는 장치 및 방법
US11562236B2 (en) * 2019-08-20 2023-01-24 Lg Electronics Inc. Automatically labeling capability for training and validation data for machine learning
US11720818B2 (en) 2019-09-11 2023-08-08 Samsung Display Co., Ltd. System and method to improve accuracy of regression models trained with imbalanced data
KR102303111B1 (ko) 2019-11-19 2021-09-17 충북대학교 산학협력단 기계학습 기반 소프트웨어의 학습데이터 품질 평가 방법
KR102339715B1 (ko) * 2020-01-17 2021-12-14 한림대학교 산학협력단 산업용 사물인터넷(IIoT) 환경에서의 고장 예측 모델 획득을 위한 전처리 방법, 피처의 중요도 측정 방법 및 피처 선택 방법, 장치 및 프로그램
KR102395564B1 (ko) * 2020-02-13 2022-05-10 주식회사 루닛 데이터의 전향적 전처리 장치 및 그 방법
KR102352036B1 (ko) * 2020-04-28 2022-01-18 이진행 확률적 경사 하강법을 이용한 변수 선택 장치 및 방법
KR102180077B1 (ko) * 2020-04-29 2020-11-17 주식회사 일루베이션 3d 영상을 기반으로한 가축 무게 추정 애플리케이션을 활용한 가축 무게 추정 시스템과, 이를 이용한 가축 무게 추정 방법
KR102308456B1 (ko) * 2020-09-25 2021-10-05 서울대학교산학협력단 라이다 및 카메라 수집정보 기반 수종탐지 시스템 및 이를 이용한 수종탐지방법, 수종탐지방법을 수행하는 프로그램이 수록된 기록매체
KR102612004B1 (ko) * 2020-11-10 2023-12-08 다겸 주식회사 마케팅 정보 제공 방법 및 마케팅 정보 제공 장치
KR102321735B1 (ko) * 2020-11-27 2021-11-04 부산대학교 산학협력단 다차원의 부분집합 연관 분석에 기반한 인공지능 학습 데이터셋 공정성을 보장하는 장치 및 이를 이용한 인공지능 학습 데이터셋 공정성을 보장하는 방법
KR20220080509A (ko) 2020-12-07 2022-06-14 (주)Yh데이타베이스 뉴럴 네트워크 기법을 이용한 학습레이어의 동적 관리가 가능한 웹 콘솔 시스템
KR102472848B1 (ko) * 2021-01-07 2022-12-01 (주)한국아이티에스 학습 알고리즘을 이용한 비침습적 당화혈색소 측정 방법 및 장치
US20220276143A1 (en) * 2021-02-26 2022-09-01 Saudi Arabian Oil Company Method and system for automatic evaluation of cutting element during wear test
KR102460859B1 (ko) * 2022-04-01 2022-11-01 신용보증기금 자동화 기반의 지식재산가치 평가시스템
KR102496685B1 (ko) * 2022-06-07 2023-02-08 주식회사 판옵티콘 뉴럴 네트워크를 이용하여 아기의 주변 환경을 조절하는 방법 및 장치
KR20240050735A (ko) 2022-10-12 2024-04-19 고려대학교 산학협력단 대조적 학습을 이용한 어휘 의미망 관계 이해 및 단어 중의성 해소 방법 및 장치
CN117610891B (zh) * 2024-01-22 2024-04-02 湖南小翅科技有限公司 一种基于大数据的灵活用工接单与风险控制系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150626A (ja) 2010-01-25 2011-08-04 Ihi Corp 画像分類方法、装置、及びプログラム
JP2015099616A (ja) 2015-02-26 2015-05-28 カシオ計算機株式会社 多クラス識別器生成装置、データ識別装置、多クラス識別器生成方法、データ識別方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101749925B1 (ko) * 2012-12-05 2017-06-23 한화테크윈 주식회사 영상 처리 방법 및 장치
KR20160096460A (ko) * 2015-02-05 2016-08-16 삼성전자주식회사 복수의 분류기를 포함하는 딥 러닝 기반 인식 시스템 및 그 제어 방법
KR102449837B1 (ko) * 2015-02-23 2022-09-30 삼성전자주식회사 신경망 학습 방법 및 장치, 및 인식 방법 및 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150626A (ja) 2010-01-25 2011-08-04 Ihi Corp 画像分類方法、装置、及びプログラム
JP2015099616A (ja) 2015-02-26 2015-05-28 カシオ計算機株式会社 多クラス識別器生成装置、データ識別装置、多クラス識別器生成方法、データ識別方法、及びプログラム

Also Published As

Publication number Publication date
KR102005628B1 (ko) 2019-07-30
KR102022776B1 (ko) 2019-09-19
KR20180120061A (ko) 2018-11-05
KR20180120056A (ko) 2018-11-05
KR20180120057A (ko) 2018-11-05

Similar Documents

Publication Publication Date Title
KR102077804B1 (ko) 학습 데이터 전처리 방법 및 시스템
Yang et al. On hyperparameter optimization of machine learning algorithms: Theory and practice
Kumar et al. Performance evaluation of classifiers for the recognition of offline handwritten Gurmukhi characters and numerals: a study
Muneer et al. Genetic algorithm based intelligent system for estate value estimation
Firouzi et al. Machine learning for IoT
US20200219008A1 (en) Discrete learning structure
Shanthamallu et al. Introduction to machine learning
Ramasubramanian et al. Machine learning theory and practices
Llerena et al. On using sum-product networks for multi-label classification
Ertel et al. Machine learning and data mining
Guyon A practical guide to model selection
Yu et al. Introduction to Machine Learning
Pandey et al. Overview of machine learning and deep learning concepts
CN115081501A (zh) 用户分类方法与装置、级联的用户分类模型及设备
Talukdar et al. Supervised Learning
Behl et al. Machine learning classifiers
Isakova Application of machine learning algorithms for classification and regression problems for mobile game monetization
Hodeghatta et al. Supervised Machine Learning—Classification
Arumugam et al. Performance evaluation of machine learning and deep learning techniques: a comparative analysis for house price prediction
Helskyaho et al. Introduction to Machine Learning
De Veaux et al. Machine Learning Methods for Computational Social Science
Suhasini et al. DETECTION OF ONLINE FAKE NEWS USING OPTIMIZED ENSEMBLE DEEP LEARNING MODELS
JP7404962B2 (ja) 画像処理システム、及び画像処理プログラム
US20240152440A1 (en) Game performance prediction across a device ecosystem
Rafatirad et al. Supervised Learning

Legal Events

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