여기서는 앞서 머신러닝(Machine Learning)에서 언급되었던 학습 방법들 중에서 데이터를 분류하는 기법들에 대해 개념 위주로 학습하고자 합니다.
1. K-인접기법(K-nearest neighbor method: KNN)
K-인접기법(KNN)은 미리 주어진 학습 표본(데이터)과 새로운 데이터의 특징을 비교하고 비슷한 것을 찾아내어 새로운 데이터로 분류하는 방법입니다. 학습 표본을 기반으로 변수 간의 관계를 기반으로 분류 규칙을 생성하고 새로운 데이터를 특정 범주에 분류하는 기법입니다. 따라서 K-인접기법에서는 미리 학습데이트를 예시로 줘야 합니다. 그리고 데이터 세트에는 학습데이터의 특징을 나타내는 변수들과 그에 따른 분류 레이블인 클래스가 포함됩니다.
K-인접기법은 어떤 특정한 공간 내에서 새로운 데이터에 가까운 곳이 있는 학습 데이터 K개에 관한 클래스를 조사합니다. 그리고 결과의 다수결로 새로운 데이터의 클래스를 결정합니다. 예를 들어 K=1인 경우를 생각해 봅니다. K=1인 경우에는 '가장 가까운 위치에 있는 학습 데이터의 클래스를 새로운 데이터의 클래스로 삼는다'가 됩니다. K의 값이 커지면 비교 대상이 늘어나게 됩니다. 결과 값의 다수결로 분류 클래스를 결정하는 것입니다. 여기에서 보듯이 K-인접기법에서는 K값의 설정이 중요합니다. K값이 작으면 overfitting의 위험이 있고, 너무 크면 데이터의 구조나 특징을 파악하기 어렵습니다.
K-인접기법(KNN)은 단순하고 이해하기 쉽고 빠르다는 장점이 있는 반면, 몇 가지 문제점도 있습니다. 우선 K-인접기법에서는 모든 학습 데이트세트를 그대로 암기하고 모든 학습의 예시를 기억해야 합니다. 학습의 정밀도를 높이기 위해서는 학습의 예시를 늘여야 하고, 그러면 그만큼 필요한 메모리의 양도 증가합니다. 또한 K-인접기법에서는 새로운 데이터와 학습 데이터세트 내에 있는 모든 데이터와의 거리를 계산해야 합니다. 그래서 학습 데이터세트가 커지면 계산 비용의 문제도 발생합니다. 또한 K의 값이 커지면 모델 형성이 어렵습니다.
2. 결정트리(decision tree)와 랜덤 포레스트(random forest)
2.1 결정트리(decision tree)
결정트리(decision tree) 또는 판단트리는 나뭇가지와 같은 구조로 특징 분류 방법을 기술한 지식표현입니다. 결정트리를 사용하면 대상물이 가진 복수의 속성(attribute)을 이용하여 그 성질과 분류 범주를 결정할 수 있습니다. 여기에서 속성(attribute)란 분류의 대상이 가진 특징을 기술한 정보입니다. 결정트리에서는 속성에 관련된 질문의 답에 따라 나뭇가지가 만들어지고 마지막에는 대상물이 무엇인지 분류할 수 있게 됩니다. 이 방법은 사람이 직감적으로 이해하기 쉬운 지식표현이라 하겠습니다. (아래 그림은 트리의 한 가지 예입니다)
(그림) 엔트리 붓꽃 예시 데이터를 결정 트리 모델 학습 시킨 결과
[출처] SVM, 로지스틱 회귀, 결정 트리 알고리즘|작성자 엔트리
결정트리(decision tree)의 학습에서는 생성되는 결정트리가 가능한 한 간결하게 표현되도록 구성해야 합니다. 더욱 간결한 결정트리를 얻기 위해서는 한 번의 분류에서 되도록 많은 대상을 분류하는 편이 유리합니다. 다시 말해서 신속하게 진행할 수 있는 간결한 구조를 선택하는 것이 좋습니다.
2.2 랜덤 포레스트(Randon Forest)
결정트리를 구성할 때 하나의 결정트리를 작성하는 것이 아닌 복수의 결정트리를 작성해서 그 전체를 하나의 지식으로 이용하는 방법이 있습니다. 이것을 랜덤 포레스트(Random Forest)라고 합니다.
랜덤 포레스트에서는 미리 얻은 학습 데이터군에서 랜덤으로 데이터를 추출하여 복수의 학습 데이터세트를 작성합니다. 그리고 이러한 학습 데어터세트를 이용해서 각각에 대응하는 결정트리를 작성합니다. 학습 결과를 이용할 때는 이러한 복수의 결정트리에서 출력된 값들의 평균값을 전체 결과 합니다.
랜덤 포레스트는 앙상블 학습의 대표적인 예입니다. 랜덤 포레스트가 단독 결정트리에 의한 분류보다 뛰어난 능력을 발휘하려면 랜덤 포레스트를 구성하는 각각의 결정트리가 가능한 한 독립적이어야 합니다. 그러기 위해서는 학습 데이터세트를 작성할 때 각각의 데이터세트를 서로 완전히 다르게 구성하는 것이 좋습니다.
3. 서포트 벡터 머신(SVM; Support Vector Machine)
서포트 백터 머신(SVM; Support Vector Machine)은 주어진 샘플 그룹에 대해 특성 변수들로 분류(classification) 규칙을 찾아내는 머신러닝 방법입니다. 패턴 인식(pattern recognition) 분야에서 제안된 알고리즘으로 1995년 러시아의 수학자 블라디미르 바프닉 (Valdimir N. Vapnik, 1936-)이 처음 제시하였습니다. 이후 글자 인식 분야에서 그 성능을 인정받아 기계 학습(machine learning) 분야에서 분류를 위한 대표적인 알고리즘이 되었습니다.
서포트 벡터 머신 학습에서는 우선 분류 대상을 특성 변수로 결정짓는 특정한 공간 안 1개의 점으로 표현합니다. 그리고 분류 기준에 따라 공간을 분할하는 평면을 정해 분류 지식을 표현합니다. 이때 공간을 분할하는 평면과 분류 대상을 표현하는 각 점의 거리가 최대가 되도록 평면을 결정하는데, 이 조작을 마진의 최대화라고 합니다. 여기서 마진(margin)이란 분류로 생긴 여백을 의미합니다.
서포트 벡터 머신 동작을 초평면(그림)을 사용해 설명하면, 두 개의 분류 대상이 초평면 위에 붉은색 점과 푸른색 점으로 표현됩니다. 이러한 두 개의 분류 대상을 직선으로 분류합니다. 이때 두 개의 분류 대상을 되도록 마진(여백)이 커지게 구하는 것이 서포트 벡터 머신의 학습입니다.
마진을 최대화하여 분류 능력을 높이면 일반화 능력도 높아집니다. 이런 점에서 새로운 데이터에 대한 분류 성능도 향상될 것이라고 기대할 수 있습니다.
이상으로 인공지능(AI) 머신러닝 학습 방법 중 데이터의 분류와 관련 있는 K-인접기법, 결정트리와 랜덤 포레스트 & 서포트 벡터 머신(SVM)의 개념에 대해 알아보았습니다.
2023.05.17 - [인공지능(AI; Artificial Intelligence)] - 인공지능(AI) 시스템의 지식 표현과 추론 (3)
'인공지능(AI)이란? - 기초 개념 및 이론' 카테고리의 다른 글
인공지능(AI)과 인공 신경망(Artificial Neural Network) (2) (0) | 2023.05.21 |
---|---|
인공지능(AI)과 인공 신경망(Artificial Neural Network) (1) (1) | 2023.05.19 |
인공지능(AI) 시스템의 지식 표현과 추론 (3) (1) | 2023.05.17 |
인공지능(AI) 시스템의 지식 표현과 추론 (2) (0) | 2023.05.16 |
인공지능(AI) 시스템의 지식 표현과 추론 (1) (0) | 2023.05.15 |
댓글